Platinum Partner
soa,enterprise-integration,tips and tricks

What is SOA (service-oriented architecture)?

SOA (service-oriented architecture) is a style of software architecture that can be used in designing and developing software as form of interoperable services. There are 3 things that are coming in to my mind as I head into describing SOA.

A collection of services
- Services can be for  web-based applications or even softare (Eclipse)
- Web Services Description Language (WSDL) describes the services themselves

Loosely coupled
- 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

Enable communication between services

- 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.

Procedural Oriented
The idea was all about writing codes.

Object Oriented
When developers started thinking about reuse

Component Oriented
When reusing objects between different applications written in different technologies was a hassle.

Service Oriented
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.

image

  • 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.

Published at DZone with permission of {{ articles[0].authors[0].realName }}, DZone MVB. (source)

Opinions expressed by DZone contributors are their own.

{{ tag }}, {{tag}},

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks
Tweet

{{parent.nComments}}