Service Oriented Architecture



Service: A logical representation of a repeatable business activity that has a specified outcome, is self-contained and maybe composed of other services and is a black box to consumers of the service.

Service Oriented: A way of thinking in terms of services and service based development and the outcomes that services bring.

Service Orientation is a means for integrating across diverse systems. Each IT resource, whether an application, system, or trading partner, can be accessed as a service. These capabilities are available through interfaces; complexity arises when service providers differ in their operating system or communication protocols, resulting in inoperability.




Service Oriented Architecture:
An architectural style for a community of providers and consumers of services to achieve mutual value, that

  • Allows participants in the community to work together with minimal co-dependence or technology dependence.
  • Specifies the contracts to which organizations, people and technologies must adhere in order to participate in the community.
  • Provides for business value and business processes to be realized by the community.
  • Allows for a variety of technologies to be used to facilitate interactions within the community.


Another Definition of Service-Oriented Architecture is:
An application architecture in which

  • All functions, or services, are defined using standard protocols .
  • Each interaction is independent of each and every other interaction and the interconnect protocols of the communicating devices.
  • We have a protocol to Coordinate the communication between web services called Business Process.
  • Each process is itself a service, one that now offers up a new, aggregated capability.
  • Because interfaces are platform-independent, a client from any device using any operating system in any language can use the service.


Business Benefits
  • Focus on Business Domain solutions
  • Leverage Existing Infrastructure
  • Agility
Technical Benefits
  • Loose Coupling
  • Autonomous Service 
  • Location Transparency
  • Late Binding

Components of SOA

Services
A service is a contractually defined behavior that can be implemented and provided by a component for use by another component.

Service descriptions
The service description consists of the technical parameters, constraints and policies that define the terms to invoke the service. Each service should include a service definition in a standardized format.

Discovery of services
  • A service must communicate its service description in an accessible manner to potential consumers.
  • It does so by using one of several advertising methodologies, such as Pull and Push.
  1. In the Pull methodology, potential service consumers request the service provider to send them the service description. This pull methodology may be invoked as a service itself.
  2. In the Push methodology, the service provider, or its agent, sends the service description to potential service consumers.
Data Model
The logical expression of a set of information items associated with the consumption of a service or services

Event Driven Architecture
  • An event-driven architecture (EDA) defines a methodology for designing and implementing applications and systems in which events transmit between loosely coupled software components and services.
  • An event-driven system is typically comprised of event consumers and event producers. 
  • Event consumers subscribe to an intermediary event manager, and event producers publish to this manager. 
  • When the event manager receives an event from a producer, the manager forwards the event to the consumer. If the consumer is unavailable, the manager can store the event and try to forward it later. This method of event transmission is referred to in message-based systems as store and forward.
  • Building applications and systems around an event-driven architecture allows these applications and systems to be constructed in a manner that facilitates more responsiveness, since event-driven systems are, by design, more normalized to unpredictable and asynchronous environments.