Software Group
Modern Application
Architectures for COBOL
Developers - Continuing
the drilldown
Presenters name
Title
email address
2006 IBM Corporation
Software Group
Agenda
Introduction
Middle Tier
WebSphere Application Server
J2EE
Servlets, JSPs and JSF
EGL
Client
HTML
Connectivity
Web Services, XML, SOAP, WSDL
Business Tier
CICS
COBOL
2006 IBM Corporation
Software Group
Modern CICS architecture
CICS TS
Transaction
Client
3270
Presentation
Integration
logic
Business
logic
Data
access
Best practice in CICS application design is to separate key elements of
the application, in particular:
Presentation logic
Integration or aggregation logic
Business logic
Data access logic
3270, HTML, XML
Menu, router, tooling
COBOL, PL/I, Reusable component
VSAM, DB2, IMS,
Provides a framework for reuse and facilitates separation of concerns,
clear interfaces, ownership, and optimisation
2006 IBM Corporation
Software Group
Modern Multitier Architecture
Client Tier
Middle Tier
EJB
Container
(EJBs)
Web
Client
(HTML,
JavaScript)
Web
Container
(Servlets,
JSPs,
JSF
WAS,
Java)
J2EE
Services
(JNDI, JMS,
JavaMail)
Enterprise
Information
Systems
Tier
Core (EIS)
Applications
(CICS
IMS)
Relational
Databases
Enterprise
Resource
Planning
Systems
2006 IBM Corporation
Software Group
Its
not that
different
Spans multiple
system and
middleware boundaries
J2EE
Traditional
Modern
Defines screens, forms
and formats
HTML
BMS
Manages screen I/O and
application flow
JSF
EXEC CICS Send
/Receive
JSP
Session
Bean
Page Handler
Beans
EJBs
Services
Web
Service
Session
Management
CICS
Commarea
Screen and data
validation
Business processing and
data I/O
Validate Input
Web
Service
Business
Services
JCA or MQ
Quotes Securities
Database Master
Customer
Accounts
Order
File
2006 IBM Corporation
Software Group
The Middle Tier
Client Tier
Enterprise
Information
Systems
Tier
Middle Tier
EJB
Container
(EJBs)
Web
Client
(HTML,
JavaScript)
Web
Container
(Servlets,
JSPs,
JSF
WAS,
Java)
J2EE
Services
(JNDI, JMS,
JavaMail)
Core
Applications
(CICS
IMS)
Web Services
JCA
MQ
Etc.
Relational
Databases
Enterprise
Resource
Planning
Systems
2006 IBM Corporation
Software Group
The Java platform
Java is an object-oriented
programming language developed by
Sun Microsystems
Java has a set of standardized class
libraries that support predefined
reusable functionality
Java has a runtime environment that
can be embedded in Web browsers
and operating systems
Many popular UI / Session frameworks
are built on Java processing
Java Program
Java API
Java Virtual Machine
Host Platform
2006 IBM Corporation
Software Group
Procedural and object oriented
System requirement
approaches
example
Banking system model withdrawing money from a savings account
Procedural approach
Identify where the data is stored
List the algorithmic steps necessary to perform the action
Object approach
Identify what objects are involved; these objects will directly relate to real life
objects (Bank, SavingsAccount, Teller and Transaction)
Show how these objects interact:
To enforce business rules for withdrawals
To modify the balance
Both have advantages in SOA in the right place
2006 IBM Corporation
Software Group
What is an Application Server?
Provides the infrastructure for running applications that
run your business
Insulates applications from hardware, operating system,
network
Provides a common environment and programming
model for applications
Write once, run anywhere (J2EE)
Platform for developing and deploying Web Services
Provides a scalable, reliable transaction engine for your
enterprise
Application
Application Server
Hardware, Operating System,
Database,
Network, Storage
What is WebSphere Application Server?
WebSphere Application Server is a platform on which you can run Javabased business applications
It is an implementation of the Java 2 Enterprise Edition (J2EE)
specification
It provides services (database connectivity, threading, workload
management, and so forth) that can be used by the business
applications
2006 IBM Corporation
Software Group
What is J2EE?
J2EE Java 2 Enterprise Edition
Application
A run-time platform used for developing,
deploying, and managing multitier servercentric applications on an enterprise-wide
scale
J2EE defines four types of components
Application Server
Hardware, Operating System,
Database,
Network, Storage
which must be supported by any J2EE product
Applets
Graphical Java components which typically execute within a browser
Can provide a powerful user interface for other J2EE components
Application client components
Java programs which execute on a client machine and access other J2EE components
Web components
Servlets and JavaServer Pages
These provide the controller and view functionality in J2EE
Enterprise JavaBeans
Distributed, transactional components for business logic and database access
2006 IBM Corporation
Software Group
Web page content
Content delivered to a client is composed from:
Static or non-customized content
Customized content
Page layout and style are managed through HTML, XSL
Atomic Bank and
Trust Inc.
Loan ID
00000040
Account
1234-50-1278
Amount
103.52
Principal
37.50
Interest
74.02
save
Dynamic
Content
submit
Today's News
* Atomic Bank
Announces Fourth
Quarter Results
Static
Content
| Home | Search | Products |
Copyright | Trademarks
2006 IBM Corporation
Software Group
Typical J2EE Web Application Model
A request is sent to a servlet that generates dynamic content
and calls a JSP page to send the content to the browser, as
shown:
MVC Design Pattern
Browser
Servlet
Request
(Controller)
3
5
Response
JavaBean
(Model)
JSP
(View)
EIS
Web Container
2006 IBM Corporation
Software Group
What Is a Servlet?
A servlet is a standard, server-side component of a J2EE
application which executes business logic on behalf of
an HTTP request
Runs in the server tier (and not in the client)
A pure Java alternative to other technologies, such as CGI
scripts
Managed by the Web container
Servlets form the foundation for Web-based applications
in J2EE
request
response
2006 IBM Corporation
Software Group
A Simple Java Servlet Example
package com.ibm.example.servlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
import java.io.PrintWriter;
public class VerySimpleServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
String browser = request.getHeader("User-Agent");
response.setStatus(HttpServletResponse.SC_OK); // default
response.setContentType("text/html");
// default
PrintWriter out = response.getWriter();
out.println("<HTML><HEAD><TITLE>Simple servlet");
out.println("</TITLE></HEAD><BODY>");
out.println ("Browser details: " + browser);
out.println("</BODY></HTML>");
}
}
2006 IBM Corporation
Software Group
What is JSP (JavaServer Pages)?
JavaServer Pages is a
technology that lets you mix
static HTML with dynamically
generated HTML
JSP technology allows
server-side scripting
A JSP file (has an extension
<HTML>
<HEAD><TITLE>Our WebSite Home</TITLE></HEAD>
<BODY background="image.jpg" text="#ffffff">
<TABLE>
<TR><TD>
<H1>Welcome to Our WebSite</H1>
</TD></TR><TR><TD>
<H3>Today's date is
<%= new java.util.Date() %>
of .jsp) contains any
combination of:
</H3></TD>
JSP syntax
breaking news</A>.
Markup tags such as HTML
or XML
A simple JSP example
<TD>see <A href="breaking.html">
</TD></TR>
</TABLE>
</BODY>
</HTML>
2006 IBM Corporation
Software Group
JSP or Servlet?
Writing HTML code in a servlet is tedious and difficult to maintain
Java code embedded in a JSP is difficult to reuse and maintain
Use servlets to:
Determine what processing is needed to satisfy the request
Validate input
Work with business objects to access the
data and perform the processing needed
to satisfy the request
Control the flow through a Web application
Use JSP pages to format and displaying
the content generated by your servlets
2006 IBM Corporation
Software Group
What
is JavaServer Faces?
JavaServer Faces (JSF) is a framework for developing Web-based
applications.
A framework is a skeleton or foundation of an application
Provides code, resources, concepts and best practices upon which applications are constructed
The main components of JavaServer Faces are:
An API and reference implementation for:
representing UI components and managing their state
handling events, server side validation, and data conversion
defining page navigation
supporting internationalization and accessibility
providing extensibility for all of these features
A JavaServer Pages (JSP) custom tag library for expressing UI components within a
JSP page
EGL, IBMs enterprise generation or business language supports JSF
2006 IBM Corporation
Software Group
What is EGL?
Enterprise Generation Language (EGL)
Is a development environment and programming language that lets
users write full-function applications quickly
Can be used to create text-based user interfaces for migration of
existing applications
Focus is on the business problem rather than on software
technologies
Is written independently of the target platform
Can be generated into Java or COBOL programs
Is well-suited to procedural programmers
Is a high-level language which promotes iterative development and
testing early in the development cycle
2006 IBM Corporation
Software Group
EGL - generation
Runtime code generated for
appropriate platform
Write EGL once,
deploy anywhere
Java for Windows, Linux, and so
forth
COBOL for z/OS
Uses SQL transparently
EGL can be used to create
full Web-based
applications including Web
UIs
JavaServer Faces application is
generated for runtime code
Runs on WebSphere Application
Server
2006 IBM Corporation
Software Group
EGL key high level language
abstractions
Validation/Editing Rules
Data Access:
Common Verbs for data access (Get, Add, Replace, Delete)
Abstracts access to SQL, Indexed, Relative, Serial, DL/I, MQ, Services
Allows complete access to SQL statement if needed
Common Error Handling
function allLoans()
loans LoanRec[];
get loans;
end
DDL
DDL
function loansInFlorida()
loans LoanRec[];
get loans with #sql{
select *
from LOANREC
where state = "FL"};
end
Define formatting & validation rules once in common place
Reuse data items for Records, screens, reports
DataItem Password char(10) {
validatorFunction = "passwordValidation",
displayUse = secret,
displayName = "Enter your Password",
inputRequired = yes}
end
Remote Invocation
Call COBOL, RPG, C, Java
Linkage information separated from code
simplifies development
function callHelloWorldOniSeries()
salutation char(30);
call helloworld salutation;
end
Transaction Control:
JDBC, CICS, IMS
function loansInFlorida()
startTransaction(myLoanTransaction);
...
commit();
...
rollback();
end
2006 IBM Corporation
Software Group
EGL simple programming model
Page Handlers
Contain functions and data related to a .jsp
Report Handler
Should be mostly Controller Logic
Call-out to EGL ReportHandler
Open Source Reporting Framework
PageHandler customerInfoPage {
view = "customerInfoPage.jsp",
title = "Customer Information",
onPageLoadFunction = "onPageLoad"}
ReportHandler customerList
function onPageLoad()
loans LoanRec[];
get loans;
end
...
end
end
EmplReport.jasper
function afterPageInit()
...
end
Controller Logic/User Interaction
Business Logic
Services
Business Logic for web apps
Programs
Used for single point of entry situations
CustomerService
Multiple entry points
Invoke by function
TUI program, Batch program, GUI program
Program MyProgram
Service Customer
function myFunction()
salutation char(30);
call helloworld salutation;
end
Function getAllCustomers()
end
...
end
2006 IBM Corporation
Software Group
EGL and JSF
Controller
View
JSF Servlet
Request
EGL
Programs
EGL Page
Handlers
Invokes
Response
Model
EGL
Libraries
JSP
(Based on JSF)
Non-EGL
Programs
2006 IBM Corporation
Software Group
JSPs / JSF / EGL and COBOL
JSPs are synonymous with EXEC CICS Send Map and Receive Map
processing
If a CICS program only processed screens to request business processing
or work it would need to either Link, XCTL or Calls in COBOL.
JSP is a similiar concept.
Java Server Faces provides a framework to build UI oriented forms
linked with processes such as Web Services.
Performs similar function as existing CICS programs which perform
send/receive processing and input validation.
Java server faces consist of Java Server pages which handle the
build and catching of forms and user information and page
handlers which validate information and provide control calls into
back end services.
2006 IBM Corporation
Software Group
EGL Web C.I.C.S. Programming
Similarities
Page Data
~
BMS Map Fields
Load values from the database
Send map
Receive map
Process user-input values
Update Database
2006 IBM Corporation
Software Group
The Client
Client Tier
Enterprise
Information
Systems
Tier
Middle Tier
EJB
Container
(EJBs)
Web
Client
(HTML,
JavaScript)
Web
Container
(Servlets,
JSPs,
JSF
WAS,
Java)
J2EE
Services
(JNDI, JMS,
JavaMail)
Core
Applications
(CICS
IMS)
Web Services
JCA
MQ
Etc.
Relational
Databases
Enterprise
Resource
Planning
Systems
2006 IBM Corporation
Software Group
HTML
HTML performs similar processing as BMS or MFS maps. It defines the screens and
fields, colors, and interactions, although the technologies and implementations of
course are different.
Hypertext Markup Language consists of:
Hypertext. The way of creating web documents and of linking multiple documents
together. HTML offers support for both document as well as multimedia links.
Tags or controls: Pieces of code that are used to create links. All browsers let you know
when youve selected an active area of the screen.
For example <head> marks where a heading starts and </head> marks where it ends.
Popular tags include:
Text Tags Logical structure for content
Link Tags to links such as hyperlinks, image links
Style sheet tags how content is rendered
and many more.
See the green screenshot displayed inside of the
WDz BMS Map Editor, together with with the BMS
Macros that are input to generate the code that upon
execution causes the green screen to be displayed.
WDz provides similar support for HTML screens
2006 IBM Corporation
Software Group
BMS and HTML
BMS
HTML
Name and overall format of map - Includes items such as input/output,
whether keyboard should be enabled, types of terminal, colors,
size etc. are defined.
Headings Overall definition, including whether Java Server faces
tags will be used, a heading, and stylesheet definition.
SAMPDB2 DFHMSD
TYPE=&SYSPARM,MODE=INOUT,LANG=COBOL,STORAGE=AUTO,
CTRL=FREEKB,EXTATT=YES,TERM=3270-2,TIOAPFX=YES,
*
*
<HEAD>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ page language="java" contentType="text/html; charset=CP1252"
pageEncoding="CP1252"%>
<META http-equiv="Content-Type" content="text/html; charset=CP1252">
<META name="GENERATOR" content="IBM Software Development Platform">
<META http-equiv="Content-Style-Type" content="text/css">
<LINK href="theme/Master.css" rel="stylesheet" type="text/css">
MAPATTS=(COLOR,HILIGHT,OUTLINE,PS,SOSI),
<TITLE>MAP1</TITLE>
DSATTS=(COLOR,HILIGHT,OUTLINE,PS,SOSI)
MAP1
DFHMDI SIZE=(24,80),
COLUMN=1,
Text headings including location definition, colors, attributes, etc.
f:view> <BODY>
<hx:scriptCollector id="scriptCollector1"><h:form styleClass="form" dir="ltr"
id="form1"><table><tr><td colspan="20"> </td>
LINE=1
Headings and text fields. Defined with DFHMDF macro. You see
position, length, initial value, and field attribute below.
DFHMDF POS=(3,1),LENGTH=27,
INITIAL='Please type Employee Number',
<td colspan="22" nowrap><font color="#ffff00">Employee Record Viewer</font></td>
<td> </td>
<td nowrap><font color="#0000ff"></font></td>
<td colspan="36"> </td>
<tr><td colspan="80"> </td>
<tr><td> </td>
ATTRB=(PROT,NORM)
<td colspan="27" nowrap><font color="#00ffff">Please type Employee
Number</font></td>
Input Fields. Defined with DFHMDF macro. You see a name (which
ultimately defines storage size (and Cobol copybook field
definition), and a difference with the field defined as unprotected
information can be entered.
Input fields
<td> </td>
<td colspan="6" nowrap><h:inputText
value="#{pc_MAP1Page.map1Bean.emponuminput}" required="false" style="color:
#00ff00" size="6" id="emponuminput"></h:inputText></td>
<td> </td>
EMPONUMINPUT DFHMDF POS=(3,29),LENGTH=6,
ATTRB=(UNPROT,NORM),HILIGHT=UNDERLINE
<td colspan="44"> </td>
<tr><td colspan="80"> </td>
<tr><td> </td>
2006 IBM Corporation
Software Group
Connectivity
Client Tier
Enterprise
Information
Systems
Tier
Middle Tier
EJB
Container
(EJBs)
Web
Client
(HTML,
JavaScript)
Web
Container
(Servlets,
JSPs,
JSF
WAS,
Java)
J2EE
Services
(JNDI, JMS,
JavaMail)
Core
Applications and
Services
(CICS
IMS)
Web Services
JCA
MQ
Etc.
Relational
Databases
Enterprise
Resource
Planning
Systems
2006 IBM Corporation
Software Group
Web Services
Architecture for
UDDI
Registry
Application to application
Communication
Interoperation
Service
Broker
publish
WSDL
Browser
SOAP
Definition:
Web Services are
software components
described via WSDL that
are capable of being
accessed via standard
network protocols such as
SOAP over HTTP
Browser
SOAP
bind, invoke
Service
Provider
Web
Service
SOAP
find
WSDL
Service
Requester
Client
Application
WS-I.org (Web Services
Interoperablity Organization)
Ensure interoperability
The entire industry is agreeing
on one set of standards !!
2006 IBM Corporation
Software Group
Web Services Enablement Styles
WSDL
Top
down
Web service
requester
CICS as
provider
CICS
CICS as
requester
Web service
provider
Bottom
up
Language
structure(s)
2006 IBM Corporation
Software Group
Where a wrapper program fits in
Conversion
Pipeline
(SOAP
COMMAREA)
Wrapper
Program
Business
Logic
2006 IBM Corporation
Software Group
XML Terminology
SOAP and WSDL are based on XML
A tag / attribute based syntax
Format of XML file described in
DTD Document Type Definition
XSD XML Schema Definition
XML files are
Well-formed (syntax is ok matching tabs, etc.)
Valid (obeys rules in DTD or XSD) (CICS can validate)
Namespaces
Avoids name collisions
A set of names (XML tags) that apply to a certain space in a
document
2006 IBM Corporation
Software Group
XML Basic Parts
<?xml version="1.0" standalone="no" encoding="UTF-8" ?>
XML Declaration
<!DOCTYPE shirt SYSTEM "http://shirts.com/xml/dtds/shirt.dtd">
Document
<shirt>
type
root element
<model>CICS Tee</model>
declaration
child of root
<brand>Tommy Hilltop</brand>
end tag
start tag
<price currency="USD>10.95</price>
attribute
<fabric content="70%>cotton</fabric>
attribute
<fabric content="30%">polyester</fabric>
<on_sale/>
empty element
<options>
<colorOptions>
<color>red</color>
<color>white</color>
</colorOptions>
<sizeOptions>
<!-- Medium and large are out of stock -->
comment
<size>small</size>
<size>x-large</size>
</sizeOptions>
</options>
<order_info>Call ☎</order_info>
entity reference
</shirt>
2006 IBM Corporation
Software Group
Simple Object Access Protocol (SOAP)
An XML-based protocol for exchanging of information in a
decentralized, distributed environment
An open standard whose main goal is to facilitate interoperability
A protocol which is not tied to any operating system, transport
protocol, programming language, or component technology
message
envelope
optional
headers
XML
document
message
payload
message
envelope
(trailer)
XML Message Envelope
service requested
routing information
message type
date/time stamp
XML Message Headers
authentication
transaction context
XML Message Payload
data understood by target
application
XML Message Trailer
closing tags
optional message digest
application-specific
message vocabulary
Soap envelope
vocabulary
SOAP spec defines how to do this!
2006 IBM Corporation
Software Group
SOAP: Request Message
<SOAP-ENV:Envelope
xmlns:SOAP-ENV=
"http://www.w3.org/2001/06/soap-envelope"
SOAP-ENV:encodingStyle=
"http://www.w3.org/2001/06/soap-encoding">
<SOAP-ENV:Body>
<m:GetLastTradePrice xmlns:m="Some-URI">
app-specific
<symbol>IBM</symbol>
</m:GetLastTradePrice>
message
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
SOAP envelope
2006 IBM Corporation
Software Group
SOAP: Response Message
Result
returned
in Body
<SOAP-ENV:Envelope
xmlns:SOAP-ENV=
"http://www.w3.org/2001/06/soap-envelope"
SOAP-ENV:encodingStyle=
"http://www.w3.org/2001/06/soap-encoding">
<SOAP-ENV:Body>
<m:GetLastTradePriceResponse
xmlns:m="Some-URI">
app-specific
<Price>134</Price>
</m:GetLastTradePriceResponse>message
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
2006 IBM Corporation
Software Group
WSDL - Web Service Description Language
Open Standard
XML resume describing what a Web
Service can do, where it resides, and how
to invoke it
Machine readable, generated, used by
IDEs
Similar in purpose to IDL, but in XML form
Can be One or multiple documents
Major sections are:
Service Interface (operations, input,
output)
Service binding (protocol binding)
Service implementation (location of
service)
definition
type
message
abstract
service
interface
definition
portType
operation
Input
Output
how the
service is
implemented
binding
location of
service
service
port
2006 IBM Corporation
Software Group
WSDL: Logical Contents
Service Interface
definition
Operation (business functions)
Input Message ( 0 or 1 ) and Output
Message ( 0 or 1 )
1 or more parts
Parts may be simple or complex
Complex parts may have multiple
elements
type
message
abstract
service
interface
definition
portType
operation
Input
Output
Service binding
Definition of the physical service
interface implementation
how the
service is
implemented
binding
location of
service
service
Service Implementation
Location of the service
port
2006 IBM Corporation
Software Group
WSDL: Physical Contents
Definitions highest level tag
types definition of complex parts
message a grouping of 1 or more parts
parts simple or complex (complex points to a type)
portType a grouping of operations
operation correspond to business functions
input points to input message
output points to output message
fault can be returned when stuff goes wrong
binding physical associations to operations
operation implementation of a portType operation
service grouping of ports
port location of associated binding
2006 IBM Corporation
Software Group
CICS as a service provider
CICS TS V3.1
TCPIPSERVICE
SOAP message
Service
Requester
CSOL
CWXN
CPIH
Pipeline
HFS
pipeline
config
WSDL
URIMAP
matching
URIMAP
handlers
handlers
dynamic
install
handlers
PIPELINE
data mapping
CICS provided
utility
dynamic
install
WSBind
WEBSERVICE
Business
Logic
Language
structure
2006 IBM Corporation
Software Group
Defining the CICS Web Services Resources
Define a TCPIPSERVICE (or WMQ) and a PIPELINE
Then install the PIPELINE definition and issue CEMT
PERFORM PIPELINE SCAN
CICS uses the PIPELINE definition to
Locate the WSBind file
From the WSBind file, CICS will dynamically create a
WEBSERVICE resource
CICS will also dynamically create a URIMAP definition
Can define everything individually if preferred
2006 IBM Corporation
Software Group
CICS usage of the WSBind file
CICS as a service provider
CICS Web services
Service
Requester
pipeline
SOAP body
WEBSERVICE
resource
HLL data structure
Data mapping
WSDL
business
logic
WSBind
file
CICS
CICS as a service requester
CICS Web services
business
logic
HLL data structure
Data mapping
WSDL
WSBind
file
SOAP body
pipeline
Service
Provider
WEBSERVICE
resource
CICS
2006 IBM Corporation
Software Group
The Business Tier
Client Tier
Enterprise
Information
Systems
Tier
Middle Tier
EJB
Container
(EJBs)
Web
Client
(HTML,
JavaScript)
Web
Container
(Servlets,
JSPs,
JSF
WAS,
Java)
J2EE
Services
(JNDI, JMS,
JavaMail)
Core
Core
Applications
Applications and
and
Services
Services
(CICS
(CICS
IMS)
Web Services
IMS)
JCA
MQ
Etc.
Relational
Databases
Enterprise
Resource
Planning
Systems
2006 IBM Corporation
Software Group
CICS as a Web service requester
CICS TS V3.1
Client Application
Pipeline
Service
Requester
HTTP
Handler
chain
Service
Provider
Transport
WebSphere MQ
Server Application
HTTP or
WebSphere MQ
SOAP body
XML
Language
structure
0101001
HFS
Data Mapping
CSD
Pipeline
config
WSDL
PIPELINE
WSBind
WEBSERVICE
Dynamic
install
1. Develop
Use existing WSDL
Language structure
CICS Client
Application
2. Generate
3. Configure
Language structure Pipeline
Pipeline
WSBIND
configuration
WEBSERVICE
2006 IBM Corporation
Software Group
CICS APIs
Invoking a Web Service from a CICS application
program
CICS as a service requester
EXEC CICS INVOKE WEBSERVICE ( ) CHANNEL
( ) URI ( ) OPERATION ( )
WEBSERVICE: name of the Web Service to be
invoked
CHANNEL: name of the channel containing data to
be passed to the Web Service (DFHWS-DATA
container)
URI: Universal Resource Identifier of the Web
Service (optional)
OPERATION: name of the operation to be invoked
2006 IBM Corporation
Software Group
Data Exchange between CICS programs
Offers a more flexible
with
Containers andExisting
Channels
application using a COMMAREA
and intuitive alternative
to the COMMAREA
Enables large amounts
of data to be passed
between CICS
applications
Not subject to 32KB
restriction
Optimized and managed
by CICS
Requires minimal
Program A
Program B
EXEC CICS LINK PROGRAM(PROGRAMB)
COMMAREA(structure)
EXEC CICS ADDRESS
COMMAREA(structureptr)
Application using a container and channel
Program A
Program B
EXEC CICS PUT CONTAINER(structure name)
CHANNEL(channel-name)
FROM(structure)
EXEC CICS GET
CONTAINER(structure
name)
INTO(structure)
EXEC CICS LINK PROGRAM(PROGRAMB)
CHANNEL(channel-name)
EXEC CICS GET CONTAINER(structure-name)
INTO(structure)
EXEC CICS PUT
CONTAINER(structure
name)
FROM(structure)
application changes
required to use
2006 IBM Corporation
Software Group
IBM Enterprise COBOLCICS/IMS/Batch/DB2 COBOL
XML Language based generation
from COBOL data structure
OS/390, NT or UNIX
XMLParse Document
XMLGenerate Verb
WebSphere EJB support
DB2 V8
XMLDoc-Handler
Evaluate xml-action
when 'START-OF-DOC'
...
when 'END-OF-DOC'
...
when 'START-OF-ELEMENT
...
when 'ATTRIBUTE-NAME'
...
when 'ATTRIBUTE-CHAR'
...
when 'END-ELEMENT
when 'START-OF-CDATA-Section'
when 'CONTENT-CHARACTER
when 'PROCESSING-INSTRUCTION-TARGET'
High speed XML Sax based
parsing
Object Oriented Support for Java
COBOL Interoperability
Unicode support
CICS and DB2 integrated
preprocessor
'
Raise 16Mb COBOL data size
limit
XMLGenerate
Document
XML/
SOAP
Picture clause replication:
01 A PIC X(134217727).
OCCURS::
05 V PIC X OCCURS 134217727 TIMES.
WDz
XML
Support
when 'PROCESSING-INSTRUCTION-DATA'
XML GENERATE XML-OUTPUT FROM SOURCE-REC
COUNT IN XML-CHAR-COUNT
ON EXCEPTION
DISPLAY XML generation error XML-CODE
STOP RUN
NOT ON EXCEPTION
DISPLAY XML document was successfully generated.
END-XML|
COBOL is an excellent business language
2006 IBM Corporation
Software Group
Why COBOL?
Large portfolios
Many developers
High performance
Self documenting
Proven Maintainability
Business oriented, eases technology burden
2006 IBM Corporation
Software Group
Summary
MVC application model provides high levels of flexibility
CICS provides leading edge support of Web Services
Allows for re-use of existing business assets and new
development of high QOS assets
Developers need complete application skills
CICS and WebSphere Application Server are strategic
middleware products that together
Interoperate - Web services, JCA, Enterprise JavaBeans
Exploit and complement z/OS qualities of service
Have high qualities of service, low cost per transaction, excellent
security.
2006 IBM Corporation
Software Group
Demo
Modern Application Architecture Building and testing a
JSF/COBOL process.
Demo of WDz used to create a simple, understandable
visual and business application process for deployment.
The session shows how to build and deploy composite
CICS and WebSphere applications using the IBM
WebSphere Studio tooling and the Enterprise Compilers.
Composite applications are applications which are
assembled from independent component parts, using
Web and Web Services standards.
2006 IBM Corporation
Software Group
BACKUP
2006 IBM Corporation
Software Group
Additional Documentation
CICS TS 3.1 Release Guide, SC34-6421
CICS TS 3.1 Migration Guide(s)
CICS TS 3.1 URLs
Home Page
http://www.ibm.com/software/htp/cics/tserver/v31/
Library
http://www.ibm.com/software/htp/cics/library/cicstsforzos31.html
Web Services Guide
A new book in the CICS Infocenter for CICS TS V3.1
Implementing CICS web services (redbook) SG24-7206
2006 IBM Corporation
Software Group
Resources (1 of 3)
Web Services Architecture (@ W3C)
http://www.w3.org/TR/ws-arch/
Web Services Zone (@ IBM developerWorks)
http://www.ibm.com/developerworks/webservices/
Websphere V5 Web Services Handbook
Redbook: SG24-6891
Web Services for the Enterprise: Providing a
Web Services Interface To a CICS Application
Whitepaper: G325-1111-2
CICS Info Center
Application Development for CICS Web Services, SG24-7126-00
2006 IBM Corporation
Software Group
Resource (2 of 3)
SOAP 1.1 Specification
http://www.w3.org/TR/SOAP/
Apache SOAP4J: xml.apache.org
SOAP4J version 2.2, stable, ready for use
AXIS (First release available)
W3 standardization: w3.org/2000/xp
SOAP 1.2 specification
XML Protocol working group requirements and charter
SOAP - WebServices Resource Center
http://www.soap-wrc.com/webservices/default.asp
MANY resources - e.g., link to SOAP::Lite for Perl
Xmethods lists publicly-accessible web services
http://www.xmethods.net
2006 IBM Corporation
Software Group
Resources
(3 of 3)
WSDL 1.1 Specification
http://w3.org/TR/wsdl
WSDL4J
http://oss.software.ibm.com/developerworks/projects/wsdl4j
WSDL Toolkit (part of WSTK)
http://ibm.com/alphaworks (look under xml on left)
WebSphere Developer for zSeries
http://ibm.com/software/awdtools/devzseries
WSDK (WebSphere SDK for Web Services):
http://ibm.com/developerworks/webservices/wsdk/
Articles and tutorials:
http://ibm.com/developerworks/webservices
2006 IBM Corporation