Service Oriented Architecture (SOA)
Author : Amarnath S 12th Aug 2015
In Simple words, Service Oriented Architecture (SOA) is a solution for making two applications communicate with each other by a collection of services. A service is self-independent, does not depend on the language, on which the consumer application is written. This is how the concept of the Service Oriented Architecture revolves, the consumer application will send the request to the service provider and in return, the response will be received by the consumer. The connections between the service provider and the service consumer will be done through the web services, which transfers the request and responding with that the data which is being requested.
This is how Service Oriented Architecture looks like:
.
Web services are the information exchanging system which handshakes the back end database with the front end UI; it could be the UI of a mobile application or even web application. Exposed Web services are application independent which can be accessed by any application for data exchange, provided the request method should be based on the Web services to which the data to be invoked.
Popularly Web services can be written as a SOAP (Simple Object Access Protocol) or REST Representational State Transfer), where the data format permitted by the SOAP is XML while REST permits different data formats either JSON or plain XML inputs and outputs. The request methods should be written based on the web services exposed by the providers. For example, on RESTful web services, it can be mostly communicated over HTTP, For which the same HTTP methods can be used, For retrieving a value, “GET” method will be used, to send a data via the web services to save it in the database “POST” method will be used, to change the state of a resource “PUT” method will be used and delete a resource “Delete” method will be used. The decision on choosing the Web services (SOAP/REST) is absolutely based on the needs.
API Driven Development:
API Driven development is followed by writing the core Business logic and data model of the system as a separate component and exposed as an API layer, wherein the presentation layer of the web or even the mobile can be wrapped over it as skin to access the backend database for data saving or for resource querying. The main advantage of the API driven development is the security, the core business logic and the data model resides in the server securely, which can be invoked by either the presentation layer of the web or mobile or even both. The other advantage is that the presentation layers (web and the mobile) can be modified independently for the same application since the business logic and the data model is being developed as a separate component.