Home » Software Development » SOA vs Microservices: What’s the Difference?

About Mary Zheng

Mary has graduated from Mechanical Engineering department at ShangHai JiaoTong University. She also holds a Master degree in Computer Science from Webster University. During her studies she has been involved with a large number of projects ranging from programming and software engineering. She works as a senior Software Engineer in the telecommunications sector where she acts as a leader and works with others to design, implement, and monitor the software solution.

SOA vs Microservices: What’s the Difference?

In this article, we will see a comparison between SOA vs Microservices and their basic differences.

1. Introduction

A service is a single software unit that performs business tasks. Service-oriented architecture (SOA) is a software architecture where distinct components of an application provide services to other components via a communications protocol over the network. SOA composes a complex application by orchestrating separately deployed components over the network. There are two key components in SOA:

  • Service Components – including both services providers and consumers.
  • Enterprise Message Bus (ESB) – orchestrating the service components. Click here to see a list of ESB tools.

2. SOA Principles

An individual department within an enterprise builds its software applications and may communicate with other applications to fulfill business tasks. SOA emerged in the late 1990s and is a cost-effective way because it reuses existing components. It usually depends on a tool to transform and communicate with service endpoints. Here are key SOA principles:

  • Standardized service contract – services are well defined. e.g. SOAP web services describe services in WSDL and Restful services define with WADL.
  • Loose coupling – less dependency on each other.
  • Abstraction – each service component acts as black boxes.
  • Autonomy – each service controls its own logic.
  • Statelessness – each service returns a value for success or exception if it fails.
  • Discovery – can find services via UDDI, etc.

3. Microservices Architecture

Microservices architecture (MSA) has evolved from SOA since 2005. Each microservice is deployed to a container in a cloud environment. MSA has the same principles as SOA. Click here for a basic understanding of MSA.

4. SOA vs Microservices (MSA)

SOA and MSA both focus on the service development. But there are different. Here are key differences between SOA and MSA:

SOAMSA
Scopefocus on enterprise tasks. Components integrate together to achieve an enterprise goal.focus on a single service. Each microservice is a self-contained application.
Re-Usereuse the services.reuse the code to reduce the dependency of other components.
Sync vs ASyncsynchronous call is preferred.asynchronous processes (events/messages driven) are preferred in MSA to improve performance.
Dataservices access the shared data storage.each microservice accesses its local data so it doesn’t depend on other’s data.
Tool ExamplesMule, TIBCO, etcDocker, Kubernates, etc.
Network ProtocolSOAPHTTP
Table 1 SOA and MSA Differences

5. Summary

In this article, I explained the basic definition of SOA and MSA and identified the key differences between them. It really depends on the business problem when choosing the better solution. In general, SOA is a better choice for a smaller web-based application. MSA is a better solution for a large complex business application.

Do you want to know how to develop your skillset to become a Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you our best selling eBooks for FREE!

 

1. JPA Mini Book

2. JVM Troubleshooting Guide

3. JUnit Tutorial for Unit Testing

4. Java Annotations Tutorial

5. Java Interview Questions

6. Spring Interview Questions

7. Android UI Design

 

and many more ....

 

Receive Java & Developer job alerts in your Area

 

Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Fernando Cunha
Fernando Cunha
16 days ago

great explanation!