SOA - Service Oriented Architecture is an architectural pattern or approach consisting of principles, guidelines, communication protocols and standards that are applied to a set of services provided by businesses.
The term service-oriented implies that architecture is defined around service models. A service can be defined as a self-contained function that is used repeatedly with specified expected outcomes. It is similar to the concept of modules in software development. Different services can be combined into a much larger software, each service independent of the other and serving a distinct functionality that is abstracted from the user. Services are loosely coupled units which communicate with other services using message passing protocols. An example of a service is retrieving an online bank statement. Each service is capable of being integrated to any piece of software that understands the design of the service.
Service architecture refers to the implementation of service. It involves databases and XML schema, languages used, operational systems, components of code, libraries and software dependencies. The implementation is mostly hidden from the customer, and only the parts which service providers deem to be useful to the user are included in the contract.
Benefits of SOA
- improved flexibility in terms of both technical and business
- seamless integration of services with the business model
- standardization of services
- cost-effective as overheads due to managing components is reduced