Microservices vs. SOA Translated 100%

oschina Posted at 15:13, January 30, 2019 (14 paragraphs in total, translation completed on 05-16)
Reading 6263
Collection nine
top ten
Loading

Microservices and software oriented architecture (SOA) are two componentized architectures for software development. With the development of the cloud computing era, the higher granularity micro service architecture (MSA) has evolved from the early SOA. However, these two methods are still widely used. SOA is enterprise centric, while microservices are application centric.

First, we will study each of these technologies, and then we will compare and contrast the two technologies.

 purely
Translated at 22:23, January 30, 2019
top
four

Understanding Service Oriented Architecture

SOA is a collection of services that communicate between services through message middleware. The middleware layer also supports multi protocol interworking. The scope of services can extend to the size of subsystems within the enterprise.

SOA is generally considered the best choice for integrating different systems in a large mixed environment running multiple operating systems (such as Linux and Windows).

 purely
Translated at 22:35, January 30, 2019
top
three

Understanding microservices

On the other hand, in microservices, each application is constructed into a collection of small services and modeled around a business domain. The architecture uses an application programming interface (API) layer instead of middleware, and the protocol is lightweight. The best practices of microservices require developers to use APIs to build at the beginning of design.

Microservices work better in building small, well partitioned Web based systems that give developers great control. Each service is designed to achieve a specific purpose - such as a Web service that activates an order or provides a shopping cart service - and performs well in achieving that purpose.

 purely
Translated at 22:41, January 30, 2019
top
two

Compare microservices and SOA

Both SOA and microservices simplify software development by replacing the old monomer structure with more manageable modular components. However, SOA and MSA have significant differences in general architecture, service characteristics, component sharing methods, database support, etc.

Here are some key differences:

 purely
Translated at 22:44, January 30, 2019
top
two

General architecture

SOA defines a provider layer (including all services in the system) and a consumer layer, or the point where consumers (such as users or other services) interact with the system. Enterprise Service Bus (ESB) allows various point-to-point connections between service providers and service consumers. Services can be created by multiple development teams, but each team needs to understand the common communication mechanism.

On the other hand, in MSA, small, independent processes communicate with each other in highly granular and agile applications. Each service can be deployed independently, which means that the service can be offline without affecting the whole system. MSA makes it easier and faster to develop new versions of existing services. This architecture is in line with DevOps best practices. In addition, services can be expanded independently according to load requirements.

 purely
Translated at 14:37, January 31, 2019
top
two

Service characteristics

SOA and microservices both rely on services as their main components. However, these two architectures differ greatly in service characteristics.

SOA defines four basic service types:

  • SOA functional services, also referred to as business services, are used to define coarse-grained services for core business operations. Functional services are represented by protocols such as Extensible Markup Language (XML) and Business Process Execution Language (BPEL).

  • Enterprise services implement functions defined by business services, and use application services and infrastructure services to meet business requests.

  • Application services are fine-grained services that are used only in a specific application context. Services can be invoked through a dedicated user interface (UI).

  • Infrastructure services implement non functional tasks such as logging, authentication, auditing, and security. These services can be invoked by application services or enterprise services.

     
 purely
Translated at 14:49 on January 31, 2019
top
three

In contrast, MSA only defines two basic service types:

  • In MSA, functional services support specific business operations. These services are accessed externally and are not shared with other services.

  • As with SOA, MSA's infrastructure services are used to support tasks such as logging, auditing, and security. However, MSA's infrastructure services are not shared with other services and can only be accessed internally.

 purely
Translated at 14:51, January 31, 2019
top
three

Middleware and API

SOA middleware provides many functions that are not available in APIs. These APIs are used for communication between service providers and consumers in MSA.

Advantages of the middleware layer include protocol transformation, message enhancement, mediation and routing. Because MSA does not support middleware, and MSA applications are very small and designed specifically for them, SOA is generally considered the best architecture for large and complex enterprise systems.

 purely
Translated at 14:55 on January 31, 2019
top
three

Database support

In SOA, all services use the same underlying database. Services generally support traditional relational databases.

MSA is also more flexible and complex in this respect. A database can only be used by one specific microservice or shared by multiple microservices. MSAs are also more likely to use updated non relational databases. Unlike relational databases that only support structured data, non relational databases also support semi-structured data (such as e-mail and XML documents) and unstructured data (such as Microsoft Windows documents, web pages, social media messages, and video files).

 purely
Translated at 15:05 on January 31, 2019
top
two

Component Sharing

SOA aims to promote the reuse of business functions by enhancing component sharing. In fact, component sharing is the main role of SOA enterprise services. Services are typically implemented as complete subsystems. However, since SOA uses multiple components to meet business requests, the efficiency of SOA services may be lower than microservices.

On the other hand, microservices minimize component sharing through "bounded context", and components and their data are coupled as a single unit with minimal dependency. The application needs to access the persistent data store through the API provided by the service implementation.

 purely
Translated at 15:08, January 31, 2019
top
two
All translations in this article are only for learning and communication purposes. Please be sure to indicate the translator, source and link of the article when reprinting.
Our translation work follows CC protocol If our work infringes your rights and interests, please contact us in time.
Loading

Comments( thirteen )

 Mujiutian
Mujiutian
Don't update
 Mujiutian
Mujiutian
six
 Mujiutian
Mujiutian
six
 Cold zz
Cold zz
👍
 Ill fated
Ill fated
one hundred and twenty-three
 Ill fated
Ill fated
sound of dripping water
 Ill fated
Ill fated
one
 霡 霂
霡 霂
If the technology stack is excluded from SOA, there is no obvious boundary between SOA and microservices in concept. The formation of the concept of microservice and the accumulation of practice are inseparable from the evolution of SOA.
n
newlife111
Well, when microservices first became popular, they all said that it was the next generation of SOA. The new bottle of SOA was filled with old wine, and the concept and practice were very confused.
Gradual development As you said at the beginning, "SOA is enterprise centric, while microservices are application centric", as well as Ali's concept of large and medium-sized platforms, in my opinion, is also SOA.
 Xiaoshiyue
Xiaoshiyue
fabulous
 Yuchen OSC
Yuchen OSC
hahahahaha
 Yuchen OSC
Yuchen OSC
Ha ha ha
 Yuchen OSC
Yuchen OSC
Ha ha ha ha
 Back to top
Top