What is SOA (service-oriented architecture)?
A collection of services
- Services can be for web-based applications or even softare (Eclipse)
- Web Services Description Language (WSDL) describes the services themselves
- It is loose coupling of services with operating systems and other technologies that underlie applications.
- If a service presents a simple interface that abstracts away its underlying complexity, users can access independent services without knowledge of the service's platform implementation
- SOAP protocol describes the communications protocols.
- XML is often used for interfacing with SOA services. JSON is also becoming increasingly common.
- These services and their corresponding consumers communicate with each other by passing data in a well-defined, shared format, or by coordinating an activity between two or more services.
When we look on IT history SOA came up as solution for existing problem. Here is the time line on this perspective.
The idea was all about writing codes.
When developers started thinking about reuse
When reusing objects between different applications written in different technologies was a hassle.
When the reuse idea is extended to the extent that I need to reuse a complete application and I need to provide standard facilities for others to easily integrate and make use of my service.
If you Going to SOA. It can be divided in to four groups. As below.
- Application frontends (FE): Delivering the value of SOA to the end users.
- Service: Component that encapsulates a high level business concept.
- Contract: provides a specification of the purpose, functionality, constraints, and usage of services.
- Interface: functionality of the service exposed by the service to the clients.
- Implementation: the service implementation provides the required business logic and appropriate data.
Business logic: business process represented by the service.
Data: data represented in the service/ used by the service.
- Service repository: it registers the services and their attributes to facilitate the discovery of services; operation, access rights, owner, qualities,
- Service Bus (ESB): A flexible infrastructure for integrating applications and services by routing messages, transforming protocols between requestor and service, handling business events and delivering them, providing QoS, mediation and security, and managing the interaction among services.