TUXEDO ETP(Enterprise Transaction Processing)系统的分布式结构,能够将异质的计算机节点集成到一起,高效、可靠地运行开放的OLTP应用。图1说明了TUXEDO是如何在各种不同的计算环境下运行的(例如工作站和基于Unix的服务器节点),也说明了它是如何与其他的OLTP环境协作的,很可能这个环境与它本身是完全不同的(如IBM MVS/CICS)。 @@I1;图1 TUXEDO ETP系统分布体系结构@@ 一、TUXEDO ETP系统的组成 1.SYSTEM/T节点 System/T就是TUXEDO ETP系统事务处理监控器(TPM),因此System/T节点是TUXEDO ETP系统中最重要的基本节点。在System/T节点中包含了应用系统中的特定部件,这些特定部件利用依从X/Open XA协议的资源管理器RM和System/T事务处理监控器的服务,将分布应用的各部分组合起来。除此而外,System/T中还包含有一个依从XA的事务管理器,负责根据应用提交的事务的要求,将各个事务分别传送到分布的其他节点上去处理。由于TUXEDO ETP系统可以在许多不同的开放系统平台上运行(如不同Unix变种操作系统),因此System/T要由各平台的供货商支持,保证其运行的基本要求。 2.工作站节点 为了改善OLTP应用的系统整体性能,通常建议将诸如表格(Form)处理或其他类型的数据输入工作由System/T节点下装到工作站上。在一个TUXEDO ETP系统的各节点上的应用程序都使用统一的API来书写(称之为ATMI)。因此,应用在节点之间的移植是很简单的。 在工作站节点上运行的TUXEDO ETP系统应用是按照X/Open DTP模型构造的。这些应用调用System/T的事务处理监控器TPM。而TPM则是X/Open的通讯功能、资源管理器RM和事务管理器TM的集成。应用通过TPM对分布的事务进行定义和提交,与OLTP系统中的其他部分的应用进行通讯,其他部分的应用系统则提供对业务数据的受限访问,这些数据可能存储在X/Open的资源管理器RM-DBMS内。由于使用工作站的往往是单个的或者范围很小的一部分终端用户,因此在工作站上一般不必驻留DBMS资源管理器RM(事实上很多业务系统中都倾向于采用无盘工作站)。 在工作站节点上运行的应用程序是要求其他System/T节点上的OLTP服务的客户端。TUXEDO ETP系统支持运行MS-DOS、OS/2、Windows 95等操作系统的PC机,以及各种版本Unix操作系统的工作站。工作站节点可以通过多种网络产品连接到System/T节点上(例如TCP/IP、OSI、Net-bios等)。 3.异质(Heterogeneous)节点 所有由非System/T的其他OLTP系统控制的节点(如IBM的MVS/CICS)即归为异质TP节点。从TUXEDO ETP系统的应用程序的角度看,异质节点均视为位于X/Open模型中的其他TM域中。在X/Open DTP模型中,两个异质的TM域之间的通讯应遵守OSI-TP协议。但由于此协议一直处于改进之中,且尚不成熟,因此TM域间的通讯一般可以基于某些特定的TP协议,例如IBM的SNA LU 6.2。实际上,TUXEDO ETP宿主机系统级的应用可以通过SNA LU6.2支持IBM MVS/CICS和TUXEDO ETP系统域之间的互操作。 在工作站或System/T节点上采用TUXEDO ETP系统的应用编程界面API-ATMI的应用程序,可以透明访问异质TP节点提供的服务。同时,因为TM域之间的开放的TP协议已经成为事实上的工业标准,并且已经被广泛采用,所以由应用定义提交的事务,可以用异质TP节点来处理。 在一个异质的分布环境中,依从于X/Open模型的ETP系统能够简化开发工作,并隐蔽分布系统的复杂性。 二、开放系统OLTP应用的计算模型———客户/服务器 对分布环境中的OLTP应用而言,理想的模型是客户/服务器模型。在客户/服务器模型中,将应用软件划分为两种类型:客户和服务器。客户负责数据的输入(终端或其他设备),在输入数据的基础上构造服务的请求。这些服务请求由服务器处理。所以服务器的主要功能就是处理客户提交的服务请求。处理时应根据其优先级对请求加以调度,然后将结果返还给客户,由客户对结果进行显示处理。 客户/服务器模型对OLTP应用具有以下几个重要的特点: 1.模块化 客户/服务器模型提供了在分布环境上模块化地构造应用的途径,充分保证了应用系统的可扩充性和可剪裁性,这一特点对企业而言是非常必要的。 2.高性能 客户/服务器模型便于系统的调整,可以充分利用系统资源,可根据业务需求,扩充若干个服务器,为许多客户提供服务。因此,该模型使应用可以获得最佳响应时间和更高的事务吞吐率。 3.数据独立性 由于服务器隐蔽了数据的访问方法,所以客户只需了解很少的关于服务器结构的信息,例如只要知道自己所请求的服务的名字,以及与该服务有关的必要的参数即可,客户不必关心提供服务的数据库的类型(不论是关系型、网络型,抑或面向对象模型)。实际上,服务器的DBMS所做的改变,可以毫不影响客户。 4.位置透明 正是由于客户/服务器的处理过程是分离的,客户可以用逻辑名通过通信线路访问服务器,而不必记该服务器的物理位置,它又允许服务器根据业务的实际需求而迁移,而不必担心对客户端造成任何影响。在客户/服务器模型内,客户端的应用不需直接采用网络名/网络地址而与服务器进行通信。 三、TUXEDO ETP系统中的客户/服务器模型 TUXEDO ETP系统利用客户/服务器模型,使遵从X/Open模型的OLTP应用获得较高的性能。在TUXEDO ETP系统中,对应用于X/Open模型中的API被称为ATMI。它可以适应开放系统OLTP的所有要求。在ATMI中有两套编程方式,即客户/服务器模型中的请求/应答和定向联接两类方式。用System/T TPM的术语来说,ATMI是System/T TPM中的RM的通讯功能的应用编程界面API,ATMI中包含有为定义分布式事务、需要映像到System/T TPM的TM功能模块的调用���令。 ATMI中的请求/应答调用命令消除了客户端显式地联编到服务器的必要性,从而保证了位置透明性和故障自动解除处理的可能(所谓故障自动解除是指在发生故障时,自动透明地将用户服务请求转移到其他可提供服务的服务器上)。ATMI的请求/应答调用命令支持同步和异步的服务请求。异步服务请求允许若干个请求并行,因此特别适合分布环境。利用ATMI中的TM调用命令,可将若干个请求集中成为一个事务。以事务为单位处理若干个请求,可提高系统效率,可以更简便地处理应用请求,在处理故障时可以自动逆执(回滚)。通过ATMI,应用程序可以根据应用需求,调整提交给服务器的请求处理的优先级别。由于其高度的抽象概括,ATMI可以方便地提供数据表示服务。如当应用数据在处理器类型不同的节点之间传递时,可以透明地自动对数据进行编码/解码处理,利用ATMI定义的服务,可以将结果返还给提出请求的客户,也可将下一步的工作送到另一个负责处理的服务器上去,再由后者将结果送回原来提出请求的客户。这一编组服务方式对分布环境无疑是非常适宜的,因为它使服务器处于高比率的忙态,且能在重载时并行工作。 请求/应答方式是非常简洁有效的,但在传输大量数据时则显得不十分理想。此外,在将一批仅有增量修改的记录回送给客户端时,也是有缺憾的。对这两类通讯最好是采用定向通讯模式。在定向通讯模式里,客户端和服务之间不拘泥于一个请求和一个应答,而是以通讯效率为主要考虑因素。 通过ATMI中这两种模式,开放系统OLTP应用即可做到较好的可移植性、位置透明、高效率、模块化、可扩展性以及高可靠性。 四、System/T节点的结构 通过对运行于System/T节点上的TPM做进一步的讨论,我们可看到在一个特定的事务处理监控器中的X/Open DTP的成分。System/T TPM提供了X/Open DTP模型的最基本功能要求。除此而外,分布OLTP应用的核心程序———应用的服务例程也驻留在System/T节点上。 TUXEDO ETP系统应用是根据客户/服务器模型构造的。用户使用TUXEDO ETP提供的应用开发工具定义客户和服务器。服务器不一定采用与XA相兼容的DBMS构造,客户端则可利用ATMI构造事务中的相关部分的工作,包括通过通讯传送给服务器完成的工作。 为了支持客户端和服务器端的应用,TPM负责在System/T节点的协调工作。System/T提供了开放系统OLTP所要求的全部功能。 @@I2;图2 显示了OLTP功能。@@ 1.功能分布 原则上客户端不直接访问数据库的数据,而是由System/T TPM提供的分布传递功能,将客户端的请求及其参数送往适当的服务器,为客户端的请求提供数据服务。 2.名字服务 System/T通过名字服务(有时也称为"目录服务")满足了服务要求的位置透明性。客户端使用抽象的逻辑名字,例如"DEBIT",即可请求某一服务器的进程响应。 由于System/T是通过名字服务设施,由服务器的逻辑名找出到达所要求的服务器的最佳路径,因此,在System/T的名字服务器内,必须掌握有关的定位信息,例如包括TUXEDO ETP系统域所有TM域在内的数据定位信息(上下文关联路由)。 3.优先级配置、上下文相关和负载平衡 为了在最适当的地点,以最小代价、最快的速度得到对数据访问的服务,在应用程序/环境提供的必要信息的前提下,System/T在转送请求之前,要对与上下文相关的路径的约束条件(对负载因子和服务的优先级)进行评估,以决定请求发往的服务器。为了在系统内均衡地分配任务,System/T采用一个数据统计和二级负载平衡相结合的模型。在第一级上,根据上下文相关的路径约束条件,选择一个System/T节点。而在多服务器单服务队列的机制下,则通过统计数据在第二级上选择,以保证第一个有余力的服务器出现时就将客户端的服务请求发送过去。路径决策、调度以及负载平衡这三项功能是提高OLTP性能所必须考虑的。 4.系统管理、监控和重配置 System/T的TP监控器提供的监控功能包括: ·事务监控。 ·联机重配置。 ·应用进程的起动和关闭。 ·定时服务调度。 System/T的监控服务提供了对一个分布OLTP应用系统的集中的监测功能。在System/T中的系统活动、统计数据、故障信息等都记录在中央运行日志中。同时应用配置服务则可使系统管理员统一规定所有的依赖硬件、网络特性、服务器及服务本身的参数。简而言之,System/T提供了联机重配置的功能,进一步增强了系统可靠、高效运行的保险系数。 不同TM域的管理监控工作的标准化是业界非常热衷的一个话题,例如,OS-ICMIP是可行的一个标准。但是其前提是统一标准的应用环境,其中要包括对OLTP系统的各种被管理对象的定义和说明,这样的协议标准在X/Open DTP模型中还处于发展之中。 5.故障管理服务 System/T通过设置数据服务和服务器冗余备份,以提高应用系统的可用度(Availability)。这些冗余备份可以跨若干个System/T的节点。同时,System/T还监控一个节点上不同的运行系统,如机器硬件、网络及进程。当检测到一个故障时,System/T能够自动恢复或者自动重启服务器。而当一个System/T节点瘫痪时,System/T可以将该服务转移到一个备份节点上,故障管理将System/T和应用程序的故障情况和运行信息记录到中央审计日志上。 6.安全保证服务 System/T的安全服务设施在应用运行之前对授权进行检查,应用开发者可以插入自己开发的部件,以增强或替代System/T中原有的安全部件。System/T内部提供了相应的内部接口,只要根据这一接口,挂接上自己的安全机制即可。 7.数据编码与解码服务 System/T通过ATMI提供数据表示服务(即���谓分类缓冲)、应用系统与分类缓冲区通讯,而System/T则在需要时即自动对分类缓冲区中的数据进行编码/解码处理。应用程序可生成自己的分类缓冲区,并定义其编码/解码机制,供System/T调用。由于机器或系统的原因,分类缓冲区接收到数据代码时,其表示通常是不同的(在异构、异质的分布系统中,这是正常的),System/T的编码/解码服务即可克服这些问题。 8.分布事务管理服务 分布事务管理服务一般包括二阶段提交的协议和日志服务二项主要内容。[HESSEL 90]与X/Open DTP模型中的事务管理器TM的概念相对应。System/T DTP服务就是利用XA的接口协议,协同遵从DTP模型的那些资源管理器RM的。所有这些服务则要利用System/T中提供的域间服务,协调跨TM域的事务。 9.请求的排队和调度服务 利用System/T提供的这一服务功能,应用程序可以将请求插入到一个稳定的队列,在其后某个适当的时间再逐项提交给应用服务器。应用中可以策划及构造一些定时的请求,如每天同一时间提交某些固定的事务请求。 10.数据输入服务 数据输入服务的概念在System/T中是指对联接在Unix系统上的异步终端提供的一种数据和事物请求服务。数据输入服务负责将终端用户输入的数据转换成具体的服务请求,并将这些请求传送给服务器。System/T通过ATMI提供这一服务,主要用来界定事务。 11.网络管理服务 网络管理服务大大简化了跨System/T节点的远程通讯。System/T中提供了一个称之为System/T桥的Unix系统进程,负责处理远程通讯。System/T桥将一个分布的服务请求送到相应的System/T节点和服务器上。它对某一网络的访问是通过一个专门的网络库执行的,由于利用这一网络库即可对不同的网络进行统一操作的接口处理(例如X/Open的XTI、Sockets、APLI、Netbios)。这一接口是System/T的一个内部接口。 12.工作站管理服务 System/T可以将客户端应用程序移植到PC机或工作站上。当然在Unix系统中,与异步终端相关连的字符处理部分要有所不同。此外,还允许应用程序开发人员自由使用他们所选择的图形用户界面。System/T中有一个特殊的System/T客户,负责掌管大量工作站导致的多个客户进程。这个System/T客户就是一个工作站管理器(Workstation Handler)。工作站管理器构造在System/T的抽象网络上。因此,工作站管理器能够应付各种不同的网络和网络协议。工作站管理器利用System/T的其他服务设施将由工作站或PC客户应用产生的服务请求定向传送到适当的服务器上去。PC机的兼容性也是System/T的特点之一。 13.域间服务 System/T通过域间服务提供不同TM域的节点之间的互操作能力。例如在TUXEDO ETP系统中实现的对位于IBM MVS/CICS环境中的应用程序的访问,是通过一个特殊的管理器达到的。该管理器使用了X/Open CPI-C到SNA LU 6.2的接口。X/Open DTP模型中提供一个到OSI-TP协议的接口,实现这类互操作性。 X/Open DTP模型是适应开放系统OLTP的一个基本模型,致力于提供可移植的DTP应用、可交换的DTP模块,以及跨异构、异质平台的可互操作的应用,对开放 系统OLTP而言都是奠基性的。X/Open DTP模型还在发展之中,还会增加许多新的内容。