一、创建Tuxedo的客户程序
创建Tuxedo的客户程序与在C和C++编程语言中创建其它应用程序一样, Tuxedo提供了一个其于C语言的编程接口,即应用程序事务监控接口ATMI,这套接口很容易使用,以便用于开发客户程序和服务程序。除了C语言接口外, Tuxedo还提供了COBOL接口。
客户程序一般执行如下任务:
⑴.调用tpchkauth()决定加入一个应用程序所需的安全级别。可能出现的响应包括:没有安全级别,应用程序口令,应用程序授权,访问控制列表,连接级加密,公钥加密,审计。这些可以根据你的需求进行选择;
⑵.调用tpinit()来连接到一个Tuxedo应用程序,所需的安全信息作为tpinit()的参数传给了应用程序;
⑶.执行服务请求;
⑷.调用tpterm()来断开和 Tuxedo应用程序的连接。
2、创建的服务程序
尽管开发者使用ATMI编程接口来创建 Tuxedo客户程序和服务程序,但服务程序不全部由开发者来编写,开发者只需写一些称为服务的商业函数,然后和Tuxedo的一些二进制程序联编成一个可执行的服务程序。 Tuxedo服务程序启动后,它总是保持运行状态,只到接收到一个shutdown消息为止。一个典型的 Tuxedo服务程序在shutdown或reboot之前都在执行着数千个服务。
服务程序一般执行以下任务:
⑴.在Tuxedo服务程序启动时,执行tpsvrinit()函数,可以在里面打开一些如数据库之类的资源供以后使用;
⑵.在 Tuxedo服务程序关闭时,执行tpsvrdown()函数,可以在里面关闭tpsvrinit()中打开的资料;
⑶. Tuxedo服务程序以服务的形式来响应客户程序的请求,客户程序不是通过名字来调用服务程序的,而是调用服务,客户程序不知道处理它请求的服务程序的位置;
⑷.服务程序调用tpreturn()函数来结束服务请求,并返回一个缓冲区,必要时,将它传给客户程序;
3、在应用程序中使用类型缓冲区
在Tuxedo系统中的所有通信过程都是通过类型缓冲区来完成的, Tuxedo系统提供了大量的类型缓冲区来供开发者使用。所有类型缓冲区都必须通过Tuxedo的tpalloc(), tprealloc(), tpfree()这些ATMI来分配回收,它们都有特定的头部。
统一定义的类型缓冲区可以使它们在跨越不同网络、不同协议、不同CPU构架以及不同操作系统之间得到统一的处理,这就使得开发者在分布式计算环境中有效地避开了异构网络和异构计算机系统带来的差异,把精力集中在商业逻辑的开发上。
Tuxedo系统提供多种通信模式:
⑴.同步Request/Response模式;
⑵.异步Request/Response模式;
⑶.嵌套调用;
⑷.调用转发;
⑸.会话通信;
⑹.主动消息通告;
⑺.基于事件的通信;
⑻.基于队列的通信;
⑼.使用事务。