Sunday, April 3, 2011

Service Oriented Architecture

SOA is an approach for building systems that deliver application functionality as a set of self-contained business aligned services with well defined and discoverable interfaces
SOA decomposes a system in terms of services and focuses on loosely coupled message based interfaces
SOA modularizes business services and focus development efforts on exchange of business information required to support those functions

Web Services: A software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with XML serialization in conjunction with other Web-related standards


SOAP: is a set of conventions that specify a message format together with a set of rules that govern the processing of the message as it passes along a message path.
WSDL: is an XML vocabulary to describe Web services. It allows service authors to provide crucial information about the service so that others can use it.

UDDI: provides a centralized registry of metadata that can reference all kinds of information, including WSDL documents, policies, and others, and offers several powerful and flexible techniques for querying the registry.
BPEL: Business Process Execution Language (BPEL) is an XML-based language for creating a process, which is a set of logical steps (called activities) that guide a workflow

Basic Component of a SOA Infrastructure
1. Build/re-use Services ---> Web or Legacy Services
2. Connect ---------------> Adapters
3. Route & Transform ------> ESB
4. Externalize business rule ---> Rules Engine
5. Orchestrate -------> BPEL/BPM ENGINE
6. Involve human beings ------> HUMAN WORK FLOW
7. Security -------------> Global Security Framework

Enterprise Service Bus

Service consumers and providers may be loosely coupled or there is a need for synchronous, non-deterministic routing (where consumer requires a response but does not explicitly know the service provider).
There is a need to execute specialized functions based on the data, consumer, or provider before executing the business transaction (may include policy validation, transformation, and so on).

Service consumers and providers may be loosely coupled or there is a need for synchronous, non-deterministic routing (where consumer requires a response but does not explicitly know the service provider).
There is a need to execute specialized functions based on the data, consumer, or provider before executing the business transaction (may include policy validation, transformation, and so on).

There must be a way to connect end-point applications to the bus (either through re-architecting or via adapters), and it must be possible to operate them in a service-oriented model (Not all applications can be easily service enabled.

No comments:

Post a Comment