首页 视频 专题 方案 案例 原创 博客 论坛
您的当前位置:首页  >> 基础设施  >> 中间件  >> 实施

Goddess交易中间件V5.0

2008-01-24作者:mengwg 来源:www.chinaunix.net

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

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

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

    goddess应该是同类产品中最容易开发的基础平台。实际上在goddess上开发,同时也获得了orient类库中非常丰富的应用开发功能模块的支持。
    goddess的编程接口主要有3个类,TMid_Task、TMid_Link和TMid_Serv。
    TMid_Task用于传递远程调用的参数以及后台服务返回的结果。
    TMid_Link是连接器的基类。连接器负责把客户端调用的相关参数传递给服务端,在服务端执行完毕后返回相关参数。
    TMid_Serv是后台服务的基类。TMid_Serv接受来自客户端的请求,执行完毕后把相应的结果返回给客户端。
    为了简化调用,系统提供了包括一组初始化函数。

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


例子程序:


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

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

      task->Get_Para("str",str);
      pos = str;
      while(*pos!=0)
      {
        if(*pos>='A'&&*pos<='Z') *pos='a'+(*pos-'A');
        pos++;
      };
      task->Push_Para("str",str);
      return 1;
    }

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

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

    int main(int argc, char* argv[])
    {
    TMid_Task task;
    char str[200];
    int id;

      Mid_Link_Tfa("127.0.0.1",2000);
      for(id=0;id<20000l;id++)
      {
        if(id%10==0)
          printf("id is %5d\n",id);
        task.Set_Bid(10);
        strcpy(str,"ABCDE");
        task.Push_Para("str",str);
        task.RCall("lower");
        task.Get_Para("str",str);
        printf("result is %s\n",str);
      };
      return 0;
    }

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

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

    1    TMid_Task::Set_Bid
    功能:设置调用服务的业务标志代码
    2    TMid_Task::Push_Para(继承于参数管理类TParaMgr)
    功能:设置调用服务需要传递的参数
    Push_Para具有多态性
      int       Push_Para(char * name,int value);
      int       Push_Para(char * name,long value);
      int       Push_Para(char * name,double value);
      int       Push_Para(char * name,char * value);
      int       Push_Para(char * name,tstr * str);
      int       Push_Para(char * name,TSQLCA * dbio);
      int       Push_Para(char * name,TParaMgr * para);
      int       Push_Para(char * name,char * paravalue,char type);
      int       Push_Para(char * name,char * paravalue,char type,int len);
    3    TMid_Task::RCall
    功能:根据名字调用远端服务
    4    TMid_Task::Get_Para(继承于参数管理类TParaMgr)
    功能:获取服务端返回的结果信息
    Get_Para具有多态性
      int       Get_Para(char * name,tstr * str);
      int       Get_Para(char * name,TSQLCA * dbio);
      int       Get_Para(char * name,TParaMgr * para);
      int       Get_Para(char * para,int * value);
      int       Get_Para(char * para,float * value);
      int       Get_Para(char * para,double * value);
      int       Get_Para(char * para,char * value);
      int       Get_Para(char * para,void * value,int * len);
      char    * Get_Addr(char * para,int * size=NULL);

  Goddess的版本演变

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

(责任编辑:刘科

评论列表

用户名:
密码:
匿名发表
∷百家讲坛
杨学山:CIO如何从总体架构中获益
∷行业
政府旅游烟草纺织
电信钢铁零售出版
新闻邮政物流造纸
矿业军事冶金医药
家具食品服装建筑
航空农业煤炭医疗
石油教育交通金融
房产电子电力贸易
化工汽车机械
∷应用
OAOA咨询天地咨询天地销售管理销售管理
DCSDCS开源软件开源软件集团管控集团管控
协同应用协同应用企业门户企业门户人力资源人力资源
财务管理财务管理EAMEAM电子政务电子政务
CADCAD移动商务移动商务竞争情报竞争情报
GISGISMISMISMESMES
SaaSSaaS电子商务电子商务中小企业中小企业
BPMBPMPDMPDMBIBI
KMKMCRMCRMSCMSCM
ERPERP
∷基础设施
RFID数据库实用技巧
WEB服务安全语音
网格开源视频
存储网络通信虚拟化
中间件SOA服务器
中关村在线 51cto IT168信息化 互联网周刊 希赛信息化 支点网 E-works E800信息化 CNET科技资讯 E制造
中计在线 eNET信息化 中国网联网 IT专家网 中国信息化 比特网 信息周刊 计算机世界 赛迪网信息化 畅享网
IT经理世界 ERPworld.net IT时代周刊 信息中国 搜讯网 信息方略 环球财富网 首席信息官 中国制造业信息化杂志社 更多>>
 关于我们 版权声明 广告服务欢迎合作友情链接联系我们诚聘英才  
Copyright © 2004 CIO时代网 版权所有
京ICP证030336号
本网站服务器由北京联通IDC提供