SOA, or service-oriented architecture, can best be defined as "services" that provide a platform by which disparate systems can communicate with each other. These services are essentially groups of software components that help a company seamlessly carry out important business processes. SOA implementation makes interoperability between heterogeneous applications and technologies possible.
The rise of SOA technology and integration in recent years is placing it as one of the most important applications for communicating between different systems — or in this context, services.
To gain a better understanding of SOA architecture, we must define what a “service” is. Like objects and components, services represent building blocks that allow users to organize information in ways that are familiar to them. These building blocks combine information about users and their behavior in a seamless fashion to present a relatively simple interface.
A service is commonly characterized by these four properties:
To further simplify this concept, an SOA service is the mechanism that satisfies a customer's wants or needs through a negotiated contract. Therefore, SOA is a collection of different services.
To better understand what service-oriented architecture is all about, consider this quote from industry expert David Sprott:
“SOA is not just an architecture of services seen from a technology perspective, but the policies, practices and frameworks by which we ensure the right services are provided and consumed.”
Communication of services can involve something as simple as passing data, or it can involve a coordination of an activity between two or more different SOA services.
One way to illustrate the SOA method is by taking a look at a large online retailer like Overstock.com.
In order for Overstock customers to make a transaction, different programs must work together seamlessly. The various steps in the ordering process can involve various programs developed at different times, each using their own unique platforms and technologies.
For instance, there might be one program that tracks inventory, which is different than the interface (i.e. the Internet) the customer uses to shop. Then, there's likely an entirely different program for their shopping cart and another for processing payment.
SOA services tie all of these various programs together so that an online shopper can quickly find out if what they're looking for is in stock and get it shipped to their doorstep with just a few clicks of their mouse.
In October of 2009, a manifesto was created about service-oriented architecture. This manifesto states there are six core values of SOA:
Another way to think about SOA is through the analogy of transportation.
Imagine that you have to travel from your home in Atlanta to a business conference or trade show in San Francisco. What are the various steps you might take to get there?
First, you'll have to drive to the airport, then take a shuttle to the airport terminal. Next, you'll board the plane for San Francisco. After landing, you take another shuttle from the gate to the main terminal, where you have to flag down a taxi or call an Uber to drive you to your hotel. When it's time for the conference to start, you walk to the nearest train stop, hop on, and ride it to the conference center.
All of these various transportation methods worked together to accomplish your end goal of attending the conference — your car, the shuttle bus, airplane, train, and even walking. There were many individual “steps” you had to take to arrive at your final destination on time, and there were likely other ways you could have gone about it.
For instance, instead of driving to the airport, you could have walked to a train station or bus stop and gotten to the airport this way. Or you could have driven completely across the country, thus eliminating your need for any other type of transportation altogether.
However, by combining numerous transportation methods you were able to get to the conference faster and probably cheaper than if you had driven the whole way.
In this analogy of SOA, the various modes of transportation can be viewed as the different “services” used to reach an end goal. Just like the cars, bus, train, and plane all worked together to help you accomplish your goal of attending the conference, combining different units of software applications (services) can help businesses achieve new milestones in the most efficient manner.
Do you have additional questions or would you like to explore how implementing SOA can benefit you and your company? Contact the SOA consulting experts at Improving Atlanta today. Our business process integration consultants can help you knock down information “silos” and implement an interconnected IT system that will help your company operate more effectively and efficiently.