SOA Service Oriented Architecture (SOA) is a business driven IT architectural approach that supports integrating your business as linked, repeatable business task or services.
SOA is a software paradigm to reduce complexity. The idea is to divide the software into various modules, each of which act as a consumer and provider of service, instead of building single all encompassing software. • The services interact with each other by requesting a service or providing it.
SERVICE- what is it basically? A service is a unit of work done by the service provider to achieve desired end result for service consumer.
The goal of SOA is to achieve LOOSE COUPLING among interacting software agents.
Coupling Coupling is the dependency between interacting systems. This dependency can be decomposed into real dependency or artificial dependency. Real dependency – Real dependency is the set of features or services that a system consumes from other systems. The real dependency always exists and can not be reduced. Artificial dependency– A set of factors that system has to comply with in order to consume the features or services provided by other systems. E.g. language dependency, platform dependency, API dependency. Loose coupling describes the configuration in which artificial dependency has been reduced to the minimum.
SOA operates by achieving loose coupling among interacting software agents by employing two architectural constraints:- • A set of simple interfaces to all participating software agents. • Descriptive messages should be delivered through interfaces.
An architecture is service oriented if: • The message must be descriptive rather than instructive. • The message must be written in a format, structure and vocabulary that are understood by all parties. • It is able to extend the service. • Service consumer must be able to find a service provider.
To implement SOA, enterprise needs a service architecture. These messages are transformed and routed by a service bus to an appropriate service implementation.
Why SOA is such a great idea? • Reusability. • Simplicity. • Interoperability.
How to deliver SOA? There are two ways to deliver SOA: • System centric integration – Focus on how to get system talk to system. System centric SOA focuses on back end integration of system and applications. E.g. helping a developer to build the service to integrate financial system of two banks. • User Centric Integration – Focus on the idea bringing together information and functionality from any system in order to serve the need of end user. User centric SOA focus on end user needs for application that bridge current system & resources.
Benefits • Management of IT business goals. • Architecture that responds rapidly to change. • Building common IT foundation for reusable components. • Standardization. • Delivery of IT by using critical registry of services. • Return on Investment to business.