用Powerbuilder进行分布式应用开发三级体系结构

转载 2012年03月31日 11:12:21

用Powerbuilder进行分布式应用开发三级体系结构

(加入日期:2001-6-20)

保存文章至硬盘】【打印文章】【字体:

分享到: 0
我们一般所开发的数据库应用是基于Client/Server结构的,是两层体系结构。
1、 第一层是客户端的界面和逻辑计算,用PowerBuilder 开发出的应用主要是第一层,运行于客户端。
2、 第二层是数据库和服务器组件。即安装在服务器端的数据库管理系统,应用软件在服务器端进行的操作主要是数据存储和检索。 在两层结构中会有一些逻辑计算以存储过程和触发器的形式存在服务器端,以提高系统性能,但大多数的应用逻辑是放在客户端的。
三层结构是将系统分为有三个不同的“层”:界面,逻辑计算和数据库。界面层是用户界面,数据层是服务器上的数据,逻辑计算是指程序中的计算和控制。
MIS系统越来越复杂,计算和控制越来越多,客户机的负担越来越重,因此需要将逻辑计算从系统中分离出来,单独作为一层,于是就形成了三层结构。逻辑计算的软件被客户机调用,完成一定的逻辑计算,称之为应用服务器。
网络中,可以有多个应用服务器,为客户机或其它的应用服务器提供专业服务,这样,三层结构就发展成为了n层,这就是分布式计算方式。
分布式计算的优势:采用分布式计算有着多方面的技术优势,把逻辑计算封装起来。当需要动态改变一个系统的逻辑计算规则时,只要改变一个应用服务器的程序即可,这样就无需中断用户。这种多级模式对于需经常、快速改变应用程序的行业很有帮助。
PowerBuilder支持分布式事务处理,而且PowerBuilder开发分布式应用十分简单,只要您会使用erBuilder中的用户自定义的不可视对象,您就会很快地掌握分布式PowerBuilder的开发。
在PowerBuilder中,应用服务器一端的功能都是通过不可视用户对象实现的,开发人员可以将PowerBuilder的自定义用户的对象放于应用服务器一侧,被称作远端对象,在客户端放置该用户对象的代理对象。此外,在服务器一侧有一个新的transport对象用于监听任何一个用户或其它应用服务器的请求,在客户端有一个connection 对象用以建立同远端对象的连接。客户端的应用程序通过connection对象连接应用服务器, 连接建立后,客户端的应用就可以象调用本地对象一样调用应用服务器上的对象函数了。
一个简单的分布式PowerBuilder应用举例

一、服务器端应用
首先您需要创建一个服务器端的应用。目前所有的分布式PowerBuilder服务器应用都应当运行在32位平台上(WindowsNT或Windows95)。
这个应用需有三个组成部分:
一、用户自定义的对象类;
二、这个对象类在服务器端的代理;
三、一个传输对象,这个传输对象并不被调用,它只是用以监听从网络上的客户一端的调用。
创建用户对象
我们首先定义一个服务器端的对象类,它的步骤如下:
1.点击用户对象图标。
2.点击new按钮。
3.在NewUserObject对话框中选择Class组中的Custom类型。
4.在进入用户对象的设计中,选择Declare|UserObjectfunction菜单项。
5.点击new按钮。
6.函数起名为"of-my-message"。
7.函数的返回值为string型,无参数传递。
8.在函数的Script中写入:Return"HelloWorld"
9.关闭函数画笔,将这一用户对象存储为uo-my-object"
设置代理对象
这个代理对象在客户端当作一个类被引用,但它首先应在服务器端创建,创建代理对象的步骤如下:
1.打开刚创建的用户对象uo-my-object。
2.在用户区点击鼠标右键。
3.在弹出菜单中选择"setproxyname"。
4.在代理名称的输入域输入"uo-proxy-my-object",点击OK按钮。
5.存储"uo-my-object"对象。
这时如果您在Library画笔中看当前的PBL库,您将看到新创建的代理对象。
设置传输对象
这个对象的工作方式与PowerBuilder中的事务对象(transaction)很相似,它是同客户端建立连接的结构。设置过程如下:
1.声明一个全局的transport变量。
如: transportgt-transport
2.在application的Open事件中写下:
gt-transport=Create transport
gt-transport.driver="namedpipes"
gt-transport.location="."
gt-transport.application="my-dpbserv"
gt-transport.options="" gt-transport.Listen()

二、客户端的应用
在客户端的应用有四个组成部分:
一、得到在Server端创建的代理对象,将其放入客户端的对象库中;
二、连接服务器端的应用,这一步骤即是创建一个连接对象(connect)的实例;
三、创建代理对象,设置它的连接(用SetConnec-tions()连接到Connect对象上);
四、调用远过程对象,测试这一连接。
将代理对象放入客户端的对象库中,这里您有以下两种方法实现:
一是拷贝"uo-proxy-my-object"这一代理对象到客户端的应用对象库中;
另一个办法是将服务器端"uo-proxy-my-object"这个对象所在的对象库也放入客户端的搜索库中。
将客户端连接在服务器应用上:
1.声明一个全局连接对象: connectiongc-connection
2.在应用的Open事件中创建连接对象,定义其部分属性并建立同服务器的连接:
gc-connection=Createconnection
gc-connection.driver="namedpipes"
gc-connection.location="SERVERNAME"
gc-connection.application="my-dpbserv"
gc-connection.options=""
gc-connection.ConnectToServer()
其中location属性是指服务器应用运行所在的那个计算机的名字:
application属性是传输对象所在的服务器端应用的名字。
创建代理对象实例,将其连到连接对象上。
1.声明一个"uo-proxy-my-object"的全局变量。(这也正是要将这一代理对象置于客户端应用所搜索到的路径中的原因)
uo-proxy-my-object gp-uo-proxy-my-object
2.在应用对象的Open事件中键入下列代码:
gp-uo-proxy-my-object=Createuo-proxy-my-object
3.调用代理对象的SetConnect()函数传递连接对象的参数,将代理对象实例连到连接对象上:
(这一端代码也可在应用的Open事件中执行)
gp-uo-proxy-my-object.SetConnect(gc-connection)
调用远端对象:
远端对象的of-my-message函数返回一个字符串,所以我们可以在下列程序中调用这一函数,将其返回值显示出来。
1.在窗口中,设计一个按钮,它的clicked事件如下编写:
stringls-retcode
ls-retcode=iuo-proxy-my-object.of-my-message()
MessageBox("MessageFromRemoteObject",ls-retcode)
2.首先在服务器端运行服务器端的应用;
3.在客户机上运行客户端的应用;
4.点击窗口按钮,我们即可得到结果,显示出一个标有"helloWorld"的消息框。

用Powerbuilder进行分布式应用开发三级体系结构

我们一般所开发的数据库应用是基于Client/Server结构的,是两层体系结构。  1、 第一层是客户端的界面和逻辑计算,用PowerBuilder 开发出的应用主要是第一层,运行于客户端。  ...
  • sqlove
  • sqlove
  • 2014年02月19日 20:30
  • 649

Windows CE 体系结构与应用开发

  • 2007年09月03日 22:40
  • 4MB
  • 下载

分布式应用开发相关的面试题收集

转载:http://www.tuicool.com/articles/q2QjYb 1.  生产系统每天会产生一个日志文件F,数据量在5000W行的级别。文件F保存了两列数据,一列是来源渠道...
  • shmnh
  • shmnh
  • 2017年06月15日 16:57
  • 1238

Delphi7组件及分布式应用开发

  • 2004年12月16日 04:59
  • 19.54MB
  • 下载

Delphi 7组件与分布式应用开发

Delphi之面向对象的界面复用技术 作者陈省 代码复用和界面复用   面向对象的编程思想强调代码的可复用。而Delphi的精髓实际上就是Object Pascal语言,Object Pasc...

Delphi7组件及分布式应用开发

  • 2008年10月10日 15:22
  • 19.94MB
  • 下载

基于EJB组件的分布式应用开发

  • 2009年05月19日 14:19
  • 96KB
  • 下载

高性能分布式应用开发中间件ICE简介

http://lanhy2000.blog.163.com/blog/static/436786082012327449775/
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用Powerbuilder进行分布式应用开发三级体系结构
举报原因:
原因补充:

(最多只允许输入30个字)