扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
随着中间件在大型应用系统中的日益普及,目前各类中间件充斥着市场,它们在银行、电信、金融等大规模关键事务领域中的整合各种异构平台、保证交易完整性等方面表现出了超强的能力。BEA Tuxedo就是其中一款著名的交易中间件,本文以一个经典的例子(大写字母转换),主要介绍Tuxedo的工作原理及开发方法,以及Tuxedo应用程序的管理方法。
工作原理
Tuxedo是BEA公司的交易中间件产品,1984年由贝尔实验室开发成功,1992年易主Novell公司,1996年由BEA公司收购,经过十多年的不断更新和完善,Tuxedo已经发展成为交易中间件领域事实上的标准。
Tuxedo可以有效地整合企业异构C/S系统,实现大规模的关键业务处理和分布式事务管理,从而为企业提供一个可靠的、高性能的、易维护的三层分布式计算机环境。图1展示了一个基本Tuxedo系统的组成和工作原理。
① Client向System/T发出查询请求,以找到Server消息队列的地址;
② Client根据找到的入口地址将请求发送到Server的消息队列中;
③ Server处理请求,并将结果返回给Client的消息队列。
System/T是Tuxedo系统的核心,它实现了Tuxedo的所有功能和特征,如C/S数据流管理、服务请求的负载均衡、全局事务管理以保证交易的完整性、同步/异步服务请求、两阶段提交以确保消息的发送等。System/T提供了一个类似公告栏的服务,用以发布C/S计算机环境中所有服务器、服务和客户机的信息,供其它分布式计算的参与者使用。下面笔者将通过一个大写字母转换的简单例子,讲述Tuxedo应用程序工作的基本原理和开发方法。
应用介绍
Simpapp是Tuxedo系统自带的一个例子,它由服务器和客户端程序两部分组成。服务器simpserv实现了一个TOUPPER服务,它从客户程序接收一个字符串,将它转换成大写后,传回客户端。整个工作流程可以用图2表示。
客户机首先收集要转换成大写的字符串,然后连接到System/T并将字符串放入缓冲区,接着调用服务器上的TOUPPER服务,最后从服务器响应缓冲区中取出数据并退出System/T。
1.Simpapp的服务程序 |
#i nclude <stdio.h> #i nclude "atmi.h" / Tuxedo ATMI函数库的头文件 / TOUPPER(TPSVCINFO rqst){ int i; for(i=0;i<rqst->len-1;i++) rqst->data[i]=toupper(rqst->data[i]); / 将rqst->data缓冲区内容转换成大写 / tpreturn(TPSUCCESS,0,rqst->data,0L,0); / 将rqst->data作为响应缓冲区返回 / } |
2.Simpapp的客户程序 |
#i nclude <stdio.h> #i nclude "atmi.h" int main(int argc, char argv[]){ char buf; long len; if(argc != 2) { (void) fprintf(stderr, "Usage: simpcl string\n"); exit(1); } if (tpinit((TPINIT ) NULL) == -1) { (void) fprintf(stderr, "Tpinit failed\n"); exit(1); } len = strlen(argv[1]); if((buf = (char ) tpalloc("STRING", NULL, len+1)) == NULL) { (void) fprintf(stderr,"Error allocating send buffer\n"); tpterm(); exit(1); } (void) strcpy(buf, argv[1]); if(tpcall("TOUPPER", buf, 0, &&buf, &&len, 0)==-1){ (void) fprintf(stderr, "Can't send request to service TOUPPER\n"); tpfree(buf); tpterm(); exit(3); } (void) fprintf(stdout, "Returned string is: %s\n", rcvbuf); tpfree(buf); tpterm(); return(0); } |
3.Simpapp的配置文件 |
RESOURCES IPCKEY 123456 MASTER NODE1 MODEL SHM MACHINES JQ LMID=NODE1 TUXDIR="G:\ProgramFiles\BEA Systems\Tuxedo" APPDIR="G:\simpapp" TUXCONFIG="G:\simpapp\tuxconfig" GROUPS GROUP1 LMID=NODE1 GRPNO=1 SERVERS simpserv SRVGRP=GROUP1 SRVID=1 CLOPT="-A" SERVICES TOUPPER |
4.Simpapp的编译和运行 |
SET PATH=%PATH%; G:\Program Files\BEA Systems\Tuxedo\Bin SET TUXDIR=G:\Program Files\BEA Systems\Tuxedo TUXCONFIG=G:\simpapp\tuxconfig |
tmloadcf -y ubbsimple |
buildclient -o simpcl.exe -f simpcl.c |
buildserver -o simpserv.exe -f simpserv.c -s TOUPPER |
tmboot -y |
simpcl "hello, JQ" |
tmshutdown -y |
5.管理Simpapp |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者