Front cover z/OS Technical Overview WebSphere Process Server and WebSphere Enterprise Service Bus Learn about SOA technologies on System z Read product overviews and considerations for z/OS Discover approaches to integrate with backend applications Martin Keen Niall Betteridge Diego Cardalliaguet Andreas Groeschl ibm.com/redbooks Redpaper International Technical Support Organization z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus September 2006 Note: Before using this information and the product it supports, read the information in “Notices” on page vii. First Edition (September 2006) This edition applies to WebSphere Process Server for z/OS V6.0.1 and WebSphere Enterprise Service Bus for z/OS V6.0.1. © Copyright International Business Machines Corporation 2006. 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix The team that wrote this Redpaper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix Become a published author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii Chapter 1. Welcome to this Redpaper. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 An introduction to this document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 How to read this Redpaper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Chapter 2. Key technologies of SOA implementation on System z . . . . . . 5 2.1 Using mainframes in today’s business environment . . . . . . . . . . . . . . . . . . 6 2.1.1 Mainframes in use today . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.2 The challenges of mainframe technologies. . . . . . . . . . . . . . . . . . . . . 6 2.1.3 Adoption of SOA capabilities for the mainframe . . . . . . . . . . . . . . . . . 6 2.2 SOA on System z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.1 What is SOA and why adopt it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.2 The business and IT benefits of SOA . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.3 Service granularity and choreography . . . . . . . . . . . . . . . . . . . . . . . 15 2.2.4 Service Component Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2.5 System z and why is it appropriate for SOA . . . . . . . . . . . . . . . . . . . 20 2.3 Technology standards used for SOA enablement. . . . . . . . . . . . . . . . . . . 24 2.3.1 Web services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.4 Enterprise integration with IBM products. . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.4.1 The IBM SOA Foundation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.5 Overview of WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.5.1 WebSphere Process Server for z/OS . . . . . . . . . . . . . . . . . . . . . . . . 42 2.5.2 WebSphere Enterprise Service Bus for z/OS . . . . . . . . . . . . . . . . . . 46 2.5.3 Supporting products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.6 Tools for SOA enablement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 2.6.1 WebSphere Business Modeler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 2.6.2 WebSphere Integration Developer . . . . . . . . . . . . . . . . . . . . . . . . . . 54 2.6.3 IBM Rational Software Architect . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 2.6.4 WebSphere Developer for System z . . . . . . . . . . . . . . . . . . . . . . . . . 55 2.7 Other considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 2.7.1 A successful business services architecture for SOA . . . . . . . . . . . . 56 © Copyright IBM Corp. 2006. All rights reserved. iii 2.7.2 2.7.3 2.7.4 2.7.5 Patterns for SOA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 SOA security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 SOA governance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Management and monitoring an SOA environment . . . . . . . . . . . . . 63 Chapter 3. WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 3.1 Motivation for an SOA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 3.2 WebSphere Process Server for z/OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 3.2.1 Architectural overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 3.2.2 Service components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 3.2.3 Supporting services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 3.2.4 SOA core. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 3.2.5 Component organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.2.6 Topologies for WebSphere Process Server for z/OS . . . . . . . . . . . . 78 3.3 WebSphere Enterprise Service Bus for z/OS . . . . . . . . . . . . . . . . . . . . . . 81 3.3.1 Architectural overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 3.3.2 Topologies for WebSphere Enterprise Service Bus for z/OS . . . . . . 87 3.4 WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS at the core of your business . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 3.4.1 WebSphere Application Server for z/OS advantages . . . . . . . . . . . . 89 3.4.2 z/OS advantages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Chapter 4. Operational considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 4.1 Installing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 4.1.1 Prerequisites and packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 4.1.2 Installation considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.2 Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 4.2.1 The Administrative Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 4.2.2 Scripting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 4.2.3 Administration on an SOA level . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Chapter 5. Qualities of service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 5.1 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 5.1.1 Security technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 5.1.2 z/OS-specific security capabilities . . . . . . . . . . . . . . . . . . . . . . . . . . 122 5.1.3 SCA security and message level security . . . . . . . . . . . . . . . . . . . . 123 5.1.4 WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS security overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 5.2 Transactionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 5.2.1 Transaction requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 5.2.2 z/OS transactional services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 5.2.3 SCA transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 5.2.4 Compensation and transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 iv z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus 5.2.5 Fault handling in transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Chapter 6. Integration with backend systems . . . . . . . . . . . . . . . . . . . . . 131 6.1 Integration approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 6.1.1 The bottom-up approach to integration . . . . . . . . . . . . . . . . . . . . . . 132 6.1.2 The top-down approach to integration . . . . . . . . . . . . . . . . . . . . . . 134 6.1.3 The meet-in-the-middle approach to integration . . . . . . . . . . . . . . . 135 6.2 Enabling your core applications for reuse . . . . . . . . . . . . . . . . . . . . . . . . 139 6.2.1 Service enablement using the J2EE Connector Architecture . . . . . 139 6.2.2 Service enablement of core systems . . . . . . . . . . . . . . . . . . . . . . . 143 Abbreviations and acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 How to get IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Help from IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 Contents v vi z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus 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 illustrate 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. © Copyright IBM Corp. 2006. All rights reserved. vii Trademarks The following terms are trademarks of the International Business Machines Corporation in the United States, other countries, or both: developerWorks® eServer™ z/OS® z/VM® z/VSE™ zSeries® z9™ Cloudscape™ CICS® DataPower® Distributed Relational Database Architecture™ DB2 Universal Database™ DB2® DRDA® IBM® IMS™ MVS™ OMEGAMON® OS/390® Parallel Sysplex® Rational® Redbooks™ Redbooks (logo) RACF® SecureWay® System z™ System z9™ Tivoli® WebSphere® ™ The following terms are trademarks of other companies: EJB, Java, JavaBeans, JDBC, JMX, JVM, J2EE, and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Microsoft, Windows, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both. 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. viii z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Preface System z™ and z/OS® continue to provide the highest levels of availability, scalability, and reliability. System z also continues to host a wide variety of mission-critical data and application logic. So, where better to host advanced service-oriented architecture (SOA) features, such as business processes and the Enterprise Service Bus (ESB), than z/OS? This IBM® Redpaper describes how WebSphere Process Server V6 for z/OS (used primarily to run business processes) and WebSphere Enterprise Service Bus V6 for z/OS (used to implement an ESB) benefit from the strengths of System z and z/OS. The Redpaper begins by defining how SOA is emerging on the mainframe and provides detailed product descriptions of WebSphere Process Server and WebSphere Enterprise Service Bus. It then describes installation and administration features, operational considerations such as security, and finally describes how these products can integrate with other mission-critical applications that are running in other subsystems on z/OS. The team that wrote this Redpaper This Redpaper was produced by a team of specialists from around the world working at the International Technical Support Organization (ITSO), Raleigh Center. Martin Keen is a Senior IT Specialist at the ITSO, Raleigh Center. He writes extensively about WebSphere® products, SOA, and Patterns for e-business. He also teaches IBM classes worldwide about WebSphere, SOA, and business process management. Before joining the ITSO, Martin worked in the EMEA WebSphere Lab Services team in Hursley, UK. Martin holds a bachelor’s degree in Computer Studies from Southampton Institute of Higher Education. Niall Betteridge is a Senior IT Architect with IBM Australia and is currently the Client IT Architect for a major financial institution in Sydney. He has 12 years of experience with IBM in Europe and Asia Pacific, successfully architecting and implementing enterprise-wide solutions for major financial, manufacturing, and public sector clients. He covers strategic enterprise, component-based, and service-orientated architectures and is a strong advocate of model-driven solutions. Niall holds an MSc in Information Systems from Leeds Metropolitan University. © Copyright IBM Corp. 2006. All rights reserved. ix Diego Cardalliaguet is a Senior IT Specialist for the IBM Software Group in IBM Spain. He works for the System z group in WebSphere for z/OS technical sales. His areas of expertise include WebSphere Application Server for z/OS and Linux® for System z. He holds an MS degree in Theoretical Physics from the University of Salamanca in Spain. Andreas Groeschl is an IT Specialist in the IBM Software Group in IBM Germany. His responsibility spans business integration and process integration on z/OS as well as WebSphere Application Server and Composite Application Management for z/OS. He holds a diploma in IT and a Bachelor of Science of the open university in London. Figure 0-1 The IBM Redpaper team (left to right): Martin, Diego, Andreas, and Niall Thanks also to the following people for their contributions to this project: Eric Herness IBM Software Group, Application and Integration Middleware Software WebSphere Business Integration, Chief Architect David Bonaccorsi IBM Software Group, Application and Integration Middleware Software Program Director Warren Fung IBM Software Group, Application and Integration Middleware Software Instructor, WebSphere Education Jack Woodson IBM Software Services for WebSphere Michael Poirier Product Architect, WebSphere Process Server x z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Isabel Arnold IBM Technical Sales CICS® and WebSphere on z/OS Dirk Ziesemann IBM Germany Team Leader Technical Sales WebSphere on z/OS Ron Lotter WebSphere Enablement Team Stephen Matulevich IBM Washington Systems Center Eugene Kuehlthau IBM Advanced Technical Support Geoffrey Reilly IBM Information Developer, Software Group Become a published author Join us for a two- to six-week residency program! Help write an IBM Redbook dealing with specific products or solutions, while getting hands-on experience with leading-edge technologies. You'll have the opportunity to team with IBM technical professionals, Business Partners, and Clients. Your efforts will help increase product acceptance and customer satisfaction. As a bonus, you'll develop a network of contacts in IBM development labs, and increase your productivity and marketability. Find out more about the residency program, browse the residency index, and apply online at: ibm.com/redbooks/residencies.html Preface xi Comments welcome Your comments are important to us! We want our papers to be as helpful as possible. Send us your comments about this Redpaper or other Redbooks™ in one of the following ways: Use the online Contact us review redbook form found at: ibm.com/redbooks Send your comments in an e-mail to: redbooks@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 xii z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus 1 Chapter 1. Welcome to this Redpaper This chapter provides an overview for this Redpaper and some guidelines for how to read it. © Copyright IBM Corp. 2006. All rights reserved. 1 1.1 An introduction to this document A warm welcome to this Redpaper, from the IBM Redpaper team. We all assembled for three intense weeks in Raleigh, North Carolina, to put together this resource. We hope you find it a useful read. The content of this Redpaper is aimed at IT architects, integration developers, and systems programmers who want to understand more about how WebSphere Process Server and WebSphere Enterprise Service Bus are suitable subsystems for running service-oriented architecture (SOA) implementations on System z. For this Redpaper, we approach these two products from many different angles. This Redpaper provides: A description of SOA and related technologies, with a focus on SOA implementations on System z. A discussion of the role WebSphere Process Server and WebSphere Enterprise Service Bus play in an SOA solution. A technical introduction to the capabilities of WebSphere Process Server and WebSphere Enterprise Service Bus. A description of the advantages of running WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS. An overview of installation and administration tasks. A description of security and transactionality qualities of service that are offered by WebSphere Process Server and WebSphere Enterprise Service Bus. Coverage on how to integrate WebSphere Process Server and WebSphere Enterprise Service Bus with applications that are running on System z in other subsystems. Because of the brevity of this document, we do not include detailed, step-by-step guides on how to achieve these tasks here. Instead, this Redpaper provides a technical overview of WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS with the goal of encouraging you to experiment with these products. 2 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus 1.2 How to read this Redpaper We have organized this Redpaper into a logical order so that you can read it cover-to-cover. However, if you are not able to read this Redpaper in its entirely, this section will help you locate the chapters of most relevance to you. This Redpaper includes the following chapters: Chapter 2, “Key technologies of SOA implementation on System z” on page 5 Introduces the key technologies relating to SOA implementations on System z and z/OS, including Service Component Architecture (SCA) and Web services. Provides a high-level overview of WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS and the related tools. Chapter 3, “WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS” on page 65 Provides an in-depth look at WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS. In addition, focuses on the advantages of running these products on z/OS. Chapter 4, “Operational considerations” on page 99 Outlines the installation and administration tasks for WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS. Chapter 5, “Qualities of service” on page 119 Describes the security and transaction capabilities of WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS. Chapter 6, “Integration with backend systems” on page 131 Describes approaches for integrating WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS with other subsystems that are running on z/OS. Uses CICS Transaction Server as an example. Chapter 1. Welcome to this Redpaper 3 4 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus 2 Chapter 2. Key technologies of SOA implementation on System z This chapter introduces some of the key technologies that relate to an SOA implementation on System z, specifically those that relate to WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS. It includes the following topics: Using mainframes in today’s business environment SOA on System z Technology standards used for SOA enablement Enterprise integration with IBM products Overview of WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS Tools for SOA enablement Other considerations © Copyright IBM Corp. 2006. All rights reserved. 5 2.1 Using mainframes in today’s business environment This section gives an overview on the use of mainframes in today’s fast changing business environments. 2.1.1 Mainframes in use today Mainframes play a vital and indelible role in the IT makeup of enterprise-sized organizations worldwide. Today, they still perform most of the core, critical business functions, and it is estimated that 70% of the world’s data resides on such systems. Due to their inherit strengths and on-going value, organizations are maintaining and, where appropriate, increasing mainframe usage, especially as cost of ownership continues to fall with new pricing models and technology. Gartner accordingly sees continued investment in the mainframe, and IBM predicts that the number of transactions that run on such systems will double by 2009 thanks to the introduction of new technologies, some of which we discuss in this Redpaper. 2.1.2 The challenges of mainframe technologies Many mainframe applications in use today were developed mainly in the 1970s and have since been modified several times in keeping with changing business needs. This has often posed the following strategic and architectural issues: 1. How to minimize the risk of replacing aging and complex core systems, which are absolutely vital to business operations, through decommission or migration to new platforms? 2. How to introduce core transaction capability into the dynamic, real-time era which sees higher service invocation volumes and complex distributed computing — parameters and environments that core systems did not have to cope with as little as three decades ago? 2.1.3 Adoption of SOA capabilities for the mainframe This paper describes how, by adopting and implementing the principles of SOA and through the use of WebSphere Process Server and WebSphere Enterprise Service Bus, it is possible to use mainframe technologies to extend the life of core applications that are hosted within z/OS and other environments. This chapter describes how application architects can maximize reuse of business functionality and enable IT departments to build new capabilities dynamically that meet the requirements of fast changing business environments. 6 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus The business drivers are: Business flexibility Responsiveness Cost effectiveness Focus Note: This paper does not focus extensively on the benefits that mainframes bring to SOA because these are offered in The Value of the Mainframe in Service Oriented Architecture, REDP-4152. Our paper takes a more technical view by showing how mainframe usage for SOA is best optimized using the z/OS platform with WebSphere Process Server and WebSphere Enterprise Service Bus 2.2 SOA on System z Service-oriented architecture (SOA) is an architecture that organizations and their IT departments are adopting, but what is it? This section gives an overview of SOA, the benefits it introduces, and its positioning on System z. 2.2.1 What is SOA and why adopt it This section covers the growing use of SOA and attempts to explain what it is and how organizations can benefit from adopting it. An introduction to SOA Rather than being a revolution, SOA is an evolution of best practices and technologies that have gone before. It takes advantage of developments in Internet-based technology and interoperability standards to offer unrivalled business and IT benefits. There have been many definitions for SOA, some clearer than others, but all lead themselves to the concept of loosely coupled business services that are provided in an interoperable and technology agnostic manner. SOA is an integration architecture approach that is based on the concept of services. The business and infrastructure functions that are required to build distributed systems are provided as services that deliver application functions individually or collectively to either user applications or to other services. Chapter 2. Key technologies of SOA implementation on System z 7 Note: SOA, as its name implies, is an architecture that allows you to encapsulate business logic and separate it from application logic. It is not a formal specification. To create an SOA implementation, you need to use a technology such as Web services or Service Component Architecture (SCA) to make this architecture a reality. Taking the definition of SOA a little deeper, you can view it from the following perspectives: A set of business aligned IT services that support an organization’s business goals and objectives A set of architectural principles that address characteristics such as modularity, loose-coupling, and separation of functions An architectural style that requires a service provider, a service consumer, and a service description A set of services that can be combined and choreographed to produce composite enterprise scale services A programming model that comes complete with standards, tools, methods, and technologies, such as Web services By adopting an SOA approach and implementing it using supporting technologies, companies can build flexible systems that implement changing business processes quickly and can make extensive use of reusable components. 8 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Figure 2-1 shows how services are invoked to support a particular business task or process. Specific Business Task of Function Business View Business Process Business Task 2 Input Procedure Output Business Task 1 Business Task 3 Service is able to attend one Business Task The Process Choreography Layer is responsible for connecting the Services providing support to the Business Process Process Choreography Layer Published Service Z Specific Application Object Classes Encapsulation Service Computer Science View Result Figure 2-1 Mapping services with business tasks or functions Defining a service SOA is an architectural approach to defining integration architectures that are based on the concept of services. A service can be described as a function that can be offered or provided to a consumer. This function can be an atomic business function or part of a collection of business functions that are wired together to form a process. There are many additional aspects to a service that must also be considered in the definition of a service within an SOA. The most commonly agreed-on aspects of a service are that: Services encapsulate a reusable business function Services are defined by explicit, implementation-independent interfaces Services are invoked through communication protocols that stress location transparency and interoperability Chapter 2. Key technologies of SOA implementation on System z 9 Ideally, a service should be reusable and should be accessible by more than one consuming application in the architecture. It is, therefore, important to get the service description and reusability correct. For example, a service that offers a calculation such as a home insurance quote could be requested by multiple consumers inside the enterprise and by third parties — as long as the interfaces of the component that offers the service are defined clearly. Services can be invoked independently by either external or internal service consumers to process simple functions or can be chained together to form more complex functionality to devise new functionality quickly. Clearly defined interfaces The interface for the SOA should encapsulate only those aspects of process and behavior that are used in the interaction between the service consumer and provider. An explicit interface definition, or contract, binds a service consumer with the provider. The interface should specify only the mutual behavior that is required for the interaction and nothing about the actual implementation of the consumer or provider. This arrangement means that those system aspects where the consumer and provider are hosted (their platforms) are independent of the interaction and are free to change. This abstraction allows for flexible improvements to the underlying IT infrastructure. Communication protocols that stress location transparency The SOA does not specify that the consumer need any specific protocol to have access to a service. A key principle in SOA is that a service is not defined by the communication protocol that it uses but instead, should be defined in a protocol-independent way that allows different protocols to be used to access the same service. Ideally, a service should only be defined once, through a service interface, and should have many implementations with different access protocols. This type of definition helps to increase the reusability of any service definition. 10 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus 2.2.2 The business and IT benefits of SOA This section gives a concise view on the business and IT benefits that an organization can gain from adopting an SOA. Business benefits Organizations will always seek out innovative means in business and IT to gain competitive advantages. SOA allows the typically heterogeneous IT environment of an enterprise to be agile and responsive to fast changing business conditions. Some of the business advantages to be gained from SOA are as follows: The concept of components and reuse, as described in 2.2.4, “Service Component Architecture” on page 17, allows organizations to increase the speed at which they can implement new products and services. By introducing new processes and data, changing existing reusable elements, or recombining them quickly enables technical support and provisioning of new products and services in the marketplace. The increased abstraction of business processes from implementation and runtime concerns and constraints means that there are fewer technical inhibitors that can slow down progress and change. The modularity and reuse of components means that services are highly optimized to business needs. The ability to extract more from what is already there means that organizations are able to introduce new capabilities that bring business advantages. For example, applications that were once siloed can now work together behind the scenes and can help shorten human-based processes and tasks. The ability to make available repeatable and reusable services across the enterprise means less duplication of functions and, therefore, reduced instances of duplicated data such as customer details — the ability to improve service quality and retain customers increases with more accurate information. Chapter 2. Key technologies of SOA implementation on System z 11 IT benefits Because SOA is an approach that specifically aligns IT capabilities to business drivers and needs, the distinction between what is an IT benefit as opposed to a business benefit becomes somewhat blurred. Nevertheless, the IT benefits that an organization can realize by implementing SOA are as follows: The adoption of open standards, inoperability, and component-based development brings about long-term reductions in development costs and on-going maintenance. The sharing of services and improved consistency reduces duplication of once siloed IT functions and consequently consolidation of hardware and software is made possible, thus reducing costs. The revival of core applications through SOA capabilities reduces the need to replace such systems, thereby minimizing risk, disruption, and replacement costs. Gartner quotes the following benefits of SOA for IT: SOA will shift the focus from tools and packaged suites to modular offerings from multiple vendors that can be assembled and combined by a systems integrator. By 2008, SOA will provide the basis for 80 percent of development projects. By 2008, simple object database access plus service-oriented business applications (SOBAs) will enable Type A organizations to increase code reuse by more than 100 percent. The distinction between software integrators and vendors will blur because packaged applications will be broken up and delivered as SOBAs. In 2006, more than 60 percent of the $527 billion IT professional services market will be based on the exploitation of Web services standards and technology. Gartner also says “SOA shifts developer focus from software to business functions, thereby transforming installed software from an inhibitor to a facilitator of rapid business change.” For more information, see Positions on the Five Hottest IT Topics and Trends in 2005, which is available at: http://www.gartner.com 12 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Alternative ways of requesting services This section describes the different technologies that you can use to request services. Figure 2-2 illustrates the three methods to invoke services. These are: 1. Direct invocation of a provider and the resulting reply with service outcomes (a point-to-point option). For example, the consumer has predefined details of the service and where to obtain it. This option is not ideal because it means service consumers often need to be modified whenever the service provider interface changes. 2. A service request query is put to a service directory and is provided with details on a particular service. Following the request, the consumer then invokes the service and obtains results. This is the most common method of requesting a service and is used by many organization using an enterprise-wide registry. 3. A more sophisticated adoption of the second method that shows a service broker calling out to various service directories 1 Service Request Service Response 2 Service Query Service Registry Retrieve Service Details Contract Details Service Request Service Consumer Service Provider Service Response 3 Service Query Retrieve Service Details Service Broker Service Registry Service Registry Service Registry Service Request Service Response Figure 2-2 Three methods of invoking services Chapter 2. Key technologies of SOA implementation on System z 13 Figure 2-3 shows the high-level steps of the second method. Service Registry & Repository FIND 2 1 Service Consumer PUBLISH Service Provider 3 BIND Figure 2-3 Typical implementation of service interaction in an SOA Figure 2-3 shows three stages: 1. Where it is decided to expose certain functionality that is provided by a particular application for others to consume, the details are published and stored within a service directory. The service itself is defined within the interface of the component. 2. A service consumer seeking an appropriate service makes a query against the registry. In response, the registry gives details of where to find such a service 3. The consumer then creates a message to be sent to the provider, transported via HTTP for instance, and gives details to the provider 14 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus 2.2.3 Service granularity and choreography As well as the different ways of obtaining services, we also have the different types of services and the different levels of granularity found in service composition and hierarchies. Many descriptions of SOA refer to large-grained services. However, powerful examples of successful, reusable, fine-grained services exist. For example, getBalance is a useful service that is not large grained. More realistically, there are many useful levels of service granularity in most SOAs: Technical functions (such as logging) Business functions (such as getBalance) Business transactions (such as openAccount) Business processes (such as applyForMortgage) Some degree of choreography or aggregation is required between each granularity level. It is unlikely that all organizations share identical definitions of granularity, but each undoubtedly finds it beneficial to define their own. At each level of granularity, it is important that service definitions encapsulate function well enough that it is reusable. Figure 2-4 shows an example of interactions between services of various granularities. Chapter 2. Key technologies of SOA implementation on System z 15 Submit Self-service application 4 Public createCustomerRecord { Check and validate parameters... Request a unique ID Check postcode against address Store and commit data } 1 Implementation Customer management system Submit createCustomerRecord Service Infrastructure 2 a c Steps a and b omitted for clarity b Authenticate and authorize Authorization and authentication services Steps a and b omitted for clarity Check Postcode Log createMortgageAccount Log External service 3 Service choreographer 1 9 createCustomerRecord Figure 2-4 Service granularity and choreography The interactions between services of various granularities in Figure 2-4 are: 1. A user submits a request to a self-service application to create a mortgage account. The self-service application submits the business process service request (createMortgageAccount) through the service infrastructure to a service choreographer component, the purpose of which is to choreograph business transaction services into business process services. 2. When the service infrastructure receives the request for createMortgageAccount, the service infrastructure first invokes authentication and authorization technical function services to ensure that the request is valid, then a log technical function service, and, finally, createMortgageAccount in the service choreographer. 16 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus 3. The service choreographer executes createMortgageAccount. If the request is valid, then, after the other process elements are finished, the choreographer invokes the createCustomerRecord business transaction service through the service infrastructure to store the details of the new customer. (Before doing this, it might already have invoked storeMortgageDetails.) 4. In the implementation of the createCustomerRecord service, it is necessary to validate the information for the new customer. Part of this validation is checking whether the post code and address match. To do this, a CheckPostCode business function service is invoked through the service infrastructure. To summarize, three aggregations or choreographies are performed by distinct components for distinct granularity levels: Service choreographer Choreographs business transaction services into higher level business process services. Service Infrastructure Choreographs technical function services to control the invocation of business process services, business transaction services, and business function services (this might be an Enterprise Service Bus). Individual application components Responsible for invoking business function services to implement business transaction services. Of course, this is just one hypothetical example. Real organizations must formulate their own definitions. 2.2.4 Service Component Architecture Service Component Architecture (SCA) is a set of specifications defined and agreed between BEA, IBM, IONA, Oracle, and SAP that describe a model for building applications and systems that implement an SOA. SCA offers an approach for defining the interfaces, implementation and references in a technology neutral manner, that allows for focus on the business need prior to technology and product specific implementation. Note: SCA is the foundation upon which the WebSphere Process Server and WebSphere Enterprise Service Bus products are based. Chapter 2. Key technologies of SOA implementation on System z 17 At its core, SCA provides an abstracted J2EE™ based implementation that involves stateless session EJBs, Web services, Plain Old Java™ Objects (POJOs), WS-BPEL processes, database access and Enterprise Information System (EIS) access. SCA is also a universal model for business services that publish or operate on business data and Service Data Objects (SDO) provide the universal model for this. SDOs represent the business data that forms the parameters and return values of services, providing uniform access to business data to complement the uniform access to business services offered by SCA. For more information, see “Service Data Objects” on page 33. SCA supports service implementations written using any one of many programming languages, including conventional object-oriented and procedural languages such as Java, PHP, C++, COBOL, and XML-centric languages, such as WS-BPEL and XSLT, and also declarative languages such as SQL and XQuery. SCA also supports a range of programming styles, including asynchronous and message-oriented styles, in addition to the synchronous call-and-return style. SCA supports bindings to a wide range of access mechanisms used to invoke services. These include Web services, messaging systems and CORBA IIOP. Bindings are handled declaratively and are independent of the implementation code. Infrastructure capabilities, such as security, transactions and the use of reliable messaging are also handled declaratively and are separated from the implementation code. SCA defines the usage of infrastructure capabilities through the use of policies, which are designed to simplify the mechanism by which the capabilities are applied to business systems. 18 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Figure 2-5 shows the following main elements of an SCA component: Interface Implementation Reference Component Java Java WSDL Port Type R I Interface Reference WSDL Port Type Implementation Java WS_BPEL State Machine Business Rule Human Task Selector Mediation Flow Implementation Types Figure 2-5 SCA component main elements The SCA approach divides up the steps of developing SOA capability into two major parts: Implementing components which provide services and consume other services Assembling sets of components to build business applications through the wiring of service references to service interfaces. Figure 2-6 shows an overview of a SCA implementation. Chapter 2. Key technologies of SOA implementation on System z 19 Figure 2-6 SCA implementation overview At the time of writing, the current SCA specifications are published at a version 0.9 level, indicating that the specifications are not in their final form. For more information, we advise that you refer to the following: http://www.ibm.com/developerworks/library/specification/ws-sca/ The technologies used for implementing SCA are described in 2.3, “Technology standards used for SOA enablement” on page 24. 2.2.5 System z and why is it appropriate for SOA This section gives an overview of System z and the benefits to be gained from implementing SOA capabilities within a z/OS environment. We cover the reasoning and benefits that we describe in this overview in more detail in 3.4.2, “z/OS advantages” on page 91. System z IBM eServer™ System z9™ (formerly IBM eServer zSeries®) is built on more than 40 years of industry leadership in mainframes. It uses a modular multi-book design that supports one to four books per server. Multiple features such as redundant I/O interconnect (RII) help avoid unplanned interruptions and outages. By increasing secure transaction throughput (SSL), System z9 can improve responsiveness while strengthening security through enhanced encryption and hashing algorithms. 20 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus System z contains specialized engines such as z9 Application Assist Processor (zAAP), z9 Integrated Information Processor (zIIP), Integrated Facility for Linux (IFL), and Internal Coupling Facility (ICF), which can all be used for your advantage. The virtualization and intelligent management features of System z9 109 help reduce management complexity and can facilitate a more efficient use of system resources. z/OS IBM System z mainframes are supported by a multitude of operating systems, such as z/OS, z/OS.e, z/VSE™, z/VM®, TPF, and Linux on System z. The flagship operating system of this group is z/OS. z/OS, with its roots in MVS™ and OS/390®, is the flagship mainframe operating system based on the 64-bit z/Architecture. It is designed to deliver the high qualities of service for enterprise transactions and data, making it appropriate for the larger enterprise. Some highlights of z/OS v1.7 include the z/OS Workload Manager, which helps balance resources, and Intelligent Resource Director (IRD), which extends Workload Manager and makes it possible to manage resources dynamically across multiple logical partitions. z/OS Parallel Sysplex® technology allows you to balance workloads across multiple servers (up to 32) and is designed to provide near continuous availability. Why have an SOA framework on z/OS In a sense, the mainframe environment has always led itself to the concept of SOA because it regards all the resources within as providing services. Resources specifically for SOA would be those that provide SOA capabilities such as the Enterprise Service Bus (ESB), Process Management engines, and supporting components such as a base J2EE application server and databases. To offer the power of System z for SOA, IBM has developed specific z/OS versions of its SOA product suite that is built upon WebSphere Application Server V6 for z/OS. WebSphere Process Sever and WebSphere Enterprise Service Bus are z/OS enabled, as are supporting components such as DB2® for z/OS V8. This offers a clean and contained architecture within an z/OS environment, one based upon open and interoperability standards. The advantages of using System z and z/OS for SOA can be seen in three broad categories: Quality of service Core system transaction capabilities for SOA Cost of ownership Chapter 2. Key technologies of SOA implementation on System z 21 Quality of service An SOA framework that incorporates an ESB and Business Process Management (BPM) capabilities exploits well proven System z features such as high scalability, availability, reliability, and security. System z clustering is provided through Parallel Sysplex technology and workload management by zWLM to offer: Less than five minutes downtime per year 99.999% availability at the application level System z has built upon four decades of development and collaboration to offer unparalleled security in both its hardware and z/OS operating system. In addition, the introduction of virtualization for z/OS helps to decouple actual physical resources from users and services, bringing an additional layer of protection. For more details about security on System z, refer to: http://www.ibm.com/servers/eserver/zseries/security/features.html Core system transaction capabilities for SOA The source of most services that service consumers call upon is most likely core systems such as CICS and IMS™ transactions. These core systems themselves can actually be consumers as well as providers of services. The positioning of these systems within a System z environment means that performance is enhanced because of less network traffic and, in the case of z/OS, the HiperSocket technology is leveraged. To facilitate connections to CICS and IMS for a SOA architecture, the CICS Transaction Gateway and IMS SOAP Gateway Version 9.1 are offered. Web services can be developed with IBM WebSphere Developer for zSeries tooling to generate Web services artifacts easily. For example, it generates a Web Services Description Language (WSDL) file from COBOL copybooks of an IMS application. (See 2.6.4, “WebSphere Developer for System z” on page 55). Figure 2-7 shows the different ways to connect to IMS and how WebSphere Enterprise Service Bus can route SOAP messages to the IMS SOAP Gateway. 22 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus IMS Web Services Connectivity Solutions W S D L IMS Connect/ IMS Connect Java Client MQ to IMS Bridge W S D L JMS to MQ WebSphere ESB W S D L W S D L IMS Distributed JDBC WebSphere ESB Mediation Module WebSphere II CF Mediation Module WebSphere ESB Java Component EJB/Bean IMS SOAP Gateway – Technology Preview IMS Connector for Java Mediation Module W S D L WAS MQ WebSphere BCF JDBC Client IMS Distributed JDBC IMS SOAP Gateway TCP/IP Queues TCP/IP RMI/ IIOP TCP/IP O T M A IMS Connect MQ IMS Appls. IMS DB O T M A MQ-IMS Bridge (XCF) IMS Appls. IMS DB WebSphere II CF D R A IMS DB IMS DB WAS zOS + JDBC Driver O D B A IMS DB IMS DB IMS Connect O T M A IMS Appls. IMS DB Figure 2-7 IMS services connectivity options Cost of ownership As demand for computer usage increases year-on-year, organizations have tended to introduce new boxes, systems, and applications to their widely heterogeneous and distributed IT environments. Thus, managing these distributed environments can introduce the following hidden costs: Increased complexity Spiraling resource costs Increased downtime costs Suboptimized use of resources Licensing costs The Wall Street journal gives an interesting view: Distributed server farms today generate as much as 3,800 watts per square foot, compared to 250 watts per square foot in 1992, with thousands of dollars of cooling capacity needed for each server. Assuming 1,000 distributed servers producing 400 watts each, the electricity bill could hit more than USD 35,000 per month alone. By comparison, a single mainframe z9 generates 312 watts per square foot – one tenth the amount. Chapter 2. Key technologies of SOA implementation on System z 23 The centralized architecture of the mainframe has always helped avoid such issues, but initial purchase costs and operating costs were high. Recent developments in new technology for System z help to reduce total operating cost (TOC), as follows: Virtualization Virtualization, which allows a single server or platform to support hundreds of concurrent applications and share data and hardware resources across heterogeneous environments, was invented by mainframes more than 35 years ago. Today, it is highly advantageous for enterprises that are looking for ways to simplify their IT infrastructures and to reduce complexity and costs. System z Application Assist Processor (zAAP) To help lower costs, IBM has introduced separate processing engines to tackle a collection of mainframe workload types. These engines can free your mainframe CPU for other tasks while lowering related capacity charges. The System z Application Assist Processor (zAAP) engine, released in 2005, reduces costs by processing Java-based application workloads. System z Integrated Information Processor (zIIP) engine DB2 works in concert with z/OS to tackle workloads that originate on distributed platforms (through DRDA® via TCP/IP) and access DB2 data running on the mainframe. Together, DB2 and zIIP help improve resource optimization for eligible workloads, including those from SAP or other ERP applications, along with CRM and business intelligence initiatives. A zIIP engine can be added for a one-time cost, then it can process up to 40% of such tasks with no additional software or capacity charges. 2.3 Technology standards used for SOA enablement This section gives a description of the main technologies that are used to bring about SOA based capabilities. These technologies are based upon principles set out by the SCA that we describe in 2.2.4, “Service Component Architecture” on page 17. Although Web services are seen as intrinsically part of SOA, there are alternative technologies that you can use to provide the same outcomes. We discuss these alternatives also. 2.3.1 Web services Web services are fast becoming the standard for basic SOA implementation. More advanced SOA based requirements are seeing Web services used in collaboration with SCA based capabilities, such as an ESB in meeting consumer requirements. Web services take advantage of existing open-standard Web 24 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus technologies, such as XML, Uniform Resource Locator (URL), and Hypertext Transfer Protocol (HTTP), and are themselves a set of standards that facilitates open system-to-system communication. By adhering to Web services standards applications, which are based invariably upon differentiating platforms and technologies, can cooperate through well defined interfaces. Web services follow the SOA philosophy of loose coupling between service consumers and providers. Figure 2-8 illustrates how loose-coupling is maintained within the Web services interaction model. UDDI or WSIL: service registry WSDL: service description SOAP: service invocation Service Registry Maintains repository of business services defined using WSDL 1 Publish 2 Find Business functions defined in WSDL and published to the Services registry Business functions described in WSDL within Registry 3 Bind Service Consumer Business functions using SOAP Service Provider Figure 2-8 Web services invocation model The interaction shown in Figure 2-8 works as follows: 1. The service provider publishes WSDL data that defines its interface and location to a service registry. See the definition of “Web Services Description Language” on page 26. 2. The service consumer contacts the service registry to obtain a reference to a service provider. 3. The service consumer, having obtained the location of the service provider, makes calls on the service provider. Chapter 2. Key technologies of SOA implementation on System z 25 Basic Web services support provides three simple usage models: One-way usage scenario A Web services message is sent from a consumer to a provider, and no response message is expected. Synchronous request/response usage scenario A Web services message is sent from a consumer to a provider, and a response message is expected. Basic callback usage scenario A Web service message is sent from a consumer to a provider using the 2-way invocation model, but the response is treated only as an acknowledgement that the request has been received. The provider then responds by using a Web service callback to the consumer. Other Web service standards are built upon these basic standards and invocation models to provide higher level functions and qualities of service. Maturity of Web services protocols and specifications As the world of Web services becomes increasingly popular, each aspect of the Web services model, or stack, is broken down into elements that address different protocols within the stack. Specifications for each are drawn up, with some approved and others proposed. The following link provides details on the positioning of the Web services stack: http://roadmap.cbdiforum.com/reports/protocols/ Web Services Description Language Web Services Description Language (WSDL) is an XML-based interface definition language that separates function from implementation and enables design by contract as recommended by SOA. WSDL descriptions contain: A port type (the functional and data description of the operations that are available in a Web service) A binding (that provides instructions for interacting with the Web service through specific protocols, such as SOAP over HTTP) A port (that provides a specific address through which a Web service can be invoked using a specific protocol binding) Commonly, these aspects are defined in three separate WSDL files, each importing the others. 26 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus The value of WSDL is that it enables development tooling and middleware for any platform and language to understand service operations and invocation mechanisms. For example, given the WSDL interface to a service that is implemented in Java, running in a WebSphere environment, and offering invocation through HTTP, a developer working in the Microsoft® .NET platform can import the WSDL and easily application code to invoke the service generate. The WSDL specification is extensible and provides additional aspects of service interactions to be specified, such as security and transactionality. The following link provides details on the WSDL V2.0 specification: http://www.w3.org/TR/wsdl20/ Web Services-Business Process Execution Language Web Services-Business Process Execution Language (WS-BPEL) provides a means to specify business processes and interaction protocols formally at runtime. It provides a language for the formal specification of business processes and business interaction protocols. By doing so, it extends the Web services interaction model and enables it to support business transactions. WS-BPEL defines an interoperable integration model that facilitates the expansion of automated process integration in both the intra-corporate and the business-to-business spaces. WebSphere Process Server has a process engine that executes WS-BPEL based processes. WS-BPEL V2.0 is the current specification. You can find more details about WS-BPEL on the Web at: http://www-128.ibm.com/developerworks/library/specification/ws-bpel/ Web Services Inspection Language Web Services Inspection Language (WSIL) is an XML-based format used to facilitate the discovery and aggregation of Web services in a simple and extensible form. Its purpose is similar to that of the UDDI concept, but rather than being a competitor to UDDI, it can compliment it as a simpler alternative. WSIL enables a service consumer to inspect directly the services offered by a provider. For more details refer to: http://www-128.ibm.com/developerworks/webservices/library/ ws-wsilover/ Chapter 2. Key technologies of SOA implementation on System z 27 SOAP SOAP is an XML-based format for constructing messages in a transport-independent way and a standard on how the message should be handled. SOAP messages consist of an envelope that contains a header and a body. It also defines a mechanism for indicating and communicating problems that occurred while processing the message, which are known as SOAP faults. The headers section of a SOAP message is extensible and can contain many different headers that are defined by different schemas. The extra headers can be used to modify the behavior of the middleware infrastructure. The body section contains the content of the SOAP message. When used by Web services, the SOAP body contains XML-formatted data. This data is specified in the WSDL that describes the Web service. The most common transport that is used to communicate SOAP messages is HTTP. This is expected because Web services are designed to use Web technologies. However, SOAP can also be communicated using Java Message Services (JMS) as a transport. Although using JMS provides a more reliable transport mechanism, it is not an open standard, requires extra and potentially expensive investment, and does not interoperate as easily as SOAP over HTTP. The SOAP version 1.1 and 1.2 specifications are available from the W3C at: http://www.w3.org/TR/soap/ Universal Description, Discovery, Integration Universal Description, Discovery, Integration (UDDI) servers act as a directory of available services and service providers. You can use SOAP to query UDDI to find the locations of WSDL definitions of services, or you can perform the search through a user interface at design or development time. The original UDDI classification was based on a U.S. government taxonomy of businesses. Recent versions of the UDDI specification have added support for custom taxonomies. You can find the UDDI specification at: http://www.uddi.org/specification.html WS-Security The Web Services Security protocol, WS-Security V1.1, has been accepted as an OASIS standard. Specifically, WS-Security describes enhancements to the existing SOAP messaging to provide quality of protection through the application of message integrity, message confidentiality, and single message authentication to SOAP messages. Additionally, WS-Security describes how to encode binary security tokens and attach them to SOAP messages. You can find the WS-Security specification at: http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss 28 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus The Enterprise Service Bus The Enterprise Service Bus (ESB) is an important architectural element in an SOA. When organizations integrate various systems on different platforms using different protocols, it becomes vital to have in place a intelligent, distributed, transactional and messaging layer that binds diverse services and data. This is the responsibility of the ESB. Broken down, the responsibilities of the ESB are: Routing of messages between services converting transport protocols between consumer and provider (where necessary) Transforming requests between consumer and provider Handling of business events from disparate sources Figure 2-9 shows how the ESB replaces direct connections between service consumers and providers with a bus architecture. Direct Connection Service Consumer Service Provider Service Consumer Service Provider Service Consumer Service Provider Enterprise Service Bus Connections Service Consumer Service Consumer Service Consumer Service Provider ESB Service Provider Service Provider Figure 2-9 Direct connection and central hub integration styles Chapter 2. Key technologies of SOA implementation on System z 29 Using an ESB to implement an SOA has a number of advantages. In an SOA, services should, by definition, be reusable by a number of different consumers, so that the benefits of reduced connections are achieved. In addition the ESB: Supports high volumes of individual interactions. Supports more established integration styles, such as message-oriented and event-driven integration, to extend the reach of the SOA. The ESB should allow applications to be SOA-enabled, either directly or through the use of adapters. Supports centralization of enterprise-level qualities of service and manageability requirements into the hub. Services discovery and management A successful SOA architecture is one that meets required business flexibility by providing a well defined and managed set of business services. A services registry and repository helps to maintain and to manage the business services. It assists with the publication, discovery, subscription, and governance of these services. The registry component helps record the definition of the services (what they offer) and where they are located. In addition, the repository covers details such as how the services used, by whom, and why. If such capabilities are not in place, it is highly unlikely that organizations will get the most out of investments in SOA because the services will be poorly implemented and managed with low reuse and association with other services. Figure 2-10 shows how a services registry and repository can benefit the SOA life cycle from the definition and introduction of the services through ongoing maintenance and monitoring. 30 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Service Development Lifecycle Model Service Endpoint Registries / Repositories Services Registry and Repository Build Discover Assemble Change and Release Management Mediate Operational Efficiency and Resilience Bind Runtime Integration Test Manage Deploy Figure 2-10 Positioning of a services registry and repository Figure 2-11 illustrates how a services registry and repository are called upon in runtime to deal with a service request. 3 Service Registry & Repository Service Registry & Repository 2 4 1 Mediation Module 5 Message Enterprise Service Bus Service Service 6 Figure 2-11 Runtime selection and invocation interactions The steps shown in Figure 2-11 are as follows: 1. The ESB receives a message (request) 2. A selection mediation is invoked within the ESB 3. The mediation receives the service description for the requested operation from the service registry and repository Chapter 2. Key technologies of SOA implementation on System z 31 4. The mediation receives service descriptions from candidate providers 5. The mediation executes a match to identify the most suitable service 6. The inbound message is transformed and routed to the selected endpoint Alternative technologies to Web services used for SOA Web services should not be seen as the only option for a SOA. The Web services stack is still maturing. For reliable delivering of messages, you should consider options such as the following: Message-orientated middleware with WebSphere MQ Messaging and queuing has been in existence for over ten years, providing a reliable, fast transport mechanism for passing data between applications. Many IBM customers have adopted WebSphere MQ as a transport to call remote functions on separate systems and in fact WebSphere MQ can be used for transport of Web services SOAP messages. JMS Java Messaging Service (JMS) is a cross platform Java API for accessing message-orientated middleware. The JMS specification defines a set of message types and APIs for sending and receiving those messages to and from destinations. With J2EE v1.4, the JMS specification is upgraded to v1.1, which includes support for domain neutral messaging. CORBA The Common Object Request Broker Architecture (CORBA) has long been a popular distributed object mechanism and is, in terms of principles and philosophy, the basis for much of what is seen in SOA today. The Object Request Broker is responsible for all of the mechanisms that are required to find object implementations for a request, to prepare the object implementation to receive the request, and to communicate the data making up the request. The interface the client sees is completely independent of where the object is located, which programming language it is implemented in, or any other aspect that is not reflected in the object’s interface. The IIOP, RPC, and RMI protocols Internet Object Request Broker Protocol (IIOP): This protocol makes it possible for distributed programs written in different programming languages to communicate over the Internet. IIOP is the low-level protocol for CORBA. Remote Procedure Calls (RPC): This protocol is one of the original protocols that introduced the concept of loose coupling and distributed computing. RPC is a technique for constructing distributed, client-server based applications. It is based on extending the notion of conventional, or local procedure calling, so that the called procedure need not exist in the same address space as the 32 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus calling procedure. Many distributed protocols since, such as Web services, have based their approach and concepts on RPC. Remote Method Invocation (RMI): This protocol is a Java specification for RPC (remote procedure calls). The client can invoke methods on objects remotely residing in the server, possibly passing it primitives or objects as parameters and receiving a primitive or object as a result. Service Data Objects Business data that is exchanged in an integrated application in both WebSphere Process Server and WebSphere Enterprise Service Bus is represented by business objects. The objects are based on Service Data Objects (SDOs), which is a new data access technology. SDOs are designed to simplify and unify the way in which applications handle data. Using SDOs, application programmers can uniformly access and manipulate data from heterogeneous data sources, including relational databases, XML data sources, Web services, and enterprise information systems (EIS). The SDO proposal was published jointly by IBM and BEA as JSR 235. SDO Version 1.0 support is introduced in WebSphere Application Server V6 and IBM Rational® Application Developer V6. The SDO V2.0 specification is currently available. Both SCA and SDO (the basis of business objects) are designed to be complimentary service-oriented technologies. Figure 2-12 illustrates how SCA provides the framework to define service components and to compose these services into integrated applications. It further shows that business objects represent the data that flows between each service. Whether the interface associated with a particular service component is defined as a Java interface or a WSDL port type, the input and output parameters are represented by business objects. Chapter 2. Key technologies of SOA implementation on System z 33 Web Service Module BO BO BO BO BO BO = Business Object Web Figure 2-12 Exchanging data in an SCA runtime SDO is based on the concept of disconnected data graphs. A data graph is a collection of tree-structured or graph-structured data objects. Under the disconnected data graph architecture, a client retrieves a data graph from a data source, mutates the data graph, and can then apply the data graph changes back to the data source. The task of connecting applications to data sources is performed by data mediator services. Client applications query a data mediator service and get a data graph in response. Client applications send an updated data graph to a data mediator service to have the updates applied to the original data source. This architecture allows applications to deal principally with data graphs and data objects. For more details, see the IBM developerWorks® article about SDOs, which is available at: http://www-128.ibm.com/developerworks/java/library/j-sdo/ 34 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus 2.4 Enterprise integration with IBM products This section discusses IBM position regarding SOA and the IBM products that offer SOA capabilities for System z. Chapter 3, “WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS” on page 65 describes the ability of these products to enable enterprise-wide integration with core applications. For information about the role of the mainframe and its continuing importance to organizations, see 2.1, “Using mainframes in today’s business environment”. 2.4.1 The IBM SOA Foundation The IBM SOA Foundation is an integrated, open standards based set of IBM software, best practices, and patterns that are designed to provide what you need to get started with SOA from an architecture perspective. The key elements of the SOA Foundation are the SOA life cycle (model, assemble, deploy, manage), the reference architecture, and SOA scenarios. As part of the strategy and positioning on SOA from IBM, you should introduce the SOA Foundation prior to coverage on specific products. For a better understanding of the IBM SOA Foundation, we explore its elements as follows: SOA Foundation Life Cycle SOA Foundation Reference Architecture SOA Foundation Scenarios Note: For a more detailed explanation of the SOA Foundation, refer to IBM SOA Foundation: An Architectural Introduction and Overview Version 1.0 found at: http://download.boulder.ibm.com/ibmdl/pub/software/dw/webservices /ws-soa-whitepaper.pdf The SOA Foundation Life Cycle The SOA Foundation Life Cycle takes an iterative and incremental approach to constant improvement of SOA capabilities and services provision. A premise of the life cycle is that feedback is cycled to and from the phases in iterative steps of refinement and that the architecture models can be built using reverse-engineering techniques or others to facilitate the needs of the business. The cycle is then layered on a backdrop of governance that ensures compliance and operational policies are enforced and that change occurs in a controlled fashion with appropriate authority as envisioned by the business design. Chapter 2. Key technologies of SOA implementation on System z 35 Figure 2-13 illustrates the SOA Foundation Life Cycle. Discover Construct and test Compose Integrate people Integrate processes Manage and integrate information Gather requirements Model and simulate Design Financial transparency Business and IT alignment Process control Manage applications and services Manage identity and compliance Monitor business metrics Figure 2-13 The SOA Foundation Life Cycle The phases of the life cycle are: Model Modeling is the process of capturing the business design from an understanding of business requirements and objectives. Assemble The business design is used to communicate the business objectives to the IT organization that will assemble the information system artifacts that implement the design. Deploy The deploy phase of the life cycle includes a combination of creating the hosting environment for the applications and the deployment tasks of those applications. This phase includes resolving the application’s resource dependencies, operational conditions, capacity requirements, and integrity and access constraints. Manage The manage phase includes the tasks, technology and software used to manage and monitor the application assets such as services and business processes that are deployed to the production runtime environment. 36 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Monitoring is a critical element of ensuring that the underlying IT systems and application are up and running to maintain the service availability requirements of the business. Monitoring also includes monitoring the performance of service requests and the timeliness of service responses. SOA Governance is also critical to the success of any SOA project. Governance helps clients extend the planned SOA across the enterprise in a controlled manner. SOA Governance has four core objectives or challenges: Establish decision rights Define high value business services Manage the life cycle of assets Measure effectiveness For more information about governance, read 2.7.4, “SOA governance” on page 61. SOA Foundation Reference Architecture Integrated environment for design and creation of solution assets Business Innovation & Optimization Services Facilitates better decision-making with real-time business information Interaction Services Enables collaboration between people, processes & information Process Services Orchestrate and automate business processes Information Services Manages diverse data and content in a unified manner Facilitates communication ESB between services Partner Services Connect with trading partners Business App Services Build on a robust, scaleable, and secure services environment Access Services Facilitates interactions with existing information and application assets IT Service Management Development Services This section describes the SOA Foundation Reference Architecture which includes the components and middleware services that are used by applications in the runtime environment. The architecture is a product agnostic view of what IBM believes are the critical elements that make up a successful SOA framework. Figure 2-14 gives a high-level view and description of each of the components that make up the SOA Foundation Reference Architecture. Manage and secure services, applications & resources Infrastructure Services Optimizes throughput, availability and performance Figure 2-14 SOA Foundation Reference Architecture: middleware services view Chapter 2. Key technologies of SOA implementation on System z 37 Core components of the logical architecture The logical architecture includes the following core components: Interaction Services provide the capabilities that are required to deliver IT functions and data to users, meeting their specific preferences. Process Services provide the control capabilities that are required to manage the flow and interactions of multiple services in ways that implement business processes. Business Application Services are called by service consumers. Service consumers include other components in the logical architecture, such as portal or a business processes. Information Services provide the capabilities that are necessary to federate, replicate, and transform disparate data sources. Access Services provide bridging capabilities between core applications, prepackaged applications, enterprise data stores, and the ESB to incorporate services that are delivered through existing applications into an SOA. Partner Services provide the document, protocol, and partner management capabilities for business processes that involve interactions with outside partners and suppliers. Supporting components of the logical architecture The supporting components of the SOA Foundation logical architecture that are used in support of the core components include: Enterprise Service Bus Provides mediations between components. This element is covered in more detail in “The Enterprise Service Bus” on page 29. Business Innovation and Optimization Services Used primarily to represent the tools and the metadata structures for encoding the business design, including business policies and objectives. Development Services Encompass the entire suite of architecture tools, development tools, visual composition tools, assembly tools, methodologies, debugging aids, instrumentation tools, asset repositories, discovery agents, and publishing mechanisms that are needed to construct an SOA based application. IT Service Management Represents the set of management tools used to monitor your service flows, the health of the underlying system, the utilization of resources, the identification of outages and bottlenecks, the attainment of service goals, the enforcement of administrative policies, and recovery from failures. 38 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus SOA Foundation scenarios The SOA Foundation scenarios (or simply SOA scenarios) are representative of common scenarios of IBM products and solutions for SOA engagements. The SOA scenarios communicate quickly the business value, architecture, and IBM open standards-based software that are used within the SOA scenario. You can use the SOA scenarios as a reference architecture implementation (starting point) to accelerate the SOA architecture and implementation of your scenario. Figure 2-15 displays the SOA scenarios (Service Creation, Service Connectivity, Interaction and Collaboration Services, Business Process Management, and Information as a Service) and the relationship between the scenarios. SOA Scenarios Reuse: Service Creation SOA Design People: Interaction & Collaboration Services Process: Business Process Management Connectivity: Service Connectivity SOA Governance Information: Information as a Service SOA Security SOA Management Figure 2-15 SOA scenarios and entry points In this section, we detail the Business Process Management and Service Connectivity scenarios because they are relevant to this paper. You can apply and adopt them incrementally and use them in collaboration with other scenarios. You can also use SOA Design, SOA Governance, SOA Security, and SOA Management in each of the SOA scenarios based on customer requirements. Business Process Management scenario Business Process Management leads to business innovation and optimization by implementing business strategy through modeling, developing, deploying, and managing business processes throughout the entire life cycle. The modeling of processes helps to combine and to relate business processes, information, and IT resources. This aligns the organization's core assets, people, information, Chapter 2. Key technologies of SOA implementation on System z 39 technology, and processes to create a single integrated view of both its business measurements and IT system performance. The Business Process Management scenario includes the runtime products, monitoring, and development tools that are used to implement custom artifacts that leverage the infrastructure capabilities. The core IBM products that are used for the Business Process Management scenario are: Model: WebSphere Business Modeler V6 Assemble: WebSphere Integration Developer V6 Deploy: WebSphere Process Server V6 Manage: – WebSphere Business Monitor V6 – IBM Tivoli® Composite Application Manager for SOA V6 The additional IBM products that are used for this scenario, depending on customer requirements, are as follows: Model: IBM Rational Software Architect V6 Deploy: – WebSphere Portal – WebSphere Adapters Manage: – IBM Tivoli Access Manager – IBM Tivoli Federated Identity Manager Governance: WebSphere Service Registry and Repository Note: For further details on the Business Process Management scenario, refer to Patterns: SOA Foundation Service Connectivity Scenario, SG24-7228. Service Connectivity scenario The Service Connectivity scenario is used to demonstrate the integration of service providers and consumers, allowing for the reuse of existing and new services across multiple channels. This scenario is appropriate for an enterprise that has a set of core services or systems which are to be made available as services to a variety of internal and external clients. Flexibility to make changes to service providers and make changes to service clients independent from each other is a requirement. 40 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus The focus of this scenario is on the underlying connectivity used to support business-centric SOA. An enterprise service bus provides decoupling between clients and providers, providing the flexibility to implement applications more quickly. Specific connectivity and integration requirements for an enterprise will ultimately drive product selection of the ESB and supporting products. The choice of runtime products can include one or more of the following: WebSphere Message Broker WebSphere Enterprise Service Bus IBM DataPower® SOA Appliances Web Services Gateway (WebSphere Application Server Network Deployment V6) WebSphere Adapters WebSphere Service Registry and Repository The choice of SOA life cycle products depends largely on the runtime products that are selected. You can use the following products to support the runtime environment: WebSphere Message Broker Toolkit Rational Application Developer WebSphere Integration Developer IBM Tivoli Composite Application Manager for SOA IBM Tivoli Composite Application Manager for WebSphere IBM Tivoli Composite Application Manager for RTT V6.0 OMEGAMON® for Messaging IBM Tivoli Access Manager IBM Tivoli Federated Identity Manager Note: For further details on the Service Connectivity scenario, refer to Patterns: SOA Foundation Service Connectivity Scenario, SG24-7228. 2.5 Overview of WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS This section gives an overview of WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS. Both are members of the product suite from IBM for integration capabilities within organizations, and each offers an implementation of principles laid down by SOA and the SCA. For a more detailed Chapter 2. Key technologies of SOA implementation on System z 41 introduction to the two products and how to optimize both within an SOA architecture, read Chapter 3, “WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS” on page 65. Figure 2-16 shows how the two products are based upon WebSphere Application Server with its J2EE runtime and proven quality of service strengths such as clustering, scalability, and security. At the time of writing, the current versions of both WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS are V6.0.1, and both rely on WebSphere Application Server for z/OS V6.0.1. WebSphere Process Server Choreography WebSphere Enterprise Service Bus Mediation WebSphere Application Server for z/OS Clustering WebSphere Application Server App Server Figure 2-16 Relationship and services between the products 2.5.1 WebSphere Process Server for z/OS This section gives an overview of WebSphere Process Server on z/OS. Business Process Management To stay ahead of the competition, companies are constantly striving for differentators. A common practice is to review and to refine business activities. Processes evolve over time as a company reacts and adapts to market conditions, and any method that codifies and automates processes quickly will help bring about competitive advantages. Thanks to improvements in graphical tools and business friendly notations, the bridge between business and IT departments is narrowing, and both parties can work closely in redefining and developing new processes and workflows. In 42 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus addition, SOA promotes the building of business process models, business rules definition, business rules implementation, and technical workflow models. With these enablements, Business Process Management brings processes, people, and information together to increase efficiency for the entire enterprise. WebSphere Process Server WebSphere Process Server is an SCA compliant runtime element that provides a fully converged, standards-based process engine that is underpinned by WebSphere Application Server. It is, along with WebSphere Enterprise Service Bus, a strategic product for integration and modernization of IT assets, including core systems using SOA. Following the principles of SCA, there is a single invocation model, a single data model, and a component-based framework. Everything in WebSphere Process Server is a component. These components have an interface and can be wired together to form a module. This modular arrangement enables the changing of any part of an application without affecting the other parts. For example, a human task can be replaced with a business rule without the need to modify the business process. Figure 2-17 shows the major components that make up WebSphere Process Server. Business Processes Mediation Mediation Flows Flows (ESB) (ESB) Human Tasks Interface Maps Service Component Architecture Business State Machines Business Object Maps Business Rules Relationships Business Objects Dynamic Dynamic Service Service Selection Selection Common Event Infrastructure WebSphere Application Server Figure 2-17 WebSphere Process Server V6 components Chapter 2. Key technologies of SOA implementation on System z 43 Business Processes component The Business Processes component contains a WS-BPEL compliant process engine. Users develop and deploy business processes with support for long- and short-running processes and also make use of a robust compensation engine. WebSphere Process Server supports dynamic business processes as follows: Visually describes processes that span people, systems, applications, tasks, rules, and the interactions among them Supports long- and short-running business processes Provides transaction rollback-like functionality for loosely coupled business processes that cannot be undone automatically by the application server Integrates fault handling for easy, in-flow exception handling Accepts Java snippets and artifacts as part of a business process Human Tasks component This component helps to describe and to implement automated tasks and role-based human tasks as part of automated business processes. Business processes involving human interaction can be interruptible and persistent and there is management of role-based task assignment, invocation, and escalation. For example, users can pause long or complex tasks and resume them later for completion. You can use existing Lightweight Directory Access Protocol (LDAP) directories (and operating system repositories and the WebSphere user registry) to access staff information and authorization. Business State Machine components These components provide an alternative to modeling a business process. Business can represent their business processes on states and events that sometimes are easier to model than a graph-orientated business process model. These event-oriented scenarios are sometimes hard to model in a WS-BPEL model, but can be very easy to model in a state-machine diagram. The WebSphere Process Server state machine is designed to emulate Unified Modeling Language (UML) state-machine diagrams. There is an event catalog with four main categories detailing types of events to be managed by WebSphere Process Server for z/OS: 44 Common Base Event standard elements Business Object events Business Process Choreographer events Process Server events z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Business Rules component This component provides support for rule sets (if-then rules) and decision tables. Business rules are categorized into rule groups which hide implementation details from the consumer and which are accessed just like any other component. This capability allows dynamic changes of a business process for a more responsive business environment. They contain policies and conditions imposed by the business. Additionally there are a number of supporting components that deal with the differences that come with various applications and systems in a heterogeneous IT environment. These servicing components are as follows: Interface maps: very often interfaces of existing components match semantically but not syntactically (for example, updateCustomer versus updateCustomerInDB2). This is especially true for already existing components and services. Interface maps translate these calls so that these components can be invoked. Additionally, business object maps can be used to translate the actual business object parameters of a service invocation. Business object maps: Used to translate one type of business object into another type, these maps can be used in a variety of ways (for example, as an interface map to convert one type of parameter data into another). Relationships: A common problem with keeping business objects in sync is that different back-end systems use different keys to represent the same objects. The WebSphere Process Server relationship service establishes relationship instances between objects in these disparate systems. These relationships are typically accessed from a business object map while one business object format is being transformed into another. Selector: Different services that all share the same interface can be selected and invoked dynamically by a selector. For example, a customer support process might use different human task implementations during different times of the day. Work is routed to different support centers (Americas, Europe, and Asia-Pacific) based on the time of day. The key tools for modelling and assembling processes for import into the Business Process Choreographer are WebSphere Business Modeler and WebSphere Integration Developer. With these development tools, the developer can adhere to specification rules and switch off all the extensions or use them as desired. Chapter 2. Key technologies of SOA implementation on System z 45 You can find details about WebSphere Business Modeler and WebSphere Integration Developer in 2.6, “Tools for SOA enablement” on page 52. For more information about WebSphere Process Server, see 3.2, “WebSphere Process Server for z/OS” on page 66. You can find information about WebSphere Process Server for z/OS online at: http://publib.boulder.ibm.com/infocenter/dmndhelp/v6rxmx/topic/ com.ibm.wsps.z.doc/welcome_wpsz.htm 2.5.2 WebSphere Enterprise Service Bus for z/OS WebSphere Enterprise Service Bus compliments WebSphere Process Server by introducing enhanced integration capabilities. Services should, by definition, be reusable by a number of different consumers, so that the benefits of reduced connections are achieved. This would apply to WebSphere Process Server, itself as a consumer or provider. WebSphere Enterprise Service Bus is the mediation layer that runs on top of the transport layer within WebSphere Application Server. As such, WebSphere Enterprise Service Bus provides prebuilt mediation functions and easy-to-use tools to enable rapid construction and implementation of an ESB as a value-add on top of WebSphere Application Server. From this definition, we realize that WebSphere Enterprise Service Bus for z/OS is a defining element, an integration pillar, that needs from the qualities of z/OS and WebSphere Application Server for z/OS to offer availability as the transport, transformation, and mediation layer. Figure 2-18 shows the WebSphere Enterprise Service Bus for z/OS programming model and features. 46 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Messaging: MQ Interoperability Clients: C++ Client JMS 1.1 .Net Client Java and C/C++ Web Services Client WebSphereEnterprise Service Bus Custom Mediation WebSphere Integration Developer XSLT Web Services: Message Logger Mediation Function Message Router DB Lookup WebSphere Application Server Tivoli Access Manager DB2 Universal Database Edge Components UDDI Web Services Gateway SOAP/ HTTP WebSphere Adapter Support SCA Programming Model: SCA SOAP/ JMS WS-* UDDI Registry 3.0 SMO SDO Figure 2-18 WebSphere Enterprise Service Bus components and associations To do integration properly, SOA states the need of having a single invocation model and a single data model. WebSphere Enterprise Service Bus uses SCA as its invocation model and that is why SCA is part of the first layer of elements shown in Figure 2-18. Also CEI, the foundation for monitoring business performance, is part of this layer. The ESB is basic for the integration strategy and there’s the need to know how it behaves. The event definition is standardized using the OASIS specifications. From the ESB definition given by SOA, there are four basic tasks that an ESB has to perform: Route messages among services Transform message formats when necessary Convert protocols for the consumer and the provider Handle events from different services Chapter 2. Key technologies of SOA implementation on System z 47 WebSphere Enterprise Service Bus conforms to all Web services standards to achieve those basic capabilities. It uses SOAP either with JMS or HTTP. It can also talk to WebSphere MQ or WebSphere Message Broker or an adapter. The modules in charge of doing the operations for WebSphere Enterprise Service Bus are called mediation components. These mediation components are built using WebSphere Integration Developer. This tool has features to aid developers similar to an assembly diagram editor, a mediation flow editor, and a visual debugger. When created, the mediation modules are deployed to WebSphere Enterprise Service Bus. 2.5.3 Supporting products This section contains brief details on the elements that are required to support the operation of both WebSphere Process Server and WebSphere Enterprise Service Bus. WebSphere Application Server WebSphere Application Server V6 is the IBM implementation of the J2EE (Java 2 Enterprise Edition) platform, which conforms to V1.4 of the specification. WebSphere Application Server is available in several different configurations that are designed to meet a wide range of customer requirements. Each configuration is packaged with other components that provide a unique environment. Figure 2-19 on page 49 shows the main components that make up WebSphere Application Server Network Deployment. The Network Deployment configuration offers central administration and workload management. A Network Deployment environment consists of one or more Base installations and a Deployment Manager installation. The Base application servers are added to the cell in a scalable manner and are managed by the Deployment Manager. The Network Deployment package also includes the Web Services Gateway, a UDDI Registry and J2EE Connector Architecture services. 48 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Application server Scripting client Server configuration Console Admin application Web browser client Web container EJB container WebSphere extensions Application (EAR) Administrative infrastructure Configuration files Class loader Web server, plug-in Caching proxy * Client container Java client JCA services Application database managed by external provider (MQ) Messaging engine manages Service integration bus Web services engine Naming and directory Message queues Web services provider or gateway Transactions Performance infrastructure PD infrastructure WLM and HA * * Available only with Network Deployment edition Security infrastructure Ports Environment settings Figure 2-19 WebSphere Application Server Network Deployment components For more information about Base Server and Network Deployment, refer to: http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topi c=/com.ibm.websphere.zseries.doc/info/welcome_nd.html For more information about the J2EE 1.4 specification, refer to: http://java.sun.com Chapter 2. Key technologies of SOA implementation on System z 49 IBM DB2 Universal Database IBM DB2 Universal Database™ Enterprise Server Edition is a version of DB2 Universal Database that allows you to create and manage single partitioned or partitioned database environments. Partitioned database systems can manage high volumes of data and provide benefits such as high availability and increased performance. DB2 Universal Database V8.2 delivers new features to address the ever increasing demands and requirements on important data, which include: Broadened autonomic computing solutions that automate and simplify potentially time consuming and complex database tasks A significant amount of new capabilities as well as further integration of DB2 tooling into the Microsoft .NET and WebSphere Java environments These new capabilities simplify the development and deployment of DB2 applications and allow application developers to take advantage of the openness, performance, and scalability of DB2, without regard to the back-end database or the chosen application architecture. Integration of industry proven high availability disaster recovery technology, allowing line-of-business managers and the enterprise to benefit because applications face less risk of downtime For more information, refer to the IBM DB2 Universal Database Web site: http://www.ibm.com/software/data/db2/udb IBM Cloudscape IBM Cloudscape™ is an open source Java relational database management system (RDBMS) that can be embedded in Java programs and used for online transaction processing. IBM Cloudscape features include: Rapid application development through the Java-based RDBMS that is built from the ground up for the embedded environment This platform independent, small footprint database integrates tightly with any Java based solution, allowing shortened development cycles. Support for Java technology standards Single application versions can be created that run on any standard Java Virtual Machine (JVM™). Does not require database administration or resource management and is invisible to non-technical users, eliminating the need for database administration at each client installation site IBM Cloudscape can also be deployed anywhere, for example, from notebook or desktop applications to robust server solutions. 50 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Tuned for high performance as well as efficient use of resources, with a straightforward migration path to various IBM DB2 versions Supports international characters and formats as well as a rich set of RDBMS features that are based on SQL-92E, including row locking, triggers, and stored procedures Available access to IBM Cloudscape from inside Java programs using Java Database Connectivity (JDBC™) and the ability to embed the IBM Cloudscape database inside Java applications on the server The Cloudscape Network server comes as part of the IBM Cloudscape package. It provides multiuser connectivity to IBM Cloudscape databases within a single system or over a network using Standard Distributed Relational Database Architecture™ (DRDA) protocol. For more information, see the IBM Cloudscape Web site: http://www.ibm.com/software/data/cloudscape WebSphere Business Monitor WebSphere Business Monitor is a Web-based client/server application that measures business performance, monitors processes and work flow, and reports on business operations. The information captured can help identify problems, correct faults, and change processes to achieve a more efficient business. It is an optional inclusion and helps monitor business processes at runtime by monitoring event-emitting runtime engines. It does so having calculated Key Performance Indicators (KPIs) and metrics using collected events, based on a given model. The Business Measures editor is used to open the process models created in WebSphere Business Modeler and business measures models are set up. For each business measures model, you can define the metrics and KPIs, event emission points, event filters, event composition rules, and situations that will trigger specific actions at runtime. Only applications that are running on WebSphere Process Server Version 6.0.1 are currently supported. For more information, see the WebSphere Business Monitor Web site: http://www.ibm.com/software/integration/wbimonitor/ Chapter 2. Key technologies of SOA implementation on System z 51 2.6 Tools for SOA enablement This section describes the various tools that are used as part of building SOA capability within an organization. It focuses on IBM products that adhere to the principles laid out by SOA and SCA and are based upon Eclipse. Eclipse is an open source, Java-based, extensible development project aimed at providing an integrated tool framework. At the heart of Eclipse is an extensive tool framework offering a set of core capabilities that supports extension through a plug-in architecture. Note: For more information about Eclipse and tutorials, visit the following Web site and explore the Getting Started pages: http://www.eclipse.org The section takes a top down approach, following the SCA programming model principles, using tools that help model the business process flows, the associated data elements and the service interface definitions. Included also are the tools that are used for defining and constructing routing and transformation mediation modules. 2.6.1 WebSphere Business Modeler Defining and modeling business processes is a critical factor in improving business performance. A business process is a variable pattern of interactions that occur between an organization's components and its environment as the organization pursues its business objectives and competitive advantage. WebSphere Business Modeler is the Eclipse based business process modeling tool that enables modelling, design, analysis and generation of business processes and reports. It supports Business Driven approaches by assisting with integration and evolvement of new and revised workflows, and helps define the organization structure, resources, and business items. As business processes are often complex due to numerous incremental changes, a well-constructed business process model can help locate and eliminate hidden inefficiencies, costs, and delays. WebSphere Business Modeler helps by having various modes that offer different but interrelated perspectives of business models, as follows: Process modeling Process modeling mode facilitates the creation of robust business process models by describing and building a sequence of tasks and processes linked 52 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus by connectors. A process can contain multiple branching paths based on decisions made during the process execution. A process can also contain subprocesses. Business item modeling Process models can include any business document, work product, or commodity that is used for a particular business operation. A business item is anything that is created, assembled, inspected, tested, modified, or worked upon. Business items can also undergo changes as they are passed from one step to the next in process models. Resource modeling WebSphere Business Modeler helps model the company's resources, such as employees, computers, vehicles, or electricity. Any person, equipment, or material used to perform a task or a project can be represented and used in the process models. Depending on the level of complexity, details such as roles, costs, and timetables can also be documented. Organization modeling An organization is an entity where people cooperate to accomplish specified objectives. For example, an organization can be an enterprise, a company, or a factory. A typical company consists of one or more organizations; the larger the company, the more organizations it will normally have. With WebSphere Business Modeler, such details of an organization and its sub-elements can be captured. Structure modeling Structures define the relationships between different entities in an organization. Using WebSphere Business Modeler, structures will show how different types of business entities interact with one another in relationships of varying complexity, and allow for different relationships among the same divisions within the same company. Business Modeler and SOA The tool is also a key component of an SOA implementation and gives a direct link from business process modeling to the implementation of software services, and the inherent modularity of service-oriented applications helps to ensure that both current and future business requirements will be met. You can export generated WS-BPEL to WebSphere Integration Developer to build and to deploy business processes that are based on SOA. Chapter 2. Key technologies of SOA implementation on System z 53 2.6.2 WebSphere Integration Developer WebSphere Integration Developer is the development environment for building integrated business applications that are targeted for WebSphere Enterprise Service Bus and WebSphere Process Server. One of the primary purposes of WebSphere Integration Developer is to provide the appropriate tools to build and test SCA based solutions easily. WebSphere Integration Developer is built on the Rational Software Development Platform, which is based on Eclipse 3.0 technology. Figure 2-20 illustrates the relationship between WebSphere Integration Developer and the other Rational Software Development Platform products. IBM Rational Software Architect V6 IBM Rational Application Developer V6 IBM WebSphere Integration Developer V6 IBM Rational Web Developer V6 Rational Software Development Platform (Eclipse 3.0) Figure 2-20 Development tools overview WebSphere Integration Developer includes most functions provided by IBM Rational Application Developer, but not all of them. For example, the Crystal Report tools and WebSphere Portal development tools are not included in WebSphere Integration Developer but in IBM Rational Application Developer. Because both products are based upon the IBM Rational Software Development Platform, they can be combined in a single development environment. 54 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Figure 2-21 presents an overview of the common tasks that are carried out using WebSphere Integration Developer. It shows the main stages in the mediation module development process and provides assistance in navigating this section. Workspace configuration Interface definition Mediation module development Running mediation modules Exporting resources Figure 2-21 Common tasks in WebSphere Integration Developer If a single user assumes both the integration developer role and the application developer role, the user can either use the J2EE development tools in WebSphere Integration Developer or both development products, WebSphere Integration Developer and IBM Rational Application Developer 2.6.3 IBM Rational Software Architect IBM Rational Software Architect is part of the Rational Software Development Platform. It allows architects to design and to maintain application architectures. The tool is built on Eclipse, so developers and architects can leverage the usability features of the Eclipse platform. For SOA, IBM Rational Software Architect helps support service-oriented modeling and design with tools for software architects to visually model and design SOAs using the open standard UML to document SOAs as well as support for patterns, customizable, and repeatable solutions for development tasks. The resulting outcomes of work with UML will be a set of components with services defined in WSDL. 2.6.4 WebSphere Developer for System z WebSphere Developer for System z consists of a common workbench and an integrated set of tools that support end-to-end, model-based application development, runtime testing, and rapid deployment of on demand applications. WebSphere Developer for zSeries V6 is based on the Rational Software Development Platform and facilitates the development of both Java- and z/OS-based applications. It includes capabilities that make traditional z/OS mainframe development, Web development, and integrated composite development faster and more efficient. Upgraded XML and Web services support, enabling SOA access to CICS Transaction Server V3.1 and IMS V9 are now included. Chapter 2. Key technologies of SOA implementation on System z 55 2.7 Other considerations This section covers topics that you should take into consideration when developing an SOA implementation. These topics apply particularly to those larger enterprises that plan to introduce a comprehensive and flexible SOA framework into their heterogeneous IT environment. 2.7.1 A successful business services architecture for SOA An SOA is only as successful as the business optimization and reusability of the services that it provides. This theory applies to business services, such as getBalance or updateCustomerDetails, and more technical services, such as user authorization. For a successful SOA, it is important to identify and to construct a well-defined framework of business services from new capabilities and existing assets. An SOA is driven principally by business drivers. Therefore, it is logical to consider requirements as top-down, coming from strategic decisions and changing business conditions. What is equally important however, is recognizing that through new technologies, existing assets are now less constrained in terms of providing the functionality that is required for enterprise-wide usage. This important point helps reduce the need to purchase new applications or to build new functionality.Any approach or methodology for SOA should always have both top-down and bottom-up steps as well as a meet-in-the-middle task that can help to optimize existing assets. These steps should also be done in the context of a model-driven development (MDD) approach. We use the term model-driven development to describe approaches where automation generates artifacts from models. Model-driven development has a profound effect on the way we build business application software. It captures the expertise and decisions of your top technical people, making them available to the rest of the team through tooling that is customized for your project's needs. The cost of development and testing the business software is reduced significantly because much of the low-level coding work is automated. The number of errors are reduced, and there is an increase in the consistency with which work is accomplished. 56 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Figure 2-22 illustrates how top-down and bottom-up tasks are drawn together. Flexible Business Transformation Business Process Outsourcing Mergers, Acquisitions & Divestitures Composable Processes (IBM Component Business Modeling) Requires ServiceOriented Modeling Flexible IT On Demand Operating Environment Service-oriented Architecture (SOA) Development Software Development Infrastructure Integration Management Composable Services (SOA) Infrastructure Management Figure 2-22 Top-down and bottom-up relationship between business and IT These approaches have the following benefits and drivers: Top-down approach This approach takes business drivers and requirements for services to produce service specifications. The collection of specified services are captured within a services model which undergoes a series of iterative steps with input of work from the bottom-up tasks. Bottom-up approach Here the existing IT assets of the organization are examined and their suitability and compatibility for required services assessed. They are expected to meet SLAs (Service Level Agreements) and be technically capable of fitting into the SOA architecture. Meet-in-the-middle approach Combining the work of top-down and bottom-up approach produces a gap analysis of what can be provided by the existing IT assets and what new functionality needs to be developed. The meet-in-the-middle approach is a continuous refinement of the required processes and services and helps with optimal leverage of existing assets. Chapter 2. Key technologies of SOA implementation on System z 57 The eventual outcome of this work sees a set of well-defined, domain based components that contain within them services that realize business needs. For more information about these business drivers, see Patterns: Model-Driven Development Using IBM Rational Software Architect, SG24-7105. 2.7.2 Patterns for SOA The introduction of SOA, and with it the ability to collaborate with and to call upon services that are offered by third-party providers outside of the organization, means there are now new extensions to patterns for SOA integration. Architecture patterns are the end-result of harvesting assets and best practices from engagements to enable IT architects to architect future solutions based on proven and successful results. This reuse saves time, money, and effort. IBM has the IBM Patterns for e-business, which are a group of proven, reusable assets that you can use to increase the speed of developing and deploying business applications. Note: For information from IBM on Patterns for e-business, refer to: http://www.ibm.com/developerworks/patterns/ Integration patterns Integration patterns allow you to tie together multiple business patterns to solve a business problem and are subdivided into the following patterns: Access Integration patterns Application Integration patterns Table 2-1 gives high-level descriptions of these two patterns. Table 2-1 Integration patterns Integration patterns Description Examples Access Integration Integration of a number of services through a common entry point Portals Application Integration Integration of multiple applications and data sources without the user directly invoking them Message brokers, workflow managers, data propagators, and data federation engines 58 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus With the introduction of improved process integration capabilities and sophistication, the Application Integration pattern can be implemented further by WebSphere Process Server and WebSphere Enterprise Service Bus. WebSphere Enterprise Service Bus is able to implement the Broker application pattern while WebSphere Process Server implements the Serial Process application pattern and the Parallel Process application pattern. Note: For more information about these patterns, refer to: Patterns: Building Serial and Parallel Processes for IBM WebSphere Process Server V6, SG24-7205 Patterns: SOA Foundation Service Connectivity Scenario, SG24-7228 Broker application pattern The Broker application pattern allows a single interaction from the source application to be distributed to multiple target applications, reducing the proliferation of point-to-point connections. With the Router variation, each interaction is forwarded to, at most, one of the target applications, rather than all of them. Serial Process application pattern The Serial Process application pattern, shown in Figure 2-23 adds sequencing to the one-to-N topology of the Broker application pattern. It enables the orchestration of a serial business process. Source Application Serial Process Rules Tier Target Application Target Application Target Application WIP Intermediate Results R/O Process Execution Rules Figure 2-23 Serial Process application pattern Chapter 2. Key technologies of SOA implementation on System z 59 Parallel Process application pattern The Parallel Process application pattern, shown in Figure 2-24 adds concurrency to the Serial Process application pattern. The process orchestration can include paths that lead to parallel invocation of target application services. Parallel Process Rules Tier Target Application Target Application Target Application Source Application WIP Intermediate Results R/O Process Execution Rules Figure 2-24 Parallel Process application pattern 2.7.3 SOA security The introduction of SOA brings with it additional considerations in terms of security. As well as new technologies being introduced, the very concept of SOA itself, with its principle of loosely coupled and abstracted services means identity validation of both consumers and providers is made harder to manage. Any application plugged into an SOA architecture is likely to have different identity mechanisms and security policies. Users will most likely have different privileges for different applications, and thus they will need to be authenticated for each of the applications that are used via the SOA framework. IT security for SOA therefore requires an end-to-end Identity Management and Authorization capability – one that is able to determine access rights for every application and user involved. z/OS offers comprehensive security features with a security server providing not only RACF®, but the z/OS LDAP server, the z/OS firewall technologies, Network Authentication Privacy Service (Kerberos), z/OS Open Cryptographic Services Facility (OCSF), and the z/OS DCE server. 60 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus For information about the security that is provided by the WebSphere Process Server and WebSphere Enterprise Service Bus, see 5.1, “Security” on page 120. Digging deeper, security is required at different levels of the SOA infrastructure down to message (or object) level where you require entity authetication. Web services security is rapidly maturing and has the WS-Security specification which provides facilities such as WS-Trust, a token based authetication service for use with SOAP messages. Note: Refer to the following for specification details on Web services security: http://www.oasis-open.org/committees/download.php/16790/wss-v1.1spec-os-SOAPMessageSecurity.pdf 2.7.4 SOA governance According to Gartner, lack of governance within SOA brings about significant project failures: In 2006, lack of working governance mechanisms in midsize to large (more than 50 services) post-pilot SOA projects will be the most common reason for project failure (0.8 probability).1 SOA is cross organization by nature, even extending outside of the organization. This agility can only be attained when each part of the business maintains and controls the services they offer to other parts. Figure 2-25 shows service A within BU1 as being dependant on the integrity, performance, availability, and reliability of services that are managed by other BUs. Business Unit 1 Business Unit 2 Business Unit 3 A2 A3 Service A A1 Figure 2-25 Interrelationships between services offered by different business units 1 Gartner Research ID #G0013197, 27/10/2005 Chapter 2. Key technologies of SOA implementation on System z 61 This assurance and control only comes about through a proper governance plan. Effective governance of SOA covers the processes, practices and organizations that ensure that services and associated IT capabilities are in alignment with business needs. This is done by ensuring compliance of projects to the defined SOA. Figure 2-26 is a proposed Governance Framework that defines the principles, processes and roles required to use, update and manage the SOA. The key points are: The primary goal is to derive maximum value from the SOA by promoting its implementation, use and evolution The Framework defines how the SOA (and its associated models) should be managed and updated in response to changes in business needs and available technologies The Governance processes are fundamental to enabling the business to make conscious decisions about IT, the acquisition of IT assets, and the design and implementation of new IT solutions to meet business needs Strategy Enterprise wide focus Business Opportunity Information Technology Strategy Business Strategy Enterprise Architecture Planning Business Architecture IT Architecture - Processes - Information - People - Locations - Applications - Data - Technology Project focus Transition Plan Design and Delivery Business Operating Environment and IT Infrastructure IT Solutions Technology Availability En sur es Practices Ali gn me Ensures Vitality nt Effective Governance ce lian p om sC Organization e r su n E Processes Strategic Directions Governance Principles Figure 2-26 SOA Governance Framework showing alignment with business strategies and goals 62 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus For more details on the position of IBM on SOA Governance, see: http://www.ibm.com/software/solutions/soa/gov/ The following site gives independent views on IT governance: http://www.itgi.org/ 2.7.5 Management and monitoring an SOA environment An SOA environment means business processes increasingly depend on a disparate set of applications spanning multi-tiered architectural layers to provide the services they require. There needs to be efficient management and monitoring of SOA composite applications and the supporting infrastructure. The following are the challenges faced in SOA management: Manage and monitor the end-to-end view Manage service as resources Understand The Associations Between Services Ensure that Service Level Agreements (SLAs) and non-functional requirements are achieved and adhered to Business processes management and monitoring The ability to optimize business processes is a key aspect of SOA. Misalignment of the business processes or a bottleneck in workflows can have severe impacts. Therefore, it is vital that you do the following: Monitor key performance indicators against targets Track process flows Services monitoring As with processes, you need to monitor services with respect to SLAs to ensure their availability is not impacted. Transactions monitoring In order to implement a viable method of integration between a modern enterprise solution and an existing enterprise system the required design should keep to a minimum transport and protocol overheads, especially so for high volume transactional processing. Analyzing transactions in design time makes management and monitoring of such more precise. Chapter 2. Key technologies of SOA implementation on System z 63 Middleware monitoring In an SOA, the middleware layer is one of the most vital. Constant monitoring of mediation components, their message flows and associated tasks such as transformation is required as these elements create high overheads. It is therefore important that the health of the middleware layer be monitored constantly. Security management and monitoring There needs to be comprehensive security monitoring, given that service consumers and providers can be sited across boundaries. Security monitoring and management should cover: Consistent authorization handling across the infrastructure components Mapping of identities across various security subsystems Compliance to security policy and auditing 64 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus 3 Chapter 3. WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS In this chapter, we present WebSphere Enterprise Service Bus, WebSphere Process Server, and their relationship with z/OS. We depict how z/OS advanced features and design enhances the possibilities of the service-oriented architecture (SOA) strategy for your business. This chapter contains the following sections: Motivation for an SOA WebSphere Process Server for z/OS WebSphere Enterprise Service Bus for z/OS WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS at the core of your business © Copyright IBM Corp. 2006. All rights reserved. 65 3.1 Motivation for an SOA SOA strategy emphasizes the idea of reuse and componentization. Companies make large investments every year to enforce and to enlarge their existing IT assets. Using SOA, you can reuse your core developments to make new applications by recombining different components. Consider all the transactions, applications, and queries that you exploit in your z/OS installations. By making services of all these assets, you can use and combine each asset in a specific order to achieve a goal, otherwise known as a business process. Now, think about all those services that you have created with your valuable core code. These services can communicate with other subsystems — no matter where they are and no matter which transport and message protocols are used — using an Enterprise Service Bus (ESB). When we consider the new paradigms and value propositions of SOA, and at the same time realize the value of the existing IT assets and qualities of the System z, the potential of the combination of the System z strengths and the SOA concepts becomes clear. The combination can bring a fast return on investment when transitioning to an SOA, while building the SOA on the platform that provides the high qualities of services that an SOA requires. 3.2 WebSphere Process Server for z/OS WebSphere Process Server provides process choreography capabilities to construct business processes conforming to an SOA. Business integration solutions can be created using integration mechanisms, such as the Service Component Architecture (SCA) programming model and the Service Data Objects (SDO) data model. SDO business objects can be defined, transformed, routed, and mapped using SCA components. In this section, we introduce the major components of WebSphere Process Server and study each one in further detail. 3.2.1 Architectural overview WebSphere Process Server is an integration platform built on a uniform invocation programming model and a uniform data representation model. It provides integration capabilities with a composite application platform to deliver an integration platform with a fully converged, standards-based business process engine, underpinned by WebSphere Application Server for z/OS. 66 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Because WebSphere Process Server for z/OS is built on top of WebSphere Application Server for z/OS, it benefits from the common code policy kept by IBM with application servers for all platforms. WebSphere Process Server for z/OS has the same programming model on both System z and multi-platforms. Thus, the components and product design is the same, with the same features and administration model. Figure 3-1 shows WebSphere Process Server hosted on the WebSphere Application Server J2EE runtime, which offers proven qualities of service such as clustering, scalability, and security. The J2EE server also includes a built-in messaging provider, Java Messaging System (JMS), that you can configure to connect to a existing WebSphere MQ network. Business Processes Mediation Mediation Flows Flows (ESB) (ESB) Human Tasks Interface Maps Service Component Architecture Business State Machines Business Object Maps Business Rules Service Components Dynamic Dynamic Service Service Selection Selection Supporting Services Common Event Infrastructure SOA Core Relationships Business Objects WebSphere Application Server Figure 3-1 WebSphere Process Server V6.0.1 components Figure 3-1 illustrates a number of layers: SOA core To implement an SOA properly, it is necessary to have a single invocation model and a single data model. This invocation model is based on Service Component Architecture (SCA) — every integration component is described through an interface. These services can then be assembled in a component assembly editor thus enabling a very flexible composite application. Also in this layer we have business objects and the Common Event Infrastructure (CEI) that provide the implemented tools for the management of services and monitoring. Chapter 3. WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS 67 Supporting services Allows for integration inside a flow. Very often, processes contain services from different providers that have to be connected. These supporting services provide this level of integration. Service components These are SCA components that provide the heart of the WebSphere Process Server functionality. These components provide the ability to define WS-BPEL business processes, and to incorporate human tasks and business rules into these processes. 3.2.2 Service components In this section, we define each of the components in the service component layer that are identified in Figure 3-1 on page 67: Business processes Human tasks Business state machines Business rules Business processes component This component implements a WS-BPEL compliant process engine. Users develop and deploy business processes with support for long- and short-running processes and also make use of a robust compensation engine. WS-BPEL models are created from scratch in WebSphere Integration Developer or imported into WebSphere Integration Developer from a model developed in WebSphere Business Modeler. 68 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Figure 3-2 shows a WS-BPEL business process. Choreographed Services Figure 3-2 Constructing a dynamic process using WS-BPEL A business process has two modes of execution: Short-running process Long-running process Chapter 3. WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS 69 Figure 3-3 shows these two modes of execution. Short-running process Long-running process Receive Receive T1 Invoke T2 Invoke T4 T0 Invoke Invoke T5 Invoke Reply Invoke T4 Fault Reply Reply Fault Reply T7 T0 Figure 3-3 Short-running and long-running processes Short-running processes These processes are expected to execute in a short period of time, contain only automated activities, and operate under a single unit of work. Although a short-running process can contain parallel branches, these branches will not be executed in parallel at runtime, because a short-running process runs under a single thread of execution. Intermediate states for a short-running process are not persisted, so they are not recoverable in the event of failure. The main advantage of short-running processes is that they execute using fewer resources than a long-running process and therefore are considerably more efficient. Long-running processes These processes are defined by their execution time, that ranges from hours or days to months. Several transactions are usually involved in the definitions of these processes. Transaction behavior for some activities can be configured. Parallel activities are usual in long-running processes and blocking activities are allowed. For several instances of the same process running at the same time, 70 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus intermediate states are persisted and there is the need of using correlation sets. Correlation sets are necessary to match a message with its process instance to guarantee that the message arrives to the correct place. Human tasks component The human task components are used to assign work to be completed by a person. Additionally, the Human Task Manager supports the ad-hoc creation and tracking of tasks. Invocation for these components is not restricted to WS-BPEL processes. There are three sorts of human tasks: Machine-to-human, where a component creates a work task for human interaction. Also called a participation task. Human-to-machine, where a human creates the invocation for a component. Also called an originating task. Human-to-human, where a human creates an invocation for a component that creates a work item for a human. Existing LDAP directories (as well as operating system repositories and the WebSphere user registry) can be used to access user and group information. WebSphere Process Server supports multi-level escalation for human tasks including e-mail notification. Actions that you can take on human tasks depend on the authorization role. This role can be a J2EE role or and instance-based role. A role is a group of employees that share the same level of authority. J2EE roles are set up when the human task container is configured. Instance-based roles are assigned to human tasks and escalations when the task is modeled. In the case of WebSphere Process Server for z/OS, you can use Security Authorization Facility (SAF)-based authorization (for example, using the RACF EJBROLE profile) to control access by a client to J2EE roles in EJB™ and Web applications, including the WebSphere Application Server for z/OS Administrative Console application. If you choose an LDAP as user registry you can also use it in z/OS. In this case, you can choose whether this LDAP uses a DB2 database or SAF authorization. Note: Using SAF authorization with LDAP or custom user registries requires both a change in the user registry SAF authorization setting and the installation of JAAS system login pluggable identity mapping modules to map WebSphere Application Server for z/OS principals to SAF user IDs. Chapter 3. WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS 71 Using LDAP can also permit IBM Tivoli Access Manager as a repository because WebSphere Application Server contains an embedded client for IBM Tivoli Access Manager. To use IBM Tivoli Access Manager, you must also configure the IBM Tivoli Access Manager server. WebSphere Process Server also includes an extensible Web client that can be used to work with tasks or processes. This Web client is built based on a set of reusable Java Service Faces (JSF) components that can also be used to create custom clients or embed human task functionality into other Web applications. Business state machine component A business state machine is an implementation of a business model that moves from one state to another state based on real time events. It is an alternative to modeling a business process. Using a business state machine, you can model the behavior of a business process by focusing on the different states the process can move through in response to incoming events known as transitions. You should use business state machines when a process is heavily event driven. One example is an ordering process where the order can be cancelled or modified at any time during the order process. Business rules component Business rules are a means of implementing and enforcing business policy and process rules. These rules allow dynamic changes of a business process for a more responsive business environment. WebSphere Process Server includes a Web-based runtime tool for business analysts so that business rules can be updated as business needs dictate without affecting other SCA services. Business rules are offered in graphical view as decision tables. A decision table functions as a condition with a corresponding action. If a condition is met, then the corresponding action or actions are performed. 3.2.3 Supporting services In addition to the core service components, there are a number of supporting components that deal with the differences that come with various applications and systems in a heterogeneous IT environment. These supporting components are the second layer pictured in Figure 3-1 on page 67. We discuss them in this section. Interface maps Very often interfaces of existing components match semantically but not syntactically (for example, updateCustomer versus updateCustomerInDB2). This is especially true for already existing components and services. Interface maps 72 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus translate these calls so that these components can be invoked. Additionally, business object maps can be used to translate the actual business object parameters of a service invocation. Business object maps Used to translate one type of business object into another type, these maps can be used in a variety of ways (for example, as an interface map to convert one type of parameter data into another). Relationships In business integration scenarios, it is often necessary to access the same data, such as customer records, in various back-end systems, for example, Enterprise Resource Planning (ERP) and Customer Relationship Management (CRM). A common problem with keeping business objects in synchronization is that different back-end systems use different keys to represent the same objects. The WebSphere Process Server relationship service establishes relationship instances between objects in these disparate systems for two or more data types. These relationships are typically accessed from a business object map while one business object format is being transformed into another. The relationship data is stored in a database. In the case of WebSphere Process Server for z/OS, DB2 V7.x and DB2 V8.x are supported as the database managers for deployment. WebSphere Process Server for z/OS also offers stored procedures support for dynamic relationships management. It is possible to use cross platform stored procedures for DB2 z/OS. DB2 provides a procedure that is used for compiling SQL into C functions. Dynamic service selection WebSphere Process Server offers the possibility of using a dynamic selection mechanism interposed between the service consumer and the target provider when several versions of the same service share their interface. This selector allows new implementations, according to SCA, to be added dynamically without the need of an outage of the application server. For example, a customer support process might use different human task implementations during different times of the day. Work is routed to different support centers (Americas, Europe, and Asia-Pacific) based on the time of day. WebSphere Process server offers a Web-based interface for dynamic updates to selection criteria and target services. As in previous cases, WebSphere Process Server for z/OS supports DB2 V7.x and DB2 V8.x as target for the deployment of the selection rules. Chapter 3. WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS 73 Mediation flows Mediation flows act as a middle tier for messages sent between a service consumer and provider. The messages can be mediated, to permit activities such as dynamic routing, and message or protocol transformation. Mediation flows are part of WebSphere Process Server and are the core functionality in WebSphere Enterprise Service Bus. We discuss mediations flows in more detail in 3.3, “WebSphere Enterprise Service Bus for z/OS”. 3.2.4 SOA core The base functionality underlying the other services in WebSphere Process Server is the SOA core (shown as the bottom tier in Figure 3-1 on page 67). We discuss this functionality in this section. Business objects Business objects are the universal data description that follow the SOA model, which requests a single data model and a single invocation model. They are used as data going in and out of services and are based on the SDO standard described in “Service Data Objects” on page 33. Figure 3-4 shows a simple view of the WebSphere Process Server programming model. Composition Invocation Data WS-BPEL (plus extensions) Service components (SCA) (plus extension) Service Data Objects (SDO) (plus extensions) Figure 3-4 The WebSphere Process Server programming model 74 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus The business object framework provides support for disconnected use of the data objects by keeping a change history. It also assures relationship integrity and validation. Figure 3-5 illustrates the layers of this business object framework. Business Object definition Business Object Metadata definition Business Graph definition Business Object Services Figure 3-5 Business framework structure Service component architecture Service component architecture (SCA) bindings describe the physical description of components. Services that can be accessed include Plain Old Java Objects (POJOs), EJBs, Web services, JMS messages and adapters. We discuss SCA in 2.2.4, “Service Component Architecture” on page 17. Common event infrastructure The common event infrastructure (CEI) provides facilities for the generation, propagation, persistence, and consumption of events. When you plan how to use the event infrastructure in your system design, you need to understand the business concepts that are relevant, and map them to the appropriate components of your system design. You should provide the semantics of event management by defining event types and event groups, in the context of an architecture of event sources and event consumers. WebSphere Process Server supplies a default event group that is defined to include all events. This event group is called All events. Chapter 3. WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS 75 Figure 3-6 shows the event infrastructure. Event Source Submit Distribute Complete Event Consumer Event Consumer Event Consumer Event Consumer Query Store Event Data Figure 3-6 Event infrastructure Events within WebSphere Process Server occur when, for example, a new process instance is created or a fault has been issued. All event objects are passed to the event infrastructure to enable tracking of the progress of a business process, audit, and monitoring. CEI is the base for monitoring and all events can be sent to the WebSphere Business Monitor to measure business performance. In WebSphere Process Server for z/OS both DB2 V7.x and DB2 V8.x are supported as the event data repositories. 3.2.5 Component organization This section introduces how the components of WebSphere Process Server are organized into deployable units. Modules A module is a basic deployment unit for a WebSphere Process Server application. A module contains one or more component libraries and staging modules used by the application. A component can reference other service components. Developing modules involves ensuring that the components, staging modules, and libraries (collections of artifacts referenced by the module) required by the application are available on the production server. 76 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus WebSphere Process Server supports two types of service modules: Business service modules Mediation modules Business service modules implement the logic of a process. A mediation module allows communication between applications by transforming the service invocation to a format understood by the target, passing the request to the target, and returning the result to the originator. With WebSphere Process Server, a service module can either export a service component for use by other modules or import a service component for use. To invoke a service component, a calling module references the interface to the service component. The references to the interfaces are resolved by configuring the references from the calling module to their respective interfaces. Note: You can deploy mediation modules to the WebSphere Enterprise Server Bus or the WebSphere Process Server. You can only deploy business service modules to WebSphere Process Server. Business service modules Business service modules are developed using the WebSphere Integration Developer's assembly editor. The building blocks of the business solution are SCA components wired together to form modules that can be deployed to WebSphere Process Server. Components are business services that operate on business data. The WebSphere Integration Developer tools generate implementations that the assembly editor can use for components. For example, the implementations include business processes, state machines, human tasks, and so forth. The structure of the component is simple. It has the following parts: An implementation Optionally, one or more interfaces Optionally, one or more partner references Components are reusable. That is, they can be wired to new and existing components to create new applications. Business service modules can contain all of the components offered by WebSphere Process Server, with the exception of mediation components. Mediation modules Mediation modules are used to create mediation flows. They typically contain a mediation flow component. For more information about mediation modules, see “Mediation modules” on page 85. Chapter 3. WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS 77 3.2.6 Topologies for WebSphere Process Server for z/OS WebSphere Process Server for z/OS is a complex subsystem that will drive strategic business for your enterprise. It is very important to plan how and where it will be implemented. You need to think about your present and future needs and take the necessary steps to have an stable, reliable and secure implementation. You need a detailed plan for availability, scalability, failover, repository and, of course you have to design a topology to achieve your goals. Clustering in WebSphere Application Server for z/OS The underlying support for the WebSphere Process Server for z/OS is WebSphere Application Server for z/OS (see 3.4.1, “WebSphere Application Server for z/OS advantages” on page 89 for hints about its benefits). Thus, the application server dictates the possible topologies that you can use. You need to know how many cells you need, how many nodes in each cell and how many servers in each node, if you need clusters, and in what logical partitions (LPARs) you need those clusters. WebSphere Process Server for z/OS takes advantage of the design of WebSphere Application Server for z/OS. You have to plan more for failover and redundancy than for scalability. Workload Manager (WLM) takes care of the server instances scalability by starting servant regions when needed and stopping them to free resources and to make them available for other tasks. A typical WebSphere Application Server for z/OS base runtime includes a cell with a location service daemon and a single node that includes an application server made of a controller and one or more servants. After you have installed the WebSphere Application Server runtime and associated business application servers on a monoplex, you can migrate the runtime and associated application servers to a sysplex configuration. A sysplex is the best configuration possible to obtain full availability and failover. The benefits of migrating to a sysplex include: You can balance the workload across multiple systems, therefore providing better performance management for your applications. As your workload grows, you can add new systems to meet demand, therefore providing a scalable solution to your processing needs. By replicating the runtime and associated business application servers, you provide the necessary system redundancy to assure availability for your users. Therefore, in the event of a failure on one system, you have other systems available for work. You can upgrade the application server from one release or service level to another without interrupting service to your users. 78 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus The technique used in WebSphere Application Server to associate applications with groups of servers that execute them and are able to do failover among them is called clustering. When you create a cluster, you make copies of an existing application server template. The template is most likely an application server that you have configured previously. You are offered the option of making that server a member of the cluster. However, it is recommended that you keep the server available only as a template, because the only way to remove a cluster member is to delete the application server. When you delete a cluster, you also delete any application servers that were members of that cluster. There is no way to preserve any member of a cluster. Keeping the original template intact allows you to reuse the template if you need to rebuild the configuration. A vertical cluster has cluster members on the same node, or physical machine. A horizontal cluster has cluster members on multiple nodes across many machines in a cell. You can configure either type of cluster, or have a combination of vertical and horizontal clusters. A sysplex is a way to obtain ultra-reliable horizontal clustering. Clustering in WebSphere Process Server for z/OS Consider the following before creating a clustered environment for WebSphere Process Server for z/OS. Ensure that you have adequate resources to implement clustering successfully. Analyze the service applications that you will deploy into the clustered environment. Some of the optional steps you perform depend on the needs of the service applications. Ensure that the application logic is tolerant of a clustered environment. Familiarize yourself with network deployment and clustering as described in the WebSphere Application Server for z/OS information center. Configure WebSphere Application Server for z/OS to support a WebSphere Process Server for z/OS clustered environment. You can find a detailed description of all these tasks at: http://publib.boulder.ibm.com/infocenter/dmndhelp/v6rxmx/index.jsp Chapter 3. WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS 79 There are some interesting configurations worth considering: Support of WebSphere Process Server applications from another server or cluster In this scenario, the cluster or server does not host WebSphere Process Server applications. However, it can host the business rules manager and JMS queues (destinations) used by applications running on remote servers or clusters. The JMS destinations are hosted in the messaging engines that execute in the server or cluster. Support of WebSphere Process Server applications without supporting bus members A cluster or server can be configured as a deployment target for WebSphere Process Server applications. The destinations for the applications can be hosted on the same cluster or server as the applications or on a remote cluster or server. Note that when you set up a cluster or server to host applications, the SchedulerCalendar application is automatically installed as part of the configuration. If you are planning to use WS-BPEL business processes on this cluster or server, you must also use the Business Process Container wizard to perform the necessary configuration. If you are planning to use applications that contain human tasks or if you plan to use the Business Process Choreographer Explorer in this cluster or server, you must also use the Human Task Container wizard to perform the necessary configuration. Support of WebSphere Process Server applications and bus members A cluster or server can be configured to both host WebSphere Process Server applications and support WebSphere Process Server applications that are installed on remote clusters or servers. In this configuration scenario, the application buses are configured for the current cluster or server. In addition, the SchedulerCalendar application is automatically installed to provide support for hosting WebSphere Process Server applications. In this scenario, the destinations for the applications can be hosted on the same cluster or server as the applications themselves or on a remote location. It is especially easy to use this kind of configuration with WebSphere Process Server for z/OS because application server instances in WebSphere Application Server for z/OS have built-in clusterization using WLM and starting and stopping servants as needed. Since WebSphere Application Server for z/OS V6.0, the architecture of an application server instance has been improved with the control region adjunct (CRA), which adds a newly started task to the ones that an application server instance already has. The control region (CR) and the multiple servant regions 80 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus (SR) each contain a JVM. This CRA is now in charge of all messaging tasks within an application server instance. This means that the messaging engine for a process server is separated in application server instances in WebSphere Application Server for z/OS and scalability for a process server is done by the system without additional tasks. The number of connections is managed in the CRA and you can control them through variables. There are a number of considerations to be made about the bus and how to manage buses in the environment of a process server. We discuss these in 3.3.2, “Topologies for WebSphere Enterprise Service Bus for z/OS” on page 87. 3.3 WebSphere Enterprise Service Bus for z/OS Using an ESB to implement an SOA has a number of advantages. In an SOA, services should, by definition, be reusable by a number of different consumers, so that the benefits of reduced connections are achieved. In addition the ESB: Supports high volumes of individual interactions. Supports more established integration styles, such as message-oriented and event-driven integration, to extend the reach of the SOA. The ESB should allow applications to be SOA-enabled either directly or through the use of adapters. Supports centralization of enterprise-level qualities of service and manageability requirements into the hub. 3.3.1 Architectural overview This section gives an overview of the WebSphere Enterprise Service Bus product. This product shares many of the same concepts as WebSphere Process Server because both products adhere to the principles and philosophy of an SOA and the SCA. Note: For more details on the WebSphere Enterprise Service Bus V6, refer to Getting Started with WebSphere Enterprise Service Bus V6, SG24-7212. The WebSphere Enterprise Service Bus for z/OS is built upon WebSphere Application Server for z/OS and provides the capabilities of a standards-based ESB. WebSphere Enterprise Service Bus is the mediation layer that runs on top of the transport layer within WebSphere Application Server. As such, WebSphere Enterprise Service Bus provides prebuilt mediation functions and easy-to-use Chapter 3. WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS 81 tools to enable rapid construction and implementation of an ESB as a value-add on top of WebSphere Application Server. Figure 3-7 shows the components in WebSphere Enterprise Service Bus. Mediation Flows (ESB) Service Component Architecture Business Objects Common Event Infrastructure WebSphere Application Server Figure 3-7 WebSphere Enterprise Service Bus V6.0.1 components Because WebSphere Enterprise Service Bus is based upon WebSphere Application Server, it leverages WebSphere Application Server attributes such as clustering, failover, scalability, security, and a built-in messaging provider. WebSphere Enterprise Service Bus itself provides the following capabilities: Provides built-in mediation functions, which can create integration logic for connectivity. The SCA programming model supports rapid development of mediation flow components. Leveraging WebSphere Application Server, WebSphere Enterprise Service Bus offers JMS messaging and WebSphere MQ interoperability for messaging, as well as a comprehensive clients package for connectivity. Offers support for J2EE Connector Architecture based WebSphere Adapters. 82 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus WebSphere Enterprise Service Bus supports connectivity between endpoints through a variety of protocols and application programming interfaces (APIs): Java Message Service (JMS) 1.1, provided by WebSphere Application Server. Applications can exploit a variety of transports, including TCP/IP, SSL, HTTP, and HTTPS. Web services standards that enable applications to make use of Web service capabilities. – SOAP/HTTP, SOAP/JMS, WSDL 1.1 – UDDI 3.0 Service Registry, Web Services Gateway For back-end applications (such as SAP), several IBM WebSphere Adapters (based on the J2EE Connector Architecture) are available. As with WebSphere Process Server, to implement an SOA properly it is necessary to have a single invocation model and a single data model. Service Component Architecture (SCA) is this invocation model — every integration component is described through an interface. These services can then be assembled in a component assembly editor thus enabling a very flexible and encapsulated solution. WebSphere Enterprise Service Bus introduces a new component type to the SCA model — the mediation flow component. From the perspective of the SCA, a mediation flow component is not different from any other service component. Business Objects are the universal data description. They are used as data objects are passed between services and are based on the SDO standard. In WebSphere Enterprise Service Bus a special type of SDO is introduced, the Service Message Object (SMO). Mediation capabilities The mediation capabilities of WebSphere Enterprise Service Bus are performed in SCA mediation flow components. Mediation flow components operate on messages exchanged between service end points. In contrast with regular business application components, they are concerned with the flow of the messages through the infrastructure and not just with the business content of the messages. Rather than performing business functions, they perform routing, transformation and logging operations on the messages. The information that governs their behavior is often held in headers. Mediation flow components manage the flow of messages between SCA-described interaction endpoints and enable the quality of interaction these components request. Mediation modules within the ESB handle mismatches between consumers and providers, including protocol or interaction-style mismatches and interface mismatches. In an overall SCA-based solution, Chapter 3. WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS 83 mediation modules are a type of SCA module that perform a special role, and therefore, have slightly different characteristics than other components that operate at the business level. To summarize, mediation flow components: Centralize the routing logic so that service providers can be exchanged transparently Perform tasks like protocol translation and transport mapping Act as a facade in order to provide different interfaces between service consumers and providers Add logic to provide tasks such as logging Figure 3-8 illustrates how mediations customize the protocol and the details of a request and also modify the results of the reply. WebSphere Enterprise Service Bus Service Consumer Service Provider Request Service Consumer Service Provider Mediation Reply (optional) Service Consumer Service Provider Figure 3-8 Mediation component in the WebSphere ESB 84 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Mediation modules The mediation module is a new type of SCA component that can process or mediate service interactions. As illustrated in Figure 3-9, the mediation module is externalized or made available through an export, which specifies the interfaces that are exposed. These interfaces are defined in a WSDL document. The mediation module typically invokes other service providers. These providers are declared with the creation of an import, which represents an external service to be invoked. Data Types Library Interfaces Mediation Module Exports Imports Service Consumer SCA Client Stand-alone References Data Types Interfaces Service Provider Bindings Service Provider Reference Figure 3-9 Mediation modules Mediation primitives Mediation primitives are the smallest building blocks in WebSphere Enterprise Service Bus. They are wired and configured inside mediation flows. They let you change the format, content, or target of service requests; log messages; do database lookups; and so forth. WebSphere Integration Developer and WebSphere Enterprise Service Bus V6.0.1 provides the following standard mediation primitives: The MessageLogger primitive logs a copy of a message to a database for future retrieval or audit. The integration developer can customize the primitive by, for example, naming the database. The DatabaseLookup primitive retrieves values from a database to add them to a message. Chapter 3. WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS 85 The MessageFilter primitive compares the content of a message to expressions configured by the developer, and routes the message to the next mediation primitive based on the result. The XSLT primitive transforms messages according to transformations defined by an XSL style sheet. The Fail primitive throws an exception and terminates the path through the mediation flow. The Stop primitive silently terminates the path through the mediation flow. The Custom mediation primitive allows the user to implement their own mediate method using Java. The Custom mediation, like the other primitives, receives a Service Message Object and returns a Service Message Object. It can be used to perform tasks that cannot be performed by using the other mediation primitives. Figure 3-10 shows how mediation primitives are used. Data Types Library Interfaces Mediation Module Mediation Flow Component Service Consumer Exports Stand-alone Reference SCA Client Service Message Object Interfaces Context Headers Input Response Input Fault Service Provider Request Flow Input terminal Mediation Mediation Primitive Primitive Input Response Imports Mediation Flow Body Partner Output References terminal Callout(s) Fall terminal Fault Response Flow Mediation Mediation Primitive Primitive Service Provider Callout Response Wires Figure 3-10 Mediation primitives (in the complete overview) 86 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus 3.3.2 Topologies for WebSphere Enterprise Service Bus for z/OS As for WebSphere Process Server for z/OS (see 3.2.6, “Topologies for WebSphere Process Server for z/OS” on page 78), topologies for WebSphere Enterprise Service Bus for z/OS are mainly imposed by those of WebSphere Application Server for z/OS: sysplex and server clustering are the main considerations when you need high availability for your WebSphere Enterprise Service Bus for z/OS. Internally, messages passed through mediations in WebSphere Enterprise Service Bus are stored in a service integration bus. These service integration buses are made out of messaging engines that live inside application servers. These application servers might, or might not, be part of a cluster of servers, as shown in the examples in Figure 3-11 on page 87. Bus Cluster Application server Application server Messaging engine Messaging engine Data store Bus Bus destination Cluster Application server Application server Application server Messaging engine Messaging engine Messaging engine Q1 Q1 Bus destination Application Application Q1 Partitioned destination Application Figure 3-11 Service integration buses with clustered servers Chapter 3. WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS 87 When you configure a server bus member, that server runs a messaging engine. For many purposes this is sufficient, but such a messaging engine can only run in the server it was created for. Therefore, the server is a single point of failure. If the server cannot run, the messaging engine is unavailable. By configuring a cluster bus member instead, the messaging engine has the ability to run in one server in the cluster, and if that server fails, the messaging engine can run in an alternative server. High availability and workload sharing topologies The configuration of service integration buses is very flexible. You can have individual messaging engines, or clusters containing multiple messaging engines that can share workload, be highly available, or both. The type of bus member that you create affects the options that you have available to you. You create a bus member by adding either a server or a cluster to a bus. Creating a server bus member creates a single messaging engine. For many purposes, this messaging engine is sufficient, but such a messaging engine is a single point of failure and cannot share workload. If you want to avoid a single point of failure by allowing failover or if destinations need to be partitioned (to allow sharing of the messaging workload), use a cluster bus member. After you have created a bus member, you configure a policy to control the availability behavior of the messaging engine on that bus member. If you want high availability, use a cluster bus member and the default policy (one of N), which allows the messaging engine to failover. You can customize your policy to specify other availability behavior, such as a preference for particular servers. If you want workload sharing but not high availability, use a cluster bus member and create a static policy for each messaging engine. This policy is useful for scalable express messaging, where there is no persistent state associated with any one messaging engine so no failover is required. With these options, it is possible to achieve either failover, workload sharing, or both. The following provide some useful configurations: Simple configuration: Single messaging engine running inside an application server. In WebSphere Enterprise Service Bus for z/OS there is the advantage of having several servants in the application server and the last level of workload balancing provided by the WLM at servant level. Workload sharing configuration: Multiple messaging engines (one per application server) clustered together, message engines are restricted to running in their application servers. Same considerations as before apply to WLM. 88 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus High availability message engine configuration: Single messaging engine running in a cluster. It lives in more than one application server so that there is failover to the rest of servers in the case of maintenance or a system crash. If the cluster is horizontal and sysplex wide, WLM policies for workload through the sysplex apply. High availability messaging engines with workload sharing: A combination of the two previous options. Multiple messaging engines running in a cluster with messaging engines being able to failover to one or more application servers in the cluster. Both, local WLM policy for servants in an application server and sysplex-wide policy for the cluster apply here. 3.4 WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS at the core of your business System z and z/OS can help execute and keep your business data secure. Now, SOA brings the possibility of reusing these assets, re-engineering your applications, and establishing new business processes. WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS can connect and exploit your core data. They can manage transactions inside and outside your business processes. In this section, we outline how you can take advantage of the System z and z/OS platform and operating system advantages when using WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS. 3.4.1 WebSphere Application Server for z/OS advantages WebSphere Application Server for z/OS is the underlying technology for many of the new generation products that IBM has released in the last few years. Some of the most significant products that build upon WebSphere Application Server for z/OS are: WebSphere Process Server for z/OS WebSphere Enterprise Service Bus for z/OS WebSphere Portal Server for z/OS Host Access Transformation Services on z/OS Chapter 3. WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS 89 These products inherit the unique characteristics that make this application server unique in the family. Figure 3-12 illustrates its critical capacities for the business logic tiers. Ultimate scalability & performance; functional depth & breadth Customer Needs Multiple Multiple Business Business Models, Models, Multiple Deployment Multiple Deployment Options Options WebSphere Application Server for z/OS WebSphere Application Server Network Deployment WebSphere Application Server WebSphere Application Server Express Reduced acquisition costs; Small footprint.. WebSphere Application Server Community Edition Built on common WebSphere code Built on open source technology Fast deployment of single app; low transaction volumes… Capabilities High transaction volumes, High Availability, Advanced Web Services… Figure 3-12 The WebSphere Application Server family The most important things to keep in mind about WebSphere Application Server for z/OS are: It is a multi-process server. Each application server instance is made of a CR, a CRA that provides the home for the WebSphere Platform Messaging components, and one or more SR providing one JVM each to the application server instance. Dynamic workload management and priority selection. WLM is in charge of this task. It works at three levels of decisions to make the most of your resources. It works in the middle of the CR and CRA and all the SRs of an application server instance. It works at system, z/OS, level to apply execution priorities and velocity goals to be sure that the system responds as you want. And finally, it works at a sysplex level when several systems are involved and working together as though they were one; in this case there is workload management and failover if one of the systems in the ring is stopped for maintenance or, less probable, hardware failure. 90 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Transactional behavior managed by the Resource Recovery Services (RRS). RRS is an exit manager. That means RRS itself does not perform tasks such as commit changes to a DB2 database or back out changes to a process transaction. Instead, RRS triggers resource manager-supplied exits based on certain events. An application can request RRS to commit a unit of recovery (UR), and RRS then invokes the commit exits for all the resource managers involved in the UR. It is a prerequisite for WebSphere Application Server for z/OS and therefore also for WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS. zAAP engine for the execution of Java. It is a central processor (CP), much cheaper than general CPs in System z, that you can enable in z/OS to execute all Java loads wherever they come from in z/OS (such as the CICS EJB container, stand-alone Java programs in USS, WebSphere Application Server, and so forth). Proximity to data. Accesses from an application server, a process server and an ESB to resources running in environments such as DB2, CICS, or IMS is much quick and secure if all subsystems are in z/OS. Stringent centralized security. See 5.1, “Security” on page 120. 3.4.2 z/OS advantages IBM System z has, for a long time, run the core IT systems of many successful businesses, from medium size to very large. During these years, IBM has invested consistently in the evolution of the System z. System z has incorporated new technologies and computing models, from the Centralized model to the Web model, from the Assembler and Cobol languages to Java. Today, System z provides the necessary capabilities to form the backbone in an enterprise SOA solution. In this section, we describe some of the key advantages of z/OS that are relevant to a solution using WebSphere Process Server or WebSphere Enterprise Service Bus on z/OS. Well-known advantages The z/OS operating system provides a comprehensive set of capabilities and tools ready to use without modification that provide several well-known qualities. The z/OS operating system is able to provide high levels of qualities of service in combination with the System z hardware and Parallel Sysplex capabilities. Chapter 3. WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS 91 The generally recognized z/OS strengths fall into a number of broad categories: Centralized computing model Server consolidations brings advantages in fewer administration and maintenance staff required to manage systems. Hardware duplication and reliable systems such as System z are desirable for this model. Security z/OS provides deep security integration. RACF and SAF are centralized and can provide overall security for your sysplex and LPARs. RACF security extends beyond z/OS. You can use RACF for other platforms including Virtual Machine (VM) and Linux for System z if it executes on VM. Other services are provided for security, such as auditing and logging, accountability, cryptography and network security. Manageability The z/OS operating system has been designed to manage multiple workloads in a single system image; so, z/OS has evolved along the years and it equipped with features that make the most of workload managing. It also has tools and subsystems to manage and monitor the system and all the existing applications running in it. Virtualization and workload management z/OS Parallel Sysplex capabilities allow configurations of large numbers of partitions to be run as a single system sharing resources. Workload Manager (WLM) controls the workload among partitions and prioritization of work. Intelligent Resource Director (IRD) can dynamically assign central processor (CP) resources for all partitions in that hardware so that each LPAR gets the resources virtually assigned to it. Reliability The combination of hardware redundancy, in only one box, and virtualization gives extraordinary possibilities for application recovery and availability. Hardware failures and software failures can be recovered: transactional integrity is mandatory. Proper configuration can lead to a solution with no single points of failure. Availability and scalability System z can be vertically scaled up to 54 CPs. The z/OS Parallel Sysplex can cluster up to 32 images with geographic dispersion possibilities, up to 100 km. Horizontal scalability is not limited for any kind of workload being executed in z/OS. 92 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Transaction processing Many subsystems on z/OS are transactional resource managers working in collaboration with Recoverable Resource Services (RRS). These subsystems include CICS Transaction Server, IMS, WebSphere Application Server for z/OS, WebSphere Process Server for z/OS, WebSphere Enterprise Service Bus for z/OS, and DB2. Batch processing Job Entry Subsystems (JES2 and JES3) are batch managers in z/OS. They can work in combination with Tivoli products to schedule batch and manage workload. Less well known advantages Much effort has been made to achieve new capacities for z/OS. In addition to the well known values that we have described, some interesting characteristics are now part of the platform: Open standards and technologies Integral architecture New interfaces for the user Built-in solutions Unified skills for new subsystems Full control Open standards and technologies Since the emergence of the Internet as a multipurpose network and the generalized use in all our homes and workplaces, multiple needs for users and enterprises have emerged. The development of new technologies increases the need for communication and exchange of data. To achieve this, institutions and providers usually adhere to standards. z/OS has evolved to support all the main standards for enterprise servers with the goal of continuing to be the core for new and well established businesses. The introduction into z/OS of the UNIX® System Services (USS) and TCP/IP was the first step. With these strategical update, z/OS was opened up to communications within the Internet where TCP/IP is the de facto standard. USS is compliant with the POSIX 1003.2 specification opening a whole world of application and interface exchange with UNIX-based systems. Other standards have emerged within a z/OS environment: HTTP protocol support, which is a widely adopted standard for internet communication. Chapter 3. WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS 93 Full J2EE compliance, through a stand-alone JVM implementation, and JVM implementations provided with products such as WebSphere Application Server for z/OS and CICS Transaction Server. Web services, initially present in WebSphere Application Server, and now extended to traditional execution environments such as CICS and IMS. The XML Toolkit for z/OS enables subsystems and applications to work with the XML markup language. SCA support to implement an advanced SOA solution. WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS support this. Integral architecture Several operating systems can be installed and executing on a System z. With the combination of z/OS, VM and Linux for System z we can have users coming to and from the internet to execute transactional applications and services in a secured, fast, reliable one box solution. Figure 3-13 on page 95 shows a possible architecture for the use of multiple operating systems on System z. We might have some Linux for System z images on a VM operating system. The Linux farm is composed of proxies and Web servers in a demilitarized zone (DMZ) and might contain some presentation layer applications such as WebSphere Application Server for multi-platforms. Behind this, we have z/OS images with transactional applications such as WebSphere Application Server for z/OS, CICS, and IMS. On top of WebSphere Application Server for z/OS we can install WebSphere Process Server to manage business processes and WebSphere Enterprise Service Bus to perform the role of an ESB. Given that there are specialized engines both for Java execution on z/OS (zAAP) and Linux on System z (IFL), the combination seems to be especially powerful. 94 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Linux images S J WebSphere Process Server for z/OS or WebSphere Enterprise Service Bus for z/OS DB2 CICS WebSphere Application Server for z/OS z/VM IMS z/OS image System z Figure 3-13 Integral architecture in one box New interfaces for the user Some years ago, there were two main ways of using applications executed on a System z: 3270 screens or fat clients managing the screens and communications. The situation is quite different today. Thousands of users can execute applications on the System z, at the same time, from their desktops or mobile computers using a preferred browser: IBM HTTP Server comes with the z/OS package for those who want to make simple informative sites. WebSphere Application Server for z/OS gives the full J2EE power for presentation and transactional layers needed to put enterprises’ businesses on the Internet. WebSphere Portal Server for z/OS completely changes the user experience by providing applications based on a user profile. A user’s browser screen can include a customized set of portlets that allow the user to complete a specific task. Host Access Transformation Services (HATS) wraps 3270 screens offered by CICS and IMS and makes them available in a Web browser. Chapter 3. WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS 95 Host on Demand makes life easier for those who have to manage and to install screen emulators throughout the whole enterprise. It makes the emulation available from a browser. Of course all the traditional access ways to the System z continue valid. Built-in solutions z/OS is not just an operating system, but a package that includes the operating system itself and more than 30 built-in solutions. The full package comes with everything that is required to build a robust IT software infrastructure. It includes security services, communication services, performance and accounting services, compilers, storage management services, an HTTP server, clustering capabilities, and more. z/OS also offers advantages in monitoring, accounting and auditing. For example, if you would like to know with whom and when users have been consuming services in your integration structure through a process executed in WebSphere Process Server for z/OS, you can use SMF for the accounting and billing for that services. Doing this in other platforms might require specific application coding. Unified skills for new subsystems WebSphere Application Server V5 was the first application server release to use a common code base, no matter which platform the application server is installed on. This common code base ensures that any WebSphere Application Server application developed for one platform should be able to run, unchanged, on any other WebSphere Application Server platform. This same principal applies to WebSphere Application Server V6, and also the following products that are built on top of WebSphere Application Server V6: WebSphere Process Server on all platforms WebSphere Enterprise Service Bus on all platforms WebSphere Portal Server on all platforms Host Access Transformation Services This common code policy unifies administration tasks. A person administering on WebSphere Process Server on Linux can also be the administrator for WebSphere Process Server on Windows® or z/OS. 96 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Full control z/OS is a powerful versatile system. You can adapt it to your needs in thousands of different configurations. This is also applicable to the products and subsystems you can run on it. Hundreds of combinations of variables can make the overall system, or just one of the subsystems, behave exactly as you want. It is fully customizable. When you make changes to the system, you can update the whole system or just update one executable module. You get exactly what you want from the operative system and its installed features. Chapter 3. WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS 97 98 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus 4 Chapter 4. Operational considerations In this chapter, we discuss the operational considerations of installing and administering WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS. Note: We do not provide step-by-step instructions on how to complete all of the tasks that we discuss here. Instead, we provide an overview of the entire process and point to additional resources for a more in-depth discussion. © Copyright IBM Corp. 2006. All rights reserved. 99 4.1 Installing In this section, we discuss actions that you should consider when installing WebSphere Enterprise Service Bus and WebSphere Process Server for z/OS. You have the choice between several architectural options. For each of these options, there is a different path that you should follow for installation. This chapter does not provide a step-by-step installation tutorial, but it does point you to items that you should know when installing the product and special aspects of the z/OS environment. 4.1.1 Prerequisites and packaging This section details the software and hardware requirements that are required for installation. Software requirements The following software is required to run WebSphere Enterprise Service Bus and WebSphere Process Server on z/OS: z/OS or z/OSe version 1.4 or higher with the following features: – z/OS Communications Server (TCP/IP) or equivalent – z/OS UNIX System Services and the hierarchical file system (HFS) – SecureWay® Security Server (RACF) or equivalent security management product – System logger – System SSL security required when using SSL – Workload management in goal mode – Resource Recovery Services (RRS) You can run WebSphere Enterprise Service Bus and WebSphere Process Server without needing any additional software. However there are some software products that are highly recommended to use in production environments: z/OS(e) 1.6 or higher For best system performance and features. IBM HTTP Server for z/OS or equivalent To place the HTTP handling in its own tier. 100 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus DB2 Universal Database Server for z/OS, Version 7 or higher WebSphere Enterprise Service Bus and WebSphere Process Server need the stored procedure builder enabled (DSNTPSMP) if you use relationships. CICS TS v2.2 or higher If you want to integrate CICS applications, you should have at least CICS TS v2.2. However, we recommend CICS v3.1, which provides features for Web service enablement capabilities. Information Management System IMS v8.1 or later; IMS Connect v2.2 For integration of IMS applications you need IMS Connect, even if you plan to connect to IMS using Web services, because it delivers the TCP/IP features needed for Web service enablement. LDAP The suitable backend for identity management needed for integrating human tasks. On a distributed platform, you should also install at a minimum WebSphere Integration Developer, v6.0.1.1. It is the only development environment that provides full feature support for WebSphere Enterprise Service Bus and WebSphere Process Server. Hardware requirements WebSphere Enterprise Service Bus and WebSphere Process Server run on any hardware that supports z/OS or z/OSe from version 1.4. However, for optimal performance, the following hardware features are recommended: zAAP The zSeries Application Assist Processor (zAAP) is an inexpensive way of processing high volumes of Java workload. WebSphere Process Server and WebSphere Enterprise Service Bus use Java at their core. Crypto Engine The crypto engines are special processors that handle cryptographic calculations, which are needed for many security tasks. DataPower appliances XML appliances from DataPower can be used as a security gateway for XML or Web service based messages. Chapter 4. Operational considerations 101 Note: You can run the products without these features. However, WebSphere Enterprise Service Bus and WebSphere Process Server are products that use the value of these hardware features. 4.1.2 Installation considerations The installation of WebSphere Enterprise Service Bus and WebSphere Process Server consists of two separate steps: 1. Installing and customizing WebSphere Application Server. 2. Installing the additional product, which is either: – WebSphere Enterprise Service Bus – WebSphere Process Server (which contains WebSphere Enterprise Service Bus) Although we do not discuss WebSphere Application Server installation in detail, you have to consider some architectural options when planning the installation. Depending on the purpose, there are various architectural options that you can realize when installing WebSphere Enterprise Service Bus and WebSphere Process Server. We mention the most important options for the most common usage scenarios. Furthermore, we discuss some aspects of the installation of WebSphere Enterprise Service Bus and WebSphere Process Server on top of WebSphere Application Server. Installing WebSphere Application Server for z/OS The installation of WebSphere Application Server for z/OS consists of two parts: 1. Installing the program code from tape using System Modification Program/Extended (SMP/E). 2. Customizing WebSphere Application Server to create a configuration of your choice. You have the choice between two architectural configurations: a. Base server: a stand-alone application server. On z/OS, you have the opportunity with even a stand-alone server to spread the workload over several servant regions. A base server is made of a cell and a node that contains one application server instance. A cell is an administrative domain from which server instances can be administered. A node is a bunch of application server instances that share some properties and configuration. An application server instance is made of three basic started tasks in the system: a controller region (CR), a controller region adjunct (CRA) that is in charge of messaging, and JMS (this task can be stopped if no 102 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus messaging is used) and one or more servant regions (SRs). These SRs effectively contain the applications and are where the JVMs live. You can join the base servers to a node in a broader configuration similar to WebSphere Application Server Network Deployment. This process is called federation. b. WebSphere Application Server Network Deployment: A Network Deployment architecture contains at least two nodes in one cell. One is for the Deployment Manager, with an application server instance. It is where the administration console application is deployed at installation time. The second node contains at least one application server, used to deploy J2EE applications. You can have several nodes in this cell and they can expand through several other systems. With this configuration you can also make clusters of application server instances. These clusters consist of two or more servers created from a common template. They might have different configurations, but the applications executed on them have to be exactly the same. Attention: Currently, it is not possible to federate WebSphere Enterprise Service Bus or WebSphere Process Server based on a stand-alone WebSphere Application Server into a Network Deployment cell to become part of a Network Deployment configuration after installation. For more information about the installation of WebSphere Application Server for z/OS, consult: ftp://ftp.software.ibm.com/software/webserver/appserv/library/v60/BO S5A102.pdf Installing WebSphere Enterprise Service Bus or WebSphere Process Server for z/OS WebSphere Enterprise Service Bus and WebSphere Process Server rely on WebSphere Application Server and, therefore, need WebSphere Application Server already installed. Note: The installation of WebSphere Enterprise Service Bus and WebSphere Process Server on top of WebSphere Application Server for z/OS does not use the Interactive System Productivity Facility (ISPF) but is completely based on USS shell scripts. Chapter 4. Operational considerations 103 The installation of WebSphere Enterprise Service Bus or WebSphere Process Server has several steps: 1. Install WebSphere Enterprise Service Bus/WebSphere Process Server into your WebSphere Application Server profile. The installation is done by the UNIX System Services (USS) shell script zSMPInstall.sh. The script performs the following steps: – Links the <WAS_HOME> variable to the WebSphere Process Server SMP/E code – Updates the Administrative Console for WebSphere Enterprise Service Bus/WebSphere Process Server – Runs PTF to apply any available product updates 2. Create the database and storage groups. You need to create these groups now, because you will use them in the next step to create the SQL and DDL scripts. 3. Augment the WebSphere Application Server profile to use the WebSphere Process Server or WebSphere Enterprise Service Bus function. This step is performed by the zWPSConfig.sh or zWESBConfig.sh shell script respectively. These scripts require response files providing the necessary configuration information. The following definitions are created: – Resource definitions – Resources (databases, buses, queues) Database information in the response file must match the names that you used to create the database and storage groups. 4. If you chose not to run the .sql/.ddl scripts automatically through the response file property setting, run the .sql/.ddl scripts that are generated by script of step 3 to configure the databases. 5. Create the DB2 datasources for Service Integration Bus (SIB) resources using the WebSphere Application Server Administrative Console (if DB2 is used). For a simple initial installation, we recommend that you use Cloudscape for persistence instead of DB2. 6. Configure Business Process and BPEL/HTM containers using the bpeconfig.jacl script or the WebSphere Application Server Administrative Console installation wizard. 104 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Note: The installation wizard configures WebSphere Application Server resources only. If you choose to configure the business process container by using the installation wizard, you still need to run the corresponding manual steps to create a database (using Cloudscape or DB2 ) and to create the WebSphere MQ queues (if you are using WebSphere MQ as your JMS provider). 7. Configure the Common Event Infrastructure (CEI) using the event-message.jacl script or the WebSphere Application Server Administrative Console. To learn more about scripting, refer to 4.2.2, “Scripting” on page 110. Note: Installing WebSphere Enterprise Service Bus and WebSphere Process Server is not trivial. Therefore, to reduce the complexity of troubleshooting, we recommend installing and configuring these products in three stages: 1. Install a stand-alone server, with Cloudscape. 2. Install a stand-alone server, with DB2. 3. Install a network deployment cell with DB2. By getting the simplest configuration running first and then adding additional complexity later, you can better solve installation and configuration issues. 4.2 Administration In this section, we discuss administrating WebSphere Process Server and WebSphere Enterprise Service Bus on z/OS. Unless explicitly mentioned, there is no difference in the administration between the distributed versions of these products, which is an advantage of the common code base that each of the products shares through all of the platforms on which they are available. Note: Administration looks similar on every platform on which you use WebSphere Process Server or WebSphere Enterprise Service Bus. Chapter 4. Operational considerations 105 When talking about administration, we must consider two different levels of administrative tasks: The technical layer, which includes connections to data sources or network interfaces, supported protocols, and the right use of available resources. The administration of business processes and mediation flows themselves. You must have the opportunity to start a business process, complete human tasks, or stop a running process if necessary. For each of these administrative tasks, you can use the standard toolkit or create your own tools. When using the standard toolkit, you can perform every basic task that you need. When performing complex tasks such as bringing up servers conditionally or completing a human task of a business process by using external data, you will likely want to write tools that provide better support than the standard tools. Note: You always have the choice between performing an administration task by using the standard administration interfaces or building your own customized tools. 4.2.1 The Administrative Console The Administrative Console is a Web-based tool that you use to manage WebSphere Application Server as well as WebSphere Enterprise Service Bus and WebSphere Process Server. In addition to performing basic tasks that affect the features and behavior of WebSphere Application Server, the Administrative Console provides functions to administer special features of WebSphere Enterprise Service Bus and WebSphere Process Server. Note: The Administrative Console provides a single point of administration for both WebSphere Enterprise Service Bus and WebSphere Process Server. Basic tasks You can use the Administrative Console to create and to manage objects in the WebSphere Process Server and WebSphere Enterprise Service Bus configuration, such as resources, applications, and servers. Additionally, you can use the Administrative Console to view product messages. 106 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus The main areas of the Administrative Console include: Taskbar The taskbar offers options for logging out of the console, accessing product information, and accessing support. Navigation tree The navigation tree on the left side of the console offers links to console pages that you use to create and to manage components in a WebSphere Application Server administrative cell. Workspace The workspace on the right side of the console contains pages that you use to create and to manage configuration objects such as servers and resources. You can select links in the navigation tree to view the different types of configured objects. Within the workspace, click configured objects to view their configurations, runtime status, and options. Figure 4-1 The Administrative Console Chapter 4. Operational considerations 107 The tasks you can perform in the Administrative Console are divided into the following categories: Guided activities Guided activities that lead you through common administrative tasks that require you to visit multiple Administrative Console pages. Servers Configure application servers, clusters, generic servers, Web servers, and core groups. Applications Install applications onto servers and manage the installed applications. Resources Configure resources and to view information about resources that exist in the administrative cell. Security Access the Security Center, which you use to secure applications and servers. Environment Configure hosts, variables, and other components. System Administration Configure console settings, and manage components and users of a Network Deployment product. Troubleshooting Check for configuration errors and problems, view log files, and enable and disable tracing on a distributed platform. Monitoring and Tuning Monitor and tune your application server performance and analyze performance data. Service Integration Implement message-oriented and service-oriented applications. UDDI Publish and discover information about Web services. Administrative Console pages are formatted in one of three ways: Collection pages A collection page manages a collection of existing administrative objects (for example relationships, failed events, or resource adapters). Detail pages A detail page is used to view details about an object and to configure specific objects (such as an application server or a listener port extension). Wizard pages Wizard pages help you complete a configuration process comprised of several steps. Attention: Be aware that wizards can show or hide certain steps, depending on the characteristics of the specific object that you are configuring. 108 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Special options for WebSphere Enterprise Service Bus The Administrative Console of WebSphere Enterprise Service Bus (in addition to the basic tasks that we have described) allows you to view and to change aspects of service applications. Service applications provide services and have an associated SCA module. The type of SCA modules that are supported by WebSphere Enterprise Service Bus are mediation modules. After you have deployed an EAR file that contains an SCA module, you can view the SCA module details. You can list all your SCA modules and their associated applications, and you can view details about a particular SCA module. Properties that you can view are: SCA module name Associated application SCA module imports – Interfaces – Bindings SCA module exports – Interfaces – Bindings You can change the SCA module’s import bindings at runtime. All other properties are read only. The option to change the import binding brings the ability to change the behavior of a particular SCA module so that it interacts with an SCA module other than the one that you specified at development time. The Administrative Console also lets you configure and manage the bus behavior and topology of your WebSphere Enterprise Service Bus. Because the WebSphere Enterprise Service Bus relies on the Service Integration Bus of WebSphere Application Server internally, you find the available properties and settings under the following menu options: Servers → Service Integration → Buses Servers → Application Servers → Server messaging Special options for WebSphere Process Server WebSphere Process Server administration offers features specific to business process choreography, which include the ability to: Start the compensation service automatically, when the application starts, and specify the location and maximum size of the recovery log. Check for and replay any messages for business processes or human tasks that could not be processed. Use the Administrative Console to refresh staff queries. The results of a staff query are static. Chapter 4. Operational considerations 109 Enable Business Process Choreographer events to be emitted to the Common Event Infrastructure as Common Base Events or stored in the audit trail. 4.2.2 Scripting In all WebSphere Application Server based products, you have a non-graphical alternative to administer all provided functions. This alternative provides the opportunity to encapsulate complex tasks that you have to perform frequently within a single command or script, which you can then simply call from a terminal window instead of having to use the Administrative Console. Scripting also gives you the opportunity to integrate administrative tasks with an automation mechanism that you perhaps already use for other tasks such as system-wide resource management or failover management. WebSphere Enterprise Service Bus and WebSphere Process Server support the following scripting languages: Jacl Java Command Language (Jacl) is an alternate implementation of tool command language (TCL) and is written entirely in Java code. Jython Jython is an alternate implementation of Python (which got its name from the English television series Monty Python’s flying circus) and is also written entirely in Java. For our discussion, we focus on Jython, because Jython provides the broadest set of programming possibilities and is the strategic scripting language for products based in WebSphere Application Server. Introduction to scripting Scripting languages are not to compiled at build-time like other programming languages such as C or C++ but are interpreted during runtime like Java. Therefore, Jacl and Jython for products based in WebSphere Application Server need a runtime interpreter that also provides the interfaces necessary to access the WebSphere Application Server based objects that you want to configure. This runtime interpreter is called wsadmin, and the scripts are often called wsadmin scripts. In z/OS, there are two different types of scripting that you can use. The first type is wsadmin. It uses a Hierarchical File System (HFS), because the supported languages are optimized on that type of data organization and most configuration information and editable properties of WebSphere Application Server based products on z/OS are held in an HFS structure, which is provided by the z/OS UNIX System Services (USS). 110 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus The second option to automate tasks in z/OS is writing scripts which are executed via the z/OS Job Entry Subsystem (JES). These scripts, in z/OS terms usually called jobs, are written in the Job Control Language (JCL), in which you can add supporting scripting languages such as the Restructured Extended Executor Language (REXX). The capabilities of editing WebSphere Application Server configuration files are limited, but JCL is the standard way to start tasks and processes such as WebSphere Process Server or WebSphere Enterprise Service Bus on z/OS. Note: Although the standard scripting languages for modifying WebSphere Enterprise Service Bus and WebSphere Process Server configuration are Jacl and Jython, the standard language to start and to stop your WebSphere Application Server infrastructure on z/OS is JCL. Things you can script The wsadmin runtime interpreter provides the following objects: AdminControl Use to run operational commands. AdminConfig Use to run configurational commands to create or modify WebSphere Application Server configurational elements. AdminApp Use to administer applications. AdminTask Use to run administrative commands. Help Use to obtain general help. The scripts use these objects to communicate with MBeans that run in WebSphere Application Server processes. MBeans are Java objects that represent Java Management Extensions (JMX™) resources. Figure 4-2 shows the abstract architecture pattern that wsadmin uses. Java virtual machine External tools and programs Connector Connector Connector Resources M Bean Server M Beans M Beans Figure 4-2 The architecture of WebSphere Application Server scripting Chapter 4. Operational considerations 111 4.2.3 Administration on an SOA level In 4.2.1, “The Administrative Console” on page 106 and 4.2.2, “Scripting” on page 110, we discussed the administration considerations from an IT perspective. However, when administering an SOA environment, you have to consider the business view as well. Similar to the IT administration aspects, you have the choice between two ways of processing the business administrative tasks: graphical user interfaces and APIs, which can be used by scripts or self written programs. Note: These administration capabilities apply primarily to WebSphere Process Server, where a business process or business process-related artifacts have been deployed. Administration of process and human tasks templates Process templates and task templates are created for WebSphere Process Server enterprise applications containing business processes and human tasks, respectively. In the Administrative Console, you can start and stop process templates or task templates similar to J2EE programs. Stopping the process or task template instead of stopping the entire application with which it is deployed ensures that long running process or task instances can finish properly before the task or process becomes obsolete. Note: You can stop or uninstall J2EE applications that contain business processes or human tasks only when the business process or task template that they contain is stopped properly and all instances have finished. Table 4-1 shows the menu commands to start or to stop a process or task template. Table 4-1 Menu commands to start/stop process and task templates Option Menu commands in the Administrative Console Start/stop process template Applications → Enterprise Applications → your application → EJB Modules → the EJB-Module → additional properties → Business Processes → the process template Start/stop human task template Applications → Enterprise Applications → your application → EJB Modules → the EJB-Module → additional properties → Human Tasks → the task template 112 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus You can also start and stop process and task templates using wsadmin. You can find a sample jacl script in the following directory: install_root/ProcessChoreographer/sample/bpcTemplates.jacl Use the syntax described in Example 4-1 to start and to stop the templates. Example 4-1 Starting and stopping process and task templates using a Jacl script cd install_root/ProcessChoreographer/sample install_root/bin/wsadmin -f bpcTemplates.jacl -stop application_name install_root/bin/wsadmin -f bpcTemplates.jacl -start application_name In the install_root/ProcessChoreographer/sample/ directory and the install_root/ProcessChoreographer/util/ directory, there are more ready made Jacl scripts that you can use to administer the business process choreographer using the wsadmin script, such as: deleteAuditLog.jacl deleteInvalidProcessTemplate.jacl deleteInvalidTaskTemplate.jacl queryNumberOfFailedMessages.jacl replayFailedMessages.jacl refreshStaffQuery.jacl cleanupUnusedStaffQueryInstances.jacl You can also leverage the edition management for business processes (often called the valid-from feature) to deploy new releases of business processes into a running environment. You can set the valid-from date for a business process or task template in WebSphere Integration Developer. Note: You can deploy as many templates with the same name as you like, each in their own J2EE enterprise application. However, none of these templates can share the same valid-from date. Administration of process instances For the administration of process or task instances WebSphere Process Server provides a special administrative Web client, the Business Process Choreographer (BPC) Explorer. Chapter 4. Operational considerations 113 The BPC Explorer, shown in Figure 4-3, looks familiar if you already know the WebSphere Administrative Console. It is divided in the following areas: Taskbar The taskbar offers options for logging out of the BPC Explorer, using the search option, and accessing support. Navigation tree The navigation tree on the left side of the BPC Explorer offers links to administer process templates, process instances, tasks, instance and compensation data and many more features. Workspace The workspace on the right side of the BPC Explorer contains pages that you use to access items in lists (such as the process instance list), manipulate the state and data of processes and tasks and view general process data. Figure 4-3 The BPC Explorer When you start the BPC Explorer, the objects that you see in the user interface and the actions that you can take depend on the user group that you belong to and the authorization granted to that group. For example, if you are an administrator, you are responsible for the smooth operation of deployed business processes and tasks. As an administrator you have the following options: My Process Templates Shows a list of available process templates. You have the option to view all instances of a particular template that are currently active or to create a new instance. Process Instances 114 Shows you a list of currently running process instances. Depending on the link you choose in the navigation tree the list will show a subset of all instances. You have the option to trigger compensation, terminate the process instance, delete the process instance (which, in addition to terminating z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus it will also delete the process data), suspend or resume the process instance, restart it or show a list of activities (process steps) or human tasks. Failed Compensations If compensation of a business process failed, you have to take specific manual actions to solve the problem. This page provides you the option to retry a certain compensation step, skip it and continue with the next step, or stop the compensation processing. Task Instances Human tasks can have various states such as being claimed by a certain user, being completed or being in escalation mode. In this page you can manipulate the state of a human task and also complete it (which means that you have access to the data provided as task input data and give the data needed for the task response). The BPC Explorer provides all these options in a generic way so that it will work with all standard human tasks generated in WebSphere Integration Developer. It is not intended for production environments, but you can use it as a sample application of the business process choreographer generic interface provided by session beans. Table 4-2 shows the names of the remote and local session bean interfaces. Table 4-2 Bean interfaces for generic task and business process control session beans Generic human task session bean Generic business process session bean Local interface com.ibm.task.api.LocalHumanTask Manager com.ibm.bpe.api.LocalBusinessFlow Manager Remote interface com.ibm.task.api.HumanTaskManager com.ibm.bpe.api.BusinessFlowManager We recommend that you implement your own business process client or human task client by using these session beans or by customizing the BPC Explorer to your own needs. Administer business rules with the Business Rules Manager The Business Rules Manager is a Web-based tool that allows business analysts to modify deployed business rules dynamically on a running server. This tool is an optional tool that is not installed by default. You can use the business rules manager to do the following: Open a copy of a business rule from the repository Browse and edit a business rule Publish a business rule to the repository Chapter 4. Operational considerations 115 Figure 4-4 shows the Business Rules Manager, which includes the following sections: Taskbar Offers options for logging out of the Business Rules Manager, accessing product information, and support. Navigation tree Enables you to drill-down to the rule level you need. This area is not displayed in any page that is in edit mode. Top-right section Contains path information for the business rule, the rule title and several options to edit, save, copy, publish, or revert the business rule. Bottom-right section Provides the content of the business rule. If the Business Rule Manager is in edit mode you can also edit the data of the business rule in this section. Figure 4-4 The business rules manager in edit mode 116 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Monitoring Common Base Events with the CBE Event browser Common Base Event (CBE) Event browser allows you to view all the Common Event Infrastructure (CEI) and CBE events that are generated by the server. Figure 4-5 shows the CBE Event browser. Figure 4-5 The CBE Event browser Attention: The CBE Event browser can be empty, even with CEI events enabled in your module. CEI has to be turned on explicitly in the runtime containers of the component implementations. Chapter 4. Operational considerations 117 Monitoring SCA messaging with the Failed Event Manager You use the Failed Event Manager to view SCA messages that could not be delivered to their intended destinations. Messages cannot be delivered when a Web service invocation cannot complete because the service is offline or a Java Message Service (JMS) queue is full. Rather than discard the messages, SCA places them in the Failed Even Manager. With the messages in the Failed Event Manager, the system administrator can resubmit or discard the events as appropriate. Figure 4-6 shows the Failed Event Manager. Figure 4-6 The WebSphere Process Server Failed Event Manager Important: Failed events are created only when asynchronous invocations fail. If your invocation is synchronous, then an exception is thrown but the event is not placed in the failed event manager. 118 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus 5 Chapter 5. Qualities of service This chapter addresses the security and transactionality quality of service concerns for WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS. It discusses the security that the z/OS operating system provides, and the security that the underlying WebSphere Application Server for z/OS provides. This chapter also addresses SCA security. Finally, it discusses WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS security features . © Copyright IBM Corp. 2006. All rights reserved. 119 5.1 Security In this section, we introduce some basic security technologies and describe how z/OS provides strong security capabilities. We also address security concerns that are specific to SCA and how security is implemented with WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS. 5.1.1 Security technologies WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS are built on top of WebSphere Application Server for z/OS and, therefore, inherit the security capabilities of this application server. WebSphere Application Server is based upon an open architecture and provides many plug-in points to integrate with enterprise software components to provide end-to-end security. Figure 5-1 illustrates the security organization in WebSphere Application Server. WebSphere security layers – Naming – HTML – User registry – Servlet or JSP file – JMX message beans – Enterprise beans WebSphere Application Server resources – Web services Access control WebSphere security WebSphere Application Server security J2EE security API CORBA security (CSIv2) Java security Java 2 security Java virtual machine (JVM) Version 1.4 Operating system security Platform security Network security Figure 5-1 WebSphere Application Server security layers 120 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus There are four concepts in security that an infrastructure has to cover: Authentication and authorization Users (people and processes) must verify to the subsystem who they are. Access control to resources Different users have different permissions to access resources or to execute code. Data integrity Verification that the data exchanged across a network has not been tampered with or altered. Single sign-on The fewer times clients have to be authenticated, the better it is for the user. When authenticated, the security context should flow through subsequently accessed subsystems. In the case of WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS, these considerations are supplemented by SCA qualifiers, as shown in Figure 5-2. Chapter 5. Qualities of service 121 WebSphere security layers – Naming – HTML – User registry – Servlet or JSP file – JMX message beans – Enterprise beans SCA components – Web services SCA WebSphere Application Server resources with WebSphere Process Server or WebSphere Enterprise Service Bus Access control WebSphere security WebSphere Application Server security J2EE security API CORBA security (CSIv2) Java security Java 2 security Java virtual machine (JVM) Version 1.4 Operating system security Platform security Network security Figure 5-2 New components in the security stack 5.1.2 z/OS-specific security capabilities z/OS security has special features that make it one of the most secure systems available. Products such as WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS take advantage of these security capabilities through WebSphere Application Server for z/OS in the following ways: In WebSphere Application Server for z/OS the operating system identity of the servant, controller, and daemon started task, as established by the STARTED profile, is the identity that is used to control access to system resources such as files or sockets. Operating system security can provide authentication services using the User Registry of the local operating system, or authorization services using SAF Authorization for the WebSphere Administration console and for applications running under the application server. 122 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Administrators must be familiar with general security technologies such as Secure Sockets Layer (SSL) and Transport Layer Security (TLS). Administrators must also be familiar with System Authorization Facility (SAF) and Resource Access Control Facility (RACF), or an equivalent SAF based product. The identity and verification of users can be managed by using a Local Operating System as the User Registry, RACF or equivalent SAF base product. Alternatively, an LDAP, Custom, or Federated User Registry can be used. WebSphere Application Server can be configured to use SAF Authorization, which will use RACF or an equivalent SAF based product to manage and protect users and group resources. Alternatively, WebSphere Application Server can be configured to use WebSphere Authorization or a Java Authorization Contract for Containers (JACC) external authorization provider. When using either Local Operating System as the User Registry or using SAF Authorization, security auditing is an inherit feature of RACF or the equivalent SAF based products. At the network layer WebSphere Application Server for z/OS provides SystemSSL for communication using the Internet. SystemSSL is composed of the Secure Sockets Layer (SSL) and Transport Layer Security (TLS), which enable secure file transfer by providing data privacy and message integrity. 5.1.3 SCA security and message level security SCA provides its own capabilities for security. These capabilities can be used in WebSphere Process Server and WebSphere Enterprise Service Bus. SCA security SCA definitions are observed by WebSphere Process Server and WebSphere Enterprise Service Bus everywhere in their architecture and development. Thus, SCA security has a major role in the security definitions of these products. SCA applies security by defining quality of service qualifiers. The two SCA qualifiers for security relevant to WebSphere Process Server and WebSphere Enterprise Service Bus are: SecurityIdentity The J2EE role under which a component will be executed - regardless of the invoking J2EE role. SecurityPermission The required J2EE role to invoke an operation. Chapter 5. Qualities of service 123 Message level security Message level security is concerned with the flow of messages in transit. There are many ways to secure these messages, including using the WS-Security specification that is supported within WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS. With regard to message level security, consider the following aspects: Authentication of users when they attempt to connect to a service integration bus. When you attempt to establish a connection, you might have to provide a user ID and password. These are authenticated against the same registry that the application server uses. Further access checks on the user name are performed when the connection accesses a destination (to send or to receive a message), creates a temporary destination, or accesses a foreign bus. Confidentiality and integrity of the message in transit To ensure that communications are secure, you must, in addition to enabling security, set up secure transport chains and select secure transports to protect the data transmitted along the link using SSL or HTTPS. For System z, hardware cryptographic acceleration ensures that these operations are quick and with high encryption levels. WS-Security can also be used for SOAP messages, especially if they are asynchronous, because no handshake is needed with it. Control of which message engines can connect to a bus When messaging security is enabled, only authorized messaging engines are allowed to create a connection to a secure bus. Use this task to control which messaging engines are allowed to connect to a selected secure bus. 5.1.4 WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS security overview This section outlines some security considerations that are specific to WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS. Securing the runtime environment Security in WebSphere Process Server and WebSphere Enterprise Service Bus is controlled from the Administrative Console, because it is in WebSphere Application Server. The first thing you have to do is enable global security. All WebSphere Application Server security concepts are applicable to WebSphere Process Server and WebSphere Enterprise Service Bus. In addition, there are some details about the security of installed components in WebSphere 124 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Process Server and WebSphere Enterprise Service Bus that are worth consideration. Several important components of WebSphere Process Server and WebSphere Enterprise Service Bus have a default security configuration. This configuration includes aliases to which default users are mapped and security roles to which users must be granted access in order to invoke these components. The components with predefined aliases and roles are: Business process choreographer — aliases and roles CEI — aliases SCA (described in “SCA security” on page 123) — aliases and roles Human tasks engine — roles Securing applications Applications in WebSphere Process Server and WebSphere Enterprise Service Bus are secured by authentication, access control, data integrity and privacy. Securing applications assumes that global security is enabled. When global security is on, clients must be authenticated. The main authentication methods for clients are: Web clients: HTTP basic authentication. Java clients: Java Authentication and Authorization Service (JAAS.) Web services: WS-Security/SOAP authentication. Additionally all of these clients can use SSL authentication. You can use Lightweight Third Party Authentication (LTPA) for authentication. This mechanism allows you to choose between two different authentication possibilities, as shown in Table 5-1. Table 5-1 Options for the user registry User registry Action Operating system If you choose Local OS, then the user registry is implemented by SAF. LDAP You need a configured LDAP. It can be either a local or remote registry. Access control Access control is implemented usually by assigning J2EE roles to components. This control is often specified at development time. For example, SCA security can specify a SecurityPermission qualifier to limit access control for an SCA component. Chapter 5. Qualities of service 125 Data integrity and privacy The integrity and privacy of data can be achieved in WebSphere Process Server and WebSphere Enterprise Service Bus using one of the two following solutions: Secure Sockets Layer (SSL) WS-Security Securing adapters Adapters usually exchange important information when they communicate with specific enterprise information systems. Therefore, the security mechanisms used with these adapters is important. Within WebSphere Process Server or WebSphere Enterprise Service Bus, an adapter is an SCA import or export. This import or export can have SCA security qualifiers defined for it to determine the role under which the adapter runs and the role that is required to be authorized to access the adapter. Enterprise information system specific security information (such as the user ID that the transaction in the enterprise information system should run under) can usually be specified in the connection factory of the adapter. 5.2 Transactionality This section introduces the subject of transactionality and how you can implement it on z/OS for WebSphere Process Server and WebSphere Enterprise Service Bus. 5.2.1 Transaction requirements Transaction management is one of the strong requirements for the new subsystems and has always been critical for the success of new technologies. The classical and well-known ACID properties for transactions are of great importance. ACID stands for the four required properties for a transaction: Atomic Operations within a transaction are considered an indivisible unit of work. If the transaction completes successfully, all of the operations are executed and committed. If the transaction is rolled back, then all of the actions within the transaction are reversed. Consistent When a transaction operates on data it must be in a way that data remains consistent. 126 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Isolated The effects of concurrently running transactions are invisible to the others until transaction is committed. Durable When a transaction is running, changes must be resistant to system failures. All these considerations are taken for granted when transactions execute against a single resource: writing to a volume or updating a database. When several resources are involved either we need to use a transactional resource manager or manually program a transaction in an application. 5.2.2 z/OS transactional services z/OS provides a variety of products and resources that make of it one of the most reliable transactional platforms. The Resource Recovery Service (RRS) on z/OS provides best-of-breed performance for two-phase commit transactions. RRS manages resources in a way that they are registered in a global transaction only when they attempt to make changes to resources under its control. WebSphere Process Server and WebSphere Enterprise Service Bus for z/OS take advantage of the underlying z/OS RRS service. WebSphere Application Server for z/OS has advanced controls, which are not available in other platforms, for the control of transactions in application server instances. You can assign privileged to specific transactions to increase their priority. You can select which JVMs execute heavy weight transactions and which JVMs control faster transactions. All these capabilities are under the coordination of WLM and RRS. 5.2.3 SCA transactions SCA presents all elements of business transactions – access to Web services, Enterprise Information System (EIS) service assets, business rules, workflows, databases and so on – in a service-oriented way. WebSphere Process Server transactions For business processes, WebSphere Process Server offers support for transactions involving multiple resource managers using the two-phase commit process to ensure ACID properties. This capability is available for both short-running processes (single transaction) and long-running processes (multiple transactions). You can group multiple steps in a business process into one transaction by modifying transaction boundaries in WebSphere Integration Developer. Chapter 5. Qualities of service 127 Because not all service invocations support two-phase-commit transactions, WebSphere Process Server also includes recovery capabilities. If a failure occurs in the middle of running an integration application, the server detects it and allows an administrator to manage the failed event from the failed event manager. WebSphere Enterprise Service Bus transactions Mediations in WebSphere Enterprise Service Bus have also transactional properties. You can configure a mediation handler to run within a global transaction. A global transaction is required when: Mediating and routing messages must be coordinated into a single transaction. Several mediation handlers in a mediation handler list must be coordinated into a single transaction. Setting the global transaction property ensures transactional integrity between a mediation that accesses the resources owned by other resource managers, and the messaging engine. A global transaction encompasses all the mediation operations that are run within the bus for the duration of the mediation. The global transaction ends when the mediation completes its processing. If a mediation transaction rolls back, all transactional changes also roll back. When the transaction rolls back, the mediated message remains on the pre-mediated part of the bus destination and becomes eligible to be mediated again. The redelivery count assigned to a message increments each time a mediation transaction rolls back. If the redelivery count exceeds the limit configured for the bus destination, the message is sent to the exception destination. 5.2.4 Compensation and transactions Transactional behavior for business processes depends on the type of process being executed: Short-running processes are made of some services integrated into a non-interruptible unit of work. They run all services under one global transaction. This means that resources are blocked for the transaction execution time and that is why short-running processes should execute for only a short period of time. Long-running processes allow for interruptions and can involve asynchronous tasks. These services are grouped into several global transactions along the process. 128 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus If all the resources are accessible for the global transaction there is no problem with the execution and the transaction guarantees integrity. If any of the individual services belonging to the transaction do not allow the transaction manager, WebSphere Application Server in this case, to control the transaction, these services are out of the global transaction. Transaction boundaries for long-running processes can be optimized. At development time, transaction behavior can be declared for some activities and can be set to: Commit before. The activity runs in a new transaction. Commit after. The running transaction is committed immediately after the activity is completed. Requires own. The activity runs in a new transaction and is committed immediately after its execution. Participates. The activity runs under an existing transaction. WebSphere Process Server offers compensation as a way to undo services that are not part of a global transaction, cannot rollback, or to undo the effects of an already committed transaction. Compensation is specified by defining a compensating service that should be run to undo the original service. 5.2.5 Fault handling in transactions For business processes, faults can occur when a process instance is created or when operations that are invoked as part of the navigation of a process instance fail. Mechanisms exist to handle these faults. These handlers are catch or catch all, and they include features to do the following: Pass control to corresponding fault handlers. Stop the process so it can be repaired (force-retry, or force-complete). Compensate the process. Pass the fault to the client application as an API exception. For example, an exception is thrown when the process model from which an instance is to be created does not exist. These faults can be thrown by the process choreographer or an activity called throw inside the business process. Chapter 5. Qualities of service 129 There is a default handler, which is not available in the process editor, that defines some fault handling rules for the case that catch and catch all are not there. If there are no fault handlers defined or no catch or catch all elements the engine uses the default handler rules. For mediation flows, faults can be caught in the response flow of a service call and handled through the use of mediation primitives. 130 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus 6 Chapter 6. Integration with backend systems This chapter discusses approaches for integrating business processes in WebSphere Process Server and mediation flows in WebSphere Enterprise Service Bus with backend systems such as CICS Transaction Server. Integration with backend systems is an important part of SOA implementation. According to Phil Murphy with Forrester Research: The irony is that host applications are probably better suited for exposure as part of an SOA than many applications based on more modern 4GL object-oriented languages. When folks wrote screen-based transactions many months ago, they wrote it at a business function viewpoint: I add a customer, I add an order for that customer, I check backlogs for that customer, etc. So in many respects, those CICS screens of 15 years ago are better suited to service orientation than a lot of the newer, distributed code that’s been written over the last several years, because of their affinity with a business function, what did the object-oriented guys do? They took those screens and they broke them down into a thousand different objects.1 1 Phil Murphy, Forrester Research, from Enterprise Systems Journal, 7/26/2005, which is available online at: http://esj.com/enterprise/article.aspx?EditorialsID=1457 © Copyright IBM Corp. 2006. All rights reserved. 131 6.1 Integration approaches When integrating services into a business process, we think about two different conceptual approaches according to the business view: We implement the process steps for an existing business process (perhaps designed by the line of business or some business architect) from scratch. We will call this approach top-down. We take existing software assets and expose their business logic as services in an extend and granularity that we consider as the best. We will call this approach bottom-up. In many real-world situations, you have an existing business process similar to the top-down approach and have to assign the process steps to services that represent business logic that is provided by existing software assets. This case requires a combination of the two approaches that we have mentioned. We call this combination approach the meet-in-the-middle approach. Note: When it comes to examples or concrete implementation in this chapter, we always use CICS Transaction Server V3.1 as a reference backend system and Web services as a reference SOA interaction pattern. There are comments about other backend systems when concepts or implementation patterns differ significantly. 6.1.1 The bottom-up approach to integration In the bottom-up approach, we assume that the process architect builds a business process by choosing the process steps out of a pool of existing services. We now discuss that approach and how to implement it in practice. Implementing the bottom-up approach in CICS This approach is usually the starting point when we have an existing CICS application that is fully functional, already implemented, and has a COMMAREA or channel interface available. We now want to expose this application as a Web service. Note: The COMMAREA is the language structure (represented in the native language; COBOL, PL/I, C, and so forth) that is used in CICS applications to pass both input and output parameters for calls to and from CICS applications. In CICS TS v3.1, a new facility called containers was introduced to overcome some limitations of the COMMAREA concept. 132 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus The following input data is needed to generate a Web service interface: Programming language data structure – in COBOL or PL/I or C or C++ – Interface to the program can be COMMAREA or a channel Control statements (SYSIN) The following output data is generated: Web services binding file Input and output data conversion COBOL files (optional, if option selected) Web services description (WSDL) After generating the service interface the service is available to any service consumer. To ensure that our service is used, we likely want to publish the service description (in this case the WSDL file) in a service repository. The process architect accesses this service repository and composes a business process based on the set of available services. Advantages and disadvantages of the bottom-up approach The bottom-up approach has some obvious advantages and disadvantages that emphasize the idealized character of the approach. The main advantages of the approach are: There are no changes in the CICS transaction required. You do not even have to read the source code. The generation of the Web service interface is straight forward, very deterministic and is done in minutes. A service repository for the process composition can be easily combined with a runtime service repository. However, there are some severe disadvantages in the approach that complicate the implementation of the approach in a substantial extend, such as: The process composition is remarkably restricted by the pool of available services. Not only the availability of a certain business function might be in dispute but the business function a certain service provides might not fit fully the requirements of the process architect. There is a reasonable risk to fail the goals of a service-oriented architecture (SOA). SOA describes a service as atomic business functions that executes Chapter 6. Integration with backend systems 133 one particular task. Your existing CICS interface data structure might perhaps not be in a form that supports this requirement. To avoid unnecessary work due to preparation of unneeded services you have to plan very carefully. Most likely there has to be a close interlock between the process architect and the host programmer that provides the services. This delays the development process and protracts the SOA project. The interface data structure of host applications usually follows other requirements than the desired Web service data structure. If the interface data structure of an existing host application is used without modification the data structure for the response will also be part of the request. 6.1.2 The top-down approach to integration The top-down approach assumes that the process architect designs a process without any thought about the implementation of the process steps (with the possible exception of human tasks). The business requirements for each process step determine its interface structure and therewith its service definition. On the basis of this service definition a service implementation is written from scratch. Implementing the top-down approach in CICS We just have the WSDL file as input data, which is the Web services description (WSDL). The output of the interface generation wizard is just the CICS interface data structure, the binding file for data transformation, and a skeleton source file: Web services binding file High-level language data structure – In COBOL or PL/I or C or C++ – Interface to the program can be COMMAREA or a channel We then have to write the service implementation using the skeleton file. We can reuse existing code, but because the service interface and the interface data structure are already given, we have to comply with certain restrictions. Advantages and disadvantages of the top-down approach The main advantages of the top down approach are: The process architect has the opportunity to design the business process solely from a business point of view. Therefore, the business process can be designed by the line of business and by a person without deep knowledge of the IT infrastructure that will support the process. 134 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus The SOA architectural approach can fully be implemented without having to care about the structure of the backend systems as it is now. The main disadvantages to this approach are: There must be a lot of rewriting of code to fit the service interface requirements. This is expensive and does not leverage the biggest value of your mainframe assets: that the business logic already exists! Leveraging existing business logic can be a challenge. Often the mainframe assets are running for years without change. If you do not have the developer or the developer’s documentation still around you have to perform sophisticated code and structural analysis, which makes the approach of reuse probably as complex and expensive as the rewriting approach. 6.1.3 The meet-in-the-middle approach to integration As we have discovered, there can be disadvantages in the bottom-up approach as well as in the top-down approach. Thus, we must look for a new approach that can leverage the advantages of the two approaches but minimize the issues that they raise. Note: The meet-in-the-middle approach is a compromise of the two idealized, one-way approaches. The major advantage of the top-down approach is the opportunity for the process architect to design the business process to meet business needs without having to care about the underlying IT infrastructure and the applications that will provide the implementation for the services the process will consume. The major advantage of the bottom-up approach is opportunity to reuse your existing backend systems without having to touch or edit their source code. You just have to know the exact interface data structure. Obviously, a mediation layer or wrapper that makes use of both of these advantages in one approach can be most helpful. Figure 6-1 illustrates this concept. Chapter 6. Integration with backend systems 135 1 Business Process Mediation Layer Backend System Service Interface App. Interface Backend Backend Application Application 2 Business Process Backend System Wrapper Service Interface Backend Application Figure 6-1 Two architectural styles of the meet-in-the-middle integration approach Ways to implement the meet-in-the-middle approach Figure 6-1 shows two different styles of implementing the meet-in-the-middle approach: Using a mediation layer Using a wrapper Using either of these two styles gives the opportunity of not having to change the code that resides in the backend applications, which is one of the major advantages of the bottom-up approach. Additionally, either style provides the freedom to design the service interface in a form that is appropriate for this business process (as opposed to a service interface that is fixed, based on the backend application that you are calling). This option allows you to expose only a subset of the business logic of your backend application or to tie several backend applications together to create a single service, which is an advantage of the top-down approach. 136 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Using a mediation layer The first architectural style uses a mediation layer. There are a number of options for which product could implement this mediation layer: WebSphere Application Server This mediation layer could be a J2EE component (such as an EJB session bean) that transforms the service interface protocol and data structure into the backend application interface protocol and data structure. This option requires manual programming. WebSphere Enterprise Service Bus The mediation layer could be an ESB implemented in WebSphere Enterprise Service Bus. This option provides the advantage of not having to write the mediation logic yourself. You simply have to define the data structure mappings by customizing pre-build mediation primitives. In addition to data transformation, WebSphere Enterprise Service Bus can perform other mediation functions such as protocol transformation and dynamic message routing. This option is most appropriate when accessing back-end systems using Web service invocations or through a J2EE Connector Architecture implementation such as the CICS ECI resource adapter supplied with the CICS Transaction Gateway. See 6.2.1, “Service enablement using the J2EE Connector Architecture” for more details. WebSphere Message Broker The mediation layer could be an ESB implemented in WebSphere Message Broker. This provides similar capabilities to an ESB implemented in WebSphere Enterprise Service Bus, and additionally provides support for a wider range of data transformation services for a more diverse set of backend systems. Using a wrapper The second architectural style does not use additional middleware. It requires that you enable the backend system in such a way that it accepts and understands messages directly from the business process. You achieve this by creating wrapper code around an existing application in a backend system. All z/OS core systems such as IMS, CICS, and DB2 support this option. The wrapper code is nothing other than the generated language structure skeleton file, which in our example will receive the Web service request, build the native interface data structure (COMMAREA or Channel) from the data in the service request and pass them on to the backend application. The response goes the opposite way, which allows a business process that runs in WebSphere Chapter 6. Integration with backend systems 137 Process Server to make a direct Web service call to an application that runs in CICS TS. The wrapper code in the backend system is only a thin layer and written in the native language of the backend system, which has two advantages: The layer works with a minimal performance overhead while the additional mediation layer in the first architectural style is a thicker layer with a potentially higher performance overhead. The wrapper code communicates directly with the backend application without making use of language independent interfaces or network stacks. So the throughput like the response time are maximized. Note: The second architectural style to implement the meet-in-the-middle approach provides a simpler architecture by leaving out an additional layer for data mapping and protocol transformation, which makes it attractive for small or very performance critical projects. For more information about this option, see 6.2.2, “Service enablement of core systems” on page 143. Backend integration using the CICS Service Flow Runtime The CICS TS v3.1 Service Flow Runtime (SFR) and its modeling tool, the WebSphere Developer v6.0 Service Flow Modeler (SFM) is a special architectural option for integrating CICS backend applications into your business process. Integrating multiple applications into a single service has advantages over assembling a composite service by explicitly chaining services together. At a high level (integration and modeling) it reduces complexity for the caller who does not have to be concerned with managing call-outs of individual applications in the chain and at a low level (implementation and runtime) it reduces the execution cost of the transaction, because the SFR calls CICS applications through their native application interface (COMMAREA or Containers) or even via using the 3270 interface to the application. SFM generates self-contained code for such integrated services that can be run in the SFR. Figure 6-2 illustrates the Service Flow Runtime. It shows a variation of the meet in the middle approach leveraging the SFR. The SFR and the SFM allow you to assemble multiple backend applications in one service call using a graphical user interface. It allows you also to call an application several times with different purposes and parameters without having to expose several separate service interfaces for this application. 138 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Business Process CICS TS v3.1 Backend System SFR Backend Application Application Backend Backend Application Application Backend Application Application Figure 6-2 The CICS TS V3.1 Service Flow Runtime Note: The CICS TS v3.1 Service Flow Runtime allows you to execute a flow of multiple CICS applications using their native language structure interfaces directly in the CICS transaction container and to expose the whole flow as a single service. 6.2 Enabling your core applications for reuse This section discusses service enablement using the J2EE Connector Architecture and service enablement of your core systems. 6.2.1 Service enablement using the J2EE Connector Architecture The J2EE Connector Architecture (J2C) is part of the J2EE specification and defines how an application server can communicate with backend systems. Each backend system wanting to take advantage of J2C must provide a resource adapter specific to that backend system that performs the message and protocol transformation necessary to allow the application server and backend system to communicate, as shown in Figure 6-3. Chapter 6. Integration with backend systems 139 Container-Component Contract Application Component Client API System Contracts Resource Adapter Application Server EIS specific interface Backend system Figure 6-3 Architecture overview of J2C The resource adapter for CICS is supplied with the CICS Transaction Gateway. The resource adapter for IMS is supplied with IMS Connect. JCA resource adapters also exist for a wide range of other application servers (such as SAP and PeopleSoft). Using these resource adapters we can connect business processes running in WebSphere Process Server and mediation flows running in WebSphere Enterprise Service Bus to backend systems. Using J2C resource adapters with SCA SCA runtime environments (such as WebSphere Process Server and WebSphere Enterprise Service Bus) can incorporate calls to J2C resource adapters. These calls are represented as SCA imports and SCA exports. For example, an SCA export can be created which uses the CICS ECI resource adapter. This SCA export could be wired to a business process in WebSphere Process Server or a mediation flow in WebSphere Enterprise Service Bus to permit access to an application running in CICS. At runtime the SCA import or export uses a J2C resource adapter to perform the communication with the backend system. 140 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus The Enterprise Service Discovery wizard The Enterprise Service Discovery Wizard, provided with WebSphere Integration Developer, is used to create SCA imports and exports that use J2C resource adapters to access backend systems. This wizard contains a number of stages, including: Importing or selecting the J2C resource adapter to use Selecting the service type (inbound to create an SCA export or outbound to create an SCA import) Finding and discovering enterprise services: for example specify the CICS program to access and COMMAREA structure to use Therefore, in order to use this wizard, you need the following resources: A J2C resource adapter (which is packaged as a Resource Adapter Archive (RAR) file). This resource adapter must be installed into the WebSphere Process Server or WebSphere Enterprise Service Bus runtime. A file representing the application interface data structure (for example a COBOL copybook in CICS). Figure 6-4 shows an example of the Enterprise Service Discovery wizard, which is used in this case to enable access to a CICS application. Chapter 6. Integration with backend systems 141 Figure 6-4 Enterprise Service Discovery wizard An alternative approach to using SCA imports/exports Instead of using SCA and the Enterprise Service Discovery wizard to work with J2C resource adapters, you can develop a JavaBean to make calls to resource adapters. This approach uses only J2EE standards (it does not make use of SCA) and, therefore, you can deploy it to a WebSphere Application Server runtime as well as WebSphere Process Server and WebSphere Enterprise Service Bus. In this approach, a J2C wizard in Rational Application Developer is used to create a JavaBean that invokes a J2C resource adapter. This JavaBean can then be exposed as a Web service (using another Rational Application Developer wizard), so that applications such as WebSphere Process Server and WebSphere Enterprise Service Bus can invoke it by sending SOAP messages. 142 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Figure 6-5 shows this approach, using a CICS example. Figure 6-5 Enabling of a CICS transaction using JCA and JavaBeans™ 6.2.2 Service enablement of core systems An alternative to using a J2EE Connector Architecture resource adapter to access backend systems is to service enable a backend system. By doing this, a business process running in WebSphere Process Server or a mediation running in WebSphere Enterprise Service Bus accesses the backend system using standard message and protocol formats supported by these products. For example, if we service enable an application running in CICS Transaction Server with a Web services wrapper, then a business process running in WebSphere Process Server can use SOAP over HTTP to communicate directly with the application running in CICS. Note: In this section, we continue to use Web service and CICS Transaction Server V3.1 as the example used for service enablement of core systems. The service enablement within your backend systems reduces complexity and gives you the opportunity to revise your backend applications to prepare them for reuse. Chapter 6. Integration with backend systems 143 Identifying reusable units There are various approaches to identify pieces of business logic in your applications that are predestined for reuse and find code which could use some adjustment before being exposed as a service. There are several requirements with which the backend business logic must comply: The request must be stateless. That means that after processing data and giving the response there must be no request related data left. A service should be atomic. That means that the processing of a request should never be interrupted by something that could change any request related data. The aspect of being atomic can also be seen from the business point of view. A service shall always perform one particular task like adding a set of data to a database or performing a particular calculation. The implementation should always do exactly what is defined in the interface description. That aspect might sound simple, but it is not. If for example the service description has no capabilities to define a very sophisticated constraint to some input data, the application must be able to handle input data that do not comply with this constraint. In general there should be no implicit interface or processing policies. The particular task you have identified to comply with the above mentioned requirements should provide an interface to be called as a single application or transaction. Therefore, you might have to perform minor changes to your backend system code You can use several products like WebSphere Studio Asset Analyzer or the IBM Asset Transformation Workbench to analyze the application code, define code you want to expose as a service, or avoid duplicate code when creating additional functions. Bottom-up Web service enablement deep dive There are two facilities that help you create the Web service interface for your CICS (or IMS) applications: The XML Services for the Enterprise (XSE) capability of WebSphere Developer for System z. The DFHWS2LS application for the top-down approach and the DFHLS2WS application for the bottom up approach. As you might guess from their names, these two applications are z/OS applications, which run in batch mode. We discuss the bottom-up approach as an example to provide a closer look at the facilities that are involved in the service enablement process. 144 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus The Web Services Enablement wizard is the XSE tool that supports the bottom-up approach for creating Web services based on existing CICS COBOL programs. It takes as input the COMMAREA copybook as well as several input parameters CICS needs for Web service enablement like the URI name that tells where the Web service is located in CICS. The XML structure and data types are then derived from the COBOL data declarations. Based on these, the Web Services Enablement wizard generates the set of artifacts that you need to build the pipeline (Figure 6-6). Figure 6-6 Architecture of a CICS Web service provider The artifacts that the Web Services Enablement wizard generates are: Input converter A COBOL program that takes an incoming XML document and maps it into the corresponding COBOL data structure that the existing CICS application expects. Output converter A COBOL program that takes the COBOL data results returned from the CICS application and maps them to an XML document. Converter driver A COBOL program that shows how the input and output converters can be used to interact with the existing CICS application. Input document XML schema definition (XSD) XML schema that describes the incoming XML document. Output document XML schema definition (XSD) XML schema that describes the outgoing XML document. Chapter 6. Integration with backend systems 145 WSDL Web service description file. WSBind Web service binding file. Suppose that we have an existing CICS application that we want to expose as a Web service that uses the HTTP transport. We go through the following steps: 1. Generate the WSBIND and WSDL files. a. Create an Hierarchical File System (HFS) directory in which to store the generated files. For example, we might create a directory named /u/SharedProjectDirectory/MyFirstWebServiceProvider. b. Use the Web Service Enablement wizard from WebSphere Developer for System z (or the z/OS applications) to generate the necessary files. Input data includes: • The data set members that contain the high-level language structures used by the application program to describe the Web service request and the Web service response • The relative URI that a client will use to access the Web service • How CICS should pass data to the target application program (COMMAREA or container) 2. Create a TCPIPSERVICE resource definition. The resource definition should specify PROTOCOL(HTTP) and supply information about the port on which inbound requests are received. 3. Create a PIPELINE resource definition. a. Create a service provider pipeline configuration file. A pipeline configuration file is an XML file that describes, among other things, the message handler programs and the SOAP header processing programs that CICS will invoke when it processes the pipeline. b. Create an HFS directory in which to store installable WSBIND and WSDL files. We call this directory the pickup directory as CICS will pick up the WSBIND and WSDL files from this directory and store them on a shelf directory. c. Create an HFS directory for CICS to store installed WSBIND files. We call this directory the shelf directory. 146 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus d. Create a PIPELINE resource definition to handle the Web service request. • • • Specify the CONFIGFILE attribute to point to the file created in step 3a. Specify the WSDIR attribute to point to the directory created in step 3b. Specify the SHELF attribute to point to the directory created in step 3c. e. Copy the WSBIND and WSDL files created in step 1 to the pickup directory created in step 3b. f. Compile and link the COBOL files (only if you want to use the COBOL input and output converters). 4. Install the TCPIPSERVICE and PIPELINE resource definitions. When you install the PIPELINE definition, CICS scans the pickup directory for WSBIND files. When CICS finds the WSBIND file created in step 1, CICS dynamically creates and installs a WEBSERVICE resource definition for it. CICS derives the name of the WEBSERVICE definition from the name of the WSBIND file. The WEBSERVICE definition identifies the name of the associated PIPELINE definition and points to the location of the WSBIND file in the HFS. CICS uses the WSBIND file to create main storage control blocks to map the inbound service request (XML) to a COMMAREA or a container and to map to XML the outbound COMMAREA or container that contains the response data. Note: For every WSBIND file (that contains the data mapping information), there is always one URIMAP (to locate the business logic) and one WEBSERVICE resource definition generated. 5. Publish WSDL to clients. Customize the location attribute on the <address> element in the WSDL file so that its value specifies the TCP/IP server name of the machine hosting the service and the port number defined in step 2. In our case, the client might be a WebSphere Process Server business process that wants to call the CICS application using a Web service interface. For more information about this process, consult Implementing CICS, SG24-7206 and Application Development for CICS Web Services, SG24-7126. Chapter 6. Integration with backend systems 147 148 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Abbreviations and acronyms APIs application programming interfaces J2C J2EE Connector Architecture JACC Java Authorization Contract for Containers BO Business Objects BPM Business Process Management JCL Job Control Language JES Job Entry Subsystem CBE Common Base Events JMS Java Message Service CEI Common Event Infrastructure JSF Java Service Faces CORBA Common Object Request Broker Architecture KPIs Key Performance Indicators CP Central Processor LDAP Lightweight Directory Access Protocol CR control region LTPA CRA control region adjunct Lightweight Third Party Authentication CRM Customer Relationship Management MDD model-driven development ND Network Deployment DMZ demilitarized zone OCSF DRDA Distributed Relational Database Architecture Open Cryptographic Services Facility POJOs Plain Old Java Objects EIS Enterprise Information System QoS Quality of Service ERP Enterprise Resource Planning RACF Resource Access Control Facility ESB Enterprise Service Bus RAR Resource Adapter Archive HATS Host Access Transformation Services RDBMS relational database management system HFS Hierarchical File System REXX HTTP Hypertext Transfer Protocol Restructured Extended Executor Language IBM International Business Machines Corporation RII redundant I/O interconnect RMI Remote Method Invocation ICF Internal Coupling Facility RPC Remote Procedure Calls IFL Integrated Facility for Linux RRS Resource Recovery Service IRD Intelligent Resource Director RRS Resource Recovery Services ISPF Interactive System Productivity Facility SCA Service Component Architecture ITSO International Technical Support Organization SDO Service Data Object SFM Service Flow Modeler © Copyright IBM Corp. 2006. All rights reserved. 149 SFR Service Flow Runtime SIB Service Integration Bus SMO Service Message Object SOA service-oriented architecture SOBAs service-oriented business applications SR Servant Regions SSL Secure Sockets Layer TLS Transport Layer Security UDDI Universal Description, Discovery, Integration UML Unified Modeling Language URL Uniform Resource Locator USS Unix System Services VM Virtual Machine WLM Workload Manager WSDL Web Services Description Language WSIL Web Services Inspection Language XSD XML schema definition zAAP z9 Application Assist Processor zIIP z9 Integrated Information Processor 150 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Related publications In this section, we list the publications that we consider particularly suitable for a more detailed discussion of the topics that we cover in this Redpaper. IBM Redbooks For information about ordering these publications, see “How to get IBM Redbooks” on page 151. Note that some of the documents that we reference here might be available in softcopy only. Getting Started with WebSphere Enterprise Service Bus V6, SG24-7212 Patterns: SOA Foundation Service Connectivity Scenario, SG24-7228 Patterns: SOA Foundation Service Connectivity Scenario, SG24-7228 Patterns: Model-Driven Development Using IBM Rational Software Architect, SG24-7105 Patterns: Building Serial and Parallel Processes for IBM WebSphere Process Server V6, SG24-7205 The Value of the Mainframe in Service Oriented Architecture, REDP-4152 How to get IBM Redbooks You can search for, view, or download Redbooks, Redpapers, Hints and Tips, draft publications and Additional materials, as well as order hardcopy Redbooks or CD-ROMs, at this Web site: ibm.com/redbooks Help from IBM IBM Support and downloads ibm.com/support IBM Global Services ibm.com/services © Copyright IBM Corp. 2006. All rights reserved. 151 152 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Index Numerics 4GL 131 A access control 121, 125 adapters 126 Administrative Console 104, 106–107, 109 managing the bus 109 navigation tree 107 pages 108 taskbar 107 tasks 108 workspace 107 aliases 125 authentication 121, 124–125 authorization 121 automation using scripts 110 B benefits of SOA 11 BPC Explorer 80, 114 failed compensation 115 navigation tree 114 process instances 114 session beans 115 task instances 115 taskbar 114 templates 114 workspace 114 Broker Application pattern 59 business functions SOA 15 business object maps 73 business objects 67 business process 15, 27, 68 formal specification 27 Business Process Choreographer Explorer. See BPC Explorer. business process management 42 middleware monitoring 64 services monitoring 63 transactions monitoring 63 © Copyright IBM Corp. 2006. All rights reserved. business processes management 63 SOA 15 business rule 43, 72 Business Rules Manager 115–116 bottom-right section 116 navigation tree 116 taskbar 116 top-right section 116 business service 18 architecture 56 modules 77 universal model 18 business state machine 72 business transactions 15 SOA 15 C CBE 117 CEI 67, 117 Channel 132 CICS 101, 131 Channel 132 CICS Transaction Gateway 137 COMMAREA 132 Converter driver 145 copybook 141 DFHLS2WS 144 DFHWS2LS 144 Input converter 145 Output converter 145 PIPELINE 147 Service Flow Modeler (SFM) 138 Service Flow Runtime (SFR) 138 TCPIPSERVICE 147 WEBSERVICE resource definition 147 WebSphere Developer for System z 144 WSBIND file 146 XML Services for the Enterprise 144 COBOL 132 copybook 141 WebSphere Developer for System z 144 COMMAREA 132, 147 153 Commit after 129 Commit before 129 Common Base Event. See CBE. Common event infrastructure CEI 75 Common Event Infrastructure. See CEI. communication protocols SOA 10 Compensation 128 Confidentiality 124 CONFIGFILE 147 container 147 controller 122 controller region CR 90 controller region adjoint CRA 90 CORBA 32 core system transactions capability 22 custom mediation primitive 86 Federated User Registry 123 G global security 124–125 global transaction 128 governance See SOA governance H HFS directory 146 Hierarchical File System. See HFS HTTP transport 146 HTTP basic authentication 125 HTTPS 124 human task 43, 71 templates 112–113 I D daemon 122 data graph 34 data integrity 121, 126 data mediator service 34 DatabaseLookup 85 Datapower 101 DB2 Universal Database 50, 101 multi-user version 50 definition of SOA 7 deploy 36 dynamic service selection 73 E EIS 33 EJB 137 end-to-end security 120 Enterprise Information System. See EIS. Enterprise Service Bus. See ESB. Enterprise Service Discovery wizard 141 event group 75 F fail primitive 86 Failed Event Manager 118 fault handling 129 154 IBM Contact us xii IBM Asset Transformation Workbench 144 IBM Cloudscape 50 IBM HTTP Server 100 IMS 101 IMS Connect 101 integration approaches 132 bottom-up 132 meet-in-the-middle 132 top-down 132 integration patterns 58 integrity 124 Intelligent Resource Director IRD 92 interface maps 72 interfaces SOA 10 Internet Object Request Broker Protocol (IIOP) 32 J J2C 139 J2EE 112 JAAS 125 JACC 123 Jacl 110, 113 Java 75, 110 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Java Authentication and Authorization System JAAS 71 Java clients 125 Java Command Language. See Jacl. Java Management Extensions. See JMX. JCA ECI resource adapter 137 J2C 139 resource adapter archive (RAR) 141 JCL 111 JES 111 JES2 93 JMS 28, 67, 83, 118 JMX 111 Jython 110 O open architecture 120 P parallel activities 70 participates 129 patterns for SOA 58 PL/I 132 WebSphere Developer for System z 144 plain old Java Objects (POJO) 75 POJO 75 privacy 126 process starting and stopping 113 PROTOCOL(HTTP) 146 Python 110 L languages, scripting 110 LDAP 71, 101, 123, 125 local OS 125 long-running 127 long-running flow 128 long-running processes 70 LTPA 125 M mainframe in use today 6 SOA capabilities 6 managing SOA 63 mediation 128 flow 74 handler 128 layer 136 module 77, 85 primitives 85 mediation flow 83 Mediation Flow component 83 message orientated middleware 32 MessageFilter 86 MessageLogger 85 Model-driven development (MDD) 56 Modules 76 monitoring 63 monitoring SOA 63 multiple application 58 Q Quality of Service (QoS) 22 R RACF 92, 100, 123 RAR file 141 Rational Software Architect 55 Redbooks Web site 151 Remote Method Invocation (RMI) 33 requesting services SOA 13 resource adapter 137 Resource Recovery Services RRS 91 Restructured Extended Executor. See REXX. REXX 111 RRS 100, 127 S SAF 92, 125 SAF Authorization 122–123 SCA bindings 109 component 19 interfaces 109 messages 118 module exports 109 module imports 109 module name 109 qualifiers 123 Index 155 security 123 scripting 110 Jacl 110 JCL 111 Jython 110 objects 111 REXX 111 SDO 83 security 64, 124–125 authorization facility (SAF) 71 management and monitoring 64 organization 120 roles 125 security, end-to-end 120 SecurityIdentity 123 SecurityPermission 123 serial process application pattern 59–60 servant 122 servant region (SR) 90 Service Component Architecture. See SCA. service components 68 Service Connectivity scenario 40 service consumer 25 Service Data Objects (SDO) 66 service granularity and choreography 15 Service Integration Bus (SIB) 104 Service Message Object (SMO) 83, 86 service provider 25 service-oriented architecture. See SOA. services SOA 9 Services Discovery and Management 30 Services Registry and Repository 30 SHELF 147 short-running flows 127–128 short-running processes 70 single sign-on 121 SMP/E 102 SOA 7, 66–67 administering 112 alternative ways of requesting services 13 business and IT benefits 11 communication protocols 10 definition 7 interfaces 10 management 63 managing 63 monitoring 63 156 patterns 58 service granularity and choreography business functions 15 business processes 15 business transactions 15 technical functions 15 services 9 SOA Foundation 35 Life Cycle 35 Assemble 36 Deploy 36 Manage 36 Model 36 reference architecture 37 access services 38 business application services 38 information services 38 middleware services view 37 partner services 38 scenarios 39 SOA Governance 37 Framework 62 SOAP 28, 124, 143 authentication 125 envelope 28 faults 28 message 28 message, headers section 28 over HTTP 143 SSL 100, 123–126 stand-alone reference 85 starting a process 113 stop primitive 86 stopping a process 113 supporting services 68 System z Integrated Information Processor (zIIP) 24 T task template starting and stopping 112 TCP/IP server name 147 TCPIPSERVICE 146 technical functions SOA 15 tool command language (TCL) 110 transaction 126 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus transaction properties ACID 126 atomic 126 consistent 126 durable 127 isolated 127 Transport Layer Security 123 U U.S. government taxonomy 28 UDDI 108 Universal Description, Discovery, Integration (UDDI) 28 UNIX System Services (USS) 110 using wsadmin 113 V virtualization 24 W Web clients 125 Web service 118 Web services 24, 125 SOAP body 28 header 28 UDDI 28 usage models 26 basic callback 26 one-way 26 synchronous request/response 26 Web Services Inspection Language (WSIL) 27 WebSphere Application Server 48 WebSphere Authorization 123 WebSphere Business Monitor 51 WebSphere Developer for System z 144 XML Services for the Enterprise 144 WebSphere Enterprise Service Bus 46 administering 105 WebSphere Integration Developer 101 WebSphere Message Broker 137 WebSphere Process Server 43, 112–113 administering 105 WebSphere Studio Asset Analyzer 144 Workflow Manager 58 Workload Manager 78 wrapper 136 wsadmin 113 WS-BPEL 68 WSDIR 147 WSDL 133 WS-Security 124–126 X XML 101 XML Services for the Enterprise (XSE) 144 XSLT primitive 86 Z z/OS administration of WebSphere Process Server and WebSphere Enterprise Server Bus 105 ISPF 103 JCL 111 JES 111 RACF 100 REXX 111 RRS 100 SMP/E 102 SSL 100 System logger 100 transactionality 126 UNIX System Services 100 z/OS Communications Server 100 z/OSe 100 zAAP 91, 101 zAAP (z Series Application Assist Processor) 24 zIIP 24 Index 157 158 z/OS Technical Overview: WebSphere Process Server and WebSphere Enterprise Service Bus Back cover ® z/OS Technical Overview WebSphere Process Server and WebSphere Enterprise Service Bus Learn about SOA technologies on System z Read product overviews and considerations for z/OS Discover approaches to integrate with backend applications Redpaper System z and z/OS continue to provide the highest levels of availability, scalability, and reliability. System z also continues to host a wide variety of mission-critical data and application logic. So, where better to host advanced service-oriented architecture (SOA) features such as business processes and the Enterprise Service Bus (ESB) than z/OS? INTERNATIONAL TECHNICAL SUPPORT ORGANIZATION This IBM Redpaper describes how WebSphere Process Server V6 for z/OS (used primarily to run business processes) and WebSphere Enterprise Service Bus V6 for z/OS (used to implement an ESB) benefit from the strengths of System z and z/OS. BUILDING TECHNICAL INFORMATION BASED ON PRACTICAL EXPERIENCE The Redpaper begins by defining how SOA is emerging on the mainframe and provides detailed product descriptions of WebSphere Process Server and WebSphere Enterprise Service Bus. It then describes installation and administration features, operational considerations such as security, and finally describes how these products can integrate with other mission-critical applications that are running in other subsystems on z/OS. IBM Redbooks are developed by the IBM International Technical Support Organization. Experts from IBM, Customers and Partners from around the world create timely technical information based on realistic scenarios. Specific recommendations are provided to help you implement IT solutions more effectively in your environment. For more information: ibm.com/redbooks