Redpaper Martin Keen Roland Barcia Karl Bishop Edward Delio Rashmi Kaushik Matthew Perrins Doug Phillips Gregg Vay Case Study: Web 2.0 SOA Scenario This IBM® Redpaper™ publication is one in a series of service-oriented architecture (SOA) papers that feature a case study involving a fictitious company named JKHL Enterprises (JKHLE). The focus of the case study in this paper is the Web 2.0 SOA scenario, and how JKHLE uses three realizations from this scenario to transform the company’s travel agency business. This paper focuses specifically on the following Web 2.0 realizations: RESTful Service Creation Rendering and Consuming RESTful Services User Interface (UI) Composition and Communication © Copyright IBM Corp. 2009. All rights reserved. ibm.com/redbooks 1 Web 2.0 technical overview Web 2.0 represents an evolving World Wide Web platform. Web 1.0 refers to connecting computers and making technology more efficient for computers. Web 2.0 is about connecting people and making technology efficient for people (see Figure 1). Interaction Transaction Conversation Feedback Customer Customers Web 1.0 Contributions Web 2.0 Figure 1 Web 1.0 and Web 2.0 Web 2.0 changes the way in which businesses interact with their customers. Note the following information about Web 2.0: It is about consumable services, rich Internet applications, and simplified programming models. It builds contextual relationships and facilitates knowledge sharing. It is about people and the way they collaborate. Representational State Transfer Representational State Transfer (REST) is the architectural model on which the World Wide Web is based. The popularity of REST is because of its simplicity and ease of consumption. REST provides the following principles: REST provides a resource-oriented approach to services (as opposed to an RPC-centric approach to services). All resources are addressable through relative URLs, for example /JKHLE/employees and /JKHLE/employees/sandy. REST typically uses HTTP as the transport protocol and supports HTTP GET POST, PUT, and DELETE. 2 Case Study: Web 2.0 SOA Scenario REST-style services are easy to access from code running in Web browsers (or any other client or server) and expose and leverage existing content. Leading practices in REST derive from using the Web as it was architected and intended to be used. Specifications of interest to REST are: HTTP, MIME, Media Types, and URI. For more information about REST, go to: http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm RESTful SOA A RESTful SOA (sometimes referred to as WOA or ROA) is an instance of SOA that uses concepts from the Web as the primary service architecture: Limits choices to more easily implement an SOA Primarily uses REST to represent and access services Encodes data as JSON or XML (including XML schemas like ATOM) Might use alternate approaches such as JSON-RPC when appropriate Supports Rich User Interfaces built using AJAX A REST-style architecture maintains SOA principles. It enables a component-centric model in which various server-side and client components can be reused in a scalable but simple way1. Introduction to the case study JKHL Enterprises (JKHLE), as mentioned, is a fictitious company that is looking to expand its travel agency division. In this section, we introduce the JKHLE company, look at the company’s business and technical challenges, and examine its current infrastructure (the as-is architecture). JKHL Enterprises in the travel industry JKHLE has a travel agency division that uses an online travel Web site to offer one-stop shopping for all travel services. The focus areas of the travel agency business are: Flight reservations Hotel reservations 1 Source: http://www.projectzer.org Case Study: Web 2.0 SOA Scenario 3 Cruise reservations Weather conditions Traffic conditions City information (such as directions and areas of interest) JKHLE wants to develop a best-of-breed travel Web site. This Web site should offer easy-to-use services for customers and simplify the company’s underlying business processes. JKHL Enterprises business challenges JKHLE is presented with the following business challenges that it must address: Provide a fast and easy architecture to deliver new products to consumers and partners quickly. Consume new interfaces from third parties such as weather and traffic reports. Remove business silos by leveraging SOA infrastructure and consumable service end points. Provide fast and simple, nondisruptive additions of new business data and services. Reduce call center costs. Expose business data to the public Internet in a consumable form. As-is architecture and technical challenges The current (as-is) architecture used by JKHLE is shown in Figure 2 on page 5. 4 Case Study: Web 2.0 SOA Scenario Enterprise HTTP Server JSP HTTP HTTPS Struts Airline Application Server Messaging MQ EMail HTTPS HTTPS SOAP Application Server HTTPS HTTPS SOAP Struts Hotel HTTP Server Java Application J2EE Application Client Web Browser Internet Service Tier Messaging MQ Cruise Application Server Weather Figure 2 As-is architecture This architecture presents the following technical challenges: Business policies are embedded in the business process. Changes to business policies require updates to the business process, which is slow, expensive, and error prone. As JKHLE continues to expand, this restriction becomes ever more important. Each business system operates in a silo, which causes significant problems when trying to realize a multiple-channel strategy for customers. Integrating third-party services into the overall solution is difficult. The inclusion of these third-party services is important, and helps to differentiate JKHLE’s travel offerings from the company’s competitors. Similarly, third-party companies are having difficulty integrating with JKHLE’s services, limiting the use of JKHLE’s travel services by external parties. Case Study: Web 2.0 SOA Scenario 5 Using the Web 2.0 SOA scenario realizations The Web 2.0 SOA scenario can be used to help JKHLE solve its business and technical challenges. This scenario defines three realizations: RESTful Service Creation realization Describes resource-based pattern that map to data sources. Rendering and Consuming RESTful Services realization Describes the formatting of data to be rendered, and the consuming of data based on RESTful service architectures. UI Composition and Communication realization Describes the presenting of data that is collected from RESTful services to users. Each realization can be combined or used individually to address a business solution. To-be architecture To solve its business and technical challenges, JKHLE builds a new architecture using the principles of the Web 2.0 SOA scenario. Figure 3 on page 7 shows this architecture, along with places where a realization is used. 6 Case Study: Web 2.0 SOA Scenario Consumer Channel Internet Service Domain Service Integration Domain Business Domain Restful Realization Internet Service Tier Weather Application Content HTML, PNG, JS Traffic Messaging MQ Integration HTTPS JSON, ATOM HTTP SOAP ESB RESTful Realization Service Proxy 3rd Parties Hotel HTTPS JSON RESTful Realization HTTPS JSON XML ATOM City Info WPS Data Power ESB Web Browser HTTP Server HTTP JS,PNG, HTML Airline Cruise HTTPS SOAP RESTful Realization EMail Figure 3 To-be architecture This to-be reference architecture offers the following advantages: Business logic and business policies are now separate entities, enabling the fast, simple, nondisruptive addition of variations into the process. Simplified development interfaces enable the JKHLE business process to more easily make calls to third-party services, and also make it easier for third party services to invoke JKHLE’s services. New services and new channels can be quickly integrated into the architecture. Solution pattern for clients and RESTful servers The to-be architecture adopted by JKHLE makes use of the design pattern between clients and RESTful servers, as shown in Figure 4 on page 8. Case Study: Web 2.0 SOA Scenario 7 Client Server Client Runtime Browser HTTP request (GET, POST, PUT, DELETE) RESTful Server HTTP response PAYLOAD(JSON,XML,ATOM,RSS) Stateful application. Session management, caching, sufficient state for services calls. Stateless RESTful services. Returns resource state and supporting information (iscacheable, last-modified, links to related resources). Figure 4 Solution pattern for clients and RESTful servers This solution pattern is used as follows: A client (typically a rich Internet application (RIA)) prepares a resource-based call to a RESTful server. The server returns a payload of JSON, XML, RSS or ATOM back to the client. This is consumed by the RIA or calling service. The client uses the GET, POST, PUT, or DELETE methods on XMLHttpRequest (XHR) calls to map to RESTful entity behaviors. Product mappings Figure 5 on page 9 shows the products used by JKHLE to implement the to-be reference architecture. 8 Case Study: Web 2.0 SOA Scenario Build Runtime Targeting Developers (Dojo) Targeting Business Users Rational Software Architect WebSphere Application Server IBM Mashup Center WebSphere sMash WebSphere sMash WebSphere DataPower Web Service Provider REST Consumer REST Provider Web Service Consumer Figure 5 Product mappings In the remaining sections of this paper, we provide more details about each realization and the products JKHLE used to implement each realization. Case Study: Web 2.0 SOA Scenario 9 RESTful Service Creation realization The RESTful Service Creation realization is used by JKHLE to address interactions between the Internet service domain and service integration domain as shown in Figure 6 on page 10. Consumer Channel Internet Service Domain Service Integration Domain Business Domain Application Content HTML, PNG, JS WPS Hotel HTTPS JSON XML ATOM HTTPS JSON, ATOM HTTPS SOAP Messaging MQ Integration Service Proxy 3rd Parties RESTful Realization ESB HTTPS JSON Data Power ESB Web Browser HTTP JS,PNG, HTML HTTP Server Internet Service Tier Airline Cruise HTTPS SOAP EMail Figure 6 Where JKHLE uses the RESTful Service Creation realization The following architectural considerations are relevant to the RESTful Service Creation realization: Data sources to create RESTful services (such as Web services, databases, and screen scraping) Java™ objects (such as Java beans, EJB™ 3 and JPA) Resource models map to back-end entities Security Governance 10 Case Study: Web 2.0 SOA Scenario Design patterns This section describes two design patterns for the RESTful Service Creation realization. The first design pattern in shown in Figure 7 on page 11. Each resource has a URL GET POST Browser PUT RESTful Service Adapter DELETE Each operation is an HTTP method Other Services (SOAP, and others) Figure 7 Design pattern This design pattern describes the following information: Existing legacy data is converted into a RESTful service. Each resource has a URI/URL and these resources are exposed by using the REST entity patterns. A simplified entity naming convention can be used. For example GetOrderServices?ordernumber=12345 changes to /rest/orders/12345. Each operation offered by the RESTful service is an HTTP method. For example a resource with the URI /JKHLE/hotel/reserve can be invoked by using GET /JKHLE/hotel/reserve. The RESTful service is responsible for calling the application service. This application service could be connected to an enterprise service bus on another back-end service through an adapter. The second design pattern is shown in Figure 8 on page 12 Case Study: Web 2.0 SOA Scenario 11 WebSphere Application Server Web 2.0 Feature Pack Java EE Application (EJB 3/Servlet) Remote System HTTP(s) expose Java EE Artifact as RESTful ... HTTP(s) X150 HTTP(s) HTTP(s) HTTP(s) Browser WebSphere Application Server Web 2.0 Feature Pack Java EE Application (EJB 3/Servlet) expose Java EE Artifact as RESTful ... HTTP(s) Provides Web 2.0 Security for existing RESTful/ Web 2.0 protocol endpoints. Browser HTTP(s) Other Provides security and transformation for non-Web 2.0 endpoints. Other Services (SOAP, etc...) Figure 8 Design pattern This design pattern describes how the pattern is built: Build Java Enterprise Edition (Java EE) artifacts such as EJBs, servlets, or reuse existing Java EE artifacts. Use the WebSphere® Application Server Feature Pack for Web 2.0 to expose these artifacts as JSON over HTTP or XML over HTTP entities. Use WebSphere DataPower® in the DMZ to add additional Web 2.0 security services and transformations where necessary. Deliver the correct HTTP content based on the client. For example deliver JSON to Web browsers and XML, ATOM, and RSS to other clients. Rendering and Consuming RESTful Services realization The Rendering and Consuming RESTful Services realization is used by JKHLE to address interactions between the consumer channel and the Internet service domain, as shown in Figure 9 on page 13. 12 Case Study: Web 2.0 SOA Scenario Consumer Channel Internet Service Domain Service Integration Domain Business Domain Application Content HTML, PNG, JS HTTPS JSON, ATOM ESB HTTPS SOAP Messaging MQ Integration Service Proxy 3rd Parties Hotel HTTPS JSON RESTful Realization HTTPS JSON XML ATOM WPS Data Power ESB Web Browser HTTP JS,PNG, HTML HTTP Server Internet Service Tier Airline Cruise HTTPS SOAP EMail Figure 9 Where JKHLE uses the Rendering and Consuming RESTful Services realization The following architectural considerations are relevant to the Rendering and Consuming RESTful Services realization: Response payloads (such as XML, JSON, ATOM, and RSS) Governance for REST interface grouping Security (including HTTPS and SPNEGO) Case Study: Web 2.0 SOA Scenario 13 Runtime considerations The following products can be used to implement the Rendering and Consuming RESTful Services realization: WebSphere Application Server Feature Pack for Web 2.0 – Exposes Java EE based artifacts through REST. WebSphere sMash – Provides a development and runtime environment for creating Web 2.0 applications. – Provides tight REST integration with Dojo widgets and Groovy or PHP scripting. WebSphere DataPower – Provides a Web 2.0 application with support for REST-SOAP and JS inspection. The role that these products play and the design patterns for using these products in the Rendering and Consuming RESTful Services realization are described in this section. WebSphere Application Server Feature Pack for Web 2.0 The Web 2.0 Feature Pack extends the capabilities of WebSphere Application Server with the following components: Web 2.0 to SOA connectivity This component is for enabling connectivity from Ajax clients to SOA services and other Java EE assets. This component extends enterprise data to customers and partners through Web feeds. Ajax messaging This component is for connecting Ajax clients to real-time updated data such as stock quotes or instant messaging. Ajax development toolkit This component is a best-in-class Ajax development toolkit for WebSphere Application Server based on Dojo, an open source JavaScript™ run time. The Web 2.0 Feature Pack can be used in the design pattern shown in Figure 10 on page 15. 14 Case Study: Web 2.0 SOA Scenario Ajax Ajax Browser Feed Reader JSON Ajax Proxy Atom / RSS Web Remoting Web Feeds SOA / JEE Assets WebSphere Application Server External Web Services Figure 10 Design pattern This design pattern enables connectivity with Ajax clients and mashups to external Web services, internal SOA services, and other Java EE assets. It extends enterprise data to customers and partners through Web feeds. WebSphere sMash WebSphere sMash enables developers to quickly build and execute agile, Web 2.0-based applications with PHP scripting, REST, and Dojo in an integrated runtime and tooling package. WebSphere sMash focuses on rapid time to market, ease of development and deployment, and convention over configuration. WebSphere sMash provides clean and simple REST interfaces. Each REST entity is defined by an event handler file, with unique functions that are mapped to the REST verbs. For example the REST verb POST is mapped to the event method onCreate() and has a sample URL of /resources/people. WebSphere sMash provides automatic transformation of response data to XML, JSON, and ATOM. WebSphere DataPower WebSphere DataPower is a family of specialized network appliances that help to integrate, simplify, secure, and accelerate SOA. WebSphere DataPower can be Case Study: Web 2.0 SOA Scenario 15 used to support the Rendering and Consuming RESTful Services realization in a number ways: RESTful resource aggregation – Scenario: A resource request spans multiple service implementations. The results of these calls have to be aggregated or assembled into a complex report. – Solution: WebSphere DataPower acts as an intermediary that defines an aggregate resource URI. This intermediary fans out requests to providers and aggregates responses. Media type transformation – Scenario: An existing provider implements a single media type, and clients require additional media types. – Solution: WebSphere DataPower acts as an intermediary that transforms the Accept header in the request message, and transfers the entity body and Content-Type header in the response message. This solution exploits wire-speed transformation. REST / SOAP mediation – Scenario: A provider supports REST but existing clients require SOAP. – Solution: WebSphere DataPower acts as an intermediary that exposes SOAP. It transforms request messages from SOAP to REST, and transforms response messages from REST to SOAP. Version mediation – Scenario: Consumers and providers evolve independently. The goal is to minimize the number of providers implementations. – Solution: WebSphere DataPower acts as an intermediary that proxies multiple resource versions. Resource requests are cast to newer versions. Any necessary heading and entity transformation, enrichment, or filtering is also performed. Quality of service mediation – Scenario: Consumers sign contracts that ration the use of resources. The usage contract must be monitored and enforced based on request rates and volume. – Solution: WebSphere DataPower acts as an intermediary that monitors and enforces quality of service limits, throttling and shaping requests as necessary. 16 Case Study: Web 2.0 SOA Scenario UI Composition and Communication realization The UI Composition and Communication realization is used by JKHLE to provide additional functionality in the business domain, as shown in Figure 11. Consumer Channel Internet Service Domain Service Integration Domain Business Domain Restful Realization Internet Service Tier HTTPS JSON XML ATOM Application Content HTML, PNG, JS City Info WPS Traffic Hotel HTTPS JSON, ATOM HTTP SOAP ESB Data Power ESB HTTPS JSON Messaging MQ Integration Service Proxy 3rd Parties Web Browser HTTP JS,PNG, HTML HTTP Server Weather Airline Cruise HTTPS SOAP RESTful Realization EMail Figure 11 Where JKHLE uses the UI Composition and Communication realization The following architectural considerations are relevant to the UI Composition and Communication realization: Stateless entities Frameworks (such as Dojo and JSF) Containers (such as portlets, iWdigets, and iViews) Governance Security (including HTTPS and single sign-on). Case Study: Web 2.0 SOA Scenario 17 Runtime and tool considerations A wide choice of client software and technologies is available, and IBM recognizes that it has to support all areas of this spectrum from heterogeneity to client SOA. To achieve this, IBM has the following strategy: Support UI aggregation through standards. This includes Web standards (such as JSR 53 and JSR 127), portlet applications (such as JSR 286, and JSR 168), mashups (such as OpenAjax and iWidget), and rich desktops/devices (such as Eclipse and iView). Deliver open aggregation through products. IBM promotes and accommodates technology for application content. This includes W3C open / Web standards and open frameworks for client containers (such as Web browsers and Lotus® Expeditor) and Eclipse and SWT for desktop and mobile applications. Support client UI integration through middleware. IBM fully supports integration between the user integration, edge integration, and SOA layers. The IBM end-to-end software client platform strategy is shown in Figure 12. 18 Case Study: Web 2.0 SOA Scenario Adobe Other Creative tools Suite Designer Tools Client Architecture Realization DHTML + Mashups Dojo + Mashups Local (light) Server Expeditor Browser Plug-in Profile Composite Application Shell Expeditor Desktop Server Client Interaction Services UI artifacts, data, etc. REST (or other) Server Infrastructure Client Runtime Eclipse, RAD, Widget Factory, Portlet Factory + Mashups, Zero App Builder Eclipse + RAD, Expeditor CAE + RAD, Expeditor Developer Tools Figure 12 The IBM end-to-end software client platform strategy Dojo Dojo is an Open Source DHTML toolkit written in JavaScript. Dojo enables you to easily build dynamic capabilities into Web pages. Dojo provides a lot of power and consists of three major layers: Dojo Core, Dijit, and DojoX. The Dojo Toolkit is a JavaScript toolkit for developing Ajax applications with rich user interfaces. It works well across most modern client containers and has a small footprint with high function. IBM supports the Dojo Toolkit; Ajax applications that are created in the Dojo Toolkit can be used with WebSphere Application Server and WebSphere Portal. The Dojo Toolkit is available for download at: http://www.dojotoolkit.org/ Case Study: Web 2.0 SOA Scenario 19 Design pattern WebSphere Portal and Dojo can be used to support the UI Composition and Communication realization as illustrated in the design pattern shown in Figure 13. Browser Portlet Portlet DOJO Dijit Service A Consumer DOJO Dijit DOJO Dijit Service B Consumer Service C Consumer DOJO Toolkit HTTP(s)-AJAX HTTP(s)-AJAX RESTful Secure Proxy (DataPower, WebSphere Portal, WebSphere Application Server) HTTP(s) RESTful Endpoint A RENDER INITIAL LAYOUT HTTP(s)-AJAX Portal Server HTTP(s) HTTP(s) RESTful Endpoint B RESTful Endpoint C Figure 13 Design pattern This design pattern describes the following information: WebSphere Portal supports portlets that are Ajax-enabled by using IBM Rational® Application Developer or Portlet Factory to generate these portlets. This approach allows for select fragment updates. Dojo Dijit is used to render widgets within the portlet. The portlet is written to invoke a RESTful service. 20 Case Study: Web 2.0 SOA Scenario Summary JKHL implements solutions that are based on all three realizations of the Web 2.0 SOA scenario: RESTful Service Creation realization Rendering and Consuming RESTful Services realization UI Composition and Communication realization Using these realizations enabled JKHLE to build a better travel agency Web site that provides a fast architecture to deliver new products and consume new services, removes business silos, and exposes business data to the Internet in a consumable form. IBM SOA Sandbox Get hands-on experience at no cost with the IBM SOA middleware portfolio in a Cloud environment through the IBM SOA Sandbox at: http://www.ibm.com/developerworks/downloads/soasandbox/ Case Study: Web 2.0 SOA Scenario 21 The team who wrote this IBM Redpaper This paper was produced by a team of specialists from around the world: Martin Keen is a Consulting IT Specialist, IBM International Technical Support Organization (ITSO). Roland Barcia is a Senior Technical Staff Member, IBM Software Service for WebSphere Web 2.0 Lead Architect. Karl Bishop is with Web Enablement and Support, IBM Software Services for WebSphere. Edward Delio is a Development Manager, IBM Optim™ Application Aware Products. Rashmi Kaushik is an SOA Scenarios Product Manager, SOA Portfolio Consumability. Matthew Perrins is an Executive IT Specialist, IBM SOA Strategy. Doug Phillips is an Advisory Software Engineer, IBM Software Services for WebSphere. Gregg Vay is a Software Engineer, IBM Business Partner Technical Strategy and Enablement. 22 Case Study: Web 2.0 SOA Scenario Notices This information was developed for products and services offered in the U.S.A. IBM may not offer the products, services, or features discussed in this document in other countries. Consult your local IBM representative for information on the products and services currently available in your area. Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to evaluate and verify the operation of any non-IBM product, program, or service. IBM may have patents or pending patent applications covering subject matter described in this document. The furnishing of this document does not give you any license to these patents. You can send license inquiries, in writing, to: IBM Director of Licensing, IBM Corporation, North Castle Drive Armonk, NY 10504-1785 U.S.A. The following paragraph does not apply to the United Kingdom or any other country where such provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you. This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the publication. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time without notice. Any references in this information to non-IBM Web sites are provided for convenience only and do not in any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the materials for this IBM product and use of those Web sites is at your own risk. IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring any obligation to you. Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. This information contains examples of data and reports used in daily business operations. To illustrate them as completely as possible, the examples include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to the names and addresses used by an actual business enterprise is entirely coincidental. COPYRIGHT LICENSE: This information contains sample application programs in source language, which illustrates programming techniques on various operating platforms. You may copy, modify, and distribute these sample programs in any form without payment to IBM, for the purposes of developing, using, marketing or distributing application programs conforming to the application programming interface for the operating platform for which the sample programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore, cannot guarantee or imply reliability, serviceability, or function of these programs. You may copy, modify, and distribute these sample programs in any form without payment to IBM for the purposes of developing, using, marketing, or distributing application programs conforming to IBM's application programming interfaces. © Copyright International Business Machines Corporation 2009. All rights reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. 23 This document REDP-4555-00 was created or updated on September 17, 2009. ® Send us your comments in one of the following ways: Use the online Contact us review Redbooks form found at: ibm.com/redbooks Send your comments in an email to: redbook@us.ibm.com Mail your comments to: IBM Corporation, International Technical Support Organization Dept. HYTD Mail Station P099, 2455 South Road Poughkeepsie, NY 12601-5400 U.S.A. Redpaper ™ Trademarks IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. These and other IBM trademarked terms are marked on their first occurrence in this information with the appropriate symbol (® or ™), indicating US registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at http://www.ibm.com/legal/copytrade.shtml The following terms are trademarks of the International Business Machines Corporation in the United States, other countries, or both: DataPower® IBM® Lotus® Optim™ Rational® Redpaper™ Redbooks (logo) WebSphere® ® The following terms are trademarks of other companies: EJB, Java, JavaScript, and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others. 24 Case Study: Web 2.0 SOA Scenario