PB教程第十五章.doc

上传人:大米 文档编号:545941498 上传时间:2023-01-21 格式:DOC 页数:4 大小:34.02KB
返回 下载 相关 举报
PB教程第十五章.doc_第1页
第1页 / 共4页
PB教程第十五章.doc_第2页
第2页 / 共4页
PB教程第十五章.doc_第3页
第3页 / 共4页
PB教程第十五章.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《PB教程第十五章.doc》由会员分享,可在线阅读,更多相关《PB教程第十五章.doc(4页珍藏版)》请在金锄头文库上搜索。

1、151 分布式计算概述在开始这一部分的学习之前,我们先来简要回答一下什么是分布式计算,然后讨论为什么要用分布式计算。分布式计算的英文为Distributed Computing。如果我们说某项工作是分布式的,那么,参与这项工作的一定不只是一台计算机,而是一个计算机网络。我们的计算机具有两种功能,一是它能够存贮信息,或者称为数据;另一个功能是它能够处理数据的能力,它能够计算。按这一分类,我们可以把计算机网络所做的工作分两种:分布式数据存贮,分布式计算。在分布式数据存贮中,网络使数据存贮分布化,我们把数据放到网络上的不同的机器中,而不是仅存储在一台计算机。数据是共享的,网络的任何计算机可以透明地存

2、取到不同来源的数据。比如,在PowerBuilder中,程序所处理的数据往往来自于不同的数据库服务器,而不仅仅是本地机器。我们把它称为分布式数据。同样也不难理解什么是分布式计算。在分布式计算中,网络侧重于它的计算功能。在分布式数据中,完成一件工作时,数据可能来自于网络中不同的机器,但对于这些数据的处理却是在本机中完成的。而在分布式计算环境中,数据的处理不只是在一台机器完成,而是多台机器协作完成的。比如,为了处理一项工作P,它由两部分工作组成,PA和PB。如果我们把PA放在机器A中完成,PB处理放在机器B中完成,那么它们就形成了一个分布式的计算。计算机的计算总是离不开数据,所以,在大部分情况下,

3、分布式计算总是伴随着分布式数据,分布式计算往往是一个表示程度的量词。接下去,再来讨论在哪些时候时候,我们要用PowerBuilder来做分布计算呢?一个重要的原因是计算资源的共享。用整个网络中的所有计算机来处理总比单台机器要快一些,另外,一些运算速度比较慢的客户机也可以用运算速度比较快的服务器来协作完成某项工作。第二个重要的原因是为了减轻网络的负荷。虽然网络技术飞速发展,网络的带宽不断的增加,但总是有限的。在分布式数据处理中,在网络中传递的数据量是非常大的。SQL语句会把一整张表放在网络上。因此,如果在网络中所传输的仅仅是一些数据处理后的结果,而不是前面所说的大量的中间数据,整个网络的负荷就会

4、降低了。第三个原因是安全性。我们可以把一些关键的计算过程和数据放在服务器上,并给予特殊的安全保护。第四个原因是合理的软件结构。在某一些环境下,拥有分布式计算的软件结构更加容易解决实际问题。如果您在做需求分析时,存在以上一些理由的话,建议采用PowerBuilder的开发分布式计算结构.152非可视对象 PowerBuilder的分布式计算是围绕NVO展开的。NVO是非可视对象(Non-Visual Object)的缩写,它是用户对象的一种特殊类型。在以后的章节中我们将学习如何创建一个NVO对象。NVO在PB的第三个版本中就已经存在,在PB版本四、五和六中得到进一步完善。简要地说,NVO就是一个

5、没有可视化对象的特殊处理对象。在NVO中不存在类似于数据窗口、按钮、列表框等可视对象,但它拥有自已的数据,以及处理这些数据的函数和事件。这些数据、函数和事件可以被认为定义了NVO的接口,我们通过接口来与NVO进行通信,也可以直接访问它的公有数据。153代理对象 假如我们有一个程序,它拥有许多处理对象,这些处理对象才是“知识”的真正拥有者。我们要做的事情是如何把这些对象放到不同的机器中,实现分布式计算。如何做到这一点呢?在PowerBuilder中,通常的做法是,先把这些对象做成NVO,然后把NVO的接口抽象出来,做成另外一类特殊的对象,我们把它叫做代理(Proxy)。代理与NVO的外部接口完全

6、一样,如果一个NVO有三个公有函数,和一个公有变量,那么,它的代理也有三个公有函数以及一个公有变量。注意,我们只提到公有的函数和变量,如果是它们是私有的,则不会出现在代理中。因此,为了实现分布式计算,我们应建立这样一个分布式的对象模型:应用程序应该把需要分布式计算的内容形成一个或多个非可视对象,即NVO,接下来根据NVO生成NVO的接口对象,也就是代理对象,然后,我们把真正实现程序运行的NVO放到服务器端上,把代理对象放在客户器端上,这就PB分布式对象模型的核心。接下来,让我们较为详细地描述代理对象。从真正的意义上来说,代理对象并不是一个真正的对象,它在NVO外覆盖了一层,它只是一个NVO的接

7、口。程序首先调用代理,随后代理在网络中找出对应NVO所在的机器位置,对NVO进行调用。在这里,代理存在于客户端上,NVO存在于服务器端上。让我们来看看服务器端的NVO对象,它是一个实际的对象,它具有真正的对象属性,以及对象功能函数的实现。在未实现分布式之前,它存在客户机上,现在我们把它原封不动移到了服务器上,变成了远程对象。这样,我们就拥有了两类对象,NVO和它代理。接下去,再来描述一下在客户端上的代理和在服务器端上的NVO到底是如何协同工作的。举一个稍复杂的例子。每一个服务器端上NVO都对应一个客户端上的代理。如果在服务器上存在着5个对象,某一客户程序欲调用这5个对象,那么在这一个客户机上就

8、要存在5个不同的代理对象。一个服务程序可以同时为多个客户程序服务,在图中,客户机1拥有3个代理,客户机2拥有2个代理(图15-1)。在服务器上的同一个NVO对象可以与多个客户机的代理相链接。在客户机上的应用程序想要调用到这个NVO,必需拥有这个NVO的代理。在下节中,我们要讨论NVO和代理怎样通讯的。图15-1154 链接对象和运输对象在PB中,为了实现NVO与代理对象的通讯,引入了两类新的对象,链接对象(Connect Object),运输对象(Transport Object)。链接对象(Connect Object)是运行在客户机上的对象。它驻留在客户端应用程序中,用于与服务器通讯。运输

9、对象(Transport Object)是运行在服务器上的对象。它驻留在服务端应用程序中,用于服务器与客户机的通讯。Connection对象与我们所熟悉的事务对象(TransObject)比较类似。数据窗口为了存贮到数据库中的数据,我们首先得定义一个事务对象,让事务对象知道应该与哪一个数据库相链接。类似地,我们先在客户端中建立一些代理,这些代理知道如何与服务端进行通讯。这些通讯信息就存贮在Connection对象中。和事务对象一样,为了区别与不同的服务端程序链接,Connection对象拥有一些属性值。Connection对象最有主要的三个属性值:驱动程序(driver)、位置(Locatio

10、n)和应用程序(Application)。这里所指的驱动程序是网络通信协议,一般为TCP/IP或Named Pipes。位置指的是服务器名,也就是NVO所在的计算机名;应用程序是在服务器上的所运行的程序,在TCP/IP环境下,它可以是一个端口号。当Connection对象知道这三个基本属性值后,就可以调用链接函数与位于服务器中的相应进程进行通讯了。这个链接函数叫做ConnectToServer。就象在以前在数据窗口所做的那样,我们用SQLCA来建立与数据库的联系,我们先定义一个连接对象Connection Object,然后调用ConnectionObject.ConnetToServer建立

11、通讯。和事务对象一样,我们一般需要检查一下Connection对 象的指返回值,看看服务器是否真的正确地链接上了。我们定义了Connection对象的3个基本属性值来确定服务端应用程序,随后检查返回值,这样就使服务端应用程序和服务端的应用程序可以通讯了。我们可以有多个Connection对象,因此,还应该告诉在驻留在客户端代理对象使用哪一个Connection对象。再用数据窗口和事务对象作一下比较,我们为了告诉数据窗口应该使用哪一个事务对象,调用了一个函数SetTransObject。与之类似,我们需用SetConnect函数来建立代理对象和Connect对象联系。就象一个应用程序可以拥有多个

12、数据窗口和不同的数据库建立会话一样,一个客户端程序可以和多个服务端程序进行会话。再来看看客户端。客户端中存在一些代理,它们是NVO的外部接口对象,代理对象通过函数SetConnect来告诉Connect对象应用程序需要建立与服务器的一个链接,紧接着,Connect对象向ConnectToServer函数所指定的服务器发出链接请求。接下去,让我们来看看Transport 对象。就象Connection对象一样,Transport对象定义一些服务端程序属性值,然后将服务器打开,这个打开服务端应用程序的函数叫做侦听Listen,接着对Listen函数返回进行检查,看看它是否正确启动。让我们来回顾一下

13、分布式计算的基本流程:首先创立一些NVO,它是进行真正处理应用程序;然后,根据NVO抽象出它接口对象Proxy代理对象;当一个客户端应用程序调用驻留在其中的代理对象时,由代理对象告诉Connect对象;Connect对象通过网络与服务端正在Listening的Transport对象建立联系;最后Transport对象告诉NVO,这个远程的NVO将计算结果返回。现在,我们把这个分布式对象模型变得稍复杂一些。在PowerBuilder中,一个分布式的服务程序又可以是另外一个服务程序的客户端,这就是所谓的N-tier解决方案。在这种结构中,客户机和服务器建立会话,这个服务器又可以与另一个服务器会话,于是结成一个网状的结构。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号