首 页 用户登录 | ![]() |
|||
|
|||
按字母检索 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
按声母检索 | A | B | C | D | E | F | G | H | J | K | L | M | N | O | P | Q | R | S | T | W | X | Y | Z | 数字 | 符号 |
|
![]() |
您的位置: 5VAR论文频道 → 论文中心 → 计算机论文 → 计算机应用 |
|
|||||
PowerBuilder的分布式计算技术及其应用 | |||||
收集整理:佚名 来源:本站整理 时间:2009-01-10 11:51:55 点击数:[] ![]() |
|||||
在程序是必须的。在客户应在程序中,对象透明,当你在客户应在程序利用远程对象类定义,客户端的定义与服务器端的定义一致。考虑到这两个定义有相同的名字,PowerBuiler提供了这种透明技术。用这个类定义的变量能保持本地对实例的引用。执行时,你能初始化本地的对象或远程对象,这依赖你的应用要求。 三、 应用程序举例(PowerBuiler的实例) 在客户机/服务器中,一个比较典型的例子是实现服务器推拉(Sever Push),客户机请求服务器称为拉,服务器响应客户机请求并将消息发回给客户机称为推。 本例子功能是这样的,由客户机应用程序向服务器应用程序发出请求(为简单起见,请求服务是一条消息),服务器应用程序收到消息后,做一些数据处理或其他的工作,完成之后,给客户机应用程序返回一条消息告知请求服务完成。 本例子代码解释如下:首先建立即两个NVO,一个是Uo_Custdata, 一个是Uo_response_Object, 在 Uo_response_object中,有一个用户对象函数Doneprocessing(),该函数执行一个提示窗口,给客户机发布消息,说明处理数据完毕。在Uo_Custdata中建立一个处理数据的函数process_data,其参数包含Uo_response_Object。将包含该用户对象的文件编译成proxy,如a.pbl在客户应用程序中包含a.pbl即可。在客户机应用程序中,先建立connection对象,定义connection的属性,然后创建 remote object(用Create Instance),本例子是Uo_Custdata,再调用remote object的一个函数(也就是process_data);在服务器应用程序中,先建立transport对象,定义transport对象的属性,然后等待客户提出请求(用listen函数)。 源程序如下: // ------------------客户机应用程序 //定义connection connection myconnect long ll_rc //用Create建立实例 myconnect = create connection //设置Connect属性 myconnect.driver = "WinSock" myconnect.application = "70000" myconnect.location = "server01" ll_rc = myconnect.ConnectToSe ver() IF ll_rc <> 0 THEN MessageBox(“警告”,"连结错误") END If // 调用remote object(服务器应用程序提供) // Mycustdata 是服务器应用程序的NVO,将包含该user object的文件编译成//proxy,在客户应用程序中包含proxy的pbl文件。 Uo_custdata Mycustdata Uo_response_object Myresponseobject ……. Myconnect.createInstance(Mycustdata) Myresponceobject=Create.Uo_response_object Mycustdata.post process_data(Myresponceobject) // ---------用户对象 // uo_custdata的函数process_data 参数:Uo_response_object.responceobject …….//做一些数据处理的工作 给客户发布消息,说明处理数据完毕 Responceobject.post Doneprocessing() // Uo_response_object 的函数Doneprocessing Messagebox(“提示”,“处理完毕”); //----------服务器应用程序 TransPort myTransPort //建立transport对象 myTransProt=create TransPort //定义transport对象的属性, myTransPort.Driver='WinSock' myTransPort.application='70000' //然后等待客户提出请求。 MyTransPort.listen() 当然,在基于一般中大型数据库系统,基于WEB方式体系统结构,客户应用程序对于数据库的操作都可以用通过应用服务器程序,这样客户程序就很瘦了,不需要安装如Open Client之类的软件;另外,应用服务器程序可同时运行在几台计算机上,它对于系统的安全性,平衡网络负载都具有重要的现实意义,在PowerBuilder中都是能实现的。 四、结论 PowerBuider5就已经提出了分布式计算技术,但使用起来较为烦琐,这主要表现在编写Proxy,PowerBuilder6 通过程序直接编译成proxy,并且功能增强了许多,使分布式计算技术更为方便,刚出来的PowerBuider7更为方便、完善,这对于解决网络瓶颈,优化网络具有重大的现实意义。 [参考文献] 1.Simmon Gallegher 、simmon Herbert 《PowerBuilder6.0程序设计大全》 机械工业出版社 1998、8 2.钟虎林等新一代客户机/服务器体系结构计算机系统应用 1998第一期 3.Paul E.Renaud 《客户机/服务器系统入门必读》电子工业出版社 1995、6 4、Application Techniques------PowerBuider version6Document number AA0518 SYBASE 1997.10 5 、汤子瀛等 《计算机实用网络技术教程》杭州大学出版社 1998.8 6 、黄允聪等《网络安全基础》清华大学出版社 1999.2 Tags: |
提供人:佚名 | |
【返回上一页】【打 印】【关闭窗口】 |
![]() |
5VAR论文频道 |
![]() |
5VAR论文频道 |
![]() |
关于本站 -
网站帮助 -
广告合作 -
下载声明 -
网站地图
Copyright © 2006-2033 5Var.Com. All Rights Reserved . |