Goddess是类似于tuxedo的中间件平台,包括支撑运行程序、开发类库。

目前在浙江、湖北、云南、新疆4省的二十多城市电信、移动的生产系统中投入运行,
运行效果良好。
Goddess开发者认识到只给开发人员提供基于3层的调用接口是远远不够的,传统的客
户端开发工具如powerbuilder/delphi/vc等给开发人员提供了非常丰富的函数和类库,使得客
户端的开发非常方便快捷,而现在把业务部分移植到服务端,意味着开发人员不得不在服务
端开发大量的支持函数,因此goddess开发者开发了各种各样丰富的类库,以使开发人员能
加快应用系统的开发。
同时goddess允许开发人员在win平台上直接进行服务程序的调试。
服务程序自需要指定服务名称对应的函数处理句柄,客户端就可以直接调用
²
如服务端
ITF_DefineFunction("Lower",
NetLower);
²
客户端
if(!ccf.RCall("Lower",&res))
{
printf("call error
code is %d\n",ccf.ErrorCode);
return 0;
};
只需要指定参数的名称和值,无需关心数据包的具体内容,同时无需关心参数类型
²
如压入参数
char
str[100];
int
ival=100;
strcpy(str,”ABCDE”);
ccf.PushPara(“callstr”,str);
ccf.PushPara(“num”,ival);
²
取出参数
char
str[100];
int
ival;
ccf.GetParaValue(“callstr”,str);
ccf.GetParaValue(“num”,&ival);
²
如添加一个定时器
void timeprint()
{
char str[200];
strcpy(str,ITime.GetDateTime());
printf("currtime is %s\n",str);
}
int main(int argc,char * argv[])
{
Clock.SetTimeDur(2,5);
Clock.AddTimerHandle(timeprint,5);
while(1)
{
sleep(10);
};
}
²
如网络事件处理,只需要定义相应的事件处理函数
如建立服务端守护端口
mServiceServSocket=INet.Server(mResMgrList[mLocalId].Port);
NetItf.AddServer(mServiceServSocket,"127.0.0.1");
NetItf.SetConnectInHandle(mServiceServSocket,SocketConnectIn_Handle_Resmgr);
NetItf.SetDisconnectHandle(mServiceServSocket,SocketDisconnect_Handle_Resmgr);
NetItf.SetDataArriveHandle(mServiceServSocket,DataArrived_Handle_Resmgr);
建立客户端网络连接
Sock=NetItf.Connect(ip,port);
NetItf.AddClient(sock,ip);
NetItf.SetConnectInHandle(sock,SocketConnectIn_Handle_Resmgr);
NetItf.SetDisconnectHandle(sock,SocketDisconnect_Handle_Resmgr);
NetItf.SetDataArriveHandle(sock,DataArrived_Handle_Resmgr);
服务端在处理一个较长时间的服务时,可以把目前的运行情况不断地返回给调用方,让
调用方了解目前服务端完成到什么情况。
调用原型
int TCAFace::RMessage(char * message,int max,int position);
服务端在必要的时候可以和客户端进行对话,要求操作员对服务下一步如何处理提供进
一步的信息或做出决定。
调用原型
int TCAFace::RSession(char * sessname,int timelmt)
需要的时候,客户端可同时调用多个服务请求,而不必等待每个请求调用完成后才进行
下一个,当服务端完成后,客户端会自动调用服务端请求完毕的处理函数
函数原型
Int ARCall(char * funcname, void (* rethandle)(int id,TCCFace * cf,int res));
系统提供了丰富的服务端/客户端均可调用的类库,goddess自身也基于这些类库构建,
可帮助开发者加快开发。
² 数据库接口类TSQLCA

TSQLCA服务器版是一个通用数据访问接口。它不仅提供类似于ODBC的功能,
更强大的是它还屏蔽了操作系统的差异。无论是UNIX版本还是Windows版本,我们
都可以通过其内部对象(TSQLCA)以同样的方式访问数据源,亦即,我们在window下
用它开发的数据库应用可以不加任何修改的移植UNIX上。
TSQLCA客户端版是一个基于ITF开发的三层数据库访问工具。其内部也使用对
象TSQLCA,并且此TSQLCA与服务器版的TSQLCA具有相同的数据访问界面,只
不过它对数据源的实际访问依赖服务器版的TSQLCA向它提供服务。
² 代码转换接口类 TDict
在数据库应用中,我们经常会遇到对数据字典进行翻译的情况。同时,在实际应
用中,我们不希望为了获取一个代码的解释而去频繁的访问数据库,而是希望能在本
地缓存数据,但需要保持缓存数据与数据库的同步。TDict正是为提供了这些功能而
设计的。
² 代码转换接口管理类 TCodeMap
² FTP传输类 TFTP
TFTP主要实现了ftp的一些常用功能,如上传、下传、获取文件列表、删除文件、
创建目录等。
² Ini配置文件操作类 Tini
Tini提供了对INI文件的访问接口,包括读取信息和修改信息。
² 集中用户密码访问接口调用类 TAuthClient
系统提供一个密码管理中心程序authserv,可以把重要的或被多个程序所使用的用
户密码交给其管理,这样便于管理员统一维护管理系统口令。
要使用相应用户的程序可以通过密码访问接口类进行密码认证和获取密码。
² 加密和解密 DES算法函数
² 网络信息日志管理调用类 TNetLog
通过TnetLog接口类,应用程序可以把日志和信息集中发送到一台主机的一个服
务程序上,便于集中日志管理和信息管理。访问通过TCP/IP连接实现。

² dbf(3.0)数据库表操纵类TDbf
TDbf提供了对dbf格式文件的常用操作函数.
² 系统配置信息管理类TSysInfo
² 数据压缩Czip
提供和winzip一样高压缩率的压缩函数
² 解释执行器接口定义
² 时间日期类T_Time
² 字符串类T_String
² 金额处理类T_Money
² 网络类T_Net
² 编码类T_Code
² 内存管理类 T_Mem
² 文件类T_File
² 信号灯类T_Sem
² 消息类T_Msg
² 共享内存类T_Shm
等等
可以在单机上开发、调试客户端和服务端应用程序。
如在win2000上进行开发,可以将服务程序运行在本机上,在程序内部设置断点,进行
单步调试,调试完毕后直接在服务端编译就可以了。

可在线卸载、装载应用软件模块;
不影响其它业务的正常运行;
便于维护;
当需要由Goddess平台更换成TUXEDO/TONG等平台时,只需要重新编译连接即可;
避免由于客户选择不同中间件的导致重新开发;
客户端程序代码的零修改;
服务端代码的零修改;
![]()
![]()
![]()
可视化监控系统;
方便地添加和卸载服务
异常自动报警;
可任何时刻截获应用输出
² 图形监控台

² 命令控制台
