每个客户机或客户应用程序均和服务器或服务程序建立“硬连接”NMX网络连接=5两层结构缺点•难以维护结构用户界面、业务逻辑和数据逻辑相互交错,通常在第一次部署时较容易,但难以升级或改进。•难以扩展随着系统的升级。系统复杂成都大大增加,难以扩展。•安全性差客户端程序可以直接访问数据库,可以通过编程语言或者数据库提供的工具直接对数据库进行操作,不安全。•性能不佳客户端直接与数据库建立连接,当有大量的并发用户存在时,会使数据库不堪重负,性能迅速下降,甚至死机。6三层结构网络连接=N+M目录第一部分两三层架构概述第二部分TUXEDO系统概述第三部分TUXEDO系统配置第四部分TUXEDO通讯机制第五部分TUXEDO缓冲区第六部分TUXEDO常见ATMI第七部分TUXEDO应用开发第八部分内存泄露与内存监控8中间件•中间件是位于平台和应用之间的通讯服务,他屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性。大致可分为消息中间件、交易中间件、应用服务器等。•交易中间件(TransactionProcessing,TP)和消息中间件一样具有跨平台,跨网络的能力,但它的主要功能是管理分布于不同计算机的数据的一致性,协调数据库处理分布式事务,保障整个系统的性能和可靠性。遵循的主要标准是X/OpenDTP模型。适用于里那几交易处理系统。如:银行的ATM,电信的计费营业系统。主要产品有:BEATuxedoIBMCICS东方通TongEasy.•TUXEDO系统的关键特性TUXEDO系统概述强大的联机交易性能TM在客户机和服务器之间架起一个通信甬道,根据服务器的性能和承受压力的能力,创建一定数量的服务进程来处理客户请求。1000个通道+1000个进程+500MB的RAM+10,000个打开的文件1000个客户机不使用TUXEDO系统=操作系统瘫痪50个通道+50个进程+25MB的RAM+500个打开的文件1000个客户机使用了TUXEDO系统=操作系统正常50TM•TUXEDO系统的关键特性TUXEDO系统概述强大的通信功能•支持“请求/应答”式通信模式(同步、异步、嵌套、转发、TxRPC);•支持保持交易状态的会话通信方式;•支持基于发布/订阅的事件代理方式;•支持基于单播/多播的消息通知方式;•支持基于消息队列的可靠消息存储和转发方式。在消息传递方面•提供了CARRAY、STRING、VIEW32、FML32、XML和MBSTRING类型缓冲区来承载消息。•用户还可以自定义消息缓冲区类型。•TUXEDO系统的关键特性TUXEDO系统概述由于客户机请求的是有名服务,而不是某个具体的后台进程,因此后台进程和服务器的分布对于客户机来说是透明的。名字服务和位置透明性ClientorServerNamingServiceServiceAServiceBServiceCLookupnameGetsnameInvokesaservice公告板为TUXEDO应用程序提供了名字服务。它作为共享内存中的一个结构存在。目录第一部分两三层架构概述第二部分TUXEDO系统概述第三部分TUXEDO系统配置第四部分TUXEDO通讯机制第五部分TUXEDO缓冲区第六部分TUXEDO常见ATMI第七部分TUXEDO应用开发第八部分内存泄露与内存监控•UBBCONFIG文件应用系统的描述tmloadcf系统加载客户端客户端BBL进程BBL进程共享内存(公告牌BB)共享内存(公告牌BB)UBBCONFIG文件UBBCONFIG文件TUXCONFIG文件(二进制)TUXCONFIG文件(二进制)TUXEDO系统配置TUXEDO系统配置•与远程客户端有关的配置(1)在MACHINES中要配置MAXWSCLIENTS,即最多可以有多少个远程客户端同时连接到该服务器上。(2)在SERVERS中要配置Server:SWL.WSLSRVGRP=WSLGRP_MGBSSSRVID=24005RESTART=YMAXGEN=10CLOPT=-A-t---n//172.21.0.113:10001-m50-M80-x20-T15-dWSL和WSH用于传递ATMI数据的的设备-mtmboot最少启动的WSH进程数-Mtmboot最多启动的WSH进程数-x每个WSH支持的工作站数-T无响应连接许可时间在远程客户端的机器上要设置的环境变量TUXDIR(必须):Tuxedo客户端在该机器上的安装目录。WSNADDR(必须):远程客户端通过该IP地址与服务器建立连接,它的值为”-n”参数的值。如:SETWSNADDR=//ip:8888LD_LIBRARY_PATH:如果调用了相关的函数,则需要设定。UBBCONFIG文件——域管理进程的配置*SERVERSDMADMSRVGRP=WTCGRP_CHNBOSSSRVID=1GWADMSRVGRP=WTCGRP_CHNBOSSSRVID=2GWTDOMAINSRVGRP=WTCGRP_CHNBOSSSRVID=3CLOPT=-A-t一台服务器可以有一个或多个DOMAIN。针对域的管理有三个服务进程DMADM,GWADM和GWTDOMAIN。DMCONFIG的文本文件通过tmloadcf编译成二进制文件BDMCONFIG。DMADM是管理DOMAIN的server,维护和管理DMCONFIG。GWADM是管理DOMAIN的域网关进程(GWTDOMAIN)的server。GWTDOMAIN(GWT)负责响应域间通讯,处理DOMAIN之间的互操作。与WebLogic互通的WTC连接就是与域网关建立的.TUXEDO系统配置UBBCONFIG文件—应用服务进程配置*SERVERSR1100SRVGRP=ALL_SCBOSSSRVID=1100CONV=NMIN=1MAX=1CLOPT=“-A-r-t-o/iboss1/run/log/R1100.log”R1510NewSRVGRP=ALL_SCBOSSSRVID=12860CONV=YMIN=2MAX=2CLOPT=-A-r-t-o/iboss1/run/log/R1510New.logRQADDR=R1510NewR1510SRVGRP=ALL_SCBOSSSRVID=12913CONV=YMIN=1MAX=1CLOPT=-A-r-t-o/iboss1/run/log/R1510.logRQADDR=R1510配置要点:执行程序存放在APPDIR指定路径下,SRVID不允许重叠(一个服务配置占用id为:SRVID~SRVID+MAX-1)CONV=Y为表示会话方式的服务,必须以tpconnect调用,不能用tpcallRQADDR指定队列名称,使可以为一个应用服务分配多个队列.-ostdout重定向TUXEDO系统配置目录第一部分两三层架构概述第二部分TUXEDO系统概述第三部分TUXEDO系统配置第四部分TUXEDO通讯机制第五部分TUXEDO缓冲区第六部分TUXEDO常见ATMI第七部分TUXEDO应用开发第八部分内存泄露与内存监控18TUXEDO通讯机制•七种通讯机制同步调用异步调用(clinetspeed)管道(severspeed)会话(flexible)广播(轧帐)队列(batch&bytime)发布订阅(intrans)Server1Server2同步的Request/Response模式异步Request/Response模式TUXEDO通讯机制20TUXEDO通讯机制嵌套调用模式管道方式:调用转发21TUXEDO通讯机制会话模式22TUXEDO通讯机制广播方式队列方式23 发布订阅tpsubscribe(),tppost()用户进程可事先向系统订阅一些它所感兴趣的系统事件或用户自定义的应用程序事件,当系统或应用程序发生这些事件时,TUXEDO通知用户进程这些事件的发生,用户方可采取相应的动作。事件订阅机制使BEATUXEDO的用户拥有了独特的事件触发的功能,极大地方便了用户随时留意所订阅的系统或应用事件。TUXEDO通讯机制目录第一部分两三层架构概述第二部分TUXEDO系统概述第三部分TUXEDO系统配置第四部分TUXEDO通讯机制第五部分TUXEDO缓冲区第六部分TUXEDO常见ATMI第七部分TUXEDO应用开发第八部分内存泄露与内存监控统一定义的类型缓冲区可以使它们在跨越不同网络、不同协议、不同CPU构架以及不同操作系统之间得到统一的处理,使得开发者在分布式计算环境中有效地避开了异构网络和异构计算机系统带来的差异,把精力集中在商业逻辑的开发上。TUXEDO的缓冲区•FML缓冲区GPARM32_0…GPARM32_1…GPARM32_2……GPARM32_n…TUXEDO的缓冲区•FML域表文件general32.flds内容:$/*InputParametersforgeneralusing*/*base3200#namenumbertypeflagscommentsGPARM32_00string--GPARM32_11string--GPARM32_22string--GPARM32_33string--……GPARM32_5050string--SEND_PARMS_NUM32100string--RECP_PARMS_NUM32102string--SVC_ERR_NO32120string--SVC_ERR_MSG32121string--mkfldhdr(32)工具将域表文件对应生成一个C头文件TUXEDO的缓冲区目录第一部分两三层架构概述第二部分TUXEDO系统概述第三部分TUXEDO系统配置第四部分TUXEDO通讯机制第五部分TUXEDO缓冲区第六部分TUXEDO常见ATMI第七部分TUXEDO应用开发第八部分内存泄露与内存监控常用ATMI-连接的建立与断开客户端编程APItpinit();tpalloc();tpfree();tpcall();tpterm();服务端编程APItpsvrinit();tpsvrdone();tpalloc();tpreturn();30常用ATMI-连接的建立与断开•tpinitinttpinit(TPINIT*tpinfo)描述:与TUXEDOSERVER建立连接参数:TPINFO返回值:失败返回-1,错误号保存在全局变量tperrno中。•tpterminttpterm()描述:断开与TUXEDOSERVER建立连接参数:无返回值:失败返回-1,错误号保存在全局变量tperrno中。31常用ATMI-缓冲区使用•tpallocchar*tpalloc(char*type,char*subtype,longsize)描述:分配缓冲区参数:type:缓冲区的类型subtype:缓冲区的子类型,只有VIEW有子类型,其他的缓冲区该参数要设为NULLlong:缓冲区的大小返回值:成功返回一个指向所分配空间首地址的CHAR*形指针,失败返回NULL。•tpreallocchar*tprealloc(char*ptr,longsize)描述:重新分配缓冲区参数:ptr:指向原缓冲区首地址的指针size:新缓冲区的大小返回值:成功返回一个指向新分配空间首地址的CHAR*形指针,失败返回NULL。•tpfreevoidtpfree(char*bufptr)描述:释放由TPALLOC()或TPREALLOC()分配的缓冲区参数:bufptr:指向要释放的缓冲区首地址的指针返回值:无注意:用TPALLOC(),TPREALLOC()