Service Oriented Architecture|
The Whirlpool Case|
Service oriented architecture (SOA) is an approach to build IT systems that connects applications across a network via a common communications protocol, allowing organizations to reuse old software, often with the help of Web services to create new business processes and functions. It is a set of design principles and approaches to software development and a methodology for organizing and using independent services by making them interact with each other. The SOA implementation relies on a mesh of software services. Services comprise unassociated, loosely coupled units of functionality that have no calls to each other embedded in them. Each service is cohesive that implements one action. Rather than services embedding calls to each other in their source code, they use defined protocols that describe how services pass and parse messages. XML (Extensible Markup Language) is the standard messaging language used by services to communicate. It is a set of rules for encoding messages in machine-readable form. SOA has some architectural alternatives like:
Client Server – This architecture describes the relationship between two computer programs in which one program, the client, makes a service request from another program, the server, which fulfills the request, for example the World Wide Web. Centralized processing that takes places at the server is a major issue which can be a performance bottleneck whereas in SOA the processing is highly distributed. SOA allows many options for deploying services on multiple servers with supporting middleware. In Client Server architecture each client houses the application code and every code update requires redistribution to all the clients. P2P (Peer to Peer) - In a peer-to-peer (P2P) architecture every participant is independent and equal. Central components or services which are used by all other participants should not exist. Every participant provides services to and also consumes services from others. The whole infrastructure is dynamic and self-organizing, which leads to a high level of flexibility but on the other hand reliability cannot be granted. The technology behind peer-to-peer networks is relatively young and mainly used in the field of sharing scenarios. In practice most peer-to-peer architectures use some central components like index servers or registries for better performance but with the disadvantage of providing single points of failure. Without using central services it is very difficult to find resources needed in a suitable amount of time. P2P networks are well suited for highly dynamic environments. SOA implementation is much more reliable and suited for organizations as the where the environment is static. SOA as a methodology is more matured that P2P which is still in its infancy.
What are the disadvantages of SOA?
The main disadvantage while implementing SOA is security. Organizations must ensure that sensitive data is encrypted while in transit. Traditional application security is ineffective and unwieldy in SOA because identity and access rights (including passwords and privileges) vary among applications. In an SOA environment, the same business service may be used in different ways. Organizations must have a security structure in place that indicates the access rights in each circumstance. Another challenge while implementing SOA is to provide a unified view and access to data across different business services. Reusing old software for new business processes is a great advantage, but it could be a weak point for most enterprises because their customer data evolve over time.
The future of SOA will be an increase in performance. It has been shown that SOA provides real value to most businesses today but there is room to increase its efficiency. For some businesses, SOA has not been able to keep up with the rapid change in the...