`
sunxboy
  • 浏览: 2870341 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

基于TUXEDO的数据综合服务平台实现

阅读更多
基于TUXEDO的数据综合服务平台实现
2007年07月09日 星期一 下午 03:36
摘   要 本文首先介绍了中间件的基本概念,重点介绍了交易中间件BEA Tuxedo。结合笔者所参与的应用项目实例,对传统C/S模式下实现的系统与三层架构C/S模式下实现的系统进行了性能比较。简单介绍了利用 Tuxedo的开发过程,实现了基于Tuxedo的一个数据综合服务平台,并对该平台的性能进行了评估,突出了中间件Tuxedo在系统开发中的重要作 用。
     关键词   中间件;Tuxedo;数据库

     近年来随着网络的盛行,应用程序的规模不断扩大,程序的维护成本越来越高。同时,计算机的应用范围更为广阔,许多应用程序需在网络环境的异构平台上运行。为了降低应用软件的维护成本,解决分布异构问题,人们提出了中间件(middleware)的概念。

1   中间件与BEA Tuxedo

1.1中间件的基本概念

     所谓的中间件就是一种独立的系统软件或服务程序,它位于客户机(或服务器)操作系统之上,管理计算资源和网络通信 。它支持标准的协议和标准的接口,支持分布计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互 。中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口 定义不变,应用软件几乎不需任何修改,从而减轻了维护的负担。
     中间件所包括的范围十分广泛,针对不同的应用需求涌现出多种各具特色的中间件产品。因此,在不同的角度或不同的层次上,对中间件的分类有所不同。基于目的 和实现机制的不同可将中间件产品分为交易管理型、消息型、CORBA型和容器型四种。交易管理中间件是开发三层结构应用系统的基础支撑平台,它提供一个基 础的框架来建立、运行和管理一个三层C/S模式的应用,在分布式联机事务处理系统中,对业务处理流程、系统资源、应用程序进行有效的管理,从而保证数据一 致性,提高系统效率和可靠性,使应用系统便于扩展,并缩短开发周期 。目前比较成熟的交易中间件产品主要有IBM 公司的CICS和BEA公司的TUXEDO,本文所介绍的系统正是基于BEA TUXEDO来实现的。

1.2   BEA Tuxedo简介

     TUXEDO是在1984年由贝尔实验室开发成功的,1992年易主Novell公司,1996年由BEA公司收购,经过十多年的不断更新和完善, TUXEDO已经发展成为交易中间件领域事实上的标准 。几乎所有硬件和数据库厂商均将TUXEDO 作为进行基准测试时首选的中间件平台,以提高其产品的资源利用率和交易处理性能。
     BEA Tuxedo是基于C写成的,它不仅可以支持Unix平台,也支持Windows-NT/2000、Open-VMS等操作系统。作为交易中间件领域的主 流产品,BEA Tuxedo主要应用在各种并发处理大量业务系统中。目前,BEA Tuxedo广泛应用于银行、金融、电信、交通、零售、制造、医疗、政府等领域,这些用户的共同特点是具有复杂、高端的信息管理系统,应
用环境多种多样且系统用户在地域上分布很广,其应用通常建立在主机或大规模客户机/服务器系统之上,且业务处理量极大。本文所介绍的系统就是基于上述的应用特点,利用BEA TUXEDO实现的数据综合服务平台。

2   用Tuxedo访问数据库系统的实现

     BEA Tuxedo支持ORACLE、SYBASE、INGRES和DB2等UNIX上的大型数据库和NT上的SQL Server,并且还支持C-ISAN文件系统。即可以通过XA协议,也可不用XA协议与数据库进行连接 。本文所介绍系统用到的是Oracle数据库,该系统针对多种信息网关接入,完成海量数据信息的存储与管理,以及多种信息实时处理,通过Tuxedo创建 服务向用户提供对这些数据的各种操作,是一个数据综合服务平台。

2.1   系统的基本架构

     考虑对数据库访问时的功能、性能和安全性等方面的要求,同时考虑使应用软件在不同的硬件平台上,利用不同的网络协议能够平滑地运行,我们在前端客户机和后 端数据库服务器之间加入中间层,即中间件BEA Tuxedo,来实现更好的负载平衡、连接管理和调度(如图1所示)。
该系统中,客户不是直接与数据库服务器建立连接,而是通过中间件BEA Tuxedo建立连接,各种数据库操作也是通过Tuxedo管理进程完成的。

图1 系统基本架构

2.2 与两层架构的比较

     在传统的数据库访问系统中,数据库访问客户端直接与数据库服务器相连,这种模式在用户访问量较小的应用中游刃有余,一旦用户访问量增大,这种模式下构建的 系统将顾此失彼,不仅基本的功能发挥不出来,往往由于数据库服务器端的负担过重将导致整个系统的瘫痪。所以在大用户量访问的数据库应用系统中,我们需要考 虑减轻数据库服务器的负担。如本文所实现的系统,我们在数据库访问客户端与数据库服务器之间加入中间件BEA Tuxedo(如图1所示),使得数据库服务器不必进行通讯和交易管理,而专注于管理数据。在这种情况下,数据库成了一个纯RM(Resource Manager),极大地改善了整个系统的性能。
     在整个系统中,BEA Tuxedo主要发挥如下功能:
     ●在客户端和数据库服务器之间进行通讯和传输
     ●提供良好的系统管理及交易、配置的分布式管理
     ●容错处理,提高系统可靠性
     BEA Tuxedo可以从多个客户端收到数据流,而且可以向多个服务发出请求,并不是在C/S间建立一对一的关系。这种特点保证了大量用户可以同一时间访问数据 库服务器,提高了系统的效率。将BEA Tuxedo应用到系统中来还有一个好处就是屏蔽了客户端的OS差异和异构数据库的底层细节问题。当客户发出对某个数据库的SQL请求时,先通过 Tuxedo搜索当前可用的匹配数据库连接,并将SQL请求转发给对应的数据库服务器,数据库服务器执行SQL语句后,把结果传给Tuxedo,再由 Tuxedo传回给用户。
     这种模式下实现的系统,简化了客户端和数据库服务端的应用开发。对客户端而言,不需要关心与数据库通信的细节问题,只需调用Tuxedo提供的相关接口函 数将要进行的数据库操作发给Tuxedo,然后接收返回的执行结果进行相关解析;对数据库服务器而言,也不需要知道究竟是谁通过什么方式要来操作数据库, 只需专注于执行由Tuxedo转发的SQL语句。
这种三层模式下实现的系统,在用户量较小的时候,具有与传统两层模式系统同等的性能,用户量越大,其优越性越明显。

2.3   系统的实现

2.3.1   Tuxedo的通信方式
     Tuxedo提供七种通信方式,分别是同步/异步调用、嵌套调用、转发调用、会话通信、广播和通告、订阅与发布以及队列通信。本文所介绍的系统采用同步/ 异步调用通信方式,如图2所示。客户程序使用tpcall()调用把一个请求送到服务程序X,然后就失去了控制权。X服务处理完请求后,通过 tpreturn()调用将控制权返回给客户程序。客户程序得到控制权后,接着执行tpcall()以后的流程。

图2同步/异步调用
     其中ATMI(Application Transaction Monitor Interface)是一种简单且容易定义的API接口,它是BEA Tuxedo提供的一个基于C语言的编程接口,以便用于开发客户程序和服务程序。
本文以下所说的客户端和服务端均是指Tuxedo的服务端和客户端,即图2中的Client和Server。
2.3.2 服务程序与客户程序的实现
     在整个系统中,Tuxedo负责交易请求的接收和分发,以及事务完整性控制。涉及到数据的存取,则调用OCI相关函数对数据库进行操作,TUXEDO和数据库之间的协调与配合通过标准的XA接口完成。
     服务端是Tuxedo实现数据访问的关键部分,是连接客户端和数据库服务器的中枢,主要完成如下功能:(1) 监听、探测客户端的连接请求;(2)建立到数据库的连接;(3)负责调度SQL语句的执行,将结果数据返回到客户端。
      服务端与数据库的连接是通过Tuxedo内部机制自动实现的。当Tuxedo系统启动成功后,Tuxedo服务端程序会自动与配置文件中所配置的 Oracle数据库建立连接,该连接会被一直保持和复用,直到Tuxedo系统或Oracle数据库关闭。该机制大大减少了进程与数据库连接的次数和时 间,提高了系统的效率和安全性。
      Tuxedo提供ATMI编程接口供开发者来创建BEA Tuxedo客户程序和服务程序,但服务程序并不全部由开发者来编写,开发者只需写一些称为服务的函数,然后和BEA Tuxedo的一些二进制程序联编成一个可执行的服务程序。当一个Tuxedo服务器启动时,编写的服务端程序也会随之运行,直到接到shutdown消 息。一个Tuxedo服务器在停止以前,可以执行成千上万个服务,这些服务可以被Tuxedo编译成可执行文件并加载到服务器上运行。
      我们的系统涉及对数据库的操作包括查找、统计、插入和删除,对上述几项功能的实现,我们在服务端分别创建了不同的服务函数供客户端调用,客户端和服务器之间遵守预先定义的应用接口标准。
     在客户端,首先通过调用tpinit()与服务端连接,进行交互,完成的功能主要是:(1)客户端认证;(2)连接服务端的公告牌BB,使进一步的 ATMI函数得到信息;(3)使公告牌联络BBL了解BB中已经存在请求。然后通过tpcall()调用相关的服务,依据预先定义的应用接口协议,接收并 解析服务端返回的结果数据,根据实际的应用需要作进一步处理。在我们的系统中,客户端是用VC实现的,以动态连接库的形式提供给高层应用者调用。这样,不 管数据库如何变化,只要Tuxedo客户端提供的接口不变,高层应用不需做任何改动。
2.3.3   Tuxedo的配置文件
     在利用Tuxedo开发应用系统时,必须有描述应用机器和服务信息的配置文件,该文件存在于服务端,其中存放有Tuxedo系统运行的各种参数,包括诸如 与数据库的连接信息,服务端提供的服务信息、客户端调用服务所必须具有的认证信息等。通过命令tmloadcf生成二进制文件TUXCONFIG供 Tuxedo系统运行时获取相关信息。当启动Tuxedo服务时,Tuxedo会从TUXCONFIG中读取相关有用的信息,支持服务的实现。配置文件中 各参数的详细信息可查阅有关Tuxedo的官方文档。

图3 Tuxedo的配置界面
      另外,除了通过命令行生成TUXCONFIG之外,Tuxedo提供了更直观的图形界面配置方式,如图3所示。
     启动图形界面首先需要在服务端的命令行运行下述两条命令来启动与图形界面相关的进程。
>tuxwsvr –l //network address:port –-i
$TUXDIR/ udataobj/ tuxwsvr.ini
>wlisten
     其中port为任一空闲端口,然后可通过http://network address: port/webguitop.html登录到图形界面。
2.3.4  系统性能
     在安全上,Tuxedo提供了五个级别上的安全认证,分别是NONE、APP_PW、USER_AUTH、ACL和MANDATORY_ ACL,用户可根据系统本身的保密要求选用不同的认证方式,而且实现起来也比较简单。另外,与数据库之间的通信安全,Tuxedo的内部机制提供了保证, 只需在服务端的配置文件中进行相关设置即可,不需开发者另费心思。
     在容错性上,TUXEDO随时知道它控制下的资源情况,并利用这些信息为应用提供最大可用性。比如若一台数据库服务器出现故障,TUXEDO可自动地将客 户请求重新镜像到可以完成相同服务的另一台数据库服务器上,使客户感觉不到变化。同时,在我们的系统实现中,配置了两台Tuxedo服务器来管理整个系统 资源,如果其中一台Tuxedo服务器因为某种原因宕机,客户端的服务请求就会被迁移到另外一台Tuxedo服务器上继续执行,这种迁移对高层的应用是完 全透明的。以这种方式实现的系统,其容错性大幅增强。比如一台服务器宕机的概率是0.1,采用双机之后,系统宕掉的概率就减小为0.01,系统的高可靠性 得以保证。采用双机还有一个好处就是允许更多的用户同时调用服务。
      在负载均衡上,传统两层模式实现的系统中,负载均衡往往是由数据库服务器或客户端分出一部分精力来承担的,实际效果差强人意。但三层模式实现的系统中,中 间件的主要任务是监控并管理系统,所以在负载均衡方面有能力做的更好。TUXEDO的事务管理器自动地在系统中完成动态负载平衡调度。管理者给每个服务和 服务请求赋予一个负载因子,依据负载因子累加产生每个服务器的负载总量,TUXEDO在BB中保持对每个服务负载总量的跟踪,当所有服务都忙的时候, BEA Tuxedo能够选择负载最轻的一个服务,从而使系统达到最快的处理速度。

3   小结

     软件开发技术不断推陈出新,从C/S结构到B/S结构,从两层到三层,从CORBA、COM、到J2EE、.NET,现在基于中间件的开发应用系统已成为 主流。本文介绍的基于BEA Tuxedo的数据库访问系统只是一个普通应用,对整个中间件的应用而言仅是冰山一角。随着软件技术的不断发展,中间件在整个软件领域的位置日益凸现,作 为中间件的中坚产品Tuxedo具有不可比拟的优势,其开发利用有待我们进一步探索。

参考文献

[1] 许春金.Tuxedo中间开发与配置[M].北京:中国电力出版社 2003
[2] 杨敏,丁月华,文贵华. 基于中间件Tuxedo的三层模型的应用开发. 电脑开发与应用, 第18卷第2期: P11-13
[3] 罗涛,张正. 基于Tuxedo中间件的分不是业务系统的实现. 计算机工程与应用, 2005.21: P104-106
[4] 何红波, 王文军. Tuxedo的技术特点及典型应用. 信息技术, 2005年第5期: P37
1
1
分享到:
评论
2 楼 sunxboy 2008-02-23  
没错!正做电信项目。
1 楼 melin 2008-02-22  
据我所知道的,移动boss基本上都用到这个东西,可以说电信行业的营业系统都在用

相关推荐

    行业分类-设备装置-基于Tuxedo、.net及Oracle三层架构开发平台的优化配置方法.zip

    综上所述,基于Tuxedo、.NET及Oracle的三层架构开发平台的优化配置方法是一个综合性的技术挑战,需要考虑多个层面的细节。通过合理的配置和持续的优化,可以实现设备装置等行业高效、可靠的软件系统。

    Tuxedo中间件开发与配置,挺不错的

    Tuxedo是一种基于客户端/服务器模型的事务处理监控系统(TP Monitor),它提供了一种服务层,用于管理和协调分布式应用程序的运行。Tuxedo支持C、C++和Java等编程语言,使得开发者能够利用其强大的功能构建高性能的...

    Oracle tuxedo技术白皮书.pdf

    7. 集群和故障转移能力:通过集群技术,Tuxedo可以实现故障自动切换,确保服务不间断。 8. 复制服务框架:这一特性提供了冗余服务,增强系统的容错能力,保障业务连续性。 9. 错误管理:强大的故障管理功能帮助...

    tuxedo 10 最新官方资料包第一包

    Tuxedo 支持CORBA,使得基于不同操作系统和编程语言的应用能够通过ORB进行通信,实现了异构环境下的互操作性。 4. **ADS(Application Deployment Services)**:ads.pdf 可能涉及的是Tuxedo中的应用部署服务,这是...

    银行业信息化解决方案银行综合业务前置系统解决方案.doc

    该解决方案的开发基于数据字典的抽象描述与定义,实现基于数据字典的业务编程。同时,该解决方案还提供了文件可配置、文件操作的自动处理、智能路由功能、配置信息检查工具、日志系统、外挂函数与外挂子服务的功能、...

    BEA综合业务管理系统.pptx

    BEA综合业务管理系统是一种专为电信行业设计的高效能、高度集成的业务处理平台。该系统采用三层B/S(浏览器/服务器)结构,旨在优化业务流程,提高工作效率,并确保数据安全。以下是系统的几个核心组成部分和功能: ...

    TONG中间件配置培训

    - TongEASY、MQ、TUXEDO、CICS等,用于实现高效稳定的通讯与数据交换。 - **报文格式**: - 定长无分隔符报文、有分隔符的不定长报文、8583报文、XML报文等,以满足不同系统间的兼容需求。 - **CORBA技术**: - ...

    综合业务系统交易处理流程PPT学习教案.pptx

    软件系统主要由EJB交易服务、数据服务A和B、事件服务以及基于Servlet的BSAServlet组成。前端浏览器通过XML进行交易定制和参数设置,柜员和复核员则分别使用jTeller和jTellerWebLogic进行操作。整个系统依赖于数据库...

    IT部门运维管理综合解决方案.pptx

    为了更好地适应不同企业的需要,IBM Tivoli提供了40多个定制包,覆盖了如Cisco Works、Tuxedo等多个领域,以实现更精确的监控和管理。此外,Tivoli Enterprise Portal作为管理门户,提供了个性化视图和智能链接功能...

    基于HP9000 Cluster实现应用服务器高可用性的研究① (2003年)

    本研究主要基于HP9000 Cluster技术,以Tuxedo中间件为基础,探讨如何实现应用服务器的高可用性,确保应用系统能够自动侦测故障并进行自动切换,从而保障系统在24小时内不间断营业。 首先,商业银行的综合业务处理...

    中间件产品比较.pdf

    - **TUXEDO**:基于X/OpenXA标准,通过定义RM和TMS实现数据库的XA连接,支持多种数据库厂家的XA接口产品。 #### 四、安全管理 - **CICS**:提供内部加密和外部加密功能,控制用户、交易、资源级别的安全。通过DCE...

    iXcom服务手册

    iXcom作为制造业中广泛使用的中间件,其服务手册提供了对产品的综合介绍。中间件在计算机行业中充当系统软件和应用软件之间的桥梁,它使得应用程序能够在不同的技术之间相互操作。制造业中的中间件多用于机器、设备...

    Socket SOAP 中间件

    3. **可移植性强**:Socket API被设计为跨平台的,因此可以在不同的操作系统上实现一致的行为。 ##### 实现细节: - **阻塞模式与非阻塞模式**:阻塞模式下,Socket操作会一直等待直到完成;而非阻塞模式则会在...

    浪潮网管系统

    【浪潮网管系统】是专为移动通信运营商设计的一款综合网管解决方案,基于TMN(电信管理网)设计理念,旨在提升网络管理和维护的效率。该系统适用于多厂商、多技术的网络环境,如GSM、CDMA、GPRS、IP等,并支持包括...

    资金交易系统情况介绍.pdf

    Tuxedo为资金交易系统提供了一个可靠的平台,以执行交易处理和管理服务。 ICBS(International Comprehensive Banking System)可能指的是一个特定的国际综合银行系统,该系统基于2002年的ICBS,它可能为国际银行...

    陕西建行成功示范Linux应用.pdf

    2. 基于原有的城市综合网络系统,陕西建行成功投入Linux整体解决方案,打造了一个金融领域的示范平台,验证了Linux在关键业务系统中的稳定性和可靠性。 3. 在陕西建行的数据中心改造工程(DCC)中,实现了全省柜面...

Global site tag (gtag.js) - Google Analytics