[转帖]TUXEDO简介_MQ, Tuxedo及OLTP讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MQ, Tuxedo及OLTP讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4562 | 回复: 0   主题: [转帖]TUXEDO简介        下一篇 
wangxilu
注册用户
等级:少校
经验:850
发帖:73
精华:3
注册:2013-4-10
状态:离线
发送短消息息给wangxilu 加好友    发送短消息息给wangxilu 发消息
发表于: IP:您无权察看 2013-4-11 13:47:29 | [全部帖] [楼主帖] 楼主

第二章:TUXEDO简介

Tuxedo是BEA公司的交易中间件产品,1984年由贝尔实验室开发成功,1992年易主Novell

公司,1996年由BEA公司收购,经过十多年的不断更新和完善,Tuxedo已经发展成为交易中间件领域事实上的标准。

2.1 TUXEDO系统的组成部分

BEA 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.根据系统负荷的变化动态地增加或减少服务进程的个数。用户可动态启动或停止服务;用户

可使某些服务可用或不可用。

5. 负载平衡

为了确保应用吞吐量最大,TUXEDO的事务管理器自动地在系统中完成动态负载平衡调度。通过使用每个服务的负载因子,事务管理器把请求发送给能最快处理该请求的服务器。事务管理器通过为当前排队的请求总计负载因子来决定给定服务器上的负载。TUXEDO有以下几种���荷平衡的算法:

1. 根据可动态改变的服务的负荷权重因子及网络通讯的权重因子,将请求发向总权重最小的服务进程的请求队列。

2. 利用多服务进程单队列(MSSQ)机制,使多个服务进程能均匀地分担单一队列的请求。

3. 利用数据依赖路由机制,根据请求数据的内容将请求分散到相应目标队列。

4. 不做负荷平衡,由TUXEDO 系统将请求发向第一个可用服务进程队列。

6.数据依赖路由

数据依赖型路由是根据对服务请求调用中指定的输入参数的值,把一个服务请求映射到一个指定的服务进程组的机制。例如,一个银行系统的实际应用可把系统服务按营业网点号进行划分,以不同的服务进程组处理指定网点范围的应用,不同服务进程组所存取的数据可以是集中的同一个数据源,也可以是分布在各自服务器上的不同的数据源。这种功能的实现是通过事务管理器/T进行路由选择完成的,而不需要编写应用代码实现。事实上,事务管理器/T查看指定的参数值(如:网点号),参考存储在BB中的路由信息,然后把请求发送到指定的服务进程组。如果用户需要改变应用分区(把一个分区移到一个新服务器上,或在已有分区实例上更改网点号分布),那么,他只需改变路由规则,应用程序的代码不受影响,这是应用系统实现动态伸缩的一个重要途径。

7.安全认证和数据加密压缩:

    TUXEDO提供应用服务的验证、 授权和访问控制。用户能用访问控制列表保护服务、队列或事件免遭未授权的访问。TUXEDO系统总共提供5种安全认证方式。 TUXEDO还提供数据加密压缩功能,TUXEDO客户端与服务端之间,服务器之间传送的数据可进行加密和压缩。TUXEDO7.1之后的版本还提供对PKI的支持,还可以使用第三方的PKI产品。

应用管理平台

1.TUXEDO提供以下管理工具和编程接口

1. 基于WEB的图形化管理工具:可通过浏览器(如IE或Netscape)对系统进行管理配置。

2.  基于字符界面的管理工具:TUXEDO提供TMADMIN,DMADMIN等命令行管理工具。

3.  MIB编程接口:TUXEDO 提供C 语言的管理API ,用户能够用此编写出适合自己特殊需

求的管理工具

4.  通过SNMP与其他管理工具(HP OpenView 等)互联,TUXEDO 的关联产品 BEA 

MANAGER 通过网络管理协议 SNMP和TUXEDO 的管理信息库 MIB 可以把TUXEDO 

对应用程序的管理集成到一般的网络、 数据库系统管理工具中,比如 OpenView, 

NetView等。

2.TUXEDO提供的管理功能

通过以上的管理工具,TUXEDO可以有效地管理整个系统的资源,启动和停止服务进程,根据变化的负荷复制服务进程,动态地广播、撤消服务进程中的服务。并且可以在客户不用退出执行的情况下,动态的增加新的机器、服务器组、服务器以及服务。利用命令行或图形管理界面TUXEDO还可以动态的进行负载平衡,数据依赖路由、网络用户的管理、队列的管理、存取资源管理器以及系统的启动、重启和失败恢复。

3.TUXEDO的系统日志

TUXEDO 提供各种日志,分别帮助用户根跟踪、分析、调试应用系统, 并在系统出现故障时作恢复处理。TUXEDO 提供动态跟踪日志,跟踪系统对ATMI 的调用;TUXEDO还提供应用服务级别的跟踪分析功能, 帮助系统开发及管理人员分析应用的执行情况、找出性能的瓶颈;TUXEDO 还提供用户日志功能, 使用户能按自己的需要记录必要的日志,或打印一些调试 信息, 另外系统管理员还可以从GUI 管理工具中检查用户日志; TUXEDO 内部还维护事务的日志,在系统出现故障时作必要的善后处理。

应用互联平台

随着企业信息化的水平的不断提高,各类新兴业务的不断涌现,一个企业内部会有很多计算机应用系统,如ERP,CRM,CALL CENTER,电子商务系统,大机遗留系统等等,同时不同的企业之间要实现电子商务,他们之间的系统也要能够互相调用。在一个复杂的企业应用环境下,不同厂商的产品,不同应用系统之间要能够有效的互连,实现互操作,为企业构造一个紧密协作、集中管理的,同时又是一个高可靠、高可用、易于扩展的企业应用环境。TUXEDO是一个高度开放的系统,能够很容易的与别的应用系统实现操作。

TUXEDO与其他应用系统的互连概括

1. 通过/TDOMAIN与其他的TUXEDO应用系统互连,它已经在TUXEDO的软件包中,安装完服务端软件就有该功能。

2. 通过ELINK与大机系统进行互连,需要单独购买和安装BEA ELINK产品。

3. 通过ELINK与其他中间件(CICS等)进行互连。

4. 通过BEA JOLT产品与JAVA客户端互连,一般是与JAVA应用服务器互连,如WEBLOGIC,WEBSPERE,IPLANTET等,BEA  JOLT也要单独购买和安装。

5. 通过WTC与WEBLOGIC互连(WEBLOGIC6.0之后的版本才支持)。

2.3 最新版本TUXEDO8.0的新功能

TUXEDO目前主要有3个版本存在,分别是TUXEDO6.5, TUXEDO7.1及最新版本TUXEDO8.0

TUXEDO7.1在TUXEDO6.5的基础上,主要增加了以下功能:

1. 支持多线程编程,服务器端和客户端的程序可采用多线程方式编程。

2. 支持PKI,还可以采用第三方的PKI产品。

3. 增加了一种新的缓冲区XML,并可对XML缓冲区进行数据依赖路有。

最新版本TUXEDO8.0的新功能

最新版本TUXEDO8.0在TUXEDO7.1的基础上,融合了C、C++、COBOL和BEA CORBA分布式应用技术,不仅成为企业和各种组织构筑分布式应用系统的标准平台,而且通过集成其它CORBA环境开发的遗留系统、大型机和其它企业应用系统,实现了对长期IT投资的保护。 

Tuxedo 8.0的一个重大增强是增加了对CORBA的支持。这样它可以同时通过CORBA接口和ATMI接口分别提供对远程CORBA客户端和工作站客户端的支持(如图1所示)。通过CORBA,Tuxedo可以集成其他在CORBA环境下开发的企业现有系统,保护企业用户的原有投资。ATMI接口在以前的Tuxedo版本中就存在,它为Tuxedo支持的多种硬件平台和操作系统提供了一致的应用编程接口,使开发人员可以集中精力于应用开发,而无需考虑硬件环境,从而大大简化了电子商务应用系统的开发。 

北京联动北方科技有限公司

Tuxedo 7.1和Weblogic Enterprise 5.1分别提供ATMI接口和CORBA接口,它们都支持安全插件程序,但安全信息不能在这两个环境中传递。而在Tuxedo 8.0中,ATMI和CORBA环境都支持同样的插件程序机制,因此能实现可以共同操作的安全性。 

Tuxedo 8.0中的Jolt增强了WebLogic Server与Tuxedo的集成。它可以自动从WebLogic Server中传递出用户的注册信息,这样用户在WebLogic Server中注册之后,无需再在Jolt中注册,即可使用Tuxedo提供的服务。如果中途客户端与服务器的连接中断,Jolt还可以在不中断客户端应用的情况下重新建立与服务器的连接。BEA WebLogic Enterprise 6.0将WebLogic Server和最新版本的Tuxedo 8.0融于一体,为用户构建和部署关键任务应用系统带来很大灵活性。 

此外,新版本的Jolt还加强了对XML的支持,它允许XML文件通过基于数据的路由从Jolt客户端流向Tuxedo服务。这样(JSH,Jolt Station Handler)可以在服务请求之前或服务应答之后执行缓存分配。 

概括起来,Tuxedo8.1版本和Tuxedo7.1相比,主要有以下10个方面的增强:

1.支持多线程的CORBA C++应用


Tuxedo 8.0的应用模式现在有两个:传统的ATMI模式和CORBA模式。在CORBA模式支持多线程的C++客户端和服务器端的应用。在应用中使用多线程会带来很多好处,但是增加的应用编写的复杂性。Tuxedo 8.0提供了两种多线程模式:每个对象一个线程(thread per object)和每个请求一个线程(thread per request)。这两种模式的特点如下:

Thread per Object:


在服务器进程里面,每个对象分配一个线程

线程间的同步对用户是透明的,用户不需要编写程序,仅仅需要配置就可以完成。

Thread per Request:


每个客户端的请求由不同的线程来完成。

支持多线程客户端的长时间的交易请求。

需要用户编程控制线程的同步。

2.在CORBA中支持Unicode字符集


Tuxedo 8.0支持国际字符集Unicode。在CORBA的接口定义语言(IDL)以及客户端和服务器端的编程中都支持。在C++的IDL编译器中现在支持wchar 和wstring的数据类型。

Tuxedo 8.0对负载均衡进行了优化


Tuxedo 8.0对负载均衡算法进行了优化。在以前的版本中,所有的机器对负载均衡都是同样地位的。在Tuxedo 8.0中,会优先考虑本地机器(即接受交易包的机器),这样的优化有效地降低了网络的负载。因为在压力增大的时候,集群中的各个机器之间的网络传输往往成为瓶颈。

应用进程性能上的增强


Tuxedo 8.0提供了参数可以控制如下特性,提高了应用进程的性能:

l Service和接口的缓存

l 可以选择关闭认证和授权安全机制

l 可以选择关闭多线程机制

l 可以选择关闭XA事务控制机制

这些特性可以针对每个进程来进行。这样可以管理员灵活地在这些功能和性能上进行选择。

Domain性能上的增强


Tuxedo 8.0在Domain上的性能增强主要表现在:

l 在大规模的Domain配置的时候,减小了启动的时间。在8.0以前的版本中,当大量的Domain相连的时候,光启动就需要花费大量的时间。现在启动的时间大大减小了。

l 支持跨域的消息优先级。在8.0以前的版本里面,消息的优先级仅仅在本域内有效,当消息包出了本域以后,优先级就没有意义了。在8.0中当消息包跨域传输的时候,优先级依然有效,这样可以提供跨域的质量服务(QOS)。

l 跨域的事务审计功能。在8.0以前的版本里面,事务仅仅局限在一个域里面。当事务跨域进行是,由于事务ID的分配是在一个域里面进行了,所以无法保证对跨域的事务的审计控制。8.0中通过映射技术的引进,保证事务可以在跨域的时候被跟踪审计。

在安全方面的增强


Tuxedo 8.0支持数据链路���密(LLE)和SSL加密。也支持基于非对称加密体系的消息的加密和数字签名。Tuxedo 8.0允许用户将第三方的加密产品嵌入到Tuxedo中间,实现符合用户要求的安全规定。

基于内存的Q 


在Tuxedo 6.5的版本中,可靠异步传输Tuxedo/Q的队列是建立在磁盘上的,保证了消息传递的可靠性。但是基于磁盘的队列读写是比较慢了。在8.0中提供了基于内存的Tuxedo/Q。当然用户也可以选择基于磁盘的Q。基于内存的Q在同大容量的队列以外,还克服了基于磁盘队列的速度慢的问题。Tuxedo/Q的有关功能也得到改进,例如:客户端可以使用“窥视”(Peek)方式察看是否有消息到达,如果没有消息包,则可以立即返回,不用阻塞在调用里面,增加了编程的灵活度。


全方位的MIB编程支持


Tuxedo 8.0支持MIB编程,对Tuxedo进行监控和修改配置。它可以允许用户灵活地实现自己对中间件的监控或者将对中间件的监控集成到任何符合公开标准的网管软件中(如:HP OpenView等)


支持XML数据类型


XML是电子商务的标准数据格式语言。Tuxedo 8.0支持XML数据类型的传输和解析,也可以对XML进行数据依赖路由。

和WebLogic的互连性

原来Tuxedo和WebLogic互连是通过Jolt来完成的。现在有一个专门的组件:WTC(WebLogic Tuxedo Connector)进行互连。WTC比Jolt的优点主要有:

l WTC支持WebLogic和Tuxedo的双向互连。而Jolt是单向的。

l WTC支持会话方式,Jolt不支持

l WTC支持事务控制,Jolt不支持

l WTC支持tpenqueue/tpdequeue方式,Jolt不支持

Tuxedo 9.0新特性介绍

域网关性能增强

日益复杂的大型企业应用对域网关性能的要求不断提高将消息接收、响应回送、网络接收全部线程化,缩短等待时间与主处理循环(适合多处理器系统)多层数据缓冲器管理,优化LRU算法,减少内存重复分配及空间浪费改进针对GWTDOMAIN;通过公共网关架构(CGA),将来其它Tuxedo网关亦可受益所有改动对应用和管理透明

WLS CORBA集簇支持和IIOP客户端失效转移

提供基于CORBA的C++客户端到WLS的集簇支持当通信链路或服务器失效时,提供透明的CORBA请求自动重发机制当与ISL或服务应用通信失败时,不必重启客户端以释放其所有对象引用,而直接与原ISL或其它可用ISL连接Tuxedo动态更新回复消息中的副本(replicas)列表及版本号,保证客户端同步支持同步和异步请求(DII)的失效转移开发人员只须在ICF文件中指明接口是否为幂等接口(retry_policy: never | always)

2.4  TUXEDO的安装

TUXEDO软件分为服务器端和客户端两部分,下面分别介绍他们在不同的平台上的安装方法。

安装前的准备:

1.为了编译TUXEDO的应用程序,TUXEDO应用服务器上应该有C编译器,在UNIX下,一般都有,在

NT下,可安装VC,如果用到数据库,还要安装预编译器,如PROC等。

2.如果TUXEDO 应用系统要访问数据库,并且与数据库不在同一台机器上,在TUXEDO应用服务器

上要安装数据库的客户端。

3.安装软件可到http://commerce.bea.com/downloads/products.jsp下载,联机文档可到

http://edocs.bea.com下载.

一、在UNIX下的安装TUXEDO6.5,TUXEDO7.1

1. 以ROOT登陆,增加一个用户TUXEDO,如果TUXEDO应用要调用数据库的话,要和数据库在

同一个组里。

2. MOUNT TUXEDO安装盘,不同的系统MOUNT的方法不一样,常见的如下:

SCO
mount -o cdcase /dev/cd0 /mnt
AIX
mount -v cdrfs -r -o cdcdase /dev/cd0 /cdrom
HP
mount -F cdfs -o cdcase /dev/dsk/cd0  /cdrom
SUN
mount -r -F hsfs -o cdcase /dev/dsk/cdt0d0s0 /mnt/cdrom


MOUNT CD-ROM时应注意:

    (1)最好都加 -o cdcase 参数

    (2)不要在要MOUNT的目录下进行MOUNT,UMOUNT操作,否则会提示:设备忙。

    (3)CD-ROM所对应的设备名,不同的系统都不一样,可到/etc/dev目录下去查找,在HP上可

以用ioscan -f -n 查找

也可以直接把TUXEDO的安装包FTP到SERVER上,再进行安装。

3. 以TUXEDO用户登陆,进行安装

    (1) 到TUXEDO的安装介质所在的目录下,执行install.sh脚本。

sh install.sh


   (2) 根据相应的提示进行选择,当提示是安装服务端和客户端都安还是只安装客户端,请根

据实际情况选择;当提示安装路径时,请输入安装路径,如:/usr/users/tuxedo 

    (3) 当提示是否安装LICENCE时,选择否

    (4) 安装完之后, 把LICENCE文件COPY到$TUXDIR/udataobj下,并重命名为lic.txt

二、在UNIX下的安装TUXEDO8.0:

TUXEDO8.0 FOR UNIX平台的安装包一般是一个bin文件. 用TUXEDO用户直接运行它就可以了. 并根据相应的提示进行安装。有3种安装方式:

1. 图形化的安装方式,要有JAVA GUI���境才行,如: sh tuxedo80aix.bin

2. 命令行的安装方式,要加-i console选项才行,如:sh tuxedo80aix.bin -i console

3. 采用一个模板文件进行安装,安装时从该文件中读取配置,不用人的干预。一般不常用。

注意: UNIX系统的TMP目录(环境变量IATEMPDIR所指的路径)应有足够的空间,因为TUXEDO8.0安装时先解压文件到系统的TMP目录下,然后再进行安装。 如果TMP目录空间不够安装会出错,有时会提示空间不够,有时可能提示TUXEDO8.O的安装包下载的有问题(不是用BIN方式下载)或安装包坏了,这时你可以把IATEMPDIR设到要足够空间的目录下然后再进行安装。如:

IATEMPDIR=/your/free/space/directory
export IATEMPDIR


三、在WINDOW平台下的安装TUXEDO

TUXEDO的服务端只能在NT或WIN2000,及WINXP上安装,不能在WINDOWS98,WINDOWS95上安装,客户端在以上操作系统上都可以安装。

在WINTDOW平台下安装时,直接运行SETUP.EXE并按照提示进行操作就可以了。 当提示是安装服务端和客户端都安还是只安装客户端,请根据实际情况选择。

四、TUXEDO 客户端的安装.

在UNIX及NT平台下TUXEDO 客户端的安装按照上面的说明操作就可以了。在WIN98下客户端的安装说明如下:

1.运行 win98目录下的DISK1中的SETUP.EXE,假设安到c:\tuxedo

2.安装完毕后,在c:\autoexec.bat中设置环境变量,常用的有:

SET TUXDIR=c:\tuxedo
SET LIB=%TUXDIR%\LIB
SET INCLUDE=%TUXDIR%\INCLUDE
SET PATH=%PATH%;%TUXDIR%\BIN
SET WSNADDR=//192.168.1.6:8888


3.运行TUXEDO的客户端程序,测试能否正确调用TUXEDO 服务端的SERVICE,如果能正常运行,说明已配置完毕。

4.如果不能正常运行,一般是环境变量不对。注意在WIN98下要重启系统,环境变量才能生效。另外在C:\下面会生成一个ULOG文件可从中得到很多CLIENT的运行信息。

五、TUXEDO 服务端环境变量的设置

TUXEDO应用系统再运行或编译程序时要用到一些环境变量。

在UNIX平台下,在TUXEDO的安装目录下会有一个tux.env文件, TUXEDO安装时会自动在里面设置它所需的环境变量。另外一般还要设置LANG和NLSPATH环境变量:

LANG=C;export LANG
NLSPATH=$TUXDIR/locate/C;export NLSPATH


NT平台上,在安装过程中,会自动设置它所需的环境变量。

六、测试是否安装成功

安装完成后,一般用TUXEDO自带的SIMPAPP例子测试是否安装成功,下一节介绍该例子的使用方

法。

七、不要忘了打PATCH

安装完毕之后,不要忘了打最新的PATCH。

tuxedo软件目录结构介绍


%TUXDIR%apps

包含一些应用例子程序

%TUXDIR%bin

包含可执行文件

%TUXDIR%cobinclude

COBOL程序使用的copylib

%TUXDIR%doc

BEA Tuxedo 文档(如果安装)

%TUXDIR%include

C语言头文件

%TUXDIR%lib

Tuxedo的库文件,包含静态、动态库等

%TUXDIR%locale

系统信息支持子程序

%TUXDIR%udataobj

Tuxedo需要的支持文件


    2.5 一个简单的例子

Simpapp是Tuxedo系统自带的一个例子,下���通过这个简单的例子使大家对TUXEDO有个感性的认识。它由服务端程序和客户端程序两部分组成。

服务端程序simpserv.c实现了一个TOUPPER服务,它从客户程序接收一个字符串,将它转换成大写后,传回客户端。

客户端程序simpcl.c首先与TUXEDO应用服务器建立连接,接着调用服务器上的TOUPPER服务,把用户在命令行的输入作为输入参数,调用成功后,从返回缓冲区中取出服务端返回的数据并显示,最后断开与TUXEDO应用系统的连接。

1.服务程序simpserv.c的内容:

#include <stdio.h>
#include "atmi.h"
#ifdef __cplusplus
extern "C"
#endif
void
#if defined(__STDC__) || defined(__cplusplus)
TOUPPER(TPSVCINFO *rqst)
#else
TOUPPER(rqst)
TPSVCINFO *rqst;
#endif
{
      int i;
      for(i = 0; i < rqst->len-1; i++)
      rqst->data[i] = toupper(rqst->data[i]);
      tpreturn(TPSUCCESS, 0, rqst->data, 0L, 0);
}


可能你已经注意到了,该程序没有提供main方法。事实上,Tuxedo不要求程序员编写main方法,以便让他们把精力集中在业务逻辑的编写上,

在编译时,Tuxedo系统会为它自动创建。 

TPSVCINFO是Tuxedo记录服务调用信息的一个结构体,data域是保存请求数据的缓冲区,len域记录了data域的长度。 

2.客户端程序simpcl.c的内容: 

#include <stdio.h>
#include "atmi.h"
#if defined(__STDC__) || defined(__cplusplus)
main(int argc, char *argv[])
#else
main(argc, argv)
int argc;
char *argv[];
#endif
{
      char *sendbuf, *rcvbuf;
      long sendlen, rcvlen;
      int ret;
      if(argc != 2) {
            (void) fprintf(stderr, "Usage: simpcl string\n");
            exit(1);
      }
      if (tpinit((TPINIT *) NULL) == -1) {
            (void) fprintf(stderr, "Tpinit failed\n");
            exit(1);
      }
      sendlen = strlen(argv[1]);
      if((sendbuf = (char *) tpalloc("STRING", NULL, sendlen+1)) == NULL) {
            (void) fprintf(stderr,"Error allocating send buffer\n");
            tpterm();
            exit(1);
      }
      if((rcvbuf = (char *) tpalloc("STRING", NULL, sendlen+1)) == NULL) {
            (void) fprintf(stderr,"Error allocating receive buffer\n");
            tpfree(sendbuf);
            tpterm();
            exit(1);
      }
      (void) strcpy(sendbuf, argv[1]);
      ret = tpcall("TOUPPER", (char *)sendbuf, 0, (char **)&rcvbuf, &rcvlen, (long)0);
      if(ret == -1) {
            (void) fprintf(stderr, "Can't send request to service TOUPPER\n");
            (void) fprintf(stderr, "Tperrno = %d\n", tperrno);
            tpfree(sendbuf);
            tpfree(rcvbuf);
            tpterm();
            exit(1);
      }
      (void) fprintf(stdout, "Returned string is: %s\n", rcvbuf);
      tpfree(sendbuf);
      tpfree(rcvbuf);
      tpterm();
      return(0);
}


3.设置环境变量

    TUXEDO系统在编译服务端或客户端程序时需要用到一些环境变量。 可建立一个setenv文件,内容为:

. /usr/users/tuxedo/tux.env
APPDIR=/usr/users/tuxedo/apps/simpapp;export APPDIR
TUXCONFIG=$APPDIR/tuxconfig;export TUXCONFIG
WSNADDR=//192.168.1.100:9999; export WSNADDR


3. 用. ./setenv设置环境变量。

4.配置文件

除了客户和服务程序以外,Tuxedo还需要一个配置文件来对应用进行描述一个TUXEDO应用系统所包含的所有资源。下面修改过的UNIX平台下simpapp的配置文件ubbsimple的内容

*RESOURCES
IPCKEY 123496
DOMAINID simpapp
MASTER simple
MAXACCESSERS 150
MAXSERVERS 100
MAXSERVICES 200
MODEL SHM
LDBAL N
*MACHINES
myserver        LMID=simple
APPDIR="/usr/users/tuxedo/apps/simpapp"
TUXCONFIG="/usr/users/tuxedo/apps/tuxconfig"
TUXDIR="/usr/users/tuxedo"
MAXWSCLIENTS=10
*GROUPS
GROUP1
LMID=simple GRPNO=1 OPENINFO=NONE
*SERVERS
DEFAULT:
CLOPT="-A"
simpserv SRVGRP=GROUP1 SRVID=1
WSL             SRVGRP=GROUP1 SRVID=5
CLOPT="-A -- -n //192.168.1.100:9999 -m2 -M6 -x10"
*SERVICES
TOUPPER


说明:

TUXDIR指的是Tuxedo的安装路径。

APPDIR指的是simpapp应用程序所在的目录。

TUXCONFIG指的是simpapp的二进制配置文件,一般为%APPDIR%\tuxconfig。 

这些配置要与相应的环境变量的值一样。

5.编译与执行

1.生成二进制配置文件 

tmloadcf -y ubbsimple


2.编译客户端程序 

buildclient -o simpcl.exe -f simpcl.c


3.编译服务端程序 

buildserver -o simpserv.exe -f simpserv.c -s TOUPPER


4.启动TUXEDO应用系统 

tmboot -y


5.运行客户端程序 

simpcl "hello, world" 看是否正确转换为"HELLO, WORLD"

6.关闭TUXEDO应用系统

tmshutdown –y




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论