powerbuilder自学课件 (11).ppt_第1页
powerbuilder自学课件 (11).ppt_第2页
powerbuilder自学课件 (11).ppt_第3页
powerbuilder自学课件 (11).ppt_第4页
powerbuilder自学课件 (11).ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第12章 分布式应用程序开发 重点内容: 分布式体系结构概述 PowerBuilder分布式应用开发 EAServer应用服务器概述 COM/MTS组件技术 创建基于EA Server的分布式程序,一、分布式体系结构概述,三层架构 表示级主要负责处理用户界面; 业务逻辑级是新增加的级,指程序中作出智能决策的那一部分功能; 数据访问级是数据源,通常指数据库。 分布式应用 客户应用是指用户界面和简单固定的业务逻辑 新的服务器应用是应用中心核心的、易变的业务逻辑,三层体系架构,一、分布式体系结构概述,分布式体系的技术优势 逻辑封装性。这是分布式模式中最具有诱惑力的特征。以往全部由客户机完成的业务逻辑

2、中的一部分从客户端分开。当公司需要动态改变一个应用软件的业务逻辑规则时,只需改变应用服务器的程序即可。而不需要改变客户端用户界面,这样就不无需要中断用户,避免最终用户重新发放新的界面软件或亲自上门为其安装调试并重新培训用户,提高了工作效率。 瘦客户机。传统的二层模式客户端程序肥大,即“肥客户端”。现在业务越来越复杂,变化越来越频繁,需要随时更新客户端程序,大大增加维护量,造成维护工作困难;同时客户机的机器性能要求更高,客户为了使用更强功能的软件,不断地为个人电脑的软硬件设备进行升级。三层/多层的体系结构,客户端将其消肿为“瘦客户”,减轻了客户机的功能负担。 安全性管理。传统结构是客户机与服务器

3、直接连接,安全性低。非法用户容易通过客户端直接进入中心数据库,造成数据损失,而三层/多层体系结构显然没有此问题。在该体系结构中,所有的业务逻辑都驻留在服务器端,信息管理部门就可以十分方便地监控服务器的运行情况,很容易地控制访问服务器以及与服务器就用打交道人员的数量。 性能。由于采用三层/多层的模式,把复杂的业务逻辑放在中间应用服务器上,这可以提高运行速度,同时可以减少网络的流量,二、PowerBuilder分布式应用开发,1. PowerBuiler分布式应用使用的基本概念 不可视对象:不可视对象因没有任何可视的成份而得名。不可视对象有通用不可视对象和标准不可视对象两种。 代理对象:在不可视对

4、象的外围增加一层作为编程的接口层,这就是此不可视对象的代理对象。不可视对象所进行的事务处理放在应用服务器上,而它的代理对象放在客户端。 连接对象:连接对象是客户端与应用服务器连接的桥梁。连接对象有三个重要属性,他们是应用程序、驱动程序、位置 传输对象:传输对象应用服务器与数据库连接的桥梁。传输对象有二个重要的属性应用程序和驱动程序。应用程序是指正在监听的应用名称,驱动程序是指TCP/IP或命名管道协议,二、PowerBuilder分布式应用开发,2.分布式PowerBuilder运行原理,二、PowerBuilder分布式应用开发,2.分布式PowerBuilder运行原理 (1)客户端实例化

5、一个连接对象实例 (2)连接对象调用ConnectToServer方法,连接到中间层(应用服务器),如连接成功,组件服务器将在内存开辟一个用于该客户端应用的工作区。 (3)连接对象实例调用Createinstance方法,创建一个组件代理对象实例。系统将在服务器端初始化一个不可视对象实例。 (4)组件代理对象实例创建成功后,就可以调用组件功能实现业务逻辑。 (5)组件通过传输对象提供服务,响应结果返回给连接对象。 (6)连接对象把数据返回给组件代理,组件代理再把数据返回到客户端,三、EAServer应用服务器概述,1. EAServer应用服务器安装,运行PowerBuilder10.0安装盘

6、第二张盘EAServer EAServer5.1目录下的Setup.exe,三、EAServer应用服务器概述,1. EAServer应用服务器安装,三、EAServer应用服务器概述,2. EAServer应用服务器的配置方法,选择“开始”|“程序”|Sybase| EAServer5.0.1|jaguar server命令,选择“开始”|“程序”|Sybase| EAServer5.0.1|EAServer Manager命令,选择“工具”|“连接配置文件”命令,单点“新建”按钮,三、EAServer应用服务器概述,2. EAServer应用服务器的配置方法,单击“确定”按钮,四、COM/

7、MTS组件技术,1.创建COM组件,四、COM/MTS组件技术,1.创建COM组件,四、COM/MTS组件技术,1.创建COM组件,四、COM/MTS组件技术,2.开发COM组件的业务逻辑 添加一个public成员函数uf_square,返回值类型为long,参数名称为ll_value,参数类型为long,然后保存对象。具体代码如下: return ll_value*ll_value 事件列表,四、COM/MTS组件技术,3.编译生成COM/MTS组件,P_comdemo_commts,选择Edit|Properties命令,打开Library标签,四、COM/MTS组件技术,4.查看注册成功

8、的MTS组件 选择“开始”|“控制面板”|“管理工具”|“组件服务”命令,打开“组件服务”对话框,展开控制台根目录下的组件服务树形列表,四、COM/MTS组件技术,5.客户端使用COM/MTS组件 新建一个窗口,名称为w_sample,其界面设计如图12-42所示。“的平方”是左边的文本框编辑框为sle_1,“的平方”是右边的文本框编辑框为sle_2,“计算”按钮为cb_1。 设计界面如下,四、COM/MTS组件技术,5.客户端使用COM/MTS组件代码及运行结果 long a,b,rs OLEObject obj integer li_rc obj=create OLEObject li_r

9、c=obj.ConnectToNewObject(PB100.n_comdemo) if li_rc 0 then destroy obj Messagebox(提示,连接COM组件失败!错误代码是+string(li_rc) return end if a=long(sle_1.text) rs=obj.uf_square(a) sle_2.text=string(rs,五、创建基于EA Server的分布式程序,1.分布式程序开发准备工作 1)数据库及数据源的确定 选择SQL Server中的Master数据库,建立t_user表,插入一条记录,用户名123,密码123。 通过ODBC连接

10、,数据源的名称为login,五、创建基于EA Server的分布式程序,1.分布式程序开发准备工作 2)建立PB到EAServer组件服务器的连接,选择Tools|EAserver Profile命令,单击ADD按钮,单击test测试,五、创建基于EA Server的分布式程序,2.创建EAServer连接缓存,启动EAServer管理平台,展开树状节点servers|jarguar,右键单击Connection Cache,选择弹出菜单New Connection Cache命令,Connection Cache Name文本框:用于设置连接缓存的名称 Description文本框:用于设置

11、连接缓存的描述信息,五、创建基于EA Server的分布式程序,2.创建EAServer连接缓存,五、创建基于EA Server的分布式程序,2.创建EAServer连接缓存,五、创建基于EA Server的分布式程序,3. Jaguar组件开发包创建,Sybase Central对话框,选中Packages文件夹,然后选择“文件”|New Packages命令,打开New Package对话框,五、创建基于EA Server的分布式程序,3. Jaguar组件开发安装包,Sybase Central对话框左边选中servers|Jaguar|Install Packages文件夹,选择“文件

12、”|Install Package命令,五、创建基于EA Server的分布式程序,3. Jaguar组件开发开发组件,五、创建基于EA Server的分布式程序,3. Jaguar组件开发开发组件,五、创建基于EA Server的分布式程序,3. Jaguar组件开发开发组件,五、创建基于EA Server的分布式程序,3. Jaguar组件开发编写业务逻辑 (1)打开n_jaguardemo不可视用户对象,首先定义一个组件实例变量。 TransactionServer itr_jaguar (2)在n_server_login的Activate事件中添加连接EAServer服务器的代码:

13、integer li_result li_result=this.getcontextService(TransactionServer,itr_jaguar) if li_result1 then messagebox(系统提示,创建jaguar事务对象失败。) return -1 end if sqlca.dbms=odbc sqlca.database=login sqlca.DBParm=ConnectString=DSN=login;uid=sa;pwd=,usecontextobject=yes,cachename=login connect using sqlca; if sql

14、ca.sqlcode0 then messagebox(系统提示,连接数据库失败。) return -1 end if,五、创建基于EA Server的分布式程序,3. Jaguar组件开发编写业务逻辑 (3)在n_jaguardemo组件对象的Dcactive事件中添加断开事务连接的代码: Disconnect using SQLCA; (4)编写函数of_confirm_password。从数据库中提取密码,并返回客房端供核对。该函数参数为引用型reference,名称为as_name。代码如下: string ls_password select username into :ls_pa

15、ssword from t_user where userpassword=:as_ name; if sqlca.sqlcode0 then ls_password=-1 end if itr_jaguar.SetComplete() return ls_password 业务逻辑写完后,把组件n_jaguardemo分发到EAServer服务器上,五、创建基于EA Server的分布式程序,3. Jaguar组件开发开发组件,五、创建基于EA Server的分布式程序,3. Jaguar组件开发开发组件,五、创建基于EA Server的分布式程序,3. Jaguar组件开发开发组件,五、创

16、建基于EA Server的分布式程序,4. 开发客户端程序 建立一个客户端应用程序,名称为client_login。然后建立个登录窗口界面,如图12-86所示。“用户名”文本编辑框为sle_1,“密码”文本编辑框为sle_2,并设置password属性,“确定”按钮为cb_1,“关闭”按钮为cb_2,五、创建基于EA Server的分布式程序,5. 开发组件代理,五、创建基于EA Server的分布式程序,5. 开发组件代理,五、创建基于EA Server的分布式程序,6. 建立连接对象,五、创建基于EA Server的分布式程序,6. 建立连接对象,五、创建基于EA Server的分布式程序

17、,7. 编写客户端业务逻辑 (1)定义一个应用程序全局变量。这是因为一切的操作都是连接对象方法去调用组件的。 n_client_login_connect in_connect (2)在应用程序Open事件中添加如下代码,该代码用于连接EAServer服务器。 in_connect=Create n_client_login_connect if in_connect.ConnectToServer()0 then messagebox(提示,连接EAServer服务器失败。) halt close end if open(w_login) (3)登陆窗口w_login,声明一个窗口内的局部变

18、量 n_jaguardemo in_jaguardemo_proxy (4)在窗口w_login的open事件中添加创建组件代理代码。 integer li_result li_result=in_connect.Createinstance(in_server_login_proxy,server_login_package/n_server_login) if li_result0 then messagebox(提示,创建COM组件代理失败,错误码:+string(li_result) halt close end if,五、创建基于EA Server的分布式程序,7. 编写客户端业务逻辑 (5)在“确定”按钮的clicked事件添加如下代码,该代码用于验证口令。 string ls_username,ls_result ls_username =trim(sle_1.text) ls_result =in_jaguardemo_proxy.of_confirm_password(ls_usern

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论