Front cover
WebSphere Version 6 Web Services Handbook Development and Deployment
WebSphere Application Server V6.0 Rational Application Developer V6.0
Latest Web services technologies and standards
Best practices and advanced techniques
Ueli Wahli Thomas Kjaer Brett Robertson Fumiko Satoh Franz-Josef Schneider Witold Szczeponik Chris Whyley
ibm.com/redbooks
International Technical Support Organization
WebSphere Version 6 Web Services Handbook Development and Deployment
July 2005
SG24-6461-00
Note: Before using this information and the product it supports, read the information in “Notices” on page xix.
First Edition (July 2005)
This edition applies to IBM WebSphere Application Server Version 6.0 and IBM Rational Application Developer for WebSphere Software Version 6.0.
Most of the samples have been validated with early code of IBM Rational Application Developer Version 6.0.1, and the necessary changes are indicated in the text.
© Copyright International Business Machines Corporation 2005. All rights reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents
Notices ...... xix Trademarks ...... xx
Preface ...... xxi Changes to the previous redbook SG24-6891 ...... xxii The team that wrote this redbook...... xxiii Become a published author ...... xxvi Comments welcome...... xxvi
Part 1. Web services concepts ...... 1
Chapter 1. Web services introduction ...... 3 Introduction...... 4 Service-oriented architecture ...... 4 Characteristics ...... 6 Requirements ...... 6 Web services ...... 7 Properties of Web services ...... 9 A short history of Web services...... 10 Summary ...... 12 More information ...... 12
Chapter 2. Web services standards...... 13 Categorization of Web services standards...... 14 Core standards ...... 16 Description and discovery ...... 17 Messaging...... 20 Management ...... 23 Business processes ...... 25 Transactions ...... 26 Security ...... 27 User experience ...... 29 J2EE 1.4 and Java JSRs ...... 30 Web services organizations and groups ...... 34 Internet Engineering Task Force...... 34
Java Community Process ...... 34 OASIS ...... 35 World Wide Web Consortium ...... 35 Web Services Interoperability Organization ...... 35
© Copyright IBM Corp. 2005. All rights reserved. iii UDDI ...... 36 Companies working on Web services ...... 36 IBM ...... 36
Microsoft ...... 36 Vertical industry standards organizations...... 37 Summary ...... 38 More information ...... 38
Chapter 3. Introduction to SOAP ...... 39 Overview ...... 40 The three pillars of SOAP...... 41 Overall message format: Envelope with header and body ...... 41 Encoding rules ...... 42 RPC representation...... 42 SOAP elements ...... 44 Namespaces ...... 44 URN ...... 45 SOAP envelope...... 45 Headers...... 46 Body ...... 48 Error handling ...... 48 Advanced topics ...... 49 Data model ...... 49 Mappings...... 51 Communication styles ...... 52 Encodings ...... 54 Messaging modes ...... 55 Implementations ...... 56 SOAP implementation general architecture ...... 56 Apache SOAP 2.3 implementation ...... 57 Apache Axis ...... 62 WebSphere Web services engine...... 64 Microsoft SOAP Toolkit ...... 65 Other toolkits and server implementations ...... 65 Outlook ...... 65 Summary ...... 66 More information ...... 67
Chapter 4. Introduction to WSDL...... 69 Overview ...... 70 WSDL document ...... 70 WSDL document anatomy ...... 71 WSDL definition ...... 77
iv WebSphere Version 6 Web Services Handbook Types ...... 77 Messages ...... 78 Port types ...... 79
Bindings ...... 81 Service definition...... 82 Port definition ...... 83 WSDL bindings...... 83 SOAP binding ...... 84 HTTP binding ...... 85 MIME binding ...... 86 WSDL API ...... 86 Outlook ...... 88 Summary ...... 89 More information ...... 89
Chapter 5. JAX-RPC (JSR 101)...... 91 Terminology: JAX-RPC and JSR 101 ...... 92 JAX-RPC basics ...... 92 JAX-RPC client...... 94 JAX-RPC client programming styles ...... 95 Static stub ...... 96 Dynamic proxy ...... 97 Dynamic invocation interface (DII) ...... 98 Which style to use ...... 98 Managed and unmanaged JAX-RPC clients...... 99 JAX-RPC specification details ...... 99 Data type mapping: XML to Java, Java to XML ...... 100 Summary ...... 101 More information ...... 101
Chapter 6. Web Services for J2EE ...... 103 Web services for J2EE overview ...... 104 Client programming model ...... 105 Overview ...... 105 Client concepts ...... 106 Packaging ...... 108 Roles ...... 110 Server programming model ...... 111 Overview ...... 111 Server concepts ...... 112 Packaging ...... 116 Roles ...... 117 Transactions ...... 118
Contents v Handlers ...... 118 Security ...... 119 WSEE implementations in WebSphere ...... 120
SOAP over HTTP ...... 120 SOAP over JMS ...... 121 Summary ...... 122 More information ...... 122
Chapter 7. Introduction to UDDI...... 123 UDDI overview ...... 124 Static versus dynamic Web services...... 124 UDDI registry structure ...... 125 Interactions with UDDI ...... 127 New features in UDDI Version 3 ...... 129 Keys assigned by publisher ...... 129 Human-friendly URI-based keys ...... 130 Complex registry topologies ...... 130 Advanced security features...... 130 Policies ...... 130 Data model updates ...... 131 Extended inquiry API...... 131 Subscription API ...... 131 Registry management ...... 131 UDDI support in WebSphere Application Server ...... 132 Advanced features of UDDI ...... 132 Modeling features for complex business entities ...... 132 External taxonomies ...... 132 Powerful inquiry...... 133 Internationalization features ...... 133 Peer-based replication ...... 134 UDDI business registries on the Web ...... 134 Web front ends for registries ...... 136 Finding information ...... 137 Publishing information...... 139 Java APIs for dynamic UDDI interactions ...... 141 UDDI4J overview ...... 142 Writing UDDI clients ...... 143 Private UDDI registries...... 148 Motivation for the use of private UDDI registries...... 148 Possible scenarios for private UDDI registries ...... 149 Benefits of private UDDI registries ...... 150 Additional considerations for private UDDI registries ...... 150 WebSphere private UDDI registry...... 151
vi WebSphere Version 6 Web Services Handbook Summary ...... 154 More information ...... 154
Chapter 8. Web Services Inspection Language ...... 155 Overview ...... 156 WS-Inspection document ...... 157 WS-Inspection document anatomy ...... 158 WS-Inspection and UDDI relationship ...... 160 WS-Inspection definition...... 161 Services ...... 162 Links ...... 163 WS-Inspection bindings ...... 164 WSDL binding ...... 164 UDDI binding...... 166 WS-Inspection document publishing ...... 167 WS-Inspection examples ...... 168 WS-Inspection API ...... 170 Outlook ...... 172 Summary ...... 172 More information ...... 172
Chapter 9. Web services security ...... 173 Security overview ...... 174 Web services security exposures...... 175 WS-Security ...... 177 Evolution of the WS-Security specification ...... 179 WS-Security support in WebSphere Application Server ...... 180 WS-Security road map ...... 181 When to use WS-Security ...... 182 Example of WS-Security ...... 182 Authentication ...... 184 Integrity ...... 185 Confidentiality ...... 189 Transport-level security ...... 192 SOAP/HTTP transport-level security...... 192 When to use transport-level security...... 193 Summary ...... 194 More information ...... 194
Chapter 10. Web services interoperability ...... 195 Definition ...... 196 Web Services Interoperability Organization ...... 196 WS-I Basic Profile V1.1 and Simple SOAP Binding Profile V1.0 ...... 197 WS-I Attachments Profile V1.0 ...... 197
Contents vii WS-I tools ...... 198 WS-I conformance claims ...... 199 WebSphere interoperability ...... 200
Interoperability with .NET ...... 201 RPC/literal WSDL ...... 201 WS-I conformance claims ...... 202 SwA not supported ...... 202 WSDL import statements ...... 202 Mandatory header handling ...... 203 UTF-16 WSDL...... 203 User exception handling ...... 203 Object inheritance ...... 204 Null and empty array handling ...... 204 Null primitives and dates ...... 205 WS-Security support ...... 205 Representation of arrays in WSDL ...... 205 Summary ...... 207 More information ...... 207
Chapter 11. Web services architectures ...... 209 Service-oriented architecture ...... 210 Enterprise service bus...... 211 Web services versus service-oriented architectures ...... 212 Web services protocol stack...... 213 Message exchange patterns ...... 215 One-way ...... 215 Asynchronous two-way ...... 216 Request-response...... 217 Workflow-oriented ...... 218 Publish-subscribe ...... 219 Composite ...... 220 SOAP processing model ...... 221 Web service gateways ...... 222 Summary ...... 224 More information ...... 224
Chapter 12. Best practices ...... 225 Generic best practices ...... 226 Be WS-I compliant ...... 226 Use simple data types...... 226 Avoid nillable primitives...... 226 Avoid fine-grained Web services...... 226 Avoid Web services for intra-application communication ...... 227
viii WebSphere Version 6 Web Services Handbook Use short attribute, property, and tag names ...... 227 Avoid deep nesting of XML structures ...... 227 Apply common sense (also known as being defensive) ...... 228
WebSphere Application Server best practices ...... 228 Use the WebSphere Web services engine ...... 228 Use caching of Web services as provided by the platform ...... 228 Summary ...... 229 More information ...... 229
Part 2. Implementing and using Web services...... 231
Chapter 13. IBM products for Web services ...... 233 WebSphere Application Server Version 6 ...... 234 What is new in WebSphere Application Server Version 6 ...... 234 Rational software development products ...... 236 Rational Web Developer for WebSphere Software Version 6...... 236 Rational Application Developer for WebSphere Software Version 6 . . . . 237 Rational Software Architect...... 237 WebSphere Studio Application Developer Integration Edition V5.1 . . . . . 237 WebSphere Studio Enterprise Developer Version 5.1.2 ...... 237 Web services support in Rational Application Developer...... 238 Web services tooling ...... 238 Web services runtime environments ...... 240 Web services configuration settings ...... 241 Web services preferences...... 242 Summary ...... 245 More information ...... 245
Chapter 14. Sample application: Weather forecast ...... 247 Weather forecast application components ...... 248 Service modules ...... 248 Business module...... 249 Data module ...... 249 Back-end module ...... 250 Information flow ...... 250 Weather forecast application implementation ...... 252 Weather database...... 253 Extract of the source code ...... 253 Data transfer object: Weather ...... 254 Business object: WeatherForecast ...... 254 Data access: WeatherDAO ...... 256 Predictor: WeatherPredictor ...... 258 JavaBean Web service: WeatherJavaBean ...... 259 EJB Web service: WeatherEJB...... 259
Contents ix Summary ...... 260
Chapter 15. Development overview ...... 261 Overview ...... 262 Build phase ...... 263 Deploy phase ...... 263 Run phase...... 263 Manage phase ...... 263 Building a new Web service ...... 264 Bottom-up ...... 264 Top-down ...... 265 Composing a Web service ...... 266 Types of Web services implementation ...... 267 Building a new Web service client ...... 267 Static client ...... 268 Dynamic client with known service type ...... 269 Dynamic client with unknown service type ...... 271 Types of client implementations ...... 271 Summary ...... 272 More information ...... 272
Chapter 16. Develop Web services with Application Developer V6.0 . . 273 Overview ...... 274 Selected scenarios ...... 274 Preparation ...... 275 Creating a Web service from a JavaBean ...... 275 Web Service wizard ...... 275 Generated files ...... 283 Testing the Web service ...... 286 Creating Web service clients ...... 288 Stand-alone Java client...... 289 Web JavaServer Faces client ...... 291 Creating a Web service from a session bean...... 297 Running the Web Service wizard ...... 297 Generated code ...... 298 Running clients against the EJB Web service...... 298 Creating a Web service top-down from WSDL...... 299 Creating the skeleton JavaBean ...... 299 Implementing the JavaBean skeleton Web service ...... 301 Creating a composed Web service ...... 301 Web services and JMS binding ...... 303 Creating an EJB router project ...... 303 Running the Web Service wizard ...... 303
x WebSphere Version 6 Web Services Handbook Creating a J2EE application client for SOAP over JMS ...... 306 Running the managed client ...... 306 Running the managed client outside of Application Developer...... 307
Creating a Web service from a URL...... 308 Using Web service handlers...... 309 Creating a server-side Web service handler ...... 309 Testing the Web service handler...... 311 Creating a client-side Web service handler...... 312 Using handlers in a stand-alone client ...... 313 Handlers and handler chains ...... 315 Closing comments about using handlers ...... 315 Using attachments ...... 316 How do I use attachments today?...... 317 Implementing attachments ...... 317 Implementing clients ...... 322 Generating WSDL from Java ...... 325 Web Services Atomic Transaction ...... 326 Deployment descriptors for atomic transactions ...... 328 Implementing a simple atomic transaction ...... 328 Activating atomic transaction support ...... 332 Testing atomic transactions ...... 332 SOAP message for atomic transaction ...... 333 Summary ...... 335
Chapter 17. Test and monitor Web services...... 337 Testing Web services ...... 338 Testing modes...... 338 Testing approaches...... 339 Web Services Explorer...... 339 Starting the Web Services Explorer ...... 340 Working with the Web Services Explorer ...... 341 Web services sample test JSPs ...... 345 Generating client-side code ...... 345 Testing with test client JSPs ...... 347 Universal Test Client ...... 349 Starting the Universal Test Client ...... 349 Testing a Web service with the Universal Test Client ...... 349 Testing an EJB with the Universal Test Client ...... 351 Web services component test ...... 352 Creating a Web service component test ...... 352 Monitoring with Tivoli Performance Viewer ...... 363 Enabling and starting Tivoli Performance Viewer ...... 363 Monitoring Web service requests ...... 365
Contents xi TCP/IP Monitor...... 368 Defining a TCP/IP Monitor configuration...... 368 TCP/IP Monitor view ...... 369
Monitoring one server ...... 372 WebSphere Application Server TCP/IP Monitor...... 372 Starting tcpmon ...... 372 Summary ...... 375 More information ...... 375
Chapter 18. Deploy and run Web services in WebSphere Application Server V6.0...... 377 Overview ...... 378 WebSphere Application Server general concepts...... 378 Administration basics ...... 378 WebSphere Application Server topology building blocks ...... 378 Upgrading from Version 5 ...... 380 Administrative console ...... 380 Enterprise application deployment ...... 382 Configuring the server with a data source...... 382 Installing an enterprise application ...... 384 Regenerating the HTTP server plug-in ...... 391 Starting and stopping enterprise applications ...... 391 Web services deployment in WebSphere environment ...... 392 Web services enabling with the SoapEarEnabler tool ...... 392 Running the applications against the real server ...... 392 Running a stand-alone client against the real server ...... 393 Summary ...... 394 More information ...... 394
Chapter 19. Command-line tools, Ant, and multiprotocol binding . . . . . 395 Command-line tools ...... 396 Using the command-line tools ...... 397 Bean2WebService ...... 397 Deploying a Web service to a server ...... 402 Running the generated client ...... 403 EJB2WebService ...... 404 WSDL2WebService ...... 405 WSDL2Client...... 408 UDDIPublish/UDDIUnpublish ...... 411 WebSphere Web services Ant tasks ...... 412 Creating Web services Ant tasks ...... 413 Running the Ant script...... 418 Conclusions about Ant ...... 418
xii WebSphere Version 6 Web Services Handbook Multiprotocol binding ...... 418 Command-line example for multiprotocol binding ...... 419 WSDL file with EJB binding...... 420
Generating a client ...... 422 Summary ...... 424
Part 3. Advanced Web services techniques ...... 425
Chapter 20. Web services interoperability tools and examples ...... 427 Interoperability tools in Application Developer ...... 428 Setting the compliance level ...... 428 WSDL validator ...... 429 WS-I message validation ...... 429 Interoperability examples ...... 431 Prerequisites ...... 431 Apache Axis V1.0 example ...... 431 Client development ...... 431 Comparing the Axis client to the WebSphere client ...... 433 Conclusion ...... 433 Microsoft .NET example ...... 434 Environment setup ...... 434 Client development ...... 435 Client test ...... 441 Verifying WS-I compliance ...... 442 Summary ...... 443 More information ...... 443
Chapter 21. Securing Web services...... 445 Overview ...... 446 Typical scenario for WS-Security ...... 447 Authentication ...... 448 Integrity and confidentiality ...... 450 Kerberos...... 454 Establishing a security context ...... 455 Features of WS-Security in Application Server V6.0 ...... 458 Supported specifications ...... 458 Unsupported specifications ...... 460 Extensions in WebSphere Application Server V6.0 ...... 460 Architecture and deployment model...... 467 High-level architecture ...... 467 Configuration structure ...... 469 Development of WS-Security ...... 474 How to define WS-Security configuration ...... 475 Generating sample key stores ...... 480
Contents xiii Authentication ...... 484 Integrity ...... 498 Confidentiality ...... 516
Adding a security timestamp ...... 528 Testing on WebSphere Application Server ...... 531 Enabling security on the server...... 531 Enabling the TCP/IP Monitor...... 534 Testing the application with WS-Security ...... 534 Debugging and tracing ...... 540 Typical errors ...... 541 Generating WS-Security sample configurations...... 543 Running the Web Service wizard with security ...... 543 Scenario to generate and modify security definitions ...... 544 Modifying generated definitions to use own key stores...... 545 Adding authentication and timestamp ...... 547 Configuring WS-Security on a real Application Server...... 547 Modifying binding configurations...... 547 Adding a custom JAAS configuration ...... 551 Configuring the distributed nonce cache in a cluster environment ...... 552 Configuring certificate caching ...... 554 Compatibility and migration with Version 5.x ...... 555 WS-Security runtimes in WebSphere Application Server V6.0 ...... 556 Migrating from Version 5.x ...... 556 How to migrate an application with Version 5.x WS-Security ...... 557 Summary ...... 558 More information ...... 558
Chapter 22. Web services and the service integration bus...... 559 Overview ...... 560 Motivation for using the bus ...... 562 Installation ...... 563 Installing the SDO repository ...... 563 Installing the resource adapter ...... 564 Installing the core application ...... 565 Installing the endpoint listener applications...... 565 Using the bus ...... 566 Performing administrative tasks ...... 566 Buses ...... 569 Endpoint listeners ...... 571 Inbound services ...... 573 Outbound services ...... 575 UDDI references ...... 577 Publishing WSDL for services...... 578
xiv WebSphere Version 6 Web Services Handbook Web services gateway ...... 580 Gateway instances ...... 581 Gateway services ...... 582
Proxy services...... 584 Message manipulation ...... 588 JAX-RPC handlers ...... 588 Mediations...... 590 Security ...... 595 Web services security (WS-Security) in the bus ...... 595 HTTP endpoint listener authentication ...... 598 Operation-level authorization ...... 600 Using HTTPS with the bus ...... 601 Proxy server authentication...... 601 Gateway migration from Application Server V5.x...... 602 Using the Version 6.0 gateway migration utility ...... 603 Gateway coexistence with Version 5.x ...... 605 Advanced bus configuration ...... 607 Accessing bus services directly using a JAX-RPC client ...... 607 Using the bus with the weather forecast application ...... 610 Preparation ...... 610 Configuration steps ...... 611 Summary ...... 617 Troubleshooting ...... 617 More information ...... 617
Chapter 23. Implementing a private UDDI registry...... 619 Installing a private UDDI registry ...... 620 Installing using the integrated test environment ...... 620 Installing using WebSphere Application Server Network Deployment . . . 621 Using the UDDI registry ...... 622 Using the UDDI GUI ...... 622 Using the UDDI Explorer with the private UDDI registry ...... 628 Using command-line tools ...... 630 Summary ...... 631 More information ...... 631
Chapter 24. Web services caching ...... 633 Web services caching ...... 634 Caching Web services ...... 635 Cache configuration ...... 635 Creating the cache configuration file...... 636 Cache monitor ...... 638 Web services server cache ...... 638
Contents xv Web services client cache ...... 641 Simple load test ...... 643 Test result analysis ...... 645
Summary ...... 646 More information ...... 646
Part 4. Appendixes ...... 647
Appendix A. Installation and setup ...... 649 Installation planning ...... 650 WebSphere Application Server Version 6.0 requirements ...... 650 Installing WebSphere Application Server V6.0...... 651 Installing IBM HTTP Server...... 653 Installing the Web server plug-ins ...... 653 Installing Rational Application Developer V6.0...... 654 Installing fixes ...... 655 Installing the Agent Controller ...... 656 Setting up Rational Application Developer ...... 657 Starting Application Developer ...... 657 Starting the WebSphere Application Server V6.0 test environment . . . . . 659 Configuring Application Developer ...... 659 WebSphere Application Server profiles ...... 660 Multiple profiles for Application Developer ...... 660 Creating a profile for the Application Developer test environment ...... 660 Using the new server in Application Developer...... 661 Using a remote server...... 662 Installing the sample code ...... 663
Appendix B. WS-Security configuration details: Mapping V5/V6, predefined properties, sample forms ...... 665 Configuration mapping: Version 5.x to Version 6.0 ...... 666 Mapping for authentication ...... 666 Mapping for integrity ...... 683 Mapping for confidentiality ...... 686 Mapping for timestamp ...... 688 List of predefined properties...... 689 Property list of deployment descriptor extension ...... 689 Forms for WS-Security configuration ...... 692 Deployment descriptor configuration...... 692 Binding configuration...... 695
Appendix C. Additional material ...... 701 Locating the Web material ...... 701 Using the Web material ...... 702
xvi WebSphere Version 6 Web Services Handbook System requirements for downloading the Web material ...... 702 How to use the Web material ...... 702 List of enterprise applications ...... 703
Installing the base weather forecast application...... 705 Importing the base applications ...... 705 Setting up the WEATHER database ...... 708 Selecting DB2 or Cloudscape ...... 709 Deploying the enterprise applications to the server ...... 710 Testing the enterprise applications ...... 711 Setting up messaging for the JMS Web service...... 713 Starting the administrative console ...... 713 Creating a service integration bus...... 714 Creating the queue connection factories...... 716 Creating the queue ...... 719 Creating an activation specification...... 720 Important JNDI names ...... 720 Saving the changes...... 721 Configuring JMS using a JACL script ...... 721 Restarting the server...... 722 Importing solutions ...... 723
Abbreviations and acronyms ...... 725
Related publications ...... 729 IBM Redbooks ...... 729 Other publications ...... 730 Online resources ...... 730 How to get IBM Redbooks ...... 731 Help from IBM ...... 731
Index ...... 733
Contents xvii
xviii WebSphere Version 6 Web Services Handbook 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 IBM Corp. 2005. All rights reserved. xix Trademarks
The following terms are trademarks of the International Business Machines Corporation in the United States, other countries, or both:
ClearCase® Eserver® Redbooks (logo) ™ Cloudscape™ IBM® Tivoli® CICS® ibm.com® WebSphere® DB2® Rational® zSeries® developerWorks® Redbooks™
The following terms are trademarks of other companies: Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both. Intel, Intel logo, Intel Inside, Intel Inside logo, Intel Centrino, Intel Centrino logo, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. UNIX is a registered trademark of The Open Group in the United States and other countries. Linux is a trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others.
xx WebSphere Version 6 Web Services Handbook Preface
This IBM® Redbook describes the concepts of Web services from various perspectives. It presents the major building blocks on which Web services rely. Here, well-defined standards and new concepts are presented and discussed.
While these concepts are described as vendor independent, this book also presents the IBM view and illustrates with suitable demonstration applications how Web services can be implemented using the IBM product portfolio, especially IBM WebSphere® Application Server Version 6.0 and IBM Rational® Application Developer for WebSphere Software Version 6.0.
This redbook is a rewrite of the redbook WebSphere Version 5.1 Application Developer 5.1.1 Web Services Handbook, SG24-6891-01. The new book covers the latest specifications in regard to Web services and Web services security. The new book uses the same weather forecast application as the base for all examples, but updated to Version 6 of the products.
This book is structured into three parts: Part 1 presents the underlying concepts, architectures, and specifications for the use of Web services. Part 2 shows how Web services can be implemented and deployed using the latest IBM products. Here, we introduce the weather forecast application, which we use in many ways to demonstrate these concepts and features. Part 3 shows some advanced techniques, such as Web services security, interoperability, and the service integration bus.
© Copyright IBM Corp. 2005. All rights reserved. xxi Changes to the previous redbook SG24-6891
New in this version of the publication are: