Tuesday, October 24, 2006

What does SOA mean to you for the Enterprise

SOA is the Integration Enablement that promises the solution to Application Integration in an open, global and loosely coupled manner.
SOA Enables a Loosely Coupled Infrastructure for creating an overall Architecture for the organization. It enables flexible and open applications integration options across applications within the organization and between organizations. SOA also promotes standards for business and process oriented systems, that are language and platform independent.

What are the key characteristics of a SOA based System
- System based on Services: The Architecture of a SOA needs to be designed around services that address a business domain, rather than the specific application. The specific application quarks need to be encapsualted either within or outside the service, so that the service can be used in other contexts, can be combined, and reused.
- System Based on messaging: Services need to interact based on messages being passed, whether they follow a Asynchronous or Synchronous protocol for interaction. XML offers the ideal solution for this.
- Self-Descriptive messages: Messages being passed to the service methods and results from the service methods need to be self-descriptive. The Request/Response paradigm of HTTP is extended to a SOA Architecture, and is needed to achieve long-term reusability, and manageability considerations.

KEY PATTERNS:
- Loose coupling within the web-service: The implementation code for the webservice should not be dependent on the webservice itself.

- Coarse Service: Not only is this easy to maintain, but the key benefit is performance. A coarse grained service will take only 1 parsing of the input parameters/document with business rules, thus delivering the performance benefits compared to multiple roundtrips.

- Alighment with Business processes: Companies need to think about themselves as service providers(and can merge, acquired over time), services can be combined over time, and need to have the architectural vision to be extensible over time.

- ESB Features: connect systems to a central SOA (Transformation, routing, adoption of different transports), registry, transform, management of services.