PowerBuilder的分布式计算技术及其应用
PowerBuilder的分布式计算技术及其应用PowerBuilder的分布式计算技术及其应用PowerBuilder的分布式计算技术及其应用PowerBuilder的分布式计算技术及其应用浙江大学计算机系梁荣华浙江大学计算机系史济建杭州电子工业学院计算机系周其力
摘要:本文分析了客户机服务器的二级体系结构缺点与不足,介绍了客户机服务器的分布式计算体系结构的优点,重点论述了分布式计算体系结构在PowerBuider6中的实现,并给出了具体的应用实例,最后给出了结论。
关键词:客户机服务器分布式计算二级体系结构三级体系结构客户应用程序服务器应用程序
引言
90年代,人们开发MIS系统大都采用客户机服务器结构,客户机服务器结构既是硬件结构又是软件结构。即数据放在服务器上,程序在客户机上。进行数据访问时,由客户机提出请求(一般是SQL语句),服务器执行并给出结果。客户机服务器对于优化了网络,提高了系统的利用率。客户机服务器体系结构的发展经历了从二级体系结构模式到三级体系结构模式。
1二级体系结构模式
传统的客户机服务器的模式是二级体系结构(Twotiermodel)模式。结构图如图1
用户界面与逻辑事务驻留在客户计算机上,将大部分的数据存放在数据库中,对数据的操作如查询、修改等由客户机提出请求,数据库服务器完成并返回给客户机结果,这种体系结构虽然可以系统的性能,但它们具有明显的缺点:
缺乏安全性
在客户机上存取敏感性数据时,由于逻辑事务放在服务器中,所以用户可以访问逻辑事务的核心部分,这使得未授权用户容易侵入系统,有安全漏洞。
重的客户机负荷
随着客户机要求处理的事务的数目增多,系统的任务日益繁重,导致系统的吞吐量下降,使得客户机不能满足系统的要求,当然可以买一台更大的机器来替代旧的客户机器,但在经济方面不如买一台机器来分担客户机的某些任务。
鉴于此,人们提出了三级体系结构模式(见图
2)。
2分布式计算体系结构
在该模式中,用户界面保存在客户端,事务逻辑保存在应用服务器中,数据保存在数据库服务器中。客户机只负责提供用户界面,当需要进行数据访问时或复杂计算时,客户机向应用服务器发出请求,应用服务器响应客户机的请求,完成复杂的计算或者向数据库服务器发送SQL语句由数据库服务器完成相应的数据操作,最后由应用服务器将结果返回给客户机。该模式也称三级体系结构模式,PowerBuilder对于该模式是支持的。需要说明的是,三级体系结构模式的三级是指逻辑上的三级(即用户界面、事务逻辑、数据)而不是物理的三级。(具体见图二)
对于二级模式,分布式计算体系结构提供了解决方式,分布式计算技术通过将用户界面与事务逻辑分开,这使得未授权用户很难侵入系统,保证了系统的安全性;同时由于客户机只处理用户界面,大量的事务处理在服务器应用程序实现,大大减轻了客户机的负荷,使瘦客户成为可能。
二、分布式应用的体系结构在PowerBuidler中的实现
分布式PowerBuilder应用程序典型使用两个应用程序,即服务器应用程序和客户应用程序,分别在两台机器上实现。
服务器与客户应用程序一起实现事务应用,客户应用程序处理用户界面,与用户交互,服务器应用程序提供给客户应用程序提供必要的数据包,应用程序对客户应用程序透明。结构图见图3。
尽管服务应用通常提供数据包给客户应用程序,但服务器应用程序本身也可以作客户应用程序功能,换言之,服务器应用程序能作为客户应用程序与另一服务器应用程序连结,这时,这个服务应用程序作为客户应用程序与另一应用程序的中介等。
2。1服务器应用程序
服务器应用程序提供了两个主要的组件:传送对象(Transportobject)、远程对象(Remoteobject)。
传送对象使之能为服务器应用程序收到客户连接并处理客户请求。
在分布式应用中,客户能调用服务器提供的服务,通过远程对象提供,一般地,一个远程对象是一个NVO(nonvisualuserobject)不可视用户对象,包含在远程服务器上,一个客户能调用远程对象提供的功能,就好象他们被定义在本地的对象一样,也就是说,客户应用程序能调用远程的对象,与同一台计算机或另一台网络上的计算机各自执行程序完成某项功能,PowerBuiler对远程对象的调用有同步与异步调用。当同步调用时,客户等待直到服务器处理完成,当异步调用时,服务器只在自己的队列中增加一个请求队列,以后处理之,同时,客户机去做其他的事情,直到服务器处理该请求。
2。2客户端应用程序
客户端应用程序有三个组件
用户界面(userinterface)
连接对象(Connectionobject)
远程对象的类定义(remoteobjectclassdefinitions)
结构图见图5
用户界面
客户应用程序包含与用户的交互,除此之外,客户包含执行脚本,对于客户采取的反应。例如,这些脚本能规定当用户点了按纽会发生什么事件等。
连接对象
该对象提供了客户应用程序连接到服务器应用程序,并要求服务。
远程对象的类定义
每个服务器应用程序的远程对象在客户应在程序中有相关的类定义。远程对象定义的本地的拷贝与服务器应在程序的定义有一个相同的名字,执行期间,本地定义的对象允许客户访问,就如远程对象实例就象在本地一样。
类定义在客户应在程序中包含了远程对象的完全或部分功能,Proxy(代理)对象提供了远程对象界面的表示,对分布式处理,只有Proxy对象在客户应在程序是必须的。在客户应在程序中,对象透明,当你在客户应在程序利用远程对象类定义,客户端的定义与服务器端的定义一致。考虑到这两个定义有相同的名字,PowerBuiler提供了这种透明技术。用这个类定义的变量能保持本地对实例的引用。执行时,你能初始化本地的对象或远程对象,这依赖你的应用要求。
2。3通讯方式
PowerBuiler的分布式技术中支持以下几个通讯协议
Winsock
在支持TCPIP的网络中,利用WINDOWSSOCKETS工具通讯。只要支持TCPIP的网络都可以用该方式。
Namespipes,通过命名的管道进行通讯。
local,指在分布式应用程序可在本地运行。
不同的运行平台支持不同的通讯方式。
三、应用程序举例(PowerBuiler的实例)
在客户机服务器中,一个比较典型的例子是实现服务器推拉(SeverPush),客户机请求服务器称为拉,服务器响应客户机请求并将消息发回给客户机称为推。
本例子功能是这样的,由客户机应用程序向服务器应用程序发出请求(为简单起见,请求服务是一条消息),服务器应用程序收到消息后,做一些数据处理或其他的工作,完成之后,给客户机应用程序返回一条消息告知请求服务完成。
本例子代码解释如下:首先建立即两个NVO,一个是UoCustdata,一个是UoresponseObject,在Uoresponseobject中,有一个用户对象函数Doneprocessing(),该函数执行一个提示窗口,给客户机发布消息,说明处理数据完毕。在UoCustdata中建立一个处理数据的函数processdata,其参数包含UoresponseObject。将包含该用户对象的文件编译成proxy,如a。pbl在客户应用程序中包含a。pbl即可。在客户机应用程序中,先建立connection对象,定义connection的属性,然后创建remoteobject(用CreateInstance),本例子是UoCustdata,再调用remoteobject的一个函数(也就是processdata);在服务器应用程序中,先建立transport对象,定义transport对象的属性,然后等待客户提出请求(用listen函数)。
源程序如下:
客户机应用程序
定义connection
connectionmyconnect
longllrc
用Create建立实例
myconnectcreateconnection
设置Connect属性
myconnect。driverWinSock
myconnect。application70000
myconnect。locationserver01
llrcmyconnect。ConnectToSever()
IFllrclt;gt;0THENMessageBox(警告,连结错误)
ENDIf
调用remoteobject(服务器应用程序提供)
Mycustdata是服务器应用程序的NVO,将包含该userobject的文件编译成proxy,在客户应用程序中包含proxy的pbl文件。
UocustdataMycustdata
UoresponseobjectMyresponseobject
。
Myconnect。createInstance(Mycustdata)
MyresponceobjectCreate。Uoresponseobject
Mycustdata。postprocessdata(Myresponceobject)
用户对象
uocustdata的函数processdata
参数:Uoresponseobject。responceobject
。做一些数据处理的工作
给客户发布消息,说明处理数据完毕
Responceobject。postDoneprocessing()
Uoresponseobject的函数Doneprocessing
Messagebox(提示,处理完毕);
服务器应用程序
TransPortmyTransPort
建立transport对象
myTransProtcreateTransPort
定义transport对象的属性,
myTransPort。DriverWinSock
myTransPort。application70000
然后等待客户提出请求。
MyTransPort。listen()
当然,在基于一般中大型数据库系统,基于WEB方式体系统结构,客户应用程序对于数据库的操作都可以用通过应用服务器程序,这样客户程序就很瘦了,不需要安装如OpenClient之类的软件;另外,应用服务器程序可同时运行在几台计算机上,它对于系统的安全性,平衡网络负载都具有重要的现实意义,在PowerBuilder中都是能实现的。
四、结论
PowerBuider5就已经提出了分布式计算技术,但使用起来较为烦琐,这主要表现在编写Proxy,PowerBuilder6通过程序直接编译成proxy,并且功能增强了许多,使分布式计算技术更为方便,刚出来的PowerBuider更为方便、完善,这对于解决网络瓶颈,优化网络具有重大的现实意义。
〔参考文献〕
1。SimmonGallegher、simmonHerbert《PowerBuilder6。0程序设计大全》机械工业出版社19
9hr8、8
2。钟虎林等新一代客户机服务器体系结构计算机系统应用1998第一期
3。PaulE。Renaud《客户机服务器系统入门必读》电子工业出版社19
9hr5、6
4、ApplicationTechniquesPowerBuiderversion6DocumentnumberAA0518SYBASE1997。10
5、汤子瀛等《计算机实用网络技术教程》杭州大学出版社1998。8
6、黄允聪等《网络安全基础》清华大学出版社19992
电力市场营销中要关注客户服务的全过程当前,在我国电力工业的发展进程中,电力企业调控了原有的经营模式,逐步进入了电力市场的经营模式中。电力企业正面临着许多电力市场营销方面的问题,企业应不断提升对客户的服务质量,从小事做
试论活塞式发动机点火系统常见故障及判断方法点火系统是活塞式发动机的一个重要组成部分,主要由点火开关两个磁电机一个高压导线总成八个电嘴及内连接导线组成。磁电机电嘴和高压导线安装在发动机上,磁电机开关安装在仪表板上。作为在飞机
浅析CAD技术在高职机械设计教学过程中的应用研究0前言我国的高职教育随着教学理念的改革越发的壮大,很多的初中生在毕业后都有进入高职学习的想法。机械设计是高职学校当中比较热门的专业之一,受到广大男同学的喜爱,同时也是培养我国工程机
水利施工的挡土墙施工技术要点摘要在我国的水利工程施工中,有很多的加固技术措施,这些加固技术措施由于施工技术的不同,能够起到不同的加固效果。在众多的加固施工技术中,挡土墙施工技术能够有效地起到边坡加固施工的效果
水利工程地质勘察要点和降水处理措施结合工程实例,以水利工程坝址选择期间的工程地质勘察要点和降水处理措施为主要内容,在简要阐述水文地质条件的基础上,分析了工程地质勘察的要点,并总结了常用的降水方法,得出做好工程地质勘
水利工程的机电技术安装应用摘要本文简要介绍水利工程机电技术在安装中的应用,提出当前提升水利工程机电技术安装应用水平的措施,并对水利工程机电技术未来发展趋势加以展望,旨在加强机电技术在水利工程安装中的应用质量
新疆水利工程建设的管理成效摘要在农业生产中水利工程是基本保障,但水利工程在建设过程中受一些因素的影响和限制。本文主要探讨新疆水利工程建设与管理的成效,为新疆水利工程管理提供参考。关键词新疆水利工程建设管理成
水利工程的机电设备安装及土建施工摘要水利工程机电设备安装和土建施工的协调配合是水利工程施工中的关键问题,对整个水利工程项目施工的顺利开展有着直接的影响。本文首先分析了水利工程机电设备安装和土建施工协调配合的主要内
农田水利工程建设的管理现状摘要随着社会经济和科学技术的不断发展,农业也得到了快速的发展,农田水利工程在农业生产中是非常重要的,水利工程建设的管理对于农业水利工程的质量进度及成本都是非常有利的。因此需要注重农
水利工程的项目施工的控制措施摘要现阶段,水利工程等基础设施建设显著增多,这在提升现代化建设的基础上,也使其成为促进社会进步及经济发展的重要构成部分。同时,由于人们生活水平的显著提升,对于水利工程项目的质量要求
水利施工的管理常见问题摘要水是人类赖以生存的生活资源,对于水利工程,一直是治国安邦的重要大事,一方面解决人民生活用水方便,一方面避免水灾给人民的生活带来的危害。而目前我国的水利形势是错综复杂,工程庞大,
对三则案例的思考论文笔者最近偶获三则案例,思忖几日,感受颇多,深觉育人工作是一项智慧而艺术的事业。案例一一天,刘老师班上的小军同学放钱的皮夹子不翼而飞了。于是,刘老师照例把全班同学集合起来,问有谁看到
建筑法规案例论文建筑的美观主要是在探讨建筑的内外部结构的艺术性体现这一问题。下面小编整理的建筑法规案例论文,欢迎来参考!1目前建筑结构课程教学中存在的问题1。1学生基础薄弱,学习兴趣不够对于高职学
改善商行实验课的教学管理与组织的建议论文我校金融专业采用智盛商业银行实验软件作为商业银行业务实践工具之一,专设的实验室微机或者能够链接相关服务器的微机均可以使用该软件。该软件分为几个大模块,其业务模块模拟现阶段我国商业银
提高仓库物资管理效率的探讨论文1引言班组仓库物资管理是班组建设中的一部分,就班组的财务和生产而言,其重要性是显而易见,因为仓库管理着班组的各类物资,其中多为班组日常生产活动的备品备件及安全工器具等。如何加强仓库
浅谈初中语文教学中的阅读论文阅读是从视觉材料中获取信息的过程。阅读是一种主动的过程,是由阅读者根据不同的目的加以调节控制的,陶冶人们的情操,提升自我修养。阅读是一种理解,领悟,吸收,鉴赏,评价和探究文章的思维
谈国外农业巨灾保险管理及借鉴论文摘要我国是农业巨灾频发且后果较为严重的国家,农业巨灾给人民生命财产造成重大损失,而目前我国还没有建立农业巨灾保险体系,农民面对农业巨灾,缺乏基本生产和生活的保障。我国应借鉴国外巨灾
以合作为基础,培养数学素养论文摘要在中学教育中,数学一直作为基础学科占有相当重要的地位,该学科也经常成为义务教育中的核心考察部分。在初中教育阶段,培养学生的数学素养,是夯实数学基础的重要步骤。好的数学素养甚至可
医院信息管理系统设计实践论文摘要文中通过应用计算机方法,针对当前医院建设项目管理的信息化需求,设计基于ASP。NET和SQL数据库技术的应用大型医院的建设项目管理系统。分析系统的各个功能的设计与实现,通过BS
研究咖啡具的论文摘要陶瓷咖啡具一直被视作反映高雅时尚生活的器物。和茶具一样,咖啡具作为一种产品首先是为了满足实际生活需要,其次又是按审美规律寻求造型装饰的艺术创造。如今,随着人们欣赏水平的不断发展
高层房屋建筑工程技术管理研究论文摘要随着社会的发展,城市化水平的提高,土地的应用面积越来越小,为了寻求土地的合理运用,建筑行业将传统的低层房屋建筑改为高层房屋建筑以减少相应的用地面积,减少建筑商的成本投入,最终实
建筑工程毕业论文模板对于建筑工程项目来说,为了达到设计和规范的质量要求不仅仅要注重施工人员的实际施工能力和施工技术,还要注重对施工进度的控制,再有一点也是非常关键的对于工程项目的管理来说那就是对工程的