CICS事务网关-CTG原理及操作
1.1 什么是CTG1.1.1 概述CICS系统是IBM大型机上的重要的交易处理系统,并且由于大型机的特殊性,导致CICS的已有应用程序对分布式平台开放不够,难以重用以往的应用程序。因此,CICS与分布式系统的交互,即外界如何访问CICS传统应用,成为一个重要的课题。 而CTG(CICS Transaction gateway,以下简称为CTG),CICS交易网关,是分布式平台连
·
1.1 什么是CTG
1.1.1 概述
CICS 系统是I BM大型 机上的重 要的交易 处理系统 ,并且由 于大型机 的特殊性 ,导致C ICS的 已有应用 程序对分 布式平台 开放不够 ,难以重 用以往的 应用程序 。因此, CICS 与分布式 系统的交 互,即外 界如何访 问CIC S传统应 用,成为 一个重要 的课题。
而CTG(CICS Transaction gate way, 以下简称 为CTG ),CI CS交易 网关,是 分布式平 台连接到 CICS 的首选工 具,它具 有高性能 ,高安全 性,高可 扩展性等 特性。
CTG 与CIC S的连接 属于直接 相连的方 式,几乎 不用修改 CICS 的已有应 用,即可 被外界访 问。We b Services 同样可以 实现与C ICS的 连接,但 是相比于 Web Services,CTG有以下优势:
(1)没有复杂的标准,技术相对成熟。
(2) 利用已有 的应用程 序接口, 很少需要 对CIC S程序进 行修改。
本文中实例所使用的CICS Transaction Gateway软件为V7.2 for Windows版本。
1.1.2 CTG结构图
相关概念介绍:
1. Gateway Daemon (网关守 护程序) :网关守 护程序用 于监听远 端客户程 序的请求 ,并且可 以管理线 程和网络 连接,以 达到优化 的目的。 网关守护 程序中的 一个重要 组件是协 议处理器 (Pro toco l Hand ler) ,用于处 理远端应 用程序的 请求,可 以支持T CP/I P和SS L协议。
2. Client Daemon (客户机 守护程序 ):客户 机守护程 序是开放 平台CT G的重要 组成部分 ,它提供 一个本地 接口,客 户应用程 序就通过 这个接口 连接到C ICS, 支持C, C++, .Net ,COB OL等多 种语言的 应用程序 。
3. IPIC driver (IPIC 驱动器) :IPI C驱动器 是CTG 中的一个 独立组件 ,作用类 似于客户 机守护程 序,专用 于IPI C方式连 接到CI CS。C ICS在 3.2版 本中引入 了IPI C(IP Inte rcom muni cati on)的 概念,用 于CIC S regi on之间 的互连, 这种连接 是基于T CP/I P协议的 ,具体的 IPIC 概念请参 考其他相 关章节。 从CTG V7.1 版本以后 ,加入了 对IPI C的支持 。
4. CTGCFG tool(CTG configuration tool ,CTG 配置工具 ):CT G产品自 带的图形 化配置工 具,用于 设置ct g.in i配置文 件中的属 性,包括 网关守护 程序和客 户机守护 程序等的 相关参数 。配置客 户端守护 程序界面 ,如下图 所示:
其中重要的几个参数描述如下:
(1) 服务器名 称:一个 8位长的 字符串, 定义一个 独立于协 议的服务 器名称, 客户端应 用程序发 到CIC S的请求 都要发到 这个服务 器。
(2) 协议:指 定CTG 所支持的 各种网络 协议,本 章重点介 绍TCP /IP协 议。
(3) 主机名或 IP地址 :CIC S所在的 主机地址 ,可以指 定主机名 或IP地 址。
(4) 端口:C ICS端 定义的T CPIP Serv ice所 指定的端 口,是客 户端请求 发送到C ICS的 接入点。
配置客户端守护程序界面,如下图所示:
选中“启 用协议处 理程序” 就能使图 示的网关 守护程序 生效。
其中重要的几个参数描述如下:
(1)绑 定地址: 如果在此 处指定某 IP或主 机名,就 可以将协 议处理程 序绑定到 上面指定 的值;如 果需要将 协议处理 程序绑定 到任意地 址,可以 把此处留 空不填。
(2)端 口:安装 CTG的 服务器对 外开放的 CTG端 口,默认 为200 6。
1.1.3 CTG编程接口
由于分布 式系统架 构的多样 性,CT G支持一 下三种连 接方式:
1. External Call Interface (ECI) 外部访问接口
ECI是 简单的R PC式访 问接口, 用来调用 (LIN K) CICS 中的应用 程序,可 以使用C OMMA REA或 chan nel作 为数据接 口,用于 客户应用 程序和C ICS之 间的数据 交换。
CICS 将此种类 型的访问 看成是一 种分布式 程序调用 (DPL : distributed program link )。客户 端发来的 请求由一 个镜像交 易CPM I进行处 理,然后 进一步调 用到目标 应用程序 。
2. External Presentation Interface (EPI) 外部表现接口
EPI被 用来调用 基于32 70终端 的交易。 使用这种 接口时, CICS 上面会自 动安装一 个虚拟的 终端,此 终端受C TG的控 制,并且 CICS 将客户端 发来的请 求运行在 这个虚拟 终端上。 这种接口 只支持S NA协议 。
3. External Security Interface (ESI) 外部安全接口
ESI是 用来验证 并且修改 CICS 外部安全 管理器( 例如RA CF)所 保存的安 全信息, 并且由于 CICS 支持方面 的原因, 目前只能 通过SN A协议进 行连接。
1.1.4 CTG支持的网络协议
TCP/IP:配置最简单的方式。
SNA: 必须和C ommu nica tion Server搭配使用。
IPIC :CIC S在3. 2版本中 引入了I PIC( IP Inte rcom muni cati on)的 概念,用 于CIC S regi on之间 的互连, 这种连接 是基于T CP/I P协议的 ,具体的 IPIC 概念请参 考其他相 关章节。 从CTG V7.1 版本以后 ,加入了 对IPI C的支持 。
Name dpip e:命名 管道,只 支持Wi ndow s版本的 CTG。
EXCI:只支持Z/OS版本的CTG。
1.1.5 CTG的一些注意事项
1.CT G不支持 从CIC S端主动 发出的访 问请求。 这里有个 问题比较 容易引起 误解,就 是CTG 发送请求 到CIC S,CI CS的返 回信息可 以正常返 回给CT G,这种 不是CI CS主动 发起的请 求。
2.CT G不会做 数据的转 换,这个 工作需要 在应用程 序或CI CS中处 理。
1.2 两种模式
CTG的 有两种运 行模式, 这两种模 式是根据 CTG以 及客户应 用的拓扑 结构来区 分的。具 体是哪种 模式取决 于客户应 用程序的 部署位置 ,分别为 本地模式 和远程模 式。
1.本地模式(Local Mode,两层结构)
在本地模 式下,客 户应用程 序与安装 CTG的 serv er为同 一台机器 。在客户 应用程序 对CIC S发送请 求的时候 ,不需要 经过网关 守护程序 ,而是直 接发送到 CICS 端,因此 ,整个体 系架构可 以看作两 层的结构 。这种模 式下,根 本无需启 动网关守 护程序, 对CIC S的请求 直接发送 到客户端 守护程序 。
在客户应 用程序中 的ECI 请求中仍 需要指定 URL参 数为lo cal, 即Con nect ionU RL = " local://" 和PortNumber = 0。
2. 远程模式(Remote Mode,三层结构)
在远程模 式下,客 户应用程 序与安装 CTG的 serv er为不 同的机器 ,甚至不 同的系统 平台。在 这种模式 下,必须 要配置并 且启动网 关守护程 序,网关 守护程序 介于客户 应用程序 和CIC S之间, 整体构成 三层的结 构。
在客户应 用程序的 ECI请 求中需要 指定UR L参数为 CTG所 在机器的 IP地址 ,即Co nnec tion URL = " XXX.XXX.XXX.XXX" 和PortNumber = XXX。
从另外一 个角度对 两种模式 的诠释, 见下图:
图像 1.3 CTG连接到CICS实例
1.配置CICS region
1. Set the SIT parameter TCPIP=YES.
2. Install the following:
– CICS-supplied transient data queue CIEO, in group DFHDCTG
– Transaction CIEP in group DFHIPECI
– Program DFHIEP in group DFHIPECI
3. Add a TCP/IP listener to CICS. Use the following CEDA command to define a TCPIPSERVICE in a group:
– CEDA DEF TCPI PSER VICE (ser vice -nam e) GROUP(group-name)
4. Use the following command to install the TCPIPSERVICE definition:
– CEDA INS TCPI PSER VICE (ser vice -nam e) GROUP(group-name)
2.配置CTG
3.测试连接
1.4 应用程序开发
CTG提供多种编程接口,包括:
(1) J2EE Connector Architecture(JCA) JAVA API, 即J2E E连接器 架构JA VA应用 程序接口 ,这是推 荐的编程 接口。
(2)基 础的JA VA,C ,COB OL,C OM等编 程接口。
1. Java 应用程序开发
2. JCA 应用程序开发
JCA(J2EE Connector Architecture) defines a standard architecture for connecting the Java 2 Platform Enterprise Edition (J2EE) platform to heterogeneous Enterprise Information Systems (EIS). Examples of an EIS include transaction processing systems (such as the CICS TS) and Enterprise Resource Planning systems (such as SAP).
A resource adapter is a middle-tier between a Java application and an EIS, which enables the Java application to connect to the EIS. A resource adapter plugs into application servers supporting the JCA.
JNDI: The Java Naming and Directory Interface (JNDI) is part of the Java platform, providing applications based on Java technology with a unified interface to multiple naming and directory services.
J2C Connection Factory: The connection factory provides connections to the Enterprise Information System (EIS). It operates the connection management of JCA.
Common Client Interface (CCI) : The CCI defines a common API for interacting with resource adapters. It is independent of a specific EIS. A Java application interfaces with the resource adapter using this API.
System contracts: A set of system-level contracts between an application server and an EIS. These extend the application server to provide the following features: (Connection management, Transaction management, Security management). These system contracts are transparent to the application developer. That is, they do not implement these services themselves.
Resource adapter deployment and packaging: A resource adapter provider includes a set of Java interfaces/classes as part of the resource adapter implementation. These Java interfaces/classes are packaged together with a deployment descriptor to create a Resource Adapter Archive (represented by a file with an extension of rar). This Resource Adapter Archive is used to deploy the resource adapter into the application server.
1. Look up a ConnectionFactory for the ECI resource adapter.
2. Create a Connection object using this ConnectionFactory. A Connection is a handle to the underlying network connection to the EIS. Specific connection properties, such as a user name and password, can be passed using an ECIConnectionSpec object.
3. Create an Interaction from the Connection. Specific interaction properties such as the transaction identifier can be passed using an ECIInteractionSpec object. The call to the EIS is initiated by invoking the execute() method on the interaction, passing data as input and output records.
4. After the required interactions have been processed, the interaction and connection should be closed.
1.5 应用举例
1.5.1 简单Java应用
public class CTGdemo {
... Java code ...
// Program name
String strProgram = " EC01" ;
// Port number
int iPort = 2006;
/*
* Use the extended constructor to set the parameters on the
* ECIRequest object
*/
eciRequestObject =
new ECIR eque st(E CIRe ques t.EC I_SY NC, //ECI call type
strC hose nSer ver, //CICS server
null , //CICS userid
null , //CICS password
strP rogr am, //CICS program to be run
null , //CICS transid to be run
abyt Comm area , //Byte array containing the
// COMMAREA
iCom mare aSiz e, //COMMAREA length
ECIR eque st.E CI_N O_EX TEND , //ECI extend mode
0); //ECI LUW token
... Java code ...
}
... COBOL code ...
* Initialize commarea
MOVE SPACES TO DFHCOMMAREA.
* Invoke api to get system time
EXEC CICS
ASKTIME ABSTIME(WS-RAWTIME)
END-EXEC.
* Format
EXEC CICS
FORMATTIME ABSTIME(WS-RAWTIME)
DDMMYY(LK-DATE-OUT)
DATESEP('/')
TIME(LK-TIME-OUT)
TIMESEP(':')
END-EXEC.
... COBOL code ...
*end of program
1.5.2 JCA应用
Lab3 implements a simple internet banking.
Users can query/save/withdraw their money from the web application.
1. Web client
(1)Operation Page s
Operation Types: Query,Save,Withdraw
(2)Return Page
Result: Name, Gender, Balance
2. DATA FORMAT -- COMMAREA
(1) SNNN NNNN NNNX XXXX XXXX X
(2)S= 0,1,2(0-Query, 1-Save, 2-Withdraw)
(3) NNNNNNNNNN --- UserName
XXXXXXXXXX --- Money
struct CTGINPUT{
char signal;
char username??(10??);
char money??(10??);
char success;
char name??(12??);
char gender??(12??);
char balance??(12??);
};
3. CICS Program – VSAM1
(1)three operations
(Que ry,S ave, With draw )
(2) Operate the VSAM files
4. CICS DATA – VSAM files
(1)VSAM file1--USERINFO
(Username:10), (Account:6)
(Name:12), (Gender:6)
(2)VSAM file2--ACCOUNT
(Account:6), (Balance:10)
出处:https://www.ibm.com/developerworks/mydeveloperworks/blogs/cicschina/entry/cics_transaction_gateway69?lang=zh
更多推荐
已为社区贡献1条内容
所有评论(0)