3 分布式应用设计和实现
3.1 服务器端
3.1.1建立服务器应用
使服务器开始监听客户连接请求的具体步骤:
1) 将TRANSPORT(传输)对象实例化。
2) 为TRANSPORT(传输)对象设置属性。
3) 用LISTEN函数开始监听。
4) 异常处理。
代码如下:
transport tp1 long err tp1=Create Transport 对象实例化 tp1.driver=”winsock” 驱动程序 tp1.application=”10000” 端口号 err=tp1.Listen() 开始监听 If err<>0 Then 异常处理 MessageBox(“启动服务出错”,err) Else MessageBox(“服务正常”) End If |
3.1.2建立远程对象
远程对象定义了客户要访问的业务逻辑,它是分布环境下开发的重点。由用户针对不同需要进行开发。
3.2 客户端
3.2.1建立客户连接
建立客户应用与服务器应用连接的具体步骤:
1) 将CONNECTION对象实例化。
2) 将CONNECTION对象设置属性。
3) 用CONNECTTOSERVER进行连接。
4) 异常处理。
代码如下:
connection cc1 long err cc1=Create Connection 对象实例化 cc1.driver=”winsock” 驱动程序 cc1.application=”10000” 端口号 cc1.location=”220.200.200.1” 服务器地址 err=cc1.ConnectionToServer() 进行连接 If err<>0 Then 异常处理 MessageBox(“连接出错”,err) Else MessageBox(“连接正常”) End If |
3.2.2用户界面
针对不同需要进行界面开发。
3.2.3 PROXY对象
在与服务器建立连接后,客户端就可以建立一个服务器远程对象的代理(PROXY对象),并且使用它的全部内容。PROXY对象是客户应用与远程对象的一个接口。
客户端使用远程对象的代理——PROXY对象,在客户与服务器之间增加了一个中间层,可以防止用户随意使用业务逻辑,增加了安全性。
示意代码如下:
string code,name u_remote aname gconn_xt.CreateInstance(aname) 对象实例化 If IsValid(aname) Then code =sle_1.text name=anmae.uf_getname(code) //调用远程对象的函数uf_getname() st_1.text=name End If |
4 异步通信和服务器推送技术
4.1 异步通信
服务器对客户请求的响应可以采用同步和异步方式。前面介绍的是同步方式进行的。优点是实时性高,因此,在实时性要求高的情况下,考虑采用此调用。
异步通信优点是不会影响客户对其它程序的运行。因此在对实时性要求不高,客户运行任务多的情况下,考虑采用此调用。
为了通知服务器采用哪种方式处理,在客户应用程序调用服务器提供的函数时以关键字说明:
TRRIGER(缺省) 同步方式 POST 异步方式
如:
anmae.uf_getname(code) 同步方式调用服务器应用函数等价于 anmae.TRRIGER uf_getname(code)
异步方式调用
anmae.POST uf_getname(code)
4.2 推送技术
通常的处理方式是由客户应用向服务器发出请求,由服务器处理客户请求。采用服务器推送技术,则服务器也可以向客户发送请求。特别在客户采用异步方式请求服务器提供服务,而又希望了解服务器的处理情况,可以采用服务器推送技术。
基本逻辑结构如下图:
5、结束语
本文介绍了分布式多层体系结构,及在PB中的设计和实现,最后还介绍了同步和异步通信技术和推送技术。有了这些技术,就可以开发一个更加安全、高效的分布式应用程序。
参考文献
[1] POWERBUILDER 7 开发手册。内蒙古人民出版社,1999。
[2] 刘红岩。 POWERBUILDER 7 应用开发技术详解。北京:电子工业出版社,2000。
 
2/2 首页 上一页 1 2 |