Chinaunix首页 | 论坛 | 博客
  • 博客访问: 668613
  • 博文数量: 77
  • 博客积分: 6055
  • 博客等级: 准将
  • 技术积分: 617
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-17 02:15
个人简介

一句话太少

文章分类

全部博文(77)

文章存档

2018年(1)

2015年(1)

2014年(1)

2013年(6)

2011年(1)

2010年(1)

2009年(4)

2008年(2)

2007年(21)

2006年(39)

我的朋友

分类:

2006-12-29 13:48:51

一个TUXEDO 应用可以分成3部分:(1)发布交易请求的客户端(2)运行响应请求交易的服务(3)描述应用机器和服务信息的配置文件。以下是tuxedo的一个简单例子,大家很容易能从这个例子中明白中间件的编程思想,程序的各个函数都加上了注释以便于理解。

程序功能:客户端请求交易"TOUPPER",数据是"hello world"。交易"TOUPPER"将字符串转成大写,将结果成功返回客户端。
程序代码:
(1)客户端程序:
#include
#include "atmi.h"
/*包含TUXEDO系统的头文件"atmi.h",以便引用TUXEDO的函数和变量定义。*/
main()
{
 char *buf;
 long len;
 /*客户端调用tpinit()连接应用*/
 if  (tpinit((TPINIT * )NULL) == -1)
 {
  exit(1);
 }
 /*用tpalloc()分配一个STRING类型数据缓冲*/
 if ((buf=tpalloc("STRING",NULL,80))==NULL)
 {
  tpterm();
  exit(2);
 }
 /*将"hello world"拷贝进缓冲*/
 strcpy(buf, "hello world");
 /*用tpcall()包含数据缓冲,向交易"TOUPPER"发一个同步请求*/
 if ( tpcall("TOUPPER",buf,0,&buf,&len,0)== -1)
 {
  fprintf(stderr,"service requst fail\n");
  tpfree(buf);
  tpterm();
  exit(3);
 }
 /*打印出改变的数据缓冲*/
 printf("return string is :%s\n",buf);
 tpfree(buf);
 /*调用tpterm()切断与应用的连接*/
 tpterm();
 exit(0);
}
(2)交易程序(服务端程序):
#include
#include
#include "atmi.h"
/*包含TUXEDO系统头文件"atmi.h"*/
/* 象所有的TUXEDO交易函数一样,TOUPPER不用直接返回任何值,所以返回类型为void */
/*从客户端收到的数据放在TPSVCINFO结构中,是唯一的入参*/
void TOUPPER (TPSVCINFO *rqst)
{
 int i;
 for ( i=0;ilen-1;i++)
  rqst->data[i] = toupper(rqst->data[i]);
 /*用tpreturn()将数据缓冲返回客户端*/
 tpreturn(TPSUCCESS,0,rqst->data,0L,0);
}
(3)配置文件
有关应用的信息,如可用交易,交易位置,应用范围等,有必要集中管理于单一资源。事实上,这些信息被集中于文件UBBCONFIG。
如下所示(每个字段的含义参见BEA公司的文档):
#file : ubbconfig
*RESOURCES
IPCKEY  5000
MASTER  SITE1
MODEL  SHM
*MACHINES
gumby  LMID=SITE1
TUXDIR  ="/usr/tuxedo"
APPDIR   ="/usr/apps/simpapp"
TUXCONFIG ="/usr/apps/simpapp/simpapp.tux"
*GROUPS
GROUP1  LMID=SITE1 GRPNO=1
*SERVERS
simpserv SRVGRP=GROUP1 SRVID=1
*SERVICES  
TOUPPER
(4)建立应用
建立一个TUXEDO应用,必须进行以下步骤:
设置环境变量:TUXEDO用户目录(TUXDIR)、二进制配置文件名(TUXCONFIG)、TUXEDO可执行文件路径、公共库路径(LD_LIBRARY_PATH)
用buildclient命令从源程序编译出客户端可执行文件:buildclient -f client.c -o client -v
用buildserver命令从源程序编译出服务端可执行文件,-s参数列出提供的交易:buildserver -f simpserv.c -o simpserv -s TOUPPER -v
用tmloadcf命令从文本配置文件ubbconfig生成二进制配置文件tuxconfig:tmloadcf -y ubbconfig
好了。一个简单的tuxedo程序就算完成了。开发TUXEDO C/S系统的必要步骤无非就是:配置环境变量、编码并编译客户端和服务端的程序、由文本的ubbconfig生成二进制TUXCONFIG、启动系统和服务、测试应用和关闭系统。
阅读(3720) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~