Service-Oriented Architecture (SOA)


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Service-Oriented Architecture (SOA)

  1. 1. Service-Oriented Architecture (SOA) A White Paper by: Abhishek Agrawal Director - Business Development Rightway Solution (India) Pvt. Ltd. March 2009 Service-Oriented Architecture (SOA) Service-Oriented Architecture (SOA) is an architectural style whose primary goal is to achieve loose coupling or minimal dependency among interacting software agents. The idea of SOA departs significantly from that of object-oriented client server programming, which strongly suggests that you should bind data and its processing together. SOA introduces the concept of interacting software agents – service provider and service consumer. Service provider provides a service which the service consumer consumes. The provisioning of the service is over the Internet or Intranet. 1 of 4
  2. 2. Figure 1: Software Agents in SOA Architecture A service: Is an implementation of a well-defined business functionality, such as check customer credit, provide weather data, consolidate drilling reports Can be consumed by clients in multiple applications or business processes Is self-contained May be composed of other services Appears as a composite whole to consumers of the service Is implementation-independent and can be developed in many development environments Features Of SOA Some of the features of SOA are listed below: SOA requires separation of the service interface from its implementation. The consumers only interact with the interfaces and are not concerned with how these services will execute their requests. Services are self-contained and modular in design which ensures that any changes in them do not need to be reflected in the consumer's design. SOA promises interoperability between heterogeneous applications and technologies. For instance, a service can be built using Microsoft technologies and the consumer using Java technologies. SOA Ecosystem To make a service available for use by consumers, the service providers register their service in a public registry. A registry is nothing but a collection of services, their description and their addresses. The registry is used by consumers to find services that match their requirements. If the registry has a service with matching criteria, it provides the consumer with the address for that service. The consumer accesses the service, binds to the service by calling its visible interfaces and invokes the methods provided by the service. SOA's find-bind-execute paradigm is shown in the following diagram. Figure 2: Find-Bind-Execute Paradigm of SOA SOA Way Before SOA can be implemented, the system designers should first identify the existing applications and new business processes that have to be implemented as services. The SOA implementation project is an iterative one composed of three phases: Expose, Compose, and Consume. Expose: The expose phase of SOA focuses on the existing applications and data that are to be exposed as services. If the existing applications can be exposed as services then new applications in service-enabling technologies are created. The expose phase also specifies how the services are implemented. Compose: Services can be combined into more complex services or cross-functional business processes. As the services exist independently, they can be combined and reused with maximum flexibility. Consume: Once a new application has been created and existing applications have been marked as service-ready, that service is made available for access by clients which can be other IT systems or end-users. Clients can consume the service through a number of ways, including web portals, rich clients, Microsoft Office business applications, and mobile devices. Benefits Of SOA SOA provides the framework using which the creation and management of integrated systems and applications are simplified and a company's IT assets are aligned with the business model. Some of the ways in which an organization's business infrastructure is benefitted are as follows: Productivity and flexibility: SOA leverages the existing systems and applications to become more productive and more profitable to the business. SOA also enables development of new applications with cross-functional capabilities which can interoperate with each other irrespective of the underlying platforms and development language. Speed and cost-effectiveness: The design of a service is standardized and one service can be used in multiple applications. Therefore, the services that can be combined into 2 of 4
  3. 3. higher-level, composite services as new business needs arise. This lowers the cost of solution development and testing, reduces redundancy, and speeds time to business value. Manageability and security: SOA enables the consumer applications to access the services and not the applications running behind those services. This provides the means for protecting existing applications without inhibiting the deployment of new capabilities. As a strong authentication and authorization model is used for all services and as services exist independently of one another, the SOA approach provides greater overall security. SOA And Web Services The most prevalent way of realizing SOA is using Web services. While SOA provides the principles, Web services provide a strategy using which SOA can be implemented. Web services can also be defined as software systems which support interoperable machine-to-machine interaction over a network. Web services are developed using a set of XML-based open standards, such as Web Service Definition Language (WSDL), Simple Object Access Protocol (SOAP), and Universal Description Discovery and Integration (UDDI). These standards provide a common way for defining, publishing, and using Web services. Web services are created using development environments and deployed on the Application server. Many companies like Sun, Microsoft, IBM, HP, and others provide tools that enable creation and deployment of Web services. Sun's Support for SOA Sun provides Java Web Services Developer Pack and Java 2 Platform, Enterprise Edition (J2EE) to develop Web services that implement SOA. The J2EE platform enables you to build using wizards and deploy Web services on the Application server platform. It provides all the tools required for building, testing, and deploying Web services and service consumers. These consumers can interoperate with different kinds of Web services running on Java- or non-Java-based platforms. Moreover, these tools enable businesses to expose their existing J2EE applications as Web services. Servlets and Enterprise Java Beans (EJBs) can be converted to Web services that can be accessed by Java- and non-Java-based consumers. J2EE applications can act as Web service consumers themselves and they can communicate with other Web services, regardless of how they are developed. Microsoft's Support for SOA All aspects of SOA architecture can be built using Microsoft technologies. Visual Studio is the professional development environment for building applications on the Windows platform. The .NET Framework provides Web services support that enables .NET developers to develop, discover, debug, deploy, and consume Web services using any of the more than 20 programming languages supported on .NET. The additional components of the .NET Framework 3.0 for building and leveraging Web services are Windows Communication Foundation (WCF), Windows Workflow Foundation (WF), Windows CardSpace, and Windows Presentation Foundation. Visual Studio enables consumption of Web services in Windows, Web, Mobile and Office-based applications. Other Microsoft products that can consume Web services are Windows Vista and Microsoft Office. Moving Towards SOA Most of the successful information design companies have shown a keen interest in SOA and have even specified the strategy and roadmap for SOA implementation. Sun has introduced SOA Readiness Assessment which helps companies move towards service orientation. Oracle has added SOA-based study materials in its knowledge base which consists of best practices and design patterns. It is available for public viewing. IBM on the other hand, has introduced a prescription 5-phase approach to service orientation which starts with Strategizing for SOA and ends with Managing SOA. Microsoft has also added SOA as one of the core capabilities in the Application Platform Infrastructure Optimization (APIO) model. This model is used as a tool by companies to assess the maturity of the existing technology platform and identify possible products or solutions that help them reach their desired state. Conclusion The introduction of SOA offers potential for lower costs and greater flexibility. An important feature of SOA is the separation of service access from service implementation. The services are consumed by clients that are not concerned with how these services will execute their requests and using what platform the services were developed. This opens up a plethora of opportunities in the area of application inter-operability. References Open Group, SOA Source Book, (Accessed on: 25th February, 2009) Qusay H. Mahmoud, Service-Oriented Architecture (SOA) and Web Services: The Road to Enterprise Application Integration (EAI), /technicalArticles/WebServices/soa/ (Accessed on: 25th February, 2009) Hao He, What Is Service-Oriented Architecture, (Accessed on: 25th February, 2009) Service-oriented architecture (SOA) definition, (Accessed on: 25th February, 2009) John Fronckowiak, SOA Best Practices and Design Patterns, (Accessed on: 25th February, 2009) Microsoft, Enabling "Real World SOA" through the Microsoft Platform, DisplayLang=en (Accessed on: 25th February, 2009) IBM, Extend the value of your core business systems., (Accessed on: 25th February, 2009) For more information, visit, or write to Corporate Head Office Rightway Solution (India) Pvt. Ltd. A/301, 3rd Floor, Smita Tower Opp. Vishramnagar Garden Nr. Subhas Chowk Gurukul Road, Ahmedabad - 380052 Gujarat, INDIA 3 of 4
  4. 4. Telephone: +91 79 27493698 / 27439921 Fax: +91 79 40037106 4 of 4