AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > PowerBuilder

多层C/S系统及其在PB中的应用

51自学网 http://www.51zixue.net

  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。

 
 

上一篇:用PowerBuilder实现Flash动画播放  下一篇:在PB中实现系统热键功能的新方法