® IBM Software Group Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.com Content authored by Dennis Weiand and others © 2012 IBM Corporation IBM Trademarks and Copyrights © Copyright IBM Corporation 2007, 2008, 2009, 2010, 2011. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. This information is based on current IBM product plans and strategy, which are subject to change by IBM without notice. Product release dates and/or capabilities referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. IBM, the IBM logo, the on-demand business logo, Rational, the Rational logo, and other IBM Rational products and services are trademarks or registered trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others. 2 Course Contributing Authors Thanks to the following individuals, for assisting with this course: Reginaldo Barosa/IBM-Rational Isabel Arnold/IBM-Rational 3 RDz Functional Taxonomy – a Partial List z/OS Development, Maintenance and Production Application Support Enterprise Modernization Access Datasets/Source Files CICS Web Services • SCM functional integration • PDS Support • Migrate/Recall Support • Local and Remote file support • Tooling support in single or across multiple LPARs • Windows metaphor • Edit/Browse/View • “Favorites” – “Most recently used” Program Analysis Source Navigation • • • • • • Windows (Standard) Navigation ISPF PF-keys + extensible Hot-keys Outline View Hover Open Declaration / Arrow keys Open copybooks Windows Screen Real Estate Program Logic tools • • • • • • • Control Flow Analysis Data Flow Analysis Where used/Where Referenced Source Development ISPF and RDz Source Editing • • • • • • • • • • • • PF-Keys Hexedit Prefix Area Commands Command Line Commands Colorized statement support Local History PC Source editing functionality Code refactoring Wizard-driven DB2 Stored Procedure generation Comment/Un-comment multiple lines Access to 3270 Emulation within Eclipse All development options “preference-enabled” Submitting/Managing Jobs • Submit and Locate Job • Integration with JES • Job Organization options (Filters) • Show JCL • Cancel/Purge SCM: • • • • 4 • Source and PDS Search • QSAM Data File Search • Browse Load Module • Search Load Library • Use of Regular Expressions IBM: Team Concert, SCLM, ClearCase CA: Endevor, Panvalet, Librarian, Serena: Changeman ISPW Languages • • • • • • COBOL, PL/I, Assembler, Java, C/C++ JCL/CLIST/REXX SQL BMS/MFS WSDL, HTML, XML 4GLs supported with Eclipse Tooling Editing Data Sources • • • • • QSAM File Editor DB2 Table Editor IMS Segment Editor VSAM File Editing with File Manager Integration with File-Aid Plug-ins Test and Debug • • Integration with PD Tools/Debug Tool Integration with Xpeditor and CA-Intertest Content Assist Syntax Check and Build • • • Size-able views Multi-window development Source Filters Collapse/Expand paragraphs/sections Real-time validation Local and Remote Syntax Checking Integration with z/OS Build Process • • • COBOL, PL/I, Assembler SQL: Embedded, Interactive CICS statements Dataset Management • Allocate/ Rename/Delete • Create GDG Model • Create VSAM Dataset • Search • Compress Generate: • WSDL • WSBIND file • XSD files • Deployment manifest • Stub modules • Test and Deploy WSDL • Use Cases: • Bottom Up • Top Down • Meet in the middle Copy Files • Within an LPAR • Across LPARs • LPAR PC Code Quality • Code Review • Source Format • File Compare • All of the above functionality IMS Soap IMS Web 2.0 Generate • XML/WSDL • COBOL/PLI converters • Manifest files Use Cases: • Bottom Up • Top down (PL/I only) • Meet in the middle CICS Service Flows • 3270 "screen scraping" • Aggregate transactions • Automate processes • Expose as web services Functional Integration with z/OS REXX/CLIST/3rd Party Tools: • • • Menu Manager HATS Eclipse Plug-in Integration 4 RDz Product Integration The Promise of Services and SOA (Service Oriented Architecture) Services are the driving business system design paradigm of the day. Services – Generated by RDz provide a cross platform language for business oriented development Services and SOA are based on the concept of “Service Oriented Design” At development time… Leverage external web services… Service Interfaces Represent external web services Are created via import from WSDL Allow the RDz developer to stay within the context of the RDz programming model Focus on the business logic Implement SOA design elements: services and interfaces Leverage existing business developers for new SOA development Ignore deployment targets/technology while coding/testing RDz SOA for WAS, CICS, System i Deploy Web Services… To any platform RDz Service Java to WAS/Tomcat/etc. COBOL to CICS, iSeries RDz Interface RDz Records As… A Web Service (uses SOAP) A private service (uses CICS ECI, J2C, or TCP) Other SOA runtimes when they reach critical mass RDz Service Deploy Services as Web Services WSDL External Applications 5 Consume external services W S D L External Web Service Service Oriented Architecture From www.ibm.com Service oriented architecture (SOA) is a business-driven IT architectural approach that supports integrating the business as linked, repeatable business tasks, or services. An exact definition is probably not all that important. It's more important to understand: • The concept of a “service” • The implied value of a loosely coupled “service” rather than a tightly coupled connection to another application’s interface … flexibility • That “SOA” is a path towards the use of more and more services in your I/T architecture … not a “thing” or an “all-at-once” proposition • That there’s more to it than just services. © 2008 IBM Corporation 6 At a Very High Level What we’re ultimately getting at here is a decoupling of application requester from the application provider. And the placement of an intermediary function to make things more flexible and dynamic: Passing of an agreedto request in message format Intermediary Function Simple forwarding or Complex message transformation and protocol remapping Return of information in the form of an agreed-to message response © 2008 IBM Corporation 7 A “Service” – Conceptual Definition A discrete set of business or technical functionality that can be identified, has a defined set of input and outputs, and is reusable Discrete – can be contained within a definite and known “fence” Identified -- it’s recognized as a service and people acknowledge it as a service Defined – the input and the outputs are known and understood Reusable – is not just a one-time thing Service Input Interface “Producer” User “Consumer” Implementation Output Exactly how the service is implemented behind the interface doesn’t really matter to the consumer of the service There’s nothing revolutionary about this. What’s different is that we’re coming to a point where improvements in technology have allowed us to do this better than before: • • • • Settled on a universal and common networking protocol -- TCP/IP Networking bandwidth is increasingly available, cheap and reliable The idea of “industry standards” has matured and is embraced rather than resisted Java as a platform-unaware language has opened up a new world of interoperability © 2008 IBM Corporation 8 An Example - Currency Exchange IBM’s Travel Expense Reimbursement application does not do its own foreign currency conversions … it uses an external service for that: No [ £100,$US,15-June ] Internet Yes $US Interface Currency = $US? [ $196.00 ] Implementation Could IBM have coded an internal subroutine to do currency conversions? Sure. But very good converters exist on the web and in this case IBM took advantage of them. For this to work, several things need to be in place: • IBM application needs to know about the service and where it is located • IBM application needs to know the interface requirements: parameters, sequence, format Understanding what services are available, where they’re located and what interface requirements they have is a key aspect of SOA. © 2008 IBM Corporation 9 CICS is an Application Server CICS is a system that hosts applications, and provides a rich set of “services” which the applications may make use of: CICS “CICS Programs” COBOL Program Access PL/I Assembler “EXEC CICS” API EJBs Java C++ classes for CICS C/C++ These are the “existing assets” we’re looking to “expose” as services JVMs JCICS classes for Java CICS EJB Support (transparent mapping) External Data Resources CICS Services There are many ways to access programs running in CICS -- 3270 terminal, EXCI or EPI, RMI/IIOP, MQ, HTTP. Our focus here is going to be accessing via Web Services. © 2008 IBM Corporation 10 Provider vs. Requester -- CICS Can Do Both We typically consider CICS as a provider of web services: CICS Web Service Client Appl 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 CICS Appl This web service could be anywhere accessible to CICS -inside your company or outside Web Service Client We’ll focus on the top one for the most part. The concepts you’ll see are mostly applicable to both environments. See “CICS Web Services Guide” (SC34-6458) for more. CICS as a Web Service Provider … © 2008 IBM Corporation 11 CICS as a Web Services Provider Three basic requirements of being a Web Services provider: Ability to receive the SOAP request Standard ways: SOAP/HTTP or SOAP/JMS Ability to read and understand the contents of the SOAP request XML parser along with implementation of the “WS-basic” standards Ability to act upon the request This is the “behind the interface” implementation we’ve shown before CICS HTTP MQ Built-in SOAP Handler Custom Program CICS Transaction This is defined within something called a “Pipeline,” which is a structure within CICS that invokes your customized program(s). This is what does the mapping of XML to application data structure and invokes the CICS transaction. Pipeline = "RDO" Tables © 2008 IBM Corporation 12 CICS as a Web Service Provider – The "Transaction Flow Model" or "Big Picture" CICS TS (Compiled XML Conversion) Web Service Pipeline SOAP SOAP 1. 7. 2. RDz DFH-BODY COBOL Compiled 3. Converters DFH-DATA Converter Driver Inbound Converter Outbound Converter 5. DFH-DATA 6. Program XML COMMAREA / CONTAINER Adapter COMMAREA / CONTAINER DFHPIITL DFH-BODY DFHRPL CICS SYSTEM COMPONENT 13 4. Target Application Interpretive Parsing (an alternative to Compiled Conversion) CICS TS (Interpretive XML Conversion) Web Service Pipeline SOAP Interpretive XML Conversion ICM Metadata DFH-BODY DFH-DATA DFH-DATA SOAP Program XML COMMAREA / CONTAINER Adapter COMMAREA / CONTAINER DFHPIITL DFH-BODY DFHRPL CICS SYSTEM COMPONENT 14 Target Application 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. 15 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? <SOAP-ENV:Envelope> <SOAP-ENV:Body> <q0:DFHCOMMAREA> <CustNo>3</CustNo> </q0:DFHCOMMAREA> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 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 Example of XML SOAP envelope we’ll use in one of the labs XML is “Self Describing” XML can be “parsed” Something called a “Schema Definition” (XSD) is used to tell a program what XML tags to expect. If a program knows what tags to expect (the WSDL supplies this), then the program can “parse” (extract) information from the XML. The WSDL file (more in moment) has XSD information 16 “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 Web Service Client Web Service Provider XML File HTTP Protocol (TCP/IP Network) <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://www.WBCSCUSTI.com/schemas/WBCSCUSTIInterface" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <q0:DFHCOMMAREA> The SOAP input for our CICS lab <CustNo>3</CustNo> </q0:DFHCOMMAREA> Knowing the layout is not that important to </SOAP-ENV:Body> us at this point </SOAP-ENV:Envelope> 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. The Web Service Description Language (WSDL) file … 17 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 <complexType name="DFHCOMMAREA"> <sequence> <element name="CustNo"> <simpleType> <restriction base="int"/> Client knows input XML and </simpleType> data requirements based on this </element> </sequence> Client knows where service </complexType> What service will return was here … removed to save space is located based on this <wsdl:service name="WBCSCUSService"> <wsdl:port binding="tns:WBCSCUSBinding" name="WBCSCUSPort"> <soap:address location="http://mig.null.washington.ibm.com:12301/WBCSCUST"/> </wsdl:port> </wsdl:service> Web Service Client <SOAP-ENV:Body> <q0:DFHCOMMAREA> <CustNo>3</CustNo> </q0:DFHCOMMAREA> </SOAP-ENV:Body> Web Service Provider Where does WSDL come from? … 18 What about performance? (with all this parsing) http://listserv.uga.edu/cgi-bin/wa?A2=ind0908&L=CICS-L&D=0&P=30338 That’s .1 second 1/10th of a second Any other questions about "Why Web Services"? 19 TechWorks CICS Web Services Development Tools There are two primary tools used to develop CICS web services: 1. CICS Web Service Assistant Consists of a set of JCL batch utilities that generate program components DFHLS2WS – Transforms a language structure into a Web Service Binding File and a Web Service Description (WSDL). Use this to put a web service front end on an existing application. DFHWS2LS - Generates a Web Service binding file from a Web Service description (WSDL). This utility also generates a language structure that you can use in your application programs. Use this to create a new CICS application based on a WSDL, or to enable CICS to be a web service requester 2. Rational Developer for System z (RDz) An Eclipse-based tool for zSeries development (not just web services), it does what CICS Web Service Assistant does with additional flexibility and capabilities. RDz is the more powerful alternative. CICS Web Service Assistant should only be used for basic web services enablement © 2012 IBM Corporation TechWorks What flexibility does RDz Provide over CICS WS? What you can do with RDz that you can not do with the CICS Web Assistant JCL? ● With CICS Web Assistant there is no support for: OCCURS DEPENDING ON REDEFINES Ability to pick items for omitting from the interface - Example: If you have a CICS program that extracts an entire employee record, but don't want to send back Social Security Number Ability to change default names in the interface Whole program interface development – With the Web Assistant you must use a Copybook zAAP Parsing of the XML – Essentially, for many (although not all) use cases, RDz provides better run-time performance (assuming you have used Enterprise COBOL 4.1 or later) – because all of the parsing cycles are zAAP-enabled ● What the above points out is that: RDz provides significantly more flexibility in designing and creating your Web Service interface RDz provides significantly more productivity – for creating, testing and publishing your Web Service ● Net: If you want to Web Service Enable your CICS and IMS transactions, and don't want to waste time & money, and/or don't want to reengineer production source use RDz Note that all of the restrictions of using the CICS Web Assistant also apply to using CICS Interpretive XML Parsing © 2012 IBM Corporation See slide notes for a deeper technical additional discussion of this topic What’s Produced by RDz for Web Services The process of creating and defining a Web Service to CICS z/OS System RDz Import into RDz COBOL source, including COPYBOOK of existing CICS application Run through the creation wizards More complex scenarios can occur, of course. But this illustrates some essential elements of the process COBOL source to our new handler, which converts SOAP XML-to-COMMAREA and viceversa Compile this into the CICS LOADLIB WSBIND file, which is a binary file that contains information about the service, including the “URI Map” that triggers the execution of the pipeline and web service Optional used to define the CICS pipeline entries © 2008 IBM Corporation 22 Why use RDz to Produce the WSDL? You could hand-code the WSDL. More likely you’ll use a development tool (in our case, RDz) to create the web service, and RDz will also produce the WSDL. Service Program Web Service Provider With WSDL, client knows where service is and how to drive it WSDL File • Rational Application Developer • WebSphere Developer for zSeries • Other Development Tools 23 Web Service Client TechWorks IBM Rational Developer for System z version z/OS Application Development 7.6Tools Enterprise Service IBM Rational Developer - SOA support for COBOL or PL/I using CICS or IMS • Bottom-up/Top-down or meet-in-the-middle COBOL/PLI to XML mapping support • meet-in-the-middle development scenario tooling wizards. for CICS, IMS, and batch applications for System z z/OS Application Development Enterprise Service Tools DB2 Stored Procedure for COBOL and PL/I • Create DB2 stored procedures on z/OS in either COBOL or PL/I • Build and catalog support for the DB2 stored procedure • Debug z/OS based stored procedures from workstation z/OS Tooling Integration • Read/Write/Update VSAM datasets via integration with IBM File Manager • Access IBM Fault analyzer reports for analyzing ABENDS and associating back to source code CICS Service Flow support • Supports CICS Service Flow Feature • Wizards to build service flows out of your existing COMMAREA WSDL and Terminal based CICS applications. CICS BMS/ IMS MFS Map Support DB2 Stored Proc for COBOL - PL/I DB2 App Generator wizard • Visually create and modify BMS Map sets or IMS/MFS • Generates JCL • Work with local or remote maps DB2 App Generator wizard z/OS Tooling Integration VSAM App Generator wizard UML to COBOL Transformation(*) Rational Application Developer or Rational Business Developer © 2012 IBM Corporation CICS Service Flow support CICS BMS/IMS MFS Map Support VSAM App Generator wizard • Generate JCL , BATCH or CICS COBOL program skeletons to access VSAM/QSAM • Work with z/OS resources like COBOL, PL/I , C, C++, JCL, etc. • Interact with the Job Entry Subsystem (JES) to submit jobs, monitor jobs, and review job output • Perform dataset management actions • Perform typical edit, compile, and debug tasks on remote z/OS resources from the workstation • Generate WSDL, JCL and CICS COBOL program to access DB2 • Generate CRUD programs code from existing DB2 table, which can also be integrated into web service applications UML to COBOL Transformation(*) • Provide UML assets in order to represent COBOL in UML (Models, Profiles, Patterns) • UML transformations generate models more specific to COBOL target • Final transformation generates COBOL source (*) Requires Rational Software Architect (RSA) See Slide Notes TechWorks 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) © 2012 IBM Corporation TechWorks EST Project Explorer ● Service Flow Projects ● XSE Related Projects 1 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 2 See Slide Notes – on support for UTF-16 and UTF-8 © 2012 IBM Corporation encoding TechWorks XML Services for the Enterprise Web Service Enablement Styles 1. Bottom-up New service WSDL & Converters 2. Top-down Existing service description (WSDL) Generates Maps and Generate Generates Existing COBOL or PL/I Programs © 2012 IBM Corporation 3. Meet in the middle New Business App & Converters, Marshallers Existing service description (WSDL) Converters Marshallers, Aggregators Existing Business Apps See Notes on using the CICS Utilities for these Use Cases TechWorks Specifics – Languages and Development Environments Here's a list of the current (RDz v8.0) Development scenarios and Language support Broken out by EST project type Search in the RDz Help System on: Table of runtimes, scenarios, languages See Slide Notes for additional thoughts on support for – including Assembler ©other 2012 IBMlanguages Corporation TechWorks 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. © 2012 IBM Corporation TechWorks What we will do… ● Create a new Web Services for CICS project ● Import our COBOL program and copybooks into the project ● Select the data structure to form the basis of a bottom-up Web Service scenario ● Within the data structure: Specify the input request fields Specify the output response fields ● Specify additional elements and selections for the Web Service to conform to our requirements ● Generate – which produces: WSDL – which is shared with the distributed development team that codes to the service WSBIND - and other artifacts that are published in the CICS pipeline A compiled XML conversion program – that is linked into the CICS load library ● Test the web service – to ensure that: The program is invoked Values are passed back and forth successfully See notes on the Web Services Test Facility © 2012 IBM Corporation TechWorks Example: Web Services for CICS 3.x (Compiled) WSDL Input Converter Output Converter Copybook or complete program RDz XML Enablement Input XML schema definition (.xsd) Output XML schema definition (.xsd) Original Program unchanged WSBIND © 2012 IBM Corporation Converter Driver TechWorks 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 2 Bottom-up © 2012 IBM Corporation TechWorks CICS Web Services Compiled Conversion – 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. © 2012 IBM Corporation TechWorks Example: Web Services for CICS 3.x (Interpretive) WSDL Copybook or complete program RDz XML Enablement No COBOL Converter created Original Program unchanged WSBIND © 2012 IBM Corporation TechWorks Web Services for CICS 3.x Example Bottom-up Interpretive XML Conversion Web service WSDL & Converters 1 2 Existing COBOL or PL/I Bottom-up © 2012 IBM Corporation TechWorks CICS Web Services Interpretive Conversion - Example RDz XML Enablement 1 (Bottom-up) 4 No COBOL 2 Converter is created 5 3 Select language structures from a complete COBOL program or copybook included by the program Syntax check of COBOL source during import. © 2012 IBM Corporation TechWorks 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. © 2012 IBM Corporation TechWorks XML Services for the Enterprise Example Top-down – Creating Service Requestor – 1 of 2 Top-down Existing service description WSDL 1 2 COBOL or PL/I Program & Copybooks or Includes Generate © 2012 IBM Corporation • 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 TechWorks XML Services for the Enterprise – COBOL example Top-down – Creating Service Requestor – 2 of 2 5 6 3 4 © 2012 IBM Corporation TechWorks 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. © 2012 IBM Corporation TechWorks 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 See Slide Notes © 2012 IBM Corporation TechWorks CICS Web services 3.x Example Meet in the middle – 1 of 4 Existing service description WSDL 1 2 Converters / Marshallers/ Aggregators Existing Business Apps © 2012 IBM Corporation 3 4 TechWorks CICS Web services 3.x Meet in the middle – 2 of 4 5 RDz 6 8 7 © 2012 IBM Corporation TechWorks CICS Web services 3.x Meet in the middle – 3 of 4 9 RDz 10 © 2012 IBM Corporation TechWorks CICS Web services 3.x Meet in the middle – 4 of 4 11 12 13 © 2012 IBM Corporation TechWorks Miscellaneous…. Application Deployment Manager integration with Web Service for CICS wizard Batch Processor Support for Bottom-UP and TopDown © 2012 IBM Corporation TechWorks 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 1 Supports Bottom-up, Meet in the Middle and Top-down 2 … For PLI, this is applicable for Bottom-up Interpretive XML conversion only 3 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 © 2012 IBM Corporation TechWorks 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. © 2012 IBM Corporation TechWorks Rational Developer for System z wizard to Test Web Services © 2012 IBM Corporation TechWorks Web Services Test explorer WSDL Test Using Rational Developer for zSeries Web Services Explorer Test your created Web Services (WSDLs) by invoking CICS via HTTP © 2012 IBM Corporation TechWorks 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) © 2012 IBM Corporation TechWorks XML Transformation for CICS 4.1 ● New project category in EST projects XSDBind Deployment bundle Bundle manifest © 2012 IBM Corporation TechWorks 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 IBM B X Potential new path WS-Consumers B Binary data X Existing path © 2012 IBM Corporation X XML data TechWorks 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. © 2012 IBM Corporation TechWorks 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. © 2012 IBM Corporation TechWorks Session summary – We discussed.. 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 2.2 or 2.3 Single service support using CICS TS Version 3.2 XML to COBOL Mapping (Meet in the middle) Batch Processor Support New Features on Version 7.6 You are able now to play with the tool… © 2012 IBM Corporation TechWorks We need interfaces to talk “XML” …. XML SOAP “envelope” sent over HTTP/MQ Service provider opens up XML document, reads the request parameters and does the work. Input request, formatted in XML using the “SOAP” format protocol. XML Interface Request CICS or IMS Service Provider Service Requester XML Implementation Response Service requester opens up XML document and reads the response values © 2012 IBM Corporation XML SOAP “envelope” sent back over HTTP/MQ Service provider packages response in XML formatted to SOAP standards TechWorks 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 Program and copybooks from existing WSDL ● Web Services Enablement wizard (meet-in-the-middle) Rational Developer for System z Maps existing WSDL or XML to existing COBOL app. Meet-in-the-middle since Web Services/XML definition “meets” or maps to the existing COBOL or PL/I (*) interface * Meet in the middle support for PL/I is new on V 7.5 © 2012 IBM Corporation TechWorks XML Services for the Enterprise Web Service Enablement Styles Bottom-up Service WSDL & Converters Top-down Existing service description (WSDL) Converters / Marshallers/ Aggregators Generates © 2012 IBM Corporation Existing service description (WSDL) Maps and Generate Generates Existing COBOL or PL/I Programs Meet in the middle Business App & Converters / Marshallers Existing Business Apps TechWorks XML Services for the Enterprise Example Bottom-up Web service WSDL & Converters 2 Generates 1 3 Bottom-up © 2012 IBM Corporation Existing COBOL or PL/I TechWorks Example: Testing using Rational Developer for System z 1 2 © 2012 IBM Corporation TechWorks Demo: Creating CICS Services from COBOL •Existing COBOL/CICS/BMS application WSDL LAB3CLI EXEC CICS LINK LAB3POT z/OS Texas ZSERVEROS LAB3POTD LAB3POT Converter Driver EXEC CICS READ FILE (‘POTVSAM') INTO (WORK) EXEC CICS RETURN VSAM 9 Minutes © 2012 IBM Corporation Learn more at: IBM Rational software Rational launch announcements Rational Software Delivery Platform Accelerate change & delivery Deliver enduring quality Enable enterprise modernization Ensure Web security & compliance Improve project success Manage architecture Manage evolving requirements Small & midsized business Targeted solutions Rational trial downloads developerWorks Rational Leading Innovation IBM Rational TV IBM Business Partners IBM Rational Case Studies © Copyright IBM Corporation 2010. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. IBM, the IBM logo, Rational, the Rational logo, Telelogic, the Telelogic logo, and other IBM products and services are trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others. 63 63