®
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