CICS 系统管理AIX.docx
《CICS 系统管理AIX.docx》由会员分享,可在线阅读,更多相关《CICS 系统管理AIX.docx(39页珍藏版)》请在冰豆网上搜索。
CICS系统管理AIX
CICS系统管理
第一章三层次Client/Server介绍
第一节三层结构
三层结构的客户/服务器模型是一种先进的协同应用程序开发模型,这种方案将客户/服务器系统中各种各样的部件划分为三"层"服务,它们共同组成一个应用程序,这三层服务包括:
1)、客户端服务程序;
2)、业务服务和其它"中间层"服务程序;
3)、数据服务(数据库)。
在实际应用过程中,中间层部件通常可分为两个以上的层次。
因此,该应用模型也被称为多层次结构。
目前,企业级应用服务器主要分为以下两类:
1.基于中间件的应用服务器
基于中间件的应用服务器通过与现有系统的集成,可以为企业提供更强大的功能,包括事务处理、安全管理、容错、负载平衡等。
2.基于Web的应用服务器
我们深入探讨一下这种新型对象Web的三层客户/服务器体系结构。
1)、客户端
第一层是属于以传统的Web浏览器和Web为中心的新的桌面范畴。
2)、中间层
第二层是一些服务器,这些服务器能为HTTP和CORBA客户端提供服务。
另外,第二层也必须提供服务器端的组件协调程序,这就是众所周知的对象TP监视器。
3)、后端
第三层包含所有CORBA对象能访问的内容,包括过程的TP监视器、面向消息的中间件、DBMS、ODBMS、LotusNotes和电子函件等。
从应用架构上看,两次重大的迁移最为引人注目。
第一次是从主机终端方式向Client/Server计算方式的迁移,这次迁移的积极效果之一是,打破了计算方式高度集中的局面,使计算环境向客户靠近了一大步。
第二次则是从经典的Client/Server计算方式向Internet架构下的集成计算方式的过渡与融合,这是一个目前正在进行的过程。
第二节.三层的必要性
2.1三层结构应用系统的优越性
2.1.1性能问题
三层系统要解决的第一个问题是性能问题:
我们先以一个例子来说明系统架构对性能的影响,如下表格(表1-1)以电信市话系统的规模为例,表示用户数在特定数量时,需要多少业务终端为其服务:
表1-2-1
规模
终端数
最大终端数
<20万
50
100
20万-60万
100
200
60万-150万
200
400
>150万
300
1000
如果采用二层结构的话,当应用相对简单、数据访问量不大的情况下可以承受。
而在上表,当应用变得复杂、庞大,数据的访问量增大,客户机数目很多,就会带来性能急剧下降的后果。
我们来看一下,性能问题究竟有几个方面:
1.数据库并发连接;
2.远程连接;
3.数据库的瓶颈效应。
这些问题,二层结构无法得到满意的解决,而三层结构正是解决问题的关键。
与二层结构不同,三层结构无须保持客户机与服务器之间的长连接,通常采用了无连接或短连接(Sessionless、Connectionless)的方法。
客户机和应用服务器之间没有复杂的上下文关系,可以在每次请求时建立连接,服务器返回结果后可以马上断开与客户机的连接,这样,可以充分共享服务器端系统资源,为更多的并发用户服务。
1.减少数据库并发用户
2.减少网络开销
2.1.2互连问题
第二个问题就是系统互连问题,从连接的范围要求上说,可以分为
•同一系统内应用交互。
•异种系统间应用交互。
从时间意义上说,可以分为
•实时或准实时交互。
•异步交互:
无须即时响应,一般用于系统之间批处理。
系统互连不但需要一个好的架构以便与将来应用互连,也需要帮助已有系统甚至未知系统的顺利连入。
二层结构,由于以数据库为中心,除非不同系统之间能够共享数据库,即,不同的应用之间能将自己的数据库公开,否则,必须采用其他方式来解决,譬如,数据库的复制等。
总之,二层结构的应用要互连,一定是在同一系统环境下,往往还要满足非常苛刻的条件,而且,异种系统互连根本不可能。
这是因为,直接对数据源的引用有如下弊端:
1.所有客户机必须安装所连所有不同种数据库的客户软件,增加维护复杂性
2.所有客户机必须有所有数据库的访问权限,对于一个分布式环境,不但管理困难,而且容易造成安全问题
3.增加数据库的并发连接,加重数据库负担
4.数据模式对外公开,降低对其修改的自由度
这样,互连时的耦合度太高,影响系统的独立性。
相反,三层结构提供事务级别的调用而非数据源的引用。
客户机看到的就是和业务逻辑相关的事务,这样,与其他系统互连时,只要提供这些被外部调用事务的调用规范,不用做其他特殊的工作,自然形成三层甚至多层C/S结构。
而且,在异种系统互连时,为屏蔽内部系统和外部应用,保证本地系统的安全,往往会提供和外界相连的网关、前置机,本身就是多层次的表现。
三层结构的应用服务器可以使用多种数据源为其提供数据服务,而且,应用服务器中的事务也可以作为一种资源,被本地或远程应用服务器的其他事务来调用。
2.1.3安全问题
在二层结构中,安全问题也有很大的缺陷。
安全分为两大部分:
•权限控制。
•信息安全。
在二层系统中,用户拥有的是数据库服务器访问的权限,所以无法阻止其用其他方法绕过客户端应用的限制而直接操作数据库,从而利用其被赋予的合法权限来完成超越其应该拥有的权限所做的操作。
其次,在系统互连时,必须赋予外部系统访问本地数据库的权限,而此时,此外部角色完全无法由本地控制,在这种情况下,要修改连接的规范,或者本地的数据模式发生变化,或者要与其他应用连接而要增加外部用户时,都会要求对权限重新赋值,管理工作非常困难。
一旦系统中有若干个数据库时,权限的分配更是一个严重的课题,因为越复杂的系统,越容易出现安全漏洞。
而在三层系统中,采用与二层结构不同的权限控制方式。
二层结构由于访问的是数据库,所以,控制的是对数据库对象的访问权限,而三层系统访问的是事务,控制的是对事务的访问权限。
可以看到,对事务访问的控制比对数据对象的控制更精确,粒度更小。
这是因为,所谓控制用户的权限就是保证用户执行指定操作的能力,同时保证其无法执行其他未指定的操作。
下面举例说明两者的区别。
其次,在系统互连是大趋势的情况下,不能为满足安全要求而牺牲连接能力。
在二层系统中,要完成系统互连,必须开放数据模式以及建立特定的用户,而在三层结构中,开放的是事务,可以为此建立新的事务,或者使用原来的事务。
外界应用无须知道内部数据结构,在内部发生变化时,甚至业务逻辑发生变化,只要保证此事务的对外接口不变,与之连接的系统不需要有任何改变。
不管与外界连接的是何种事务,在事务服务器中可以定义相应的用户来赋予执行权,控制非常简单而有效,减少出错机会。
在整个系统中包含多个数据源的情况,如果是同种数据库,还可能有统一的工具进行管理,对于异种数据库,必须一一在各个数据库上为二层应用的用户赋予对各数据库对象的各种权限,这是一种对管理员要求很高的工作。
而在三层结构的应用中,数据源对最终客户机是透明的,无须为客户分配数据库的权限,只需控制不同用户在事务服务器上对各种事务的执行权限。
这样,权限管理集中在事物服务器上,便于管理。
在信息安全方面,由于数据库提供的客户端软件的限制,一般只能实现基本的身份认证,数据加密传送的能力也非常有限。
而在三层结构中,可以使用系统本身的身份验证,也可以实现在应用级的身份验证。
由于用户可以自由定义每个事务的接口,用户调用服务器端事务的接口数据格式可以由用户决定,所以,可以实现应用级对不同数据域的身份认证和加密传送,精确到不同字段使用不同算法。
这样,三层结构也可以提供更好的信息安全。
2.1.4开发维护问题
在应用开发时,也必须考虑应用的易于开发维护,主要体现在如下方面:
•保护原有技术投资。
•便于进行RAD。
•缩小维护时的牵涉面。
第三节、数据的一致性、两阶段提交和事务处理器
3.1数据的一致性
3.1.1数据的一致性
事务(Transaction)是并发控制的基本单位。
所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,是一个不可分割的工作单位。
事务有如下特性:
原子性:
在事务内的所有操作要么一起成功,要么一起失败;
一致性:
当事务失败退出时,所有在本事务中被修改的数据,会被恢复到事务开始时的状态;
独立性:
在事务执行过程中,已被修改但未被提交的数据,对于其它事务是不可见的;
永久性:
已被提交的数据是永久的,不可再恢复的。
要取消已提交的事务,必须在应用级实现,例如再进行一次相反的事务实现反冲。
3.1.2单一数据源事务的数据一致性
在单一数据源环境下,有多个用户存取和更改数据时,必须保持数据源中数据的完整性。
在此,必须考虑并行性问题,即可以同时由多个交互的用户或应用程序共享资源的能力。
3.1.3并发事务中的一致性问题
在并发事务环境中,除了必须满足单用户单数据源的事务的特性,还有并发环境下特有的数据一致性问题。
3.2分布式事务处理
X/OPEN分布式事务处理(DTP)包括三个软件部分:
•应用程序(AP)定义事务的起始及组成事务的动作
•资源管理器(RM)提供对共享资源的访问,如数据库或文件系统
•事务器(TM)为各事务指定标识符,监控事务过程,负责事务的完成及故障恢复
其中存在如下三种接口:
1.应用程序使用各资源管理器提供的接口访问其资源,如DB2的EmbededSQL,Oracle的Pro*C等;
2.应用程序使用事务管理器提供的接口来定义事务的起始和提出对事务的提交和回滚,如CICS提供的服务器端API;
3.事务管理器和资源管理器使用特定接口来互换事务信息,即所谓的XA接口规范。
以下,对XA规范中使用的概念做一次明确定义:
事务:
一个事务是一组完整的工作,包含许多计算任务(用户接口的交互,数据的存取,以及通讯等)。
一个典型的事务一般会对共享资源进行修改。
事务必须能被回滚,程序可以选择当发生特定事件时回滚一个事务。
分布式事务处理(DTP):
分布式事务处理系统支持一个事务跨资源管理器情况下的各种处理工作。
为此,必须满足:
1.系统必须在涉及到某一特定事务时有一种方法可以包含系统内任何地方已完成的任何工作;
2.在决定是提交或回滚一个事务时,必须考虑这个事务在所有地方已完成的工作的状况,这个决定必须保证在整个分布式事务处理系统中有统一的结果,即,这个决定的结果若是提交,则系统的所有参与对象都能提交,反之,若回滚,则所有人都必须能回滚。
应用程序:
应用程序定义事务及在事务范围内访问资源,每个应用程序指定一系列涉及对资源,如数据库、文件系统的操作。
资源管理器:
资源管理器管理计算机的特定的共享资源,其他软件可以通过资源管理器提供的服务接口来请求对这资源一次次的访问。
以下是几种资源管理器:
1.数据库管理系统(DBMS)是一种资源管理器,数据库管理系统可以定义事务和对其提交或回滚。
典型的数据库管理系统包括UDBDB2,Oracle,Sybase,Informix,SQLServer等。
2.结构化文件系统(StructuredFileSystem--SFS),提供支持日志功能的记录型文件访问,可以将对文件的操作定义为事务,即可以在需要的时候将对文件的读写统一提交或回滚。
3.消息管理器(MQSeries)提供进程之间的通讯机制,管理消息的发送和接受,可以将对消息的操作定义为事务。
4.打印服务器也可以有资源管理器的实现。
事务管理器:
资源管理器管理全局事务,协调统一的提交、回滚以及故障恢复。
应用程序通过调用事务管理器来定义全局事务的起始,事务管理器会返回一标识符(XID)来标志此全局事务。
事务管理器管理此全局事务并通知各资源管理器他们各自的事务所对应的这个全局事务,即使资源管理器可以管理自己的事务,他们也必须接受这个事务标识符(XID)并将其对应到相应的本地事务,这样,当事务管理器要完成这个全局事务时,资源管理器可以知道该对哪个本地事务做处理。
3.3XA规范
XA接口是提供事务管理器和资源管理器之间互相调用的规范
这样,应用程序可以完全不用意识到其中的二阶段提交,甚至不用做数据库的连接,只需要用各种数据库的接口来处理相关业务,最后,调用事务管理器的提交命令,事务管理器会处理所有的协调工作。
3.4一阶段提交,两阶段提交及远程数据源的数据一致性
在进行系统架构时,如果应用会对多个数据库进行处理,存在两阶段提交时,使用事务管理器一般是必须的。
但由于三层结构的优势,即使数据库只有一个,也可能使用事务管理器来构建三层的应用。
而且,由于两阶段提交的系统开销很大,在可能的情况下,尽量避免使用两阶段提交。
在事务管理器和所有资源管理器都在通讯速度高,可靠性有保证的情况下,可以使用两阶段提交,但是,在任何一个参与方在远程的情况下,应该采用变通手段,避免使用两阶段提交,保证在一定时间段的信息一致性,而不是任何一个时间点的信息一致性。
例如,远程资源管理器之间的两阶段提交可以借助保证可靠传输的MQSeries,利用两次本地的两阶段提交和一次可靠的远程传输来完成,具体实现如下:
图1-3-3
这样,通过两个MQ服务器和各自本地的数据库服务器之间的两阶段提交,以及两个MQ服务器之间可靠的消息传送机制,保证了两个远程数据库之间的数据一致性,同时,避免由于远程通讯引起的额外开销和故障。
注意,这时讨论信息一致性时,必须考虑到信息暂时在MQ服务器中的状态,否则,单看在两个数据库服务器中的数据,信息的一致性是没有办法保障的。
第四节通用在线事务处理软件—CICS
4.1CICS的简介
CICS是一系列为IBM和非IBM平台上的应用提供联机事务处理和事务管理的产品,其功能是为商业应用提供一个事务处理环境。
CICS其全称是CustomerInformationControlSystem,即客户信息控制系统。
CICS建立在操作系统、ISO的分布式计算环境(DCE,DistributedComputingEnvironment)和Encina服务上,它帮助客户建立三层次结构的联机事务处理应用。
CICS为应用程序开发、通信、恢复、显示、数据管理、安全性和内部通信等提供很多项服务。
CICS可以与DCE紧密结合,以满足分布式环境对于安全性,名字服务等的特殊需求。
CICS的结构设计也是面向事务处理的,CICS构建的是一个三层次结构的应用系统,CICS有效地区分应用系统中的表述逻辑层、业务逻辑层和数据逻辑层,从而使应用系统结构清晰,维护简单易行。
目前,在IBM的全系列计算机系统中均有相应的CICS产品,如OS/390、MVS/ESA、VSE/ESA、OS/400、OS/2,并扩展到其它厂商的系统中,如HP、DEC、SUN等等。
服务器端产品有:
ØTransactionServerforAIX
ØCICSforHP9000
ØCICSforDigitalUNIX
ØCICSforSUNSolaris
ØCICSforSiemensSINIX
ØTransactionServerforNT
CLIENT端产品有:
ØCICSClientforAIX
ØCICSClientforHP-UX
ØCICSClientforSolaris
ØCICSClientforDigitalUNIX
ØCICSClientforSINIX
ØCICSClientforSCOUNIX
ØCICSClientforNT,Win95,Windows,DOS
ØCICSClientforMacintosh
ØCICSClientforOS2
4.2CICS提供的功能模块
CICS提供了事务处理中的共同需要的几乎所有功能模块,如:
请求接收处理错误
安全管理性能监控
资源管理可联接性
逻辑锁多线程并行
日志时序控制
事务调度事务授权
事务恢复事务管理
事务一致性完成队列服务管理
客户仅需要将他们的注意力集中在他们的业务逻辑上,从而快速地开发适合他们的业务需要的应用程序。
CICS在其服务器端支持C、COBOL、PL/1语言,采用统一的应用编程接口(API),这就是CICS的“EXECCICS”的编程接口。
而这些程序由于不依赖于某一种通讯协议、某一种数据库管理软件,也不依赖于某一种操作系统和硬件平台,因此,由CICS构建的事务处理环境中,TCP/IP和APPC可以共存,IBMDB2和Sybase,Informix,Oracle可以共存,AIX和MVS/ESA,OS/400,WindowsNT,HP-UX等可以共存。
而应用程序均能很容易地配合和相互移植。
CICS的编程语句可以和SQL的编程语句共同存在于应用程序中。
CICS在其客户机端支持C和COBOL语言,也采用统一的应用编程接口(API),客户可以采用两种方式来编制CICS的客户端程序,一种是ExternalCallInterface(ECI),另一种是ExternalPresentationInterface(EPI)。
甚至,用户还可以在客户端使用其已经比较习惯的PowerBuilder、Delphi等开发工具进行开发。
4.3CICS的主要特性:
●可用性
系统的可用性对系统来讲是至关重要的,无论任何时候,都不能因为硬件、软件或网络失效行为而造成的系统功能失效。
CICS通过在不同计算机上提供相同的服务来实现更高的可用性与可靠性,不同计算机上的服务可以互相备份。
●完整性
在事务处理过程中,如果没有系统完整性的保证,则系统毫无可用性。
应用服务器必须可以持续地提供任何已提交工作的准确记录。
CICS提供这样的事务环境:
其中运行的事务失败时,它对文件记录或数据项的修改都被自动回滚,应用程序员不必编写失败处理程序。
CICS系统明确地记录了应用程序对数据的修改,并当事务失败后,自动地把对数据的修改回滚。
●持久性
CICS采用下面两种重要方法,来实现系统的持久性。
首先,它允许重新利用现有应用系统以创建生产系统。
其次,创建于CICS上的新应用系统易于适应未来的发展需要。
CICS提供了无须中断生产,即可持续地改善和扩充服务的能力,这对提高系统的可用性来说非常重要。
●扩充性
CICS可以响应多至上千个用户同时发出事务请求。
CICS应用的范围从PC服务器到MVS主机,即使是在UNIX范围内,也可以从低端的UNIX服务器扩展到SMP多CPU的服务器和SP2多结点的服务器上,升级的范围也是很宽的。
值得注意的是,客户的应用程序由于采用的是同样的API,因此应用的移植非常容易。
而CICS也很使得工作负载很容易地分布在网络上的不同的服务器之间。
●安全性
像CICS这样的事务处理系统,安全性是非常重要的因素。
CICS的典型应用是管理企业运作的关键数据。
安全性设计是预防外部非法访问这些数据的重要措施。
ØCICS事务和资源的安全性
Ø通信的安全性
Ø外部安全性管理程序接口
●CICS具有极好的优先级调度,大体可以分为4个层次:
1)用户优先级
2)终端优先级
3)事务优先级
4)时间优先级(等候时间越长,优先级越高)
一个具体事务运行的优先级由以上四者之和决定。
4.4CICS的有关的几个概念
●事务处理监视器
事务处理由事务处理监视器控制。
事务处理监视器完成协调联机事务处理所必需的所有功能。
在CICS中,由CICS区域实现事务处理监视。
CICS区域可以响应同时来自多个客户的请求,可以有效地提高事务处理的吞吐量。
●结构化文件服务器(SFS)
SFS是一个面向记录的文件系统,它在支持大量并行用户和可跨越多个磁盘的大文件时,提供事务完整性和基于日志的恢复。
SFS能够提供数据处理与管理功能。
数据处理功能提供访问和修改数据所必需的标准操作:
读、插入、更新、删除、锁定、解锁等等。
管理功能允许程序查询和修改SFS文件和卷、复制和删除文件等等。
SFS使用RPC与其它服务器通信。
●区域(region)
CICS区域处理一个或多个客户请求的事务。
通常,区域经过访问数据库、完成一些商业逻辑,然后才答复客户。
CICS区域维护并使用一个多线程的进程池,其中每个进程提供一个处理事务的完整环境,这样的进程称为应用程序服务器(AS)。
每个CICS区域协调它的应用程序服务器所需要的所有资源服务。
例如,CICS区域协调应用程序服务器的安全性,获得它们需要的数据与存储器并记录它们的事务。
除了以上优点,多个CICS区域还可用来为分散工作负载提供一个分布式事务处理环境,提供事务处理的能力。
CICS区域将许多服务分给其他更有能力做此工作的服务器,例如,CICS区域可使用SFS文件或DB2数据库来存储和管理用户数据。
CICS区域作为一项WindowsNT服务运行。
CICS区域包含了几个由监视器进程监视的内部进程。
该监视器进程处理所有启动和关闭CICS区域的WindowsNT服务请求。
●CICS中的数据类型
在CICS中,数据能以下列形式存储:
Ø文件--永久存储直到被明确删除的数据。
Ø队列--处理请求或将数据从一个任务或一个程序传递到另一个任务或程序的临时数据。
队列能在CICS区域的多个执行体上保留,并能表示永久数据。
队列是顺序的。
Ø关系数据库--存储在一个特殊结构中,由RDBMS支配并使用结构化查询语言(SQL)命令访问的数据。
Ø日志--一组用来在发生故障后恢复数据更改的特殊用途的文件。
数据是一种可用于一个或多个服务器的全局资源。
任何任务都可以读、写或删除数据,并能与其它任务共享数据。
●服务和子系统(Subsystem)
在开放系统和WindowsNT上,CICS区域和SFS服务器作为一个特殊的程序类别运行。
在AIX上,该类别即为“子系统”。
子系统由系统资源控制器管理。
在WindowsNT上,该类别即为“服务”。
服务由WindowsNT服务控制管理器管理。
在其它开放系统平台上,并不存在作为操作系统一部分的子系统的概念,由CICS模拟系统资源控制器的功能。
在开放系统和WindowsNT上,作为服务或子系统运行的程序可并行运行。
在WindowsNT上,控制面板“服务”应用程序显示了一列服务,其中包括CICS区域和SFS服务器。
(注意:
CICS区域和SFS服务器不能由“服务”应用程序启动和停止。
)
●远程过程调用(RPC)
DCE支持的核心是RPC。
RPC提供了分布式系统中两个进程间的一种网络透明通信形式。
进程使用RPC以完全相同的方式进行通信。
●日志
Ø事件日志(仅WindowsNT平台上)
Ø系统日志
●两阶段提交
当要提交一个事务时,事务处理系统要确保所有在此项工作中涉及的可恢复服务器都提交它们的更新。
如果一个或多个服务器不能这样做(例如,与资源管理器的通信发生故障),那么所有服务都必须回滚。
已提交的数据更改都是永久性的。
为了完成上述操作,提交过程有两个阶段(称为两阶段提交