You are on page 1of 23

CICS TS for z/OS

CICS Service Flow Feature


Part 1 of 2

2007 IBM Corporation

This presentation provides an introduction to the CICS Service Flow Feature.

CICS_ServiceFlowRuntime_v01.ppt

Page 1 of 23

CICS TS for z/OS

Agenda
Part 1
 Why service flows
 What is the service flow feature
 What is a service flow

Part 2
 Building a service flow
 Service flow runtime environment

CICS Service Flow Feature

CICS_ServiceFlowRuntime_v01.ppt

2007 IBM Corporation

Page 2 of 23

CICS TS for z/OS

Why service flows?

CICS Service Flow Feature

CICS_ServiceFlowRuntime_v01.ppt

2007 IBM Corporation

Page 3 of 23

CICS TS for z/OS

Transforming the enterprise


 Many leading enterprises have chosen IBM Mainframes
running CICS software to provide service functions
 The proven strengths of CICS running on IBM mainframes has,
over time, led to a huge investment in CICS application code
and skills
 To be agile in todays fast-moving marketplace, companies
must embrace new technologies while leveraging these
assets
 CICS maintains and adds value by enabling traditional, proven
assets to be consumed as Web Services

CICS Service Flow Feature

2007 IBM Corporation

The CICS service flow feature is about reuse. We know you have invested a great deal in your
CICS systems and as you move into the SOA world you want to be able to reuse that investment.
The CICS service flow feature is about unlocking and repurposing your current working/trusted
applications to enable you to expose them as business services to other applications.

CICS_ServiceFlowRuntime_v01.ppt

Page 4 of 23

CICS TS for z/OS

CICS application access and reuse

Presentation
Logic
Business
Business
Logic
Logic
Data
Data
Logic
Logic

Business
Logic

Presentation

3270

Business
Users

A
C
C
E
S
S

M
E
T
H
O
D

Logic

Data
Logic

Business
Business
Logic
Logic
Data
Data
Logic
Logic

Managed Procedural Program Services

CICS Transaction Server

CICS Service Flow Feature

2007 IBM Corporation

Traditionally access to CICS applications has been via 3270 screen. We would have a trained user
probably navigating an application via a BMS mapped interface. They would probably be
presented with a menu of options, maybe they select option 1 to add a new customer. A screen is
presented to them to enter the customers personal details. Maybe this is a banking application and
on submitting that screen they are given a screen with options as to which type of account they
want to create. They select the option to create a credit account and are asked for some more
details ..
.. The point here is that there are a lot of interactions between the user and the application they
are working with. In a purely 3270 world this isnt a problem. The 3270 data stream was optimized
for this type of interaction and if this was a real 3270 terminal it would probably have a dedicated
hard wire link to the system it is accessing.

CICS_ServiceFlowRuntime_v01.ppt

Page 5 of 23

CICS TS for z/OS

CICS application access and reuse


T
R
A
N
S
P
O
R
T

Business Process
WebSphere MQ

B2B

M
E
T
H
O
D

Presentation
Logic
Business
Business
Logic
Logic
Data
Data
Logic
Logic

SOAP over HTTP & MQ

Business
Logic

Enterprise Service Bus


Presentation

New Logic

Java
script

Adapters

Web Services

3270

EJB

M
E
T
H
O
D

Logic

Data
Logic

Business
Business
Logic
Logic
Data
Data
Logic
Logic

RMI-IIOP

EJB
EJB

Portal

A
C
C
E
S
S

WAS J2EE Application

Business

JCA

WebSphere

CICS Service Flow Feature

Users

Managed Procedural Program Services

CICS Transaction Server

2007 IBM Corporation

As we move to a more services oriented architecture we can see that these fine grained
interactions with our applications start to become quite expensive. No matter how efficient the
protocol accessing the application we are now much more likely to have significant overheads in
the requests. This may even just be due to the applications being located in different data centers
which will encounter significant latency just in the network transfer.
Also the information in how to drive the application was traditionally trained into the user. Here
we can see that information would have to be passed on to any external application that wanted to
access the application adding delays into the development cycle of any application development.
In this example we see that the presentation and business logic have been kept separate so that
there is a commarea driven application that can be accessed externally. This is often not the case
and the 3270 interface is the only one that remains. In this case most of the standard technologies
for accessing CICS applications become unavailable to us
<CLICK>
Our solution to this is to this problem is to take our current applications and package them into
Composed Business Services. The key here is that the applications themselves will remain
unchanged. All we are doing is putting a wrapper around them that re-faces them into something
more suitable to be directly accessed by external applications.
CICS_ServiceFlowRuntime_v01.ppt

Page 6 of 23

CICS TS for z/OS

SOA reference architecture


Business Innovation & Optimization Services

Integrated
environment
for design and
creation of
solution
assets

Process Services

Information Services

Enables collaboration
between people, processes
& information

Orchestrate and
automate business
processes

Manages diverse data


and content in a unified
manner

Facilitates communication

ESB

IT Service
Management

Interaction Services

between services

Partner Services

Business App Services

Access Services

Connect with trading


partners

Build on a robust,
scaleable, and secure
services environment

Facilitates interactions
with existing information
and application assets

Apps &
Info Assets

Development
Services

Facilitates better decision-making


with real-time business information

Manage and
secure
services,
applications
&
resources

Infrastructure Services
Optimizes throughput, availability
and performance

CICS TS v3
CICS Service Flow Feature

2007 IBM Corporation

This is the standard SOA Reference Architecture chart that we use in IBM for positioning our
products.
CICS fits into the business application services category and as a component of CICS so does the
service flow feature. The reason for emphasizing this is to say that the service flow feature is not in
the process services space. It is not designed as a business process engine like WBI Process Server.
It is in CICS to expose applications at a sensible granularity so that they can be consumed for
example by a business process server.

CICS_ServiceFlowRuntime_v01.ppt

Page 7 of 23

CICS TS for z/OS

Why a service flow feature?


 Transform the Enterprise
Unlock critical IT assets and re-purpose them to participate in a
service oriented architecture
Opening access to existing fine-grained applications as coarsegrained business functions, while maintaining quality of service
Provide a layer of abstraction between service consumer and
application implementation / user interface
Foster SOA skills in traditional developers

 Increase Productivity
Build libraries of annotated components representing current assets
Rapidly assemble new applications from existing components using
graphical tools
Exploit existing developer skills and literacy
CICS Service Flow Feature

2007 IBM Corporation

Here we see the main requirements behind the development of the service flow feature

CICS_ServiceFlowRuntime_v01.ppt

Page 8 of 23

CICS TS for z/OS

What is the service flow feature?

CICS Service Flow Feature

CICS_ServiceFlowRuntime_v01.ppt

2007 IBM Corporation

Page 9 of 23

CICS TS for z/OS

What is the service flow feature?


 CICS Service Flow Feature provides capability to aggregate
existing CICS applications into composed business services
which may be integrated into an SOA environment
Automate the interaction with 3270 terminal based applications and
expose as a business level service
Aggregate multiple calls to CICS applications in one business level
service call
Service Flow
Input

Output

CICS
Commarea
Application

CICS
Commarea
Application

CICS
Terminal
Interaction

CICS
Terminal
Interaction

 The CICS Service Flow Feature is a no-charge, orderable feature


for CICS TS v3.1
CICS Service Flow Feature

2007 IBM Corporation

The service flow feature is NO CHARGE. If you have a license for CICS TS v3.1 you are entitled
to order the service flow feature.
CICS Service Flow Feature is a business service integration adapter for all CICS applications
well explain a little more that this actually means as we go on
There are 2 main capabilities within the CICS service flow feature.
Firstly you can now automate the interaction with 3270 based application and create from it a
linkable service. This allows you to take an application that was previously unavailable to most of
the standard Access CICS method and now reuse it in an SOA environment.
Secondly you can take multiple interactions with CICS applications and expose them as a single
aggregated application to external clients. This allows you to take your fine grained CICS
applications and expose them as coarse grained business services.

CICS_ServiceFlowRuntime_v01.ppt

Page 10 of 23

CICS TS for z/OS

Traditional access
CICS TS v3
ECI / WMQ / HTTP

CICS
Application

CICS
Application
Client
Application
CICS
Application

CICS
Application

 Multiple requests from client application


Expensive
Low potential for reuse
CICS Service Flow Feature

2007 IBM Corporation

Here we see an example of a client accessing a CICS application. Imagine that this is the example
we were talking about earlier where a client is creating a new bank account. Maybe the first request
in is to check whether the customer already has an account with the bank. The second then takes
the customers details and creates a new customer, the third to create the account and maybe the
forth is a confirmation and initiate sending out to the customer their new account details.
This interaction has many requests to and from the client and will be spending significant amounts
of its time simply waiting for network IO. Also the knowledge of how to create a new customer
account, the applications that must be called with what data and in what order, must be coded into
the client. This very closely couples the client to the back end applications. Not only does the client
application have to know a great deal about the way our CICS application is set up, any changes in
the back end application will require any and all clients that are using them to be recoded. This
leads to a potentially low chance of reuse.

CICS_ServiceFlowRuntime_v01.ppt

Page 11 of 23

CICS TS for z/OS

Aggregated access
CICS TS v3
ECI / WMQ / HTTP

CICS
Application

CICS
Application
Client
Application
CICS
Application

CICS
Application

 Single request from client


Potentially reusable component
More efficient
CICS Service Flow Feature

2007 IBM Corporation

Here we see the same application now fronted by a CICS service flow. Notice that the actual CICS
applications themselves have not been changed simply wrapped by a flow.
Immediately we can see that this is a much simple proposition for the client application. There is a
single request in and a single response back so immediately we have far less time waiting on
network IO. Also the client is now processing a much simple operation. It is Creating a new
account It doesnt have to worry about the individual steps required to perform that in the CICS
application. It simply drives a single service interface and receives back a known response. So
there is a far greater potential for reuse here as describing this business service to clients is far
more desirable than describing the whole architecture of our back end CICS application. There is
now also an isolation between the client and the CICS application giving a much looser coupling.
This allows for changes that occur in the back end application to be shielded from the client
applications in the service flow wrapper.

CICS_ServiceFlowRuntime_v01.ppt

Page 12 of 23

CICS TS for z/OS

Components of the service flow feature


 Tooling
A graphical modeling integrated
development environment
WebSphere Developer for System z V7
Service Flow Modeler
XML Services for the Enterprise (XSE)
Entitlement to 10 product licenses

CICS Service Flow Feature

2007 IBM Corporation

The ability to compose existing applications into a service requires 2 components:


Firstly the Service Flow Modeler.
The Service Flow Modeler is a component of WebSphere Developer for System z. It is part of the
Enterprise Service Toolkit perspective and is a graphical tool that enables you to build service
flows out of existing, terminal and non-terminal based, applications.
The CICS Service Flow Feature for CICS TS v3.1 includes an entitlement to 10 restricted licenses
of WebSphere Developer for System z for the purpose of composing CICS Business Services.
The 10 entitlements allow the user to install and run these WebSphere Developer for zSeries
functions:
Service Flow Modeler (SFM)
XML Services for the Enterprise (XSE) and XML tools
The Web Services Test Environment
The Web Services Test Client
Web Services Explorer
IBM Support Assistant
WDz Help facility

CICS_ServiceFlowRuntime_v01.ppt

Page 13 of 23

CICS TS for z/OS

Components of the service flow feature


 Tooling
A graphical modeling integrated
development environment
WebSphere Developer for System z V7
Service Flow Modeler
XML Services for the Enterprise (XSE)
Entitlement to 10 product licenses
Service Flow

 Runtime
CICS Service Flow Runtime
Extends the CICS TS v3.1 environment.
Offers adapters to invoke CICS commarea based programs and
terminal-oriented transactions

CICS Service Flow Feature

2007 IBM Corporation

The Service Flow Runtime portion of the Service Flow Feature is a runtime component that is
installed into a CICS region that supplies services to a deployed service flow.

CICS_ServiceFlowRuntime_v01.ppt

Page 14 of 23

CICS TS for z/OS

Capabilities - SFF and CICS Web services


Feature

WSA

SFF

Supports bottom up style


Supports batch bottom up generation
Supports meet in the middle style

Enables terminal applications


Enables commarea applications
Can drive multiple apps from one operation
Targets CICS runtime
* Support available through WebSphere Developer for System z only
CICS Service Flow Feature

2007 IBM Corporation

In this presentation we have mentioned services several times. Understanding that CICS TS v3.1
has Web services support how is the Service Flow Feature positioned with respect to this.
Here we see a comparison between the CICS Web Services Assistant (WSA) and the Service Flow
Feature (SFF). The main differences we see are that the Service Flow Feature can enable terminal
based applications and can drive multiple interactions with CICS applications from a single
request.
The Service Flow Feature and base CICS Web services support are actually complimentary. To
expose a service flow as a Web service the Service Flow Runtime utilizes the base CICS support
for Web services.

CICS_ServiceFlowRuntime_v01.ppt

Page 15 of 23

CICS TS for z/OS

What is a service flow?

CICS Service Flow Feature

CICS_ServiceFlowRuntime_v01.ppt

2007 IBM Corporation

Page 16 of 23

CICS TS for z/OS

What is a service flow?


Service Flow
Input

Output

CICS
Commarea
Application

CICS
Commarea
Application

CICS
Terminal
Interaction

CICS
Terminal
Interaction

 A service flow is a non-interruptible micro-flow that is constructed


from a collection of nodes that represent the invocation of CICS
resources
 The flow describes the navigation of the nodes and allows data
mapping between the nodes
 A single request may cause the execution of many CICS resources
 Allows for the development of coarse grained services from fine
grained resources
CICS Service Flow Feature

2007 IBM Corporation

The important thing to note about a service flow is that it should be considered as a micro-flow.
That is there is a single thread of execution (though this may involve multiple CICS tasks) and
that a service flow should be a short lived entity that doesnt block waiting for external
intervention. Compare this with a business process which potentially can be very long running
(think the business process associated with an insurance claim that may go on for years) and will
often suspend execution waiting for external intervention.

CICS_ServiceFlowRuntime_v01.ppt

Page 17 of 23

CICS TS for z/OS

Model with SFM


Integrated CICS
application

CICS Service Flow Feature

2007 IBM Corporation

Here we see a service flow that has been modeled in the Service Flow Modeler. Note that this is
just a portion of the entire SFM screen enlarged for clarity.
We can see some of the important characteristics of a service flow.
Firstly there is a single input point, the Receive node, (orderInvoice) and a single good exit point,
the Reply node, (shippingInfo). This flow is modeling a shipping application where based on the
details retrieved about a customer a method of shipping is chosen. The first Invoke node
(retrieveCustomer) will retrieve details about this customer based on a customer ID passed into the
flow. We then run a Choice node. Here a decision is made based on the information retrieved. If
the customer is found to be a VIP the orderVIPShipping node is invoked if not a VIP then the
orderRegularShipping is invoked. If the customers details cannot be found then this flow cannot
continue normal execution and the Throw node (error) is invoked.
Notice that there is a single thread of execution. Either orderVIPShipping is invoked, or
orderRegularShipping or the error node. There is no parallel execution as this is a microflow.

CICS_ServiceFlowRuntime_v01.ppt

Page 18 of 23

CICS TS for z/OS

Components of a service flow

Receive

Input node for flow

Reply

Output node from flow

Throw

Throw fault node

Invoke

Generic invoke (target not yet defined)

Invoke Operation Invoke a non-terminal operation


Invoke Terminal

Invoke a terminal screen operation

Invoke Flow

Invoke a flow

Assign

Map data between messages in the flow

Switch

Flow control decision node

While

Flow control loop node

CICS Service Flow Feature

2007 IBM Corporation

Here we see the component types that we can use to create a flow. They break down into 3 main
categories:
-Input/Output
-Invoke
-Flow control
The Flow control nodes allow for data to be mapped to the input of any node from the output of
any preceding node using an assign node. A switch node allows decision logic to be modeled into a
flow and a while node allows for the construction of loops within a flow.

CICS_ServiceFlowRuntime_v01.ppt

Page 19 of 23

CICS TS for z/OS

Development model
Service Flow
Host Application Port
Screen = DEF

Screen = ABC
Screen ABC
Screen GHI

Screen GHI
Screen = XYZ

Screen = MNO
Screen JKL

WSDL

XSD

Screens shown, but applies to transaction as well


CICS Service Flow Feature

2007 IBM Corporation

In creating the Service Flow Modeler the decision was made to reuse as many know standards as
possible. In that way the internal model for a flow is based on WSDL <CLICK>
The application is defined as a WSDL interface <CLICK>
Interactions with the application are defined as WSDL operations <CLICK> and the data that will
flow to and from those operations are defined in WSDL message types described in XML Schema
<CLICK>

CICS_ServiceFlowRuntime_v01.ppt

Page 20 of 23

CICS TS for z/OS

Deployment model
CICS TS v3.1
SOAP PIPELINE

SOAP Client

Service Flow Runtime


JCA Client

WebSphere
MQ Client

Generated Service Flow Code

WebSphere MQ
CICS Bridge

CICS Application

Link3270
Bridge

Linkable
CICS
Application

FEPI

Terminal
Based CICS
Application

EXEC CICS
INVOKE
WEBSERVICE

WebSphere
MQ

CICS Service Flow Feature

2007 IBM Corporation

The runtime portion of the feature requires a CICS TS v3.1 host


<CLICK> The runtime support is installed into a region
<CLICK> Into the runtime your generated service flow code is deployed
<CLICK> That code can then access runtime services that allow it to:
Link to existing CICS applications
Drive terminal based applications via the Link3270 bridge or FEPI
Drive outbound Web service calls via the EXEC CICS INVOKE WEBSERVICE api
Model PUT/GET pairs with WebSphere MQ
<CLICK> To invoke a flow we simply link to the SFR stub so any way you can link to an existing
CICS application you can start a service flow
Link from another CICS application
Come in via WebSphere MQ over the CICS/MQ bridge
Via a JCA client using the CICS Transaction Gateway
Form a Web service client using the standard CICS Web services support

CICS_ServiceFlowRuntime_v01.ppt

Page 21 of 23

CICS TS for z/OS

Feedback
Your feedback is valuable
You can help improve the quality of IBM Education Assistant content to better meet your
needs by providing feedback.

 Did you find this module useful?


 Did it help you solve a problem or answer a question?
 Do you have suggestions for improvements?
Click to send e-mail feedback:

mailto:iea@us.ibm.com?subject= Feedback about


CICS_ServiceFlowRuntime_v01.ppt

CICS Service Flow Feature

2007 IBM Corporation

You can help improve the quality of IBM Education Assistant content by providing feedback.

CICS_ServiceFlowRuntime_v01.ppt

Page 22 of 23

CICS TS for z/OS

Trademarks, copyrights, and disclaimers


The following terms are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both:
CICS

IBM

System z

WebSphere

EJB, J2EE, Java, and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
Product data has been reviewed for accuracy as of the date of initial publication. Product data is subject to change without notice. This document could include
technical inaccuracies or typographical errors. IBM may make improvements or changes in the products or programs described herein at any time without notice. Any
statements regarding IBM's future direction and intent are subject to change or withdrawal without notice, and represent goals and objectives only. References in this
document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services available in all countries in which IBM
operates or does business. Any reference to an IBM Program Product in this document is not intended to state or imply that only that program product may be used.
Any functionally equivalent program, that does not infringe IBM's intellectual property rights, may be used instead.
Information is provided "AS IS" without warranty of any kind. THE INFORMATION PROVIDED IN THIS DOCUMENT IS DISTRIBUTED "AS IS" WITHOUT ANY
WARRANTY, EITHER EXPRESS OR IMPLIED. IBM EXPRESSLY DISCLAIMS ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE OR NONINFRINGEMENT. IBM shall have no responsibility to update this information. IBM products are warranted, if at all, according to the terms and
conditions of the agreements (for example, IBM Customer Agreement, Statement of Limited Warranty, International Program License Agreement, etc.) under which
they are provided. Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly
available sources. IBM has not tested those products in connection with this publication and cannot confirm the accuracy of performance, compatibility or any other
claims related to non-IBM products.
IBM makes no representations or warranties, express or implied, regarding non-IBM products and services.
The provision of the information contained herein is not intended to, and does not, grant any right or license under any IBM patents or copyrights. Inquiries regarding
patent or copyright licenses should be made, in writing, to:
IBM Director of Licensing
IBM Corporation
North Castle Drive
Armonk, NY 10504-1785
U.S.A.
Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. All customer examples described are presented
as illustrations of how those customers have used IBM products and the results they may have achieved. The actual throughput or performance that any user will
experience will vary depending upon considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage configuration,
and the workload processed. Therefore, no assurance can be given that an individual user will achieve throughput or performance improvements equivalent to the
ratios stated here.
Copyright International Business Machines Corporation 2007. All rights reserved.
Note to U.S. Government Users - Documentation related to restricted rights-Use, duplication or disclosure is subject to restrictions set forth in GSA ADP Schedule
Contract and IBM Corp.

CICS_ServiceFlowRuntime_v01.ppt

Page 23 of 23