Front cover Managing an SOA Environment with Tivoli Discusses SOA performance and availability management Describes mediation scenarios with ESB and message broker Integrates ITCAM and other Tivoli solutions Budi Darmawan Pradeep Nambiar Prem Lall Ravinder Gummadavelli ibm.com/redbooks Redpaper International Technical Support Organization Managing an SOA Environment with Tivoli April 2008 REDP-4318-00 Note: Before using this information and the product it supports, read the information in “Notices” on page vii. First Edition (April 2008) This edition applies to: IBM Tivoli Composite Application Manager for WebSphere V6.1, 5724-L62 IBM Tivoli Composite Application Manager for Web Resources V6.2, 5724-S32 IBM Tivoli Composite Application Manager for Response Time Tracking V6.1 FP2, 5724-L99 IBM Tivoli Composite Application Manager for Response Time V6.2, 5724-C04 IBM Tivoli Composite Application Manager for SOA V6.1 FP2, 5724-M07 IBM Tivoli OMEGAMON XE for Messaging V6.1 WebSphere Enterprise Service Bus and WebSphere Process Server V6.1 WebSphere Message Broker V6.0 WebSphere Services Registry and Repository V6.0.2 © Copyright International Business Machines Corporation 2008. 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 paper. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix Become a published author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Chapter 1. Introduction to SOA management. . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 Introduction to SOA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 SOA application principles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 SOA constructs and components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 SOA governance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4.1 Web Services life cycle governance . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.4.2 Web Services life cycle management . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.5 SOA management considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.6 Users of SOA management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.6.1 Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.6.2 Middleware or application subject matter expert . . . . . . . . . . . . . . . . 11 1.6.3 Performance analyst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.6.4 System administrator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.6.5 Enterprise system management architect . . . . . . . . . . . . . . . . . . . . . 14 1.6.6 Web Services application developer . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.6.7 Business executives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.7 Management needs for the SOA environment . . . . . . . . . . . . . . . . . . . . . 16 1.7.1 Web Services metric data collection . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.7.2 Web Services troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.7.3 Displaying data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.7.4 Mediation management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Chapter 2. Tivoli application management products . . . . . . . . . . . . . . . . . 19 2.1 ITCAM for SOA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.1.1 Product features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.1.2 Product components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.2 ITCAM for WebSphere and ITCAM for J2EE . . . . . . . . . . . . . . . . . . . . . . 26 2.2.1 Architecture and interconnection. . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.2.2 The managing server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.2.3 J2EE and WebSphere data collectors . . . . . . . . . . . . . . . . . . . . . . . 30 2.2.4 Tivoli Enterprise Monitoring Agent . . . . . . . . . . . . . . . . . . . . . . . . . . 32 © Copyright IBM Corp. 2008. All rights reserved. iii 2.3 ITCAM for Response Time Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.3.1 The management server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.3.2 Store and forward agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.3.3 Management agents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.3.4 Tivoli Enterprise Monitoring Agent . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.4 OMEGAMON XE for Messaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.4.1 WebSphere MQ configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.4.2 WebSphere MQ monitoring. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.4.3 WebSphere Message Broker monitoring . . . . . . . . . . . . . . . . . . . . . 46 Chapter 3. Basic SOA and Web Services management. . . . . . . . . . . . . . . 49 3.1 Basic monitoring concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.2 Performance metric of Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.3 Generating events and alerts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.4 Managing Web Services response time . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.4.1 Execution environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.4.2 Creating Rational Performance Tester script . . . . . . . . . . . . . . . . . . 56 3.4.3 Defining Web Response Monitor policies . . . . . . . . . . . . . . . . . . . . . 59 3.4.4 Reports generated from the policies . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.4.5 Tivoli Enterprise Portal workspaces . . . . . . . . . . . . . . . . . . . . . . . . . 64 3.5 Debugging performance of Web Services. . . . . . . . . . . . . . . . . . . . . . . . . 69 3.6 Understanding Web Services calling pattern . . . . . . . . . . . . . . . . . . . . . . 74 3.6.1 Turning on the content logging for a Web Service . . . . . . . . . . . . . . 74 3.6.2 Using the Log Assembler tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 3.7 Working with Web Services filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 3.8 Web Services life cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Chapter 4. Advanced SOA management . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 4.1 Mediation and SOA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 4.2 Enterprise Service Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.3 Maintaining Web Services continuity. . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 4.3.1 Register TraderDBServices in the registry . . . . . . . . . . . . . . . . . . . 106 4.3.2 Developing managed SCA mediation with ITCAM for SOA . . . . . . 110 4.3.3 Deploying the mediation application . . . . . . . . . . . . . . . . . . . . . . . . 126 4.3.4 Verifying the service invocation with mediation. . . . . . . . . . . . . . . . 132 4.4 Service monitoring automation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 4.4.1 Automation principles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 4.4.2 Update service metadata utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 4.4.3 ITCAM for WebSphere and ITCAM for Web Resources situations. 139 4.4.4 ITCAM for SOA situations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 4.4.5 Verifying situation automation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 4.5 Using managed message logger. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 4.5.1 Viewing the message data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 iv Managing an SOA Environment with Tivoli 4.6 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 Chapter 5. Managing an SOA application in a business context . . . . . . 159 5.1 Solution overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 5.2 Tivoli EIF probe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 5.3 Defining situations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 5.4 Designing business services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 5.5 Defining service level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 5.6 Getting the business status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Appendix A. The Trader application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 Application components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 Portal interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 Front-end J2EE Web application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Java desktop application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 Back-end implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Back-end J2EE servers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 WebSphere Enterprise Service Bus mediation . . . . . . . . . . . . . . . . . . . . . 190 WebSphere Message Broker mediation . . . . . . . . . . . . . . . . . . . . . . . . . . 191 Software requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 Runtime environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 Development environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Appendix B. Additional material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 Locating the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 Using the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 System requirements for downloading the Web material . . . . . . . . . . . . . 198 How to use the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Abbreviations and acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 IBM Redbooks publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 Other publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 Online resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 How to get IBM Redbooks publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 Help from IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Contents v vi Managing an SOA Environment with Tivoli 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. 2008. All rights reserved. vii Trademarks The following terms are trademarks of the International Business Machines Corporation in the United States, other countries, or both: Redbooks (logo) z/OS® Alerts® AIX® Cloudscape® CICS® DataPower® ® DB2® ETE™ IBM® IMS™ MQSeries® MVS™ OMEGAMON® OS/400® Rational® Redbooks® RACF® Tivoli Enterprise Console® Tivoli® WebSphere® The following terms are trademarks of other companies: SAP NetWeaver, SAP, and SAP logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries. Oracle, JD Edwards, PeopleSoft, Siebel, and TopLink are registered trademarks of Oracle Corporation and/or its affiliates. ITIL is a registered trademark, and a registered community trademark of the Office of Government Commerce, and is registered in the U.S. Patent and Trademark Office. Enterprise JavaBeans, EJB, Java, JavaBeans, JDBC, JMX, JNI, JRE, JVM, J2EE, Solaris, Sun, Sun Java, and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Internet Explorer, 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 Managing an SOA Environment with Tivoli Preface Service-oriented architecture (SOA) is a major new trend for application architecture. It allows you to build applications as components as defined by using a Web Services Description Language (WSDL) file. You can implement applications on multiple servers, even on multiple platforms. You can easily modify application components and workflow logic in execution by allowing a flexible application structure. The use of enterprise service bus (ESB) masks the implementation of the client side and the server side. ESB allows you to implement different servers without needing to modifying the client. Or, multiple clients can use the same server implementation. The highly flexible and distributed nature of SOA-based applications is its primary strength and the source of its appeal. However, when problems arise, this flexible nature also causes a greater challenge in pinpointing the source of a problem. SOA also requires a disciplined management effort to ensure that operational changes do not disrupt overall system availability. The IBM® Tivoli® Composite Application Manager (ITCAM) family of products is designed to assist you in managing distributed applications, including SOA-based applications. However, the overall management of a complete SOA management solution requires the use of several tools that work together. Each tool addresses a different aspect of the application. This paper illustrates the management needs for SOA-based applications and demonstrates how Tivoli products can address your application environment needs. The overall solution that we use includes ITCAM for SOA, ITCAM for WebSphere®, ITCAM for Response Time Tracking, OMEGAMON® XE for Messaging, and the Tivoli Business Service Manager solution to address various needs in SOA-based application management. The intended audience for this IBM Redpaper publication cis any services specialist who implements a performance management solution for an SOA-based environment. The team that wrote this paper This paper was produced by a team of specialists from around the world working at the International Technical Support Organization, Austin Center. © Copyright IBM Corp. 2008. All rights reserved. ix Budi Darmawan is a project leader at the International Technical Support Organization, Austin Center. He writes extensively and teaches IBM classes worldwide on all areas of Tivoli and systems management. Before joining the ITSO eight years ago, Budi worked in IBM Indonesia services as a technical lead and solution architect. His current interests are Java™ programming, availability management, business service management, and z/OS® management. Pradeep Nambiar is a Worldwide Technical Evangelist in the IBM Tivoli Business Automation Sales Enablement group. He has over 19 years experience in the IT industry in various areas ranging from graphics systems, networked graphics, IBM Component Broker/WebSphere Application Server system management, business application architecture, design, and development. He is an IBM Certified SOA Solution Designer, IBM Certified WebSphere Enterprise Developer, and IBM Certified Solution Developer in XML and Related Technologies. His current focus is on application management and the automation family of products, including SOA management from IBM Tivoli. He is based in Austin, TX. Prem Lall is a Software Engineer currently assigned to the ITCAM for SOA project where he specializes in the field of Web Services management. He has had over 15 years experience in the IT field. During his 11 years at IBM, he has helped design and implement a variety of software products. He has expertise in front-end, middleware, and back-end development with an emphasis on e-commerce. Among other things, he created end-to-end online banking solutions for IBM clients in the Integrion consortium, he has been part of the WebSphere Application Server development team, and helped create an extensive SOA-based e-File application for the IRS that is currently used by numerous businesses across the country. He holds a Masters of Science Degree in Pure and Applied Mathematics from California State University, Northridge, CA. He also worked as an Actuary, and he has worked in the Atmospheric Physics Division of the NASA Goddard Space Flight Center. Ravinder Gummadavelli is a Software Engineer with IBM Systems Technology Group, in the USA. He has over 10 years of experience in the IT Systems Design and Development field. He holds a Masters in Technology degree in Electrical Engineering from REC, Warangal, India, and a Masters of Science degree in Electrical Engineering from Auburn University, Auburn, AL. His areas of expertise include Systems Design, Development, and SOA. His current interests include SOA and IBM Virtualization offerings. Thanks to the following people for their contributions to this project: Karen Durston, Mark Anderson, Jayne Regan IBM Software Group x Managing an SOA Environment with Tivoli Become a published author Join us for a two- to six-week residency program! Help write a book dealing with specific products or solutions, while getting hands-on experience with leading-edge technologies. You will have the opportunity to team with IBM technical professionals, IBM Business Partners, and Clients. Your efforts will help increase product acceptance and customer satisfaction. As a bonus, you will 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 Comments welcome Your comments are important to us! We want our papers to be as helpful as possible. Send us your comments about this paper or other IBM Redbooks® publications in one of the following ways: Use the online Contact us review IBM Redbooks publications 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 Preface xi xii Managing an SOA Environment with Tivoli 1 Chapter 1. Introduction to SOA management In this chapter, we explain service-oriented architecture (SOA) and walk you through managing an SOA environment. We divide this discussion into: “Introduction to SOA” on page 2 “SOA application principles” on page 2 “SOA constructs and components” on page 4 “SOA governance” on page 5 “SOA management considerations” on page 7 “Users of SOA management” on page 9 “Management needs for the SOA environment” on page 16 © Copyright IBM Corp. 2008. All rights reserved. 1 1.1 Introduction to SOA A service-oriented architecture (SOA) is an architecture that describes a system that is composed of discrete services that interact with clients and accomplish various tasks. Each service contains operations that perform a small unit of work that corresponds to a high level definition of a given task. These services can perform simple tasks, such as accessing data from a database and returning data to a client, or can be part of a workflow that represents a more complex task. A service usually either provides information or facilitates a way to modify it in a certain way. Although Web Services technology is commonly used to implement an SOA, it is not required; in other words, a service does not have to use Web Services constructs or technology. However, most SOAs rely on the standards, practices, and tools that are available with Web Services. Regard SOA as an approach to build distributed systems that deliver application functionality as Web Services to user applications. Properly used, SOA principles can provide a framework for matching business needs with realistic solutions. Web Services is the programmatical interface to a capability that complies with standard protocols, providing the interface technology and delivering platform independency and loose coupling of the transport. SOA is potentially wider in its scope of governing the policies, rules, and common services that enable logical service bus structure for use by authorized consumers internal and external to the enterprise regardless of implementation technology. Also, SOA enables the design and quality of service that can be reused and that conforms to functional and nonfunctional service level agreements (SLAs). Web Services are the foundational interoperability technology, and SOA is the application of the interoperability that implies considerable change in business and IT practices. This magnitude of business and technology change requires a certain level of management in order to successfully reap the benefits from the investment that has been made for the change. In this chapter, we look into the SOA structure and the management requirements that lead to the need for this paper to define the SOA system management environment. 1.2 SOA application principles You can deploy an SOA-based application incrementally and slowly integrate it into an existing environment. Developers have designed SOA scenarios to be 2 Managing an SOA Environment with Tivoli used together or adopted incrementally. There are several well-known SOA patterns, including: Service creation Service connectivity Interaction and collaboration services Business Process Management Information as a service You can apply the SOA design, governance, security, and management across all of these scenarios. Applications in a typical silo architecture build their functionality on top of an existing application stack. In an SOA-based environment, the logical boundary between Web Services consumer and provider is defined by a business function, not by application boundaries (typical for silo architectures): Separation of Web Services interface from its implementation One of the most important aspects of SOA is that it separates a Web Service’s implementation from its interface. A meta-language, such as Web Services Definition Language (WSDL), can be very helpful, because it describes a business interface that a Web Services provider can expose to a client application and other Web Services while concealing the Web Service’s implementation. A WSDL document acts as a server-side descriptor that defines the Web Service’s operations and the messages they use so the client will know how to invoke the Web Service. Web Services consumers view a Web Services simply as an endpoint that supports a particular request format or contract. Web Services consumers are not concerned with how the Web Services executes their requests; they only expect that it will do so according to the defined interface. Implementations can use anything from Java 2 Platform, Enterprise Edition (J2EE™) entities to older code running in a mainframe environment. Loose coupling The exposed interface is purposely “loosely coupled” from the Web Services provider so that implementations can be modified or even replaced (swapped in and out as desired in a plug and play manner), which increases the ability to reuse existing function. Reuse promotes increased performance, reliability, and Quality of Service (QoS), because a common interface can be exposed to many clients regardless of what is underneath. Reusable components do not have to be retested as often as well. Individual Web Services are also loosely coupled, having little or no dependencies upon each other. Web Services must also be stateless (information or state are not preserved from one request to another). Chapter 1. Introduction to SOA management 3 Business impact Client applications in an SOA do not contain business logic; they consume Web Services instead. Therefore, they become much smaller and easier to implement. A shorter time-to-market for new products is an important result for business development. SOA principles in general can help form a stronger connection between the business needs that define the architecture and the software and information systems that implement it. Web Services can be created according to an abstract model that conforms to the needs of the business. If done correctly, an abstraction can drive the concrete very effectively. 1.3 SOA constructs and components Standards have been developed to ensure Web Services technologies conform to common principles. Support for Web Services interoperability, Web Services security, sending attachments using Web Services, and Web Services Management have been defined by organizations, such as W3C, OASIS, and so on. Standards help ensure that Web Services products sold by different software vendors conform to common agreed upon expectations. For example, a user must be able to expect that a Web Services client written using Microsoft® .Net can invoke a Web Services written using Apache Axis deployed on the WebSphere Application Server without any complications if these tools conform to Web Services standards. With the advent of application server technology, Web Services can be distributed across many machines and environments, making it easier to perform scalability, clustering, and load balancing across your enterprise (SOA can ease the transition away from existing systems towards modern application servers and middleware). For example, COBOL and C++ applications that use messaging software, such as IBM MQSeries®, can be phased out in favor of Java applications that use SOAP/Java Message Service (JMS) and message-driven beans (MDBs). SOA-related constructs, such as enterprise service buses (ESBs), business processes, and so on, can add further structure and flexibility to your architecture by providing routing, mediation, and flow management functions. Just as you can hide implementations from a client, transport/protocol layers and message formats can be similarly concealed by the inclusion of an enterprise service bus. SOAP/Java Message Service (JMS), SOAP/HTTP, Remote Method Invocation (RMI)/Internet Inter-ORB Protocol (IIOP), XML/MQSeries, local Java calls, and so on are all supported and transparent to the user. Often, people implement an enterprise service bus by technologies that are found in certain 4 Managing an SOA Environment with Tivoli middleware/infrastructure products, for example, WebSphere Enterprise Service Bus, DataPower®, WebSphere Message Broker, and so on. You can combine discrete Web Services into composite business processes to accomplish more complex business objectives. As part of a business process, individual Web Services can be viewed as activities within a workflow. This facilitates the creation of a business process that can be described by a meta-language called Business Process Execution Language (BPEL). Business Process Execution Language is similar to Web Services Definition Language (WSDL) in that it provides a static definition of a Business Process. Just as with Web Services, the potential for reuse is quite high after these Business Process definitions are created. In recent years, a new method has been introduced to model Web Services in an SOA called the Service Component Architecture (SCA). SCA components are designed to separate implementation details from any business logic so that you can put together an integrated application without knowing its implementation details and make each component interoperate with any other SCA component. Issues, such as security, transactions, and so forth, are resolved in a seamless manner across SCA components. SCA components are often used in business process modeling, because they provide a great deal of flexibility. A mediation is a special type of SCA module. You can insert mediations between loosely coupled Web Services. Introducing mediations between Web Services provides added function for processing messages that are being passed between these Web Services. Mediations intercept and modify messages that are passed between existing Web Services and clients that want to use those Web Services. Mediations are ideal for deployment in an environment that contains an enterprise service bus, because they can reroute and examine Web Services traffic. 1.4 SOA governance It is important to consider both governance and management requirements when planning an SOA. SOA governance is an extension of IT governance that focuses on the life cycle of Web Services and composite applications in an organization’s SOA. SOA governance is related to establishing policies within the context of the activities and constructs associated with SOA that are similar to those that exist for managing and controlling other aspects of IT. Chapter 1. Introduction to SOA management 5 Initially, the concept of SOA governance was applied narrowly to the development and use of Web Services (validating Web Services adherence with specific standards or managing Web Services in the SOA runtime environment). Today, SOA governance spans SOA architecture, as well as the governance of Web Services, across the entire implementation life cycle. Architecture governance and Web Services-level life cycle governance are the two of the main components of SOA governance. For the purposes of this discussion, we will concentrate mainly on the latter. 1.4.1 Web Services life cycle governance The goal of Web Services life cycle governance is to define: Decision rights for the development, deployment, and management of new Web Services Monitoring and reporting processes for capturing and communicating governance results There are four phases of the Web Services life cycle: Modeling: This phase involves incorporating business requirements and objectives into your business design so that the design becomes a specification of business processes that achieve goals and consider assumptions. Assembly: This phase centers around the information systems that will be used to assemble the business design. Typically, an enterprise architect working with a business analyst can convert the business design into a set of business process definitions that are composed of activities. The required Web Services are derived from the activity definitions and business processes from the business process definitions. Deployment: This phase involves creating the environment that will host composite Web Service-based applications and then deploying those applications there. This phase includes identifying resource dependencies for the application, as well as operational conditions, requirements, and constraints that impact the successful deployment and running of the applications. Management: This phase addresses the maintenance of the operational environment and the policies that govern the deployed applications. This phase includes monitoring the performance of Web Services requests and responses and developing a recovery strategy for failures (detecting and quarantining failures and logging them, rerouting traffic around failures and recovering work affected by them, correcting problems and restoring the state 6 Managing an SOA Environment with Tivoli of the system). The Management phase also includes tuning the operational environment to conform to changes in the business design. Because SOA applications are so loosely coupled, they introduce new governance challenges. But with the proper standards, practices, and processes in place, businesses can reap the full benefit of service orientation. Effective SOA governance helps business and IT teams better identify how to achieve most business goals. It also empowers employees by clearly defining their roles and responsibilities. 1.4.2 Web Services life cycle management After you implement the SOA governance framework, you use it in the model, assemble, deploy, and manage phases within the SOA life cycle. With respect to the operational aspects of implementing SOA governance, Web Services life cycle management addresses how Web Services will be developed, deployed, and managed. Web Services life cycle management focuses on the development and deployment of Web Services, while SOA governance supplies the decision rights, processes, and policies for those activities. After a Web Services is deployed, there must be management strategies in place to control and monitor the Web Service. Web Services life cycle management is subject to the business design created within the governance stage that ensures that reuse and cost reduction are achieved. 1.5 SOA management considerations Implementing SOA-based applications introduces new IT management challenges. Because Web Services development tools make it easy to create services within the SOA framework, there is a danger that services can proliferate and become uncontrollable within the SOA enterprise, if the growth is not managed properly. When systems are composed of multiple independent business processes, the relationships between these processes and the applications executing in the IT layer are not always obvious. For example, consider verifying the correctness of a workflow in a system or locating a performance bottleneck. While these actions are difficult in smaller systems and might become impractical to manage as the size and complexity increases in larger systems. Simply stated, SOA management includes solutions and software for managing and monitoring composite applications and the infrastructure that supports it across the entire architecture. Chapter 1. Introduction to SOA management 7 Considerations associated with managing an SOA environment include: SOA management is needed on the following scenarios: – Defining your Web Services in a way that they can be easily managed as resources (Service Creation) – Defining how Web Services relate to each other (Service Connectivity and Interaction) – How to manage your Web Services within their deployment environment (Governance/Management) The information that is needed from the management system: – Capturing data that can be used to evaluate whether nonfunctional and quality of service requirements as defined by business needs are supported (reliability, scalability, cost, and so on) – Defining which Web Services/Activities to group into Business Processes/Workflows to accomplish a business goal (Collaboration Services) – Define service level agreements based on data that can be easily monitored (average response time, maximum message size, and so on) – Using standards whose enforcement can be monitored – Evaluating whether your Web Services are secure (Security) The management environment itself must be properly evaluated. Considerations about the management technology are: – How to display Monitored and Registered information to users (using a console, such as the Tivoli Enterprise Portal (TEP) or the Tivoli Enterprise Console® (TEC) – What technology and products to use to monitor various resources (examples include Simple Network Management Protocol (SNMP), Java Management Extensions (JMX™), Java API for XML-Based RPC (JAX-RPC), Java API for XML-Based Web Services (JAX-WS), and so on) – How can you manage infrastructure that employs tiers and clustering. Ensuring that both Web Services providers and consumers can be monitored. Also, resolving how to display interactions if only certain things are managed (how do you display unmanaged clients and Web Services that are part of the same flow) – What are some of the various user types that you will need monitor and administer your applications (administrators, operators, and so on) There are number of metrics that you must monitor for a holistic application health view in an SOA environment. 8 Managing an SOA Environment with Tivoli These metrics include: Service response time Service request message size Service faults Real-time service performance metrics Application server health where the service is deployed Health of dependent components, such as database, messaging resources, and so on Service performance metrics for historical purposes Service request and response message data These metrics help measure service level agreements (SLAs) for applications. You can use these metrics to debug performance bottlenecks in applications. You can also use these metrics to automatically take corrective actions or initiate failover steps to maintain service availability when the primary service provider goes down or is not performing to meet the SLAs. IBM Tivoli Composite Application Manager (ITCAM) for SOA and other ITCAM offerings provide all the necessary metrics to keep the applications in an SOA environment healthy and resilient. 1.6 Users of SOA management There are several types of users that use SOA management and need to interact with the SOA-based environment. In this section, we discuss the access patterns and the needs of those users in relation to SOA management. With any management software, a number of various personnel can be potential users. You can have multiple user roles, and each role can be defined in part by the user’s current job responsibilities. For example, an application developer and a performance tester most likely are interested in viewing varying pieces of information at different times and thus might use the same console to view different information. Depending on their responsibilities, they might even have different levels of access to various views. Ultimately, the roles and responsibilities that are defined for various users will depend greatly on how a company defines their architecture and how they want to manage it. Chapter 1. Introduction to SOA management 9 These are possible user roles for SOA management. The primary users are likely to be common to most organizations. There can also be secondary and provisional users as well: Note: We consider the user roles for managing the performance and the availability of an SOA-based application. We do not include security management and its roles in this paper. Primary users: These users are the most common in most organizations. They have a critical need to use the SOA management tools for their day-to-day jobs: – Operator – Middleware and application subject matter expert Secondary users: These users have supportive roles that require occasional access to the SOA management tools. Although the tools are not a necessity for them to perform their work, the tools greatly enhance their productivity: – Performance analyst – System administrator – Web Services application developer Provisional users: These users also need access to SOA management only as the need arises. These roles use SOA management rarely, and the tools do not perform a critical role: – Enterprise system management architect – Business manager or executive 1.6.1 Operator An operator or system operator is the first level of IT support personnel that might detect system, application, or performance problems. The operator or system operator job is directly related to ensuring the health of the IT environment and attaining the appropriate service level for IT operation. The primary interaction for an operator with the SOA management environment relates to: Monitoring for potential problems and correcting them Ensuring that they adhere to the system SLA Providing initial troubleshooting of a problem, and, if possible, fixing it Escalating a problem to the next level of support or subject matter expert for resolution if necessary 10 Managing an SOA Environment with Tivoli To accomplish these objectives, an operator can perform monitoring by using system management tools. The tools can provide views that the operator can use to detect color-coded conditions or troublesome values in a measurement. The tools can also provide automatic monitoring that generates events or alerts for the operator to address. In most environments, the operator must rely on alerts and events that happen on the environment instead of trying to navigate the tools to uncover problems. Using the Tivoli tools, IBM Tivoli Monitoring provides a facility for the operator to get alerts and navigate views in order to problems in the Tivoli Enterprise Portal. An alert might be sent to Tivoli Enterprise Portal to signal that a problem has occurred. On other occasions, uncovering the problem might require investigation by the operator. In either case, an operator must examine metric data to see if the operator can make a preliminary diagnosis of the problem. Event monitoring is represented by situations. ITCAM provides situations that come predefined (ready to use) or that can be modified by using the situation editor. Breaching an SLA can fire a situation to alert the operator of the problem. The situation event console displays information about these situations. Figure 1-1 shows the situation event console. Figure 1-1 Situation event console An operator can also look at the results of queries that are performed against Tivoli Enterprise Monitoring Agent. These queries can be either predefined or created by using the Tivoli Enterprise Portal query editor. The system or product administrator loads the predefined queries into the Tivoli Enterprise Portal Server. An administrator will often use the query editor to define and create queries for display on the Tivoli Enterprise Portal. 1.6.2 Middleware or application subject matter expert The subject matter experts on the application or the middleware perform the in-depth problem determination. They might respond to problems that were initially uncovered by an operator. For a composite application and specifically for the SOA-based application, they must be able to see and trace the Chapter 1. Introduction to SOA management 11 application beyond just the SOA interface and into the component level or a breakdown of the transaction. Subject matter experts on the application or the middleware perform these in-depth diagnostics from several sources, such as: Investigating the Web Services flow from one application server to another Rerouting and modifying mediation and the Web Services flow Collecting response time breakdowns using correlation tracking Performing a method trace for the J2EE application The subject matter experts on an application or the middleware perform these functions by using a combination of ITCAM solutions, such as: ITCAM for SOA ITCAM for WebSphere and ITCAM for J2EE ITCAM for Response Time Tracking 1.6.3 Performance analyst A performance analyst inspects reports about availability and response time for various applications, including applications deployed in an SOA environment. If the metrics indicate that a threshold is close to being reached, the performance analyst consults a trend analysis of how the application has been performing over time. The conclusion can indicate a sudden spike in activity or a increasing trend over time, which might mean you need to expand your capacity. The performance analyst collects this information from various data sources from the monitoring system historical data. The Tivoli solution in the IBM Tivoli Monitoring environment is based on Tivoli Data Warehouse. The Tivoli Data Warehouse collects historical data from various Tivoli Enterprise Monitoring Agents. This data can be reported and analyzed by using the reporting tools that report into a DB2® database. 1.6.4 System administrator The system administrator is a user with administrative privileges that performs the day-to-day tasks of maintaining the management system. The system administrator tasks include granting access to users, implementing a monitoring solution, extending the monitoring solution by using a standard procedure, and so on. 12 Managing an SOA Environment with Tivoli The system administrator has the authority to modify the system, such as installing a new feature or a patch to the monitoring system, thus, allowing interaction with the management of the SOA solution. The system administrator can install, configure, and maintain all the tools that a subject matter expert needs. A system administrator can also configure, start, and stop agent processes, or perhaps even reconfigure the entire monitoring environment. System administrator interactions include: Managing situations, workspaces, and actions in Tivoli Enterprise Portal that are related to the SOA application Administering users, such as Tivoli Enterprise Portal users. Using the Administer Users window for setting authorities to specific features, specifying access to applications, and specifying access to Navigator views. Selecting the features in Tivoli Enterprise Portal to provide access to each user and to set the specific permissions granted to each user (see Figure 1-2 on page 14) Chapter 1. Introduction to SOA management 13 Figure 1-2 Administer user dialog 1.6.5 Enterprise system management architect The system management architect interacts with the business side of the company and is familiar with the company’s business processes. An architect must understand the model for the SOA-based application, including Web Services, SCA, and business process choreography to model the architecture of the business. The architect observes as the model is built and then implemented into system management. The architect must oversee the system management implementation based on the business model and ensure that the management model is kept up-to-date. The architect must review the rollout of the new application and the change of the mediation rule to ensure that the monitoring model is still current and meaningful. 14 Managing an SOA Environment with Tivoli The architect utilizes the WebSphere Services Registry and Repository to manage the Web Services life cycle and can use the discovery through Tivoli Common Object Repository to monitor new services and the new model. You can do this by displaying the ITCAM for SOA Services Overview view to see the difference between which Web Services have been observed and which Web Services are registered. If you notice that certain observed Web Services are not registered, then you can update the registry. 1.6.6 Web Services application developer The application developers are responsible for coding Web Services applications. After the developer’s Web Services are deployed, the developers must be available to fix problems. Depending on the severity of the problem, the developers usually have a small amount of time in which to complete the fix, and then they run tests to verify that the problem has been resolved. A typical scenario is a new mediation that needs to be added to manage traffic for an existing Web Service, because the system performance has been unexpectedly affected. The system management tools can assist the developer to identify the potential bottlenecks and performance problems in test system. The developers need to use the tools to test fixes for possible performance bottlenecks before the fixes go into production. After the build with the fix is installed, the developers observe whether the performance problem has been alleviated. 1.6.7 Business executives The business executives care about their business processes and the applications that support the business. The management solution must allow the business executives to see the application health based on either the SOA performance or another metric. The business executives need an interface with minimum technical detail. The business executives need a simple but meaningful view of the business process health and possibly the SLA attainment. Chapter 1. Introduction to SOA management 15 1.7 Management needs for the SOA environment Based on the user roles and the users’ needs in 1.6, “Users of SOA management” on page 9, the management needs for the SOA environment are: Understanding the current performance of the SOA application in real time in order to proactively identify any potential outage and problem Collecting historical trends of SOA performance Building structure about the calling pattern of the Web Services Understanding the structure and life cycle of Web Services Performing “deep dives” and diagnoses on the SOA-based application Modifying the routing and data analysis of the SOA Web Services calls Showing the business impact of Web Services call performance problems or outages Managing security of the SOA-based application. We do not discuss security management in this paper. See Understanding SOA Security Design and Implementation, SG24-7310. In a production environment, it is vital to have sufficient information for the management system as long as collecting this information does not adversely affect the managed environment. To manage an SOA-based application, you need to have information about the Web Services contained within it and the environment on which they are deployed. You can observe data on Web Services by monitoring it or from static definitions, such as WSDL documents that define a Web Service. Data on Services, ports, and operations is exposed, as well as details about the server (deployment environment) upon which the data runs (application servers, such as WebSphere Application Server, WebLogic, JBoss, DataPower, and so on). As with other software components, you must gather information throughout the Web Service’s life cycle (see section on 1.4.2, “Web Services life cycle management” on page 7). 1.7.1 Web Services metric data collection You can collect metrics throughout the life of a Web Service. These metrics are usually numeric information that you can use to indicate or calculate the health and performance of Web Services. You can collect these metrics by using a polling process or instrumenting the application to report the metrics. Metrics that are collected at the Web Services operation level include average response time, average message size, number of messages, number of faults, 16 Managing an SOA Environment with Tivoli and so on. The metrics can provide valuable information about SOA and Web Services. You need to be able to view real-time data, as well as historical data, corresponding to a specific time interval. You can collect metric data by using a management API, such as Java API for XML-Remote Procedure Call (JAX-RPC) handlers, which make Web Services into manageable resources. Data collection using the JAX-RPC handler happens when when either of the following events occurs: A client application invokes a Web service, which is referred to as a client-side interception. The Web Services request is received by the hosting application server, which is referred to as a server-side interception. The data can be stored in log files for later analysis, sent to a management server, or loaded into a repository. 1.7.2 Web Services troubleshooting Troubleshooting Web Services includes monitoring the health of the infrastructure that supports the Web Services, such as the underlying middleware. Think of Web Services as manageable resources in the system management environment. In this way, you can determine whether policies are being enforced in SOA and whether SLAs are achieved or not. Data on throughput, availability, workload, transactions, and so on can be gathered to help you determine if your current topology is optimal, given the demands placed on your enterprise. Business processes are managed indirectly in that the Web Services that make up the business processes are managed resources. You might also consider a SOA management standard, such as Web Services Distributed Management (WSDM) from Oasis. See: http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsdm 1.7.3 Displaying data You must be able to display Web Services entities, such as the deployed server, operation, namespace, relationship, and other attributes, to users. You can present this information in a tabular or graphical form, and you need to provide drill-down capability for the user to see details about the Web Service. A user must also be able to define events and alerts to monitor an SOA application. These alerts allows users to be notified when a certain condition Chapter 1. Introduction to SOA management 17 occurs. Alerts® allows the user to not have to monitor a particular view all the time. 1.7.4 Mediation management Mediation is a special type of SCA module. You can insert mediations between loosely coupled Web Services. Introducing mediations between Web Services provides added function for processing messages that are being passed between these Web Services. Mediations intercept and modify messages that are passed between existing Web Services and clients that want to use those Web Services. Managing mediations includes the ability to filter mediations or reroute Web Services calls based on monitoring metrics. You can perform this function on a mediation platform, such as WebSphere Enterprise Service Bus or WebSphere Message Broker. 18 Managing an SOA Environment with Tivoli 2 Chapter 2. Tivoli application management products in this chapter, we provide an overview of the various Tivoli solutions that you can use to manage a service-oriented architecture (SOA) environment. Tivoli has a set of solutions to manage composite application. In a way, you can regard SOA as a special composite application environment. We discuss: “ITCAM for SOA” on page 20 “ITCAM for WebSphere and ITCAM for J2EE” on page 26 “ITCAM for Response Time Tracking” on page 33 “OMEGAMON XE for Messaging” on page 41 © Copyright IBM Corp. 2008. All rights reserved. 19 2.1 ITCAM for SOA in this section, we describe IBM Tivoli Composite Application Manager (ITCAM) for SOA V6.1. We discuss: “Product features” on page 20 “Product components” on page 21 2.1.1 Product features ITCAM for SOA manages service-oriented architecture (SOA). It can monitor, manage, and control the Web Services layer of the IT architecture, while drilling down to the application or resource layer to identify the source of bottlenecks or failures and to pinpoint services that take the most time or use the most resources. ITCAM for SOA: Provides service monitoring views in Tivoli Enterprise Portal. ITCAM for SOA workspaces consist of data collector-based workspaces: – Performance Summary: Shows the response time information for Web Services calls as viewed from the client or the server – Message Summary: Shows the message statistics, including the volume and size of message information – Fault Summary: Shows failure analysis for Web Services calls Other workspaces for each agent are: – Service Management Agent Environment: Provides a summary of the Web Services metrics for all data collectors – Service Management Agent: Shows the agent configuration summary, data collectors, monitoring profiles, and filters – Mediation Configuration: Shows configuration entries for mediation on Service Component Architecture (SCA) – Message arrival: Shows the message arrival rate and events based on the message arrival critical situation Leverages Tivoli Enterprise Portal situations to check thresholds. ITCAM for SOA provides predefined situations that you need to tailor. The predefined situations concern: – Number of messages received by a service within a time window – Size of the messages Provides basic mediation support with the ability to filter or reject Web Services call messages from a particular client or service. It can log request and response messages for analysis. 20 Managing an SOA Environment with Tivoli Offers heterogeneous platform coverage: – Support for IBM WebSphere Application Server, CICS® Transaction Server, Microsoft .NET, JBoss, BEA WebLogic, and other SOA clients and servers – Target IBM Enterprise Service Bus platforms: WebSphere Application Server Versions 5.x and 6.x and WebSphere Business Integration Server Foundation V5.1.1 Displays a list of services and operations that are monitored in the environment Leverages Tivoli Enterprise Portal workflow and policy editor for threshold-triggered action sequences Offers the ability to include services-layer views in Tivoli Enterprise Portal The context-rich views and inter-workspace linkages in Tivoli Enterprise Portal enables users to drill down to IT resources to identify Web Services bottlenecks and failures. By providing built-in and extensible alerts, situations, and workflows, users can create powerful automated mediation scenarios using the Tivoli Enterprise Portal. The service metrics, alerts, and automation workflows that are provided by ITCAM for SOA and other Tivoli products can be displayed in Tivoli Enterprise Portal with the cross-workspace linkages to provide a rich and multilayered source of information. This information can help to reduce the time and skills that are required for problem root-cause analysis and resolution. ITCAM for SOA includes the Web Services Navigator, a plug-in to IBM Rational® Application Development and other Eclipse-based tools. It provides a deep understanding of the service flow, patterns, and relationships for developers and architects. The Web Services Navigator uses data from the IBM Tivoli Monitoring V6.1 Tivoli Data Warehouse or from the ITCAM for SOA log files using the Log Assembler tool. In Version 6.1, IBM Tivoli Composite Application Manager for SOA contains a new component for mediation service management based on SCA. It enables you to modify several of the mediation service settings dynamically. Mediation is a facility that sits between Web Services requester and Web Services provider that allows manipulation of Web Services messages, includes format translation, filtering, and enrichment. 2.1.2 Product components ITCAM for SOA manages Web Services. Web Services can be viewed as a remote processing facility that is defined through the use of Web Services Chapter 2. Tivoli application management products 21 Definition Language (WSDL). Usual access uses SOAP over HTTP. Internally, Web Services are implemented using the Java API for XML-based Remote Procedure Call (JAX-RPC). ITCAM for SOA installs itself as the JAX-RPC handler to capture and manage Web Services calls. ITCAM for SOA consists of these logical components: Web Services data collector that acts as the JAX-RPC handler and intercepts Web Services calls to collect statistical information and write to a log file. Tivoli Enterprise Monitoring Agent that collects information from all of the data collectors on a machine and forwards them to Tivoli Enterprise Monitoring Server. We discuss the data collectors and Tivoli Enterprise Monitoring Agent in “Monitoring agent data collector” on page 22. An Eclipsed-based viewer that processes log files that are generated by the Web Services data collector. It generates visual representations of various characteristics of monitored Web Services. See “IBM Web Services Navigator” on page 24. Mediation SCA tools that enable partial monitoring of SCA within WebSphere Enterprise Service Bus. See “Managing SCA mediation” on page 25. Monitoring agent data collector ITCAM for SOA works with several application server environments: IBM WebSphere Application Server V5.1.0.5 with PQ89492, V6.0, and V6.1 IBM WebSphere Business Integration V5.1.1.1 IBM WebSphere Process Server V6.0.1 IBM WebSphere Enterprise Service Bus V6.0.1 IBM CICS Transaction Server V3.1 and later BEA WebLogic Server V8.1.4 Microsoft .NET V1.1 with Service Pack 1 and V2.0 JBoss V4.03 WebSphere Community Edition V1.0 and its service packs SAP® NetWeaver V6.40 with Service Pack 9 or later service packs IBM WebSphere DataPower SOA Appliance Firmware V3.5.0.5 or later Figure 2-1 on page 23 shows the ITCAM for SOA data collection conceptual architecture. 22 Managing an SOA Environment with Tivoli ITCAM for SOA Monitoring agent Application Server configuration Web Services Data handler or collector extension Data collector adapter Tivoli Enterprise Monitoring Agent log Tivoli Enterprise Management Server Tivoli Enterprise Portal Server Figure 2-1 ITCAM for SOA structure The monitoring agent data collector is implemented as a JAX-RPC handler or service extension that is installed into the application servers that host the monitored Web Services. The handler is given control when either of the following events occurs: A client application invokes a Web service, which is referred to as a client-side interception. The Web Services request is received by the hosting application server, which is referred to as a server-side interception. The monitoring agent records and collects monitored information into one or more local log files. The information is then transferred to Tivoli Enterprise Monitoring Server and can be archived into a historical database for later retrieval with IBM Web Services Navigator. ITCAM for SOA V6.1 focuses on the SOAP engine of IBM WebSphere Application Server, WebSphere Service Integration Bus, Microsoft .NET Framework, and BEA WebLogic. The Web Services data collector supports both Java 2 Platform, Enterprise Edition (J2EE) application client and server container environments, because JAX-RPC handlers are supported only by these environments. The Web Services must be compliant with JSR-109 specifications. To ensure the proper operation of the JAX-RPC handler, verify that the client applications are written according to the conventions at the following location: http://www.jcp.org/aboutJava/communityprocess/final/jsr109/ Chapter 2. Tivoli application management products 23 IBM Web Services Navigator IBM Web Services Navigator is an Eclipsed-based tool that is used to visualize Web Services in an SOA environment. It provides a graphical display of: Web Services transaction flows Service topology Flow patterns Figure 2-2 illustrates Web Services Navigator concepts. Metric log Data collector Metric log Data collector TDW warehouse Tivoli Enterprise Monitoring Agent Metric log Data collector Web Services Navigator Log Assembler Metric log Data collector Combined metric log Figure 2-2 Web Services Navigator The Web Services Navigator is a log-browsing tool intended for offline analysis of SOA Web Services. The Web Services Navigator provides four primary views: Statistic tables: – Message statistics Per-message statistics, including requestor, provider, send/receive time, and message size – Invocation statistics Response time, network delay, message size, and more for each Web Services invocation – Transaction statistics Statistics for aggregated transactions, including elapsed time, number of faults, number of machines that this transaction involves, and number of invocations comprising this transaction 24 Managing an SOA Environment with Tivoli – Pattern invocation statistics Statistics for discovered patterns, including operation names, number of occurrences, response times, and message sizes Note: To see the message content from the ITCAM for SOA metric log: 1. Set a monitor control higher than “none” for any or all of the Web Services being monitored. 2. Include the subsequent xxxx.content.log when running Log Assembler. Service topology view This view is a graphical representation of the monitored Web Services that displays aggregated information and details about the relationships between Web Services. Transaction flows view The transaction flows view displays Universal Markup Language (UML) style sequence diagrams. The transaction flow shows a chronological view of each transaction, the flow between the various Web Services over time, and the topology and statistics for each transaction. You can zoom in on the view to see the details of individual transactions. Flow pattern view The flow pattern view is a visual representation of the aggregated pattern of transactions represented in the log file. The view also represents each pattern as a distinct sequence of Web Services calls and displays the frequency of each pattern. Managing SCA mediation WebSphere Process Server and WebSphere Enterprise Service Bus introduce a new way to model services in an SOA, which is called the Service Component Architecture (SCA). SCA is designed to separate business logic from its implementation so that you can focus on assembling an integrated application without knowing implementation details. There is a special type of SCA component, which is called a mediation. In an SOA, where services are loosely coupled rather than connected directly to each other, mediations can be inserted between the services, where they can intercept and process messages that are passed between the services. Mediations can process these messages and take appropriate actions, such as reroute, log, or transform a message, or create a notification or an event. IBM Tivoli Composite Application Manager for SOA provides the ability to dynamically enable and disable the deployed mediation functions. This facility is Chapter 2. Tivoli application management products 25 available for applications in the WebSphere Enterprise Service Bus or WebSphere Process Server runtime environment. The invocation is provided in a new workspace in Tivoli Enterprise Portal called the Mediation Configuration workspace. The actions are: ConfigureMediation_610 DeletePrimitiveProperty_610 2.2 ITCAM for WebSphere and ITCAM for J2EE The IBM Tivoli application management solution for J2EE application servers comes in the form of ITCAM for WebSphere and ITCAM for J2EE. These two products share the same managing server. ITCAM for WebSphere and ITCAM for J2EE observe and report on the health of J2EE-based applications. They track the progress of applications as they traverse through J2EE application servers, middleware adapters and transports, and database calls, and on to back-end systems, such as CICS or IMS™, to extract business data or to invoke mainframe business processes. Tracking applications produces request traces, where the events in a request’s life are recorded and stored in a monitoring repository database. ITCAM for WebSphere and ITCAM for J2EE capture the CPU and the elapsed internal times when events are called and when they are exited, measuring as far down as the CPU times consumed and the elapsed internal times charged to individual methods in J2EE classes. The methods or events taking the most time are marked as an application’s parts that deserve attention for runtime improvement studies and code optimizations. ITCAM for WebSphere manages and monitors WebSphere-based application servers, while ITCAM for J2EE manages and monitors the following J2EE containers: JBoss Tomcat SAP NetWeaver® BEA WebLogic Server Oracle® Application Server Apache Web Server Sun™ Java™ System Web Server Microsoft IIS WebSphere Application Server CE ITCAM for WebSphere and ITCAM for J2EE do not need modification of any J2EE or mainframe application code. The data collectors use the following principal data sources: Java Virtual Machine Tool Interface (JVMTI) interfaces 26 Managing an SOA Environment with Tivoli and primitives. ITCAM for WebSphere also uses WebSphere Performance Management Interface (PMI) and z/OS System Measurement Facility (SMF) 120 records. The monitoring data is collected and analyzed to offer a wealth of information about the health of J2EE applications and their servers. These products collect and report many system-level performance metrics about J2EE application servers. The status of the servers and their resources (particularly at vital checkpoints, such as CPU utilization), memory usage, and the status of internal components, such as database connection pools, JVM™ thread pools, EJB™ usage, and request processing statistics, can be extremely important in locating real-time problems with J2EE applications. ITCAM for WebSphere and ITCAM for J2EE bring attention to these critical indicators with real-time, graphical displays of their values and their trends over spans of time. 2.2.1 Architecture and interconnection ITCAM for WebSphere and ITCAM for J2EE are distributed performance monitoring applications for application servers. The components are connected through TCP/IP communication. The central component of ITCAM for WebSphere and ITCAM for J2EE, the managing server, is its heart and brain. It collects and displays various performance information from application servers. Chapter 2. Tivoli application management products 27 The application servers run the data collector, which is a collecting agent that runs in the application server and sends monitoring information to the managing server. These data collectors operate independently of each other. Figure 2-3 shows the overall architecture of ITCAM for WebSphere and ITCAM for J2EE. Browser interface ITCAM for WebSphere ITCAM for J2EE Managing Server I Tivoli Enterprise Monitoring Agent Application servers with Data collectors ise pr ent er Tivoli Enterprise nt g Ag E li in Management Server vo itor i T on M and Tivoli Enterprise Portal Server Web Servers Figure 2-3 ITCAM for WebSphere and ITCAM for J2EE architecture The application monitor consists of two major parts: the managing server and the data collectors. A data collector agent runs on each monitored application server, whether J2EE, CICS, or IMS, and communicates essential operational data to the managing server. Unique sampling algorithms maintain low CPU and network processing while providing application-specific performance information. The managing server consists of several Java-based components that provide the environment to collect and present management data. 2.2.2 The managing server ITCAM for WebSphere and ITCAM for J2EE use one common managing server that controls and coordinates data collectors for J2EE, CICS, and IMS servers 28 Managing an SOA Environment with Tivoli that run applications. The difference between ITCAM for J2EE and ITCAM for WebSphere is the platform support for the data collectors. These data collectors can run independently. The managing server uses the following software: Managing server database (DB2 UDB or Oracle on Sun Solaris™) for the relational data repository WebSphere Application Server to run the visualization engine Web console application An optional Web server, such as IBM HTTP Server The managing server overseer components, which are a set of Java-based processes The overseer components are the controlling logic for the managing server. For the overseer components: Kernels control the managing server. There are always two copies of the kernels running on an ITCAM for WebSphere and ITCAM for J2EE managing server for redundancy and failover. The kernels register components as they join the managing server, periodically renew connections and registrations with components and data collectors, and collect server and component availability information. Publishing servers receive application and system event data from the data collectors, gather and compute request-level information about performance metrics such as response times, and implement the trap monitoring and alerts features. Archive agents receive monitoring data from the publish servers and store the monitoring data in the repositories of ITCAM for WebSphere and ITCAM for J2EE. The global publishing server collects information from the publish servers and correlates all parts and pieces of multiserver requests, such as requests from J2EE servers to execute CICS or IMS programs. The message dispatcher is a conduit for messages from ITCAM for WebSphere and ITCAM for J2EE using e-mail and Simple Network Management Protocol (SNMP) facilities. Chapter 2. Tivoli application management products 29 The visualization engine is a Web-based GUI with access to graphics, ITCAM for WebSphere and ITCAM for J2EE performance reports, real-time views of different slices of monitoring data, and ITCAM for WebSphere and ITCAM for J2EE internal commands and event-driven functions. The visualization engine runs on a WebSphere Application Server. Publish traffic Snapshot traffic Figure 2-4 shows the conceptual relationship among the components. Global Publish Server (SAM) Publish Server (PS) Message Dispatcher (MD) Archive Agent (AA) Kernel (KL) Provide services on: - Lookup - Registration - Recovery - Configuration Visualization Engine Provide services on: -Administration -Availability -Problem Determination -Performance Management OCTIGATE database Figure 2-4 Kernel components At the managing server, monitoring data is prepared for real-time displays within the monitoring console and is inserted into the OCTIGATE data repository. These are extremely resource-intensive operations. Having this processing in the managing server isolates this from other the application servers, thus reducing the footprints of ITCAM for WebSphere and ITCAM for J2EE in the monitored systems. This design also helps keep the data collectors’ processing at levels low enough for 24x7 production system monitoring. Data from the data collectors is collected by the publishing server and then stored in the OCTIGATE database by the archive agent. The visualization engine reads the database to present data through the Web console, and snapshot information, such as lock analysis and in-flight transactions, is retrieved directly from the data collectors. 2.2.3 J2EE and WebSphere data collectors The data collectors run inside the application servers. They use native system services, and they are tailored for the particular environments where they 30 Managing an SOA Environment with Tivoli execute. The data collectors for z/OS systems are written to take advantage of services on z/OS, such as MVS™ Cross-Memory Services and address space fencing, which are not available on distributed systems. Data collectors are configured as a multithreaded process. They consist of the following agents: Command agent The command agent collects requests from other components for information about Enterprise Java Bean (EJB) invocations, database connection pools, thread pools, stack traces, memory analyses, and heap dumps. Event agent The event agent provides data to the publish servers according to polling frequencies. This data includes system initialization data, application request-level data, and application method-level data. Secondary collector The optional secondary collector provides support for displaying data in Tivoli Enterprise Portal for collecting WebSphere Application Server and other J2EE application server performance metrics. This component communicates with Tivoli Enterprise Monitoring Agent using a TCP/IP port. Collectively, these agents and other data collector routines unleash the probes, package the monitoring data into Java formats for the managing server, and deliver the data to the managing server. The data collectors send the probes into the application servers to analyze the applications’ performance. The probes collect monitoring data and feed it to transport routines that in turn route the data to the managing server. The managing server processes it for display in the Web console and for storage in the OCTIGATE repository, which relieves the processing burden of ITCAM for WebSphere and ITCAM for J2EE from the application servers as much as possible. The data collectors and probes are not designed to analyze or interpret data, but to collect it and route it as quickly as possible to the managing server where the analysis is performed. The data sources that are employed by ITCAM for WebSphere and ITCAM for J2EE are: Java Virtual Machine Tools Interface (JVMTI) garbage collection data, method trace, stack trace, CPU time, and heap dump Java Management Extensions (JMX) system resources System Management Facilities (SMF) system resources (z/OS only) PMI system resources (WebSphere only) Chapter 2. Tivoli application management products 31 OS services, platform CPU, and its environment Byte Code Modification (BCM) instrumentation of some classes The data collector in the J2EE server runs as a custom service called am in a distributed architecture and “-” for z/OS architecture. Figure 2-5 shows the conceptual data collector structure of the distributed WebSphere data collector. WebSphere JVMTI JMX Custom Service am Publish data KYN bcm PMI Tivoli Enterprise Monitoring Agent To TEMS Figure 2-5 J2EE data collector structure 2.2.4 Tivoli Enterprise Monitoring Agent The ITCAM for WebSphere and ITCAM for J2EE Tivoli Enterprise Monitoring Agent can forward monitoring information to Tivoli Enterprise Monitoring Server for monitoring using Tivoli Enterprise Portal. There is an additional component at Version 6.1, Tivoli Enterprise Monitoring Agent for Web Servers. Web server monitoring no longer uses the managing server’s polling agent, but uses Tivoli Enterprise Monitoring Agent for Web Servers instead. The existing Tivoli Enterprise Monitoring Agent for WebSphere and J2EE provides application server performance information, while the new Tivoli Enterprise Monitoring Agent for Web Servers displays Web server performance information. 32 Managing an SOA Environment with Tivoli 2.3 ITCAM for Response Time Tracking ITCAM for Response Time Tracking Version 6.1 is an evolution from IBM Tivoli Monitoring for Transaction Performance V5.3. It inherits the major components and functions of IBM Tivoli Monitoring for Transaction Performance V5.3. Tivoli Enterprise Management Agent RTT Store and forward agent RTT management agent RTT management agent FIREWALL RTT Management server FIREWALL Figure 2-6 shows the ITCAM for Response Time Tracking components. RTT Store and forward agent RTT management agent RTT management agent RTT management agent Figure 2-6 ITCAM for Response Time Tracking components Basically, ITCAM for Response Time Tracking is controlled from the management server. The management server provides a centralized repository of policy, configuration, and data for the ITCAM for Response Time Tracking environment. The rest of ITCAM for Response Time Tracking consists of the management agents. The management agents perform performance and response-time data collection on behalf of the management server. The agent can perform response time collection from an application server or perform robotic simulation of a transaction for measuring response time. The management agent functions as a single agent that can have different monitoring components deployed on it to perform various functions. The management server and management agent typically operate in an unrestricted port environment. When there is a firewall between them, they restrict the port usage to communicate. The firewall requirement typically requests that they use a single communication port to talk back and forth. This is where the store and forward agent comes in. It bundles the management Chapter 2. Tivoli application management products 33 communication between the management server and management agent to use a single port to pass through the firewall. The store and forward agent can be cascaded, so in this sense, there can be a chain of store and forward agents to pass through multiple layers of firewalls. A special management agent resides on z/OS machines. The management agent on z/OS machines has the transaction server component activated to receive performance information from the CICS and IMS data collector. In ITCAM for Response Time Tracking V6.1, information from the management server can be forwarded to Tivoli Enterprise Monitoring Server for display in Tivoli Enterprise Portal. Use the Tivoli Enterprise Monitoring Agent for ITCAM for Response Time Tracking to have this capability. We discuss the components of ITCAM for Response Time Tracking in the following sections: “The management server” on page 34 “Store and forward agent” on page 36 “Management agents” on page 37 “Tivoli Enterprise Monitoring Agent” on page 41 2.3.1 The management server The ITCAM for Response Time Tracking management server consists of a J2EE enterprise application that accesses a DB2 repository using JDBC™. The management server runs on WebSphere Application Server. The application server can be installed on a stand-alone WebSphere Application Server or on a clustered environment. Figure 2-7 shows a stand-alone management server. Management server WebSphere Application Server DB2 Figure 2-7 Stand-alone management server 34 Managing an SOA Environment with Tivoli Figure 2-8 shows the clustered management server. It consists of WebSphere Edge Server for load balancing, the management server on several clustered WebSphere Application Server Node Deployment systems, and the database installed on a separate database server. WebSphere Node Deployment Cluster WebSphere Application Server WebSphere Edge Server DB2 WebSphere Application Server Figure 2-8 Clustered management server Clustered management server benefits include: Separating the servers reduces the processing burden of a single machine. Clustered management server allows failover for failure in WebSphere Application Server, so the other management server in the cluster can take over the work. Some disadvantages are: Additional communication traffic between machines More difficult setup; refer to IBM Tivoli Composite Application Manager for Response Time Tracking V6.0: Installing a Management Server in a WebSphere Cluster Environment, SC32-1804, for installation instructions Overall, regardless of the management server types, the management server provides the following functions: Managing management agents and their deployed components; management agents must sign in to the management server and retrieve all required policies when it is started initially Chapter 2. Tivoli application management products 35 Storing policies for management agent operation, including discovery policies, listening policies, and playback policies, which are maintained using the Web interface or the new command-line interface Managing a schedule repository; note that the management agent performs the schedule application Performing data collection from various management agents and storing them in its repository. Maintaining users and roles for accessing the Web interface Serving the Web interface 2.3.2 Store and forward agent The store and forward agent acts as an intermediary between the management server and the management agent. Figure 2-9 shows its overall processing. RTT Management server 1976 Store and Forward agent 9081 Caching Proxy 80 RTT Management agent Figure 2-9 Store and forward agent This agent consolidates communication from and to management agents and uses a single port to communicate to the upstream component. The store and forward agent can be cascaded. It uses IBM WebSphere Caching Proxy, which is part of WebSphere Edge Server V2.0. The caching proxy optimizes the connection with the management server. The default port, to which the management agent must connect, is 9446 for Secure Sockets Layer (SSL) or 80 for non-SSL. You can have multiple store and forward agents chained to get to the management server through multiple layers of firewalls. Figure 2-10 on page 37 shows this concept. 36 Managing an SOA Environment with Tivoli Management Server Store and forward agent 80 Store and forward agent 80 Management agent Figure 2-10 Multiple store and forward agents 2.3.3 Management agents The management agent runs in a Java virtual machine on the managed server. It typically performs the following functions: Starting and stopping the management components Collecting monitoring and schedule information from the management server Informing the management components about what to perform Caching response time data in the temporary directory Uploading response time data as requested by the management server, either at regular collection time or on demand The management agent behavior is based on the Application Response Measurement (ARM) specification. The management component monitors measure response time and report the times using the ARM specification to the ARM agent process (tapmagent executable). The ARM agent process stores response time information on physical disk. The management agent uploads the response time information to the management server at the regular interval. There is a slight difference between the distributed management agent architecture and the z/OS-based management agent. Chapter 2. Tivoli application management products 37 Distributed management agent Conceptually, Figure 2-11 illustrates the processing of the management agent. ARM agent QoS Apache reverse proxy STI client Management agent Generic Window Client Application Tracker Web Response Monitor J2EE monitoring component Figure 2-11 Management agent The existing management components are: The Generic Window component allows investigation of a Windows®-based application to use with Rational Robot application, which enables the Robot to interact with a native Windows application, a Java application, or a browser-based application. You can only deploy this Generic Window component on a Windows system. Synthetic Transaction Investigator (STI) simulates user interaction with a Web browser. STI transactions are recorded in advance using the STI recorder application. The STI component can be deployed only on a Windows system. Quality of Service (QoS) runs in an Apache Web server proxy that tracks the response time for a user. It inserts a small Java script for HTML code to reply back to QoS and indicate the overall user response time. Figure 2-12 on page 39 outlines the QoS processing. 38 Managing an SOA Environment with Tivoli User with Web browser QoS Apache reverse proxy Back-end Web server Back-end processing time Overall response time Page render time Round-trip time Figure 2-12 QoS processing J2EE instrumentation component runs as JVMPI instrumentation for a J2EE-compliant Web application server, such as WebSphere Application Server or BEA WebLogic. It monitors certain WebSphere classes to collect information about servlets and Web Services calls. It also collects response time information for Java Database Connectivity (JDBC) connections and J2EE Connector architecture (J2C) accesses. ARM agent, historically called Tivoli Application Performance Manager, is implemented as the executable tapmagent. Web Response Monitor (WRM) measures the performance of Web-based applications, provides response time and other performance data, and tracks navigation paths and usage behavior. Mainframe management agent For z/OS-based systems, ITCAM for CICS Transactions and ITCAM for IMS Transactions data collectors can send transaction start and transaction end events to the management agent running on the same z/OS system as the CICS and IMS started task. These start and stop events for CICS and IMS transactions are translated into ARM start and ARM stop calls by a component called the transaction server. These data collectors allow IMS and CICS transactions to be shown as part of the distributed transaction or as a stand-alone transaction running on z/OS. Figure 2-13 on page 40 shows the z/OS-based management agent structure. Chapter 2. Tivoli application management products 39 ARM agent ITCAM for CICS Transactions Management agent Transaction Server ITCAM for IMS Transactions J2EE monitoring component Figure 2-13 Mainframe management agent Note: The transaction server component is activated by default in all platforms that we installed. Only the z/OS management agent can use this feature. You can see which components are started from the configuration file tmtp_sc.xml. The components of the management agent in z/OS are: Management agent The management agent is responsible for communication with the ITCAM for Response Time Tracking management server and collecting ARM-related activities on behalf of CICS and IMS. The ARM engine or tapmagent is part of the management agent; it enables you to integrate any other ARM-instrumented application with ITCAM for Response Time Tracking. CICS data collector The CICS data collector monitors transaction response times within CICS regions. It gives you information about how long it took to run the transaction in the monitored CICS region. If your CICS transaction flows through several CICS regions, installing CICS data collectors in every region involved enables you to track the complete transaction flow. IMS data collector 40 The IMS data collector monitors transaction response times within IMS regions. This function means that you get information about how long it took to execute the single transaction in the monitored IMS region. If your IMS transaction spans multiple IMS regions, you can monitor the complete transaction flow by installing the IMS data collectors in the regions that are involved. Managing an SOA Environment with Tivoli The IMS data collectors and CICS data collectors report to the transaction server portion of the ITCAM for Response Time Tracking management agent on the z/OS machine on which they execute. 2.3.4 Tivoli Enterprise Monitoring Agent The agent for Tivoli Enterprise Monitoring Server for ITCAM for Response Time Tracking is provided as a separate installable feature. Figure 2-14 shows the connectivity of the Tivoli Enterprise Monitoring Agent for ITCAM for Response Time Tracking. ITCAM for RTT Management server Tivoli Enterprise Management Server WebSphere Application Server DB2 Tivoli Enterprise Management Server Tivoli Enterprise Management Agent Figure 2-14 Tivoli Enterprise Monitoring Agent The ITCAM for Response Time Tracking agent is assigned the code KT2. The Tivoli Enterprise Monitoring Agent components must be installed in Tivoli Enterprise Monitoring Server, Tivoli Enterprise Portal Server, and Tivoli Enterprise Portal. ITCAM for Response Time Tracking provides a workspace that is dynamically linked based on the policy groups that are available on the management server. 2.4 OMEGAMON XE for Messaging IBM Tivoli OMEGAMON XE for Messaging Version 6.0 is the new name for, and follow-on version to, IBM Tivoli OMEGAMON XE for WebSphere Business Integration V1.1.0. OMEGAMON XE for Messaging incorporates a number of new product features that we discuss throughout this book. OMEGAMON XE for Chapter 2. Tivoli application management products 41 Messaging takes advantage of the features offered by IBM Tivoli Monitoring V6.1. IBM Tivoli OMEGAMON XE for Messaging helps to manage and configure your WebSphere MQ, Message Broker, and InterChange Server environments. These solutions provide the most comprehensive suite of tools to manage the performance, connectivity, and configuration of your environment. These tools enable you to gain an understanding of your environment and determine when your applications do not perform properly. You will then be able to take corrective action to alleviate these problems. IBM Tivoli Performance and Availability Management products provide the central nervous system for complicated business landscapes: They constantly gather information about hardware, software, and network devices, and, in many cases, cure problems before they actually occur. IBM Tivoli availability products monitor business at the component, business system, and enterprise levels. This technology identifies critical problems, as well as misleading symptoms, and then either notifies support staff with the appropriate response, or automatically cures the problems, which decreases operating costs and improves staff efficiency. The predefined capabilities of IBM Tivoli OMEGAMON XE for Messaging provide auto-discovery and monitoring of these complex environments, providing rapid time to value, ease of use, and improved product quality. Additionally, IBM Tivoli OMEGAMON XE for Messaging identifies common problems and automates corrective actions by monitoring key WebSphere MQ, WebSphere Message Broker, and WebSphere InterChange Server metrics. It sends event notification and provides data collection for real-time and historical data analysis, thus reducing administrative costs and maximizing return on investment with increased efficiency of the IT staff. 2.4.1 WebSphere MQ configuration It is difficult to get a sense of your configuration structure when your view of it consists only of configuration definitions. To help you understand the structure of your configuration, WebSphere MQ Configuration provides a representation of your WebSphere MQ configuration called the Defined View. Defined objects in this view represent current or potential WebSphere MQ resources (queue managers, channels, queues, processes, namelists, and so on), all under the management of WebSphere MQ Configuration. Figure 2-15 on page 43 shows an example of the Defined View. 42 Managing an SOA Environment with Tivoli Figure 2-15 The Defined View You can use the Discover feature to quickly and easily build defined objects that represent your actual WebSphere MQ configuration. You can also use the Defined View to safely validate changes to your configuration before applying them to your actual WebSphere MQ configuration. 2.4.2 WebSphere MQ monitoring WebSphere MQ monitoring enables you to set a wide range of monitoring options that can be changed to suit the needs of your environment. For example, you can define which queue managers, queues, and channels you want monitored, specify the time interval for collecting WebSphere MQ data, manage the disposal of event messages from an event queue, or specify whether or not you want to collect historical monitoring data and how long you want to have that data available. Monitoring options are set by defining certain commands and parameters in a special command file that we refer to as the monitoring file (the actual name of the file varies slightly by operating system platform). When you start the WebSphere MQ agent, the commands and parameter values in the monitoring file are read and executed. You do not create the monitoring file; it is supplied with your product and is preconfigured with a set of default commands Chapter 2. Tivoli application management products 43 and parameter values. As supplied, the WebSphere MQ Monitoring Agent for WebSphere MQ on z/OS monitors all queues and channels for all queue managers and all WebSphere MQ applications. As supplied, the WebSphere MQ Monitoring Agent for WebSphere MQ on Hewlett-Packard (HP) NonStop Kernel (formerly known as Tandem), UNIX/Linux®, Microsoft Windows, and IBM OS/400® monitors all queues and channels on a single default queue manager. You can change these default options as well as any others. The list of monitoring options available are: The SET GROUP command defines a group of queue managers that have common monitoring characteristics. Within the group, you can override like-named parameters for specific queue managers using the SET MANAGER command. At least one SET GROUP command is required. The SET MANAGER command specifies queue managers to be monitored. The SET QACCESS command specifies a set of queues that have specified message manipulation rights in the group level or the manager level. The SET QUEUE command specifies the queues to be monitored. WebSphere MQ monitoring always monitors the dead-letter queue. To monitor other system or application queues, specify them with the SET QUEUE command. The SET CHANNEL command specifies the channels to be monitored. The SET EVENTLOG command specifies the size, location, and other attributes of the event log. This command applies to all platforms except z/OS. The SET EVENTQIN command identifies the queue manager event queue, channel event queue, performance event queue, configuration event queue, command event queue, and logger event queue for a queue manager or group of queue managers. If no SET EVENTQIN command applies to a queue manager, the following default WebSphere MQ names are used: – SYSTEM.ADMIN.QMGR.EVENTS – SYSTEM.ADMIN.CHANNEL.EVENTS – SYSTEM.ADMIN.PERFM.EVENTS – SYSTEM.ADMIN.CONFIG.EVENT (Configuration events are present on WebSphere MQ for z/OS Version 5.3 and later only.) – SYSTEM.ADMIN.COMMAND.EVENT (Command events are present on WebSphere MQ for z/OS Version 6.0 and later only.) – SYSTEM.ADMIN.LOGGER.EVENT (Logger events are present on WebSphere for Distributed Platforms Version 6.0 and later only.) 44 Managing an SOA Environment with Tivoli The SET EVENTQOUT command identifies the output queues where queue manager event information, channel event information, performance event information, configuration event, command event information, and logger event information will be copied. After WebSphere MQ monitoring has read an event message from an event queue, it deletes the message to ensure that it is processed only once. If another application running at your site requires access to event messages, you can define an output queue where these messages are copied and point the other application to that queue. If no SET EVENTQOUT command applies to a queue manager, the event information is discarded after being processed. The PERFORM INCLUDE command points to an external file containing customization commands. To execute the commands in this file, specify PERFORM INCLUDE in your startup file. The PERFORM STARTMON command initiates monitoring of WebSphere MQ objects, specifies the sampling interval for collecting WebSphere MQ data, and specifies whether or not historical data will be collected. The PERFORM STARTMON command is required. The SET AGENT command enables you to specify the middle qualifier used in the managed system name. On distributed platforms, if this value is not specified, no value is used. On z/OS, if this value is not specified, the host name is used. If you specify this value, it is used only in the managed system names of subnodes. For example, to avoid confusion and to allow multiple WebSphere MQ Monitoring Agents, instead of issuing the default agent startup command IRAMAN KMQAGENT START (to start a node named host name: MQIRA), you can issue the modified agent startup command IRAMAN KMQAGENT START agentid (to start a node named agentid: MQIRA). Here are several reasons to use the SET AGENT command: – On distributed platforms, if your site has multiple queue managers with the same name running on different nodes, you need to specify the node name for each queue manager to uniquely identify them. – Use SET AGENT to group and identify queue manager names by something other than the host name and queue manager name. – Use SET AGENT to allow multiple agents connected to the same Conversational Monitor System (CMS) to monitor the same queue manager. The SET APPL (z/OS only) command identifies the WebSphere MQ-based z/OS applications, CICS transactions, and IMS programs that must be monitored for application debugging information and application statistics. Chapter 2. Tivoli application management products 45 The SET MQIMONITOR (z/OS only) command is supported on z/OS only. The SET MQIMONITOR command activates monitoring for the applications that you specified using the SET APPL command. You must specify the SET MQIMONITOR command to turn on monitoring. Use the SET MQIMONITOR command together with the SET APPL command to activate the application debugging and application statistics features. The SET QSG (z/OS only) command specifies which queue-sharing groups the WebSphere MQ Monitoring Agent on z/OS monitors and which queue managers the agent uses to collect queue-sharing group data. At any given time, for a particular queue-sharing group, this monitoring product uses only one queue manager to gather data. If that queue manager becomes unavailable, data gathering “fails over” to another queue manager. The SET QSG command is optional. If not specified, the default behavior of the agent is to monitor all queue-sharing groups that are associated with monitored queue managers. You might use a SET QSG command to specify: – That no queue-sharing groups will be monitored – That a particular queue-sharing group will not be monitored – That a particular queue manager must not be used to collect queue-sharing group data 2.4.3 WebSphere Message Broker monitoring WebSphere Message Broker Monitoring Agents collect data from WebSphere Message Brokers. The data is presented in charts and tables that you can examine to monitor the performance of your WebSphere Business Integration systems. The agents also evaluate the data to detect when specified values meet criteria that you have defined and trigger alerts or programmed actions in response. In addition, WebSphere Message Broker monitoring provides a CandleMonitor node. Inserted into message flows, the CandleMonitor node collects statistics about message flow and subflow performance. It also provides a mechanism for generating user-defined events within a message flow (Figure 2-16 on page 47). 46 Managing an SOA Environment with Tivoli Figure 2-16 CandleMonitor node Chapter 2. Tivoli application management products 47 48 Managing an SOA Environment with Tivoli 3 Chapter 3. Basic SOA and Web Services management In this chapter, we show basic metrics and ways that you can manage service-oriented architecture (SOA) and Web Services in general. We divide this discussion into: “Basic monitoring concepts” on page 50 “Performance metric of Web Services” on page 51 “Generating events and alerts” on page 54 “Managing Web Services response time” on page 55 “Debugging performance of Web Services” on page 69 “Understanding Web Services calling pattern” on page 74 “Working with Web Services filtering” on page 87 “Web Services life cycle” on page 90 © Copyright IBM Corp. 2008. All rights reserved. 49 3.1 Basic monitoring concepts In this chapter, we discuss the basic monitoring functions for Web Services. You use the monitoring methods discussed in this chapter to manage an SOA-based application. Because these functions are used by the primary users of SOA management, these functions are critical in Web Services management. The discussion in this chapter applies to generic Web Services management with or without mediation. We demonstrate this management on our setup of a Trader application that is described in Appendix A, “The Trader application” on page 179. The management information comes primarily from IBM Tivoli Composite Application Manager (ITCAM) for Response Time Tracking, ITCAM for SOA, and ITCAM for WebSphere. The interfaces are the Web console of the products or Tivoli Enterprise Portal. Figure 3-1shows the application environment that is discussed in this chapter. perth srv107 laredo WebSphere Application Server TraderClientWeb WebSphere Process Server TraderDBAvailabilityMediati onApp WSRR WebSphere Application Server TraderDBServices lima DB2 Universal Database TRADERDB khartoum WebSphere Application Server TraderDBServices Figure 3-1 Application environment The application has a client component, which goes through Enterprise Service Bus mediation, which calls the server component using Web Services and accesses a database in the back end. 50 Managing an SOA Environment with Tivoli 3.2 Performance metric of Web Services The workspaces of ITCAM for SOA in the Tivoli Enterprise Portal are arranged to show Web Services calls by servers. Figure 3-2 shows this structure. The Web Services calls are typically identified by the following attributes: Frequency Response time Message length Figure 3-2 Primary workspace for ITCAM for SOA The workspace in Figure 3-2 displays the primary metrics that are collected by ITCAM for SOA. It shows all active Web Services calls in the duration. In our Trader application, we have three Web modules, each one accessing DB2, Chapter 3. Basic SOA and Web Services management 51 CICS, and IMS. Each Web module serves four Web Services calls: getCompanies, getQuote, buy, and sell. Figure 3-3 shows a performance summary display. The detailed information of the Web Services call performance is shown in a table. The average response time by operation summary chart is on the upper right. Figure 3-3 Performance Summary 52 Managing an SOA Environment with Tivoli The message summary page shows the message statistics (Figure 3-4). This is typically useful to assess the network capacity requirement for the Web Services, because it shows both the length and the number of messages for the server. Figure 3-4 Message Summary Chapter 3. Basic SOA and Web Services management 53 From a different branch, the message arrival rate is shown in Figure 3-5. This shows the activity of the server in general. Figure 3-5 Message Arrival rate 3.3 Generating events and alerts Events and alerts are created based on the situation. In the simplest case for an SOA-based application, the situation can be checked against Web Services response time, message rate, and overall message size. These measurement metrics are collected from ITCAM for SOA. Here, we demonstrate the creation of a situation based on several of these metrics. Start from the Tivoli Enterprise Portal: 1. Open the create situation dialog using . 2. Select the Service Metrics or Service Inventory attribute group. The Service Metrics attribute group contains individual invocation of services, while Service Inventory contains an aggregated statistic. Most installations do not collect Service Metrics attributes. 54 Managing an SOA Environment with Tivoli 3. Select the attributes against which you want to measure and specify the threshold. 4. Set the monitoring intervals and save the situation. 5. Monitor the attribute values when the situation fires. In a general SOA-based environment, you might need to monitor the following typical metrics in order to assure the application health: ITCAM for WebSphere: – Application server status – Request rate – Request response time ITCAM for Response Time Tracking: – Application response time from the robotic application – Client response time tracker definition – Web response time information ITCAM for SOA: – Message rate – Response time – Message size 3.4 Managing Web Services response time You can correlate the Web Services processing response time to the overall users’ response time. The Web Services processing response time is typically collected from the Web Services component of the ITCAM for Response Time Tracking. In this section, we discuss the usage of ITCAM for Response Time Tracking to monitor the response time of an SOA-based application. ITCAM for Response Time Tracking has methods of collecting response time information, such as a robotic simulation or HTTP traffic monitoring. In this section, we discuss the ITCAM for Response Time Tracking monitoring using the Rational Performance Tester and Web Response Monitoring. We also use the Java 2 Platform, Enterprise Edition (J2EE) component to monitor the application servers on which the SOA application runs. We divide this discussion into: “Execution environment” on page 56 Chapter 3. Basic SOA and Web Services management 55 “Creating Rational Performance Tester script” on page 56 “Defining Web Response Monitor policies” on page 59 “Reports generated from the policies” on page 63 “Tivoli Enterprise Portal workspaces” on page 64 3.4.1 Execution environment Figure 3-6 shows our ITCAM for Response Time Tracking execution environment. perth WebSphere Application Server TraderDBServices J2EE srv107 laredo WebSphere Application Server TraderClientWeb J2EE WebSphere Process Server TraderDBAvailabilityMediati onApp WSRR J2EE lima DB2 Universal Database TRADERDB khartoum ARM WebSphere Application Server TraderDBServices J2EE gruene srv106 Rational Performance Tester ITCAM for Response Time Tracking Management server RPT Figure 3-6 ITCAM for Response Time Tracking environment We monitor this application by using the components deployed on the monitoring agents. Depending on how detailed you need the performance information, you can use either one of these methods. You can collect the ordinary interaction from users by using the Web Response Monitor components. Use the Rational Performance Tester to collect a representative interaction, and then you can use the Rational Performance Tester interaction to establish an average performance baseline. 3.4.2 Creating Rational Performance Tester script We describe the Rational Performance Tester record procedure with the Trader application. 56 Managing an SOA Environment with Tivoli Perform the following steps: 1. On the Rational Performance Tester installed machine, click Start → All Programs → RPT → IBM Rational Performance Tester → IBM Rational Performance Tester. Enter the project file location. 2. Click the File → New → Test From Recording. Then, click Create Test From New Recording and HTTP Test, open the Create New Test From Recording Dialog. Define the project name and recording file name, and then click Finish, as shown in Figure 3-7. Figure 3-7 Starting Record Rational Performance Tester http script Chapter 3. Basic SOA and Web Services management 57 3. We record the Trader application transaction using Microsoft Internet Explorer®. Close the Internet Explorer browser. The script is available to edit, as shown in Figure 3-8. Note: We only use the Rational Performance Tester HTTP script for Microsoft Internet Explorer. For more information about Rational Performance Tester usage, refer to the online help of Rational Performance Tester. Figure 3-8 Created transaction script by Rational Performance Tester 58 Managing an SOA Environment with Tivoli 4. To use the Rational Performance Tester script on the management server, export the recorded transaction to the management server using the RTT plug-ins. Right-click the script name in the test navigator panel and select Export, select ITCAM Response Time Tracking as the export destination, and click Next. Enter the management server information, as shown in Figure 3-9. Click Next. Figure 3-9 Export the recorded transaction by Rational Performance Tester 3.4.3 Defining Web Response Monitor policies The definition of the Web Response Monitor policy is divided into discovery and then monitoring. You cannot just create a new listening monitor. Web Response Monitor discovery We deployed the Web Response Monitor. It runs within the IBM HTTP Server, V1.3.26.1. We did not configure a separate Web server for the Web Response Monitor. Chapter 3. Basic SOA and Web Services management 59 To monitor with the Web Response Monitor, you need to create the discovery to determine what transactions are in the Web server. To configure the Web Response Monitor discovery: 1. Select Configuration → Discovery. Choose Web Response Monitor from the drop-down list box, as shown in Figure 3-10, and click Create New. Figure 3-10 Web Response Monitor Discovery 60 Managing an SOA Environment with Tivoli 2. Enter the WRM settings to discover the transaction in the Web server and click Next. Figure 3-11 shows the WRM discovery settings. Figure 3-11 Web Response Monitor Discovery settings Chapter 3. Basic SOA and Web Services management 61 3. After the discovery monitor configuration, we generated the Trader application. After capturing several transactions, you get the discovered transactions, as shown in Figure 3-12. Figure 3-12 Discovered Web transactions by the Web Response Monitor Web Response Monitor listening monitor From the discovered Web transactions shown in Figure 3-12, we define the listening monitor. 62 Managing an SOA Environment with Tivoli To create the Web Response Monitor listening monitor, select the URL of the discovered Web transaction and choose Create Listening Monitor From from the menu. Click Go. Configure the WRM settings for the listening monitor as shown in Figure 3-13. Figure 3-13 Web Response Monitor listening monitor settings 3.4.4 Reports generated from the policies We discuss the reports in two sections, because the reports show different perspectives. The Rational Performance Tester reports define a reference baseline of a specific performance metric. The Web Response Monitor collects Chapter 3. Basic SOA and Web Services management 63 user response time experience in a distributed application environment. Figure 3-14 shows a sample topology. Figure 3-14 Sample topology information 3.4.5 Tivoli Enterprise Portal workspaces In this section, we demonstrate the type of information from Web Services that you can gather from Tivoli Enterprise Portal when running Tivoli Enterprise Monitoring Agent for ITCAM for Response Time Tracking. We customized the logical view for ITCAM for Response Time Tracking. Figure 3-15 on page 65 shows the agent status and message. 64 Managing an SOA Environment with Tivoli Figure 3-15 Response Time Tracking portal workspace Chapter 3. Basic SOA and Web Services management 65 Select the Response Time Tracking Agent Policy Groups, which opens the primary interface for ITCAM for Response Time Tracking, as shown in Figure 3-16. The policy groups summary shows the defined reporting groups in ITCAM for Response Time Tracking. To view the detailed reporting group information, click the icon to the left of the TraderWeb reporting group. Figure 3-16 Response Time Tracking Agent Policy Groups 66 Managing an SOA Environment with Tivoli It links to the reporting group TraderWeb under the monitor summary, as shown in Figure 3-17. You can see the monitor status of the reporting group TraderWeb. To check each monitor’s status, click the icon by the policy name. Figure 3-17 Policy Status for Policy Group Chapter 3. Basic SOA and Web Services management 67 In Figure 3-18, Tivoli Enterprise Portal shows STI_QoS_TraderWeb, the Synthetic Transaction Investigator (STI) robotic monitors status. For more detailed status, click the icon . This icon links to the related workspace. Figure 3-18 STI_QoS_TraderWeb Robotic Monitor Status 68 Managing an SOA Environment with Tivoli Tivoli Enterprise Portal provides historical data by configuring and starting historical data collection. For more information about the historical data collection settings, refer to IBM Tivoli Monitoring documentation. Figure 3-19 shows an example of the agent availability historical data over the last eight hours. Figure 3-19 Display the agent availability historical data in Tivoli Enterprise Portal 3.5 Debugging performance of Web Services You can trace the performance of Web Services by using ITCAM for WebSphere. The interface allows you to diagnose the problem in-depth on a J2EE-based application. The monitoring for ITCAM for WebSphere is performed on different levels. Because we assume that you are running the monitoring for Chapter 3. Basic SOA and Web Services management 69 ITCAM for WebSphere in order to debug a problem on a production system, we suggest that you run at level 2. Monitoring level 3 generates significant overhead that you might not want on your production system. You can analyze the performance of Web Services by using a set of Performance Analysis reports for your investigation. Follow these steps to investigate the performance: 1. Go to Performance Analysis → Application Reports → Request/Transaction. 2. You can change the reporting options to identify the appropriate time ranges and servers that you want to investigate in order to meet your needs. We recommend that you start from the application servers that are closest to the users that are the Web Services requestors. 3. From the bar chart in Figure 3-20, select the appropriate bar that you want to investigate to go to the decomposition chart. We choose the decomposition chart that shows the transaction by different request names. Figure 3-20 Bar chart 4. Select the servlet request that you want to investigate from the decomposition chart in Figure 3-21 on page 71. We investigate the ListCompanyServlet. 70 Managing an SOA Environment with Tivoli Figure 3-21 Decomposition chart 5. The ListCompanyServlet flow view is shown in Figure 3-22 on page 72. The request detail is shown in monitoring level 2. The flow view provides the easiest view to quickly show problems for a small number of components. The shaded rows are the rows that exceed the threshold that is specified at the top of the page. You can change this threshold dynamically. Chapter 3. Basic SOA and Web Services management 71 Figure 3-22 Requestor report detail 6. The link arrow in the center of Figure 3-22 shows the invocation flow to another request on a different application server. The invocation is indicated as invoked from a Web Services client process. We follow the link to the Web Services invocation request. 7. The Web Services provider flow view is shown in Figure 3-23 on page 73. 72 Managing an SOA Environment with Tivoli Figure 3-23 Web Services provider flow view Chapter 3. Basic SOA and Web Services management 73 8. The flow view in Figure 3-23 on page 73 shows more components, because the Web Services provider actually performs an inquiry function. Again shown in monitoring level 2, the Web Services provider flow indicates the major components of the transaction. The transaction runs Java Naming and Directory Interface (JNDI), Enterprise Java Bean (EJB), and Java Database Connectivity (JDBC) calls. 9. You can go back to the Web Services requestor by using the correlation link shown in the arrows. 3.6 Understanding Web Services calling pattern The Web Services calling patterns can be established by the trace of the Web Services calls. The calls can be logged into log files, and these log files can be analyzed using the Web Services Navigator. We explain the process to run Web Services Navigator in: “Turning on the content logging for a Web Service” on page 74 “Using the Log Assembler tool” on page 78 3.6.1 Turning on the content logging for a Web Service The following procedure illustrates the steps involved in turning on the content logging for Web Services: 1. In Tivoli Enterprise Portal, use the navigation tree and select Enterprise → <OS> → <machine> → Service Management Agent Environment → D4:: <agent> → Performance Summary. See Figure 3-24. Figure 3-24 Services inventory list 74 Managing an SOA Environment with Tivoli 2. From the bottom Services Inventory query that lists the Web Services and the associated operations, run Take Action → Select as shown in Figure 3-25. Figure 3-25 Select a service on which to take action 3. Running the action, select AddMntrCntrl_610 from the drop-down list box to add a monitoring control for certain services. See Figure 3-26 on page 76. The parameters for the commands target a specific Web Service. You can also perform an UpdMntrCntrl to modify the default settings for all Web Services calls. Select the logging level: (Services_Inventory_610.DataCollectorMessageLoggingLevel) to Full to monitor the Web Services transactions into the log. Click OK to save the arguments. Chapter 3. Basic SOA and Web Services management 75 Figure 3-26 Select a action to take 4. In the resulting Web Services action window, select the target agent or destination system. The default agent from which you invoke the command is preselected. See Figure 3-27. Click OK. Figure 3-27 Run the action on the agent 5. After the action runs successfully (return code:0), you will get a message similar to Figure 3-28 on page 77. Click OK. 76 Managing an SOA Environment with Tivoli Figure 3-28 Action ran successfully 6. Verify that the directory /opt/IBM/ITM/li6243/KD4/logs or the directory \IBM\ITM\TMAITM6\KD4\logs contains the *.content.log files and the *.metric.log files. After collecting the content for a period of time, you can turn the monitoring off by running the same DelMntrCntrl (or UpdMntrCntrl) to stop the content logging. Content logging generates additional processing and takes up disk space. Again, the result of the action needs to be 0. You can check the current monitor setting in the Service Management agent workspace in the Data Collector Monitor Control Configuration query shown in Figure 3-29. Figure 3-29 Refresh workspace Chapter 3. Basic SOA and Web Services management 77 3.6.2 Using the Log Assembler tool With the Log Assembler tool, you can specify the nature of the transactions that you want to analyze. You perform the data collection by using the monitor control action. The monitor control actions are: AddMntrCntrl: Adding a new control UpdMntrCntrl: Updating an existing control DelMntrCntrl: Deleting an existing control By default, each data collector has a global definition of no monitor control logging for all Web Services calls. You can specify individual control by: Service port namespace Service port Operation namespace Operation Note: Two important items: The ports here are not TCP/IP ports; these service ports are port definitions in the wsdl file. A monitoring control definition exists with all attributes set as wildcards (*). You must use UpdMntrCntrl to change this from wildcards. We decided to add monitor control for an individual service port for our Web Services: TraderDBServices, TraderIMSServices, and TraderCICSServices. Figure 3-30 shows the action invocation for TraderIMSServices. Figure 3-30 Monitor control action 78 Managing an SOA Environment with Tivoli The resulting control can be seen in the Services Management Agent workspace. Figure 3-31 shows the monitor list. Figure 3-31 Monitor list This monitor control specification generates the metric log and content log files in the $ITMhome\TMAITM6\KD4\logs: The content log is stored for each data collector. Each content log file can be up to 500 MB in size. The file name of the content log is in the format of: KD4.<env>..<cell>.<node>.<server>.content.log There are multiple metric log files. The metric logs are stored in either the KD4.DCA.CACHE or KD4.DCA.CACHE\archive subdirectory of the logs directory. These files have the name of: KD4.<env>..<cell>.<node>.<server>.metric.log.<timestamp> You must select the appropriate content logs and metric logs and collect them to the machine on which you install the Web Services Navigator. The Log Assembler tool is installed with the Web Services Navigator. The Log Assembler processes and merges each metric log, while retrieving the message content from the content log file. The result is then a single merged metric log file from multiple servers (each server has its own message contents attached). Chapter 3. Basic SOA and Web Services management 79 The easiest way to process these logs is by using a batch file, because the file names are long and you have to invoke the command multiple times. In our tests, we invoke 108 Web Services calls within three minutes on two application servers. This gave us 28 metric log files and two content log files. Figure 3-32 shows our log files. Figure 3-32 Log files 80 Managing an SOA Environment with Tivoli We use the batch file in Example 3-1 to process these log files. Example 3-1 Running Log Assembler SET TOOLPATH="C:\IBM\ITCAM for SOA 6.1.0\Tools" SET LOGAJAR=com.ibm.websightView.LogAssembler.jar cd \soalogs for %%i in (*.ClientSvc.metric.log.*) do %toolpath%\_jvm\jre\bin\java -cp %toolpath%\lib\%logajar%;%toolpath%\lib\jlog.jar -jar %toolpath%\lib\%logajar% 0 a soa.Merged.log C:\soalogs\%%i C:\soalogs\KD4.1..PERTHCell01.PERTHNode01.ClientSvc.content.log for %%i in (*.ServerSvc.metric.log.*) do %toolpath%\_jvm\jre\bin\java -cp %toolpath%\lib\%logajar%;%toolpath%\lib\jlog.jar -jar %toolpath%\lib\%logajar% 0 a soa.Merged.log C:\soalogs\%%i C:\soalogs\KD4.1..PERTHCell01.PERTHNode01.ServerSvc.content.log Note that from Example 3-1: The Log Assembler must be invoked separately for each server. The metric log for ClientSvc must be processed with the content log for ClientSvc; you cannot combine the processing. The Log Assembler uses two JAR files: the LogAssembler.jar and jlog.jar. The arguments of the command are: logging level processing target log file name metric log file name content log files 0, 1, or 2; nonzero values generate a lot of output o or a; represents overwrite or append to the log files The merged log file name The metric log that you want processed The content log files for a single server Chapter 3. Basic SOA and Web Services management 81 We are now ready to import the log file into Web Services Navigator: 1. First, we need an empty project (or an existing one) to store the imported log file definitions. Select File → New → Project. Then, we choose a simple project (Simple → Project) and then we enter the project name to create a simple project (Figure 3-33). Figure 3-33 Creating a project 82 Managing an SOA Environment with Tivoli 2. We then import the log file. Select File → Import and select from the file system the merged log from the Log Assembler tool. Figure 3-34 shows the import process. Figure 3-34 Importing log files In Figure 3-34, note that we experimented with the log files. We have individual server log files and the merged log files. The individual server log files do not generate a full picture of the Web Services calls. The following discussion covers the merged log file only. Chapter 3. Basic SOA and Web Services management 83 We have the Service Topology view of the merge log shown in Figure 3-35. Figure 3-35 Service Topology In Figure 3-35, the figure shows the calling pattern of the Web Services. The green boxes indicate the service name and the operations are listed within it. The arrows indicate service calls with numbers showing the number of invocations. You can also summarize the calls based on the service name instead of the operation name by collapsing the boxes, as shown in Figure 3-36. Figure 3-36 Operation summary 84 Managing an SOA Environment with Tivoli Figure 3-37 shows the transaction flows. It shows the time line of the Web Services calling sequences. The busy chart shows all 108 Web Services calls that we made. Figure 3-37 Transaction flows Chapter 3. Basic SOA and Web Services management 85 Hovering the cursor over any of those lines provides the call details of the Web service. Selecting the service shows yellow highlighting and displays the details in the bottom pane (Figure 3-38). Figure 3-38 Message Content 86 Managing an SOA Environment with Tivoli The flow pattern summarizes the transaction flows in Figure 3-37 on page 85 and collapses any similar invocation pattern. A pattern can be identified by the requestor, provider, service name, and operation name. Figure 3-39 shows the flow pattern. Figure 3-39 Flow Patterns 3.7 Working with Web Services filtering Web Services calls can be rejected by ITCAM for SOA. This capability is provided as part of the default action of ITCAM for SOA. These actions can be invoked manually or triggered by a situation. This section demonstrates invoking the action manually to reject a certain Web Services call. Chapter 3. Basic SOA and Web Services management 87 It makes sense to invoke the filtering action from the Message Arrival table or from the Message Summary table when you see a lot of unexpected messages flowing through the system. You can invoke the action by using the context menu, as shown in Figure 3-40. Figure 3-40 Invoking an action We invoke the addFltrCntrl action. This action requires a set of parameters, as shown in Figure 3-41. Depending on where you initiate the action, you can get prefilled data for these arguments. Figure 3-41 Action parameters 88 Managing an SOA Environment with Tivoli After the action has been completed, you can see the effective setting in the Services Management Agent workspace, as shown in Figure 3-42. Figure 3-42 Rejected Web Services call Chapter 3. Basic SOA and Web Services management 89 The rejected Web Services calls show up as faults in the fault summary list. Figure 3-43 shows the Fault Details list. Figure 3-43 Rejected Web Services call faults You can remove the filter using the DelFltrCntrl action, as shown in Figure 3-44. This is invoked from the filter list table in Figure 3-42 on page 89 directly, which is why the arguments are automatically already filled in. Figure 3-44 Removing a filter 3.8 Web Services life cycle You must install WebSphere Service Registry and Repository Discovery Library Adapter on the server where WebSphere Service Registry and Repository is 90 Managing an SOA Environment with Tivoli installed. The Discovery Library Adapter is supplied from ITCAM for SOA under the installation image KD4/DLA/ as WSRRV600_DLA.zip and WSRRV600_DLA_fixpack.zip. We unzip both files under the /opt/IBM/WSRRV6_DLA path. Note: To use the Discovery Library Adapter with WebSphere Service Registry and Repository V6.0.2, you have to copy sdo-int.jar from <WSRR-home> to <WAS-home>/classes and restart the WebSphere Application Server that hosts WebSphere Service Registry and Repository. To use the Discovery Library Adapter with WebSphere Service Registry and Repository V6.0.2, from the /opt/IBM/WSRRV6_DLA/bin directory, edit the WSRR_DLA.config.properties and DLA_FileTransfer.properties: 1. In WSRR_DLA.config.properties, you must at least customize the parameters in Example 3-2. This file specifies how to communicate with the WebSphere Service Registry and Repository API. Example 3-2 Access to WebSphere Service Registry and Repository com.ibm.management.soa.dla.wsrr.address=laredo com.ibm.management.soa.dla.wsrr.port=2809 com.ibm.management.soa.dla.wsrr.domainName=itsc.austin.ibm.com com.ibm.management.soa.dla.wsrr.websphereSecurityEnabled=false com.ibm.management.soa.dla.wsrr.securityEnabled=false com.ibm.management.soa.dla.wsrr.userid= com.ibm.management.soa.dla.wsrr.password= 2. In DLA_FileTransfer.properties, you must specify the host on which the Tivoli Common Object Repository is installed and the path to store the IdML books. These parameters are shown in Example 3-3. The ftp password will be encoded after the first invocation of the file transfer program. Example 3-3 File transfer properties com.ibm.management.soa.dla.filetransfer.host=peoria.itsc.austin.ibm.com com.ibm.management.soa.dla.filetransfer.targetDir=/opt/IBM/WSRRV6_DLA/s taging com.ibm.management.soa.dla.filetransfer.stagingDir=../staging com.ibm.management.soa.dla.filetransfer.fileFilter=*.xml com.ibm.management.soa.dla.filetransfer.securityEnabled=true com.ibm.management.soa.dla.filetransfer.userid=root com.ibm.management.soa.dla.filetransfer.password=****** com.ibm.management.soa.dla.filetransfer.password.encoded=aXRzMGcwMGQ= Chapter 3. Basic SOA and Web Services management 91 3. The logging option for both the discovery and file transfer that we use is shown in Example 3-4. The option allows us to understand the processing better. Example 3-4 Logging option com.ibm.management.soa.dla.wsrr.log.logFileName=WSRRDLALog.log com.ibm.management.soa.dla.wsrr.log.logFileDir=../logs com.ibm.management.soa.dla.wsrr.log.loggingLevel=DEBUG_MAX com.ibm.management.soa.dla.wsrr.log.logFileSize=2000000 com.ibm.management.soa.dla.wsrr.log.logFileCount=3 com.ibm.management.soa.dla.wsrr.log.enableLogging=true com.ibm.management.soa.dla.wsrr.log.logToFile=true com.ibm.management.soa.dla.wsrr.log.logToConsole=true 4. We run the discover using the command ./WSRR_DLA.sh -r to create a refresh XML data book. Figure 3-45 shows the execution of this command. [root@laredo bin]# ./WSRR_DLA.sh -r 2007-07-06 15:32:21.793-05:00 [main] KD4SR0017I The discovery library adapter is starting its discovery process. 2007-07-06 15:32:28.982-05:00 [P=941820:O=0:CT] KD4SR0010I The discovery library adapter book: WSRRv600.laredo.itsc.austin.ibm.com.2007-07-06T20.32.25.659Z.refresh .xml was generated and stored into the following directory: ../staging/. 2007-07-06 15:32:29.020-05:00 [P=941820:O=0:CT] KD4SR0018I The discovery library adapter is exiting its discovery process. 2007-07-06 15:32:29.591-05:00 [main] KD4FT0020I The file transfer process is starting. KERBEROS_V4 rejected as an authentication type 2007-07-06 15:32:31.347-05:00 [main] KD4FT0009I The file: ../staging/WSRRv600.laredo.itsc.austin.ibm.com.2007-07-06T20.32.25.6 59Z.refresh.xml was successfully transferred to host: peoria.itsc.austin.ibm.com 2007-07-06 15:32:31.930-05:00 [main] KD4FT0021I The file transfer process is ending. Figure 3-45 Running the Discovery Library Adapter 5. You load the discovery book by running the bulk load script: /opt/IBM/ITM/li6243/cq/Products/KD4/tcore/bin/loadidml.sh -f 92 Managing an SOA Environment with Tivoli You can add the ITCAM for SOA view to the view list in the Tivoli Enterprise Portal. From Tivoli Enterprise Portal, click the Administer Users icon in the tool bar. The Administer Users pop-up window is shown in Figure 3-46. Figure 3-46 Administer Users: Navigator Views Click Apply and then click OK to add the ITCAM for SOA view to the drop-down list of the views. The following steps work with the ITCAM for SOA view: 1. The resulting display in Tivoli Enterprise Portal for selecting SOA view is shown in Figure 3-47 on page 94. Click on the View drop-down list and select the ITCAM for SOA view. Chapter 3. Basic SOA and Web Services management 93 Figure 3-47 Select ITCAM for SOA view 2. The workspace lists the Web Services that have been loaded from the loadidml command. See Figure 3-48. Figure 3-48 Services Management: Services Overview 94 Managing an SOA Environment with Tivoli 3. From the Services Overview table shown in Figure 3-48 on page 94, the data from WebSphere Service Registry and Repository is indicated with a check in the check box in the Registered column. Right-click an entry and select View Service Detail. The topology of the Web Services is shown in Figure 3-49. The Topology view discovers and displays the Service, Service Port, and the operations that are provided by the service. Figure 3-49 Topology view of the selected service 4. If you hover the mouse over a object icon, that object’s parameters are displayed. Chapter 3. Basic SOA and Web Services management 95 Figure 3-50 Move the mouse pointer over the object to view the object’s properties ITCAM for SOA Discovery Library must be installed on the machine where ITCAM for SOA is running. Extract the file ITCAMSOA61_DLA.zip from the ITCAM for SOA installation disk under KD4/DLA. We extract this file to /opt/IBM/ITCAMSOA61_DLA. We edit the KD4DiscoveryLibraryAdapter.properties and DLAFileTransfer.properties. This property file is similar to the WSRR_DLA.config.properties. Load the IdML file. Figure 3-51 on page 97 displays the data discovered by the ITCAM for SOA Discovery Library Adapter. The table displays both the Web Services registered with the WebSphere Service Registry and Repository and the Web Services that are being observed by ITCAM for SOA. 96 Managing an SOA Environment with Tivoli Figure 3-51 Services overview with observed and registered Web Services Select Service Detail from an observed service to get into the detailed view of the service as shown in Figure 3-52 on page 98. The service port topology view displays the service port details discovered by the Discover Library Adapter, the service operations, and the Application servers that provide the service. Chapter 3. Basic SOA and Web Services management 97 Figure 3-52 Topology view showing the servers that provide the service Move the mouse pointer over the objects in the topology view to view the properties associated with each object as discovered by the Discovery Library Adapter. Figure 3-52 displays the properties associated with one of the Application Servers providing the Trader IMS Service. 98 Managing an SOA Environment with Tivoli 4 Chapter 4. Advanced SOA management In this chapter, we explore more of the service-oriented architecture (SOA) management and delve into managing SOA with the mediation layer to achieve Web Services failover and balanced load. We discuss the following topics: “Mediation and SOA” on page 100 “Enterprise Service Bus” on page 102 “Maintaining Web Services continuity” on page 104 “Service monitoring automation” on page 136 “Using managed message logger” on page 155 “Summary” on page 158 © Copyright IBM Corp. 2008. All rights reserved. 99 4.1 Mediation and SOA SOA provides us with the flexibility to build composite applications using reusable services in more standardized ways using standard transport protocols. Flexibility, however, also brings in new challenges of managing the services in a vastly distributed environment that spans multiple tiers and operating environments. A single service can find itself being consumed by a number of applications or business processes. Gaining insight to the service execution from a runtime perspective, as well as from a service life cycle perspective, is equally important. Consider that for SOA: Services can be developed in various application and operating system environments. J2EE application servers, such as WebSphere, BEA WebLogic, and SAP Netweaver, are supported. A service might span multiple tiers, including IMS or CICS, on the mainframe. Multiple operating system environments, such as Windows, AIX®, Linux, .NET, z/OS, and so on, are supported. Management solutions must be able to address the diverse operating environment of an SOA. In this chapter, we explore how we can use multiple IBM Tivoli offerings to manage and maintain services in an SOA environment. We explore automation capabilities from IBM Tivoli Monitoring and IBM Tivoli Composite Application Manager (ITCAM). We also discuss the integration features of ITCAM with the enterprise service bus technologies, such as WebSphere Enterprise Service Bus and WebSphere Message Broker. We also include the service registry in WebSphere Service Registry and Repository (WSRR) integration in our scenario. The objective is to keep services in an SOA environment healthy and resilient. Enterprise Service Bus (ESB) plays an important role in SOA. It decouples the service consumer from the service provider. It can be thought of as a flexible communication environment that connects the service consumer and service provider. ESB makes it possible to introduce additional application or operational logic transparently without changing the service consumer or service provider. Figure 4-1 on page 101 shows the enterprise service bus concept. 100 Managing an SOA Environment with Tivoli Enterprise Service Bus (ESB) Service Consumer Service Instance 1 Service Instance 2 Figure 4-1 Services in an SOA Service Instance 1 and Service Instance 2 shown in Figure 4-1 have the same service interface; however, they might share the same implementation or a different implementation. The service consumer is bound to the service provider either directly or by using logic that we refer to as mediation. The target service endpoint can be bound at deployment time or at run time. Enterprise Service Bus enables you to insert mediation logic between the service consumer and the service provider. Mediations can look at the service request data to make certain decisions or can refer to an external component, such as database or a service registry, to help execute mediation logic that affects the service request flow within an Enterprise Service Bus. As an example, consider mediation logic that uses a service registry component that is used to query and retrieve a choice of target service endpoints to which the service requestor can be routed based on certain criteria, such as quality of service and service availability. From a system management perspective, mediation enables us to monitor service invocations, perform on demand logging of service requests and response data, observe service executions, and reconcile discovered services with known services in a service registry. In addition to monitoring service data, the ability to control service requests based on operational data provides for a number of use case scenarios that offer tremendous value to any enterprise building its applications in an SOA environment. Chapter 4. Advanced SOA management 101 4.2 Enterprise Service Bus IBM offers three enterprise service bus technologies: WebSphere DataPower Integration Appliance WebSphere DataPower is an XML appliance, which is capable of processing XML at wire speed, is optimized to process SOAP messages, and can also transform and route SOAP messages, providing functions of a service bus. WebSphere Enterprise Service Bus WebSphere Enterprise Service Bus is built on WebSphere Application Server and offers Java 2 Platform, Enterprise Edition (J2EE) standards-based connectivity for an SOA environment. WebSphere Enterprise Service Bus uses Service Component Architecture (SCA) to model service connectivity. The Service Component Architecture is based on SCA modules, each of which consists of one or more SCA components. WebSphere Enterprise Service Bus provides runtime environments for SCA modules that deal with mediation or message flow logic within the enterprise service bus. WebSphere Message Broker WebSphere Message Broker provides universal connectivity and transformations in heterogeneous environments. ITCAM for SOA supports monitoring all these Enterprise Service Bus technologies. The current version of ITCAM for SOA also supports advanced capabilities to control service request flows in WebSphere Enterprise Service Bus. For this chapter, we focus on the WebSphere Enterprise Service Bus and how it integrates with ITCAM for SOA. WebSphere Enterprise Service Bus is built on WebSphere Application Server Network Deployment. In addition to the standard J2EE-based application environment, it offers a number of mediation primitives that help building mediation flows. The mediation primitives are used to build mediation flows and are deployed as mediation modules. The mediation modules are themselves SCA modules. The mediation flows help connect the service consumer and service provider without needing to know the implementation details of the service provider. The mediation flows are created by using WebSphere Integration Developer Integrated Development Environment. WebSphere Integration Developer is an Eclipse-based development environment that is used to create SCA application and mediation flows. It provides a palette of customizable pre-built objects called mediation primitives that can be used to intercept and control the service request and response message flows, such as Logger, Message Filter, XSL Transformation, Message Element Setter, Database Lookup, and Endpoint 102 Managing an SOA Environment with Tivoli Lookup. You can create the mediation flow application by using a drag and drop interface with minimal or no programming. Note: WebSphere Process Server is an application server for executing business processes. It is built on J2EE standards and also uses the WebSphere Enterprise Service Bus technology for service bus and mediation capabilities. All discussions about WebSphere Enterprise Service Bus also apply to WebSphere Process Server. For more information about WebSphere Enterprise Service Bus, refer to Getting Started with WebSphere Enterprise Service Bus, SG24-7212, at: http://www.redbooks.ibm.com/abstracts/sg247212.html?Open ITCAM for SOA extends the following mediation primitives, which are called managed mediation primitives: Managed XSL Transformation conditionally transforms a message as it flows through the ESB. Managed Message Filter conditionally selects a service endpoint. Managed Message Logger conditionally logs service request message data. Managed Message Fail conditionally fails a message and generates a service fault. Each of these managed mediations can be enabled and disabled at run time from the operations environment using Tivoli Enterprise Portal either manually using a Take Action menu entry or by using a predefined situation to perform an action. Operational control of service requests and response flows in the WebSphere Enterprise Service Bus has a number of useful applications: Operationally control on demand logging of messages for auditing purposes. Dynamically route service requests to alternate service if the primary service provider or a dependent resource, such as a queue manager, database, network, or storage, fails. Monitor the runtime quality of a service and update the service quality properties in a service registry, such as WebSphere Service Registry and Repository. You can then use this during the service assembly phase to determine if a given service will meet the application requirements. Exploit the runtime service performance and service information to enhance the SOA governance process. Introduce, in a controlled way, a new implementation of a service into an SOA environment by temporarily routing service requests to an alternate service. Chapter 4. Advanced SOA management 103 Monitor for denial of service attacks, force service requests with certain characteristics (such as originating IP address or a message data signature), and force a service fault. Apply message transformations to route service flows or affect service behavior only when certain operational thresholds are violated. The managed mediation capability of ITCAM for SOA is made available in the WebSphere Integration Developer environment using the ITCAM for SOA tools package, which installs a plug-in for managed mediation primitives into WebSphere Integration Developer (WID). The plug-in provides a palette of managed mediation primitives that you can select and drop into message flows just like other mediation primitives provided by WebSphere Enterprise Service Bus. 4.3 Maintaining Web Services continuity Ensuring that a service is available to meet the agreed upon service level agreements (SLAs) is a common nonfunctional requirement for enterprise applications. You can create the SLAs at different levels. For example, from a user’s perspective, you can base the SLA on the application user interface response time. In an SOA environment, the user application user interface can, in turn, depend on a service implementation that has additional dependencies on resources, such as message queues, a database, and so on. It is important that you monitor the application user interface response times, service response times for individual services, and health of dependent components in order to keep the application performance to the desired service level. When service performance degrades or the service is temporarily unavailable, you are often required to have a contingency plan for failover to an alternate service instance. We use one of the Trader application services, TraderDBServices, to see how we can monitor and manage the application server and service using ITCAM for SOA and ITCAM for Web Resources (or ITCAM for WebSphere) to ensure that the service remains available. We deploy the same service on two servers. We will monitor the servers and the response times for the service on the deployed instances and update the service registry that will be used to query the best available service at run time. We use a mediation flow in WebSphere Enterprise Service Bus as a front end to the deployed services. We will develop the mediation flow using WebSphere Integration Developer using the TraderDBServices Web Services Description Language (WSDL). We will also use WebSphere Service Registry and 104 Managing an SOA Environment with Tivoli Repository to store the service WSDL files for deployed service instances. Each of the WSDL documents will also contain additional service metadata (user-defined properties) that will store the status of the server where the service is deployed and the service quality that is derived from the service response time. The quality of the service will be used to select the best alternate service when the primary service fails. The TraderDBServices are deployed on perth:9082 and khartoum:9082. We will use the WebSphere Process Server (that includes the WebSphere Enterprise Service Bus capability) on srv107:9081 as our mediation server where we will deploy the service mediation message flow. We use the WebSphere Service Registry and Repository deployed on laredo:9080 as our service registry. It contains additional service metadata that will be updated by the monitored situation action from IBM Tivoli Monitoring. The situations will be defined using the monitored attributes from ITCAM for Web Resources (or WebSphere) and ITCAM for SOA. We will also introduce a managed message logger that can be controlled from the operations environment using Tivoli Enterprise Portal to enable and disable message logging. The control can also be automated if required. The overview of the solution is shown in Figure 4-2. WebSphere Enterprise Service Bus / WebSphere Process Server TraderDBServices 1 perth:9082 TraderWebClient Managed Logger Select best available service Health Monitoring using ITCAM perth:9081 srv107:9081 TraderDBServices 2 khartoum:9082 WebSphere Service Registry & Repository laredo:9080 Enable / Disable Logging from Operations Update Service Quality and Server Health IBM Tivoli Monitoring Situation And Take Actions peoria Figure 4-2 Example of maintaining service continuity using ESB, WSRR, and ITCAM Chapter 4. Advanced SOA management 105 In the next section, we describe the steps required to implement the service continuity solution described in the previous section. We describe the steps required to implement the solution in: “Register TraderDBServices in the registry” on page 106 “Developing managed SCA mediation with ITCAM for SOA” on page 110 “Deploying the mediation application” on page 126 4.3.1 Register TraderDBServices in the registry in this section, we describe the steps for loading the TraderDBServices in WebSphere Service Registry and Repository. Note: We do not describe the installation of WebSphere Registry and Repository in this chapter. For installation and basic usage, refer to the WebSphere Service Registry and Repository Handbook, SG24-7386, at the following Web site: http://www.redbooks.ibm.com/abstracts/sg247386.html After deploying TraderDBServices to WebSphere Application Servers, we load the WSDL files into WebSphere Service Registry and Repository. The deployed WSDL files can be obtained from the WebSphere administration console. The published WSDL for the deployed services will contain the actual service endpoint address. The steps are: 1. Extract the WSDL file for each of the application servers hosting the Web Services provider: a. Go to to WebSphere administration console using the URL: http://<dmgrhost>:9060/ibm/console b. Navigate to the Enterprise Application → TradeDBEAR → Publish WSDL files. See Figure 4-3 on page 107. Right-click and save the.zip file. c. Open the.zip file to extract the TraderDBServices.wsdl file. 106 Managing an SOA Environment with Tivoli Figure 4-3 Publishing WSDL from WebSphere 2. WebSphere Service Registry and Repository console in laredo can be accessed using the URL http://laredo:9080/ServiceRegistry. 3. Navigate to Service Documents → Load Documents. Browse to the previously extracted WSDL documents and follow the steps to load the WSDL document into WebSphere Service Registry and Repository. Figure 4-4 Load WSDL into Service Registry Chapter 4. Advanced SOA management 107 Note: There are other alternatives for representing the WSDL documents in WebSphere Service Registry and Repository. The WSDL for TraderDBServices can be split into port type interface definitions and port physical binding address files. This approach can reduce part of the duplication of the WSDL data in WebSphere Service Registry and Repository. However, today this involves creating the WSDL files manually instead of using the WSDL files retrieved from the deployed applications in WebSphere Application Server directly. 4. To verify that all WSDL documents have been loaded in WebSphere Service Registry and Repository, navigate to Service Documents → WSDL Documents. Verify that the WSDL documents are shown similar to Figure 4-5. Figure 4-5 TraderDBServices WSDL instances 5. We add service metadata (user-defined properties) to the service definitions. These properties are used for selecting Web Services destinations from the 108 Managing an SOA Environment with Tivoli mediation. These properties can be updated manually using the console or programmatically using the WebSphere Service Registry and Repository API. 6. Navigate to Service Metadata → Ports. You will notice that there are several TraderDBServices entry. The entries represent each of the loaded instances from the WSDL files. To easily distinguish these instances during our navigation, we add a description string to indicate the server to which the port belongs. See Figure 4-6. Figure 4-6 Add a description to the port to distinguish each instance of the service 7. For each of the ports, click the port instance, then click Custom Properties, and click New to add properties and value shown in Table 4-1. Table 4-1 Custom properties Property name Initial property value Valid property values serviceServerStatus down up or down serviceResponseTime good good or bad 8. The resulting custom properties list is shown in Figure 4-7 on page 110. Chapter 4. Advanced SOA management 109 Figure 4-7 Service metadata: Custom Properties for port instances on srv177 Now, the setup in WebSphere Service Registry and Repository is done. You can also define the Web Services life cycle as deployed so that the Web Services life cycle is discovered by the Discovery Library Adapter. 4.3.2 Developing managed SCA mediation with ITCAM for SOA We turn our effort now to WebSphere Integration Developer. We wanted to create a mediation module that can be managed using ITCAM for SOA-managed SCA mediation for TraderDBServices. First, we have to set up our development environment: The installation of WebSphere Integration Developer is provided in: http://publib.boulder.ibm.com/infocenter/dmndhelp/v6rxmx/index.jsp?t opic=/com.ibm.wbit.help.nav.doc/topics/installmigrate.html We set up ITCAM for SOA-managed SCA mediation tools to WebSphere Integration Developer. The installation is provided in the KD4/Tools directory of the ITCAM for SOA tools CD. The instructions are available from: http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/index.jsp?top ic=/com.ibm.itcamsoa.doc/kd4nvmst31.htm 110 Managing an SOA Environment with Tivoli Mediation development uses the following terminology: Interface The interface is the mediation flow definition of how an external client can connect and run the mediation flow. Reference The reference is the mediation flow definition for how it calls Web Services providers. Import The Web Services definition is imported into the mediation module that can be called from the mediation module; the import connects to the reference of the mediation flow. The import represents the output of the mediation module. Export The Web Services definition of the mediation flow from the specified interface can be exported so that a Web Services client can call. The export represents the input to the mediation module. Mediation flow The logic of the mediation maps the exported call interface into the reference call to the imported Web Services. Wiring Wiring is the process of defining links between components of the mediation. We create a mediation flow for TraderDBServices that can be used to ensure service availability in an SOA environment: 1. We first create a library project in WebSphere Integration Developer. Create a new library using the menu File → New → Other and select Library. Call the library project TraderDBServicesLibrary. The new project is shown in Figure 4-8. Figure 4-8 Create TraderDBServicesLibrary project 2. Import TraderDBServices.wsdl into WebSphere Integration Developer. Right-click Interfaces and select Import. In the ensuing dialog box, select WSDL/Interfaces. Select TraderDBServices.wsdl, and see Figure 4-9 on page 112. Chapter 4. Advanced SOA management 111 Figure 4-9 Import TraderDBServices 3. We create the mediation module that will be used to maintain service availability by selecting the best available service from two deployed service locations. This module includes the managed message logger primitive that can be used to provide on demand message logging from the IT operations environment: a. Select File → New → Other and choose Mediation Module. See Figure 4-10 on page 113. 112 Managing an SOA Environment with Tivoli Figure 4-10 New mediation module b. Specify TraderDBServicesAvailabilityMediationApp as the module name and select the target runtime environment. For our case, we will deploy on WebSphere Process Server, and, therefore, we select WebSphere Process Server. As long as the mediation module is limited to using mediation primitives only and does not use the WebSphere Process Server-specific elements, it can be deployed on a WebSphere Enterprise Service Bus as well. c. Include the library project TraderDBServicesLibrary. 4. Define a mediation flow for TraderDBServicesAvailabilityMediationApp: a. Right-click the Mediation Logic and select New → Mediation Flow. See Figure 4-11 on page 114. Call the mediation flow TraderDBServicesAvailabilityMediationFlow. Chapter 4. Advanced SOA management 113 Figure 4-11 Create TraderDBServicesAvailabilityMediationFlow b. Next, double-click Assembly Diagram to open the assembly diagram editor. It usually opens with a default mediation flow component. Right-click and delete the mediation component. Click and drag the TraderDBServicesAvailabilityMediationFlow component that we just created in the previous step. See Figure 4-12 on page 115. 114 Managing an SOA Environment with Tivoli Figure 4-12 Add the mediation flow into the assembly editor 5. We need to define the service interface for invoking the mediation flow. This is the interface that is used by the service consumer: a. Add an interface using the icon. Select TraderDBServices for the interface selection. See Figure 4-13. Figure 4-13 Add interface Chapter 4. Advanced SOA management 115 b. We also need to associate an Export with the interface that will define the service endpoint URL for the TraderDBServices from the mediation server. From the palette on the left, click the Export icon and drop it into the assembly editor as shown in Figure 4-14. c. Rename the default name Export1 to TraderDBServicesMediationExport. Figure 4-14 Add Export d. Wire the export to the interface in the mediation flow by dragging the wire from the export element to the mediation flow component. When connecting, click OK to the prompt that asks for confirmation to associate the same interface to the export. See Figure 4-15. Figure 4-15 Wiring 6. Add the reference and import the Web Services definition to the mediation flow component. The reference is used to connect the mediation flow to the service that will be invoked by the mediation flow: 116 Managing an SOA Environment with Tivoli a. Right-click the mediation component and select Add → Reference. In the dialog box, select the interface for the reference, which is TraderDBServices. Also, we need to specify the reference name. Specify the reference name as TraderDBServicesPartner. See Figure 4-16. Figure 4-16 Add reference: TraderDBServicesPartner b. Drop an Import element from the palette and name it TraderDBServicesImport; see Figure 4-17 on page 118. Wire the import to the reference, and accept the prompt to associate a matching interface from the reference to the import. Chapter 4. Advanced SOA management 117 Figure 4-17 Select Import from the palette 7. We can now generate a skeleton mediation code automatically: a. Right-click the mediation flow and select Regenerate Implementation as shown in Figure 4-18. Click OK when prompted. This action regenerates the mediation flow component implementation with references and the interface definition from the assembly diagram. Figure 4-18 Regenerate Implementation b. You will notice that there is a blue exclamation mark (!) on the TraderDBServicesImport element, because we have not specified the type of binding that we want to associate with the import. Right-click and select Generate Binding → Web Services Binding. From the dialog which prompts for a service port, select Use an existing Web service port and browse for the TraderDBServices port as shown in Figure 4-19 on page 119. 118 Managing an SOA Environment with Tivoli Figure 4-19 Generate Web service binding for TraderDBServicesImport c. Repeat the process for the TraderDBServicesMediationExport export element. Right-click and select Generate Binding → Web Services Binding. For export, it will prompt for a soap/http or soap/jms binding choice. Select soap/http as shown in Figure 4-20. Figure 4-20 Export binding Chapter 4. Advanced SOA management 119 8. The interface, reference, import, and export definitions have been generated. Now, double-click the mediation flow component, which will open the operation connection editor as shown in Figure 4-21. The mediation flow definition consists of: Operation connections The operation connections are the mapping of operations from the interface to the reference definitions. The interface operation must be wired to the reference operation. Mediation flow The mediation flow is the mediation logic for each wired connection where we can define the operation and components. Note that there are two tabs for the flow: the request flow and the response flow. Properties The property view at the bottom shows detailed properties for each selected object. This view is typically used for modifying the property of the operation component shown in the mediation flow. Figure 4-21 Mediation Flow Editor with interface, operations, and references 9. For each operation, click the interface and wire it to the TraderDBServicesPartner as shown in Figure 4-22 on page 121. 120 Managing an SOA Environment with Tivoli Figure 4-22 Wire each interface operation with the TraderDBServicesPartner 10.We must define the mediation flow for each of the wires in Figure 4-22. We only illustrate the modification for the buy operation: a. Click on the wire that connects the buy operation, which will update the mediation flow editor canvas. The mediation flow editor has a palette of mediation primitives on the left that can be used to create the mediation flow. The palette also contains the managed mediation primitives installed by the ITCAM for SOA tools package. See Figure 4-23. Figure 4-23 ITCAM for SOA managed mediation primitives b. We will use two mediation primitives: • Managed Message Logger from the ITCAM for SOA tools package Chapter 4. Advanced SOA management 121 • Endpoint Lookup to query WebSphere Service Registry and Repository to obtain a service endpoint based on a set of properties From the managed mediation primitives palette, select Managed Message Logger and drop it into the mediation flow editor. c. Rename the primitive to BuyLogger. Wire the Buy:Input terminal to BuyLogger. d. Select Endpoint Lookup primitive and drop it into the mediation flow editor. Rename the primitive to BuyLookup. e. Wire the BuyLogger output terminal to the input terminal BuyLookup. f. BuyLookup has three output terminals. The first terminal is called the match terminal. Wire this terminal to TraderDBServicesPartner input terminal. The service request message flows to this terminal if the query to WebSphere Service Registry and Repository is successful. We will define the properties to query the service endpoint later in this section. g. The second terminal is the noMatch terminal. We create a Fail primitive that raise service fault. The noMatch terminal is wired to the Fail terminal. h. The mediation flow for buy operation needs to look like Figure 4-24. Figure 4-24 TraderDBServices buy operation mediation flow 11.The operation primitives properties can be set in the Properties dialog in the bottom part of the workspace. Right-click the operation primitives and select Show in Properties: 122 Managing an SOA Environment with Tivoli – The current detailed properties for BuyLogger are shown in Figure 4-25. You will notice that this primitive is enabled. You can clear the Enabled check box to disable the logger function of this primitive. Figure 4-25 Managed logger properties – The Endpoint Lookup mediation primitive is part of the WebSphere Enterprise Service Bus and the WebSphere Process Server run time. This primitive is used to dynamically query WebSphere Service Registry and Repository to retrieve one or more endpoints based on a given set of properties for the service port. We had defined serviceServerStatus and serviceResponseTime properties for our service, which we will now query: • • The serviceServerStatus is up The serviceResponseTime is good The Endpoint Lookup detailed properties are shown in Figure 4-26. Use the Name of TraderDBServices and the Namespace of http://services.db2.trader.j2ee.itso. Figure 4-26 Port Type and Namespace for the service query to WSRR Click Advanced on the Properties tab to define properties to match the service quality to the service selection. Use Add to add the property name and the value that we want to match. See Figure 4-27 on page 124. Chapter 4. Advanced SOA management 123 Figure 4-27 TraderDBServicesBuyLookup Properties 12.So far we have wired the request flow. We also need to wire back the response flow. Click on the Response:buy tab beneath the mediation flow editor to open the response flow. Wire the response as shown in Figure 4-28. Figure 4-28 Wire buy response flow 13.Repeat the procedure for the remaining operations of TraderDBServices. Be sure to wire both the request and response flows: – The getQuote request flow is wired as shown in Figure 4-29 on page 125. 124 Managing an SOA Environment with Tivoli Figure 4-29 getQuote request flow – The sell request flow is wired as shown in Figure 4-30. Figure 4-30 sell request flow – The getCompanies request flow is wired as shown in Figure 4-31 on page 126. Chapter 4. Advanced SOA management 125 Figure 4-31 getCompanies request flow Ensure that each of the lookup primitives is set to match the Port Type name of TraderDBServices and the Namespace of http://services.db2.trader.j2ee.itso. And, the user-defined properties in the Advanced tab must be set to match the properties serviceServerStatus with value of up and serviceResponseTime with value of good. 4.3.3 Deploying the mediation application We have completed the creation of the simple mediation flow application for our scenario. This mediation application must be exported for deployment to our application environment: 1. From the WebSphere Integration Developer workbench, select File → Export. Export the application as Integration Module. The exported module must be in the form of an Enterprise Archive (EAR) file and specify the target directory. See Figure 4-32 on page 127. 126 Managing an SOA Environment with Tivoli Figure 4-32 Export mediation module 2. Before we deploy the mediation module, we need to perform the following steps to prepare the server to enable ITCAM for SOA runtime mediation support. With the Process Server stopped, perform the following steps: a. Go to the ITCAM for SOA directory, such as: /opt/IBM/ITM/li6243/d4/KD4/bin b. Enable WebSphere data collector for ITCAM for SOA using the command, such as: ./KD4configDC.sh -enable -env 1 /opt/IBM/WebSphere/AppServer c. Configure WebSphere Process Server data collector for ITCAM for SOA: ./KD4configDC.sh -enable -env 9 /opt/IBM/WebSphere/AppServer Chapter 4. Advanced SOA management 127 d. Enable runtime mediation support: ./KD4configMediationInstall.sh -enable /opt/IBM/WebSphere/AppServer e. Start WebSphere Process Server again and you can deploy the runtime mediation support: Note: The KD4configMediationDeploy.sh will not run if there is an active managed mediation on the application server. Therefore, it is preferable to deploy this runtime mediation support before the mediation logic. However, in case the managed mediation is already installed, you can stop the managed mediation application using the WebSphere administration console before running this command. ./KD4configMediationDeploy.sh -enable /opt/IBM/WebSphere/AppServer/profiles/ProcSrv01 srv107Node01 server1 3. Access the WebSphere Process Server administration console using the URL http://srv107.itsc.austin.ibm.com:9060/ibm/console to deploy the TraderDBServicesAvailabilityMediationApp.ear that we exported in step 1 on page 126. The process is similar to deploying a standard WebSphere enterprise application. See Figure 4-33 on page 129. Accept all defaults during the installation of the mediation application EAR file. 128 Managing an SOA Environment with Tivoli Figure 4-33 Install TraderDBServicesAvailabilityMediationApp.ear 4. Next, get the service endpoint of the mediation application by inspecting the published WSDL file. Navigate to Enterprise Application → TraderDBServicesAvailabiltyMediationApp → Publish WSDL files. See Figure 4-34 on page 130. Chapter 4. Advanced SOA management 129 Figure 4-34 Get WSDL to inspect the service endpoint for the mediation application 5. Download the generated zip file and extract the WSDL file. The endpoint address is listed in the <wsdl:port> section. The definition in our environment is shown in Figure 4-35. Figure 4-35 Service endpoint for TraderDBServicesAvailabilityMediationApp 6. Verify the service endpoint of the mediation by accessing the URL from Figure 4-35 in a Web browser. The resulting page needs to be similar to Figure 4-36 on page 131. 130 Managing an SOA Environment with Tivoli Figure 4-36 Verify the service endpoint for TraderDBServicesAvailabilityMediationApp 7. We must now define a default connection to the WebSphere Service Registry and Repository. From the WebSphere Process Server Administrative console, navigate to Service Integration → WSRR definition and click New. Define the registry as shown in Figure 4-37. We called our registry TraderWSRR. Figure 4-37 WSRR definition Chapter 4. Advanced SOA management 131 8. After the application is installed, save it to the master configuration. You must restart the WebSphere Process Server. 4.3.4 Verifying the service invocation with mediation The previously mentioned endpoint is used by the TraderClientWeb to invoke the TraderDBServicesAvailabilityMediationApp module, which then routes the service request to the best available service provider after querying the WebSphere Service Registry and Repository. To verify the service flow, we can use the WebSphere Service Registry and Repository console to manually update the service metadata for the TraderDBServices deployed on either perth or khartoum to affect its connection. We can verify this service flow by stopping one of the servers. For example, we can stop the khartoum server, which means that only service to perth runs a successful call. We first set the custom property in the WebSphere Services Registry and Repository: 1. Access WebSphere Service Registry and Repository Web interface using the URL: http://laredo:9080/ServiceRegistry 2. Navigate to Service Metadata → Ports. Select TraderDBServices for perth and open the Custom Properties link. 3. In the Custom Properties, update the property values serviceServerStatus to up and serviceResponseTime to good. See Figure 4-38 on page 133. 132 Managing an SOA Environment with Tivoli Figure 4-38 Service metadata TraderDBServices port on perth 4. Save the properties. 5. Similarly for TraderDBServices in khartoum, set the property values for serviceServerStatus to down and serviceResponseTime to bad. 6. Now, invoke the service using the TraderClientWeb. The interface is shown in Figure 4-39 on page 134. Chapter 4. Advanced SOA management 133 Figure 4-39 TraderClient Web invokes the TraderDBServicesAvailabilityMediationExport 7. The call is successful, because perth is up. Click GO, and we get the list of companies. 8. We reversed the custom property values for perth and khartoum and tried again. The result is shown in Figure 4-40 on page 135. The Web Services server in khartoum is unavailable. 134 Managing an SOA Environment with Tivoli Figure 4-40 Failed server call 9. As a test, we set both perth and khartoum to be unavailable from WebSphere Services Registry and Repository. The test results shows that the Web Services failure is returned similar to Figure 4-40. The availability solution so far has demonstrated how easy it is to use a mediation with a service registry in an SOA environment to achieve service routing by just flipping the property values associated with a service instance. In order to make this function really useful, we must be able to update the service metadata automatically. We define how to update the service metadata automatically in 4.4, “Service monitoring automation” on page 136. We demonstrate the use of IBM Tivoli Monitoring solution to automate this task. Chapter 4. Advanced SOA management 135 4.4 Service monitoring automation For our scenario, we have two instances of TraderDBServices that we want to monitor. We also want to update the service metadata based on the current operational condition of the servers and services. The monitoring attributes in which we are interested are the status of the server where the service is deployed and an average service response time metric for the TraderDBService operations: We use ITCAM for WebSphere or ITCAM for Web Resources to monitor for the Web Services provider and take an automatic action to update the associated service metadata property serviceServerStatus with value of up or down in WebSphere Service Registry and Repository. ITCAM for SOA can be used to monitor the service response time metrics and take an automatic action to update the associated property serviceResponseTime as good or bad. Note: Our scenario uses two simple properties to demonstrate the monitoring and management capability. This concept can be easily extended to more sophisticated monitoring and management automation that can include other critical resources in the environment on which the service or application depends. For example, a service or dependent application might require certain performance metrics of the MQ messaging infrastructure or the DB2 database. IBM Tivoli Monitoring and IBM Tivoli Composite Application Management product families provide hundreds of monitored attributes that can address virtually any monitoring requirement. Both of the WebSphere Application Servers where TraderDBServices are deployed have been configured for monitoring by ITCAM for WebSphere and ITCAM for SOA. The monitoring data can be seen in Tivoli Enterprise Portal as shown in Figure 4-41 on page 137. 136 Managing an SOA Environment with Tivoli Figure 4-41 Tivoli Enterprise Portal navigation tree for khartoum and perth 4.4.1 Automation principles Automation is automatic monitoring of a situation or predefined problem condition using monitored resources or attributes. When a certain situation or problem condition becomes true, a predefined action or command can be executed. IBM Tivoli Monitoring also offers a simple to use situation editor and workflow editor that can be used to create custom situations, correlate multiple situations, and define a custom command. IBM Tivoli Monitoring, through Tivoli Enterprise Portal, provides a single view of the entire IT infrastructure. It offers a rich set of monitored data attributes from the monitored environments. All ITCAM offerings plug into the ITM infrastructure and offer hundreds of monitored data attributes, predefined actions, and predefined situations. The power to combine and correlate situations and monitored data across various monitored environments using multiple monitoring products, such as ITCAM for SOA, ITCAM for Web Resources, ITCAM for WebSphere, ITCAM for J2EE, OMEGAMON XE for Messaging, and IBM Tivoli OMEGAMON, offers tremendous benefit to IT operations. Chapter 4. Advanced SOA management 137 4.4.2 Update service metadata utility IBM Tivoli monitoring and ITCAM provide the foundation to create situations and take automatic actions. The update WebSphere Service Registry and Repository is done using a simple Web client utility that uses the published WebSphere Service Registry and Repository Web Services API. The utility takes the object identifier of the desired WSDL port and the property name and value to update. We install a new application, UpdateServiceMetadataInWSRRWebClientEAR in the same server as WebSphere Service Registry and Repository. The utility is called using a command line URL invoker called cURL. Note: The cURL is a free software product that is available for Linux and that can be downloaded from: http://curl.haxx.se/ You can use alternative command line interfaces or a custom Java Web Services client application instead of cURL. cURL enables us to invoke a URL to perform automation. In our environment, all automation is performed from our IBM Tivoli Monitoring server, peoria. The automation can be executed either on the same server as IBM Tivoli Monitoring Server or on the monitored system. The source code and binary for the WebSphere Service Registry and Repository update utility is included with this Redpaper. For instructions to download it, go to Appendix B, “Additional material” on page 197. The UpdateServiceMetadataInWSRRWebClientEAR contains a servlet that can be invoked using either the GET or POST method. The servlet is accessible from the URL path: http://host:port/UpdateServiceMetadataInWSRRWebClient/UpdateWSRRPropert ies This servlet takes the following arguments: bsrURI 138 This argument is a required argument that identifies the specific document metadata as the target of the invocation. Managing an SOA Environment with Tivoli endpoint This argument is an optional argument that specifies the endpoint URL for the WSRR Web Service. A sample URL looks like: http://<wsrrhostname>:<port>/WSRRCoreSDO/services/W SRRCoreSDOPort add This argument specifies a set of name and value pairs for adding a property with a specified value. This argument takes the format of: <name1>=<value1>,<name2>=<value2>, and so on update This argument specifies the set of name and value pairs for updating a property. This argument takes the format of: <name1>=<value1>,<name2>=<value2>, and so on If the property to be updated is not present, it will be added. remove This argument specifies the property or properties to be deleted. This argument takes the format of: <name1>,<name2>, and so on If the property to be removed is not available, it is ignored. A sample cURL invocation is shown in Example 4-1. Example 4-1 Sample cURL invocation curl -d \ "bsrURI=d4f935d4-4cbd-4d85.9380.0678680680cb&”\ “update=name1=value1,name2=value2"\ http://laredo:9080/UpdateServiceMetadataInWSRRWebClient/UpdateWSRRPrope rties 4.4.3 ITCAM for WebSphere and ITCAM for Web Resources situations ITCAM for WebSphere (and ITCAM for Web Resources) provide a number of predefined situations and monitored attributes. To explore predefined situations, use Tivoli Enterprise Portal and click the Situations icon as shown in Figure 4-42 on page 140. Chapter 4. Advanced SOA management 139 Figure 4-42 ITCAM for WebSphere predefined situations Some of the predefined situations offered by ITCAM for WebSphere are: 140 WASNotConnected WASContainerTransactionRollback WASDBConnectionPoolThreadTimeout WASError WASHighCPUPercentUsed WASHighGCTimePercent WASOutofHeapSpace WASServletsJSPsError WASThreadPoolPercentMaxed WASWebApplicationError Managing an SOA Environment with Tivoli Note: For more information about the situations and other monitored attributes, refer to the Web site: http://www-1.ibm.com/support/docview.wss?uid=swg27009086 ITCAM for Web Resources 6.2 adds four new situations to the previous list that give additional monitoring control of WebSphere Application Server from an application perspective. They are: WASAppDiscovered WASAppHealthGood WasAppHealthFair WASAppHealthBad For a non-WebSphere environment, the corresponding names are: J2EEAppDiscovered J2EEAppHealthGood J2EEAppHealthFair J2EEAppHealthBad For our scenario, we create four new situations that are based on Application Server Status attributes. We want to monitor the WebSphere Application Server ServerSvc on perth and khartoum where we have deployed the TraderDBServices. The situations are listed in Table 4-2 on page 142 with information about the necessary actions to take. Chapter 4. Advanced SOA management 141 Table 4-2 Situation lists Situation name Monitoring Action Perth_ServerSvc_Up Monitors when WebSphere Server ServerSvc on perth is up Updates the service metadata property serviceServerStatus for WSDL port TraderDBServices associated with perth with value = up in WebSphere Service Registry and Repository Perth_ServerSvc_Dn Monitors when WebSphere Server ServerSvc on perth is down Updates the service metadata property serviceServerStatus for WSDL port TraderDBServices associated with perth with value = down in WebSphere Service Registry and Repository Khartoum_ServerSvc_Up Monitors when WebSphere Server ServerSvc on khartoum is up Updates the service metadata property serviceServerStatus for WSDL port TraderDBServices associated with khartoum with value = up in WebSphere Service Registry and Repository Khartoum_ServerSvc_Dn Monitors when WebSphere Server ServerSvc on khartoum is down Updates the service metadata property serviceServerStatus for WSDL port TraderDBServices associated with khartoum with value = down in WebSphere Service Registry and Repository Follow these steps to create the situation Perth_ServerSvc_Up; creating other situations uses similar steps: 1. Using Tivoli Enterprise Portal, navigate to perth.itsc.austin.ibm.com node and right-click WebSphere Agent - Primary and invoke Situations. 142 Managing an SOA Environment with Tivoli Figure 4-43 Create a situation for WebSphere Agent 2. In the situation Editor dialog window, select Create New. This option opens a dialog window. Specify the name of the situation as Perth_ServerSvc_Up. Provide an optional description and click OK to continue. See Figure 4-44. Figure 4-44 New Situation: Perth_ServerSvc_Up 3. Select Attribute Comparison for the Condition Type and select Application Server Status for the Attribute Group. Select Server Name, Status, Chapter 4. Advanced SOA management 143 WASCellName, and WASNodeName for the Attribute Items to compare and click OK. See Figure 4-45. Figure 4-45 Attribute to monitor for Perth_ServerSvc_Up situation 4. The next dialog lets us define the WebSphere application server - ServerSvc attribute comparison where we will define the Server Name as AppSrv01$ServerSvc, Status as Connected, CellName as perthCell01, and Node as perthNode01. Also, update the sampling interval rate to 30 seconds and the visual state to Informational as shown in Figure 4-46 on page 145. Click OK. 144 Managing an SOA Environment with Tivoli Figure 4-46 Perth_ServerSvc_Up attribute comparison 5. Next, click the Action tab to define the command, which will be executed when this situation becomes true. 6. We will put all our scripts in the /root/automationScripts directory on peoria. We will also log the output of the scripts in the /root/automationScripts/logs directory. We will name the scripts to correspond to the situation name. The output is logged using the situation name and a situation occurrence time stamp string appended to the log file name. The time stamp parameter can be substituted by using the Attribute Substitution button and selecting the Sample Date and Time attribute. The command to execute when this situation fires is: /root/automationScripts/Perth_ServerSvc_Up > /root/automationScripts/logs/Perth_ServerSvc_Up_&{Application_Server _Status.Sample_Date_and_Time} 2>&1 See Figure 4-47 on page 146. Chapter 4. Advanced SOA management 145 Figure 4-47 Perth_ServerSvc_Up action command definition 7. Click OK to save. 8. The script Perth_ServerSvc_Up content is shown in Example 4-2. Example 4-2 Perth_ServerSvc_Up script #!/bin/ksh #Take Action script for situation - Perth_ServerSvc_Up echo Setting serviceServerStatus to up for TraderDBServices WSDL port in WSRR /usr/bin/curl -d "bsrURI=WSRR--7797c588.ec8a0705.304b9735.65a4f365-5dad-4d77.9045.19da30 19455e&update=serviceServerStatus=up" http://laredo:9080/UpdateServiceMetadataInWSRRWebClient/UpdateWSRRPrope rties 9. The service metadata update utility uses the bsrURI that is an identifier of the object that we want to update in WebSphere Service Registry and Repository. You can retrieve the value of bsrURI for the object in WebSphere Service Registry and Repository using the service registry console as shown in Figure 4-48 on page 147. 146 Managing an SOA Environment with Tivoli Figure 4-48 Retrieving bsrURI for the service metadata object Follow the steps that we used earlier to create the other situations and the corresponding action scripts. 4.4.4 ITCAM for SOA situations In this section, we discuss several of the situations and monitored attributes that are provided by ITCAM for SOA. Navigate to the Situation icon on the Tivoli Enterprise Portal menu bar. The ITCAM for SOA situations are listed under Services Management Agent and Services Management Agent Environment as shown in Figure 4-49 on page 148. Chapter 4. Advanced SOA management 147 Figure 4-49 ITCAM for SOA situations For our scenario, we create four new situations that are based on the Service Inventory 610 attributes group. We want to monitor response time metrics for TraderDBServices deployed on ServerSvc on perth and khartoum. We will define a criteria to determine when a response time is good or bad. We list the situations in Table 4-3 on page 149 with the information about which attributes we are monitoring and what actions we need to take. 148 Managing an SOA Environment with Tivoli Table 4-3 ITCAM for SOA situations Situation name Monitoring Action Perth_TrdrDBSvcResponse_Good Monitors service port name TraderDBServices and namespace http://services.db2.tra der.j2ee.itso and average elapsed round-trip time is less than 5000 milliseconds Updates the service metadata property serviceResponseTime for WSDL port TraderDBServices associated with perth.itsc.austin.ibm.com with value of good in WebSphere Service Registry and Repository Perth_TrdrDBSvcResponse_Bad Monitors service port name TraderDBServices and namespace http://services.db2.tra der.j2ee.itso and situation ResponseTImeCritical_61 0 is true on server ServerSvc in node perth.itsc.austin.ibm.com Updates the service metadata property serviceResponseTime for WSDL port TraderDBServices associated with perth.itsc.austin.ibm.com with value of bad in WebSphere Service Registry and Repository Khartoum_TrdrDBSvcResponse_Good Monitors service port name TraderDBServices and namespace http://services.db2.tra der.j2ee.itso and average elapsed round-trip time is less than 5000 milliseconds on server ServerSvc in node khartoum.itsc.ausitn.ibm.c om Updates the service metadata property serviceResponseTime for WSDL port TraderDBServices associated with khartoum.itsc.austin.ibm.com with value of good in WebSphere Service Registry and Repository Khartoum_TrdrDBSvcResponse_Bad Monitors service port name TraderDBServices and namespace http://services.db2.tra der.j2ee.itso and situation ResponseTImeCritical_61 0 is true on server ServerSvc in node khartoum.itsc.austin.ibm.c om Updates the service metadata property serviceResponseTime for WSDL port TraderDBServices associated with khartoum.itsc.austin.ibm.com with value of bad in WebSphere Service Registry and Repository Chapter 4. Advanced SOA management 149 We used the following steps to create the Perth_TrdrDBSvcResponse_Good situation: 1. Navigate to the node perth.itsc.austin.ibm.com in Tivoli Enterprise Portal. Create a new situation. Specify the situation name as Perth_TrdrDBSvcResponse_Good. 2. Select Services Inventory 610 for the Attribute Group and select the Service Port Name, Service Port Namespace, Average Elapsed Message Round Trip Time, and Interval Status attribute items. Click OK. See Figure 4-50. Figure 4-50 Attribute group and attribute items for Perth_TrdrDBSvcResponse_Good 3. Specify the attribute values as shown in Table 4-4 on page 151. 150 Managing an SOA Environment with Tivoli Table 4-4 Attribute selection Attribute name Attribute value Service Port Name TraderDBServices Service Port Namespace http://services.db2.trader.j2ee.itso Average Elapsed Message Round Trip Time 5000 milliseconds Interval Status Complete Figure 4-51 Situation Perth_TrdrDBSvcResponse_Good attribute comparison 4. Next, click the Action tab. Select Execute the Action at the Managing System (TEMS). We use the same action scheme as the ITCAM for WebSphere situation in 4.4.3, “ITCAM for WebSphere and ITCAM for Web Resources situations” on page 139. Chapter 4. Advanced SOA management 151 The action command that we use is: /root/automationScripts/Perth_TrdrDBSvcResponse_Good > /root/automationScripts/logs/Perth_TrdrDBSvcResponse_Good_&{Services _Inventory_610.Interval_End_Time} 2>&1 The situation action dialog is shown in Figure 4-52. Figure 4-52 Command for situation Perth_TrdrDBSvcResponse_Good And the Perth_TrdrDBSvcResponse_Good script is shown in Example 4-3. Example 4-3 Perth_TrdrDBSvcResponse_Good #!/bin/ksh # Take Action for situation - Perth_TrdrDBSvcResponse_Good echo Setting serviceResponseTime to good for TraderDBServices WSDL port in WSRR /usr/bin/curl -d "bsrURI=WSRR--7797c588.ec8a0705.304b9735.65a4f365-5dad-4d77.9045.19da30 19455e&update=serviceResponseTime=good" http://laredo:9080/UpdateServiceMetadataInWSRRWebClient/UpdateWSRRPrope rties 5. The situation Perth_TrdrDBSvcResponse_Bad uses the predefined situation called ResponseTimeCritical_610. This situation monitors for a bad service response time. Use the situation editor to create the situation, and for this 152 Managing an SOA Environment with Tivoli situation, select Condition Type as Situation Comparison and select ResponseTimeCritical_610 as the situation to compare. See Figure 4-53. Figure 4-53 Select Situation Comparison ResponseTimeCritical_610 for Condition Type 6. Add an additional condition to match Service Port Name and Service Port Namespace. Set the values for these as you did in the previous situation. Set the ResponseTimeCritical_610 to true. See Figure 4-54 on page 154. Chapter 4. Advanced SOA management 153 Figure 4-54 Perth_TrdrDBSvcResponse_Bad situation attribute comparison 7. Use the same method for specifying the action and the script. 8. Define the similar situations for the khartoum server. 4.4.5 Verifying situation automation To verify that the situation works, we check the custom properties in WebSphere Service Registry and Repository for perth. The status is up. Then, we bring down the WebSphere Application Server ServerSvc in perth using the command: /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/stopServer.sh ServerSvc The automation occurs as the situation fires in IBM Tivoli Monitoring as indicated in the Tivoli Enterprise Portal. Now, checking at the WebSphere Service Registry 154 Managing an SOA Environment with Tivoli and Repository, we see that in Figure 4-55, the serviceServerStatus is filled with the value down. Figure 4-55 The serviceServerStatus in WSRR shows as down for perth We can ensure that access from the TraderClientWeb is not affected at all, because all requests are being routed to khartoum. We bring ServerSvc in perth back up. This triggers the Perth_ServerSvc_Up situation. This can be verified in the situation console. This situation will also update the serviceServerStatus property to up for the TraderDBServices WSDL port service metadata. You can also simulate a long or high response time by modifying the threshold of the situation and testing the automation. 4.5 Using managed message logger The managed message logger primitives that we use in the message flows are discovered by ITCAM for SOA and displayed in Tivoli Enterprise Portal. In our environment, they can be accessed by navigating to Enterprise → Linux Chapter 4. Advanced SOA management 155 Systems → srv107.itsc.austin.ibm.com → Service Management Agent → Mediation Configuration. From the displayed list, select one of the loggers, such as BuyLogger, right-click, and select Take Action → ConfigureMediation_601. You will notice the property Enabled, which can checked or not. Click OK to save. This will configure the mediation at run time. 4.5.1 Viewing the message data The WebSphere Process Server by default is set up to use Cloudscape® database. The database for message logger is automatically created by WebSphere Process Server. You can use the CView utility to view the logged message data. In order to access the cloudscape message log database file, we must stop the mediation server that also is currently using this file: 1. Stop the mediation server (WebSphere Process Server). 2. Start a terminal window. 3. On srv107, change the directory to: /opt/IBM/WebSphere/AppServer/cloudscape/bin/embedded 4. Run ./cview.sh to start the cloudscape database viewing utility, as shown in Figure 4-56 on page 157. 156 Managing an SOA Environment with Tivoli Figure 4-56 CView utility to view cloudspace data 5. Use the menu File → Open and then Browse for the directory: /opt/ibm/WebSphere/AppServer/profiles/ProcSrv01/databases/EsbLogMedD B 6. Navigate to Tables → MSGLOG. Click the Data tab. You will see the service message data. See Figure 4-57 on page 158. Chapter 4. Advanced SOA management 157 Figure 4-57 Message log table Important: In a production environment, you must use DB2 or an enterprise strength database in order to use the database utilities. Using DB2 allows multiple accesses to the log tables without needing to stop the process server. 4.6 Summary In this chapter, we demonstrated the capabilities of IBM Tivoli Monitoring and the ITCAM suite of products to monitor and manage the application server and services to maintain service availability in an SOA environment. Integration with WebSphere Enterprise Service Bus and WebSphere Service Registry and Repository was shown along with the ease of adding a management layer in the WebSphere Enterprise Service Bus without actually changing the service provider and the service consumer. We explored the automation capabilities of IBM Tivoli Monitoring along with predefined and custom situation and monitored attributes that you can easily combine to create automation for an SOA-based application and services. 158 Managing an SOA Environment with Tivoli 5 Chapter 5. Managing an SOA application in a business context In this chapter, we discuss the implication of managing an SOA-based environment in a business context. We discuss: “Solution overview” on page 160 “Tivoli EIF probe” on page 161 “Defining situations” on page 162 “Designing business services” on page 164 “Defining service level” on page 174 “Getting the business status” on page 175 © Copyright IBM Corp. 2008. All rights reserved. 159 5.1 Solution overview The business management solution involves implementing Tivoli Business Service Manager V4.0 to manage an SOA-based application. Tivoli Business Service Manager allows the status of an IT resource to affect an abstract entity based on an impending problem and also provides a representation of service level attainment. Figure 5-1 sows the Tivoli Business Service Manager solution. Tivoli Enterprise Console CCMDB Relational databases Data fetcher ESDA C Discovery Library Books NetView xml files Optional components XML Toolkit Tivoli Service Level Advisor IBM Tivoli Monitoring OMEGAMON ITCAM Tivoli EIF probe JDBC TBSM processes SLA events TBSM postgreSQL Netcool GUI Foundation Netcool OMNIbus TBSM ObjectServer TBSM Console TBSM Server events Netcool Webtop launch user data Tivoli Enterprise Portal Netcool Security Manager user data license Netcool License Server Figure 5-1 Tivoli Business Service Manager solution The Tivoli Business Service Manager solution that is shown in Figure 5-1 processes events from an Netcool/Omnibus object server. For our purposes in managing an SOA-based application, these events are generated by IBM Tivoli Composite Application Management products that are sent through IBM Tivoli Monitoring. 160 Managing an SOA Environment with Tivoli IBM Tivoli Monitoring events are received by Netcool/Omnibus through the TEC/EIF probe component. The TEC/EIF probe component is a Java-based process that receives TEC events and inserts these events into Omnibus. For more information about Tivoli Business Service Manager processing, refer to IBM Tivoli Business Service Manager V4.1, REDP-4288. 5.2 Tivoli EIF probe The Tivoli EIF probe provides a mechanism to transfer events from IBM Tivoli Monitoring (ITM) to Tivoli Business Service Manager. Events are mapped as shown in Table 5-1. Table 5-1 Field mapping for ITM situation Field Content Ack No Agent ITM_Services_Inventory_610: attribute group of the situation Alert Group ITM_Services_Inventory_610: attribute group of the situation Alert Key ResponseTimeCritical_610: situation name Class TME10tecad Identifier ResponseTimeCritical_610:D4:b7a17fb3:srv107-server1:270d6997d0bd943395 ee8fb09d5bd5d1:ITM_Services_Inventory_610 Multiple identifier, including situation name, agent name, situation event id, and attribute group Manager tme10tecad probe on srv179.itsc.austin.ibm.com Node D4:b7a17fb3:srv107-server1: agent id NodeAlias D4:b7a17fb3:srv107-server1: agent id Owner nobody Severity Critical Summary ResponseTimeCritical_610[(Avg_Elapsed_Time>10000 AND Interval_status=Complete) ON 270d6997d0bd943395ee8fb09d5bd5d1 ON (Avg_Elapsed_Time = <value>) Suppr_Escl Normal Type ITM Problem Chapter 5. Managing an SOA application in a business context 161 Field Content BSM_ClassName N/A BSM_Identity D4:b7a17fb3:srv107-server1 ITMDisplayItem 270d6997d0bd943395ee8fb09d5bd5d1 ITMEventData ~ ITMHostname peoria.itsc.austin.ibm.com ITMIntType U ITMResetFlag N/A ITMStatus Y ITMTime <ts> TECDate <date> TECDateReception N/A TECEventHandle N/A TECFQHostname srv107.itsc.austin.ibm.com TECHostname srv107.itsc.austin.ibm.com TECRepeatCount 0 TECServerHandle N/A TECStatus N/A The mapping of situation-based event information into Omnibus events shown in Table 5-1 on page 161 is important for defining rules in Tivoli Business Service Manager. The rules govern how objects are displayed in Tivoli Business Service Manager and how status affects the business in Tivoli Business Service Manager. 5.3 Defining situations We start by defining situations that generate events. The situations definition must adhere to these guidelines: Situations that affect resource status, that is, situations that generate alerts for the incoming status rules, must have a reset pair to clear or close the situation alert condition. 162 Managing an SOA Environment with Tivoli You can define additional situations to generate harmless events that can be triggered for creating service instance objects. You can run these harmless events as frequently as daily to ensure that you create all discovered resource as needed. Note: Tivoli Business Service Manager does not have a mechanism for an event-based service instance object to be removed when the actual resource object no longer exists. Situation forwarding to Tivoli Enterprise Console must be active and working. Based on these premises, we define situations as listed in Table 5-2. Table 5-2 Situation definitions Situation name Agent Subscriber Condition BSM_WAS_Down WebSphere agent *WAS WebSphereApplication Server/Status = Disconnected BSM_WAS_Up WebSphere agent *WAS WebSphereApplication Server/Status = Connected BSM_SOA_MsgRate_Bad SOA agent *KD4 N/A BSM_SOA_MsgRate_OK SOA agent *KD4 N/A BSM_SOA_Resp_Bad SOA agent *KD4 N/A BSM_SOA_Resp_OK SOA agent *KD4 N/A Figure 5-2 on page 164 shows an example of an ITCAM for SOA event. Chapter 5. Managing an SOA application in a business context 163 Figure 5-2 Sample event in Omnibus 5.4 Designing business services We wanted to illustrate the Trader application in a meaningful business context. We depict this representation of the application in Figure 5-3 on page 165. 164 Managing an SOA Environment with Tivoli Application Application_Component Application_Server Web_Services_Operation Figure 5-3 Business service structure To achieve this structure, we define the following service templates: Application This template represents an application aggregate. This object always must have an autodiscovery of Trader in our environment: – Incoming status rule: None – Auto population rule: Always create an instance called Trader – Child aggregation rules: Any child of type Application_Component Application_Component This template represents a component within an application. For an SOA-based application, we define a specific Services Provider, Service Consumer, and Service Bus: – Incoming status rule: None – Auto population rule: Create an instance depending on the child type – Child aggregation rules: • Bad when any Application_Server status went bad • Bad when 50% of the Web_Services_Operation objects went bad Application_Server This template represents the application server resources that are being used by the application. It can be a WebSphere Application Server or WebSphere Message Broker: – Incoming status rule: Provided by ITCAM for WebSphere Chapter 5. Managing an SOA application in a business context 165 – Auto population rule: Collect from event hostname - profile - server – Child aggregation rule: Bad when more than 33% of the Web_Services_Operation objects went bad Web_Services_Operation This template represents the Web Services operations as dictated by ITCAM for SOA monitoring function. The monitoring provides statistics related to Web Services on a specific application server. – Incoming status rule: Provided by ITCAM for SOA – Auto population rule: Collect from event hostname - profile - server - WS operation – Child aggregation rules: None The following procedure defines the templates: 1. Log on to the Tivoli Business Service Manager console at http://<tbsm>:8080. We use a default Tivoli Business Service Manager installation with the user ID of admin, and the password is netcool. See Figure 5-4 on page 167. 166 Managing an SOA Environment with Tivoli Figure 5-4 Initial Tivoli Business Service Manager window 2. Change to the Service Administration view and click Go. 3. Creating the Application template: a. In the left navigation tree, select the Templates tab. Click the icon to create a new service template. The new template dialog is shown in Figure 5-5 on page 168. Chapter 5. Managing an SOA application in a business context 167 Figure 5-5 New template for an application b. We decide that the Application template will have only a single instance, which is called Trader. We do not create any incoming status rule. c. Save the Application template by clicking the disk ( )icon 4. Now, we create the Application_Component, Application_Server, and Web_Services_Operation templates similarly to the Application template. You have to select the new template icon every time. 5. Set the dependency of the templates: a. Select the Application_Component template and click the Children rule icon . b. Define the child by selecting the Any child rule for Web_Services_Operation. See Figure 5-6 on page 169. 168 Managing an SOA Environment with Tivoli Figure 5-6 Adding any child rule c. Click OK and add another rule for Application_Server. d. Click the icon to save the template changes. e. Perform the same action for Application templates to create the hierarchy that is shown in Figure 5-7 on page 170. Chapter 5. Managing an SOA application in a business context 169 Figure 5-7 Template hierarchy 6. Define the incoming status rule for collecting information from IBM Tivoli Monitoring situations: – For the Web_Services_Operation level, define an incoming status rule from the icon . The incoming status rule has the following definitions: • • • Discriminator of Default Class(0) Instance name fields of Node and AlertKey Selected filter fields of AlertGroup and Severity See the definition in Figure 5-8 on page 171. 170 Managing an SOA Environment with Tivoli Figure 5-8 Incoming status rule Chapter 5. Managing an SOA application in a business context 171 – For the Application_Server level, the incoming status rule is defined with: • • • Discriminator of Class(0) Instance name fields of Node and AlertKey Selected filter fields of AlertGroup and Severity 7. Defining auto population rules. The auto population rule for Web_Services_Operation template is created by: a. Clicking on the new auto population icon b. Defining the auto population rule for Web_Services_Operation; see Figure 5-9. Figure 5-9 Auto population rule c. Then, moving up the hierarchy, define the Application_Server, Application_Component, and Application objects as shown in Figure 5-10 on page 173. 172 Managing an SOA Environment with Tivoli Figure 5-10 Auto population rule d. Also, create a new auto population rule for the Application_Server template as shown in Figure 5-11 on page 174. Chapter 5. Managing an SOA application in a business context 173 Figure 5-11 Defining an auto population rule for the Application_Server template 5.5 Defining service level We can now define service level monitoring with Tivoli Business Service Manager. 174 Managing an SOA Environment with Tivoli There are three types of service level definitions, which are: Duration-based: This type defines how long the resource is unavailable. The service level breach is based on the length of single unavailability. Cumulative duration-based: This type defines the overall unavailable time within a time span, for example, the service level is defined from the total unavailability over a month. Incident-based: This type is defined as the total number of unavailability incidents over a time span. You can define either one or all of these service level definition types for the Service Template. We choose to implement the service level based on Table 5-3. Table 5-3 Service level definitions Object Duration Cumulative Incident Warning Violation Warning Violation Warning Violation Application 1 minute 5 minutes 5 minutes 10 minutes 10 15 Application_Component 1 minute 5 minutes 5 minutes 10 minutes 5 10 Application_Server 5 minutes 10 minutes 15 minutes 30 minutes 3 5 Web_Services_Operation 5 minutes 10 minutes 15 minutes 30 minutes 3 5 5.6 Getting the business status The observed result of Tivoli Business Service Manager definitions is in the terms of service instance objects and its reports. When you are logged in to Tivoli Business Service Manager Web console as a user, you are presented with a desktop interface. This interface allows you to see and manage business service status. From the initial login for our Trader application, you see the view that is shown in Figure 5-12 on page 176. This view represents the Trader application and its components. Chapter 5. Managing an SOA application in a business context 175 Figure 5-12 Trader application In Figure 5-12, all of the states are good (green). When an operation is degraded, such as the response time of the buy operation in perth slows down, the buy object will become red. The outage is eventually affecting the duration service level as shown in Figure 5-13 on page 177 (shown in yellow). This outage, however, has not affected the Trader application itself, because an alternative option for using the khartoum server is still available. 176 Managing an SOA Environment with Tivoli Figure 5-13 Service level impacted for buy in perth In the event that the SCA mediation in srv107 is down, this triggers a major outage on the Application_Server object and generates an outage call (red) all the way up to the Trader application. See Figure 5-14 on page 178. Chapter 5. Managing an SOA application in a business context 177 Figure 5-14 Outage of the mediation server 178 Managing an SOA Environment with Tivoli A Appendix A. The Trader application In this chapter, we explain the Trader application. We divide the discussion into: “Application components” on page 180 “Software requirements” on page 193 © Copyright IBM Corp. 2008. All rights reserved. 179 Application components The Trader application is a multi-component composite application that runs on heterogeneous platforms and execution environments. It is a simple stock trading application that allows the user to list the companies, get a quote, and trade stocks of the listed companies. Figure A-1 shows the Trader application conceptual interfaces. IMS CICS Trader IMS Trader CICS DB2 Trader DB2 Trader Tomcat Trader Server applications Trader Java client Trader Web Client Trader Portal Client Figure A-1 The Trader application You can view the Trader application as a three layer or three tier structure: The Trader application has three types of front-end interfaces: a native Java client, a Web interface, and a portal-based interface. Each interface has the ability to connect to the server application that provides the business logic. The connection to the server applications is based on Web Services calls. The server applications are differentiated based on their various access methods to the underlying data or the platform on which it resides. These are Java 2 Platform, Enterprise Edition (J2EE)-based applications that serve as Web Services providers. 180 Managing an SOA Environment with Tivoli The back-end data storage can be IMS, CICS on z/OS, or a DB2 database. The DB2 database can reside on z/OS or a distributed server. In our environment, we deploy the DB2 database in a distributed environment. We discuss the components in the following sections: “Portal interface” on page 181 “Front-end J2EE Web application” on page 183 “Java desktop application” on page 186 Portal interface The Trader portal interface consists of three portlets that communicate with each other. Figure A-2 shows the portal client. Figure A-2 The Trader portal client Appendix A. The Trader application 181 The Trader client portlet is the main portlet that lets you query the available companies. If you request a quote for the company, the quote information is shown in the Trader quote portlet. The Trader quote portlet allows you to buy or sell stocks of the currently displayed company. The Trader message portlet just collects and displays the messages from the application. The Trader client portlet requires you to specify the host and port of the back-end server to which you are connected. This requirement means that you are only allowed to connect to the servers that reside on the same J2EE servers. This requirement introduces the need to have a Web Services mediation to pool all the connections, and then the mediation can connect to the appropriate Web Services provider. The connections in the Service Component Architecture (SCA) column are used to connect to a WebSphere Enterprise Service Bus mediation, and the connections in the MQ column are used to connect to a WebSphere Message Broker mediation. The portal application is distributed as a single Web archive file, which is called TraderPortletClient1.war. 182 Managing an SOA Environment with Tivoli Front-end J2EE Web application We developed the front-end Web application using the Web Services client wizard, the Trader*Services projects. The application consists of: Initial login page in login.html (Figure A-3) Figure A-3 Login page Note: The DB2, IMS, and CICS radio buttons that are shown in Figure A-3 are not normally available to a user. We include them in our sample application purely to highlight the possible back-end systems. Similarly, a typical application does not select a target host, but we show selecting a host here as part of our lab environment. ListCompanyServlet (Figure A-4 on page 184): Invokes the back-end ListCompany Web Services Appendix A. The Trader application 183 Figure A-4 List Company page GetQuotesServlet (Figure A-5 on page 185): Invokes the back-end GetQuote Web Services 184 Managing an SOA Environment with Tivoli Figure A-5 Quotes window BuySellServlet: Invokes either the Buy or Sell Web Services LogoutServlet: Clears up the session bean We provides three type of enterprise application archive (ear) files for the client interface: TraderClientEAR: This ear file runs the TraderClientWeb application that provides the basic Trader application functionality. TraderClientMemEAR: This ear file runs the TraderClientMem application that has a memory leak in the logic for testing a memory leak situation. TraderClientLckEAR: This ear file runs the TraderClientLck application that has a lock problem injected for testing a deadlock situation. Appendix A. The Trader application 185 Java desktop application We also developed the desktop application from the Web Services client wizard from WebSphere Studio Application Development. It consists of the following Java classes: TraderClientLogin.java: JDialog extension that provides the initial parameter (Figure A-6) Figure A-6 Login dialog TraderClientMain.java: Main JApplet that provides the list of companies (Figure A-7) Figure A-7 Company listing 186 Managing an SOA Environment with Tivoli TraderClientQuote.java: Company quote window that allows the invocation of buying or selling stock (Figure A-8) Figure A-8 Quote window Back-end implementation The back-end systems consists of two entities: the company and the customer. The company has the quotes definitions, and the customer database has the customer’s name and the customer’s stock ownership. Figure A-9 on page 188 shows the conceptual data structure. Appendix A. The Trader application 187 COMPANY CUSTOMER Company Name Stock price Price history 7 days Commission List company Customer Name Company name Stock owned GetQuote Buy/Sell Stock Figure A-9 Entity diagram The back-end system is implemented in the following platforms: IMS: Implemented in a single IMS transaction called TRADERBL CICS: Implemented in a single CICS transaction called TRADERBL DB2: Implemented as two tables: the customer table and the company table IMS implementation A single transaction called TRADERBL represents the IMS implementation. This transaction, which is written in COBOL, reads the message that contains the appropriate command and arguments. The TRADERBL transaction accesses two databases: company and customer. CICS implementation The CICS implementation consists of two programs: TRADERPL: The presentation logic for a 3270 interface that can be invoked using the TRAD transaction TRADERBL: The business logic for the Trader application that will be invoked from either the TRAD transaction or from a distributed CSMI transaction. Uses two databases: CUSTFILE and COMPFILE DB2 implementation The DB2 implementation is represented in two tables: the CUSTOMER table and the COMPANY table. 188 Managing an SOA Environment with Tivoli Back-end J2EE servers The back-end J2EE servers run on a WebSphere server for IMS, DB2, and CICS access and on an Apache Tomcat server for DB2 access. WebSphere-based Web Services The following modules are deployed into the WebSphere-based Web Services server: TraderDBServices.ear: This program accesses DB2 data. It consists of the following modules: – TraderDBWeb: Direct front end for the Trader DB, which is useful for validating that the Trader DB application is running – TraderDBServices: Web module that provides Web Services provider implementation – Trader_DB: Contains the database access module TraderIMSServices.ear: This program accesses the IMS server using the IMS Connect for Java J2EE Connector architecture (J2C) connection. It consists of the following modules: – TraderIMSWeb: Direct front end for the Trader IMS, which is useful for validating that the Trader IMS application is running – TraderIMSServices: Web module that provides Web Services provider implementation – TraderIMSEJB and TraderIMSEJB2: EJB implementations for accessing the J2C interface TraderCICSServices.ear: This program accesses the CICS server using the CICS Transaction Gateway J2C connection. It consists of the following modules: – TraderCICSWeb: Direct front end for the Trader CICS, which is useful for validating that the Trader CICS application is running – TraderCICSServices: Web module that provides Web Services provider implementation – TraderCICSEJB and TraderCICSEJB2: EJB implementations for accessing the J2C interface Apache Tomcat server The Tomcat server runs the TraderTomcat Web application that acts as the Web Services provider. The Web Services are implemented as JDBC calls to a DB2 database. We used a different DB2 database from the TraderDB application to show a different set of companies. Appendix A. The Trader application 189 WebSphere Enterprise Service Bus mediation The WebSphere Enterprise Service Bus mediation that we use is simple mediation logic that queries the WebSphere Services Registry and Repository (WSRR) server for the location of the service and invokes them. This mediation allows the injection of logic to identify which Web Services servers are available and to redirect the call if necessary. The mediation is deployed in four modules: TraderDBMediation TraderCICSMediation TraderIMSMediation TraderTomcatMediation The WebSphere Enterprise Service Bus mediation implementation for the Trader application is shown in Figure A-10. WebSphere ESB TraderTomcatMediationWeb/ sca/TraderTomcatServices TraderIMSMediationWeb/sca/ TraderIMSServices TraderDBMediationWeb/sca/ TraderDBServices TraderTomcatServices/ services/TraderTomcatServices Check endpoint TraderCICSMediationWeb/sca/ TraderCICSServices TraderIMSServices/services/ TraderIMSServices TraderDBServices/services/ TraderDBServices TraderCICSServices/services/ TraderCICSServices WebSphere Service Registry & Repository Figure A-10 Trader mediation with WebSphere ESB All of those mediations have similar logic as shown in Figure A-11 on page 191. 190 Managing an SOA Environment with Tivoli Figure A-11 Mediation logic Figure A-11 only shows the request logic. It uses the Endpoint lookup mediation to query based on the port, namespace, and version. We add another field, which is called active, that we can turn on or off based on which Web Services provider we want to activate. WebSphere Message Broker mediation The message broker implementation currently uses a hard-coded target. Further enhancement is possible to connect WebSphere Message Broker to WebSphere Services Registry and Repository in order to query for the Web Services endpoint. We did not do this in this project. The broker logic uses four message flow definitions that are stored in a Broker archive (bar) file. The bar file is then deployed to the Message Broker execution Appendix A. The Trader application 191 group for processing the Web Services calls. Figure A-12 shows the conceptual structure of the broker. WebSphere Message Broker traderBroker Execution Group TraderEGrp SIBDB TraderMQ.bar TraderTomcatServices/ services/TraderTomcatServices TraderIMSServices/services/ TraderIMSServices TraderDBServices/services/ TraderDBServices TraderCICSServices/services/ TraderCICSServices MQ WebSphere Message Broker configMgr Figure A-12 Broker structure The message flow logic uses: An HTTP input node gets the Web Services requests. The input node forwards the request to the HTTP request node that actually performs the Web Services call. The endpoint address is hardcoded here. The HTTP reply node sends the result back to the requester. Figure A-13 on page 193 shows the message flow implementation. 192 Managing an SOA Environment with Tivoli Figure A-13 Message flow implementation Software requirements We discuss the software that is required to run the Trader application here. We divide the discussion into: “Runtime environment” on page 193 “Development environment” on page 195 Runtime environment We use the following software for running the Trader components. Other versions of the software products that we use might be acceptable. Figure A-14 on page 194 shows the detailed configuration of our Trader application. Appendix A. The Trader application 193 CICS TS 3.1 CICS Transaction Gateway V6 IMS V9 IMS Connect for Java V9 TRADERBL TRADERPL TRADERBL DB2 UDB V8.2 FP15 TRADER TRADTOMC WebSphere Application Server ND V6.1 Apache Tomcat V5.5.20 TraderTomcatWeb.ear TraderCICSSvc.ear TraderDBSvc.ear TraderIMSSvc.ear WebSphere Message Broker V6.0.0.2 WebSphere MQ V6 TraderMQ.bar WebSphere Process Server V6.0.2 WebSphere Application Server ND V6.0.2.17 Trader*Mediation.ear WebSphere Application Server ND V6.1 TraderClient.ear TraderClientMem.ear TraderClientLck.ear Java client TraderClient.jar WebSphere Services Registry Repository V6.0.2 WebSphere Application Server ND V6.0.2.17 *.wsdl WebSphere Portal Server V6.0 WebSphere Application Server ND V6.0.2.17 TraderPortletClient1 Figure A-14 Trader application detail The detailed components are: Trader Java client (TraderClient.jar) TraderPortletClient1.war TraderClient.ear, TraderClientMem.ear, and TraderClientLck.ear 194 Managing an SOA Environment with Tivoli TraderCICSMediation.ear, TraderIMSMediation.ear, TraderDBMediation.ear, and TraderTomcatMediation.ear TraderMQ.bar TraderDBSvc.ear, TraderCICSSvc.ear, and TraderIMSSvc.ear TraderTomcatServices.war DB2 databases Trader IMS Trader CICS Development environment We use various development tools for developing the Trader application. You might need to use these tools to customize or change the Trader information to suit your needs. The development software products that we use are: Rational Application Development V7: This product is a general purpose programming environment that is based on Eclipse. We use this tool for developing the J2EE applications, the portal application, and the Java client. WebSphere Integration Developer V6.0.2: This product is the tool for defining mediation and process modelling for WebSphere Enterprise Service Bus and WebSphere Process Server. This product is based on Eclipse too. We use WebSphere Integration Developer for developing the Mediation modules to deploy to WebSphere Enterprise Service Bus. WebSphere Message Broker Toolkit V6.0.2: This product contains the tools for administering and developing applications for WebSphere Message Broker. This tool is based on Eclipse too. If you install this product on the same machine as WebSphere Integration Developer, it will use the same Eclipse environment. We specifically use different workspace directories for WebSphere Integration Developer and WebSphere Message Broker Toolkit to prevent any conflicts that the products might cause. COBOL compiler for IMS and CICS programs in z/OS. Also, we use various IMS and CICS compilers to translate the necessary definitions in IMS and CICS. Appendix A. The Trader application 195 196 Managing an SOA Environment with Tivoli B Appendix B. Additional material This paper refers to additional material that you can download from the Internet as described next. Locating the Web material The Web material associated with this paper is available in softcopy on the Internet from the IBM Redbooks Web server. Point your Web browser at: ftp://www.redbooks.ibm.com/redbooks/REDP4318 Alternatively, you can go to the IBM Redbooks Web site at: ibm.com/redbooks Select the Additional materials and open the directory that corresponds with the IBM Redpaper form number, REDP4318. © Copyright IBM Corp. 2008. All rights reserved. 197 Using the Web material The additional Web material that accompanies this paper includes the following files: File name REDP4318.zip Description Zipped samples The file consists of the following files: TraderClient.ear Client Web application TraderDBSvc.ear Server Web application trader.tar.gz Tar gzip file of DB2 tables for db2move command TraderDBServicesAvailabilityMediationApp.ear Mediation module UpdateServicesMetadataInWSRRWebClientEAR_60.ear Sample WSRR access Web application System requirements for downloading the Web material The Web material can be used for any system that is supported to run WebSphere Enterprise Service Bus application with WebSphere Services Registry and Repository. The temporary space for the zip file and its content is 10 MB. How to use the Web material Create a subdirectory (folder) on your workstation, and unzip the contents of the Web material zip file into this folder. 198 Managing an SOA Environment with Tivoli Abbreviations and acronyms APF Authorized Program Facility ITCAM API Application Programming Interface IBM Tivoli Composite Application Monitor ITIL® ARM Application Response Measurement Information Technology Infrastructure Library ITSO ASM Application Service Monitor International Technical Support Organization BCM Byte Code Modification J2C Java 2 Connector CAT Client Application Tracker J2EE Java 2, Enterprise Edition CD-ROM Compact Disk - Read-Only Memory JAR Java Archive JAX-RPC Customer Information Control System Java API for XML-based Remote Procedure Call JCL Job Control Language CLI Command Line Interface JDBC Java Database Connectivity CPU Central Processing Unit JES2 Job Entry Subsystem 2 DASD Direct Access Storage Device JMX Java Management Extension EJB Enterprise JavaBeans™ JNI™ Java Native Interface ESB Enterprise Service Bus JRE™ Java Runtime Environment ETE™ End-to-End JVM Java Virtual Machine FFDC First Failure Data Capture JVMPI FMID Function Modification Identifier Java Virtual Machine Profiler Interface JVMTI GLUE Global User Exit Java Virtual Machine Tool Interface GUI Graphical User Interface LDAP HFS Hierarchical File System Lightweight Directory Access Protocol HTML Hypertext Markup Language MSC Multiple Systems Coupling HTTP Hypertext Transfer Protocol MVS Multiple Virtual Storage HTTPS HTTP Secure OTMA Open Transaction Manager Access IBM International Business Machine Corporation PCB Program Control Block IMS Information Management System PDF Portable Document Format PLT Program List Table IPL Initial Program Load PMI ISM Internet Service Monitoring Performance Management Interface CICS © Copyright IBM Corp. 2008. All rights reserved. 199 RACF® Resource Access Control Facility RMI Remote Method Invocation RTE Runtime Environment SCA Service Component Architecture SMF System Measurement Facility SMP/E System Modification Program/Extended SNMP Simple Network Management Protocol SOA Service-oriented architecture SQL Structured Query Language SSH Secure Shell SSL Secure Sockets Layer SSM System Service Monitor STI Synthetic Transaction Investigator SYSPLEX System Complex TCP/IP Transmission Control Protocol/Internet Protocol TRUE Transaction User Exit TSO Time Sharing Option UDB Universal Database UML Universal Markup Language URI Universal Resource Identifier URL Universal Resource Locator WLM Workload Manager WRM Web Response Monitor WSDL Web Services Definition Language XML Extensible Markup Language 200 Managing an SOA Environment with Tivoli Related publications The publications listed in this section are considered particularly suitable for a more detailed discussion of the topics covered in this paper. IBM Redbooks publications For information about ordering these publications, see “How to get IBM Redbooks publications” on page 206. Note that several of the documents referenced here might be available in softcopy only: IBM Tivoli Composite Application Manager Family Installation Configuration and Basic Usage, SG24-7151 Deployment Guide Series: IBM Tivoli Composite Application Manager for WebSphere V6.0, SG24-7252 Getting Started with IBM Tivoli Monitoring 6.1 on Distributed Environments, SG24-7143 IBM Tivoli OMEGAMON XE V3.1.0 Deep Dive on z/OS, SG24-7155 Implementing OMEGAMON XE for Messaging V6.0, SG24-7357 Installing WebSphere Studio Application Monitor V3.1, SG24-6491 Large-Scale Implementation of IBM Tivoli Composite Application Manager, REDP-4162 Migrating to Netcool/Precision for IP Networks - Best Practices for Migrating from IBM Tivoli NetView, SG24-7375 Solution Deployment Guide for IBM Tivoli Composite Application Manager for WebSphere, SG24-7293 Unveil Your e-business Transaction Performance with IBM TMTP 5.1, SG24-6912 WebSphere Studio Application Monitor V3.2 Advanced Usage Guide, SG24-6764 Understanding SOA Security Design and Implementation, SG24-7310 IBM Tivoli Business Service Manager V4.1, REDP-4288 © Copyright IBM Corp. 2008. All rights reserved. 201 Other publications These publications are also relevant as further information sources: IBM Tivoli Composite Application Manager for Response Time Tracking publications: – IBM Tivoli Composite Application Manager for Response Time Tracking Administrator’s Guide, SC32-1905 – IBM Tivoli Composite Application Manager for Response Time Tracking V6.1 Administrator’s Guide, SC32-9483 – IBM Tivoli Composite Application Manager for Response Time Tracking V6.1 Checking Performance and Availability, SC32-9484 – IBM Tivoli Composite Application Manager for Response Time Tracking V6.1 Command Reference Guide, SC32-9485 – IBM Tivoli Composite Application Manager for Response Time Tracking V6.1 Prerequisites, SC32-9486 – IBM Tivoli Composite Application Manager for Response Time Tracking V6.1 Problem Determination Guide, SC32-9513 – IBM Tivoli Composite Application Manager for Response Time Tracking V6.1 Program Directory for z/OS, GI11-4099 – IBM Tivoli Composite Application Manager for Response Time Tracking V6.1: Installing a Management Server in a WebSphere Cluster Environment, SC32-1804 – IBM Tivoli Composite Application Manager for Response Time Tracking V6.1 Installation and Configuration Guide, GC32-9482 – IBM Tivoli Composite Application Manager for Response Time Tracking: Installation and Configuration Guide, GC32-1907 IBM Tivoli Composite Application Manager for CICS and IMS transaction publications: – IBM Tivoli Composite Application Manager for CICS Transactions V6.1 Product Guide, SC32-9510 – IBM Tivoli Composite Application Manager for IMS Transactions V6.1 Product Guide, SC32-9511 IBM Tivoli Composite Application Manager for WebSphere publications: – IBM Tivoli Composite Application Manager for WebSphere Installation and Customization Guide, GC32-9506 – IBM Tivoli Composite Application Manager for WebSphere Operator’s Guide, SC32-9508 202 Managing an SOA Environment with Tivoli – IBM Tivoli Composite Application Manager for WebSphere Problem Determination Guide, SC32-9509 – IBM Tivoli Composite Application Manager for WebSphere Usage Guide, GC32-1934 – IBM Tivoli Composite Application Manager for WebSphere User’s Guide, SC32-9507 – IBM Tivoli Composite Application Manager for WebSphere: Installing and Configuring the Tivoli Enterprise Monitoring Agent, SC32-1801 – IBM Tivoli Composite Application Manager for WebSphere: Tivoli Enterprise Monitoring Agent Problem Determination Guide, SC32-1800 IBM Tivoli Composite Application Manager for SOA publications: – Configuring IBM Tivoli Composite Application Manager for SOA on z/OS, SC32-9493 – IBM Tivoli Composite Application Manager for SOA Installation and User’s Guide, GC32-9492 – IBM Tivoli Composite Application Manager for SOA Program Directory, GI11-4087 – IBM Tivoli Composite Application Manager for SOA Release Notes, GI11-4096 – IBM Tivoli Composite Application Manager for SOA: Installing and Troubleshooting IBM Web Services Navigator, GC32-9494 IBM Tivoli Composite Application Manager for Response Time publications: – IBM Tivoli Composite Application Manager for Client Response Time User’s Guide Version 6.2, SC23-6332 – IBM Tivoli Composite Application Manager for Web Response Time User’s Guide Version 6.2, SC23-6333 – IBM Tivoli Composite Application Manager for Robotic Response Time User’s Guide Version 6.2, SC23-6334 – IBM Tivoli Composite Application Manager for User Response Time Dashboard User’s Guide Version 6.2, SC23-6335 – IBM Tivoli Composite Application Manager for Response Time Problem Determination Guide Version 6.2, GI11-8061 IBM Tivoli Composite Application Manager for Web Resources publications: – IBM Tivoli Composite Application Manager for Web Resources: J2EE Data Collector Installation Guide, GC23-6179 – IBM Tivoli Composite Application Manager for Web Resources: WebSphere Distributed Data Collector Installation Guide, GC23-6180 Related publications 203 – IBM Tivoli Composite Application Manager for Web Resources: J2EE Agent Installation Guide, GC23-6181 – IBM Tivoli Composite Application Manager for Web Resources: WebSphere Agent Installation Guide, GC23-6182 – IBM Tivoli Composite Application Manager for Web Resources: Web Servers Agent Installation Guide, GC23-6183 – IBM Tivoli Composite Application Manager for Web Resources: Community Edition Data Collector Installation Guide, GC23-6184 – IBM Tivoli Composite Application Manager for Web Resources: Quick Start Guide, GC23-6185 – IBM Tivoli Composite Application Manager for Web Resources: J2EE Agent Problem Determination Guide, GI11-8160 – IBM Tivoli Composite Application Manager for Web Resources: WebSphere Agent Problem Determination Guide, GI11-8161 – IBM Tivoli Composite Application Manager for Web Resources: Web Servers Agent Problem Determination Guide, GI11-8162 IBM Tivoli Monitoring publications – Exploring IBM Tivoli Monitoring, SC32-1803 – IBM Tivoli Monitoring Administrator’s Guide, SC32-9408 – IBM Tivoli Monitoring: Configuring IBM Tivoli Enterprise Monitoring Server on z/OS, SC32-9463 – IBM Tivoli Monitoring Installation and Setup Guide, GC32-9407 – IBM Tivoli Monitoring Problem Determination Guide, GC32-9458 – IBM Tivoli Monitoring User’s Guide, SC32-9409 – IBM Tivoli Monitoring: Upgrading from Tivoli Distributed Monitoring, GC32-9462 – IBM Tivoli Universal Agent API and Command Programming Reference Guide, SC32-9461 – IBM Tivoli Monitoring Universal Agent User’s Guide, SC32-9459 – Introducing IBM Tivoli Monitoring, GI11-4071 204 Managing an SOA Environment with Tivoli Online resources These Web sites are also relevant as further information sources: IBM Tivoli http://www.ibm.com/tivoli System requirements and prerequisites for IBM Tivoli Composite Application Manager for Response Time Tracking, Version 6.1 http://publib.boulder.ibm.com/tividd/td/ITCAMRTT/prereq61/en_US/HTML /Version61.html Prerequisites for Data Collectors and Monitoring Agents for IBM Tivoli Composite Application Manager for WebSphere 6.1 http://publib.boulder.ibm.com/tividd/td/ITCAMWAS/prereq61/en_US/HTML /itcam6.html IBM Tivoli Composite Application Manager for Response Time Tracking product page http://www.ibm.com/software/tivoli/products/composite-application-mg r-rtt/ IBM Tivoli Composite Application Manager for WebSphere product page http://www.ibm.com/software/tivoli/products/composite-application-mg r-websphere/ IBM Tivoli Composite Application Manager for SOA product page http://www.ibm.com/software/tivoli/products/composite-application-mg r-soa/ IBM Tivoli Composite Application Manager for J2EE product page http://www.ibm.com/software/tivoli/products/composite-application-mg r-itcam-j2ee/ IBM Tivoli Composite Application Manager for Internet Service Monitoring product page http://www.ibm.com/software/tivoli/products/composite-application-mg r-ism/ DB2 UDB Version 8 Fix Packs and clients http://www.ibm.com/software/data/db2/udb/support/downloadv8.html ITCAM for Response Time Tracking Fix Pack 1 http://www3.software.ibm.com/ibmdl/pub/software/tivoli_support/patches/ Related publications 205 IBM Tivoli Monitoring Workspace Package for IBM Tivoli Composite Application Manager for Internet Service Monitoring http://catalog.lotus.com/topal?NavCode=1TW10TM31 Technote FAQ “Is there a relatively easy way to estimate the amount of disk space needed for your database?” http://www.ibm.com/support/docview.wss?rs=2344&context=SS3PGL&dc=DB5 20&q1=database&uid=swg21250907&loc=en_US&cs=utf-8&lang=en Open Group Web site for Application Response Management (ARM) http://www.opengroup.org/arm Microsoft link for InstallShield error http://support.microsoft.com/default.aspx?scid=kb;en-us;295278 Microsoft Windows Services for UNIX® http://www.microsoft.com/technet/interopmigration/unix/sfu/default.mspx Java specification for JAX-RPC: JSR-000109 Implementing Enterprise Web Services http://www.jcp.org/aboutJava/communityprocess/final/jsr109/ BEA WebLogic interceptor information http://e-docs.bea.com/wls/docs81/webserv/interceptors.html Eclipse Web site http://www.eclipse.org How to get IBM Redbooks publications You can search for, view, or download IBM Redbooks publications, Redpapers, Technotes, draft publications and additional materials, as well as order hardcopy IBM Redbooks publications, at this Web site: ibm.com/redbooks Help from IBM IBM Support and downloads ibm.com/support 206 Managing an SOA Environment with Tivoli IBM Global Services ibm.com/services Related publications 207 208 Managing an SOA Environment with Tivoli Index Web Services Navigator flow pattern view 25 A application server 27 archive agent 29 attribute 51 G global publishing server 29 B back-end system 187 BCM 32 Byte Code Modification See BCM C CandleMonitor 46 CICS 28, 45 TRADERBL 188 TRADERPL 188 CICS data collector 40 client-side interception 23 commands tapmagent 39 cross-memory services 31 CSMI 188 D data collector 28 CICS 28 IMS 28 J2EE 28 database connection pools 27 DB2 UDB 29 Defined View 43 discover feature 43 E EJB 27 EJB usage 27 Enterprise JavaBeans See EJB F flow pattern view © Copyright IBM Corp. 2008. All rights reserved. I IBM HTTP Server 29 IMS 28, 45 TRADERBL 188 IMS data collector 40 ITCAM for Response Time Tracking components 33 management agent 37 management server 34 store and forward agent 36 Tivoli Enterprise Monitoring Agent 41 ITCAM for SOA 23 action 87 components 21 data collector 22 features 20 filters 87 metrics 51 server-side interception 23 Tivoli Enterprise Monitoring Agent 22 viewer 22 workspace 20 ITCAM for WebSphere data collector 30 database 30 managing server 28 J J2EE 28 J2EE application server 27 Java API for XML-based Remote Procedure Call See JAX-RPC Java Virtual Machine Tool Interface See JVMTI JAX-RPC 21–22 JAX-RPC handler 23 209 JVM 37 JVM thread pools 27 JVMTI 26 K kernels 29 M managed system name 45 management agent 40 ARM agent 39 difference 37 generic window component 38 ITCAM for Response Time Tracking 37 J2EE instrumentation 39 mainframe 39 Quality of Service 38 management server 34 clustered 35 managing server 27–28 archive agent 29 global publishing server 29 kernels 29 message dispatcher 29 publishing servers 29 Mediation Configuration 20 message arrival 20 message dispatcher 29 metrics 51 monitoring file 43 N namelists 42 O OCTIGATE database 30 Oracle 29 OS/400 monitors 44 P PERFORM INCLUDE 45 PERFORM STARTMON 45 Performance Management Interface See PMI PMI 27 primary workspace 51 210 Managing an SOA Environment with Tivoli publishing servers 29 Q queue manager 43–44 configuration event queue 44 like-named parameters 44 node name 45 queue-sharing group 46 R Redbooks Web site 206 Contact us xi S SCA 21, 25 server-side interception 23 Service Component Architecture See SCA service extension 23 Service Management Agent 20 Service Management Agent Environment 20 service topology view 25 service-oriented architecture See SOA SET AGENT 45 SET APPL 45 SET CHANNEL 44 SET EVENTLOG 44 SET EVENTQIN 44 SET EVENTQOUT 45 SET GROUP 44 SET MANAGER 44 SET MQIMONITOR 46 SET QACCESS 44 SET QSG 46 SET QSG command 46 SET QUEUE 44 Simple Network Management Protocol See SNMP SNMP 29 SOA 20 SOAP 21–23 STI 38 store and forward agent 36 Sun Solaris 29 Synthetic Transaction Investigator See STI T Z tapmagent 39–40 TRAD 188 Trader BuySellServlet 185 company database 187 customer database 187 GetQuotesServlet 184 ListCompanyServlet 183 login.html 183 LogoutServlet 185 TraderClientLogin 186 TraderClientMain 186 TraderClientQuote 187 TRADERBL 188 TRADERPL 188 transaction flows view 25 z/OS monitors 44 U UML 25 Universal Markup Language See UML Universal Markup Language (UML) 25 UNIX 44 W Web Response Monitor See WRM Web Services Definition Language See WSDL Web Services Navigator 22, 24 service topology view 25 transaction flows view 25 WebSphere Application Server Node Deployment 35 WebSphere Caching Proxy 36 WebSphere Edge Server 35 WebSphere MQ application 44 data 43 monitoring agent 46 object 45 OMEGAMON Monitoring Agent 44 WebSphere MQ-based z/OS applications 45 workspace 20 WRM 39 WSDL 21–22 Index 211 212 Managing an SOA Environment with Tivoli Back cover Managing an SOA Environment with Tivoli Discusses SOA performance and availability management Service-oriented architecture (SOA) is a major new trend for application architecture. It allows you to build applications as components as defined using a Web Services Description Language (WSDL) file. You can implement applications in different servers, even different platforms. You can modify application components Describes mediation and workflow logic easily in execution, allowing a flexible application structure. Implementation of the client and the server scenarios with ESB side is also masked by the use of enterprise service bus, which and message broker allows a different server implementation to be provided without the need to modify the client, or, different clients can use the same Integrates ITCAM server implementation. and other Tivoli solutions The highly flexible and distributed nature of SOA-based applications is its primary strength and the source of its appeal. However, when a problem arises, this flexible nature also causes a greater problem in pinpointing the source of problem. SOA also requires a disciplined management effort to ensure that operational changes do not disrupt overall availability. The IBM Tivoli Composite Application Manager (ITCAM) family of products directly assists services specialists who implement and manage distributed applications. We illustrate the management needs for SOA-based applications and demonstrate how Tivoli products can address these application environment needs. The overall solution that we use includes ITCAM for SOA, ITCAM for WebSphere, ITCAM for Response Time Tracking, OMEGAMON XE for Messaging, and Tivoli Business Service Manager. REDP-4318-00 ® Redpaper ™ INTERNATIONAL TECHNICAL SUPPORT ORGANIZATION BUILDING TECHNICAL INFORMATION BASED ON PRACTICAL EXPERIENCE 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