1 / 89

Single Service creation for existing CICS or IMS Applications

Single Service creation for existing CICS or IMS Applications. Featuring Rational Developer for System z version 7.6. Reginaldo Barosa - IBM Software Group. Updated May 2010. Presentation objectives. After completing this session, you should be able to:

smithsandra
Download Presentation

Single Service creation for existing CICS or IMS Applications

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Single Service creation for existing CICS or IMS Applications Featuring Rational Developer for System z version 7.6 • Reginaldo Barosa - IBM Software Group Updated May 2010

  2. Presentation objectives After completing this session, you should be able to: • Understand the capability of Rational Developer for System z to work with XML and CICS or IMS Services • Define Generic use cases for Rational Developer for System z and XML enablement • Be able to follow the lab Some of the slides will not be covered and are designed to be future references.. Single Services and IBM Rational Developer for System z

  3. Agenda • SOAP/XML/WSDL and Web Services Overview • Rational Developer for System z and Single Web Service Enablement Styles • Web Service Request into IMS • Single service support using CICS TS Version 3.x • XML to COBOL Mapping (Meet in the middle) • Batch Processor Support  Some of the slides will not be covered in detail and are designed to be future references.  Lab assignment Single Services and IBM Rational Developer for System z

  4. Service Provider HTTP Request Service Requester Interface What’s behind the interface is not part of the standard. That’s all hidden by the standard interface. HTTP Response WSDL 1 2 3 What is a Web service? • A Web service is a software system identified by a URI, whose public interfaces and bindings are defined and described using XML. Its definition can be discovered by other software systems. These systems may then interact with the Web service in a manner prescribed by its definition, using XML based messages conveyed by internet protocols. • The function and format of the SOAP envelope • The function and format of the WSDL file • Some of the industry standards that help vendors know how to implement the interface Single Services and IBM Rational Developer for System z

  5. What is XML ? SOAP ?WSDL? Single Services and IBM Rational Developer for System z

  6. The Importance of XML in Web Services You will see that XML is the common mechanism to exchange information in a web services environment. What is XML, and why is it valuable? • A series of “tags” that mark the beginning and end of blocks of XML • It holds both the data, as well as description of the data • <CustNo> provides an indicator of what the data is; “3” is the actual data. • It is both machine readable and human readable, which makes things relatively easy to understand • Contrast with bit-format protocols, where bits within bytes meant certain things. Machine readable yes; human readable less so. • Characters use “Unicode” encoding, which means it’s universally understood • As opposed to the old EBCDIC vs. ASCII debates <SOAP-ENV:Envelope> <SOAP-ENV:Body> <q0:DFHCOMMAREA> <CustNo>3</CustNo>   </q0:DFHCOMMAREA>   </SOAP-ENV:Body> </SOAP-ENV:Envelope> Example of XML SOAP envelope we’ll use in our labs It is “Self Describing” It can be “parsed” Something called a “Schema Definition” (XSD) is used to tell a program what XML tags to expect. The WSDL file has XSD information If a program knows what tags to expect (the WSDL supplies this), then the program can “parse” (extract) information from the XML. XML =eXtensible Markup Language Single Services and IBM Rational Developer for System z

  7. Web Service Client Web Service Provider “SOAP over HTTP” You’ll frequently hear this phrase. What it’s referring to is the passing of an XML document -- a SOAP “envelope” -- using the HTTP protocol XML File HTTP Protocol (TCP/IP Network) <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://www.LAB3POTI.com/schemas/LAB3POTIInterface" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <q0:DFHCOMMAREA> <CustNo>3</CustNo>   </q0:DFHCOMMAREA>   </SOAP-ENV:Body> </SOAP-ENV:Envelope> The SOAP input for our CICS lab Knowing the layout is not that important to us at this point The key is that the client program knew what the provider expected -- what data elements and what XML tags to use. How did it know that? It had the WSDL file. SOAP = Simple Object Access Protocol Single Services and IBM Rational Developer for System z

  8. <complexType name="DFHCOMMAREA"> <sequence> <element name="CustNo"> <simpleType> <restriction base="int"/> </simpleType> </element> </sequence> </complexType> <wsdl:service name="LAB3POTService"> <wsdl:port binding="tns:LAB324Binding" name="LAB324Port"> <soap:address location="http://zserveros.demos.ibm.com:9036/wdz/LAB3POT"/> </wsdl:port> </wsdl:service> What service will return was here … removed to save space Web Service Provider Web Service Client The WSDL File WSDL contains information about the service -- where it’s located, what parameters it takes as input, what it gives back as output, what XML tags to use, etc. It is sometimes known as a “bindings file”. It can be long and complicated … what follows is a boiled-down snippet to show essence Client knows input XML and data requirements based on this Client knows where service is located based on this <SOAP-ENV:Body> <q0:DFHCOMMAREA> <CustNo>3</CustNo> </q0:DFHCOMMAREA> </SOAP-ENV:Body> WSDL = Web Services Definition Language Single Services and IBM Rational Developer for System z

  9. Web Service Client Web Service Provider WSDL File is a generated by the Development Tool You could hand-code the WSDL. More likely you’ll use a development tool to create the web service, and that tool will produce the WSDL. Service Program With WSDL, client knows where service is and how to drive it WSDL File • Rational Application Developer • Rational Developer for System z • CICS Batch utilities • Other Development Tools With only one service and one client, this is easy. What about a hundred difference services and a thousand clients? Single Services and IBM Rational Developer for System z

  10. Web Service Client DB IMS/MQ IMS DC RAR Notice that none involve web service interface running inside of IMS ODBA A Few Ways to Get Web Service Request into IMS Several of the ways involve front-ending IMS with a web service in WebSphere Those make use of standard adapters to get back to IMS Local WebSphere z/OS IMS DB RAR IMS SOAP/HTTP SOAP/JMS JMS/MQ SOAP/HTTP Applications OTMA IMS DC RAR Remote WebSphere (any platform) Java TCP IMS Connect TCP IMS SOAP Gateway SOAP/HTTP TCP Single Services and IBM Rational Developer for System z

  11. Web Service Client BMS (3270) Applications COMMAREA Applications SOAP/HTTP 3 1 2 SOAP/MQ Different Architectural Approaches to CICS and Web Services WebSphere z/OS HATS CICS TN3270 EXCI Java • SOAP/HTTP to Host Access Transformation Services (HATS), an application that runs in WebSphere and provides a web service interface (or browser interface) for BMS (3270) applications in CICS • SOAP/HTTP or SOAP/JMS to custom web service running in WebSphere. • Web service interface running inside of CICS, and accessed either through HTTP (using CICS HTTP Listener) or through MQ (using a CICS MQ listener) Single Services and IBM Rational Developer for System z

  12. Web services support in CICS TS Version 3.x and UP Single Services and IBM Rational Developer for System z

  13. Web Service Client CICS CICS Web Service Client Appl Appl Provider vs. Requester -- CICS Can Do Both We typically consider CICS as a provider of web services: The case where existing (or new) CICS applications are exposed as reusable services. But it can also be a consumer (or requester) of web services: External Service This web service could be anywhere accessible to CICS -- inside your company or outside We’ll focus on the top one. The concepts you’ll see are mostly applicable to both environments. See “CICS Web Services Guide” (SC34-6458) for more. Single Services and IBM Rational Developer for System z

  14. CICS as a Web service provider CICS TS ServiceRequester ServiceProvider Server Application Transport HTTP listener Pipeline Client Application WebSphere MQtrigger monitor Handler chain HTTP or WebSphere MQ SOAP body XML Data Mapping Language structure 0101001 Dynamic install HFS CSD • 3. Configure • TCPIPSERVICE orWebSphere MQ • URIMAP • WEBSERVICE • PIPELINE • Pipeline configuration • 2. Generate • Language structureorWSDL • WSBIND • 1. Develop • WSDLorLanguage structure • Server Application Pipeline config URIMAP PIPELINE WSDL WEBSERVICE WSBind Single Services and IBM Rational Developer for System z

  15. CICS as a Web service requester CICS TS ServiceRequester ServiceProvider Client Application Transport Pipeline HTTP Server Application WebSphere MQ Handler chain HTTP or WebSphere MQ SOAP body XML Data Mapping Language structure 0101001 Dynamic install HFS CSD • 1. Develop • WSDLorLanguage structure • Client Application • 2. Generate • Language structureorWSDL • WSBIND • 3. Configure • TCPIPSERVICE orWebSphere MQ • URIMAP • WEBSERVICE • PIPELINE • Pipeline configuration Pipeline config PIPELINE WSDL WEBSERVICE WSBind Single Services and IBM Rational Developer for System z

  16. Tools for developing CICS Web services • CICS Web services assistant batch utilities which can help you to transform existing CICS applications into Web services and to enable CICS applications to use Web services provided by external providers with the minimum of programming effort. • Rational Developer for System z wizards. When use Rational Developer for System z?CICS Web services assistant does not support OCCURS DEPENDING ON and REDEFINES on data description. `  We allow to map WSDL to existing COBOL ( our Meet-in-the-Middle scenario ) Test Services created Single Services and IBM Rational Developer for System z

  17. Enterprise Service Tools (EST) Perspective Goals Provide a single place to work on all Enterprise Service Artifacts  Provide a better environment for Integration between Enterprise Servicing components.  Provide Simple Integration between XML Services for Enterprise (XSE) & Service Flow Modeler (SFM) Single Services and IBM Rational Developer for System z

  18. EST Project Explorer • Service Flow Projects • XSE Related Projects • CICS Web Services • SOAP for CICS • XML Transformation for CICS Project (CICS 4.1) • IMS SOAP Gateway • IMS Web 2.0 Project • BATCH, TSO, USS 1 2 New on 7.6 Single Services and IBM Rational Developer for System z

  19. Enterprise Service Tools (EST) XML Services for Enterprise • Web Services for CICS • SOAP for CICS • XML Transformation for CICS Project • IMS SOAP Gateway • IMS Web 2.0 • BATCH, TSO, z/OS UNIX Lets Focus on Web services for CICSwe will cover CICS Service Flow Modeler (SFM) Later… Single Services and IBM Rational Developer for System z

  20. CICS as a Web service provider - Compiled CICS TS (Compiled XML Conversion) Web Service Pipeline SOAP SOAP RDz DFH-BODY Program XML Adapter DFHPITL COBOL Compiled Converters DFH-DATA Target Application COMMAREA / CONTAINER Converter Driver COMMAREA / CONTAINER Inbound Converter DFH-DATA Outbound Converter DFH-BODY DFHRPL CICS SYSTEM COMPONENT Single Services and IBM Rational Developer for System z

  21. CICS as a Web service provider - Interpretive CICS TS (Interpretive XML Conversion) Web Service Pipeline SOAP SOAP Interpretive XML Conversion DFH-BODY Program XML Adapter DFHPITL DFH-DATA Target Application COMMAREA / CONTAINER COMMAREA / CONTAINER ICMMetadata DFH-DATA DFH-BODY DFHRPL CICS SYSTEM COMPONENT Single Services and IBM Rational Developer for System z

  22. Web Services for CICS: “Interpretive” versus “Compiled” • What is meant by Interpretive XML Conversion? • Interpretive XML Conversion refers to using a built-in runtime component for XML (part of CICS) to language structure conversion (afterCICS 3.x only). • XML parsing done by CICSusing CICS Web Services Assistant Java classes • What is meant by Compiled XML Conversion? • “Compiled XML Conversion” refers to using the COBOL or PL/I converter program generated by RDz for XML to language structure conversion. • XML parsing done by the COBOL or PL/I converter generated. Single Services and IBM Rational Developer for System z

  23. Web Services for CICS: “Interpretive” versus “Compiled” • Why use Interpretive XML Conversion? • No COBOL compilation or source code management • All parsing done by CICS and possibly better performance (?) • Why use Compiled XML Conversion? • Your CICS program’s language structures are not supported by interpretive. • Prefer readable conversion code • You need to map existing COBOL to existing WSDL (and don't want to write adapter code) • With COBOL Enterprise version after version 4.1 can use z/OS special processors (ZAAP) for XML Parsing. Single Services and IBM Rational Developer for System z

  24. XML Services for the Enterprise Web Service Enablement Styles Bottom-up Top-down Meet in the middle New service WSDL & Converters Existing service description (WSDL) Existing service description (WSDL) Converters / Marshallers/ Aggregators Generates Maps and Generate Generates New Business App & Converters / Marshallers Existing COBOL or PL/I Programs Existing Business Apps Single Services and IBM Rational Developer for System z

  25. XML Services for the Enterprise • Web Services Enablement wizard (bottom-up) • Rational Developer for System z Generates Web Service interface from existing COBOL or PL/I program • Bottom-up approach since COBOL or PL/I at the bottom (base) of the creation process • Web Services Enablement wizard (top-down) • Rational Developer for System z Generates COBOL or PL/I (*) Program and copybooks or includes (*) from existing WSDL • Web Services Enablement wizard (meet-in-the-middle) • Rational Developer for System z Maps existing WSDL or XML to existing COBOL or PL/I program. • Meet-in-the-middle since Web Services/XML definition “meets” or maps to the existing COBOL or PL/I interface. Single Services and IBM Rational Developer for System z

  26. WSDL Input Converter Output Converter Converter Driver Input XML schema definition (.xsd) Output XML schema definition (.xsd) WSBIND Example: Web Services for CICS 3.x (Compiled) RDz XML Enablement Copybook or complete program • Original Program unchanged Single Services and IBM Rational Developer for System z

  27. 2 Web Services for CICS 3.x Example Bottom-up Compiled XML Conversion - 1 of 2 Web service WSDL & Converters 1 Existing COBOL or PL/I Bottom-up Single Services and IBM Rational Developer for System z

  28. CICS Web Services Compiled Conversion – Example – 2 of 2 RDz XML Enablement(Bottom-up) 5 3 4 Select language structures from a complete COBOL program or a COBOL copybook included by the program  Syntax check of COBOL source during import. Single Services and IBM Rational Developer for System z

  29. Example: Web Services for CICS 3.x (Interpretive) WSDL RDz XML Enablement Copybook or complete program No COBOL Converteris created • Original Program unchanged WSBIND Single Services and IBM Rational Developer for System z

  30. 2 Web Services for CICS 3.x Example Bottom-up Interpretive XML Conversion Web service WSDL & Converters 1 Existing COBOL or PL/I Bottom-up Single Services and IBM Rational Developer for System z

  31. 1 4 5 3 Select language structures from a complete COBOL program or copybook included by the program  Syntax check of COBOL source during import. CICS Web Services Interpretive Conversion - Example RDz XML Enablement(Bottom-up) No COBOL Converteris created 2 Single Services and IBM Rational Developer for System z

  32. (*) - XML Services for the Enterprise • Web Services Enablement wizard (bottom-up) • Rational Developer for System z Generates Web Service interface from existing COBOL or PL/I program • Bottom-up approach since COBOL or PL/I at the bottom (base) of the creation process • Web Services Enablement wizard (top-down) • Rational Developer for System z Generates COBOL or PL/I (*) Program and copybooks or includes (*) from existing WSDL • Web Services Enablement wizard (meet-in-the-middle) • Rational Developer for System z Maps existing WSDL or XML to existing COBOL or PL/I program. • Meet-in-the-middle since Web Services/XML definition “meets” or maps to the existing COBOL or PL/I interface. Single Services and IBM Rational Developer for System z

  33. 2 XML Services for the Enterprise Example Top-down – Creating Service Requestor – 1 of 2 Top-down Existing service description WSDL 1 COBOL or PL/I Program & Copybooks orIncludes • Full validation of WSDL on import • Conversion type is always Interpretive • Generates COBOL or PL/I skeleton for Web Service Requestor Or Web Service Provider Generate Single Services and IBM Rational Developer for System z

  34. 5 6 4 XML Services for the Enterprise – COBOL exampleTop-down – Creating Service Requestor – 2 of 2 3 Single Services and IBM Rational Developer for System z

  35. XML Services for the Enterprise • Web Services Enablement wizard (bottom-up) • Rational Developer for System z Generates Web Service interface from existing COBOL or PL/I program • Bottom-up approach since COBOL or PL/I (*) at the bottom (base) of the creation process • Web Services Enablement wizard (top-down) • Rational Developer for System z Generates COBOL or PL/I (*) Program and copybooks or includes (*) from existing WSDL • Web Services Enablement wizard (meet-in-the-middle) • Rational Developer for System z Maps existing WSDL or XML to existing COBOL or PL/I program. • Meet-in-the-middle since Web Services/XML definition “meets” or maps to the existing COBOL or PL/I interface. Single Services and IBM Rational Developer for System z

  36. Meet-in-the-Middle - XML to COBOL Mapping example • XML documents do not identically match COBOL data items • Derived from sources other than target COBOL data structure • Mergers and Acquisitions • “Not-quite-compatible” program interfaces • Define mappings between WSDL, XML, XSD or COBOL data items • Generate converter and driver from mapping Single Services and IBM Rational Developer for System z

  37. 1 2 3 4 CICS Web services 3.xExample Meet in the middle – 1 of 4 Existing service description WSDL Converters / Marshallers/ Aggregators Existing Business Apps Single Services and IBM Rational Developer for System z

  38. 5 8 7 6 CICS Web services 3.xMeet in the middle – 2 of 4 RDz Single Services and IBM Rational Developer for System z

  39. 10 CICS Web services 3.xMeet in the middle – 3 of 4 9 RDz Single Services and IBM Rational Developer for System z

  40. 12 13 CICS Web services 3.xMeet in the middle – 4 of 4 11 Single Services and IBM Rational Developer for System z

  41. Application Deployment Manager integration with Web Service for CICS wizard Batch Processor Support for Bottom-UP and Top-Down Miscellaneous…. Single Services and IBM Rational Developer for System z

  42. 3 2 Will be enabled, if the z/OS Unix File Subsystem with the same server as the CICS connection, is connected. Takes the user to the Connections section of preference page. The user needs to click Refresh to see the new target CICS region(s) that are created this way Application Deployment Manager integration with Web Service for CICS wizard • User will be able to “define, install, scan, re-install,re-scan and new copy” CICS resources without opening a CICS terminal session • Supports Bottom-up, Meet in the Middle and Top-down • For PLI, this is applicable for Bottom-up Interpretive XML conversion only 1 … Single Services and IBM Rational Developer for System z

  43. Web Services Batch processor • Major U.S. brokerage firm saved 5 person years of development effort on 600 services by cutting time to generate and maintain a single service from 2 days to 2 hours • “Engineers hate GUIs. We cannot imagine sitting at a GUI and expect to efficiently deploy hundreds of configurations” - SOA and Security Architect involved in web services. • One user built their own tooling around CICS utility (DFHWS2LS) because he did not know that Rational Developer for System z had the Batch processor • Use a scriptable command-line interface when generating artifacts for a large number of Web service provider or requestor implementations • Recreate the resources generated previously without having to remember and specify all of the options and selections for the Launch pad and Web service Wizard. • Repeatable Generation support in EST Single-service projects requires a way to record the specified options and selections. Single Services and IBM Rational Developer for System z

  44. Rational Developer for System z wizard to Test Web Services Single Services and IBM Rational Developer for System z

  45. Web Services Test explorer Test Using Rational Developer for zSeriesWeb Services Explorer WSDL Test the Web Services created invoking CICS via HTTP Single Services and IBM Rational Developer for System z

  46. Some of the New Features on Version 7.6 • CICS 4.1 Integration and new capabilities • XML Transformation for CICS    • CICS MTOM Support for Bottom Up COBOL and PL/I Interpretive XML Conversion (CICS 3.x and CICS 4.1).    • Multi Container CICS web services  (CICS 4.1)    Single Services and IBM Rational Developer for System z

  47. XSDBind Deployment bundle Bundle manifest XML Transformation for CICS 4.1 • New project category in EST projects Single Services and IBM Rational Developer for System z

  48. IBM Generation for MTOM/XOP CICS transactions • Generation of web services for CICS MTOM/XOP, common with CICS and DataPower • Aids in offloading MIPS for Web Services DataPower WS-Consumers B X Potential new path WS-Consumers B Binary data X X XML data Existing path Single Services and IBM Rational Developer for System z

  49. CICS MTOM Support (CICS 3.x and CICS 4.1). • The scenario “Create New MTOM/XOP Service Interface (bottom-up)” is now available when creating a new Web Services for CICS single-service project. • The generation Wizard begins with a simplified language structure page; granular item selection does not apply for MTOM. Single Services and IBM Rational Developer for System z

  50. Multi Container CICS web services – for CICS 4.1 • In the “Create New Service Interface (bottom-up) interpretive conversion” scenario, CDD shows up as a new program interface. Upon its selection, the user is required to specify the location of CDD for the request/response. Single Services and IBM Rational Developer for System z

More Related