Basics of Software Architectures compared

After quite sometime got some free time from a busy life and have started Tech exploration lately.

While trying to go through Software architectures, there is no standalone documentation on the categories and definitions. Thought of writing on the same.

SOA:

Service-Oriented-Architectures is the most generic and a “bundled” Software Architecture. Software components like Controllers, Database layers, Business logic, Front end are all part of one logical system. They might be on different servers. The end components might be using SOAP, REST etc. to communicate. But the idea is still the same, they’re all related to the same Software system.

ROA:

Resource-Oriented-Architecture sounds like a subset of SOA. This is because Software is made of same technologies. But the idea here has a subtle difference to SOA.

In Resource Oriented Architecture, the components that implements the core logic can be an external one that is unrelated to the communicating one. They just provide an interface for other components to “plug-in”.

Take for eg. a Twitter API that just helps you “Share” or “Embed” the link into your software, or provides analytics from user inputs. Or some customized Maps API that “embeds” into any external software and communicates using simple and quick data formats like JSON using REST.

Micro-services:

Micro-services Architecture is an evolution of an unbundled- SOA but can also be made into a partial ROA.

Micro services gives power to every component by turning it into a standalone-service so that it can do its process independently. In SOA we couple all services in such a way that many components use the same layers to reduce cost of capital of the system. But this reduces flexibility and will hamper the business growth.

Whereas Micro-services helps to design each service in the most optimized way by using its own technology. Some of these independent components can build a bigger business on their own and the system can be made into a mix of SOA and ROA.

 

If you think these are not accurate or some more architectures missing in this list, please provide in the comment below.

Thanks.

 

Leave a comment