当前位置:首页 > 第七章:TUXEDO的客户端编程
第七章:TUXEDO的客户端编程
7.1 Tuxedo的客户端简介:
tuxedo有两种客户端: 本地客户端和远程客户端。 NATIVE CLIENT(本地客户端):是指与TUXEDO服务器在同一台机器上,不用通过网络就可以访
问到TUXEDO服务器的客户端 。
WORKSTATION CLIENT(本地客户端):是指要通过网络才可以访问到TUXEDO服务器的客户端。
下图为TUXEDO应用系统的客户端访问TUXEDO服务器上的服务的过程图。
说明:
WS(Workstation Extension Product) 用于指TUXEDO产品的客户端部分 WSC (Workstation Client)
WSL(Workstation Listener)
TUXEDO系统自带的一个SERVER,它侦听一个指定的端口,WSC最初与该SERVER 建立连接
WSH(Workstation Handler)
TUXEDO系统自带的一个SERVER,由它处理WSC与TUXEDO SERVER之间的通讯。 Bulletin Board(公告板)
TUXEDO把系统的配置保存在一个共享内存中,该共享内存称为公告板(BB) BBL
TUXEDO的管理进程,主要对公告板等进行管理
Workstation Client与TUXEDO SERVER建立连接的过程为: 1. WSC 调用tpinit()或tpchkauth()
2. WSC采用在WSNADDR中指定的IP地址与服务端的WSL建立连接 3. WSL为该WSC指定一个WSH,并把该WSH的侦听端口返回给WSC
4. WSC采用返回的端口与指定的WSH建立连接,并与WSL断开连接,这之后WSC与TUXEDO
SERVER之间的通讯通过WSH进行处理,与WSL无关。 5. tpinit()或tpchkauth()调用返回。
WSNADDR=WorkStation Net Address 本地客户端与远程客户端的主要区别
1. 本地客户端只能用C语言或COBAL语言编写,远程客户端可以用几乎所有的编程语言编
写。
2. 在远程客户端所在的机器上要安装TUXEDO的客户端软件,并且在设置相应的环境变量;
在本地客户端上不用
3. 用buildclient编译远程客户端程序时要加 –W,编译本地客户端则不用
与远程客户端有关的配置:
1. 在MACHINES中要配置MAXWSCLIENTS,即最多可以有多少个远程客户端同时连接
到该服务器上。
2. 在SERVERS中要配置SERVER WSL
WSL SRVGRP=\
CLOPT=\CLOPT中可带的参数为:
CLOPT=\ [-w WSHname][-t timeout_factor][-T Client_timeout] [-m minh][-M maxh][-x mpx_factor ] [-p minwshport][-P maxwshport]
[-I init_timeout][-c compression_threshold] [-k compression_threshold]
[-z bits][-Z bits][-H external_netaddr]
[-N network_timeout][-K{client|handler|both|none}]\
参数说明:
-n netaddr: WSL的侦听端口,远程客户端通过该端口与服务器建立连接 -m minh : 最少启动多少个WSH进程
-M maxh: 最多启动多少个WSH进程,默认值为MAXWSCLIENTS/m -x mpx_factor:每个WSH进程可以同时与多少个远程客户端建立连接 -c compression_threshold
如果在远程客户端与服务器之间传送的数据包大小(单位为字节)超过-c指定的参
数,就自动进行数据压缩,
-T Client_timeout: 指定一个远程客户端的空闲时间,如果该远程客户端在client_timeout这么长的时间内没有做任何调用,WSH将断开与该远程客户端的连接。单位为分钟,如果没有指点该参数,那么WSH永远不会自动断开远程客户端的连接 -t timeout_factor: 指定远程客户端与WSH建立连接的时间,如果在-t指定的时间内还没有建立连接,那么连接将失败。如果没有采用安全认证方式默认为3*SCANUNIT秒,。如果采用安全认证方式默认为6*SCANUNIT秒,
[-p minwshport][-P maxwshport]:指定WSH可以使用的端口范围:
如果远程客户端要跨越防火墙才能访问该TUXEDO应用系统,在WSL中要指定该参数,指定WSH可以使用的端口范围,并让防火墙允许访问这些端口。如果不指定,TUXEDO会根据系统端口的使用情况进行分配,而分配的端口防火墙不允许通过,造成CLIENT无法调用TUXEDO SERVER。如下面的设置指定WSH可用的端口范围为17010 – 17030。 WSL SRVGRP=GROUP1 SRVID=1
CLOPT=\
在远程客户端的机器上要设置的环境变量 TUXDIR (必需):TUXEDO客户端在该机器上的安装目录 WSNADDR(必需):远程客户端通过该IP地址与服务器建立连接,它的值为-n参数的值,
如在上面的配置中为:
SET WSNADDR= //192.168.120.113:8888
WSTYPE(可选): 该客户端的类型,如果与服务器的类型一样,那么在它们之间进行数据
传送时不用进行编码解码工作。
其他不常用的环境变量可参考TUXEDO的联机文档。
客户端的编程模式:
在3层结构中,CLIENT是属与表示层,表示层主要处理与用户交互,它的功能可概括为: 1、提供应用的用户交互接口,即主要通过图形化的用户界面,取的用户的输入数据 2、与TUXEDO 应用服务器建立连接
3、调用TUXEDO应用服务器上的服务(SERVICE),把客户端的输入参数放入输出缓冲区。
4、TUXEDO应用服务器调用相应的SERVICE处理客户端的请求,把处理结果通过客户端的输 入缓冲区返回给客户端。
客户端与服务端之间的通讯方式有以下几种: 1、同步调用: 2、异步调用 3、会话方式: 4、可靠消息队列 5、广播方式 6、发布/订阅
在下一章我们再具体介绍
7.2 CLIENT的ATMI介绍
客户端通过调用TUXEDO提供的编程API(ATMI)来编写程序,下面介绍一些客户端主要的ATMI
与连接的建立与断开有关的ATMI
为了与TUXEDO SERVER建立连接,TUXEDO CLIENT要调用TPCHKAUTH()检查该TUXEDO SERVER所采用的安全方式,并根据得到的值做相应的处理,然后调用TPINIT()建立与TUXEDO的连接,在TUXEOD SERVER的结果返回之后,调用TPTERM()断开与TUXEDO SERVER的连接.
int tpchkauth()
描述: 检查该TUXEDO SERVER所采用的安全方式 参数:无 返回值:
TPNOAUTH:不需要认证 TPSYSAUTH:需要口令认证
TPAPPSUTH:需要口令认证,并且还需要应用级的认证或授权. -1:调用失败, 错误号保存在全局变量tperrno中。
int tpinit(TPINIT *tpinfo) 描述: 与TUXEDO SERVER建立连接 参数:TPINFO
返回值: 失败返回-1, 错误号保存在全局变量tperrno中。
TPINIT结构体在atmi.h中的定义如下 struct tpinfo_t {
char usrname[MAXTIDENT+2]; /* client user name */
char cltname[MAXTIDENT+2]; /* application client name */ char passwd[MAXTIDENT+2]; /* application password */ char grpname[MAXTIDENT+2]; /* client group name */ long flags; /* initialization flags */
共分享92篇相关文档