Service Oriented Architecture - Notes
Service Oriented Architecture - Notes
Service Oriented Architecture - Notes
SOA is believed to become the future enterprise technology solution that promises the
agility and flexibility the business users have been looking for by leveraging the
integration process through composition of the services spanning multiple enterprises.
Characteristics
• The software components in a SOA are services based on standard protocols.
• Services in SOA have minimum amount of interdependencies.
• Communication infrastructure used within an SOA should be designed to be
independent of the underlying protocol layer.
• Offers coarse-grained business services, as opposed to fine-grained software-
oriented function calls.
• Uses service granularity to provide effective composition, encapsulation and
management of services.
Service Granularity
Service granularity refers to the scope of functionality a service exposes. Fine-grained
services provide a small amount of business-process usefulness, such as basic data
access. Coarse-grained services are constructed from fine-grained services that are
intelligently structured to meet specific business needs.
Service Composition
Service Management
There are three levels of service management
• Management of the services and their interfaces
SOA Meta-Model
SOA is a form of enterprise architecture and can be represented using models. SOA
meta-model is a model that contains the following three models.
SOA today differs in the usage of a more generic standard-based interface language
XML (eXtensible Markup Language) used in Web Services Definition Language (WSDL)
compared to the older Interface Definition Language (IDL) found in CORBA.
SOA is based on the concept of using services that can communicate through standard
protocols like SOAP allowing a more loosely coupled architecture. In older models
objects were more tightly coupled due to the usage of vendor specific communication
standards.
IBM’s MQSeries is yet another message-oriented middleware system but it lacks the
organized workflow definition required for the services to interoperate. SOA supports the
composition of coarse-grained services from fine-grained services to provide a business
solution in an easily deployable and usable manner. For interoperability of services
spanning multiple enterprises, SOA should provide service level agreements and
operational policies.
Web Services are able to exchange structured documents that contain different amounts
of information, as well as information about that information, known as metadata. In
other words, Web Services can be coarse grained. Such coarse granularity is one of the
most important features of SOAs.
Expert Sally Hudson, an IDC analyst, describes the Enterprise Service Bus as an open
standards-based messaging means designed to provide interoperability between larger-
grained applications and other components via simple standard adapters and interfaces.
ESB Architecture
Transformation Connection
(XSLT) JCA SOAP/ SOAP/ Layer
HTTP HTTP
Communication
Reliable Asynchronous Secure Messaging Layer
SOAP/HTTP
JMS Connection
C/C++ Legacy Layer
J2EE
Application
Re-architecture to SOA
Encapsulate software components, applications and underlying systems with Web
Services interfaces
Benefits
• Provides location independence: Services need not be associated with a
particular system on a particular network
• Protocol-independent communication framework renders code reusability
• Offers better adaptability and faster response rate to changing business
requirements
• Allows easier application development, run-time deployment and better service
management
• Loosely coupled system architecture allows easy integration by composition of
applications, processes, or more complex services from other less complex
services
• Provides authentication and authorization of Service consumers, and all security
functionality via Services interfaces rather than tightly-coupled mechanisms
• Allows service consumers (ex. Web Services) to find and connect to available
Services dynamically