Front Cover Patterns: Service- Oriented Architecture And .

Transcription

Front coverPatterns: ServiceOriented Architectureand Web ServicescesDesign service-oriented architecturesusing Web servicesExplore service bus, directory,and gateway solutionsLearn by example withpractical scenariosMark EndreiJenny AngAli ArsanjaniSook ChuaPhilippe ComtePål KrogdahlMin LuoTony Newlingibm.com/redbooks

International Technical Support OrganizationPatterns: Service-Oriented Architecture and WebServicesApril 2004SG24-6303-00

Note: Before using this information and the product it supports, read the information in“Notices” on page ix.First Edition (April 2004)This edition applies to IBM WebSphere Application Server base V5.1, IBM WebSphereApplication Server Network Deployment V5.0.2.4, IBM WebSphere MQ V5.3, and IBMWebSphere Studio Application Developer V5.1.1, for use with IBM AIX 5.1, Red Hat LinuxAdvanced Server V2.1, and Microsoft Windows 2000. Copyright International Business Machines Corporation 2004. All rights reserved.Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADPSchedule Contract with IBM Corp.

ContentsNotices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ixTrademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xPreface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiThe team that wrote this redbook. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiBecome a published author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xivComments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xivChapter 1. Patterns for e-business . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1 The Patterns for e-business layered asset model . . . . . . . . . . . . . . . . . . . . 31.2 How to use the Patterns for e-business . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2.1 Business, Integration, or Composite pattern, or a Custom design . . . 51.2.2 Selecting Application patterns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.2.3 Review Runtime patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.2.4 Review Product mappings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.2.5 Review guidelines and related links . . . . . . . . . . . . . . . . . . . . . . . . . 141.3 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Chapter 2. Service-oriented architecture . . . . . . . . . . . . . . . . . . . . . . . . . . 172.1 Overview of service-oriented architecture . . . . . . . . . . . . . . . . . . . . . . . . . 182.1.1 The business drivers for a new approach . . . . . . . . . . . . . . . . . . . . . 182.1.2 Service-oriented architecture as a solution . . . . . . . . . . . . . . . . . . . . 202.1.3 A closer look at service-oriented architecture . . . . . . . . . . . . . . . . . . 242.1.4 Service-oriented architecture benefits. . . . . . . . . . . . . . . . . . . . . . . . 302.2 Web services architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.2.1 What Web services are . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.2.2 Web service interoperability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342.3 Web services and service-oriented architecture . . . . . . . . . . . . . . . . . . . . 372.4 Enterprise Service Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382.4.1 Basic Web services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382.4.2 What an Enterprise Service Bus is . . . . . . . . . . . . . . . . . . . . . . . . . . 392.4.3 The IBM vision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402.5 Where to find more information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Chapter 3. Service-oriented architecture and Patterns for e-business . . 453.1 Using service-oriented architecture with Patterns for e-business . . . . . . . 463.2 Self-Service business pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473.3 Extended Enterprise business pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . 483.4 Application Integration pattern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Copyright IBM Corp. 2004. All rights reserved.iii

3.4.1 Process Integration concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493.4.2 Application Integration application patterns . . . . . . . . . . . . . . . . . . . 503.4.3 Direct Connection application pattern . . . . . . . . . . . . . . . . . . . . . . . . 523.4.4 Broker application pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.4.5 Serial Process application pattern. . . . . . . . . . . . . . . . . . . . . . . . . . . 553.4.6 Parallel Process application pattern . . . . . . . . . . . . . . . . . . . . . . . . . 573.5 Runtime patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583.5.1 Node types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583.5.2 Runtime patterns for Direct Connection . . . . . . . . . . . . . . . . . . . . . . 623.5.3 Runtime patterns for Broker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673.6 Product mappings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693.6.1 Products used in these mappings . . . . . . . . . . . . . . . . . . . . . . . . . . . 703.6.2 Product mappings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Chapter 4. Service-oriented architecture approach . . . . . . . . . . . . . . . . . . 794.1 The SOA approach and Patterns for e-business. . . . . . . . . . . . . . . . . . . . 804.1.1 Service identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 804.1.2 Patterns for e-business and SOA . . . . . . . . . . . . . . . . . . . . . . . . . . . 804.2 Business scenario: Supply chain management. . . . . . . . . . . . . . . . . . . . . 824.3 Steps of the SOA approach. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834.3.1 Domain decomposition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 854.3.2 Goal-service model creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904.3.3 Subsystem analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 924.3.4 Service allocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964.3.5 Component specification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974.3.6 Structure components and services using patterns . . . . . . . . . . . . . 984.3.7 Technology realization mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004.4 Summary and conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044.5 Where to find more information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104Chapter 5. Technology options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1095.1.1 Advantages of Web services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1095.1.2 Disadvantages of Web services . . . . . . . . . . . . . . . . . . . . . . . . . . . 1095.2 Transport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1105.2.1 HTTP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1105.2.2 Java Message Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115.2.3 Simple Mail Transfer Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1135.2.4 HTTPR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1155.2.5 Emerging standards for transport . . . . . . . . . . . . . . . . . . . . . . . . . . 1155.3 Service communication protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1165.3.1 SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1175.4 Service description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120ivPatterns: Service-Oriented Architecture and Web Services

5.4.1 XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1215.4.2 WSDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1235.4.3 ebXML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1255.5 Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1285.5.1 Web services and J2EE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1295.5.2 Web Services Invocation Framework . . . . . . . . . . . . . . . . . . . . . . . 1325.6 Business process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1335.6.1 WSFL and XLANG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1355.6.2 Emerging standards for business process . . . . . . . . . . . . . . . . . . . 1365.7 Service registry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1395.7.1 Static and dynamic Web services . . . . . . . . . . . . . . . . . . . . . . . . . . 1405.7.2 UDDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1415.7.3 Emerging standards for service registry . . . . . . . . . . . . . . . . . . . . . 1435.8 Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1445.8.1 Emerging standards for policy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1445.9 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1455.9.1 Security at the transport layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1495.9.2 Security at the service communication protocol layer . . . . . . . . . . . 1505.9.3 Security at the service description layer . . . . . . . . . . . . . . . . . . . . . 1505.9.4 Emerging standards for security . . . . . . . . . . . . . . . . . . . . . . . . . . . 1515.9.5 Where to find more information. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1535.10 Transaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1535.10.1 Emerging standards for transaction . . . . . . . . . . . . . . . . . . . . . . . 1545.10.2 Where to find more information. . . . . . . . . . . . . . . . . . . . . . . . . . . 1555.11 Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1565.11.1 Emerging standards for management . . . . . . . . . . . . . . . . . . . . . . 157Chapter 6. HTTP service bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1596.1 Business scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1606.2 Design guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1606.2.1 Design overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1616.2.2 Service design considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1646.2.3 Component design considerations . . . . . . . . . . . . . . . . . . . . . . . . . 1806.2.4 Object design considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1866.3 Development guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1876.3.1 Getting started. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1886.3.2 Importing the supplied WSDL files . . . . . . . . . . . . . . . . . . . . . . . . . 1886.3.3 Service development considerations . . . . . . . . . . . . . . . . . . . . . . . 1906.3.4 Service consumer (client) development considerations . . . . . . . . . 2006.3.5 Testing considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2106.4 Runtime guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2146.4.1 Service deployment considerations . . . . . . . . . . . . . . . . . . . . . . . . 2146.5 Best practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223Contentsv

6.5.16.5.26.5.36.5.4Design best practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224Interoperability best practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225Java implementation best practices . . . . . . . . . . . . . . . . . . . . . . . . 225Performance best practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226Chapter 7. JMS service bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2297.1 Business scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2307.2 Design guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2307.2.1 Design overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2317.2.2 Service design considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2337.2.3 Component design considerations . . . . . . . . . . . . . . . . . . . . . . . . . 2377.2.4 Object design considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2387.3 Development guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2387.3.1 Service development considerations . . . . . . . . . . . . . . . . . . . . . . . 2387.3.2 Service consumer (client) development considerations . . . . . . . . . 2457.4 Runtime guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2467.4.1 Service deployment considerations . . . . . . . . . . . . . . . . . . . . . . . . 2467.4.2 Service consumer (client) deployment considerations . . . . . . . . . . 2477.4.3 Testing considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248Chapter 8. Service directory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2518.1 Business scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2528.2 Design guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2548.2.1 Design overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558.2.2 Service design considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2578.3 Development guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2588.3.1 UDDI development tools and APIs . . . . . . . . . . . . . . . . . . . . . . . . . 2588.3.2 Service development considerations . . . . . . . . . . . . . . . . . . . . . . . 2608.3.3 Service consumer (client) development considerations . . . . . . . . . 2658.3.4 Testing considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2688.4 Runtime guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2698.4.1 Service deployment considerations . . . . . . . . . . . . . . . . . . . . . . . . 2698.5 Best practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2758.5.1 Using UDDI and WSDL together. . . . . . . . . . . . . . . . . . . . . . . . . . . 2758.5.2 WebSphere Studio and WebSphere UDDI registry differences . . . 2768.5.3 Dynamic or static discovery during the Web service life cycle . . . . 2768.5.4 LDAP and UDDI considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . 278Chapter 9. Web service gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2799.1 Business scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2809.2 IBM Web Services Gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2819.3 Design guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2849.3.1 Design overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2849.3.2 Service design considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287viPatterns: Service-Oriented Architecture and Web Services

9.4 Runtime guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2899.4.1 Service deployment considerations . . . . . . . . . . . . . . . . . . . . . . . . 2899.4.2 Service consumer (client) deployment considerations . . . . . . . . . . 2979.4.3 Testing considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300Chapter 10. e-business on demand and Service-oriented architecture. 30110.1 e-business on demand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30210.2 The on demand operating environment . . . . . . . . . . . . . . . . . . . . . . . . 30410.2.1 Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30710.2.2 Automation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31310.2.3 Virtualization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31810.3 Service-oriented architecture for on demand . . . . . . . . . . . . . . . . . . . . 32010.3.1 The starting point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32110.3.2 Building the on demand operating environment . . . . . . . . . . . . . . 32210.3.3 On demand technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324Appendix A. Scenarios lab environment. . . . . . . . . . . . . . . . . . . . . . . . . . 329Lab setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330Sample application setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330Appendix B. Additional material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333Locating the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333Using the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333System requirements for downloading the Web material . . . . . . . . . . . . . 334How to use the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334Abbreviations and acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337Other publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337Online resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338How to get IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341Contentsvii

viiiPatterns: Service-Oriented Architecture and Web Services

NoticesThis 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. Consultyour 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 IBMproduct, program, or service may be used. Any functionally equivalent product, program, or service thatdoes not infringe any IBM intellectual property right may be used instead. However, it is the user'sresponsibility 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 licenseinquiries, 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 provisionsare inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDESTHIS 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 disclaimerof 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 madeto the information herein; these changes will be incorporated in new editions of the publication. IBM maymake improvements and/or changes in the product(s) and/or the program(s) described in this publication atany time without notice.Any references in this information to non-IBM Web sites are provided for convenience only and do not in anymanner serve as an endorsement of those Web sites. The materials at those Web sites are not part of thematerials 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 withoutincurring any obligation to you.Information concerning non-IBM products was obtained from the suppliers of those products, their publishedannouncements or other publicly available sources. IBM has not tested those products and cannot confirmthe accuracy of performance, compatibility or any other claims related to non-IBM products. Questions onthe 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 themas 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 businessenterprise is entirely coincidental.COPYRIGHT LICENSE:This information contains sample application programs in source language, which illustrates programmingtechniques on various operating platforms. You may copy, modify, and distribute these sample programs inany form without payment to IBM, for the purposes of developing, using, marketing or distributing applicationprograms conforming to the application programming interface for the operating platform for which thesample 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 ofdeveloping, using, marketing, or distributing application programs conforming to IBM's applicationprogramming interfaces. Copyright IBM Corp. 2004. All rights reserved.ix

TrademarksThe following terms are trademarks of the International Business Machines Corporation in the United States,other countries, or both:alphaWorks AIX Cloudscape CICS developerWorks Domino DB2 Universal Database DB2 e-business on demand Everyplace IBM ibm.com IMS iSeries Lotus pSeries Rational Redbooks Redbooks (logo)RACF S/360 Tivoli TotalStorage WebSphere XDE z/OS zSeries The following terms are trademarks of other companies:ActionMedia, LANDesk, MMX, Pentium and ProShare are trademarks of Intel Corporation in the UnitedStates, other countries, or both.Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in theUnited States, other countries, or both.Java and all Java-based trademarks and logos are trademarks or registered trademarks of SunMicrosystems, Inc. in the United States, other countries, or both.C-bus is a trademark of Corollary, Inc. in the United States, other countries, or both.UNIX is a registered trademark of The Open Group in the United States and other countries.SET, SET Secure Electronic Transaction, and the SET Logo are trademarks owned by SET SecureElectronic Transaction LLC.Other company, product, and service names may be trademarks or service marks of others.xPatterns: Service-Oriented Architecture and Web Services

PrefaceThe Patterns for e-business are a group of proven, reusable assets that can beused to increase the speed of developing and deploying Web applications. ThisIBM Redbook focuses how the Self-Service and Extended Enterprise businesspatterns, and the Application Integration pattern, can be used to startimplementing solutions using the service-oriented architecture approach.It guides you through the process of selecting and applying Business, Applicationand Runtime patterns. Next, the platform-specific Product mappings areidentified based upon the selected Runtime pattern.The book presents guidelines for applying the Patterns and service-orientedarchitecture approach to a sample business scenario and for selecting Webservices technologies.It provides detailed design, development, and runtime guidelines for severalscenarios, including synchronous and asynchronous service buses, UDDIservice directory, and the Web Services Gateway.The book concludes with an examination of how a service-oriented architecturecan provide a step in the direction of IBM’s e-business on-demand vision.The team that wrote this redbookThis redbook was produced by a team of specialists from around the worldworking at the International Technical Support Organization, Raleigh Center. Copyright IBM Corp. 2004. All rights reserved.xi

Figure 1 The IBM Redbook team (Left to right: Min Luo, Mark Endrei, Philippe Comte,Pål Krogdahl, Jenny Ang, Tony Newling, Not present: Ali Arsanjani, Sook Chua)Mark Endrei is an IT Architect at the International Technical SupportOrganization, Raleigh Center. He writes about WebSphere and Patterns fore-business. Before joining the ITSO early in 2001, Mark worked in IBM GlobalServices Australia as an IT Architect. He holds a bachelor's degree in ComputerSystems Engineering from the Royal Melbourne Institute of Technology, and anMBA in Technology Management from Deakin University/APESMA.Jenny Ang is a Consulting IT Architect with the Enterprise Architecture andTechnology Center of Excellence, IBM Global Services US. She has in-depthknowledge of all phases of the software development life cycle applyingobject-oriented methods and techniques. As a solution and application architect,she is currently focused on service-oriented architectures, Web services andWeb-based development projects which exploit J2EE technologies. She holds aBachelor of Engineering degree in Civil and Structural Engineering and apost-graduate diploma in Systems Analysis from the National University ofSingapore.Ali Arsanjani is a Senior Consulting IT Architect and Chief Architect in the SOAand Web Service Center of Excellence in IBM Global Services, US. He has 21years of experience in software development and architecture. He holds a PhD inComputer Science from DeMontefort University. His areas of expertise includepatterns, component-based and service-oriented software architecture andmethods. He has written extensively on patterns, service-oriented architecture,component-based development and integration, business rules and dynamicallyre-configurable software architecture.xiiPatterns: Service-Oriented Architecture and Web Services

Sook Chua is a Senior Consultant with IBM Business Consulting Services. Shehas more than 10 years of experience in architecting and implementingenterprise-wide, mission-critical systems. She holds a Master of Science inSoftware Engineering from the National University of Singapore. Her areas ofexpertise include object-oriented architectural design and leading customapplication development using J2EE technologies.Philippe Comte is an IBM SWG IT Architect in France. He has 20 years ofexperience in IT. He has a degree in Business Management from theESSEC-Paris School of Economics. His areas of expertise include largecentralized applications, collaborative and middleware systems.Pål Krogdahl is a Consulting IT Architect with IBM Business ConsultingServices, IGS in Sweden. He has been working for IBM since 1998, in variousareas such as software development, technical pre-sales consulting and solutionarchitecture. His areas of expertise are in Distributed Computing, middlewareand Application Services Architecture, with focus on Enterprise ApplicationIntegration (EAI) and service-oriented architecture (SOA).Dr Min Luo is a Certified Consulting IT Architect in the IBM Global ServiceCenter of Excellence for Enterprise Architecture and Technology, and for ServiceOriented Architecture and Web Services. He has over 15 years of IT industryexperience, and has taught undergraduate and graduate Computer Sciencecourses for over seven years. He has

Patterns: Service-Oriented Architecture and Web Servicesces Mark Endrei Jenny Ang Ali Arsanjani Sook Chua Philippe Comte Pål Krogdahl Min Luo Tony Newling Design service-oriented architectures using Web services Explore service bus, directory, and ga