Tuxedo 培训讲义

上传人:ll****x 文档编号:243153196 上传时间:2024-09-17 格式:PPT 页数:55 大小:661.50KB
返回 下载 相关 举报
Tuxedo 培训讲义_第1页
第1页 / 共55页
Tuxedo 培训讲义_第2页
第2页 / 共55页
Tuxedo 培训讲义_第3页
第3页 / 共55页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Tuxedo,培训讲义,Version: 1.0,1,Tuxedo,的学习资源,Bea,开发网站,,Bea Tuxedo,教材,分为,ATMI develop,和,Administration,两本,配合,Tuxedo,的相关试验,是系统学习,Tuxedo,的最好途径。,Tuxedo,联机文档,全面描述,Tuxedo,的特性,以及开发的各个方面,。,其它一些中文文档,但在看这些文档时,要参照,Tuxedo,的联机文档来看。(,),2,Tuxedo学习方法,参考,Bea,的,Tuxedo,教材 ,按照需要,做课后的试验。,在实际项目中进行体会。,在项目开发过程中,进行讨论。,3,Agenda,Tuxedo,的技术概要。,Tuxedo,的开发。,讨论。,4,Tuxedo,基本概念,Tuxedo,是什么?, “,T,ransaction for,UNIX,(TUX) + distributed client server communications (,E,xtended for,D,istributed,O,peration)”,分布应用基础环境,用来搭建多层次,,C/S,结构,集中管理的应用系统。,交易中间件(位于,client,与,server,之间),交易处理监视器(,TPM:transaction processing monitor),5,补充概念,中间件:, 中间件是位于平台(硬件/操作系统)和应用之间的通用服务,这些服务具有通用的接口和协议。不同的产品,不同的平台之间,有不同的实现。, 中间件的分类:,基于远程过程调用的,。(Remote Procedure Call),面向消息的中间件。(,Message Oriented),对象请求代理。 (,Object Request Brokers),交易处理中间件。(,Transaction Processing Middleware),6,补充概念,交易、事务(,transaction),企业应用经常要求并发访问多个共享的数据资源,为了维护数据完整性,要求在分布式资源上的一组操作被当作一个单元(,UNIT),,在一个操作单元中,所有的操作一起成功、或者一起失败。, 事务有如下的属性:原子性(,Atomicity),,一致性(,Consistency),,隔离性(,Isolation),,持久性(,Durability)。,一个完整的事务处理体系,应该包括:应用构件,资源管理其,事务管理器这三个部分。,7,关键业务与,Tuxedo,的,C/S,结构,关键业务应用通常是面向事务的,要求具有准确的数据完整性、较好的性能和管理需求,。,Tuxedo,为分布式环境处理关键性业务应用提供了一,个结构化的,解决方案,。,TUXEDO,采用三层结构的组件软件模型,:, Client,为第一逻辑层。实现用户交互和数据表示,向第二层的,Server,发请求,调用业务逻辑处理服务。,Server,组件中间层,这些组件由,TUXEDO,管理,实现业务逻辑服务,接收服务请求,并返回服务结果。,第三层为资源管理器,比如像关系数据库。负责管理应用系统的数据资源,8,基本的,C/S,模式,基本,C/S,模式如图:,C/S,模式明确地划分了界面表示和商务逻辑,将应用管理集中在中间层,增加了分布式应用的伸缩性和灵活性。使用户能够有效管理应用系统。,9,可管理多层,C/S,模式,在可管理多层,(,Managed Multi-Tier MMT)C/S,模式中,提供了中间件管理功能:, 节点的处理能力得到改善,,Client,和,Server,之间并不是一一对应,客户端可以向多个服务发出请求。, 中间件提供了在,Client,和,Server,之间的通信、数据传输、以及交易管理和服务配置。, 数据库在这种情况下,只进行数据管理,成为,RM。, 统一的数据流控制降低了数据库中的进程数,减低了数据库的压力,同时减少了,Server,的空闲时间。, 将,Server,逻辑的开发,与,Server,的配置管理完全分开。可以通过改变配置,改变系统的结构。,10,Tuxedo,的,C/S,方案,Tuxedo,的,C/S,方案如下图所示:,11,Tuxedo,的,C/S,方案,MMT C/S,模式的优点,TUXEDO,的实现技术,模块化,客户端,交易,服务,最大化的处理能力和流量,客户端交易流量控制,分布式配置,快速消息匹配和路由,通讯传输技术,ATMI,访问,一种简单且容易定义的接口,实时应用管理,核心配置文件,,MIB,,,管理工具和基于浏览器界面的,GUI,名字服务和交易位置无关,公告牌提供目录交易便利,应用数据服务,应用服务位置可以在配置中随意配置,12,Tuxedo,的组成,配置信息库:,TUXEDO,应用程序的运行配置参数,由配置文件指定,这些配置文件在运行时转换成为公告牌(,Bulletin Board)。,驻留在每个参与应用的服务器结点上。,应用程序配置通过配置文件,定义了在分布的环境中运行服务所需的资源,,配置信息驻留在一个可编程访问的管理信息库(,MIB,),中,。,Tuxedo,提供在运行时访问,MIB,的接口。, 公告牌,(,Bulletin Board),驻留在每个参与到由配置文件指定的应用程序的,BEA TUXEDO,的服务器结点上 。,13,Tuxedo,的核心子系统,Tuxedo,的核心子系统包括:, 事务管理器(,TM), 工作站(,workstation), 域(,Domain), 队列(,queue),14,事务管理器,事务管理器是,TUXEDO,体系结构的中心。也是每个,TUXEDO,Server,的核心,。提供分布式应用服务、命名、,消息路由、,负载平衡、配置管理、事务管理和安,全性,15,名字服务/位置透明性:,BB(Bulletin Board),为应用程序实现名字服务。它在共享内存中实现一个命名结构。运行时,事务管理器根据名字信息,以及配置信息,自动寻找当前可用,Server,上。,相应的,程序开发人员在编程时,会使用对应于,Service,的逻辑入口项(称有名服务)的函数调用,事务管理器自动把这些逻辑请求,映射到结点/服务器进程环境内指定的服务实例。,名字服务/位置透明性,16,数据依赖型路由 /负载均衡/优先权,数据依赖型路由(,Data Depend Routing,DDR),是根据数据缓冲区中一个指定域的值,把一个服务请求映射到一个指定的服务器组的机制。,负载平衡,(,Load Balance),为了确保应用流量最大,事务管理器自动地在系统中完成负载平衡和调度。通过使用每个服务的负载因子,事务管理器把请求发送给能最快处理该请求的服务器。事务管理器通过为当前排队的请求总计负载因子来决定给定服务器上的负载,优先权,(,priority):,请求优先权是事务管理器提供的另一个核心能力。某一服务请求经常需要比其他服务更高的优先权。当含有不同优先权的请求处于同一请求队列时,优先权高的请求被优先处理。,17,分布式事务处理,分布式事务处理(,DTP,),保证访问分布的数据源和不同数据库管理产品时,数据的完整性。,事务管理器用全局事务跟踪事务参与者,管理两阶段提交协议。确保每个每个交易分支(,Subroutine),都能正确处理事务的提交和回退。,事务管理器还在出现本地故障、网络故障或全局资源死锁时协调全局事务的恢复。,事务管理器使用,Open Group,的,X/Open XA,接口,该接口已被,X/Open,接纳为分布式事务控制的标准接口。,18,工作站,/,WorkStation,WS(workstation),把,TUXEDO ATMI API,扩展到,Client,程序中。通过配置,WS,,开发者用,ATMI,透明访问在,BEATUXEDO,分布式环境中任何地方的服务。,Tuxedo,通过专用的监听,Server WSL(,配置在服务器端),来负责接收从,WS,发来的请求,同时产生,WSH(WorkStation Handler),来负责实际处理,WS,端的请求逻辑。,WS,端通过参数,WSNADDR,,来指明,Server,的网络地址和端口。,19,域,/,Domain,Tuxedo,利用,Domain,的概念,来拓展,C/S,结构。简单来说,每个,Domain,由一个,Domain,配置文件定义,其作为一个实体被管理,包含着几个,Tuxedo Domain Server,和若干商务应用。,Domain,之间是通过,Tuxedo,提供的,Server:Domain Gateway (GWTDOAMIN, GWOSITP),等来互相通讯的。,Domain Gateway,主要用来实现一下的任务:管理,在多个,Domain,间的,ATMI,,多,Domain,间的交互,不同网络环境中的通讯,以及跨,Domain,的事务管理和,Type Buffer,转换。,20,队列/,Queue,Tuxedo,队列应用的结构如下图所示:,21,通常每个,Client,和,Server,在运行时,系统会分配给它缺省的请求队列和应答队列,(request/response Queue)。,Tuxedo,提供队列服务,开发者可以根据,option,来定制对于某些,Server,的,Queue。,例如:选择,LIFO、FIFO,,用户可以调整入队和出队的,ATMI,调用特性,为控制应用程序流提供了最大的灵活性。,在,Tuxedo,看来,,Queue,就是一种资源,使用前需要创建,Queue space,创建,Queue。,由它的资源管理器(,Qmadmin),来管理,通过特定的,TM(TMQUEUE , TMQFORWARD),来集成到,Tuxedo,的应用中。,22,与,X/Open,的,TX,标准兼容,TUXEDO,是开放小组的用于定义和管理事务的,X/Open TX,接口标准的基础。,TX,接,口是基于事务管理器的,ATMI,的,两个接口提供了几乎相同的功能。,事务管理器接口,,ATMI,,,被,X/Open,选中,作为,OLTP,应用编程的参考技术,重命名为,XATMI,。,X/open,提出了,DTP,的模型,以及相应接口。,Tuxedo,实现了其中的,TM,部分,提供了,TX,接口(在,APP,与,TM,之间通讯),支持,XA,接口(在,TM,与,RM,之间通讯)。,23,补充概念:,X/open,的,DTP,模型,24,补充概念:,X/open,的,DTP,模型,25,X/open,的,DTP,模型,Application Program (AP):,实现最终用户的功能,,AP,界定了,Global Transaction,,明确了要访问的资源,以及交易结果。,Transaction Manager (TM),:TM,管理全局事务,同时也负责保证交易的,ACID,性。也负责当,Fail,发生时,把他们,recovery。,Resource Manager (RM): RM,定义用户共享的资源。,Communication Resource Manager (CRM):,CRM,支持一个实例与另一个实例之间的通信,不论另一个实例是否在当前的,TM Domain,之中。,从上图可以看到,,X/Open,模型中,定义了,CRM,与,OSI TP,模型之间的通信接口。现有航信的主机与,Tuxedo,之间的通信,就是应用了该模型,通过,Elink,互相通信。,26,Tuxedo,在航信系统中的应用,Tuxedo,在航信中的应用:, 核心交易平台的建立。利用,Tuxedo,良好的交易管理能力,和强大的负载性能,建立运行关键任务(,mission critical),的核心交易平台。, 利用,Tuxedo,和航信主机之间,通过,Elink,连接的通路,将主机应用向开放平台转移,减轻应用开发的难度。减轻主机系统的交易压力。, 利用,Tuxedo,和其他中间件平台如,weblogic 、MQSeries,之间的连接,增加系统之间连接的灵活性。合理优化系统资源的整合。,27,技术框架,Terminal,Web Server,PC,Mobile Phone,PDA,Connection Server,DCP,BI Servers,Report Portal,Report Engine,OLAP Server,USAS,Data Warehouse,J2EE Servers,Web Container,EJB Container,Open Core Transaction Environment,TP,Monitor,App Server for USAS,Host Connection Pool,Database,Open/ENV,28,Tuxedo,通过,WTC,与,weblogic,互联,通常用,TUXEDO,实现系统的核心业务,用,WEBLOGIC,做为系统扩展到,web,的平台,实现电子商务。由,WEBLOGIC,调用,TUXEDO,上的服务,需要在,Tuxedo,和,Weblogic,之间建立连接。,WTC (,WEBLOGIC TUXEDO CONNECTOR ),,不仅能让,WEBLOGIC,调用,TUXEDO,中的,SERVICE,,而且能让,TUXEDO,调用,WEBLOGIC,中的,EJB。,但,WTC,仅能实现这两个平台之间的互联。,29,TUXEDO,与,WEBLOGIC,之间通过,DOMAIN,方式实现互相调用。,Tuxedo,与,Weblogic,分别代表两个,TDOMAIN。,使用,WTC,时,,Tuxedo,方面要配置相应的,Domain,配置文件(,dmconfig),,指明本身以及,weblogic,所在,Domain,的,IP,和,Port。,使用,WTC,时,Weblogic,方面要做的修改是:,在,ClassPath,中,加入,jamti.jar,所在的路径。,在,weblogic,的配置文件,,bdmconfig.xml,中,加入描述两个,TDOMAIN,的部分。,在,Tuxedo,和,weblogic,启动相应服务后,,weblogic,通过,client,端掉用相应,ejb,,再有该,ejb,调用,tuxedo service。,Tuxedo,通过,WTC,与,weblogic,互联,30,航信,Tuxedo,应用项目,支付项目:,31,航信,Tuxedo,应用项目,运价项目:,32,休息一下,33,Tuxedo应用开发,开发,TUXEDO C/S,系统的必要步骤:,设置环境变量。, 编码,并编译客户端/服务端程序。, 编写/编译,Tuxedo,配置文件。, 启动服务。, 测试(功能测试、压力测试)。,34,设置环境变量,通常写在一个可执行脚本,setenv.sh,文件中。,主要的选项包括:,TUXDIR:Tuxedo,应用的安装路径。,TUXCONFIG:,便以后的,Tuxedo,配置文件路径。,VIEWDIR/VIEWFILES:view,文件的路径和文件名。, 以及,LD_LIBRARY_PATH:Tuxedo,应用时,需要寻找的库文件的路径。,PATH: Tuxedo,特用的一些可执行文件的路径。, 如果涉及到,Domain,,还有相应的环境变量。,执行脚本文件:. ./,setenv.sh,35,编写/编译,Tuxedo,配置文件,Tuxedo,配置文件,ubbconfig,描述了应用配置信息,。,Ubbconfig,文件是二进制文件,是由文本文件通过,tmloadcf,命令编译而成。,Ubb,文件的内容包括如下的,Section:,Resources:,包含整个应用范围的信息。必须在配置在文件第一节,不可缺少。,Machines:,节包含应用有关的每个处理器的信息。本节必须在,*,RESOURCES,节后列出。,Groups:,节包含服务组的定义。一台机器至少要定义一个服务组,每个组只要定义组名,映射组名的组号和逻辑机器名,36,SERVERS:,包含了服务进程的信息。一个入口代表一个应用启动时加载的服务。这些信息包含服务名,命令行参数,服务环境,重启动等等。,SERVICES:,提供了应用的特殊交易的信息,包括负载平衡(,LOAD),和数据缓冲类型检查(,BUFTYPE)。,如果全部都是缺省值则本节可以省略。,上述每一个,Section,中,包含众多的,Option,选项,具体应用时,察看,Tuxedo,相关文档,进行配置。,编写/编译,Tuxedo,配置文件,37,编写/编译,Tuxedo,配置文件,在运行时,这些配置信息被装入一段共享内存,称为(,Bulletin-Board)。,TUXEDO,提供一个管理进程,称为,BBL(Bulletin Board Liaison),包含了一个公告牌的本地拷贝和本地服务器上应用的状态。,TUXEDO,提供的另一个管理进程,DBBL(Distinguished Bulletin Board Liaison),,,用于多服务器配置时。,DBBL,与,BBL,协同,保证所有部分的公告牌内容的一致性。,38,客户端/,Client,开发,客户端的任务:,获取采集执行操作应得的数据。, 发起向服务端的请求并等待服务端回应。, 将结果按照一定格式返回给用户,客户端的程序设计和实现应该分成两个部分:, 用户处理过程。,Tuxedo,功能部分。,39,开发,Client,涉及的,API,进程管理的,API:, tpinit:,格式:,int tpinit(TPINIT *tpinfo),,负责将,Client,端连接到,BB,,是的,Client,端可以进一步调用,ATMI,函数。, 其中,,TPINIT,参数是一个,Tuxedo,定义的结构,用以存放一些安全相关的数据(必须在,tuxedo,的配置文件中打开,security,选项)。否则,可以使用,NULL。,tpinit,,不能在,server,端中出现,否则,tuxedo,会产生,TPEPROTO(,协议错)这样一个错误。,int tpterm( ):,客户端调用,tpterm( ),切断与应用的连接,结束了客户端的,TUXEDO,进程,.,40,开发,Client,涉及的,API,开发客户端还需要分配数据缓冲区,有关数据缓冲区的具体内容,将在后面详细讲解,。,编写完成的,Client,代码,用,buildclient,命令进行编译。,buildclient f -O,output file,如果,client,端是一个,workstation(,本地没有,Tuxedo server),,还要加上-,w,选向。,41,Client,与,Server,之间的通讯接口,Client,通过,ATMI,提供的,API,,与,Server,之间进行通讯,调用,Server,提供的服务。,通讯主要分为两种方式:, 同步方式:采用同步通讯时,,Client,端在向,Server,端发出请求后就被阻塞,等待,Server,端的返回。, 异步方式:采用异步方式时,,Client,端在发出请求后,可以继续其他的任务,需要结果时,使用,API,去获取,response,队列中的结果。,42,同步通讯方式的,API:tpcall( ),tpcall,的调用格式:,int tpcall( char *svc, char *idata, long ilen, char *odata, long *olen, long flags),参数定义:,Svc :,调用的服务(,service),名称,idata:,指向输入数据缓冲区指针。,ilen:,输入数据的缓冲区大小。,odata:,指向输出数据缓冲区指针的指针。,olen:,输出数据缓冲区的大小的指针。,flags:,通讯控制标志。,43,异步通信方式的,API,ATMI,提供异步通信方式:,tpacall( ),int tpacall(char,*svc, char,*data, long,len, long,flags,), tpcall,调用成功后返回一个整数,称为,descriptor,client,使用这个整数在以后的某个时间来获取结果。,ATMI,提供,tpgetrply( ),来获取异步调用的结果,int tpgetrply(int *,cd, char *,data, long *,len, long,flags,), 参数,cd,就是存放,tpacall,返回,descriptor,的指针。,无论是,tpcall、tpacall,以及,tpgetrply,,在,client,端和,server,端都可以使用。,44,Server,端开发,Server,是系统资源的联系点。,Server,必须发布系统内可以访问的交易,保证客户端可以知道把请求发往何处。,Server,启动后,进入一个循环:接收请求/处理请求/返回节后,周而复始。,系统管理员通过命令,tmshutdown,,显式地关掉,tuxedo,的服务。,45,Server,端开发涉及的,API,tpreturn( ):,在,Tuxedo,中,,tpreturn,用来代替常规的,return,函数,执行,tpreturn,后,,server,将回应的数据缓冲区返回请求的发起点,交出程序的控制权。,void tpreturn(int,rval, long,rcode, char *,data, long,len, long,flags,),rval,:,是返回的结果,通常是,TPSUCCESS, TPFAIL, TPEXIT。,rcode,:,是用户自定义的返回值,用以进一步区分返回结果。,data,:,是返回结果缓冲区。,len,:,是缓冲区长度。,flags,:,结果返回的标志,通常都是0。,46,tpsvrinit(),和,tpsvrdone(),分别用来启动和关闭服务。,如果在,server,的代码中,不提供这两个函数,,Tuxedo,将使用缺省函数。,tpsvrinit(),用,tpopen(),缺省打开,RM,连接。,tpsvrdone(),用,tpclose(),关闭,RM,连接。,tpsvrinit(),只在服务,boot,起来时执行一次。,相应的,tpsvrdone(),也只在服务,shutdown,时执行一次。,Server,端开发涉及的,API,47,设计服务时的几点考虑,最好不要使用收到的数据缓冲向其他服务请求,因为该缓冲可能被改变引起错误。,所有在服务中分配的数据缓冲,在程序结束时必须全部释放;唯一例外是用在,tpreturn(),中的返回数据缓冲。,服务中的交易不应调用本服务中的交易,因为容易产生死锁。,一个,MSSQ,集中的服务需要返回时,应有自己的返回队列;否则会与本集中其他服务冲突。(,RQADDR = XXXX ,同时,REPLYQ = Y)。,48,缓冲区数据类型(,buffer types),Client,与,Server,之间,,Server,与,server,之间,都要通过数据缓冲区来传递数据。,Tuxedo,支持下图所示的缓冲区类型:,49,Buffer type,包含:,STRING,CARRY,VIEW,FML,等。, STRING:,是以空值结尾的单字字符串。, CARRY:,有长度定义的二进制数据。,VIEW:,类似于,C,的,structure。, FML:,务固定结构的自定义缓冲。,ATMI,提供,tpalloc,以及,tprealloc,来分配以及冲分配数据缓冲区。,char * tpalloc(char *type, char *subtype, long size), type,是缓冲区的类型名:如“,STRING” , “CARRY”,“VIEW”,等。, 当分配,CARRY,STRING,类型的数据缓冲区时,,subtype,为空。,缓冲区数据类型(,buffer types),50,View,类型提供一种类似于,C structure,的数据缓冲类型。,在使用,view,缓冲类型的时候,要编写文本的,view,文件,后缀是 .,v 。,使用,Tuxedo,提供的应用程序,viewc,,将,view,文本文件编译成二进制文件 .,V ,以及一个头文件.,h 。,在编写,tuxedo,代码时,用到该,view,的地方,需要,include,该头文件。同时在环境变量中,需要设置额,VIWEDIR,以及,VIEWFILES,这两个荒井变量。,View,类型数据缓冲区,51,Tuxedo,中的事务处理,无论是,Client,还是,Server,都可以主动发起一个全局事务。,Tuxedo,会对一个,transaction,产生一个全局交易,ID(GTRID),,这个,ID,号在所有的交易参与这种共享,并唯一标示这个,transaction。, Tuxedo,通过,TLOG,,来跟踪一个全局交易。, 提供通知(,notify)RM,的方法,使得,RM,知道自己参加到一个交易中,并,lock,住相应的记录。,Tuxedo,作为,TM,,可以管理两阶段提交(,two-phase commit)。,使得所有交易参与者一起提交,保持结果的一致性。,52,TMS,和,RM,之间,使用,XA,接口来协调工作。,Tuxedo,提供,tpbegin, tpcommit, tpabort,等,API,来管理交易。,tpbegin(long timeout , long flags):,发起一个,global transaction。,其中,timeout,是交易超时时间,如果到时交易不返回,,tuxedo,会返回一个,TPETIME,的错误。,Flags,现在都是0。,tpcommit(0):commit,当前的,transaction。TM,会组织所有参加交易的,RM,,来进行两阶段提交。, tpabort(0):abort,当前的,transaction。TM,会向所有的,RM,发出,rollback,的指令。,Tuxedo,中的事务处理,53,可以用下图来表示,Tuxedo,中的事务处理:,Tuxedo,中的事务处理,54,Tuxedo,中的事务处理,在,Tuxedo,事务处理中,针对不同类型的,RM,Tuxedo,将提供不同的,TMS,,除了缺省的几种,TMS,外,,tuxedo,提供,buildtms,命令,让用户根据需要来建立,TM server。,Tuxedo,所支持的资源的种类,要在,RM,文件中定义,该文件的位置是$,TUXDIR/udataobj/RM。,通常需要在其中定义资源名,及支持该资源所需要的,XA,,和其他库文件。,TLOG,,需要在,tuxedo,控制台(,tmadmin),中,通过,crdl,,以及,crlog,命令手工创建。在,ubb,文件中,在,Machines,这个,section,中,有,TLOGDEVICE , TLOGNAME,TLOGSIZE,这几个参数相对应。,55,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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