免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 8893 | 回复: 20
打印 上一主题 下一主题

goddess交易中间件V5.0 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-11 22:09 |只看该作者 |倒序浏览
有兴趣的朋友可到我的站点下载看看 www.onlyit.cn 。里面有一份开发文档,介绍了goddess的一些开发思路,欢迎讨论。

  1. goddess是和tuxedo类似的交易中间件平台。
  2. goddess在近30城市的电信计费帐务系统中作为基础支撑平台,7*24小时不间断运行。5年来支撑近2000万电信用户的业务。其可靠性和效率得到充分体现。

  3. 不同的操作系统平台上goddess的开发接口完全相同。具备源码级的兼容。
  4. 基于goddess开发的三层应用几乎可以不加修改的移植到tuxedo、tongeasy平台,唯一需要变化的是初始化部分,一般不超过20行代码。

  5. goddess应该是同类产品中最容易开发的基础平台。实际上在goddess上开发,同时也获得了orient类库中非常丰富的应用开发功能模块的支持。
复制代码

论坛徽章:
0
2 [报告]
发表于 2006-03-11 22:10 |只看该作者

论坛徽章:
0
3 [报告]
发表于 2006-03-13 22:43 |只看该作者
goddess的编程接口主要有3个类,TMid_Task、TMid_Link和TMid_Serv。
TMid_Task用于传递远程调用的参数以及后台服务返回的结果。
TMid_Link是连接器的基类。连接器负责把客户端调用的相关参数传递给服务端,在服务端执行完毕后返回相关参数。
TMid_Serv是后台服务的基类。TMid_Serv接受来自客户端的请求,执行完毕后把相应的结果返回给客户端。
为了简化调用,系统提供了包括一组初始化函数。

goddess中每类服务进程用一个唯一的业务类型编号进行标识,一个业务类型下面可以提供相应的一组服务,采用基于名字调用的方式。


  1. 例子程序:
  2. 后台服务序提供了1个服务函数lower把一字符串转换成为小写,同时把字符串长度返回给客户端。这里假设服务器是本机。

  3. 服务端程序
  4. #include <mid_itf.h>
  5. int netlower(TMid_Task * task)
  6. {
  7. char * pos,str[200];

  8.   task->Get_Para("str",str);
  9.   pos = str;
  10.   while(*pos!=0)
  11.   {
  12.     if(*pos>='A'&&*pos<='Z') *pos='a'+(*pos-'A');
  13.     pos++;
  14.   };
  15.   task->Push_Para("str",str);
  16.   return 1;
  17. }

  18. int main(int argc, char* argv[])
  19. {
  20.   Mid_Process_Def("lower", netlower, "转为小写");
  21.   Mid_Serv_Tfa_Start(10,"测试程序","127.0.0.1",2000,5);  
  22.   return 1;
  23. }

  24. 客户端程序
  25. #include <mid_itf.h>
  26. #include <string.h>

  27. int main(int argc, char* argv[])
  28. {
  29. TMid_Task task;
  30. char str[200];
  31. int id;

  32.   Mid_Link_Tfa("127.0.0.1",2000);
  33.   for(id=0;id<20000l;id++)
  34.   {
  35.     if(id%10==0)
  36.       printf("id is %5d\n",id);
  37.     task.Set_Bid(10);
  38.     strcpy(str,"ABCDE");
  39.     task.Push_Para("str",str);
  40.     task.RCall("lower");
  41.     task.Get_Para("str",str);
  42.     printf("result is %s\n",str);
  43.   };
  44.   return 0;
  45. }
复制代码

论坛徽章:
0
4 [报告]
发表于 2006-03-13 22:48 |只看该作者
任务参数类 TMid_Task
TMid_Task用于传递远程调用的参数以及后台服务返回的结果。
TMid_Task从TparaMgr继承而来,可以非常方便的传递各种类型数据,包括TSQLCA二维列表(执行sql语句返回的结果集),也可以直接把一个参数管理器作为一个变量传递。使得开发人员无需再关心报文格式和平台差异。

一般的,编写一个客户端程序需要做以下工作:

  1. 1        TMid_Task::Set_Bid
  2. 功能:设置调用服务的业务标志代码
  3. 2        TMid_Task::Push_Para(继承于参数管理类TParaMgr)
  4. 功能:设置调用服务需要传递的参数
  5. Push_Para具有多态性
  6.   int       Push_Para(char * name,int value);
  7.   int       Push_Para(char * name,long value);
  8.   int       Push_Para(char * name,double value);
  9.   int       Push_Para(char * name,char * value);
  10.   int       Push_Para(char * name,tstr * str);
  11.   int       Push_Para(char * name,TSQLCA * dbio);
  12.   int       Push_Para(char * name,TParaMgr * para);
  13.   int       Push_Para(char * name,char * paravalue,char type);
  14.   int       Push_Para(char * name,char * paravalue,char type,int len);
  15. 3        TMid_Task::RCall
  16. 功能:根据名字调用远端服务
  17. 4        TMid_Task::Get_Para(继承于参数管理类TParaMgr)
  18. 功能:获取服务端返回的结果信息
  19. Get_Para具有多态性
  20.   int       Get_Para(char * name,tstr * str);
  21.   int       Get_Para(char * name,TSQLCA * dbio);
  22.   int       Get_Para(char * name,TParaMgr * para);
  23.   int       Get_Para(char * para,int * value);
  24.   int       Get_Para(char * para,float * value);
  25.   int       Get_Para(char * para,double * value);
  26.   int       Get_Para(char * para,char * value);
  27.   int       Get_Para(char * para,void * value,int * len);
  28.   char    * Get_Addr(char * para,int * size=NULL);

复制代码

论坛徽章:
0
5 [报告]
发表于 2006-03-18 22:17 |只看该作者
Goddess的版本演变

goddess于1999年开始开发,并且在武汉移动综合业务系统中局部投入使用。
2001形成2.1版本,在包括昆明、绍兴、乌鲁木齐等二十多个城市的电信计费帐务系统中作为基础平台。至目前仍在稳定运行。
2004形成3.2版本,在交通部海事卫星业务系统、昆明实时计费帐务系统中作为基础平台。
2006形成5.0版本。5.0版本做了较大的改动,主要优化了体系结构,简化了调用接口,效率比原有版本有较大的提高,对多线程支持更好。基于5.0版本开发更加容易,快速。

论坛徽章:
0
6 [报告]
发表于 2006-03-20 15:25 |只看该作者
// 请问有没有linux版本的可以下载,如果可以发一份给我 zhizhu72905@163.com
非常感谢

论坛徽章:
0
7 [报告]
发表于 2006-03-20 19:46 |只看该作者
请到 http://www.onlyit.cn/download 下载

For Red Hat Linux release 9 (Shrike)
Kernel 2.4.20-31.9 on an i686

资料请在 http://www.onlyit.cn/document 下载。

论坛徽章:
0
8 [报告]
发表于 2006-03-21 09:35 |只看该作者
谢谢兄台 正在试用//以后再发表意见

论坛徽章:
0
9 [报告]
发表于 2006-03-21 17:43 |只看该作者
goddess的应用场景

1 多机均衡模式
当有1台以上主机对客户端进行服务时,必须采用这种模式,此时需要启动平台程序(mid_rm和mid_tm),另外还需要运行集群管理器mid_gm。

2 资源管理模式
当业务比较复杂或终端较多的时候,采用这种模式较为合理。此时需要启动平台程序(mid_rm和mid_tm)。客户端通过资源管理器把任务分配给应用服务。

3 终端程序、应用服务直连模式
当应用较简单的情况下,同时终端数较少(少于100)时,可以采用终端程序直接连接应用服务程序的方式,此时不需要启动平台程序。
形成一个后台服务程序对多个客户端进行服务的模式。

论坛徽章:
0
10 [报告]
发表于 2006-03-22 10:11 |只看该作者
你开发的消息中间件Goer没有对外发布呀!我觉得我的系统更适合用消息中间件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP