前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于PowerBuilder的搜索

分布式PowerBuilder设计_数据库_领测软件测试网 领测首页 测试技术 测试博客 测试视频 开源资源 资源下载 测试沙龙 测试杂志 测试论坛 国际认证 您现在的位置:软件测试 > 测试开发技术 > 软件测试开发语言 > 数据库 > 分布式PowerBuilder设计 来源: 作者: 发表时间:2007-05-25 点击:次 获取本文网址二维码 设计clearcasePowerBuilder分布式OracleMySQLSQL Server 分布式PowerBuilder设计 张健姿 01-6-22 下午 03:09:10 1996年6月推出的Power-Builder 5.0,增加了许多新特性,其中较为引人注目的是分布式PowerBuilder的计算方式(Distributing PowerBuilder)。 所谓分布式计算方式和三级系统结构,是近年来提出的一种新的计算 clearcase/" target="_blank" >ccd>分布式PowerBuilder设计张健姿 01-6-22 下午 03:09:10 1996年6月推出的Power-Builder 5.0,增加了许多新特性,其中较为引人注目的是分布式PowerBuilder的计算方式(Distributing PowerBuilder)。 所谓分布式计算方式和三级系统结构,是近年来提出的一种新的计算方式,这就是在传统的客户机/服务器两级结构中再增加一个称作应用服务器的中间级,用以执行复杂的商业逻辑计算。传统的两级结构中商业逻辑一般是放在客户端,少量的则以存储过程的形式放在数据库服务器中。将商业逻辑从其他两级中独立出来,将更适应于日益复杂化和日益变化的商业逻辑的需要,从而带来了开发、维护和使用时的便利。虽然三级结构在传统的数据库领域还没有被人们广泛接受,但在Inte.net&Intranet领域,人们已开始大量使用这种分布式的计算方式了:在Intranet中,系统至少就是由浏览器(客户机)、Web服务器(应用服务器)、数据库这样的三级结构组成。而PowerBuilder支持这种分布式的计算方式,这使得我们使用PowerBuilder开发Internet应用成为了可能。 所谓分布式PowerBuilder的实现就是在客户端远程地初始化一个在服务器端的用户自定义对象,并且调用这一对象的属性和函数。 分布式PowerBuilder中的新概念 服务器应用:在以往的PowerBuilder版本中,Power-Builder应用是作为客户机/服务器体系结构中的客户端应用提交的,在分布式PowerBuilder中引入了服务器应用这个概念。这个应用包括了不可视的用户对象,并被客户端应用调用,这些用户对象被称作远过程对象。这种调用可以是跨进程或跨硬件平台的。分布式PowerBuilder在服务器端有一个PowerScript对象Transport来监听客户端对过程调用的需求,而这个服务器端的应用也可以同一般传统的客户机/服务器应用的客户端或远程的客户端应用一样来调用另外的PowerBuilder服务器应用。 客户应用:PowerBuilder客户应用是用以调用远端对象的部分。分布式PowerBuilder应用包括了一个新的对象,称作Connection,用以连接PowerBuilder服务器应用。当同服务器建立连接后,客户应用将像调用本地的不可视用户对象一样调用远程对象。 远程对象:与其他的不可视用户对象类同。一个远程对象包含了用PowerScript编写的商业逻辑,放在服务器端,作为不可视用户对象的特例,远程对象可以引用各种不可视的函数和数据库的指令,如使用DataWindow的不可视形式DataStore来实现对数据库访问的封装等。远程对象像是一个过程或函数的调用,并支持参数传递和返回结果,支持除对象数据类型以外的其他所有类型。 传输对象:是服务器端用以接收客户请求的特殊连接对象。当使用create transport命令创建一个传输实例后,该对象以对象的属性中所定义的协议监听接收客户的请求。这个对象的属性包括通讯驱动名称、通讯协议类型、超时协议等,得到和设定这些属性的方法同PowerBuilder的其他对象如transaction等一样。 连接对象:是客户端发送请求的客户端的对象。当使用create transport创建一个连接对象时,本对象的Connect To Server函数执行同服务器的连接,通讯方式如通讯名称、协议等由连接对象的属性来决定。 对象存储代理:一种存储用户对象的新选择。存储代理保存对象的远程名称并生成内部代码以供远程调用。当connec-tion对象与之建立连接后,该对象就能够用以远程调用。 新的PowerBuilder对象是nonvisualobject和structure的继承类,它们的关系如下: nonvisualobject connectobject(新) connection(新) transport(新) remoteobject(新) structure connectioninfo(新) 设计一个分布式PowerBuilder应用举例 一、服务器端应用 首先您需要创建一个服务器端的应用。目前所有的分布式PowerBuilder服务器应用都应当运行在32位平台上(Windows NT或Windows 95)。这个应用需有三个组成部分:一、用户自定义的对象类;二、这个对象类在服务器端的代理;三、一个传输对象,这个传输对象并不被调用,它只是用以监听从网络上的客户一端的调用。 ·创建用户对象 我们首先定义一个服务器端的对象类,它的步骤如下: 1.点击用户对象图标。 2.点击new按钮。 3.在NewUserObject对话框中选择Class组中的Custom类型。 4.在进入用户对象的设计中,选择Declare|User Object function菜单项。 5.点击new按钮。 6.函数起名为"of-my-message"。 7.函数的返回值为string型,无参数传递。 8.在函数的Script中写入:Return "Hello World" 9.关闭函数画笔,将这一用户对象存储为uo-my-object" ·设置代理对象 这个代理对象在客户端当作一个类被引用,但它首先应在服务器端创建,创建代理对象的步骤如下: 1.打开刚创建的用户对象uo-my-object。 2.在用户区点击鼠标右键。 3.在弹出菜单中选择"set proxy name"。 4.在代理名称的输入域输入"uo-proxy-my-object",点击OK按钮。 5.存储"uo-my-object"对象。 *这时如果您在Library画笔中看当前的PBL库,您将看到新创建的代理对象。 ·设置传输对象 这个对象的工作方式与PowerBuilder中的事务对象(transaction)很相似,它是同客户端建立连接的结构。设置过程如下: 1.声明一个全局的transport变量。如: transport gt-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.声明一个全局连接对象: connection gc-connection 2.在应用的Open事件中创建连接对象,定义其部分属性并建立同服务器的连接: gc-connection=Create connection 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=Create uo-proxy-my-object 3.调用代理对象的SetConnect()函数传递连接对象的参数,将代理对象实例连到连接对象上:(这一端代码也可在应用的Open事件中执行) gp-uo-proxy-my-object.SetConnect(gc-connection) ·调用远端对象 远端对象的of-my-message函数返回一个字符串,所以我们可以在下列程序中调用这一函数,将其返回值显示出来。 1.在窗口中,设计一个按钮,它的clicked事件如下编写: string ls-retcode ls-retcode=iuo-proxy-my-object.of-my-message() MessageBox("Message From Remote Object",ls-retcode) 2.首先在服务器端运行服务器端的应用; 3.在客户上运行客户端的应用; 4.点击窗口按钮,我们即可得到结果,显示出一个标有"hello World"的消息框。 本文标题:分布式PowerBuilder设计http://www.ltesting.net/ceshi/ruanjianceshikaifajishu/rjcskfyy/sjk/2007/0525/7593.html 原文转自:http://www.ltesting.net 更多 您可能感兴趣的文章 (亲!如果本文有错误,请来挑错) 数据库中Oracle索引的优化设计 软件测试数据库中SQL Server数据库分布式事务的解决方案 数据库中的Oracle Sql语句优化设计 软件测试数据库中Oracle数据库安全性设计建议 (注:本文章只代表作者观点。部分文章内容来自于互联网,如您享有版权可直接联系我们。欢迎登陆领测软件测试论坛参与讨论) --> 最新新闻>> 好的程序需要你至少好好写两遍 程序员编写程序能力的四种境界 2013年德国Software-QS-Tag测试峰会中国演讲者征集 从LV到苹果店的距离有多远 项目经理和产品经理是不是应该分开? 起点反水盛大文学:高管带队辞职 思考问题的方法:如何实践MECE法则 Web测试学习之怎么查看80端口占用 个人手机游戏开发者是如何死的? “批判”百度李彦宏的那封狼性邮件 官方微博求关注: 今日推荐 怎么卸载oracle11g数据库 如何快速的成为一个合格的Oracle DBA SQLServer中批量插入数据方式的性能对比 好的程序需要你至少好好写两遍 程序员编写程序能力的四种境界 项目经理和产品经理是不是应该分开? 思考问题的方法:如何实践MECE法则 Web测试学习之怎么查看80端口占用 个人手机游戏开发者是如何死的? 领测软件测试网42期(北京站)测试技术沙龙圆满成功(含视频地址) 关注排行榜 周排行 月排行 软件测试自动化的未来是什么? 软件测试自动化的未来是什么?“关键字驱动”的由来   说到“关键字驱动”和“测[详细] Google Glass不全面测试 “批判”百度李彦宏的那封狼性邮件 如何有效发现UI用户界面层的缺陷 个人手机游戏开发者是如何死的? 移动互联网的移动用户体验要点是什么? 第43期领测软件测试沙龙即将在3月23日召开 【公告】2013年领测国际喜迁新址 敏捷开发中的QA为何受人的攻击? 传统的软件测试方法体系中的核心内容 Web测试学习之怎么查看80端口占用 Web测试学习之怎么查看80端口占用!刚才需要调试程序发现127.0.0.1无法访问了,启动AP[详细] 起点反水盛大文学:高管带队辞职 2013年德国Software-QS-Tag测试峰会中国演讲者征集 好的程序需要你至少好好写两遍 从LV到苹果店的距离有多远 思考问题的方法:如何实践MECE法则 项目经理和产品经理是不是应该分开? 程序员编写程序能力的四种境界 软件测试专题 安全测试之SQL注入专题 LoadRunner专的Transaction LoadRunner脚本录制设置 LoadRunner脚本录制方法 LoadRunner脚本录制 LoadRunner脚本中的协议选择 LoadRunner入门到精通|LoadRunner从零开始|LoadRunner教程 LoadRunner脚本实例 LoadRunner脚本录制释疑 LoadRunner专题系列——LoadRunner脚本调试 软件测试资源下载 模板 教程 环境 性能 功能 管理 Jmeter 2.6 下载 QTP 10 中文版官方中文补丁 下载 Quicktest Professional 10 (QTP 10) 下载地址 Application Lifecycle Management(ALM 11) 官方中文版下载 ALM11 中文资料 下载 Quality Center 9.0中文版 下载 HttpWatch Basic Edition Version 7.2.20 下载 WIN2003+ORACLE11G+QC11(ALM11) 安装手册 下载 WIN2003+SQL2005(SP3)+QC11(ALM11) 安装手册 下载 WIN2003+SQL2005+QC9 安装手册 下载 软件测试视频 第十二讲 回顾自动化测试 QTP脚本开发过程 描述性编程简介 数据驱动方式 如何读外围数据 错误处理[详细] 第十一讲 增强QTP脚本之建立虚拟对 QTP对不能识别对象的处理 对识别的控件可以显示属性 如何在被测应用中建立虚拟对[详细] 社区精华 栏目导航 OracleMySQLSQL Server qrcode --> 二维码生成需要几秒~点击左键返回页面~!(什么是二维码?) 关于领测软件测试网 | 诚聘英才 | 广告服务 | 投稿指南 | 联系我们 | 网站地图| 友情链接 版权所有(C) 2003-2013 Ltesting(领测软件测试网)|领测国际科技(北京)有限公司 |软件测试培训网 All Rights Reserved 北京市莲花西里 联华世纪写字楼5层508 京ICP备10010545号-5 技术支持和业务联系:info@ltesting.com.cn 电话:010-51297073 _× 推荐新闻