CICS(Customer Information Control System)是ibm公司一个用于处理联机应用的产品,充当操作系统和应用程序之间的接口,是一种用于主机环境的联机事务处理(OLTP)产品。
1 CICS联机事务处理的主要特点:
①多用户:联机事务处理可同时为多个联机用户提供服务,允许在组织结构中的用户
同时进行业务处理。
②重复性:联机事务处理可提供同一业务重复处理。
③短交互性:联机事务处理支持对多用户同时进行交易的处理,给予每一个用户及时
的响应。
④数据共享:反映同一组织结构的数据只有一个。
⑤低成本:联机事务处理能降低客户业务处理的成本OLTP,(On-Line Transaction Processing)联机事务处理,是面向事务应用的实际运行模式,其基本形式是大量会随机申请服务的客户,通过多种设备和渠道连接到业务处理系统中来,每一个服务请求在业务处理系统
中以一个事务的方式运行,通过对一定业务数据的处理来完成客户的请求,并向客户返回数据。
通常,这种应用程序有大量的客户同时执行更改实时数据的事务。尽管客户对数据的
单个请求一般只引用少量数据记录,但是,这些请求有许多是同时发生的。OLTP 应用的常
见例子是银行业务系统和航空订票系统。
OLTP系统中,发生的每个业务处理,都是一个事务,它要符合一个事务所必须具有
的ACID 四个特性,只有这样才能保证系统的可用性。
事务(Transation):
事务就是对于某种要求进行处理并返馈结果的一个完整处理过程。在这种类型的处理程序中,有大量的相似的处理要求,联机事务管理系统就是提供事务处理中需要的通用逻辑处理功能,使用户的业务处理程序能够专注于应用本身的逻辑的软件系统。
1 交易:
交易是CICS处理的基本单元,是指由一个或多个终端用户 (终端、用户、程序)使用一个或多个应用程序,一个给定的事务可以被多个终端用户使用。CICS系统中的每一个交易都被赋予一个交易ID,它由4位字符串组成。终端用户在终端上键入这4位的字符串,例如EMUL、ATMP就能启动相应的事务处理程序。这4位字符串的命名及与其有关的其它信息都是由用户在资源定义时设定的。
在大家将要学习的CICS中,接触的基本都是一个一个的事务,或称作交易,比如银行应用中的存款,取款等操作(动作)都可以作为一个一个的事务。因此这里大家一定要了解什么是事务(交易),以及其特性。这对于以后大家去创建定义自己的交易有很大的帮助。
事务处理要求的特性(ACID四个特性):
6) 原子性(Automicity):一个事务中若干相关操作作为一个完整的单元进行处理,一个单元中的所有操作,要么整个完成(Commit),要么就得完全恢复到事务发生之前的状态,好像什么也没发生过一样(Rollback)。
7) 一致性(Consistency):事务必须在两个一致的状态间移动数据,并以一种可重复的方式操作。如果事务发生前相关数据是一致的,事务完成后数据必须仍然一致。在事务内部因为数据处理的先后,可能出现数据的不一致,但在事务完成后外部数据要达到一致。如果重复某一事物,它总是按相同的逻辑执行。
8) 隔离性(Islation):各个事务之间可以独立运行,互不干涉。一个事务只能看到另一个事务发生前或发生后的数据,而不能接触另一个事务运行中的数据。
9) 持久性(Durability):当一个事务完成后,他所涉及的数据能够持久地保持在系统中。这一特性使得在系统发生崩溃时,相关的数据不至于丢失错乱,在系统恢复后能够恢复交易数据。
`TASK:
In CICS, an instance of a particular transaction request by a computer operator or user is called a
task. When a user invokes a transaction, CICS begins a task for that request. CICS also loads any
application programs required for the transaction.
一个任务是事务的一个特定的运行实例。CICS为每个任务建立一个独立的任务环境,在一个CICS区域中,可以同时运行处理同一事务的多个任务。
程序(PROGRAM):
业务处理逻辑的最小单元,一个程序可以完成一段特定的处理,每个程序有一个最多8 个字节的程序名字。程序通过调用CICS API可以控制和使用CICS 资源来完成自己的任务。
另外还有 区域(REGION):
CICS 系统的基本单位,一个REGION由一组CICS系统程序、REGION的所有配置信息、它所管理的各种资源(交易、程序、数据等等)组成,是一个独立的CICS环境。如下图所示他们的关系:
下图给出OLTP的流程,在这里可以看到事务在应用中所处的位置,简单的可以说,出于整个应用的中间层,主要用于业务规则的处理,即原先的一个一个的操作,比如存钱子程序,取钱子程序,查询子程序等,这里都将相应的子程序包装成为一个一个的交易,这样的好处就是相当于利用了CICS这个子系统的提供的很多功能,简化了用户的编程
一个CICS 事务的生命周期:
1. Enter Transaction ID
2. Put into terminal buffer
3. CICS对Transaction ID 进行确认
4. Create task
5. Load 相应的应用程序
6. Process the input data
7. CICS将处理结果返回terminal
8. Transaction End
CICS 开发语言:
就象你能使用多种语言来开发数据库应用程序一样,CICS应用程序也可以使用多种语言
进行开发,从最古老的汇编一直到新式的JAVA 语言。例如:
COBOL
C/C++
JAVA
ASSEMBLER
PL/I
象 SQL 语句一样,CICS所提供的功能也是以一定的格式嵌入式地与程序开发语言结合在一起的。CICS命令都是以类似下面例子的格式嵌入在开发语言中的:
EXEC CICS SEND FROM (MY-DATA) LENGTH (40) END-EXEC.
关键字 功能 选项 参数 选项 参数 结束标志
格式举例
(1)
EXEC CICS SEND FROM (MY-AREA) LENGTH (40 ) END-EXEC.
关键字 功能 选项 参数 选项 参数 结束标志
上述功能是向终端发送长度为 5 的MSG-AREA 信息。
(2) 读取和修改关系数据库的命令:
EXEC SQL SELECT Column_names INTO Program_variables From Table_names WHERE
Search_condition END-EXEC
CICS 事务的启动
有以下几种方式
CICS 任务启动最普通的方式是终端输入;
利用内部TDQ 的记录自动触发另一CICS 事务的功能来启动任务。
可以在CICS 程序中采用基于程序的逻辑,用 START 命令来启动任务,
且可传数据给启动的任务。
CICS 程序控制
CICS 提供几种访问其他程序的方法:
RETURN 释放控制于上一高层程序
LINK 传递控制于指定的程序,并预期返回,类似于执行一个子程序。
XCTL 传递控制于指定程序,但不返回本层,而返回 CICS
程序开发过程
对上图的简单说明:
CICS Translation:
通常又称为预编译,CICS 翻译程序把源程序中嵌入的EXEC CICS语句翻译为宿主语言的语句和函数。
Compliation:
编译或汇编,这一步骤是把上面生成的高级语言程序或汇编程序编译成为目标代码。
Link Edit:
连接,这一步骤把程序要调用的 CICS函数库和宿主语言函数连接进目标代码,生成可
执行的机器代码。
CICS 概念
最新推荐文章于 2020-07-08 22:12:22 发布