文字显示结果
组合搜索  计算机图书分类目录
 
所在位置: 图书 -> 在线试读 -> 大型主机CICS中间件基础教程 
                 

第2章 CICS基础概念

2.2 任务管理

我们前面讲到,CICSOLTP,具有OLTP的所有属性,它在应用层和操作系统层之间发挥着重要的作用,一方面担任着操作系统的助手作用,协助操作系统高效地处理业务交易,使操作系统无须关心具体的业务交易,只需要合理调度和交易相关的工作负载;另一方面CICS还担任着应用交易的管理者和指挥者。

和批量程序不同,CICS程序并不会直接向操作系统发出请求,这些程序只是发出执行终端IO、文件IO、程序控制等功能的指令。这时,CICS就象操作系统中的一个子操作系统,为CICS程序提供服务,所有CICS程序都在CICS控制下运行,这些程序运行在CICS的基础上,CICS再同操作系统进行交互。在交易的处理过程中,无论是操作系统还是用户,都只需要和一个子系统进行交互,那就是CICS

2.2.1  实时事务处理系统

OLTPOn-Line Transaction Processing)是实时事务处理系统,也被称为联机交易处理系统,是面向事务应用的实际运行模式,其基本形式是大量会随机申请服务的客户,通过多种设备和渠道连接到业务处理系统中来,每一个服务请求在业务处理系统中以一个事务的方式运行,通过对一定业务数据的处理来完成客户的请求,并向客户返回数据。通常,这种应用程序有大量的客户同时执行更改实时数据的事务。尽管客户对数据的单个请求一般只引用少量数据记录,但是,这些请求有许多是同时发生的。实时事务管理系统就是提供事务处理中需要的通用逻辑处理功能,使用户的业务处理程序能够专注于应用本身的逻辑的软件系统。

1.事务

事务(Business Transaction)可以定义为:交易双方的信息交换和处理,或一组与业务流程相对应的抽象进程。例如还款业务,商品购买,机票预订及ATM取现等。事务也可理解为服务请求(Request for Service)。

事务的结束有两种方式:提交(COMMIT)或异常终止(ABEND)。成功的事务称为提交;不成功的事务则称为异常终止。异常终止的事务所做的任何数据修改必须全部撤销(回滚)。

2.事务的处理

事务的处理需要有一个事务处理系统,这个系统可以快速、及时地响应用户请求并提供服务。

事务的处理过程需要保证:

1高可用性;

2快速稳定的响应时间;

3端到端的一致性和完整性;

4可复用性;

5单位交易的低成本性。

3.实时事务的处理

一个实时事务的处理过程应该是支持多用户、多进程的,同时支持高完整性的数据共享。此外还应具备如下条件:

1程序和数据可以集中存放在本地;

2为满足需求,可根据需要添加硬件,具有一定的灵活性;

3在满足数据和流程完整性的前提下,可以通过网络来访问数据。

4.实时事务处理举例

1)银行ATM取款。一个客户到银行的ATM上进行取款操作,当他确认取款指令后,该指令立刻被传输到银行的业务处理系统中,系统读取该客户的账户记录,完成调整账户余额、记录取款明细等处理后,通知ATM吐出现钞。这样,客户拿到了现钞,同时银行账户的余额也进行了相应调整(端到端的一致性和完整性);这个过程只需要若干秒的时间(快速稳定的响应时间),而且多个客户可以同时在不同ATM机上取款(可复用性、并发性)。如果由于网络故障等原因,导致该操作失败,则系统会进行冲正处理,客户虽然此次无法完成取款,但资金并不会受到损失,而且可以继续尝试取款(高可用性)。

2)航空机票预订。一个客户上网预订某个航班的机票,当他选择好起飞时间、航班号、个人信息并确认后,该预订需求立刻被传输到航空公司的信息系统中,系统会立刻查找该航班是否有空座,确认后进行该客户的信息记录、航班空座数调整等处理,并将预订成功的信息返回给客户。这样,客户订好了座位,航班的空座数也进行了调整(端到端的一致性和完整性);这个过程只需要若干秒的时间(快速稳定的响应时间),而且多个客户可以同时进行预订(可复用性、并发性)。如果由于网络故障等原因,导致该操作失败,则客户可以继续预订(高可用性)。

5ACID属性

我们前面已经提到ACID属性:

A原子性Atomicity);

C一致性Consistency);

I孤立性Isolation);

D持久性Durability

事务必须具有ACID属性,同时ACID属性也是一个健壮的实时事务处理系统所具备的属性。

6.分布式事务

分布式事务通常是在多个机器上的多个进程中运行的事务。每个进程都为事务工作。如图2.5所示,其中每个椭圆表示在不同机器上执行的工作,而椭圆之间每个箭头表示远程过程调用(RPC)。

2.5  分布式事务

与本地事务一样,分布式事务必须符合ACID特性。但是,对于分布式事务,维护这些特性会非常复杂,因为故障可能会发生在任何进程中。如果发生这样的故障,则每个进程都必须撤销已经被事务执行的所有操作。

分布式事务处理系统使用两个功能部件维护分布式事务中的ACID属性:

1可恢复进程。可恢复进程记录它们的操作,因此可以在故障发生时,恢复到先前的状态。

2提交协议。提交协议允许多个进程协调一个事务的提交或异常终止。最常见的提交协议是两阶段提交协议(Two-Phase Commit)。

可恢复进程可存储两种信息:事务状态信息和数据的更改描述。此信息允许进程参与两阶段提交,并确保隔离性和持久性。所有可恢复进程都必须存储事务状态信息。但是,只有管理应用程序数据的进程(如资源管理器)才必须存储数据更改的描述。并非所有参与分布式事务的进程都需要是可恢复的。通常,客户机是不可恢复的,因为它们不直接与资源管理器交互。

两阶段提交协议包括两个阶段:准备阶段和解决阶段。在每个事务中,有一个进程充当协调程序。协调程序监视参与事务中的其他进程的活动,以确保结果一致。

备阶段,协调程序将消息发送给事务中的每个进程。它请求每个进程准备提交。各个进程进行准备时,要保证能提交事务并对其工作做永久记录。在保证自己可提交后,它不再单方面地决定异常终止。如果进程无法准备(即它无法保证能提交事务),则必须异常终止。

解决阶段,协调程序记录响应。如果所有参与者准备提交,则事务提交;否则事务异常终止。无论是提交还是异常终止,协调程序都通知所有参与者结果。在提交的情况下,参与者确认他们已提交。对提交后的数据更改是永久的。这就确保了成功的事务表现为数据库的永久更改,并能从硬件及软件错误中恢复。

7OLTP应用

如果没有事务管理系统,我们在通过应用编码实现业务流程的同时,还必须通过应用编码来实现对操作系统和对硬件等的请求。这个过程将是非常复杂和昂贵的。

因此,大部分的企业都会使用事务处理系统,例如CICS,来实现这些功能,让应用开发人员集中精力进行业务逻辑流程的编码工作。

我们可以认为事务管理系统是应用程序和系统硬件软件之间的中间层面(中间件),该层面简化了应用程序对后台的软件和硬件的操作,应用程序不用再关心后台复杂的运行机制。

2.2.2  CICS实时事务处理的过程

CICS就是在z/OS(或OS/390)系统中的实时事务处理系统。下面将介绍CICS处理交易的过程,同时还将介绍多任务的概念。

1TRANSACTIONTASK

1交易TRANSACTION

TRANSACTION是指为完成特定功能而进行的一系列相关的操作或步骤。一个交易可能是由一个单一动作构成的,也可能是由一组操作构成的,例如进行数据库更新的一组操作。简单地说,交易是一个应用逻辑流程。

:学生报名注册交易。这个交易包括如下动作:读取学生注册信息,检查目前课程登记情况确认名额,在注册清单中增加学生姓名,最后将确认信息返回用户,交易结束。

CICS系统中的每一个交易都被赋予一个交易ID,它由4位字符串组成。终端用户在终端上键入这4位的字符串,例如POSPATMP就能启动相应的交易处理程序。这4位字符串的命名及与其有关的其他信息都是由用户在资源定义时设定的(详见2.3节“资源管理”)。

2任务(TASK

由计算机操作员和用户发起的交易请求所产生的实例称为TASK。当一个用户发起一个交易请求后,CICS为该请求建立一个TASK,同时CICS调用需要的程序,完成该交易请求。

TASKCICS处理的基本单元。一个任务是交易的一个特定的运行实例。CICS为每个任务建立一个独立的任务环境,在一个CICS区域中,可以同时运行处理同一交易的多个任务。

3)多任务(MULTITASK

CICS支持并发交易处理,也就是说在同一时间,CICS可以处理多个用户的请求,在支持多用户前提下,同时又要保证快速的响应时间,CICS采用多任务机制。

CICS中,所有的用户共享一份应用程序和应用数据。例如一个交易正在处理的同时,另外一个用户发起了同样的请求,这时CICS不会再重新Load应用程序,而是建立起另外一个TASK,该TASK和之前的使用同样的程序或数据。CICS分别处理每一个TASK,每一个TASK只是短暂地占用CPU资源。

2CICS处理交易的过程

用户在终端输入交易名,发起交易请求,CICS为处理该交易会产生一个TASK,一个CICS TASK的运行过程就是用户交易的整个处理过程。

1CICS处理交易的过程

一个交易在CICS中处理的步骤,包括:

   ENTRY

   TASK CREATION

   DISPATCH

   EXECUTION

   PROCESSING

   REDISPATCH

   RETURN

   TERMINATION

2TASK的发起

   用户通过终端输入TRANSID和必要信息,向主机发送交易请求。

   CICS在接收到请求后,产生一个TASK,同时建立代表该TASKControl Block。解析上传数据。

   根据CICS资源定义,CICS将交易对应的程序装载到内存中。

TASK的发起有很多种方式,但终端发起是最普遍的。

3CICS TASK在执行过程中的阶段详解

CICS TASK执行过程中最关键的三个阶段是:READY TO EXECUTEEXECUTINGWAITING

   READY TO EXECUTE

在终端输入一个交易上传主机后,CICS建立一个TASK,这时候这个TASK就处于整个TASK的第一阶段(READY TO EXECUTE)。

   EXECUTING

尽管在一个CICS中,同时会有很多个TASK处于READY TO EXECUTE,但是在任一时间点上,只能有一个TASKCPU上真正地执行。CICS决定下一个执行的READY TASK,然后DISPATCHTASK并执行。在TASK执行过程中,该TASK占用CPU资源。这时候该TASK处于TASK的第二阶段(EXECUTING)。

   WAITING

有时候,可能就在TASK刚刚被DISPATCH之后,程序会向CICS申请Service,例如请求程序控制转移,请求终端操作,或请求文件IO操作。当CICS提供Service之后,TASK在等待Service完成过程中,TASK会被INTERUPTED,这时候TASK就进入了第三个阶段(WAITING)。

CICS TASK处于等待的时候,该TASK会放掉对CPU的控制,这时候CICS就可以DISPATCH下一个READY TO EXECUTETASK

一个TASK处于等待时,另一个TASK就可以执行,这就是CICS实现多任务的原理。如果CICS的应用设计较好,对用户来说,这种等待时间是微不足道的。

4TASK的结束

CICS程序完成正常处理后,发出RETURN命令,这时控制权又转回给CICSCICS收到命令后,结束该TASKTASK的结束意味着CICS释放掉同该TASK相关的CONTROL BLOCK及系统资源。

2.2.3  CICS实时事务处理的主要特点

2.2.3.1  CICS实时事务处理的主要特点

多用户:实时事务处理可同时为多个联机用户提供服务,允许在组织结构中的用户同时进行业务处理。

重复性:实时事务处理可提供同一业务重复处理。

短交互性:实时事务处理支持对多用户同时进行交易的处理,给予每一个用户及时的响应。

数据共享:反映同一组织结构的数据只有一个。

低成本:实时事务处理能降低客户业务处理的成本。

2.2.3.2  联机与批量的区别

在处理用户的上送请求时,有两种方式,一种是批量(BATCH),另一种是联机。在批量处理过程中,用户的请求被分类后,积累到一起一同提交给主机,提交后,主机按顺序对这些请求逐一进行处理,待全部处理完成后再将处理结果一同输出出来。联机处理是指请求的接收和处理都是实时的,一旦处理完成后就要第一时间将处理结果传给用户。同批量不同的是,联机交易是并发的,来自于四面八方,因此联机交易无法控制请求的顺序、种类和先后,因此具有不可预测性。

联机程序与批量程序对比具有以下的特点:

1)联机程序一次请求处理的输入/输出(I/O)较少;批量程序每次需要处理大量的数据,具有大量的I/O

2)联机系统需要实时、快速响应用户的请求,一般交易的响应时间在100ms内;批量程序由于每次需要处理大量的数据,执行时间将较长。

3)联机程序需要强大的网络系统支持;批量程序可以运行在操作系统内部,不必有一个独立网络平台支撑。

 
 
  上一页 返回 下一页  
 
Copyright © 2010 TianMei Technology All rights reserved. To comment on this site
  辽B-2-4-20100065