




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 框架和平台支持1.1 遵循Open Group的DTP模型,遵循扩展体系架构XA、事务监控器规范XATMI、事务定界标准TX等规范。Tuxedo支持Open Group的DTP模型,采用DTP模型可以确保跨越多个应用服务器节点或数据库的数据访问协调一致。在这个模型中,一个具体的事务管理器将会负责具体的协调工作,事务管理器会跟踪全局事务的参加者,并控制两阶段提交协议,从而确保在每一个节点,事务的提交和回滚都被正确地处理。事务处理器可以处理有关节点、网络和资源的各种故障,并通过XA接口,来提供故障的恢复机制。DTP模型同时建议多种性能优化技术,用来减少磁盘访问量、网络传输量;DTP模型同时建议其它的高级特性,如协调者迁移、读优化、一阶段提交优化等。Tuxedo支持XA接口,借助这个接口,事务管理器和资源管理器进行双向的通信。提供一系列ax_*()方法用于RMTM的通信: ax_reg:向事务管理器注册。 ax_reg_2:向事务管理器注册,并传递选项信息。 ax_unreg:向事务管理器注销。提供一系列xa_*()方法用于TMRM的通信: xa_close:断开应用程序(AP)对资源管理器(RM)的使用。 xa_commit:指令RM提交事务分支。 xa_complete:测试异步的xa_操作是否完成。 xa_end:将线程和事务分支分离。 xa_forget:删除特定XID的信息,包括属于事务分支的预提交、预回滚等操作。 xa_open:为AP使用RM作准备,初始化RM。 xa_prepare:指令RM准备提交事务分支。 xa_recover:获取RM已经准备好或预完成的XID列表。 xa_rollback:指令RM回滚事务分支。 xa_start:开始或继续一个事务分支,将后续的工作与一个指定的XID相连接。 xa_start2:开始或继续一个事务分支,将后续的工作与一个指定的XID相连接,并返回选项状态。Tuxedo遵循事务监控器规范XATMI。Tuxedo的ATMI接口就是XATMI规范的超集,通过提供一系列的C/C+/COBOL库,来为这些语言提供一致的编程接口。例如用这些语言,通过命名服务,将请求从一个组件传递到另一个组件;或将数据插入到持久队列,并使其它的组件稍后提取等。XATMI也是DTP模型的重要的部分。Tuxedo遵循事务定界标准TX。TX接口基于XATMI,使用这种定界语义,无论事务中包含了多少个服务,中间跨越了多少个节点,有多少个数据库被引入,都能被作为一个原子操作被一致的提交或回滚,即便当中的机器出现故障,也能确保这种一致性。事实上,Open Group的许多标准都是在Tuxedo的实现上稍加改变后形成的,可以说本身就是标准,完全可以用来处理分布式事务带来的复杂问题,确保企业数据的完整性。1.2 支持CORBA规范,支持将第三方的ORB引入自身的CORBA服务器。Tuxedo遵循CORBA规范,提供CORBA环境。Tuxedo CORBA环境具有下列的优势: 性能自适应。Tuxedo CORBA能够根据系统压力自动增减业务对象,确保提供高性能。 数据完整性,有效地保护企业数据。Tuxedo CORBA提供事务服务,确保分布式的数据及应用协调一致。 高可用、集中式的管理。在客户机、网络、服务器出现故障时,Tuxedo CORBA可提供故障管理和恢复的机制。通过管理信息库(MIB)中源源不断的信息,管理员可以通过Web控制台来管理整个Tuxedo CORBA环境,比如监视、调优、动态配置等。 简化开发。可以基于标准的IDL进行开发,也可以基于系统提供的工具进行开发。依靠Tuxedo CORBA TP框架,也可以在事务管理、对象状态管理等多个方面支持开发者进行快速开发。 与Tuxedo ATMI、WebLogic平台紧密集成。由于Tuxedo CORBA支持与Tuxedo ATMI环境的调用及事务传播,支持与WebLogic平台的EJB相互作用,实际上,可以在应用中混合使用这三种技术。Tuxedo CORBA实现了两种访问方式,一种是私有的bootstrap对象,另一种是遵循CORBA INS规范的bootstrap对象,借助后一种机制,就可以和第三方的ORB进行互操作。1.3 支持大多数的操作系统,对64位操作系统提供支持;支持流行的数据库系统。BEA Tuxedo平台支持广泛,能够充分保护用户的投资,参见下表:VendorOSReleaseHPHP-UX10, 11, 11iHPTru64 UNIX4,5HPHimalaya NSKD45, G05HPOpenVMS7SunSolaris2.5,7,8,9FujitsuUXP/DSV20MicrosoftWindowsXP Pro, NT4MicrosoftWindows 2000Pro, ASMicrosoftWindows 2003EnterpriseRedHatLinux6,7,AS, ES, WSIBMAIX4,5IBMDYNIX/ptx4IBMOS/390V2IBMOS/400V5NECUX/4800R11, R12NCRMP-RAS3Siemens/PyramidReliant UNIX5SGISGI IRIX6Data GeneralDG/UX4SCOOpenServer5SCOUnixWare2,7SuSELinux7BEA Tuxedo支持64位技术,在HP-UX、Tru64 UNIX、Solaris、AIX等64位操作系统上提供有相应的版本。BEA Tuxedo支持流行的数据库,如Oracle、Sybase、Informix、SQL Server、DB2等, BEA Tuxedo能够与64位版本的数据库系统相集成。1.4 针对不同的操作系统和数据库,可提供相同的功能和特性,如一致的缓冲区、消息的持久化、图形化的管理、全局事务处理等。BEA Tuxedo对于所有的操作系统和数据库都提供相同的功能和特性,在所有的平台上都支持一致的缓冲区、消息的持久化、图形化的管理、全局事务处理等。BEA Tuxedo提供的功能可参见下图:2 可伸缩性和性能2.1 提供基于内容的路由机制,以支持分布式的数据或远程的业务节点;可根据XML消息中元素的内容和属性进行路由;支持路由规则的动态变更。Tuxedo支持数据依赖路由技术。运行时,Tuxedo根据请求的内容的不同,可以将请求路由到不同的进程组、服务器或远程域,尽管这些请求请求的都是相同的服务。这种路由规则可以动态地指定,完全不需要应用的干预。Tuxedo支持对多种类型的缓冲区应用路由技术,包括FML、VIEW、XML等。下面是路由技术的常用场景之一。在这个场景中,同一个服务器连接有2个数据库,分别存放一部分帐户数据。只要配置特定的规则,运行时就可以分析请求,将它们路由给适当的服务,保证访问到正确的数据。不但可以将请求分配给同一个机器上的多个数据库,还可以将请求分配给多个Tuxedo节点,参见下图:连接到任意一个节点后,当访问小于50000的帐户时,请求就会自动被路由到第一个节点。当访问大于79999的帐户时,请求就会被自动路由到第三个节点,以此类推。这是在局域网的情况,当使用域网关连接跨广域网的多个Tuxedo域时,路由的情况是类似的。2.2 支持不同地域的服务器进行服务端连接,能够进行连接策略和加密的配置。BEA Tuxedo支持不同地域的服务器进行服务端连接,Tuxedo是通过域网关来实现这一点的。这种连接是对等的,可以进行双向的服务请求。Tuxedo支持进行连接策略的配置,支持下列的连接方式: ON_DEMAND,只有当指定域请求远程域的服务或用于管理工具创建连接的时候,连接才会被建立 ON_STARTUP,当指定域启动的时候,就会连接远程域。如果连接失败,系统可以重试,默认的间隔时间是60秒,可以更改这个间隔时间。只有成功地连接到远程域,远程域的服务才会由挂起状态改变为正常状态。 INCOMING_ONLY,当远程域像指定域发出连接请求,或在指定域用于管理工具创建连接时,域之间的连接才会被确立。同样只有成功地建立连接后,远程域的服务才会由挂起状态改变为正常状态。Tuxedo支持对域间的消息进行压缩和加密。可以在域的配置文件DM_TDOMAIN部分对远程域的CMPLIMIT属性进行设定,超过此阈值的消息就会被压缩。Tuxedo支持对消息进行加密传送,可使用LLE算法自动进行加、解密的动作,完全不需要用户进行干预,并确保消息部被第三方所窥视。可以设置远程域的MINENCRYPTBITS和MAXENCRYPTBITS属性,可选的值是0、40、56和128,运行时Tuxedo域会进行密钥强度磋商,并使用可使用的最大的密钥强度。2.3 支持跨越广域网的服务器间进行透明的请求转发和内容依赖路由机制。BEA Tuxedo支持跨越广域网的服务器间进行透明的请求转发。只要域之间进行了服务的输入和输出的配置,域的本地客户机就可以像请求本地域上的服务一样请求远程域上的服务,保持客户机API的一致性,运行时,由Tuxedo的域网关进行透明的请求转发和响应传递。Tuxedo支持针对远程域的数据依赖路由,当有多个远程域提供相同的服务的时候,可以定义一下数据依赖路由,当请求数据满足一定规则的时候,请求就会被发送到指定的远程域中,而不是采用负载平衡的做法。Tuxedo指定跨域的数据依赖路由的时候,使用的是域的配置文件。可以在DM_IMPORT部分为远程的服务指定路由的名字,然后在DM_ROUTING部分定义路由,路由的定义方法和域内的路由是相同的。2.4 提供服务器间的连接保持机制,保证连接不会因为短暂的空闲被断开。基于安全的考虑,大多数的域连接都会穿越防火墙,而一般情况下防火墙都会超时空闲的连接。借助Tuxedo提供的服务器连接保持机制,保证连接不会因为短暂的空闲被断开。Tuxedo提供两种域连接保持的机制: TCPKEEPALIVE,如果超越指定的时间,域网关没有任何信息流量,域网关会发送检测信息给远程域,如果无法收到远程域的回馈信息,域网关会认为连接异常,并释放相应的资源。这个检测的间隙是由操作系统的核心参数所确定的。 DMKEEPALIVE,如果超越指定的时间,域网关没有任何信息流量,域网关会发送应用级的消息给远程域,如果无法收到远程域的回馈信息,域网关会认为连接异常,并释放相应的资源。检测的间隙可以通过这个参数的值来确定,单位是毫秒。利用这些特性,可有效地进行连接保持,并检测出连接的可用性。2.5 提供优异的性能;在性能方面,具备权威机构的认定结果。BEA Tuxedo可提供优异的性能,并通过下列设计实现这个目标: 服务请求透明转发,能够根据压力情况,将服务请求转发给最轻闲的服务进程。 多机并行处理,能够动态地向多机结构添加新的设备,确保提供良好的性能。 服务进程自动增减,包括业务进程和客户机接入进程,这些进程都可进行自动的请求分配,能够根据系统的压力调节进程的数量。 异步扇出,提供异步的通讯方式,通过并行加快处理数度,减少阻塞、等待。 流水线机制,允许建立服务器管道,依次完成对服务请求的一部分处理过程。充分利用机器资源,加快产出。 高效的数据压缩机制。 基于内存的消息队列。 内建XML解析器,可进行高效的XML消息的处理。BEA Tuxedo的这种性能也得到了业界的认可,可以通过tpc的站点来查看Tuxedo提供的强劲性能。使用HP的硬件设备和Oracle的数据库,Tuxedo 8.1的tpmC值达到了1,184,893,而价格仅为5.52$/tpmC。详情请查看/tpcc/results/tpcc_perf_results.asp?resulttype=all。3 群集和可用性3.1 提供多种高可用特性,能够在服务节点间进行请求转移。BEA Tuxedo提供多种高可用特性,能够在服务节点间进行请求转移。Tuxedo使用共享内存来存放Tuxedo系统的所有的服务信息,包括本机、并行的其它主机以及远程Tuxedo域公布的服务信息。由于服务信息全局共享,所以客户机使用任何一个Tuxedo服务器接入,都可以访问各个节点上的服务,就像访问它所连接的服务器的本地服务一样。运行时,Tuxedo通过桥在多机系统中传递服务请求和应答,通过域网关来传递跨越物理地域的服务请求和应答。下图展示了Tuxedo客户机访问Tuxedo服务器的过程:Tuxedo客户机不是直接与Tuxedo业务进程直接进行连接,而是首先连接到Tuxedo的共享内存(公告栏),得到业务进程的描述信息,然后才向业务进程发送请求。如果请求的服务没有被部署在本地,请求会发送给桥进程或域网关,进行透明的转发。3.2 提供多种不同的负载平衡算法。 单机模式(SHM)在单机模式下,Tuxedo在调度服务过程中,根据进程的队列进行负载均衡调度的,将请求转发到提供对应服务的队列中去。Tuxedo的负载均衡调度是根据负载因子累计各个进程的工作负载,并根据工作负载的值,确定交易请求应该转发的队列。对于每个服务(SERVICE),Tuxedo都设定一个负载因子(LOAD),用于描述该服务在执行过程中对资源的占用情况,取值范围为:132767,系统默认值为50。对于一个服务进程来讲,工作负载的值就是正在处理的和排队等待处理的所有服务请求的负载因子的和。如果在一台机器上有多个相同的服务进程,当一个对这个服务进程的请求上来后,Tuxedo通过监控服务进程队列的总负载值(总负载值=请求1负载因子1请求2负载因子2.请求n负载因子n)选择一个当前最空闲的服务进程,具体的选择方法如下: 查看第一个服务进程的队列的工作负载,如果该队列的工作负载为0(即空闲),则将请求放入该服务进程的队列中。否则,继续查看其它相同服务进程的工作负载,选择工作负载最小的服务进程。也就是说,只有第一个服务进程繁忙时,才考虑其它服务进程。 对于多进程共享队列(MSSQ)的情况,共享该队列的多个服务进程将作为一个选择对象来出现,因为Tuxedo在计算工作负载的时候将根据请求队列中的负载因子的总和计算工作负载。 多机模式(MP)下的负载均衡在Tuxedo MP模式中,Tuxedo发送端将所有的相同远程服务进程(位于远程机器上的服务进程)纳入轮循发送的范围内。本地机器可以看到远程机器上的队列的数目,但不会监控远程机器上的队列的长度。本地机器将记录向远程服务进程已发送请求的总负载值(总负载值=请求1负载因子1请求2负载因子2.请求n负载因子n)。当Tuxedo发送端需要发送请求时,Tuxedo将根据已发送的记录将请求发送至总负载值较少的远程服务进程上。若远程服务进程的负载因子相同,此种发送方式将可被认为轮循发送方式(Round Robin)。Tuxedo中的BBL将在每个SANITYSCAN*SCANUNIT秒,将重置所有的负载统计信息并清空总负载值。之后,Tuxedo将根据新的负载信息分发请求。这样,如果远程服务进程的个数或负载因子有所变化,这些变化将被考虑在内。 多机模式(MP)下的本地优先如果服务进程既存在于本地机也存在于远程机器上,Tuxedo将本着本地优先的方式发送请求。具体方式如下: 查看本地第一个服务进程的队列的工作负载,如果该队列的工作负载为0(即空闲),则将请求放入该服务进程的队列中。否则,继续查看本地其它相同服务进程的工作负载,选择工作负载为0的服务进程。也就是说,只有第一个服务进程繁忙时,才考虑其它服务进程。 当本地所有服务进程都繁忙时,才考虑远程服务进程。 当本地所有服务进程都繁忙时Tuxedo将根据已发送的记录将请求发送至总负载值最少的服务进程上(可能为本机,也可能为远程机)。远程服务已发送的总负载值计算方法为:总负载值=(请求1负载因子1NETLOAD).(请求n负载因子nNETLOAD)。其中,NETLOAD为网络负载因子。 Tuxedo中的BBL将在每个SANITYSCAN*SCANUNIT秒,将重置所有的负载统计信息并清空总负载值。3.3 系统能够监视业务组件的健康状态,并根据需要,将故障组件重新启动。Tuxedo可为企业提供丰富的高可用特性: 客户机与服务器连接。可以配置多个服务器接入地址,当与一个服务器地址连接失败时,系统会自动尝试其它的地址。 节点内的高可用。节点内,BBL服务进程监视所有的服务进程,一旦发现服务进程工作异常,可以将它们重新启动,只要将服务进程配置为可重新启动即可。 服务器群集的高可用性。服务器可以是同构或异构的,运行时所有服务器共享同样内容的公告栏,包含所有的服务信息。客户机连接任何一个服务器节点,就可以访问群集中所有节点上的服务。客户机不必了解服务的确切部署位置,群集将负责进行服务的转发动作。在通过组件冗余和服务透明实现高可用后,Tuxedo进一步监视群集的各个部件,以提供更高的可用性: 管理节点的DBBL监视所有的BBL进程,如果发现状态异常,能够将它们重新启动。 管理节点的BBL进程监视DBBL进程,如果发现状态异常,能够将它们重新启动。 系统监视群集通道的状态,如果通道状态异常,会自动切换到下一级通道。 系统会定期地检测上级通道的状态,如果通道恢复,将自动切换到上一级通道。 如果所有的通道工作异常,连接会不断地被重试。 多域结构下的高可用行。在多域结构,Tuxedo依然提供有高可用性。对远程域的服务请求失败后系统能够自动进行切换,Tuxedo支持进行链路级和域级的切换。 如果与远程域的连接失效,系统自动尝试此远程域的备份地址。 如果对远程域的请求失败,且为请求的服务配置了备份域,则请求会被自动路由到备份域。无论是小规模的单节点应用,还是群集、多域结构的大规模应用,Tuxedo都提供严密的高可用措施,确保为企业提供7 X 24的不间断的基础服务。3.4 支持有计划的停机,提供工具将业务组件迁移到其它节点,对节点维修后,可以将原有组件迁回,并正常运行。Tuxedo支持有计划的停机,这样对物理设备进行维修后,还可以重新加入到群集中,通过这种做法来提高群集的可用性。Tuxedo支持下列一些服务组件的迁移方式: 对进程组的迁移,可以将一个进程组从一个机器迁移到备份的机器上。 整体迁移方式,可以将一个机器上的所有进程组都迁移到备份的机器上。对于可能进行迁移的进程组,需要为它们指定多个逻辑机标识。迁移过程非常简便,可以通过tmadmin工具,首先输入tmshutdown R命令,然后输入migm命令即可,这样所有的进程组就都迁移到了新的机器上。可以使用同样的命令序列进行进程组的回迁。4 事务支持4.1 支持事务跨越多个数据库实例,可确保数据的完整性。BEA Tuxedo支持事务跨越多个数据库实例,可确保数据的完整性。Tuxedo通过遵循Open Group的DTP模型、XA协议来实现这一点。由于主流的数据库都遵循XA协议,所以可以使用Tuxedo充当事务监控器,来协调跨越数据库实例的分布式事务。运行时,Tuxedo通过一系列事务语义和事务日志,可确保分布式事务的同时提交和回滚。对于二阶段的失败,也可以通过事务日志进行最终的协调,保证事务不会因为机器或网络的故障而遭到破坏。Tuxedo还提供事务日志的迁移功能,防止因为协调者的故障,分布式事务会被挂起,保证在各种情况下都能保证企业数据的完整性。4.2 提供全局事务语义,能够定义事务的边界,能够进行事务挂起、事务继续等操作。BEA Tuxedo支持全局事务语义,并提供下列API用于事务边界定义、事务挂起、事务继续等操作: tpbegin(),开始一个全局事务 tpcommit(),提交当前的全局事务 tpabort(),回滚当前的全局事务 tpsuspend(),挂起当前的全局事务 tpresume(),继续之前被挂起的全局事务 tpgetlev(),确定当前是否在事务上下文中 tpscmt(),确定事务提交时,是在一阶段返回还是在二阶段返回当然,也可以使用Open Group的TX接口,使用时需要引入tx.h头文件。5 通讯方式支持5.1 提供同步、异步、会话等多种通讯API,从而适应不同场景下的通信协议要求。Tuxedo提供丰富的通讯方式,可适应不同的应用场景。除基本的同步调用方式外,它还提供: 异步。客户机可以不必阻塞等待服务器的处理结果,可以作其它的处理,也可以发起另一笔交易请求。作为通信服务器,使用异步方式会大大提高处理的效率,从而有效应对大业务量的情况。 会话。利用这种方式,应用可以上传或下载大量的数据,即一次请求、多次应答或多次请求一次应答。与多次的同步实现相比较,这种方式的性能损耗会降低很多。 持久的消息队列。可以将应用的消息持久到基于磁盘的队列当中,只要是可以延缓处理的工作,就可以把相应的请求插入这种队列中。比如利用非营业高峰期间执行,这样充分利用了机器的资源,还能够提高系统在业务高峰期的处理效率,缓解系统的运行压力。通知和广播。通常的实现是客户机发一个请求,处理后给客户机一个响应。如果客户机不发请求,服务器比较被动,也不会主动发消息给客户机,即客户机和服务器的角色是固定的,没法反转。而利用Tuxedo的通知和广播API,可以很容易地将一个消息发布给一个或全部客户机,即使客户机并未发出请求。5.2 提供基于内存的或持久的队列服务,支持全局事务语义,能够同其它的数据库操作协调一致,从而允许异步的、基于离线方式的分布式事务处理。Tuxedo支持内存的和持久的队列服务,并提供下列组件: TMQUEUE。Tuxedo队列空间的服务进程,负责整个队列空间的消息插入和提取工作。队列空间是一系列队列的集合。 TMQFORWARD。负责监视一个队列空间上若干个队列中的消息,一旦消息来临,它就可以把消息转发给相应的服务,并将响应回插到指定的队列中。 TMQUEUE。队列空间的事务管理器。Tuxedo的队列服务是理解事务语义的,这意味着若干个队列操作可以被一次提交或回滚。也可以将队列操作和其它的数据库操作放置在一个事务上下文中,使它们同时被提交或回滚。在Tuxedo中,队列也像数据库一样,是作为资源管理器来使用的。可以按下列方式来使用队列服务,一种是点对点的方式,在这种方式下: 客户机申请TMQUEUE的服务,请求将消息插入到队列中。 TMQUEUE服务进程接收请求,并将消息插入到指定的队列中。 其它的客户机申请TMQUEUE的服务,请求提取队列中的消息。 TMQUEUE从队列中取出消息,返回给客户机。也可以是按照存储-转发的方式来使用队列服务,在这种方式下: 客户机插入消息到指定的队列。 TMQFORWARD服务进程检测到消息来临,将消息取出,发送给相应的服务进行处理。 服务处理结束,TMQFORWARD将消息插入到指定的返回队列中。 客户机从应答队列中取出消息。存储转发可用于下列的场景: 隔离慢速操作。如果在构成事务的若干个操作速度差异较大,则可以对慢速操作配置队列服务,用快速的队列入队操作替代后端的慢速操作,这样整个事务的运行就可以加快,而TMQFORWARD的转发机制会将慢速操作逐一完成。 跨越不稳定的网络。利用TMQFORWARD的可配置的失败重试机制,可以有效地解决网络不稳定的带来的问题。可以配置失败重试的次数、间隔时间等,完全不需要应用进行干预。需要指出的是,在这两种方式下,都可以使用内存的或磁盘的队列服务。可以在配置时指定默认的消息放置方式,也可以在运行时通过API来覆盖配置时的设定。5.3 提供事务性的API,以支持基于Pub/Sub的编程模型。Tuxedo的事件代理(Event Broker)支持出版和订阅(Publish/Subscribe)机制。在这种模型中,多个供应者能够发送消息,多个订阅者能够接收消息,这允许客户机和服务器采用类似触发器(trigger)的方式来工作。参见下图:事件代理有下列的工作步骤:a) 进程向事件代理注册,表明感兴趣的事件。b) 稍后,某个进程发布一个事件,这个事件被传递到事件代理。c) 事件代理将事件传递给任何订阅给事件的Tuxedo实体。BEA Tuxedo提供tppost()、tpsubscribe()、tpunsubscribe()用于事件的处理,这些API可理解事务性语义,能够确保订阅者的操作参与到发布者的事务之中。5.4 支持未经请求的主动通知机制,使客户机能够了解服务器的状态信息;提供多种接收通知消息的机制,满足不同的应用场景需求。BEA Tuxedo支持未经请求的主动通知机制。只要客户机连接到Tuxedo服务器,就能够收到服务器主动发出的通知消息,尽管客户机可能尚未请求服务器的资源。服务器发送这种通知消息有2种方式: 通过程序的方式,可以使用tpbroadcast()和tpnotify()功能向某些客户机或单个请求某一服务的客户机发送通知消息。 通过管理工具,可以使用tmadmin工具的broadcast命令来向某些客户机发送通知消息。Tuxedo支持多种接收通知消息的方式,能够满足不同的应用场景需求,包括: 信号的方式。Tuxedo客户机需要定义一个通知处理句柄,每次通知消息来临,系统会中断当前的操作,执行预定义的处理句柄。通知消息处理结束,继续原有的被中断的处理过程。 线程的方式。同信号的方式类似,当通知来临的时候,对通知消息的处理会在一个独立的线程中完成,当前的工作不会被中断。 手工检查的方式。同样需要定义一个消息处理的句柄,当客户机需要检查通知消息的时候,可以使用tpchkunsol() API来检查是否有通知来临,如果有,会按照句柄的定义对消息进行处理。6 消息支持6.1 支持多种类型的缓冲区,支持XML类型缓冲区。Tuxedo支持多种类型的缓冲区: CARRAY,二机制的数据流,其要素是首址和长度。主要用来传送应用负责解释的数据,Tuxedo不会对它的内容进行干预。 STRING,以0结尾的字符串。Tuxedo会对它进行编码、解码操作,以适应不同的硬件体系结构。 VIEW,类似C语言的结构。它具有跨平台的优势,它所包含的数据可以被不同的平台所理解,不需要进行有关字节序的操作。 FML,名-值对。比VIEW更加灵活,也可以节省内存或网络传输开销。Tuxedo基于这种缓冲区提供有丰富的API,在实践中应用的非常广泛。 XML,用来传送XML数据。Tuxedo支持对这种缓冲区的路由机制,同时提供解析器,可以进一步解析XML消息。6.2 提供国际化支持。支持多字符集的编码,提供API进行不同字符集间的转化。Tuxedo对国际化提供支持。Tuxedo提供称为MBSTRING类型的缓冲区,这种类型的缓冲区可以存放中文、韩文、日文等多字节的亚太文字,由于允许在缓冲区中附带字符集名称,还能够根据需要进行字符集的转换。Tuxedo提供相应的API,用来进行多字节缓冲的组织、拆解、转换等工作。缓冲区的字符集编码由环境变量TPMBENC确定,也可以通过tuxsetmbenc()或tpsetmbenc()去指定,然后就可像其它的缓冲区一样填充消息了。消息的接收方还可以对消息进行编码转换,转换可以是自动的,也可以是手动的。如需自动转换,可以设置环境变量TPMBACONV,如set TPMBACONV=Y,手动转换时不要设置TPMBACONV环境变量,可以用tpconvmb()进行转换。对于FML32类型的缓冲区可以内嵌MBSTRING类型的缓冲区,Tuxedo同时提供了相应的打包、解包API。6.3 缓冲区能够屏蔽底层平台的数据表示差异,允许跨越机器类型的数据传送。Tuxedo支持在不同的平台上进行数据传输。它可提供跨平台的数据表示,实现这一点是依靠它的内建的外部数据表示(XDR)算法。当需要把数据传递给异构的机器时,首先使用这个算法将数据转换成公共格式,然后在目的机器再将公共格式转换成平台私有格式,确保数据被不同的平台理解。需要指出的是,XDR只是默认的算法,客户可以根据需要对这一点进行客户化。6.4 允许对消息体进行优先级标记。Tuxedo支持对请求的优先级进行处理。每个请求都可以标记一个紧急级别,取值是1 100,默认值是50。可以通过管理或程序的方式来改变请求的优先级。6.5 提供对消息的压缩功能。Tuxedo支持数据压缩。当数据量较大,网络速度较慢时,可以启动压缩。这种压缩是自动的,只要设定一个阈值,系统就会按照阈值,对超过阈值的消息进行压缩,确保应用的高性能。这种压缩是幕后进行的,不需要应用的干预。7 安全性7.1 提供用户的管理功能,提供工具进行用户和用户组的加入、改变、删除等。Tuxedo提供用户管理功能,并提供多种工具用于用户、用户组、ACL信息的维护。提供tpusradd、tpusrmod、tpusrdel用来增加、删除和修改用户的信息,提供tpgrpadd、tpgrpmod、tpgrpdel用来增加、删除和修改用户组的信息,提供tpacladd、tpaclmod、tpacldel用来增加、删除和修改ACL的授权信息。经过这些配置步骤后,在较高的安全级设定下,只有这些被注册的用户才能成功连接到Tuxedo系统,并访问被授权的资源,包括服务、队列、事件等。7.2 提供API进行数字签名和加密;提供可插入的安全框架,根据需要可引入第三方的安全实现。Tuxedo遵循PKCS公钥加密规范。提供tpsign()用于对消息附加签名,以达到防止伪造消息和消息被篡改的目的;提供tpseal()用于对消息进行加密,确保只有持有对应的私钥的应用进程才能打开消息,消息不被第三方窥视。Tuxedo可支持RSA、ElGamal、Rabin、DSA等多种安全算法。Tuxedo提供如图所示的安全框架,用来灵活地接入第三方的安全产品。接入第三方的安全实现时,需要改动Tuxedo的安全注册表。Tuxedo同时提供工具用来维护这个表: epifreg,用来注册一个安全实现 epifunreg,用来删除一个安全实现 epifregedt,用来编辑一个安全实现的注册信息7.3 提供验证、授权和链路层加密功能,确保部署的应用、数据安全。Tuxedo提供丰富的安全性选项,以满足对系统的高安全性需求。Tuxedo提供如下的安全特性: 认证功能。所有连接到系统的客户机都必须提供合法的用户名和口令。系统提供相应的管理工具帮助用户创建、修改和删除用户信息。 授权功能。客户机连接上系统后,并不意味着能够操纵系统中的所有服务。系统管理员利用Tuxedo的角色定义功能,可以定义登录用户能够存取的服务类别。 链路层的加密。经过简单的配置,系统就可以处于高强度的密钥保护之下,且无需应用层的干预。7.4 授权机制能够动态地进行修改,提供基于命令行的工具便于通过脚本来管理。BEA Tuxedo支持动态地进行授权的更改,可以使用MIB接口来实现这一点。MIB接口是Tuxedo提供的一个开放的管理接口,能从授权、队列、域、事件、Tuxedo核心、工作站等多个方面来管理Tuxedo。运行时,只要按照规定排布好请求的FML32字段并请求指定的服务,就可以达到动态管理Tuxedo的目的。通过这个接口,完全可以做到运行时改变对Tuxedo资源的访问控制。从授权这一块来讲,除了资源访问外,还可以通过这个接口进行用户和用户组创建的工作。利用这个接口,可以创建图形界面,进行直观的管理操作。也可以编制成命令行格式,便于通过脚本来实施,达到快速的或自动的系统管理的目的。8 设计和开发8.1 支持多种客户机,包括Java、Delphi、C+ Builder、VC+等。BEA Tuxedo支持多种客户机接入,可充分保护客户已有的技术投资,主要支持采用下列技术来访问Tuxedo提供的服务: Java,通过BEA Jolt组件,独立的Java客户机以及Java应用服务器都可以访问Tuxedo提供的服务。 VC+,这是Tuxedo默认的客户机,安装介质提供有相应的lib文件,可以方便进行程序的编写、链接。 C+ Builder,不同于VC+使用的COFF格式的lib文件,C+ Builder使用的lib文件是OMF格式的,这样,只要使用implib进行库格式的转变,同样就可以使用C+ Builder来访问Tuxedo的服务。 Delphi,只要通过.pas文件完成对Tuxedo客户机API的描述之后,Delphi就可以通过Tuxedo客户机的DLL实现来访问Tuxedo的服务了。当然,还可以通过其它的技术来访问Tuxedo的服务,如VB、PB、C#、ASP、PHP等。8.2 支持服务端的多线程运行方式,支持多上下文编程,即在客户机侧同时连接多个事务管理器,并在它们之间灵活切换。Tuxedo支持服务端的多线程运行模式。通过在编译时添加 -t 选项,以及在配置文件中为服务进程指定MINDISPATCHTHREADS和MAXDISPATCHTHREADS参数,就可以使服务进程运行在多线程模式下,运行时,根据业务压力,工作线程的数量将在MINDISPATCHTHREADS和MAXDISPATCHTHREADS之间进行自动调整。Tuxedo支持在客户机侧同时连接多个事务处理器,并能够灵活切换。要使用这种多上下文(Multicontext)结构,采用下列步骤即可: 在每次tpinit()之前,都使用tuxputenv()或tuxreadenv()预制合适的环境变量,并在运行tpinit()时,使用TPMULTICONTEXTS标志 每次调用tpinit()之后,都使用tpgetctxt()保存当前的上下文 使用tpsetctxt()进行上下文切换可以在多上下文结构中引入多线程技术,从而构造出更复杂、性能更高的客户机结构。可以将操作系统提供的线程实现和Tuxedo客户机相结合,如UNIX上的POSIX线程、Windows上的本地线程等。8.3 提供内建的XML解析器,能够使用DOM和SAX API对消息进行解析。BEA Tuxedo提供内建的XML解析器,能够使用DOM和SAX API对消息进行解析。由于用C+实现的XML的解析效率很高,特别是对于那些大型的XML消息,将解析工作部署在Tuxedo之上还是很明智的。设计时,可以采用以C程序实现服务逻辑,以C+程序实现消息解析,并在C程序中调用解析逻辑的办法,也可以将业务逻辑和解析步骤都放在一个C+程序中。使用这些解析API同使用其它的ATMI功能一样,使用比较简便,只需要注意一下解析过程中使用到的对象的析构问题。可以在使用这些对象的外围,使用大括弧进行标识,达到强制析构的目的,从而防止进程占用内存增长的问题。8.4 提供工具或组件,能够同J2EE服务器有效地进行集成。Tuxedo支持与J2EE服务器进行集成,可以通过下列组件进行J2EE集成: Jolt。Jolt包括一些服务器组件和一些客户机类,通过部署这些组件,可以实现在J2EE服务器中调用Tuxedo服务的目标,Tuxedo的服务可以不作任何修改。实践时,需要在Java应用服务器中引入jolt.jar和joltjse.jar,并构造Jolt会话池类,然后就可以在EJB或Servlet中通过会话池来调用Tuxedo的服务,由于采用连接池机制,运行效率会较高。 Tuxedo域网关,Tuxedo可以通过域网关同WebLogic平台紧密集成。这种集成是双向的,还能够进行事务的传播。除了基本的Tuxedo服务、EJB集成外,通过WebLogic平台的队列桥,能够轻易地将Tuxedo的队列或服务同WebLogic的JMS队列相集成;通过WebLogic平台的Tuxedo适配器,Tuxedo的服务还能够被引入到WebLogic的业务流程中。8.5 提供工具能够
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年达州高新区公开选聘中小学校副校长补充笔试模拟试题及答案
- 医院感染诊断标准试题及答案(2025年版)
- 2025年超声试题附有答案
- 2025年医疗器械知识测试题与答案(含A.B卷)
- 2025年版级建造师继续教育考试题库及答案
- 2025年语言学研究专业考试试题及答案
- 2025年健康管理师专业知识考核试题及答案
- 2025年湖南衡阳市水务投资集团有限公司招聘考前自测高频考点模拟试题附答案详解(突破训练)
- 2025年玉环市经济和化局公开选聘工作人员1人考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025年福建省泉州市石狮市教育局招聘3人考前自测高频考点模拟试题及答案详解一套
- 《研究生入学教育》课件
- 汽车行业中的环境保护与可持续发展
- 打起手鼓唱起歌混声合唱简谱
- 空调安装免责协议
- QGW 201175-2019-金风陆上风力发电机组 塔架通用防腐技术规范
- 老友记第一季字幕
- 输电线路风偏计算基本方法
- 骨科概论课件
- 第5章光电成像系统
- GB/T 9117-2010带颈承插焊钢制管法兰
- GB/T 5455-2014纺织品燃烧性能垂直方向损毁长度、阴燃和续燃时间的测定
评论
0/150
提交评论