Service Oriented Architecture ( SOA )
Service Oriented Architecture ( SOA )
Often a distributed system can takes years to come together. If these systems project a narrow set of objectives without considering rapid business changes, it becomes highly expensive for industries or organization to accommodate these changing business needs. In order to satisfy this aspect, the SOA concept is introduced. In simple words, you can say SOA is not a technology driven approach but rather a “Business Driven approach”.
SOA is basically a design principle which consists of a set of interoperable services to provides services to loosely coupled system. These individual services can be customized according to industry requirements or business needs where the services itself are loosely coupled. An Interface is used to acts as the entry and exit points to access these services. The interesting thing about SOA is that it uses a ‘message based approach’ as a simplified generic communicative media in its design principles and differs from ‘component based development’ which also uses Interfaces for there interactions. As we know, the simple text messages can be understood independent across any platform, technology or programming languages. The SOA design principles are mainly targeted towards backend systems not front end. In fact with the combination of XML and XSL we can make changes to the front end which is targeted to html formats.
The interoperable services are autonomous i.e., they are self governed. The implementation details are hidden to user. The user can only access the service satisfying the contracts. The contract are rule sets in terms of interfaces. You can term it as Policies.
As SOA concept say okay with Object Oriented concept. The data involved in business processes are encapsulated within object. Therefore the object will protect the business data. Some of the points that should be remembered while designing the SOA concept are
- Descriptive: the messages that we use communicate should be generic in fashion.
- Less Structure: the user or consumer accessing the service should satisfy the interface contracts. These contracts are built using interfaces. There should be no complication in accessing these interfaces by limiting the complicity and number of interface.
- Extensibility: be faster, cheaper and quicker.
- Discoverability: the consumer should find easy in recognizing and usage of it.
We have discussed the merits, there is some disadvantage of integrating isolated system or application over different networks like transportation, and networks are not reliable. Data formats - application are developed in different languages irrespective of its platform, compromising data type is the biggest challenge. Changes – business requirement changes over time, the services must be customizable for respective changes.
Web Service acts as a key player in solving the industry problem in term of business integration. What ever we develop using web services are treated as SOA. But, actually they are not.
Service are autonomous business system which interact by accepting set of request and in turn responses to it via well defined interfaces. Service are usually consumed by Consumers and Provided by Producers. In the world of Client and Server architecture the producer acts as server and consumer act as clients. The services are registered in service repository where the consumer finds the available items, items available to consume, mutual dependences between them.
Web service can be used as key enabling technology for service oriented architecture. Some of its key items are:
- Standard Protocol: it can respond to protocol such as HTTP, SMTP, and FTP etc.
- Service Description: The consumers to access service need to know its interface details. The service provided interface details by using XML document which we call it as WSDL document and also XSD XML Schema definition.
- Finding Services: consumer needs to know where the services are there in repository to utilize it by binding it with client interface. The Universal Discovery, Description and integration called UDDI acts as service search engine to use it.