频 道 直 达 - 新闻 - 读书 - 培训 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

分布式PowerBuilder工作原理和流程

作者: 51cto.com整理 出处:51cto.com  (  ) 砖  (  ) 好  评论 ( ) 条  进入论坛
更新时间:2005-09-21 11:09
关 键 词:原理  D  I
阅读提示:本文全面的介绍了分布式PowerBuilder工作原理和流程

一、分布式PowerBuilder工作原理

1 虚拟机

在这一章中,我们详细描述分布式PowerBuilder的工作机理。

PowerBuilder在服务端是用虚拟机模型来实现的。每当一个客户机与服务器链接时,服务器就为这个客户机开辟一片独立的内存,形成一个独立的虚拟机。

如果我们有四个客户端应用程序链接到这个服务器中,PowerBuilder就会建立四个虚拟机,这四个虚拟机是相互独立的,各有四个不同的内存块,它们之间并不直接进行共享。

另外,我们还需指出的是,至今为至,PowerBuilder的所有函数调用都是同步的,这也包括分布式PowerBuilder的实现。当应用程序调用了代理所定义的函数,这个应用程序就会处于等待状态,一直到服务端的NVO把最后结果返回。在NVO返回之前,应用程序将暂时被操作系统挂起。

PowerBuilder不能直接共享内存,并且,客户端和服务端的会话是同步的。

2 远程调用函数的参数

客户程序在调用远程NVO时,可能会使用到函数的参数。这些函数参数可以是任何简单数据类型(Simple Data Types),包括结构、数组等,引用方式(By Reference)或者直接传值方式(By Value)都可以。PowerBuilder也支持NVO对象的参数。

但是,PowerBuilder不支持对对象使用引用方式传参数。在PowerBuilder中,存在一些复杂对象,如数据窗口、窗口对象等,我们都不能进行引用方式传递参数。这是PowerBuilder对远程调用参数传递的限制。

二、分布式PowerBuilder工作流程

下面,我们用例子来回顾一下分布式PowerBuilder的工作流程。假设有两个客户机,一个服务器。在每一个客户机中,分别有一个客户端应用程序在运行。在服务器中,有一个服务端应用程序为这两个客户程序提供服务。

我们首先初始化一个Transport对象,并把它启动起来。接下去来看看如何实现分布式计算。

第一步,客户机1调用ConnectToServer函数。当这个函数返回后,先检查一下它的返回值,如果不出意外,Connection对象就被初始化完成了(图16-1)。


图2-1

接着,ConnectToServer函数在服务端中创立了一个客户虚拟机。客户端每调用一次这个函数,服务端就为它开辟一块内存,一个独立的工作环境。它可以想象成服务端开启了一个新的线程,或新的进程(图16-2)。


图16-2

然后,代理对象调用SetConnect函数,为代理设置Connect对象。 Connect对象通过网络线传递给Transport对象一个链接消息。Transport正在用Listen函数侦听这个消息,于是在服务端中初始化了NVO对象。注意,我们不直接在服务端中初始化NVO对象,而是通过代理对象来初始化(图16-3)。


图2-3

随后,这两个客户机在服务器中创立了两个服务线程,它们相互独立,各有两个不同的内存区域,不同的工作环境。因此,当一个服务线程发生运行错误时,不会影响另外一个服务线程。这两个服务线程其实就是服务器中同一个NVO的两个拷贝(图16-4)。


图2-4

在NVO计算完成后,就把结果返回,客户端的应用程序重新得到控制权。我们称之为同步函数调用。

在客户应用程序结束后,我们还需要把对象给释放掉。在PowerBuilder中,如果不释放这些对象,在程序运行结束后,为下一次运行的可分配的内存就会减少。一般情况下,系统会自动释放对象所占的内存,但象NVO这样的对象是需要应用程序为它释放的。每当我们释放了一个代理对象,这个代理对象在服务对象所应用NVO也会自动释放。如果不释放这个代理对象,对应NVO也不会被自动释放。

最后,客户端的Connect对象调用DisConnectServer函数,断开与服务器的链接。服务器接收到断开链接的消息后,就会中止由ConnectToServer所创立的服务线程,把这个线程所占的内存区域释放掉。至此为止,一个完整的分布式计算就完成了。


发表
查看
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
·Java基础教程 (查看51744次)
·UML类图详解 (查看46336次)
·Java编程开发手册 (查看24866次)
·UML统一建模语言 (查看23863次)
·C#技术开发指南 (查看21930次)
·Java编程开发手册 (1195个砖)
·Java基础教程 (429个砖)
·C#技术开发指南 (304个砖)
·PB开发教程 (220个砖)
·.NET开发手册 (217个砖)
·Java编程开发手册 (653个好)
·Java基础教程 (569个好)
·.NET开发手册 (248个好)
·PB开发教程 (208个好)
·Delphi开发技术手册 (174个好)
订阅技术快讯
电子杂志下载
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
名称:Vista精品应用黄皮书
简介:《Vista精品应用黄皮书》囊括了Vista的各方面内容。此次的精简版,是将里面的内容做了提取,便于用户下载和使用。内容包含了各种Vista的安装与实施、技巧与解析以及各种Vista相关学习文档和相关软件的安全下载。该电子书是了解和应用Vista人员必备的工具手册,并且也是第一本
名称:2006中国IT论坛精品集合
简介:本书由“51CTO论坛推广联盟”制作完成。书中所有内容均来自各联盟成员的论坛(网站)。制作本书的目的是为了集中大家的优势资源,将更多更精彩的内容带给广大技术爱好者。本书是联盟成立以来制作的第一本书。
关键字阅读
频道精选
主编信箱 热线:010-66476606 告诉我们您想看的:专题 文章
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 意见反馈 | 网站地图
Copyright©2005-2007 51CTO.COM 版权所有