第二章:TUXEDO简介
Tuxedo是BEA公司的交易中间件产品,1984年由贝尔实验室开发成功,1992年易主Novell 公司,1996年由BEA公司收购,经过十多年的不断更新和完善,Tuxedo已经发展成为交易中间件领域事实上的标准。
2.1 TUXEDO系统的组成部分
BEA TUXEDO是由服务器端的事务管理器、可靠队列服务、 应用域以及客户端的工作站等几个核心部分组成的。下面对这几部分进行介绍。
TUXEDO域 TUXEDO域 域网关 域网关 可靠事务事务可靠 队列管理管理队列 服务 器 器 服务
工作站 工作站
图 TUXEDO核心组成
1. 事务管理器/T
运行于服务器端的事务管理器是TUXEDO体系结构的中心,它是每个TUXEDO服务器的核心,提供重要的分布式应用服务,包括:名字服务、数据路由、负载平衡、配置管理、分布式事务管理和安全性管理。它包含TUXEDO的核心数据结构公告板BB (Bulletin Board), BB中包括服务名、路由信息、请求服务的队列和负载等基本信息,TUXEDO/T负责访问和维护BB中的信息,并利用这些信息实现其各项功能。
2. 工作站/WS
工作站把TUXEDO ATMI API((注:ATMI,应用事务管理接口,是支持应用开发的一组函数) 扩展到客户端应用程序中,它适用于DOS、Windows3.1/95/98/2000/XP、Windows NT、IBM OS/2、 Macintosh OS和所有商用版的UNIX。有了工作站,开发者用ATMI客户端的功能可透明访问在TUXEDO分布式环境中任何服务器上的服务。有了工作站,用户可在常见的编程环境中如:Visual Basic,PowerBuilder,DELPHI,VC等编写TUXEDO的客户端程序。
3. 可靠队列服务/Q
TUXEDO提供了一个简单的可靠的队列机制,保证应用系统提交的请求和数据可在网络故障或目的服务器瘫痪等情况下也能递交到目的服务器。应用程序能将服务请求入队和出队,并可以设定系统,使队列中的请求自动地转发给 TUXEDO的服务进程,并取回处理结果。这种可
靠队列作为一种资源管理器,可以和其他资源管理器(如数据库)协作,完成全局事务处理。 /Q的常见用法是用于实现数据的可靠传送,把数据从一台机器可靠的传送到另一台机器.如:在电信计费业务中,可以用/Q把采集到的计费数据发送到计费中心进行处理;在银行中,不同的银行间可用/Q传送结算数据. 数据传送可以是在客户端与服务端之间,或服务端与服务端之间。/Q还可以用于实现批处理或工作流等业务。
4. 域/Domain
将大范围、由很多台(几百甚至上千)服务器共同组成的一个应用系统按功能或结构划分为不同的域,每个域独立地完成域内的操作,域间操作由域网关完成,从而提高每个域和整个系统的运行效率。
TUXEDO的域特性把客户/服务器模型扩展到多个独力自治的应用系统. 一个域既可以是一组TUXEDO的应用程序(若干相关的应用服务和配置环境的组合)。域同时也可能是一组运行在另一个非TUXEDO环境中的应用程序。 TUXEDO和其他中间件的互操作也是利用域网关的概念来实现的。
TUXEDO对域的划分和管理类似于网络应用中划分子网的概念—-将复杂 的网络应用按功能或地域等因素划分为不同的子网,子网间以路由器联接,不同的网络协议通过网关透明地转换,从而提高网络效率并加强整个网络的可管理性。这一应用模式已被广泛证明是处理大范围、复杂应用的成功经验和事实上的标准,同时也是TUXEDO在多年大规模企业用户的实际应用中总结和开 发的行之有效的中间件功能。而其他绝大多数中间件厂商尚无力涉足域的划分与管理,从而很难为超大规模的应用提供强有力的支持。
在英国教育与就业部的就业服务项目中,在英格兰、苏格兰和威尔士三岛广泛分布的1100多个办公机构要负责2,450,000名失业人员的福利管理和再就业。其应用网络中有1,100多台服务器和21,000多台PC,同时为超过30,000名工作人员提供服务,系统每天要处理7,000,000笔交易,其中95%的交易必须在3秒钟内完成,该系统号称世界最大的客户机/服务器应用项目,同时也是整个欧洲最大的广域网应用项目。面对如此庞大的应用和极高的系统时间响应要求,其他中间件厂商束手无策。而正是由于BEA具备了丰富的超大规模应用领域的成功经验和领先技术,TUXEDO轻松地击败竞争对手,被选为该系统的中间件运行平台,并取得了令用户极为满意的实际效果。
2.2 TUXEDO的主要功能介绍
TUXEDO具备了所有交易中间件产品所应具备的功能,作为构造三层结构应用系统的基础平台,TUXEDO的主要功能可概括为五大平台:
? 应用开发平台: 提供API,供开发人员调用,用于开发整个应用系统。 ? 应用部署平台: 通过配置文件,对应用系统进行部署。 ? 应用运行平台: 提供应用系统运行的环境。
? 应用管理平台: 对整个应用系统进行管理,监控。
? 应用互联平台: 可以和其他的应用系统互联,实现互操作。
下面对这五大平台进行分别介绍. 应用开发平台
1.支持的开发工具
1. 在服务器端TUXEDO支持C、COBOL语言。
2. 在客户端TUXEDO支持几乎所有的编程语言和开发工具,只要这种语言或工具支持动态联接
库DLL或支持C、COBOL的语言调用。其客户端通过DLL可以和Visual C++、Visual Basic、 Power Builder、SQL Windows、Delphi、 Develop/2000以及其他4GL和CASE工具互连。另外,通过BEA Jolt, 用户还可用JAVA语言编写客户端程序。
3. BEA公司提供BEA Builder工具,帮助开发人员在图形化的开发工具上完成编程;提供DES
工具,帮助开发人员在字符界面上完成编程,使系统的开发效率极大提高。 4. TUXEDO还得到其他第三方开发管理工具厂商的支持。
TUXEDO提供的编程API总共只有几十个函数,常用的只有十几个,开发人员可以很快掌握这些API,进行TUXEDO服务器端和客户端的开发工作.
2.TUXEDO支持的平台
TUXEDO是一个非常开放的平台,支持包括UNIX、NT、Linux、AS400、大机等70多种平台,并且在所有平台上的API都是一致的,平台间的数据表示的差异由TUXEDO自动屏蔽,这也是TUXEDO的独到之处,极大地拓宽了用户对平台的选择范围。
构筑在TUXEDO系统之上的应用独立于计算机硬件、操作系统和数据库,将应用从一种开放平台移植到另一种开放平台,只需作应用程序的重新编译和极少的SQL语句的调整(不同数据库产品其SQL语法可能稍有不同),应用系统就能顺畅地完成平台转移。
为支持异构系统互联,TUXEDO允许用户在配置文件中设置机器类型,TUXEDO支持自动码集、位数及字节顺序的转换,TUXEDO屏蔽不同平台间的数据表示,不需要编程人员精通各种平台的数据表示差异,从而“自动地”完成异构系统的互联。
TUXEDO支持几乎所有的数据库,包括ORACLE、SYBASE、INGRES、DB2等UNIX上的大型数据库和NT上的SQL Server,并且还支持C-ISAM文件系统。
应用部署平台
在TUXEDO中,应用的开发与部署是分开的,在开发时不用关心应用的部署问题。一个应用系统的配置信息都保存在一个文件中。通过修改该文件进行系统的部署。可根据系统的需要决定是把一个服务部署到一台服务器上还是多台服务器上。根据系统的负载情况决定该启动多少个服务进程等等。可以很容易地把在一种操作系统上开发的应用部署到另一个系统上.如把在NT平
台上开发的应用系统部署到UNIX上,应用的程序几乎不用做任何的改变,只要重新编译一下就可以了.
应用运行平台
TUXEDO为应用系统提供运行环境,在运行时可根据系统的配置提供故障恢复, 负载均衡, 自动伸缩,安全认证,数据加密等功能,为TUXEDO应用系统提供一个可靠的运行环境。下面对一些主要的功能进行介绍。 1. 处理分布式事务
当TUXEDO应用系统只有局部事务、没有全局事务时,Tuxedo 直接利用数据库的事务处理功能(用或不用 XA),这样可提高系统性能。
当TUXEDO应用系统涉及跨多个数据库(同构或异构)的全局事务的时, Tuxedo 利用XA标准和两阶段提交协议协调各个数据库的同步。Tuxedo 还可保证可靠性队列/Q 的入出队操作和数据库的更新操作的同步。在各种情况下, Tuxedo 能够确保异构的(或者同构的) 数据库以及其它资源管理器之间的完整性和一致,并且还能在出现节点故障、网络故障或全局资源死锁时利用内部的交易日志来协调全局事务的恢复。 2. 服务和节点的故障恢复
Tuxedo可以对系统组件进行持续监视,查看应用系统、交易、网络及硬件是否出现故障。一旦发现故障,它支持备份服务器组继续运行,并透明地将故障组件从系统中排除,管理必要的恢复程序,重新为消息和交易选择路由,保证交易平台的高可用性。 3.请求的重定向
TUXEDO可以利用一些参数,如超时,使资源管理器可以在不中断进程的情况下将出现故障情况的节点上的服务器及服务移植到其它结点上重新运行。如果一个节点上的某些服务器出现故障,TUXEDO还可自动地将客户的请求重新定向到可以完成相同服务的服务器上,使客户感觉不到变化。 4. 动态伸缩
在一个生产系统中,一般是不允许停机的,TUXEDO应用系统可以在不停机的前提下,动态修改系统的配置,包括:
1.增加新的TUXEDO系统应用服务器、数据库和服务进程组、服务进程和服务。 2.修改现有的服务程序 3.修改数据依赖路由规则
4.根据系统负荷的变化动态地增加或减少服务进程的个数。用户可动态启动或停止服务;用户 可使某些服务可用或不可用。

