tuxedo教学教育培训教育资料.doc

上传人:一*** 文档编号:809608 上传时间:2019-07-16 格式:DOC 页数:88 大小:4.77MB
返回 下载 相关 举报
tuxedo教学教育培训教育资料.doc_第1页
第1页 / 共88页
tuxedo教学教育培训教育资料.doc_第2页
第2页 / 共88页
点击查看更多>>
资源描述

《tuxedo教学教育培训教育资料.doc》由会员分享,可在线阅读,更多相关《tuxedo教学教育培训教育资料.doc(88页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、BEA TUXEDO简易培训教程简易培训教程简易培训教程编写、整理 :文栈良2003-1-21第一章第一章 认识认识 tuxedotuxedo1.11.1 TUXEDOTUXEDO 是什么?是什么?BEA TUXEDO 是在企业、Internet 这样的分布式运算环境中开发和管理三层结构的客 户/服务器型关键任务应用系统的强有力工具。它具备分布式事务处理和应用通信功能,并提供完善的各种服务来建立、运行和管理关键任务应用系统。开发人员能够用它建立跨多个硬件平台、数据库和操作系统的可互操作的应用系统。 BEA TUXEDO 是企业、 Internet 分布式应用中的基础主干平台。它提供了一个开放的

2、环境,支持各种各样的客 户、数据库、网络、遗留系统和通讯方式。BEA TUXEDO 使分布式关键任务应用系统具有大型主机的性能,从而使这些应用系 统能够应付数以千计的用户,大交易吞吐量,多并行数据库存取和大量数据,同时保持较短的反应时间,较高数据完整性和安全性,并且确保全年天,每周天,每天小时的系统可用性。同时,BEA TUXEDO 还能让开发人员和系统管理人员享用分布式运 算环境提供的好处,如技术成本的低增长率,灵活性提高,快速应用开发和安装以及业务信息存 取得以改善。1.2 BEA TUXEDO 的组件软件模型的组件软件模型关键业务应用通常是面向事务的,要求具有准确的数据完整性、较好的性能

3、和管理需求。这些需求要求对应用的开发、调度和操作给出一个结构化的方案。由像 BEATUXEDO 这样的中间件支持的组件软件模型为分布式环境处理关键性业务应用提供了一 个结构化的 解决方案。BEA TUXEDO 和基于组件的应用设计从异构的计算资源中创建了一个虚拟主 机: 在分布 式应用系统级提供可管理的相互关联的资源。许多组织在进行了一段时间的分布式应用工作后,现在已经认识到组件软件模型是他们的必然选择。分布式应用的直接动力是主机应用和集中式中规模的应用系统基础上又逐渐配备有大量的台式系统和服务器系统,这些分布式系统在标准网络传送协议的支持下,呈松散耦合的态势,事实上它们构成了网络计算资源的基

4、础。在开始的时候,分布式系统主要服务于把集中式系统的前台应用迁移到网络环境-主要用台式处理器和文件 服务器 实现文档处理和电子邮件通讯应用系统。接着,两层的客户/服务器数据库应用在部门级被采用,这类应用把交互式文件共享进化到并发数据元素访问,在数据级支持更细粒度的管理。虽然这些客户/服务器应用具体化了真正分布式应用处理的概念,它们仍留有为某一目标定制的特性,规模和管理能力都有限。更重要的,这些应用只停留在较细粒度的数据访问上,使得整个应用系统宛如磐石,不能有效地利用网络资源。面对更大规模的关键业务应用,如要进行有效的分布式处理,就要求从客户/数据库方案转变到三层 客户/应用系统/数据服务器结构

5、。以后者为核心的组件软件 模型是客户/服务 器计算的拓展,它支持应用分区,能有效地开发和调度应用业务逻辑,管理分布式应用的可靠执行。BEA TUXEDO 采用三层结构的组件软件模型。图 1 表示 BEA TUXEDO 的组件软件模型的概要。该结构分为三层:图 1 BEA TUXEDO 的组件软件模型概要1.31.3 TUXEDOTUXEDO 的特点的特点1.3.11.3.11.3.11.3.1减轻开发人员负担减轻开发人员负担减轻开发人员负担减轻开发人员负担BEA TUXEDO 的三层结构组件软件模型将用户界面的表示部分和业务逻辑部分按客户 组件服务器组件分开,使开发人员能够按组件的思想专注入于

6、业务逻辑的开发,用户界面部分可用流行的前端开发工具来快速完成。而客户和服务器之间、服务器和服务器之间的通讯,异构平台之间的数据变换,以及服务器和数据库之间的集成和事务控制都由 BEA TUXEDO 来完成。当数据库或服务器端的业务逻辑改变时,客户端则不一定要改变;反 之当客户改变或增加新的客户界面时,服务器端则不一定要改变,大大增加了应用系统的各部分的可复用性。BEA TUXEDO 提供的简洁 API 使用户程序能够物理地点透明地在客户 和服务器之间、 服务器和服务器之间进行各种方式的通讯,极大地减轻开发人员的负担。BEA TUXEDO 提供的通讯方式有同步 RPC 调用,异步 RPC 调用,

7、对话通信方式,广播 通讯方式,异步存储转发队列通讯,事件通讯方式等。1.3.21.3.21.3.2使系统的安装与升级更容易使系统的安装与升级更容易使系统的安装与升级更容易使系统的安装与升级更容易在 BEA TUXEDO 的三层结构组件软件模型下开发的应用程序以服务器组件和客户组件 为安装、升级的单位,当一个组件需要更新时,管理人员甚至能够在运行系统不停机的情况下完成系统的升级,这在客户端为数以千计的关键任务应用中尤为重要。1.3.31.3.31.3.31.3.3减轻系统管理人员负担减轻系统管理人员负担减轻系统管理人员负担减轻系统管理人员负担BEA TUXEDO 系统提供从一个中心点对整个分布式

8、系统进行全局监控及管理的能力, 管理员根据一个整体系统视图(而不仅是单个节点或单元)提供的信息,可以作出决定和采取动作。BEA TUXEDO 不但提供了一些管理命令,而且提供了一个集成的图形界面管 理工具,集中地 监视和管理应用系统的运行,并且可动态地修改系统配置。通过 Java 的 applets,还可利用 Internet 的浏览器比如 Netscape或 Microsoft 的 Explorer 来运行该图形界面管 理工具。此外,BEA TUXEDO还提供了描述系统中各对象的管理信息数据库(MIBS)和存取 管理这些管理信息数据库的管理API,用户可利用这些管理API,编写自己特有的管理

9、工 具。 1.3.41.3.41.3.41.3.4非常高的性能非常高的性能非常高的性能非常高的性能一方面,BEA TUXEDO 能够使多个客户连接到一个服务器进程, 由这个服务器进程 存取数据库,为客户的请求服务。这样, 数据库为处理连接所需的资源大大减少。 另一 方面, 客户和服务器之间,服务器和服务器之间的通讯中,网络上流动的只有相对较少 的客户或服务器的请求和服务器处理的结果,而不再是两层结构中客户和 DBMS 之间的大 量 SQL 请求和应答。此外,利用 BEA TUXEDO特有的一 些机制也能极大提 高应用系统的 性能。比如利用异步RPC 机制实现扇出并行,利用转发机制实现流水线并行

10、,利用多服务器单队列实现多处理并行等。所有这些因素使 BEA TUXEDO 的应用系统具有极高的性能 。世界上大部分硬件服务器的 TPC 性能指标都是在 BEA TUXEDO 上完成的。1.3.51.3.51.3.5更高的可用性更高的可用性更高的可用性更高的可用性BEA TUXEDO随时知道它控制下的资源的情况,并利用这些信息为应用提供最大可 用性。分布式系统使资源故障的影响复杂化。在一个分布式系统中,多个节点代表更多的潜在故障点的可能,但也可以代表在资源恢复开始时在其他节点上重新分配工作的更大潜力。BEA TUXEDO在这种分布式系统故障恢复上具有优势。TUXEDO将重启应用进程, 并且 能

11、在硬件故障情况下在其它结点上重新运行进程。1.3.61.3.61.3.61.3.6分布式环境中更高水平的数据完整性分布式环境中更高水平的数据完整性分布式环境中更高水平的数据完整性分布式环境中更高水平的数据完整性BEA TUXEDO设计了数据资源的绝对完整性。目前出现的客户/服务器应用中,重要 数据资源很可能是广泛的,而且受异构系统的控制。应用可以设计成用严格的保证数据一致性的两阶段提交,或者用更多的缓冲存储和转发技术来管理异构的(或者同构的)数据库的更新。在各种情况下,BEA TUXEDO能够确保异 构的 (或者同构的) 数据库以 及 它资源管理器之间的完整性。1.3.71.3.71.3.7、

12、系统的安全性、系统的安全性、系统的安全性、系统的安全性BEA TUXEDO 通过结构化用户界面支持应用服务的验证、授权和存取控制,允许用 户加入自己的验证服务模块。BEA TUXEDO还提供信息加密服务,允许对网络上传输的 信息按 RSA 的 RC4 算法加密。目前美国本土内可按 128 位,本土外可按 40 位加密。1.3.81.3.81.3.8、开放系统中最开放的中间件平台、开放系统中最开放的中间件平台、开放系统中最开放的中间件平台BEA TUXEDO是一个非常开放的平台,支持三十多种服务器平台,包括大多数的 UNIX服务器 ,WindowsNT 服务器,IBM的S/370,S/390,

13、加上AS/400和 Tandem公司的 NonStop系统。它的客户支持几乎所有的工作站,包括 UNIX,MS-DOS,Windows3.1/95, Windows NT, OS/2,Macintosh等。 BEA TUXEDO支持X/Open组织 的分布式 事务 处 理 模型DTP,事务定界标准TX, 应用程序事务处理接口标准XA TMI以及 和资源 管理 器 (像数据库系统)的接口标准XA,并且还支持事务处理器之间的互操作标准OSI-TP。 BEA TUXEDO的客户端通过DLL 可以和Visual C+、Visual Basic、 Power Builder、 SQL Windows、D

14、elphi、Develop/2000 以及其他4GL和CASE 工具互连。此外,BEA TUXEDO还得到其他第三方开发管理工具厂商的支持。 1.3.91.3.91.3.91.3.9、系统的伸缩性、系统的伸缩性、系统的伸缩性、系统的伸缩性简单地说,软件可伸缩性就是可以很容易地增加被支持的用户数和应用的全局吞吐量。 一个可伸缩的软件系统是利用网络分布系统优势的关键。BEA TUXEDO提供的就是 这样一个系统,它可以利用在一个网络上所能找到的所有的异构的资源以获得最大的效益。 BEA TUXEDO提供这一点,而且提供许多可伸缩性选项。 垂直方向的可伸缩性代表的 含义与通常相同,即将系统转变(升级

15、)为一个更大,更有力的相同或不同结构的平台。水平方向的可伸缩性多是在分布式系统结构中,它以增加适当规模的附加系统来增强网络应用。所增加的附加系统与原有系统可能是同构的,也可是异构的(那就是不同的处理机或操作系统) 。BEA TUXEDO 支持二维的可伸缩性。二维可伸缩性可在结构上的任意位置添加异质 资源,而不改变已存在的应用的结构。允许对一个复杂的混合结构的支持,为联机网络系统提供了广泛的规模选择范围。任何与数据表示有关的(如不同的处理器表示)可以由 BEA TUXEDO 透明地解决。BEA TUXEDO 还可根据系统负荷的变化动态地增加或减少应用服务器的个数。1.3.101.3.101.3.

16、101.3.10、广泛的开发工具支持、广泛的开发工具支持、广泛的开发工具支持、广泛的开发工具支持除了像 C,C+和 COBOL 这样的第三代语言编程环境,BEA TUXEDO 系统享受最广泛的第三方工具的支持,下面是开发 BEA TUXEDO 应用目前可用工具的一个列表。表 1 TUXEDO 允许的开发工具选择公司 开发工具 客户端 服务器端Ally Ally 4GL*Informix IFORMIX 5.0 (XA) Informix TP Toolkit* ITI TP Tools* OracleORACLE 7.0(XA)Develop /2000 GuptaSQL WindowsNov

17、ell VisualAppbuilderNovell USL WKSHUnify Accell 4GL* Jyacc JAM/JPL* TI IEF CASE* Magna Magna X* PowersoftPowerBuilder*Delphi DelphiMicrosoft Visual BasicVisual C+此外 BEA TUXEDO 的关联产品 BEA CONNECT 允许 BEA TUXEDO 和 IBM 的 CICS、 IMS、 Unisys 的 System2000 进行互操作,BEA Jolt 支持从 Internet 浏览器上请求 BEA TUXEDO 的服务。BEA

18、 Builder 和 BEA Manager 将 BEA TUXEDO 应用的开发与管理更为 简化。1.4BEA TUXEDO 的组成与功能的组成与功能BEA TUXEDO 应用程序既可服务于带有少量客户和服务的单个服务器系统,又可服务 于由成千客户、成百服务器和众多服务器组件和服务构成的大规模的分布式环境。一个这样的应用程序是以业务逻辑服务、由这些逻辑服务组织成的高层服务器组件和在服务器结点环境中的组件分布为特征的。支持这种虚拟主机环境的 BEA TUXEDO 元素包括配置信 息库和实现运行时应用管理的核心子系统。1 1配置信息库配置信息库BEA TUXEDO 应用程序由配置文件指定,这些配

19、置文件被转换成若干紧耦合的运行时共享信息库。这些共享库(在 BEA TUXEDO 中称公告牌,Bulletin Board)驻留在每个参与 应用的服务器结点上。BEA TUXEDO 子系统访问和操作这些库。(1) 应用程序配置一个 BEA TUXEDO 应用程序包括在一个高度分布的环境中运行该应用所需的资源。开 发人员 编写服务的代码,应用管理员通过构造定义操作参数和资源分配的配置文件创建 应用程序。配置信息驻留在一个可编程访问的管理信息库(MIB)中。MIB 最少包括下列配置信息: 系统范围的资源,包括有关全局应用属性(如安全性级别) 、是否进行负载平衡、启动一个应用系统所需的资源定义和故障

20、恢复时所需的资源定义。 参与应用的每个服务器机器的定义和驻留在这些机器上的 BEA TUXEDO 文件的规格说明。 单个服务器可与其他组成员共享的资源组,如事务管理;组也定义了服务器和所操作的资源管理器之间的映射。 服务应用程序所需的映射成进程的服务器,在这些服务器进程中实现了应用业务逻辑。一个 BEA TUXEDO 配置允许一个管理服务器或者从分布在一台/多台机器的一个/多 个组中配置多个服务器。 应用服务器进程定义的服务;服务级的属性包括负载因子、服务处理时间的相对量、该服务相对于服务器中提供的其他服务的优先级。头三个配置属性定义了应用的处理元素(如处理结点) 、全局属性和某一主资源的特殊

21、指定。组、服务器和服务集中在 BEA TUXEDO软件组 件模型的分 布式应用 资源上: BEA TUXEDO 应用程序定义了提供所需服务的服务器组件分组;可配置的服务器实例数 量能在多个机器上调整;而且,BEA TUXEDO 能管理广播的单个服务和它们的相对优先级。(2) 公告牌BEA TUXEDO 应用配置文件被映射到一个运行时数据结构:公告牌(BB) 。BB 作为 一个从配置文件中派生出来的共享信息库。BB驻留在每个参与到由配置文件指定的应用程序的 BEA TUXEDO 的服务器结点上。BB 作为分布式应用的名字服务数据库。它作为应 用统计数 据的运行时仓库,提供分布式环境下的应用对象的

22、位置信息。BB 由 BEA TUXEDO 核心例程(对应用开发者透明)访问,由核心例程读/修改 BB 库。这个信息库提供 BEA TUXEDO 完成动态客户/服务器映射所需的信息,同时也提供完成诸如负载平衡、 安全性和事务协调等功能的信息。2 2事务管理器事务管理器事务管理器是 BEA TUXEDO 体系结构的中心,它是每个 BEA TUXEDO 服务器的核心 ,提供重要的分布式应用服务、命名、 消息路由、 负载平衡、配置管理、事务管理和安 全性。它也包含 BB 结构,使用维护和访问 BB 信息的服务。换句话说,BB 内包含有可靠执行和管理大规模的基于组件的应用程序所需的所有信息,它将对事务管

23、理器进程起作用。事务管理器的基本操作见下图的图示。事实上,事务管理器是负责客户/服务器绑定和支持 BEA TUXEDO 虚拟主机属性等特色的子系统。图 4 来自网上的客户请的客户代理进程,服务器通过注册参加到该应用中。作为客户方通讯的一部分,事务管理器访问 BB,然后选择服务器,接着,服务器消息队列的地址被返回,客户方的请求被马上传送到合适的队列等待服务为它进行处理。1 1)名字服务)名字服务/ /位置透明性位置透明性BB 作为 BEA TUXEDO 应用程序的名字服务器,复制到每个参与的结点上。为了便于快速访问,名字服务器作为在共享内存中的一个结构存在。事务管理器使用 BB 名字信息 、 配

24、置信息和环境统计信息自动把服务请求平衡到可用的服务器上,并且根据数据内容为 客户请求选择路由,为服务请求选择优先级。编程员把应用程序编成对逻辑入口项(称有名服务)的函数调用。事务管理器把这些逻辑请求映射到服务器结点/服务器进程环境内指定的服务实例。2 2)数据依赖型路由)数据依赖型路由数据依赖型路由是根据数据缓冲区中一个指定域的值,把一个服务请求映射到一个指定的服务器组的机制。因为 BEA TUXEDO 服务器组映射成指定的资源管理 器/数据 库实 例,所以请求被导向到一个指定服务/资源管理器的组合。例如,一个银行的数据库可把存储在不同数据库实例中的不同范围的帐号进行水平分区。用户可用事务管理

25、器进行路由选择,而不用把特定分区信息编码成访问帐号的应用代码。事实上,事务管理器查看指定的数据值,参考存储在 BB中的路由信息,然后把请求发送到能在正确数据分区上操作的服务。如果用户需要改变数据库分区(把一个分区移到一个新服务器上,或在已有分区实例上改变帐号分布) ,那么,他只需改变事务管理器的路由信息,应用程序的代码不受影响。图 5 数据依赖 型路 由:帐号操作的请求与数据分区是独立的,事务管理器访问BB 路由表信息,把请求映射到访问相应分区的服务器组,然后返回该组指定服务的绑定。3 3)负载平衡)负载平衡为了确保应用流量最大,事务管理器自动地在系统中完成负载平衡和调度。通过使用每个服务的负

26、载因子,事务管理器把请求发送给能最快处理该请求的服务器。事务管理器通过为当前排队的请求总计负载因子来决定给定服务器上的负载。下图给出了事物管理器负载平衡能力如何帮助优化应用流量的一个例子。图 6 负载平衡: 服务 A,B,C 由不同的服务器提供,每个服务器有一个基于当前排队请求的负载值。事务管理器决定哪一个服务器提供服务,哪一个服务是负载最小。事务管理器将在一个给定结点内或在提供服务的若干结点上,进行负载平衡。4 4)优先权)优先权请求优先权是事务管理器提供的另一个核心能力。某一服务请求经常需要比其他服务更高的优先权。例如,航空公司取消订座的优先级要比订座的优先级高:对大多数航空公司来说,要尽

27、可能地再次买出被取消的座位。优先权在服务队列级有用,参见下图的图示。图 7 优先权:右例 中,服务 器 1 提供服务A,B,C。A,B 服务的优先级是 50,C 的优先级是 70。在上一个请求完成时,服务器在队列中选择下一个请求。下一个请求是由优先级决定的,而不是根据请求在队列中的位置。为了防止低优先级请求总是得不到服务,每隔十个请求,就按 FIFO 次序进行一次请求选择。5 5)稳固的运行环境)稳固的运行环境事务管理器包括许多支持应用可用性的特征,如进程可用性检查、超时检查、自动服务器重启和恢复过程、用户可定义的恢复过程。事务管理器不仅仅控制应用程序的活动流而且能确保其流畅有效的操作。6 6

28、)安全性)安全性事务管理器通过一个结构化的安全性接口提供应用服务的验证、授权和访问控制。该接口概括了 Kerberos 安全模型,允许Kerberos 或类似的最终用户验证机制与应用集成。用户能用访问控制列表保护服务、队列或事件免遭未授权的访问。7 7)分布式事务处理)分布式事务处理分布式事务处理(DTP)能力能保证跨几个场地访问的数据和由不同数据库产品管理的数据的完整性。事务管理器协调分布式事务使之完成网络环境下针对异构数据库的多场地修改。事务管理器用全局事务跟踪事务参与者,管理两阶段提交协议。这样就可确保每个场地都能正确处理事务的提交和回退。事务管理器还在出现场地故障、网络故障或全局资源死

29、锁时协调全局事务的恢复。事务管理器使用开放小组的 X/Open XA 接口,进行不同 资源管理器之间的通讯。该接口已被 X/Open 接纳为分布式事务控制的标准接口。因为高性能和事务流量对 OLTP 系统产品是关键因素,所以事务管理器 DTP 软件使用了最小化磁盘写的算法。在其他属性中,事务管理器 DTP 开发了一些众所周知的技术如协调者迁移、只读和一阶段提交优化。事务管理器由几个关键子系统支持,这些子系统扩展了 BEA TUXEDO 客户/服务器功 能和与异构应用系统的互操作性。下面的几个段落将描述这些关键子系统:管理管理BEA TUXEDO 对分布式应用管理的关键性问题给出了一个结构化的解

30、决方案。BEA TUXEDO 的管理接口包括一个综合性的命令行/脚本接口,一个编程接口和一个管理信息库(MIB) ,它们把 BEA TUXEDO 实现成一个更大管理环境中的受控应用程序。一 个易用的基于 GUI 的管理应用程序可利用这些管理接口,在 BEA TUXEDO 环境上提供 了高层控制。BEA TUXEDO 资源,从 高层的域属性向下贯穿 一个单服务器进程的特 性,支 持图形化表示和拖放功能。集中式的应用定义集中式的应用定义事务管理器使得应用管理员可在一个文件中定义组成 BEA TUXEDO应用程序的硬件、 软件和网络资源。应用设计者能叙述在何处运行服务器和服务以及在处理器出故障时服务

31、应该迁移到何处。他们可把各种不同的特性,包括调度信息、进程恢复标准和超时时间段等,赋给应用服务器。事务管理器为动态启动、停止或管理一个分布式应用程序提供中央配置管理和工具。动态重配置动态重配置用户可动态启动或停止服务;用户可选择可用的服务。用户可在一个配置中增加新的机器、组、服务器和服务。另外,事务管理器可用不同的参数如超时故障等,使得一个无法使用的处理器上的服务器和服务在不中断运行程序的条件下移向另一个处理器上。第二章第二章 开发与应用开发与应用2.12.1 开发开发 BEABEA TuxedoTuxedo 应用程序应用程序在开发 BEA Tuxedo 应用程序之前,你需要先搞清楚一系列和设

32、计开发相关的概念,如识别什么是客户机,有哪些方法可以从外界收集数据并提交服务器进行业务处理;识别什么是服务器,哪些程序包容了可以处理客户机输入的商业逻辑;识别什么是类型缓冲区,客户程序在向其这程序发送数据前如何分配内存区域;什么是 BEA Tuxedo 的消息范例等。最后你还要弄明白客户程序是通过调用 ATMI 库来访问 BEA Tuxedo 系统的。创建 BEA Tuxedo 的客户程序与在 C 和 C+编程语言中创建其它应用程序一样,BEA Tuxedo 提供了一个其于 C 语言的编程接口,即应用程序事务监控接口 ATMI,这套接口很容易使用,以便用于开发客户程序和服务程序。除了 C 语言

33、接口外,BEA Tuxedo 还提供了COBOL 接口。2.1.12.1.12.1.12.1.1 创建服务程序创建服务程序创建服务程序创建服务程序2.1.1.12.1.1.1 概述概述尽管开发者使用ATMI编程接口来创建BEA Tuxedo客户程序和服务程序,但服务程序不全部由开发者来编写,开发者只需写一些称为服务的商业函数,封装业务逻辑,然后和BEA Tuxedo的一些二进制程序联编成一个可执行的服务程序。BEA Tuxedo服务程序启动后,它总是保持运行状态,只到接收到一个shutdown消息为止。一个典型的BEA Tuxedo服务程序在shutdown或reboot之前都在执行着数千个服

34、务。2.1.1.22.1.1.2 服务的运行流程服务的运行流程为了更好的了解服务端的所有任务以编写服务端应用,有必要重新认识服务端在C/S 模式中扮演的角色。首先,服务是系统资源的联系点。例如,一个数据库服务联系实际数据库并对其进行查询和修改。为有效进行,应建立一个数据库连接。其次,服务必须发布系统内可以访问的交易,保证客户端可以知道把请求发往何处。以上两步结束后,服务进入一个循环 接收请求、处理请求并返回结果。接收请求包括进入消息队列,得到交易请求。处理请求包括检查请求数据缓冲,运行商业规则和逻辑,可能还包括访问数据库和返回结果数据缓冲。当系统管理员需要关闭系统,可以通过系统管理工具将关闭系

35、统的消息发给服务。服务完成所有交易,取消交易发布,关闭资源连接然后结束。2.1.1.32.1.1.3 服务程序的任务服务程序的任务(1)在 BEA Tuxedo 服务程序启动时,执行 tpsvrinit()函数,可以在里面打开一些如数据库之类的资源供以后使用;(2)在 BEA Tuxedo 服务程序关闭时,执行 tpsvrdown()函数,可以在里面关闭 tpsvrinit()中打开的资料;(3)BEA Tuxedo 服务程序以服务的形式来响应客户程序的请求,客户程序不是通过名字来调用服务程序的,而是调用服务,客户程序不知道处理它请求的服务程序的位置;(4)服务程序调用 tpreturn()函

36、数来结束服务请求,并返回一个缓冲区,必要时,将它传给客户程序;注:如果是在tpsvrinit()中连接数据库,为了保证数据库的正常连接,在执行服务的时候,最好能够判断数据库是否断开连接,如果断开连接,则重新连接数据库。这样可以从根本上保证系统能够持续稳定的长期运行,基本上不需要人工干预。也就不再会出现“数据库重启了,中间件必须重启”的情况。2.1.1.42.1.1.4 返回控制返回控制在一般的C 程序中,函数通过调用return()将控制返回,函数调用堆栈清空,控制返回调用点。 TUXEDO 系统的交易函数必须结束于将回应返回给客户端或前转到另一交易。函数tpreturn()用来结束交易将回应

37、数据缓冲发给客户端。函数tpforward()将交易前转给另一个交易,由其负责回应原来的客户端。下图是tpreturn()的示意图。tpcall();交易函数体 tpreturn();客户端过程服务端过程tpreturn(TPSUCCESS,0,t-data,0,0);tpreturn()设计来代替常规的return(),结束绝大多数函数。它将回应数据缓冲返回请求的客户端,控制权返回给服务程序的标准 main()(由TUXEDO 提供)。tpreturn()使用下列参数:第一个值表示交易是否成功,有3 种可能: TPSUCCESS交易完全成功,如果是一个会话,TPEV_SVCSUCC 被生成

38、TPFAIL交易失败,tperrno 将被设成TPESVCFAIL。如果是事务模式,事务被标志成abort-only,如果是会话,TPEV_SVCFAIL 被生成。 TPEXIT与 TPFAIL 类似,但服务会中断,如果服务设成可以重启动,则可以由TUXEDO 系统将其重启动。第二个值是应用定义返回码,此处使交易可以发送一个整形代码到客户端,给出交易处理结果的详细信息。该值与 /T 系统无关,通过全程变量tpurcode 送到客户端程序。第三个值是回应数据缓冲的的指针第四个值是回应数据缓冲的长度(仅缓冲类型为CARRY 时需要)第五个值是标志位,通常不用2.1.1.52.1.1.5 初始化和结

39、束服务初始化和结束服务tpsvrinit()和 tpsvrdone()分别用来启动和关闭服务。如果应用不提供这两个函数,可以使用替代函数。 tpsvrinit()用 tpopen()缺省打开RM 连接。tpsvrdone()用 tpclose()关闭RM 连接。tpsrvinit()象标准C 语言的main()一样使用参数argc,argv。服务的命令行参数可以传入该函数,被getopt()解析。该部分的用法参见应用配置部分。本函数出错时返回 -1,成功返回0。tpsvrdone()无参数,无返回值。2.1.1.62.1.1.6 创建创建( (编译编译) )服务服务当 C 语言的交易程序编码完

40、后,需要连接正确的库并编译。使用buildserver 可以使该过程容易一点。该命令引用了C 语言编译器并按正确的次序连接TUXEDO 系统的库,连接TUXEDO 生成的main()等。buildserver 还用-s 参数产生合适的交易名/函数名映射表。要使用buildserver,必须先正确设定环境变量TUXDIR,PATH,LD_LIBRARY_PATH。命令语法如下:buildserver -v o executable -s service2,service3:func -f source/object -l object/library file例:buildserver s DE

41、POSIT o TLR f TLR.o f appinit.o参参数数解解释释如如下下:-o 生成的可执行文件名-f 需要在连接TUXEDO 库之前传给编译器的文件名。如有多于一个的文件名,名字应用空格分隔并用引号引起。也可以使用多个 -f 参数。-l 需要在连接TUXEDO 库之前传给编译器的文件名。语法同上。-v 编译过程显示。-b 指定SHM 或 MP 模式。如无此项,两种模式都包括;使用此项可以使生成的可执行文件小一点-r 连接此处指出的RM 库。该RM 的名字必须含在$TUXDIR/udataobj/RM 文件中。2.1.1.72.1.1.7 调试和错误处理调试和错误处理对于服务程序

42、的调试,确实是一件非常令人头痛的事.在Unix环境下,目前还找不到很好的方法,一般经常使用的方法是”print,Userlog”跟踪法,但是这种方法太累了.因此,有人想出了在windows环境下跟踪调试,发现没有任何错误后再放到UNIX环境进行编译,并正式使用.目前,我们公司采用的就是这种调试方法,在windows环境下(C+ Builder)编写一个tuxedo模拟测试服务程序,使其能正确的识别客户端调用的服务,并正确的调用相应的服务.2.1.1.82.1.1.8 程序范例程序范例(1)源代码文件名: simpserv.c#include #include #include /* TUXED

43、O Header File */ #include /* TUXEDO Header File */* 当服务器启动时,在处理请求之前,tpsvrinit 被执行,这 个不是必须的,对应的函数是 shutdown*/#if defined(_STDC_) | defined(_cplusplus) tpsvrinit(int argc, char *argv) #else tpsvrinit(argc, argv) int argc; char *argv; #endif /* 当 argc, argv 没有被使用时,一些系统会发了警告 */ argc = argc; argv = argv;

44、/* userlog 用于将 TUXEDO 消息写到日志文件中 */ userlog(“Welcome to the simple server“); return(0); /* TOUPPER 真正处理客户请求,它接收的参数是一个缓 冲区指针 */ #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 le

45、n-1; i+) rqst-datai = toupper(rqst-datai); /* 返回转换后的类型缓冲区 */ tpreturn(TPSUCCESS, 0, rqst-data, 0L, 0); (2) 程序说明语句说明whole file整个服务程序不提供 main 函数,在 build 时,由BEA Tuxedo 系统提供。tpsvrinit()在服务器初始化即处理请求之前被调用。若没有提供该函数,BEA Tuxedo 系统会提供一个缺省的,它向 USERLOG 中写一条消息,说明服务器已经被启动。userlog(3c)是系统提供的一个写日志的方法。TOUPPER()simpse

46、rv 提供的唯一一个服务,它接收一个TPSVCINFO 结构,它包含了要被转换成大写的字符串。for loopBEA Tuxedo 系统的循环,用于逐一转换。tpreturn()(3)程序编译:$buildserver o simpserv f simpserv.c s TOUPPER(s TOUPPER 指明了在服务器启动时需要提供的服务)2.1.22.1.22.1.22.1.2 创建客户程序创建客户程序创建客户程序创建客户程序2.1.2.12.1.2.1 概述概述创建 BEA Tuxedo 的客户程序与在 C 和 C+编程语言中创建其它应用程序一样,BEA Tuxedo 提供了一个其于 C

47、 语言的编程接口,即应用程序事务监控接口 ATMI,这套接口很容易使用,以便用于开发客户程序和服务程序。除了 C 语言接口外,BEA Tuxedo 还提供了COBOL 接口。2.1.2.22.1.2.2 客户端在客户端在C/SC/S模式中的作用模式中的作用为了更好的了解客户端的所有任务以编写客户端应用,有必要重新认识客户端在C/S 模式中扮演的角色。首先,客户端是用户界面。意思是当用户在系统上用程序进行一次操作的整个过程就是一个客户端过程。前端过程是对客户端的另一个描述。客户端的首要任务就是获得执行操作应该得到的数据。一旦客户端得到了应有的信息,应该将数据按服务能够识别并适合传输的格式打包。然

48、后,向服务端发送请求并等待回应。收到回应数据后,将其按一定格式返回给终端用户。2.1.2.32.1.2.3 客户端开发过程客户端开发过程客户端程序的设计和实现可以被分成2部分考虑:用户处理过程和TUXEDO功能部分。下文的客户端程序只描述了TUXEDO功能部分。利用TUXEDO的ATMI API调用可以做到:基本的TUXEDO调试技巧(tperrno,tpstrerror,userlog)TUXEDO进程管理(tpinit,tpterm)基本数据缓冲管理(tpalloc,tprealloc,tpfree)基本通讯(tpcall,tpacall,tpgetrply)客户程序一般执行如下任务:(1

49、)用 tpchkauth()决定加入一个应用程序所需的安全级别。可能出现的响应包括:没有安全级别,应用程序口令,应用程序授权,访问控制列表,连接级加密,公钥加密,审计。这些可以根据你的需求进行选择;在实际的应用中很多的软件开发商通常对这一步都不做处理。(2)调用 tpinit()来连接到一个 BEA Tuxedo 应用程序,所需的安全信息作为 tpinit()的参数传给了应用程序;(3)执行服务请求;(4)调用 tpterm()来断开和 BEA Tuxedo 应用程序的连接main()tpinit();连接应用p=tpalloc();分配数据缓冲tpcall(“TOUPPER“,p,0,发送请

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com