You are previewing Application Development for IBM CICS Web Services.
O'Reilly logo
Application Development for IBM CICS Web Services

Book Description

This IBM® Redbooks® publication focuses on developing Web service applications in IBM CICS®. It takes the broad view of developing and modernizing CICS applications for XML, Web services, SOAP, and SOA support, and lays out a reference architecture for developing these kinds of applications.

We start by discussing Web services in general, then review how CICS implements Web services. We offer an overview of different development approaches: bottom-up, top-down, and meet-in-the-middle.

We then look at how you would go about exposing a CICS application as a Web service provider, again looking at the different approaches. The book then steps through the process of creating a CICS Web service requester.

We follow this by looking at CICS application aggregation (including 3270 applications) with IBM Rational® Application Developer for IBM System z® and how to implement CICS Web Services using CICS Cloud technology. The first part is concluded with hints and tips to help you when implementing this technology.

Part two of this publication provides performance figures for a basic Web service. We investigate some common variables and examine their effects on the performance of CICS as both a requester and provider of Web services.

Table of Contents

  1. Front cover
  2. Notices
    1. Trademarks
  3. IBM Redbooks promotions
  4. Preface
    1. Authors
    2. Now you can become a published author, too!
    3. Comments welcome
    4. Stay connected to IBM Redbooks
  5. Summary of changes
    1. January 2015, Third Edition
  6. Part 1 Introduction
  7. Chapter 1. Overview of Web services
    1. 1.1 Introduction
    2. 1.2 Service-oriented architecture
      1. 1.2.1 Characteristics
      2. 1.2.2 Web services versus SOAs
    3. 1.3 Web services
      1. 1.3.1 Properties of a Web service
      2. 1.3.2 Core standards
      3. 1.3.3 Web Services Interoperability group
      4. 1.3.4 Additional standards
    4. 1.4 IBM WebSphere Service Registry and Repository
    5. 1.5 SOAP
      1. 1.5.1 The envelope
      2. 1.5.2 Communication styles
      3. 1.5.3 Encodings
      4. 1.5.4 Messaging modes
    6. 1.6 WSDL
      1. 1.6.1 WSDL Document
      2. 1.6.2 WSDL document anatomy
      3. 1.6.3 WSDL definition
      4. 1.6.4 WSDL bindings
  8. Chapter 2. CICS TS implementation of Web services
    1. 2.1 Support for Web services in CICS TS
      1. 2.1.1 Core aspects of Web services in CICS
    2. 2.2 Tools for application deployment
      1. 2.2.1 CICS Web Services Assistant
      2. 2.2.2 IBM Rational Developer for System z v9.1
      3. 2.2.3 Other Options
    3. 2.3 CICS as a service provider
      1. 2.3.1 Preparing to run a CICS application as a service provider
      2. 2.3.2 Processing the inbound service request
    4. 2.4 CICS as a service requester
      1. 2.4.1 Preparing to run a CICS application as a service requester
      2. 2.4.2 Processing the outbound service request
    5. 2.5 The CICS resource definitions
      1. 2.5.1 URIMAP
      2. 2.5.2 PIPELINE
      3. 2.5.3 WEBSERVICE
      4. 2.5.4 The Web service binding file (WSBind)
      5. 2.5.5 SOAPFAULT commands
      6. 2.5.6 Mapping levels
      7. 2.5.7 Enhancements with CICS TS V3.2
      8. 2.5.8 Additional enhancements with CICS TS 4.1
      9. 2.5.9 Use of WS-Addressing in CICS TS V4.1 applications
      10. 2.5.10 AXIS2 Provider PIPELINEs in CICS TS V4.2
      11. 2.5.11 CICS Transaction Server V5.1 makes CONTAINERs easier
      12. 2.5.12 Further enhancements in CICS TS V5.2
      13. 2.5.13 Comparing releases of CICS Transaction Server
  9. Chapter 3. Development approaches
    1. 3.1 Introduction
    2. 3.2 Bottom-up approach
    3. 3.3 Top-down approach
    4. 3.4 Meet-in-the-middle approach
    5. 3.5 The advantages of using Rational Developer for System z
    6. 3.6 Web services versus CICS TCP/IP connectivity
    7. 3.7 Conclusions
  10. Chapter 4. CICS catalog manager example application
    1. 4.1 Samples for use with CICS Web Services
    2. 4.2 Introduction to the catalog manager application
    3. 4.3 Installation and setup of the base application
      1. 4.3.1 Creating the VSAM data sets
      2. 4.3.2 Defining the base application to CICS
      3. 4.3.3 Configuring the example application
      4. 4.3.4 Configuring code page support
    4. 4.4 Web service support for the example application
      1. 4.4.1 The Web client front end
      2. 4.4.2 The CICS Web service client front end
      3. 4.4.3 Order dispatch Web services endpoints
      4. 4.4.4 Alternative Web service provider configuration
    5. 4.5 Web services setup
      1. 4.5.1 Creating the zFS directories
      2. 4.5.2 Creating the PIPELINE definition
      3. 4.5.3 Creating a TCPIPSERVICE
      4. 4.5.4 Dynamically installing WEBSERVICE and URIMAP resources
      5. 4.5.5 Creating the WEBSERVICE resources with RDO
      6. 4.5.6 Creating the URIMAP resources with RDO
      7. 4.5.7 Completing the installation
    6. 4.6 Installing the client application
      1. 4.6.1 FTP the client application
      2. 4.6.2 Install the client
      3. 4.6.3 Start the client
      4. 4.6.4 Testing the client
  11. Chapter 5. Rational Developer for System z
    1. 5.1 What is Rational Developer for System z?
    2. 5.2 RDz and CICS application development
    3. 5.3 Components of RDz
      1. 5.3.1 Workspace
      2. 5.3.2 Workbench
      3. 5.3.3 Perspective
      4. 5.3.4 View
      5. 5.3.5 Editor
    4. 5.4 Web services in Rational Developer for System z
    5. 5.5 Writing your first Java program with RDz
    6. 5.6 Overview of Debugging with RDz
      1. 5.6.1 Supported languages and environments
      2. 5.6.2 Local and remote debug
      3. 5.6.3 Basic debugging features and tools
    7. 5.7 Summary
  12. Chapter 6. Exposing the Catalog Sample CICS application asa Web service
    1. 6.1 Introduction
    2. 6.2 Install the provider mode resources
    3. 6.3 Create the provider mode deployment artifacts
      1. 6.3.1 Using the CICS Web Services Assistant
      2. 6.3.2 Use Rational Developer for System z
    4. 6.4 Testing the Web service
      1. 6.4.1 The Web Services Explorer
      2. 6.4.2 Generate a client
    5. 6.5 Publishing WSDL to WebSphere Service Registry and Repository
      1. 6.5.1 Use DFHLS2WS for WebSphere Service Registry and Repository in CICS TS V5.2
      2. 6.5.2 Use DFHWS2LS for WSRR in CICS TS V5.2
      3. 6.5.3 New parameters to support SSL encryption in CICS TS V4.1and above
    6. 6.6 Writing applications that process the XML directly
      1. 6.6.1 Creating a custom application handler
      2. 6.6.2 Creating an XML-ONLY WEBSERVICE
  13. Chapter 7. Create a CICS Web service requester application using the catalog sample
    1. 7.1 Introduction
    2. 7.2 Create a Web service requester using the CICS Web Services Assistant
      1. 7.2.1 Generate the required artifacts
      2. 7.2.2 Set up the CICS infrastructure
      3. 7.2.3 Test the requester application
    3. 7.3 Creating and testing a Web service hosted in RDz
      1. 7.3.1 Create a Web service skeleton with Rational Application Developer for WebSphere Software
      2. 7.3.2 Implement the WebSphere Application Server Web service
      3. 7.3.3 Test the Web service using Web Services Explorer
      4. 7.3.4 Test the Web service using the CICS sample application
    4. 7.4 Client mode URIMAPs
      1. 7.4.1 Ease of maintenance and portability
      2. 7.4.2 Control over outbound SSL configuration
      3. 7.4.3 Outbound connection pooling
  14. Chapter 8. Componentization
    1. 8.1 CICS applications as components
    2. 8.2 Locally optimized Web services
    3. 8.3 Using WSDL to describe COBOL components
    4. 8.4 Further options with CICS TS 4.1 and later
      1. 8.4.1 Linking to a target PROGRAM from a requester mode PIPELINE
      2. 8.4.2 Invoking a local SERVICE from a requester mode PIPELINE
    5. 8.5 Packaging the Web Service resources in CICS Bundles
      1. 8.5.1 Create a CICS Bundle project
      2. 8.5.2 Defining Web Services resources in CICS Bundles
  15. Chapter 9. Service Component Architecture and CICS Cloud in CICS TS V5.2
    1. 9.1 Service Component Architecture
      1. 9.1.1 Introduction to SCA
    2. 9.2 CICS Transaction Server Implementation of SCA
      1. 9.2.1 BUNDLE resources
      2. 9.2.2 Creating services from existing CICS applications
      3. 9.2.3 Deploying SCA services
      4. 9.2.4 RDz SCA tooling
      5. 9.2.5 Creating and deploying an SCA service from an existing CICS application
    3. 9.3 Web services in CICS Cloud
  16. Chapter 10. Hints and tips
    1. 10.1 Custom handlers programs for pipelines
      1. 10.1.1 A simple example handler program
      2. 10.1.2 Handling state information
      3. 10.1.3 Propagating user identity tokens
    2. 10.2 The SOAP fault API
      1. 10.2.1 How to create a SOAP Fault in an application
      2. 10.2.2 Parsing SOAP Fault messages in CICS TS V5.2
    3. 10.3 Handling variably recurring XML elements
      1. 10.3.1 In-lined variably recurring data
      2. 10.3.2 Container-based variably recurring data: inbound
      3. 10.3.3 Container-based variably recurring data: outbound
    4. 10.4 Handling undefined XML (xsd:any)
    5. 10.5 Handling enumerated XML constructs
    6. 10.6 Modifying generated WSDL
      1. 10.6.1 Background to MTOM/XOP
      2. 10.6.2 Support for xsd:base64Binary and MTOM/XOP
      3. 10.6.3 Mapping a single field as binary data with DFHLS2WS
      4. 10.6.4 Handling variable length values and white space
    7. 10.7 WSDL types not supported by DFHWS2LS
    8. 10.8 Problem determination
      1. 10.8.1 Problems using DFHWS2LS and DFHLS2WS
      2. 10.8.2 Using the execution diagnostic facility to debug Web services
      3. 10.8.3 Debugging CICS SFR applications
      4. 10.8.4 Runtime SOAP validation
    9. 10.9 XML parsing in CICS application
      1. 10.9.1 XML Toolkit for z/OS
      2. 10.9.2 COBOL high-speed XML parser
      3. 10.9.3 CICS API: EXEC CICS TRANSFORM
  17. Chapter 11. COBOL samples
    1. 11.1 Introduction
    2. 11.2 Example 1: The <xsd:any> tag
      1. 11.2.1 The WSDL
      2. 11.2.2 Web Services Assistant: z/OS
      3. 11.2.3 The COBOL program
      4. 11.2.4 CICS resource definitions
    3. 11.3 Example 2: The <choice> tag
      1. 11.3.1 The WSDL
      2. 11.3.2 Generation of COBOL and CICS artifacts
      3. 11.3.3 The COBOL program
      4. 11.3.4 CICS Resource Definitions
    4. 11.4 Example 3: minoccurs and maxoccurs
      1. 11.4.1 Generation of COBOL and CICS artifacts
      2. 11.4.2 The COBOL program
      3. 11.4.3 CICS resource definitions
      4. 11.4.4 Results of calling the service
    5. 11.5 Example 4: OCCURS DEPENDING ON Web Service Provider
      1. 11.5.1 COBOL Program CATOCCUR
      2. 11.5.2 Generating the Web Service resources
      3. 11.5.3 Defining resources to CICS
      4. 11.5.4 Testing the service and results
  18. Part 2 Performance
  19. Chapter 12. Performance introduction
    1. 12.1 Measuring Web service performance
      1. 12.1.1 Key performance indicators
      2. 12.1.2 Scenarios
      3. 12.1.3 Transactions involved in Web service requests
      4. 12.1.4 Workloads
      5. 12.1.5 Running the scenario tests
    2. 12.2 Collecting CICS Monitoring Facility data
    3. 12.3 Interpreting CMF performance data
  20. Chapter 13. Environment overview
    1. 13.1 Architectural overview
    2. 13.2 Hardware and operating system configuration
    3. 13.3 Web service provider configuration
      1. 13.3.1 Generate the provider WSBind and WSDL artifacts
      2. 13.3.2 Create a provider PIPELINE
      3. 13.3.3 Create a TCPIPSERVICE resource definition
      4. 13.3.4 Install the Web service CICS resource definitions
      5. 13.3.5 User provider application
      6. 13.3.6 User provider application CICS resource definitions
    4. 13.4 Web service requester configuration
      1. 13.4.1 Generate the requester WSBind artifacts
      2. 13.4.2 Create a requester PIPELINE
      3. 13.4.3 Create requester URIMAP resource definitions
      4. 13.4.4 User requester application
    5. 13.5 TPNS definitions
      1. 13.5.1 Network
      2. 13.5.2 Message deck
  21. Chapter 14. Scenarios
    1. 14.1 Scenarios overview
    2. 14.2 Baseline
      1. 14.2.1 Baseline scenario description
      2. 14.2.2 Provider CICS Monitoring Facility data analysis
      3. 14.2.3 Provider RMF data analysis
      4. 14.2.4 Provider summary
      5. 14.2.5 Requester CMF data analysis
      6. 14.2.6 Requester RMF data analysis
      7. 14.2.7 Requester summary
    3. 14.3 Scalability as a function of connected clients
      1. 14.3.1 Client scalability scenario description
      2. 14.3.2 Client scalability scenario provider results
      3. 14.3.3 Client scalability scenario requester results
      4. 14.3.4 Client scalability scenario conclusions
    4. 14.4 Scalability as a function of inbound request rate
      1. 14.4.1 Request rate scalability scenario description
      2. 14.4.2 Request rate scalability scenario provider results
      3. 14.4.3 Request rate scalability scenario requester results
      4. 14.4.4 Request rate scalability scenario conclusions
    5. 14.5 Varying payload size
      1. 14.5.1 Varying payload size scenario description
      2. 14.5.2 Varying payload size scenario provider results
      3. 14.5.3 Varying payload size scenario requester results
      4. 14.5.4 Varying payload size scenario conclusions
    6. 14.6 Varying payload size using a channel
      1. 14.6.1 Varying payload size with a channel scenario description
      2. 14.6.2 Varying payload size with a channel scenario provider results
      3. 14.6.3 Varying payload size with a channel requester results
      4. 14.6.4 Varying payload size with a channel scenario conclusion
    7. 14.7 Varying payload complexity
      1. 14.7.1 Varying payload complexity scenario description
      2. 14.7.2 Varying payload complexity scenario provider results
      3. 14.7.3 Varying payload complexity scenario requester results
      4. 14.7.4 Varying payload complexity scenario conclusions
    8. 14.8 HTTP persistent connections
      1. 14.8.1 HTTP persistent connections scenario description
      2. 14.8.2 HTTP persistent connections scenario provider results
      3. 14.8.3 HTTP persistent connection scenario requester results
      4. 14.8.4 HTTP persistent connections TCP/IP results
      5. 14.8.5 HTTP persistent connections scenario conclusions
    9. 14.9 Secure Web services using SSL
      1. 14.9.1 SSL scenario description
      2. 14.9.2 SSL scenario provider results
      3. 14.9.3 SSL scenario requester results
      4. 14.9.4 SSL scenario conclusions
    10. 14.10 SSL with persistent connections
      1. 14.10.1 SSL with persistent connections description
      2. 14.10.2 SSL with persistent connections provider results
      3. 14.10.3 SSL with persistent connections requester results
      4. 14.10.4 SSL with persistent connections conclusions
    11. 14.11 Overall conclusions
  22. Part 3 Appendixes
  23. Appendix A. Sample Web services
    1. Preparation of your RDz environment
    2. Loading an .ear file into a new or existing project
    3. Description of examples A1–A3
  24. Appendix B. Sample programs
    1. Program to call <xsd:any> example service
    2. WSDL - <xsd:any>
    3. Request Language Structure - inlinI01
    4. Response Language Structure - inlinO01
    5. Program to call <xsd:choice> example service
    6. WSDL <xsd:choice>
    7. Request Language Structure - choicI01
    8. Response Language Structure - choicO01
    9. Program to call minOccurs/maxOccurs example service
    10. WSDL - minOccurs/maxOccurs
    11. Request Language Structure - redboI01
    12. Response Language Structure - redboO01
    13. Program to implement OCCURS DEPENDING service
    14. Program to implement PUT CONTAINER APPEND service
    15. Program to implement GET CONTAINER FROMBYTE requester service
    16. AMODE(64) assembler program to invoke a Web service
  25. Appendix C. Additional material
    1. Locating the Web material
  26. Related publications
    1. IBM Redbooks
    2. Other publications
    3. Online resources
    4. How to get Redbooks
    5. Help from IBM
  27. Back cover
  28. IBM System x Reference Architecture for Hadoop: IBM InfoSphere BigInsights Reference Architecture
    1. Introduction
    2. Business problem and business value
    3. Reference architecture use
    4. Requirements
    5. InfoSphere BigInsights predefined configuration
    6. InfoSphere BigInsights HBase predefined configuration
    7. Deployment considerations
    8. Customizing the predefined configurations
    9. Predefined configuration bill of materials
    10. References
    11. The team who wrote this paper
    12. Now you can become a published author, too!
    13. Stay connected to IBM Redbooks
  29. Notices
    1. Trademarks