Service-Oriented Architecture: Concepts and Implementation Mayur Mehta Sam Lee Jaymeen Shah McCoy College of Business Administration Texas State University-San Marcos Outline Introduction Services-Oriented Architecture (SOA) Web Services Why SOA? What is it? Benefits of SOA Implementation framework What is it? Role in SOA Core Elements SOA Implementations Discuss Implementation of Service-oriented Application using IBM Rational Application Developer Introduction Standalone applications Islands of automation Duplication of business logic Business requirements Collaborative business model (Andriole, 2006) Integration within and across organizational boundary Interoperability Rapid response to changes Create/modify business processes We need SOA…. Automate business processes Weave together functionalities from heterogeneous departmental applications Application integration Agile business processes Expose business-critical functionalities on mainframes Cost-effective alternative to tight integration of heterogeneous applications What is SOA? SOA is an application architecture in which all functions, or services, are defined using a description language and have invokable interfaces that are called to perform part of business processes. An application architecture Use open standards to represent software assets as services Consists of a collection of services Services are the building blocks for application development Functions, or services, defined using a description language Invokable interfaces perform business processes Primary emphasis is application integration across business processes What is SOA? (continued) At the heart of SOA is a collection of services Services used as the building blocks of applications Each component of SOA perform one or more of these roles (IBM, 2004): Service Provider:- publish the availability of services Service Broker:- register and categorize published services and provide search capabilities Service Requester:- use service broker to find a service and use it SOA SOA foundation Service Composition Description, publication, discovery, selection, and binding of basic services (Papazoglou & Georgakopoulos, 2003) Combining multiple services into a single composite service Service Management Provide detailed application performance statistics Assess application effectiveness SLAs Support Benefits of SOA Provide a standard based approach to develop/integrate applications A service only exposes its interfaces Create interoperable and reusable services (Uleman, 2006) Extend existing applications (expose legacy app as service) Create new applications in shorter time Reduce redundancies and effort duplication Reduce maintenance cost Break-down walls between developers Services are loosely coupled Benefits of SOA Adaptive and cost-effective to deploy, especially if integrating legacy apps. Update and optimize business processes as market conditions change Rapid and low cost application integration Role of Web Services in SOA One SOA implementation approach is to use Web-services as service components Web-services is the preferred method of building an SOA (IBM, 2004) Support rapid and low-cost composition of distributed applications (Papazoglou & Georgakopolous, 2003) Web Services Well-defined, self-contained, webenabled components Use XML and open-standards based technologies Platform- and language-neutral Enable communication between distributed components Web Services Simple Object Access Protocol (SOAP) Web Services Description Language (WSDL) Support communication between interacting Web services WSDL used for interface description Universal Description, Discovery and Integration (UDDI) Service registration (publish) and discovery Directory services containing WS descriptions SOA Components Service registry Service description Service description Service description Service requestor Bind Service provider Web Service Service Request Service Requestor XML/HTTP Service Provider Service Response Anytime, Any Where, Any Device Computing Web Services Standards (IBM 2004) Bus. Process Execution Language WS-Coordination WS-Security WS-Reliable Messaging Enterprise Quality of Service WS-Policy WS-Transactions WSDL Management UDDI SOAP, SOAP Attachments XML, XML Infoset WSIL Description and Discovery Other protocols Other services Messaging and Encoding Transports (HTTP, HTTPS, JMS, SMTP, FTP, etc.) Transport SOA Implementations Wachovia Bank (Margulius, 2006) SOA is used by several financial institutions (Sanchez, 2006) Verizon Communications Inc. Aloha Airlines Hartford Insurance Anatomy of Web Services Step 1: Directory Client Searches for Web Service and obtains a link to discovery document Step 2: Discovery Client requests discovery document, which contains a URL to description document. UDDI Step 3: Description Client Requests a Description Document and creates a Web service proxy Web Service Web Service Proxy Step 4: Interaction Client interacts with Web Service via Web Service Proxy An example of service-oriented application Facade SOAP/HTTP Business And Data Access Logic Web Service IIS Exchange Rate Web Service Video Database Implementation of Service-oriented Application using IBM Rational Application Developer Java Script Java Request Servlets Forward HTML Java Applets Java Response Server Pages Interaction Controller Model Enterprise Java Beans Entity Beans Java Beans DB Session Beans View HTTP Server EJB Server An example of service-oriented application Video Search JSP Application Database UML class diagram for representing model components Generating Web service using WebSphere This Java package includes the Web service proxy bean. Test JSP file WSDL document Servlet Implementation //get parameter String country = request.getParameter("country"); //instantiate a web service proxy VideoLookupProxy proxyVideo = new VideoLookupProxy(); //use a service method Catalog cBean = proxyVideo.getVideoCatalog(country); ... References 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Alur, D., Crupi, J., and Malks, D. (2001). “Core J2EE Patterns: Best Practices and Design Strategies.” Palo Alto, California: Sun Microsystems Press. Andriole, S.J. (2006). “The Collaborate/Integrate Business Technology Strategy.” Communications of the ACM, Vol. 49, No. 5, pp. 85-90. Bloomberg, J. (2005). “The SOA Pilot Pitfall.” www.zapthink.com, available at: http://www.zapthink.com/report.html?id=ZAPFLASH2005711 Brown, A.W., Delbaere, M., Eeles, P., Johnston, S., and Weaver, R. (2005). “Realizing Service-oriented Solutions with the IBM Rational Software Development Platform.” IBM Systems Journal, Vol. 44, No. 4, pp. 727-752. Fremantle, P., Weerawarana, S., and Khalaf, R. (2002). “Enterprise Services.” Communications of the ACM, Vol. 45, No. 10, pp. 77-82. IBM (2004). “Service-oriented Architectures and Web Services.” IBM Developerworks Technical Presentation, Texas State University, Fall 2004. Janssen, M., Gortmaker, J., and Wagenaar, R.W. (2006). “Web Service Orchestration in Public Administration: Challenges, Roles, and Growth Stages.” Information Systems Management, Spring, Vol. 23, No. 2, pp. 44–55. Joshi, P., Singh, H., and Phippen, A.D. (2004). “Web Services: Measuring Practitioner Attitude.” Internet Research, Vol. 14, No. 5, pp. 366-371. Margulius, D.L. (2006). “Banking on SOA.” InfoWorld, July 13, Available at: http://www.infoworld.com/article/06/07/13/29FEwachovia_1.html Mitchell, R.L. (2006). “Morphing the Mainframe.” Computerworld, Vol. 30, No. 5, pp. 29-31. Papazoglou, M.P. and Georgakopoulos (2003). “Services-oriented Computing.” Communications of the ACM, Vol. 46, No. 10, pp. 25-28. Sanchez, F. (2006). “The SOA Approach to Integration and Transformation.” U. S. Banker, Vol. 116, July 2006, pp. 12-13. Stencil (2002). “The Laws of Evolution: A Pragmatic Analysis of the Emerging Web Services Market.” The Stencil Group: http://www.stencilgroup.com. Takagiwa, O., Korchmar, J., Lindquist, A., and Vojtko, M. (2002). “WebSphere Studio Application Developer Programming Guide (1st ed.).” San Jose, California: IBM Corporation, International Technical Support Organization. Uleman, R. (2006). “Service Oriented Architecture Unveiled.” Geospatial Solutions, Vol. 16, No. 6, pp. 30-33. Watt, E.R., Denoncourt, D., Lee, S., Stevens, R., and Cancilla, B. (2002). “Understanding e-Business Application Integration.” Double Oak, Texas: MC Press, LLC. W3C Web Services Architecture Group (2004). “Web Services Architecture Requirements.” Editors: Austin, D., Barbir, A., Ferris, C. and Garg, S., Available at: http://www.w3.org/TR/2004/NOTE-wsa-reqs-20040211/ Yang, J., “Web service componentization,” Communications of the ACM, Oct. 2003, 46(10).