前往Shuct.Net首页

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

关于PowerBuilder的搜索

PowerBuilder 特点 yxh yxh 2 66 2002-09-04T14:27:00Z 2002-12-16T12:11:00Z 2002-12-16T12:11:00Z 7 1248 7119 mh 59 14 8742 9.2812 7.8 磅 0 2 《中大型数据库应用》课程讲义 1.N层式客户机服务器体系 1. 传统的数据库处理方式 是架构在Main Frame上面的,每一个终端机并没有自己的中央处理器(CPU)和存储器(硬盘等),所以每一个终端机只能做数据的输入与输出,所有的数据处理都必须集中在同一台主机上,所以主机的负担很重。 2.C/S体系: 为了解决传统的Main Frame结构中主机负担过重以及价格昂贵等问题;产生了新一代的两层式客户机/服务器体系(Client/Server)。早期的PowerBuilder就是采用两层式客户机/服务器体系设计应用程序的。 整个系统可以分成两个功能层: 第一层包括了软件的应用层和表现层,驻留于客户端。使用PowerBuilder开发出的应用程序主要用于第一层,运行于客户端。 第二层包含数据库和服务器的组件。一个基于SQL的数据库管理系统一般安装在服务器端,应用软件在服务器端进行的操作主要是数据存储和检索。 在两层模式中会有一些应用逻辑以存储过程和触发器的形式存储在服务器端,以优化服务器的性能,但绝大多数的应用逻辑都是放在客户端的。 缺点: ● 性能问题。在大型企业或系统中,应用程序生成的事务量是巨大的。同时,在一些对反应时间要求较高的系统中,性能问题更加突出; ● 应用程序发布问题。将商业规则放在三层结构的中间层可以解决应用程序发布时存在的问题,保证在主要使用某一版本的商业规则时所有用户都使用这一版本。 3.三层式客户机/服务器体系 C/S缺点:程序管理与维护上的困难。产生了新一代的多层式客户机/服务器体系。 3层应用:在新的多层式客户机/服务器体系中,将原本在客户端上面一些有关事务逻辑处理的部分另外独立出来,放置在另一台主机上执行,称之为应用服务器。每一个客户端的应用程序并不直接连接数据库主机,而是先连接到应用服务器,然后再由应用服务器去连接数据库主机。 三层模式将系统分为三个不同的“层”:表现层、商业逻辑层和数据访问层。表现层处理用户界面;数据访问层是数据源;在通常状况下指数据库:商业逻辑层是新增加的一层,指程序中作出智能决策和事务逻辑处理的那一部分功能。把运行在商业逻辑层的软件编写成一个为客户机所调用、能够完成一定逻辑功能的专用软件,同数据库服务器相区别,我们称之为应用服务器。 4.分布式计算(n层应用) 在一个网络中,可以有着多个不同功能的应用服务器,为客户机或其他的应用服务器提供专业服务。这样,三层结构就发展成为N层,这就是所谓的分布式计算方式。 分布式计算的技术优势,包括: l 逻辑封装性:这是分布式模式中最具诱惑力的特征,这种模式的根基在于将以往全部由客户机完成的事务逻辑中的一部分从客户端分开。当需要动态改变一个应用软件的商业逻辑规则时,只要改变一个应用服务器的程序即可,而不需要更改客户端用户界面,这样就无须中断用户,也无须为最终用户重新发放新的界面软件或亲自上门为其安装调试并重新培训用户,因此,提高了工作效率。这种多层模式对于需经常、快速改变应用程序的行业很有帮助。 l 瘦客户机 这种类型的应用在运行时最显著的特点就是减少甚至消除了传统的两层体系结构中,以客户机为中心或称为“胖客户”模式,减轻了客户机的功能负担,使其消肿成为“瘦客户”。“胖客户”是用户感到十分苫恼的事情,用户为使用更强功能的软件,就必须付出高昂的维护费用,不断地为个人电脑的软硬件设备升级。 l 性能 性能的提高是三层模式最终被用户采用的主要原因。将复杂的应用和商业逻辑分离出来由专门的一台应用服务器来处理;既可以提高应用的执行速度,也可以减少网络调用的通信量。不过这种性能提高是有一定代价的。这就是开发时要将应用逻辑分割为客户端逻辑和服务器端逻辑,这就增加了设计的复杂性。 l 安全性管理 在分布式计算模式中,由于所有的商业逻辑都驻留在服务器端,信息管理部门就可以十分方便地监控服务器的运行情况,很容易地控制访问服务器以及与服务器应用打交道人员的数量。这可以大大简化管理员对系统的管理和维护的工作量,并确保系统的可靠运行。 分布式事务处理最广泛和最成功的应用当数Internet/Intranet技术了,浏览器/Web服务器/数据库服务器就分别对应于客户端/应用服务器/数据库服务器三层体系结构中的三个环节,Internet就是一个典型的三层体系结构的应用。 2.PowerBuilder 特点 1.PowerBuilder:一种图形化的快速应用开发(RAD)工具被广泛用于数据库应用开发。 2.PowerBuilder:是用来进行客户/服务器开发的专业工具 从6.0版本开始,PowerBuilder支持三层或是n层结构。对一个应用程序进行分割以后,将代码分为不同的逻辑组件,具体分配取决于系统方案及当前的商业要求,这种结构的优点包括四个方面: ● 可重复使用。可在不同的应用程序间共享; ● 性能提升。将计算机负担从客户机转至服务器,开发者可充分利用计算资源,使应用程序的执行达到最佳状态,由此获得更好的性能; ● 易于管理。可将大型、复杂的应用程序划分为易于管理的模块; ● 易于维护。由于组件集中,便于重复使用,适应商业需求的变化。 使用PowerBuilder可以快速开发出客户/服务器模式及分布式数据库应用程序。 3。PowerBuilder提供对面向对象编程的全面支持,并内置多种对象类,其中以DataWindow对象最为著名,可以方便的访问数据库。PowerBuilder还提供了对多种数据源的简便连接,具有高度的开放性和灵活性。 4.具有强大的、易于使用的第四代编程语言PowerScript. PowerScript是PowerBuilder使用的面向对象的编程语言,它是由命令、语句、函数,还有用户自定义的对象或类及SQL语句组成的,它是一种极为灵活的高级结构化语言。它具有易学易用的特点。 5. PowerBuilder与网络 PowerBuilder的早期版本4.0和5.0非常适用于Client/Server结构的应用系统,但 是随着应用系统结构的发展,对于目前的Web应用结构和瘦客户端的应用模式来说具 有一定的局限性。 PowerBuilder 6.0作了很大改进,提供了强大的组件生成器,可以生成C++、Java,Proxy、COM等组件,具有共享对象、异步处理、Server-Push、Remote Datastore、命名服务器等技术和增强的调试功能,但主要是提供了多种方式支持WEB应用。 PowerBuilder对WEB提供了强大的支持,主要有以下几个方面: ● 对PB Window Plug-in和Window-Activex ● PBWeb客户机的PowerBuilderVM支持; ● 对HTML、PB和Java客户机的连接的支持; ● 用于Web客户机访问中层逻辑的Web.PB。 3.面向对象的开发工具 面向对象是软件开发的一种方法,产生的目标是增强应用程序代码的可重用性和可靠性,同时减少应用程序的维护工作。 在PowerBuilder中有许多种对象,例如应用程序、窗口、控件、菜单等等,每一个对象就是一个应用程序组件,其中有许多称为属性的特性和称为方法(包括事件和函数)的行为。开发人员使用事件驱动的编程方式,就能很快的得到应用程序的雏形,大大缩减了开发周期。 面向对象的开发方法主要特点是: ● 继承性:根据已存在的祖先对象定义子刊、对象,子孙对象继承得到其祖先对象 的所有属性和方法; ● 封装性:被封装的对象之间保持了最大的独立性,对一个对象的修改一般不影响其它对象。大大提高了对象的可重用性并减少系统维护的代价; ● 多态性:不同的对象可以对相同的消息作出不同反应。消息的发出者不需要知道接受者的确切信息就可以发送消息。 4.配套组件 Sybase公司为用户提供了一系列的组件,有:PowerJ,Power++,PowerDynamo, PowerBuilderFoundationClass(PFC),PowerSite,PowerDesigner,JaguarCTS,Adaptive ServerAnywhere,Jaguar3.0,AppModeler6.1,2,ApplicationIntegrator3.0,PowerSite7.0, Objectcycle2.0,InstallSheild 5,Infomaker6.0‘ PowerBuilder 7.0将是您保护原有投资、升级现有应用系统和开发新的应用系统的 最佳工具。 ’ 5.软件工程方法 软件工程方法为软件开发提供了“如何做’’的技术。它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法的设计、编码、测试以及维护等。软件工程方法常采用某种特殊的语言或图形的表达方法及一套质量保证标准。 1.制定计划 对于一个软件工程来说,要确定开发软件系统的总目标,除给出它的功能、性能、 可靠性以及接口等方面的要求,由系统分析员和用户合作,研究完成该软件任务的可 行性,探讨解决问题的可能方案。并对可利用的资源、成本、可取得的效益、开发的 进度做出估计,制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部 门审查。 2.需求分析和定义 对待开发软件提出的需求进行分析并给出详细的定义。软件人员和用户共同讨论决 定哪些需求是可以满足的,并对其加以确切地描述。然后编写出软件需求说明书或系统 功能说明书,及初步的系统用户手册,提交管理机构评审。 3.软件设计 设计是软件工程的技术核心。在设计阶段中,设计人员把已确定了的各项需求转换 成一个相应的体系结构。结构中的每一组成部分都是意义明确的模块,每个模块都和项 目需求相对应,即概要设计。进而对每个模块要完成的工作进行具体的描述,为源程序 编写打下基础,即详细设计。所有设计中的考虑都应以设计说明书的形式加以描述,以 供后续工作使用并提交评审。 4.程序编写 接着要进行程序编码,把软件设计转换成计算机可以接受的程序代码,即写成以某 一种特定程序设计语言表示的“源程序清单”。自然,写出的程序应当是结构良好、清 晰易读的,且与设计相一致。 5.软件测试 测试是保证软件质量的重要手段,其主要方式是在设计测试用例的基础上检验软件 的各个组成部分。首先要进行单元测试,查找各模块的功能和结构上存在的问题并加以 纠正;其次是进行组装测试,将已测试过的模块按一定顺序组装起来;最后按规定的各 项需求,逐项进行有效性测试,决定已开发的软件是否合格,能否交付用户使用。 6.运行和维护 已交付的软件投入正式使用,便进入运行阶段。这一阶段可能持续若干年。软件在运行中可能由于多方面的原因,需要对它进行修改。其原因可能有:运行中发现了软件中的错误需要修正;为了适应变化了的软件工作环境,需做适当变更;为了增强软件的功能需做变更。 组织实施软件工程项目主要目标为; ● 付出较低的开发成本; ● 达到要求的软件功能; ● 需要较低的费用维护; ● 能按时完成开发工作; ● 具有较高可靠性和良好的性能; ● 开发的软件最好要易于移植. 7.应用程序特点: 应用程序对象是PowerBuilder应用程序项目中最高层次的对象,它是可执行程序的入口点.因此必须对应用程序对象做程序的初始化工作设置数据库连接参数,连接数据库,检查数据库连接异常,设置运行程序的环境,程序执行结束时释放资源等. 同时,通过应用程序对象可以设置有关应用程序的全局信息,例如应用程序的名字、图 标、字体等。 1 应用程序结构特点 在开始一个新的项目时,我们必须创建一个应用。在某一时刻只能工作于一个应用中,而对于绝大多数画板来说,我们可以同时访问相同对象类的若干个不同对象(如窗口、菜单等等)。当我们运行一个程序,PowerBuilder执行的是一个应用。 下面列出应用的结构特点: ● 每个PowerBuilder应用程序只能有一个应用对象.在任一时刻,您只能修改或运行一个应用对象;应用对象是个非可视对象,它的四个字体属性用于定义应用程序中其它对象使用的缺省字体。把应用对象的字体属性设置成应用程序中使用最频繁的字体将有助于加快应用程序的开发进程(避免了为每个对象设置所需字体); ● 定义了应用程序图标,即用哪个图标代表运行中的应用程序; ● 定义了库搜索路径,该路径指明了在查找应用程序中包含的各种对象时都检索 哪些应用库。放置在前面的应用库将首先被查找; ● 应用对象中还保存了所有的全局变量.PowerBuilder为每个应用程序都提供五个缺省的全局变量,分别为SQLCA、SQLDA、SQLSA、Error、Message,在应用程序中您既可以直接使用这些预定义的全局变量,也能够在应用对象画笔中更改这些全局变量的类型,只要新的类型从相应的原始类中继承得到即可(使用用户画笔创建新的类型); ● 在应用对象的Open(打开)事件中编写起始脚本才能运行; ● 在大多数情况下,数据库的连接也在应用对象中被编码. PowerBuilder 7.0有两种创建应用对象的方法,一种是使用系统自带的模板根据创建向导创建应用对象,另一种是用户自定义对象。如果使用模板创建应用对象,那么Power-Builder将为您自动创建所有相关的对象,包括主窗口、菜单以及用户对象,同时还产生一个工作任务列表,这对于快速开发应用程序是相当有用的。由于使用模板创建应用对象没有大的灵活性,所以它适用于开发中小型的应用程序。 8.应用对象的事件 应用对象共有六个事件;Open、Close、Idle、SystemError、ConnectionBegin、ConnectionEnd。 这六个事件都十分重要。首先,我们必须在应用的Open事件里编写事件处理程序,否则整个应用程序就什么也不会做。一般情况下,在应用的Open事件内设置应用的初始环境、建立与数据库的连接、打开应用的主窗口等等。 下面一一介绍这几个事件的发生时机和常见用法。 1. Open(打开)事件 应用对象的Open事件脚本是整个应用程序的入口,它只在应用的启动时执行,而且在应用的运行过程中只会运行一次。由于Open事件是应用的起始,所以在编写一个应用程序时必须对应用的Opcn事件编程,否则运行应用程序时,PowerBuilder将会出现一个警告对话框,提醒您必须对应用对象的Open事件编程。 在应用的Open事件中一般进行如下的处理工作; ● 进行应用的初始化工作; ● 取得当前运行环境,确保应用程序所需的所有资源都可以使用; ● 根据INI文件或系统注册表设置某些属性或初始化一个对象; ● 对数据库进行初始化连接; ● 打开应用程序的主窗,. ◆参数 commandline:启动应用程序的命令行字符串(字符串型)。 2. CIose(关闭)事件 同Open事件一样,Close事件也同样在应用程序运行过程中只运行一次,它发生在退出应用程序并且返回到操作系统之前。当关闭应用程序时,也就是关闭应用程序的最后一个窗口时,将激活Close事件。对于MDI应用程序,最后一个窗口指的是最后一个MDI框架。 在应用的Close事件中一般进行如下的处理工作: ● 删除应用程序在运行过程中产生的对象; ● 向INI文件中保存信息,以便下次运行时恢复当前状态; ● 关闭在应用运行中尚未关闭的文件; ● 断开与数据库的连接。 ◆参数(无) 不要在Close 事件中使用Return语句,容易造成无法正常关闭程序. 3.1dle(空闲)事件 当在应用程序的某段程序中使用Idle()函数设置一个定时器时间间隔,如果在时间间隔规定的时间内用户没有敲击键盘或使用鼠标(即用户没有操作应用程序),那么系统产生应用对象的Idle事件,用户的任何交互操作都将重设该定时器。 Idle事件的用途如下: ● 可以利用此事件创建屏幕保护程序; ● 将很重要的数据或资料隐藏起来,并强制用户在长时间未操作应用程序时重新 输入密码; ● 判断用户是否长时间未对应用程序进行任何操作,如果是的话,应用程序可以自动退出、返回系统,这样有助于减少数据库的连接数目并节省数据库资源. ◆参数(无) 4.SystemEFror(系统出错)事件 SystemError事件是当应用运行中发生错误时对错误的最后一道处理程序。可以用它来处理应用运行过程中发生的最严重的错误,可以在此处编写错误处理程序和可能的恢复代码,其中最简单的措施是显示出错信息。如果未对此事件编程,那么系统出错时Power-Buider会通过对话框显示错误代码和错误信息,不过它是用英文表达的,对国内用户显然不友好。 ◆参数(无) 5.ConnectBegin(连接开始)事件 ConnectBegin事件用于分布式PowerBuider应用的服务器端。当客户程序调用ConnectToServer()方法试图与服务端应用程序建立连接时将激活本事件。在本事件的脚本中,程序员可以对用户进行认证。如果用户没有相应的权限,可以拒绝用户的连接请求。 ◆参数 userid:要断开连接的用户名或用户ID(字符串型)。 password:断开连接所用的密码(字符串型)。 corlneetstring:向服务端用户程序提供的字符串(字符串型)。 6,ConnectEnd(连接结束)事件 ConnectEnd事件用于分布式PowerBuider应用的服务器端。当客户程序调用Discon-aectServer()方法断开与服务端应用程序的连接时,触发服务器程序应用对象的ConnectEnd事件。 参数 · userid:要断开连接的用户名或用户ID(字符串型)。 password:断开连接所用的密码(字符串型)。 connectstrlng:向服务端用户程序提供的字符串(字符串型)。 9.应用对象的方法 应用对象方法中各属性如下: ● ClassName():获取应用对象名; ● GetContextService:建立指向固定服务对象的引用.语法为:GetContextService(sn,sr)。其中有两个参数,sn为服务对象的描述串(字符串型),“为所建立的引用(PowerObject对象类型).返回1表示成功,返回-1表示失败.程序员可以通过所建立的引用来使用服务对象的所有属性和方法; ● GetParent:取父对象。返回值为父对象的引用。使用谊引用可以对父对象进行 操作,如设置父对象的属性、调用父对象的方法; ● PostEvent:把事件插入应用对象的消息队列中.语法:PostEvent(e~ent), 其中参数event指事件类型(TrigEvent枚举型或字符串型).如果成功返回 “True'’;如果应用对象没有谊事件或没有编写谊事件的脚本返回“False”; 如果参数为“NULL”,则返回“NULL'’; ● SetLibraryList:设置PBD库文件列表。语法:SetLibraryList(filelist),其中 参数filelist指要设置的PBD文件列表(字符串型).如果成功,则返回1. 在PowerBuilder开发环境中本方法无效,编译成可执行程序之后才能使用本方 法; ● SetTransPool:设置事务缓冲区。语法:SetTransPool(min,max,timeout),其 中参数mln指事务缓冲区中可存储的事务个数最小值(整型),max指事务缓 冲区可存储的事务个数最大值(整型),timeout指事务缓冲区中的事务在请 求连接时最大等待时间(整型).如果成功,则返回1;如果发生错误,则返 回-1.事务缓冲区可以用来加大与数据库连接的吞吐率,并可以控制同时连接 的事务个数; ● TypeOf:取应用对象的类型。返回应用对象的类型(Object 枚举类型)。本方 法通常用来获取类型不确定的对象的类型。对于应用对象来说,本方法的返回 值是Application!。