Service Oriented Architecture (SOA) Monday, May 11, 2009 10:55 PM
SOA-High Level Definition: A paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownerships.
Technically • A client/server software design approach in which an application consists of software services and software service consumers (also known as clients or service requesters). • SOA differs from the more general client/server model in its definitive emphasis on loose coupling between software components, and in its use of separately standing interfaces. Why SOA? • Drivers: • Large scale systems • Provisioning of services • Reduce the cost • Benefits • Build scalable, evolvable systems ○ Scalable because minimizes assumptions • Manage complex systems • Encourage re-use
• • • •
Key Concepts in SOA Loose Coupling Implementation Neutrality Flexible Configurability Granularity Long Lifetime
Predecessor to SOA Modular Designs Object-Orientated Approaches Component Based Software like COM, DCOM Problems Successfully Addressed: • Complexity Management • Re-use (to some extent) • Problems Still Present: • Deployment Problems Successfully • Maintenance Resolved by SOA • Integration of complex systems • • • •
Components to Services Requires a client library
Key Components of SOA
→ Services → Messages → Service Discovery
Client / Server
Peer-to-peer
Extendable
Composable
Stateless
Context independent
Fast
Some overhead
Small to medium
Medium to coarse
granularity
What is A service in SOA: Is an exposed piece of functionality with three properties: • The interface contract to the service is platform-independent. • The service can be dynamically located and invoked. • The service is self-contained. That is, the service maintains its own state.
• • • • • • • • •
Loose coupling via Message exchanges Policies
• SOA is about constructing software components that can be reused in context unknown at design time • Composition versus Extension (OO)
granularity
Attributes of Service Well defined, easy-to-use, somewhat standardized interface Self-contained with no visible dependencies to other services (almost) Always available but idle until requests come “Provision-able” Easily accessible and usable readily, no “integration” required Coarse grain Independent of consumer context, • but a service can have a context New services can be offered by combining existing services Quantifiable quality of service
soa Page 1
• SOA should be task oriented • Not just a marketing hype… • SOA is a way of thinking • SOA is not Web Services • Loosely coupled architecture that uses messaging • Enriched by creating composite apps • Move from batch to real-time
Protocols WSDL‐‐>Web Service Description Language: For describing Services UDDI‐‐>Universal Description, Discovery & Integration: Serves as Registry SOAP‐‐>Simple Object Access Protocol: For message based access to WS HTTP‐‐>Hyper Text Transmission Protocol: As transport mechanism WSDL, UDDI, & SOAP are XML (eXtensible Markup Language)
© Available at: http://www.computer‐science‐notes.blogspot.com