® ibm software group © 2012 ibm corporation web services – an introduction slides assembled by...

63
® IBM Software Group © 2012 IBM Corporation Web Services – An Web Services – An Introduction Introduction Slides assembled by Jon Sayles, Rational System z Products - [email protected] Content authored by Dennis Weiand and others

Upload: mae-chambers

Post on 23-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

®

IBM Software Group

© 2012 IBM Corporation

Web Services – An IntroductionWeb Services – An Introduction

Slides assembled by Jon Sayles, Rational System z Products - [email protected]

Content authored by Dennis Weiand and others

Page 2: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

2

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.

Page 3: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

3

Course Contributing Authors

Thanks to the following individuals, for assisting with this course: Reginaldo Barosa/IBM-Rational Isabel Arnold/IBM-Rational

Page 4: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

44

z/OS Development, Maintenance and Production Application Support

Access Datasets/Source Files

Program Analysis

EnterpriseModernization

Source Development

CICSWeb Services

IMS SoapIMS Web 2.0

Source Navigation• Windows (Standard) Navigation• ISPF PF-keys + extensible Hot-keys• Outline View• Hover• Open Declaration / Arrow keys• Open copybooks

• Windows metaphor• Edit/Browse/View• “Favorites” – “Most recently used”

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”

Generate:• WSDL• WSBIND file• XSD files• Deployment manifest• Stub modules• Test and Deploy WSDL• Use Cases:• Bottom Up• Top Down• Meet in the middle

Generate • XML/WSDL• COBOL/PLI converters• Manifest filesUse Cases:• Bottom Up• Top down (PL/I only)• Meet in the middle

SCM:• IBM: Team Concert, SCLM, ClearCase• CA: Endevor, Panvalet, Librarian,• Serena: Changeman• ISPW

RDz Functional Taxonomy – a Partial ListRDz Functional Taxonomy – a Partial List

Submitting/Managing Jobs• Submit and Locate Job• Integration with JES• Job Organization options (Filters)• Show JCL• Cancel/Purge

Windows Screen Real Estate• Size-able views• Multi-window development• Source Filters• Collapse/Expand paragraphs/sections

• SCM functional integration• PDS Support• Migrate/Recall Support• Local and Remote file support• Tooling support in single or across multiple LPARs

• Source and PDS Search• QSAM Data File Search• Browse Load Module• Search Load Library• Use of Regular Expressions

Program Logic tools • Control Flow Analysis• Data Flow Analysis• Where used/Where Referenced

Content Assist• COBOL, PL/I, Assembler• SQL: Embedded, Interactive• CICS statements

Dataset Management CICSService Flows• 3270 "screen scraping"• Aggregate transactions• Automate processes• Expose as web services

Syntax Check and Build• Real-time validation• Local and Remote Syntax Checking• Integration with z/OS Build Process

Test and Debug• Integration with PD Tools/Debug Tool• Integration with Xpeditor and CA-Intertest

Editing Data Sources• QSAM File Editor• DB2 Table Editor• IMS Segment Editor• VSAM File Editing with File Manager• Integration with File-Aid Plug-ins

• Allocate/ Rename/Delete• Create GDG Model• Create VSAM Dataset• Search• Compress

Code Quality• Code Review• Source Format• File Compare• All of the above functionality

Copy Files• Within an LPAR• Across LPARs• LPAR PC

Functional Integration with z/OS REXX/CLIST/3rd Party Tools:• Menu Manager• HATS• Eclipse Plug-in Integration RDz Product Integration

Languages• COBOL, PL/I, Assembler, Java, C/C++• JCL/CLIST/REXX• SQL• BMS/MFS• WSDL, HTML, XML• 4GLs supported with Eclipse Tooling

Page 5: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

5

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”

ExternalWebService

WSDLRDz

Records

RDz Service

RDz Service

WSDL

RDz Interface

RDz Interface

RDz SOA for WAS, CICS, System i

At development time… 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

Deploy Web Services…To any platform Java to WAS/Tomcat/etc. COBOL to CICS, iSeries

As… A Web Service (uses SOAP) A private service (uses CICS ECI, J2C, or TCP) Other SOA runtimes when they reach critical mass

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

External Applications

Deploy Services as Web ServicesDeploy Services as Web Services

Consume external servicesConsume external services

The Promise of Services and SOA (Service Oriented Architecture)

Page 6: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2008 IBM Corporation6

Service Oriented ArchitectureService Oriented Architecture

Service oriented architecture Service oriented architecture (SOA) is a business-driven IT (SOA) is a business-driven IT architectural approach that architectural approach that supports integrating the supports integrating the business as linked, repeatable business as linked, repeatable business tasks, or services.business tasks, or services.

From www.ibm.com

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.

Page 7: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2008 IBM Corporation7

At a Very High LevelAt 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:

Intermediary Function

Simple forwarding

or

Complex message transformation and protocol remapping

Passing of an agreed-to request in

message format

Return of information in the form of an agreed-to message response

Page 8: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2008 IBM Corporation8

A “Service” – Conceptual DefinitionA “Service” – Conceptual DefinitionA discrete set of business or technical functionality that can be identified, has a defined set of input and outputs, and is reusable

User“Consumer”

Service“Producer”Input

Output

Discrete – can be contained within a definite and known “fence”Identified -- it’s recognized as a service and people acknowledge it as a serviceDefined – the input and the outputs are known and understoodReusable – is not just a one-time thing

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

Inte

rfac

eImplementation

Exactly how the service is implemented behind the interface doesn’t really matter to the

consumer of the service

Page 9: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2008 IBM Corporation9

An Example - Currency ExchangeAn Example - Currency Exchange

IBM’s Travel Expense Reimbursement application does not do its own foreign currency conversions … it uses an external service for that:

Currency = $US?

Inte

rfac

e

Implementation$US

No

YesInternet

[ £100,$US,15-June ]

[ $196.00 ]

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

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.

Understanding what services are available, where they’re located and what interface requirements they have is a key aspect of SOA.

Page 10: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2008 IBM Corporation10

CICS is an Application CICS is an Application ServerServerCICS is a system that hosts applications, and provides a rich set of “services” which the applications may make use of:

CICS Services

External Data Resources“EXEC CICS” API C++ classes for CICS JCICS classes for Java

“CICS Programs”COBOL

C/C++

PL/I

AssemblerJava EJBs

CICS EJB Support(transparent mapping)

CICS

ProgramAccess

JVMs

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.

These are the “existing assets” we’re looking to “expose” as services

Page 11: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2008 IBM Corporation11

Provider vs. Requester -- CICS Can Do BothProvider vs. Requester -- CICS Can Do Both

CICS as a Web Service Provider …

We typically consider CICS as a provider of web services:

Web Service Client

Appl

CICS

But it can also be a consumer (or requester) of web services:

Appl

CICS

Web Service Client

This web service could be anywhere accessible to CICS -- inside your company or outside

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.

The case where existing (or new) CICS applications are exposed as reusable services.

External Service

Page 12: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2008 IBM Corporation12

CICS as a Web Services ProviderCICS 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

HTTP

MQ

Built-in SOAP Handler

Custom Program

CICS Transaction

CICS

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

Page 13: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

13

CICS as a Web Service Provider – The "Transaction Flow Model" or "Big Picture"

CICS TS (Compiled XML Conversion)

Web Service Pipeline

Program

XML

Adapter

DFHPIITL

Target

Application

COMMAREA / CONTAINER

SOAP SOAP

DFHRPL

COBOL Compiled Converters

Converter Driver

Inbound Converter

Outbound Converter

RDz

DFH-BODY

DFH-DATA

DFH-DATA

DFH-BODY

CICS SYSTEM COMPONENT

COMMAREA / CONTAINER

1.

2.

3. 4.

5.

6.

7.

Page 14: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

14

Web Service Pipeline

Program

XML

Adapter

DFHPIITL

Interpretive XML Conversion

DFH-BODY

DFH-DATA

DFH-DATA

DFH-BODY

Target

Application

SOAP SOAP

DFHRPL

ICMMetadata

CICS SYSTEM COMPONENT

COMMAREA / CONTAINER

COMMAREA / CONTAINER

CICS TS (Interpretive XML Conversion)

Interpretive Parsing (an alternative to Compiled Conversion)

Page 15: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

15

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.

Page 16: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

16

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?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 debatesExample of XML SOAP envelope

we’ll use in one of the labs

XML can be “parsed”XML is “Self Describing”Something called a “Schema Definition” (XSD) is used to tell a program what XML tags to expect.

The WSDL file (more in moment) 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.

Page 17: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

17

“SOAP over HTTP”

The Web Service Description Language (WSDL) file …

<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> <CustNo>3</CustNo>   </q0:DFHCOMMAREA>  </SOAP-ENV:Body></SOAP-ENV:Envelope>

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

HTTP Protocol(TCP/IP Network)

XML File

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 SOAP input for our CICS lab

Knowing the layout is not that important to us at this point

Page 18: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

18

The WSDL File

Where does WSDL come from? …

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

<SOAP-ENV:Body> <q0:DFHCOMMAREA> <CustNo>3</CustNo> </q0:DFHCOMMAREA></SOAP-ENV:Body>

Web Service Client

<complexType name="DFHCOMMAREA"> <sequence> <element name="CustNo"> <simpleType> <restriction base="int"/> </simpleType> </element> </sequence></complexType>

<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>

What service will return was here … removed to save space

Web Service Provider

Client knows input XML and data requirements based on this

Client knows where service is located based on this

Page 19: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

19

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 secondThat’s .1 second1/10th of a second1/10th of a second

Any other questions about "Why Web Services"?Any other questions about "Why Web Services"?

Page 20: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

CICS Web Services Development ToolsThere are two primary tools used to develop CICS web services:

1. CICS Web Service AssistantConsists 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 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

Page 21: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

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 useuse RDzRDz

Note that all of the restrictions of using the CICS Web Assistant also apply to using CICS Interpretive XML ParsingNote that all of the restrictions of using the CICS Web Assistant also apply to using CICS Interpretive XML Parsing

See slide notes for a deeper technical additional discussion of this topic

What flexibility does RDz Provide over CICS WS?

Page 22: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2008 IBM Corporation22

What’s Produced by RDz for Web ServicesWhat’s Produced by RDz for Web Services

The process of creating and defining a Web Service to CICS

z/OS System

COBOL source, including COPYBOOK of existing

CICS application

COBOL source to our new handler, which converts SOAP XML-to-COMMAREA and vice-versa

WSBINDWSBIND file, which is a binary file that contains information about the service, including the “URI MapURI Map” that triggers the execution of the pipeline and web service

RDz

Import into RDz

Run through the creation

wizardsCompile this into the CICS LOADLIB

Optional used to define the CICS pipeline entriesMore complex scenarios can

occur, of course. But this illustrates some essential elements of the process

Transfer down to RDz

Using simple drag-and-drop capability

Transferback

Page 23: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

23

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.

Web Service Client

Web Service ProviderService Program

WSDL File• Rational Application Developer• WebSphere Developer for zSeries• Other Development Tools

With WSDL, client knows where service is and how to drive it

Page 24: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

IBM Rational Developerfor System z

Rational Application Developer or Rational Business Developer

IBM Rational Developer for System z version 7.6

CICS BMS/IMS MFS Map Support CICS BMS/ IMS MFS Map Support

• Visually create and modify BMS Map sets or IMS/MFS

• Generates JCL• Work with local or remote maps

z/OS Application Development

z/OS Application Development• 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

Enterprise Service Tools

Enterprise Service Tools- 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

CICS Service Flow support

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.

DB2 Stored Proc for COBOL - PL/I

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

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

DB2 App Generator wizard

DB2 App Generator wizard• 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

VSAM App Generator wizardVSAM App Generator wizard• Generate JCL , BATCH or CICS

COBOL program skeletons to access VSAM/QSAM

UML to COBOL Transformation(*) 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 NotesSee Slide Notes

Page 25: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

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)

Page 26: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

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

See Slide Notes – on See Slide Notes – on support for UTF-16 and support for UTF-16 and

UTF-8 encodingUTF-8 encoding

Page 27: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

XML Services for the Enterprise Web Service Enablement Styles

Generates

New serviceWSDL &

Converters

1. Bottom-up

Existing service description (WSDL)

NewBusiness App &

Converters, Marshallers

2. Top-down

Maps andGenerate

3. Meet in the middle

ExistingBusiness Apps

Existing service description (WSDL)

Converters Marshallers,AggregatorsGenerates

ExistingCOBOL or PL/I

Programs

See Notes on using the CICS Utilities for these Use Cases See Notes on using the CICS Utilities for these Use Cases

Page 28: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

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 See Slide Notes for additional thoughts on support for other languages – including Assemblerother languages – including Assembler

Specifics – Languages and Development Environments

Page 29: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 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.

Page 30: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 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 FacilitySee notes on the Web Services Test Facility

Page 31: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

Example: Web Services for CICS 3.x (Compiled)

Copybook or complete

program

RDz XML Enablement

Original Program unchanged

Input Converter

Input XML schema definition (.xsd)

Output Converter

WSDL

WSBIND

Converter Driver

Output XML schema definition (.xsd)

Page 32: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

ExistingCOBOL or PL/I

Web serviceWSDL &

Converters

Bottom-up

Web Services for CICS 3.x Example Bottom-up Compiled XML Conversion - 1 of 2

1

2

Page 33: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

CICS Web Services Compiled Conversion – 2 of 2

RDz XML Enablement

(Bottom-up)

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.

5

Page 34: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

Example: Web Services for CICS 3.x (Interpretive)

Copybook or complete

program

RDz XML Enablement

Original Program unchanged

WSDL

WSBIND

NoNo COBOL COBOL

ConverterConvertercreatedcreated

Page 35: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

ExistingCOBOL or PL/I

Web serviceWSDL &

Converters

Bottom-up

Web Services for CICS 3.x Example Bottom-up Interpretive XML Conversion

1

2

Page 36: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

1

CICS Web Services Interpretive Conversion - Example

RDz XML Enablement

(Bottom-up)

2

3

Select language structures from a complete COBOL program or copybook included by the program

Syntax check of COBOL source during import.

4

5

No COBOL

Converteris created

Page 37: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 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.

Page 38: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

Existing service description WSDL

Top-down

XML Services for the Enterprise Example Top-down – Creating Service Requestor – 1 of 2

Generate

COBOL or PL/I Program &

Copybooks orIncludes

1

2

• 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

Page 39: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

XML Services for the Enterprise – COBOL exampleTop-down – Creating Service Requestor – 2 of 2

3

4

5

6

Page 40: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 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.

Page 41: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 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 NotesSee Slide Notes

Page 42: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

CICS Web services 3.xExample Meet in the middle – 1 of 4

ExistingBusiness Apps

Existing service description WSDL

Converters /Marshallers/Aggregators

1

2

34

Page 43: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

CICS Web services 3.xMeet in the middle – 2 of 4

RDz

5

6

78

Page 44: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

CICS Web services 3.xMeet in the middle – 3 of 4

RDz

9

10

Page 45: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

CICS Web services 3.xMeet in the middle – 4 of 4

11

12

13

Page 46: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

Application Deployment Manager integration with Web Service for CICS wizard

Batch Processor Support for Bottom-UP and Top-Down

Miscellaneous….

Page 47: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 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

● Supports Bottom-up, Meet in the Middle and Top-down

For PLI, this is applicable for Bottom-up Interpretive XML conversion only

1

…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

23

Page 48: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 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.

Page 49: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

Rational Developer for System z wizard to Test Web Services

Page 50: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 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

Page 51: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 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)   

Page 52: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

XML Transformation for CICS 4.1● New project category in EST projects

XSDBind

Deployment bundle

Bundle manifest

Page 53: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 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

IBM

DataPower

B

X

Binary data

XML data

X

WS-Consumers

WS-Consumers

Existing path

Potential new path

X

B

Page 54: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

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.

Page 55: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 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.

Page 56: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 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…

Page 57: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

We need interfaces to talk “XML” ….

Input request, formatted in XML using

the “SOAP” format protocol.

Service provider opens up XML document, reads the request

parameters and does the work.

Service Requester

Request

Response

Inte

rfac

e

Implementation

CICS or IMS Service Provider

XML

XML

XML SOAP “envelope” sent over HTTP/MQ

Service provider packages response in XML formatted to

SOAP standards

XML SOAP “envelope” sent back over

HTTP/MQ

Service requester opens up XML document and reads

the response values

Page 58: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 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 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

Page 59: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

XML Services for the Enterprise Web Service Enablement Styles

Generates

ServiceWSDL &

Converters

Bottom-up

Existing service description (WSDL)

Business App&

Converters / Marshallers

Top-down

Maps andGenerate

Meet in the middle

ExistingBusiness Apps

Existing service description (WSDL)

Converters /Marshallers/Aggregators

Generates

ExistingCOBOL or PL/I

Programs

Page 60: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

ExistingCOBOL or PL/I

Web serviceWSDL &

Converters

Bottom-up

XML Services for the Enterprise Example Bottom-up

1

2

3

Generates

Page 61: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

Example: Testing using Rational Developer for System z

1

2

Page 62: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

© 2012 IBM Corporation

TechWorks

z/OS Texas

•Existing COBOL/CICS/BMS application

ZSERVEROS

Demo: Creating CICS Services from COBOL

EXEC CICS LINK LAB3POT

LAB3CLI

EXEC CICS READ FILE (‘POTVSAM')

INTO (WORK)

EXEC CICS RETURN

VSAM

LAB3POT

WSDL

LAB3POTD

Converter Driver

9 Minutes

Page 63: ® IBM Software Group © 2012 IBM Corporation Web Services – An Introduction Slides assembled by Jon Sayles, Rational System z Products - jsayles@us.ibm.comjsayles@us.ibm.com

63

63

© 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.

Learn more at:IBM Rational softwareRational launch announcementsRational Software Delivery PlatformAccelerate change & deliveryDeliver enduring qualityEnable enterprise modernization

Rational trial downloadsdeveloperWorks RationalLeading InnovationIBM Rational TVIBM Business PartnersIBM Rational Case Studies

Ensure Web security & complianceImprove project successManage architectureManage evolving requirementsSmall & midsized businessTargeted solutions