SOA – Service Oriented Architecture
What is SOA?
before going to SOA you need to know about what is service in web. Service is a bit of code (say so) that get the input data which you have given and process it and give the resultant data in any format (most probably XML,JSON). The service can be written in any language(java, ruby, etc..).
If you take web application there mostly two kind of design patterns monolithic architecture and service oriented architecture.
Now consider a banking application, if its a monolithic architecture then entire process like log in, account details, money transfer, loan application are done in same server.
If its a SOA then each module is run in different server and they communicate with each other. And the customer views the collected details from all the servers.
Where we use SOA?
If its enterprise level application, it requires API module to be implemented,there are many number of modules to be implemented in application, Needs to use different programming languages together then its better to implement SOA.
Advantages of using SOA
1. Development made easy – if there is a fresh developer comes to project, he don’t want to go through entire project. He can start to work with a service.
2.Platform independent- In SOA you can use any language you want you can use java in one service and ruby in another service means also they can communicate with each other. So you don’t need particular language developer for developing.Then parallel development made easy.
3. Re-usability – Each service runs independently so you can use any service any where.
4.Higher availability – As previously said each service runs independently , if any service failures that part of the application only stops to work. So our web application is probably always available.
5. Cost Reduction – Definitely it will reduce the initial and maintenance cost if its a big and high scalability application
1. Complex structure – Since each service placed in different place, you have make a mechanism to communicate each service together.
2. Data – We cannot transfer large data from one service to another service, mostly the services communicate by using http request so we can send a small amount of data only.
3. Cost – If its small application , if you use SOA then it will increase the maintenance cost because it uses many servers and we have maintain many servers.