
Service-Oriented Architecture (SOA)
SOA and microservices follow similar concepts. In the Chapter 1, Demystifying Microservices, we saw that microservices are evolved from SOA and many service characteristics are common in both approaches.
However, are they the same or are they different?
Since microservices are evolved from SOA, many characteristics of microservices are similar to SOA. Let's first examine the definition of SOA.
The Open Group definition of SOA (http://www.opengroup.org/soa/source-book/soa/p1.htm) is as follows:
SOA is an architectural style that supports service-orientation. Service-orientation is a way of thinking in terms of services and service-based development and the outcomes of services.
A service:
- Is a logical representation of a repeatable business activity that has a specified outcome (e.g., check customer credit, provide weather data, consolidate drilling reports)
- Is self-contained
- May be composed of other services
- Is a “black box” to consumers of the service
We have learned similar aspects in microservices as well. So, in what way are microservices different? The answer is--it depends.
The answer to the previous question could be yes or no, depending on the organization and its adoption of SOA. SOA is a broader term, and different organizations approached SOA differently to solve different organizational problems. The difference between microservices and SOA is based on the way an organization approaches SOA.
In order to get clarity, a few scenarios will be examined in the following section.