Professional Documents
Culture Documents
CICS_ServiceFlowRuntime_v01.ppt
Page 1 of 23
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_ServiceFlowRuntime_v01.ppt
Page 2 of 23
CICS_ServiceFlowRuntime_v01.ppt
Page 3 of 23
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
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
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
Business Process
WebSphere MQ
B2B
M
E
T
H
O
D
Presentation
Logic
Business
Business
Logic
Logic
Data
Data
Logic
Logic
Business
Logic
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
Business
JCA
WebSphere
Users
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
Integrated
environment
for design and
creation of
solution
assets
Process Services
Information Services
Enables collaboration
between people, processes
& information
Orchestrate and
automate business
processes
Facilitates communication
ESB
IT Service
Management
Interaction Services
between services
Partner Services
Access Services
Build on a robust,
scaleable, and secure
services environment
Facilitates interactions
with existing information
and application assets
Apps &
Info Assets
Development
Services
Manage and
secure
services,
applications
&
resources
Infrastructure Services
Optimizes throughput, availability
and performance
CICS TS v3
CICS Service Flow Feature
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
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
Here we see the main requirements behind the development of the service flow feature
CICS_ServiceFlowRuntime_v01.ppt
Page 8 of 23
CICS_ServiceFlowRuntime_v01.ppt
Page 9 of 23
Output
CICS
Commarea
Application
CICS
Commarea
Application
CICS
Terminal
Interaction
CICS
Terminal
Interaction
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
Traditional access
CICS TS v3
ECI / WMQ / HTTP
CICS
Application
CICS
Application
Client
Application
CICS
Application
CICS
Application
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
Aggregated access
CICS TS v3
ECI / WMQ / HTTP
CICS
Application
CICS
Application
Client
Application
CICS
Application
CICS
Application
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_ServiceFlowRuntime_v01.ppt
Page 13 of 23
Runtime
CICS Service Flow Runtime
Extends the CICS TS v3.1 environment.
Offers adapters to invoke CICS commarea based programs and
terminal-oriented transactions
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
WSA
SFF
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_ServiceFlowRuntime_v01.ppt
Page 16 of 23
Output
CICS
Commarea
Application
CICS
Commarea
Application
CICS
Terminal
Interaction
CICS
Terminal
Interaction
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
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
Receive
Reply
Throw
Invoke
Invoke Flow
Invoke a flow
Assign
Switch
While
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
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
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
Deployment model
CICS TS v3.1
SOAP PIPELINE
SOAP Client
WebSphere
MQ Client
WebSphere MQ
CICS Bridge
CICS Application
Link3270
Bridge
Linkable
CICS
Application
FEPI
Terminal
Based CICS
Application
EXEC CICS
INVOKE
WEBSERVICE
WebSphere
MQ
CICS_ServiceFlowRuntime_v01.ppt
Page 21 of 23
Feedback
Your feedback is valuable
You can help improve the quality of IBM Education Assistant content to better meet your
needs by providing feedback.
You can help improve the quality of IBM Education Assistant content by providing feedback.
CICS_ServiceFlowRuntime_v01.ppt
Page 22 of 23
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