SOA : An overview• What is SOA o An architecture for building businesses applications o Loosely coupled blackbox modules o These modules are composed into well defined services o Promotes reuse at the macro (service) level rather than micro (classes) level
SOA : An overview• SOA is not Webservices o DCOM (Distributed Component Object Model ) Microsoft version of RPC o CORBA (Common Object Request Broker Architecture ) Cross language open standard for RPC o Java RMI (Java Remote Method Invocation) Javas implementation of RPC o WCF
SOA Manifesto• Business value over technical strategy• Strategic goals over project-specific benefits• Intrinsic interoperability over custom integration• Shared services over specific-purpose implementations• Flexibility over optimization• Evolutionary refinement over pursuit of initial perfection
SOA Service Attributes• Stateless o A service neither remember what it did, nor cares what comes next. There is no dependence upon other services state• Discoverable o A service must be discoverable by consumers of the service. Usually via the SOA service directory.• Self-Describing o The service interface describes, exposes and provides an entry-point into the service. o A consumer never needs to know about the technology used to create the service.
SOA Service Attributes• Composable o A service is created from other services in a composite manor. In turn other services may use the composed services to create new services, hence new business value.• Loose Coupling o Separation of concerns through boundaries; a logical or physical delineation of responsibilities. o i.e. An account service with : open, authorize and audit features.
SOA Service Attributes• Governed by Policy o Services are built by contract. The relationship between services is regulated by an SLA.• Indifferent to Location, Language and Protocol o A service shall be accessible by an authorized user in any location on any platform.
SOA Service Attributes• Coarse-Grained o Due to the fact that services are business functions, not block of code, it is critical that they remain broad in terms of the contract they define. o The more coarse the service is, the more business value it brings. o Coarse services reduce complexity, by reducing the number of steps required, hence the number of remote operations to be sent across the wire.• Asynchronous o Not required for services, but increases scalability. o Achieved with an Enterprise Service Bus (ESB)
SOA LayersPhoto : http://en.wikipedia.org/wiki/Service-oriented_architecture
SOA : The role of ESB• A software architecture model used for designing and implementing the interaction and communication between services in SOA.• Strictly asynchronous message oriented design for communication and interaction• Performs o Message routing o Mediation o Transformation o Queuing and staging o ....