1、Appeon for PowerBuilder (APB):将PowerBuilder应用向Web发布的解决方案Appeon技术白皮书 Draft 1.0摘要本文介绍了Appeon for PowerBuilder (APB),一个给Sybase PowerBuilder增添Web发布功能的工具。使用APB, 开发人员既可以将旧有用PowerBuilder开发的C/S应用自动迁移至B/S应用,又能快速高效的开发全新的多层B/S应用。目录1 名词定义11.1 C/S应用11.2 B/S应用11.3 网络发布21.4 网络迁移21.5 网络开发22 导言42.1 传统的方法42.2 正阳的方案53
2、 PB应用网络发布方案63.1 导出63.2 翻译63.2.1 应用映射63.2.2 对象映射73.2.3 用户代码映射83.2.4 数据窗口映射83.3 发布84 APB产品概述94.1 系统架构94.1.1 开发环境104.1.2 运行环境104.2 产品部件104.2.1 Appeon Developer104.2.2 Appeon Server114.2.3 Appeon Enterprise Manager (AEM)124.3 系统需求144.3.1 Web浏览器需求144.3.2 Appeon Developer需求144.3.3 Appeon Server需求154.3.4 数
3、据库服务器需求154.4 高级话题164.4.1 集群和负载均衡164.4.2 B/S应用的安全性174.4.3 B/S应用运行性能184.4.4 与外部Web技术的集成195 支持PB编程特性215.1 总体要求215.2 系统对象215.3 系统控件225.4 面向对象的编程特性225.5 PowerScript语言基础225.6 用户对象235.7 PowerScript语句235.8 嵌入式SQL245.9 系统函数245.10 系统事件255.11 DataWindow295.11.1 DataWindow数据源295.11.2 DataWindow显示风格295.11.3 Data
4、Window运算符和表达式305.11.4 DataWindow对象325.11.5 DataWindow控件335.11.6 DataStore对象355.11.7 DataWindowChild对象375.12 PFC支持396 APB产品优势456.1 商业优势456.2 技术优势456.3 与同类产品的比较467 总结471 名词定义1.1 C/S应用C/S应用(Client/Server applications: C/S应用)在本世纪90年代被广泛的使用。C/S应用一般采用第4代编程语言(4GL)开发,这些语言包括微软的Visual Basic,Sybase的PowerBuilde
5、r和Oracle公司的Forms等。虽然最新版本的PowerBuilder (版本9)引进了某些Web开发的功能,如JSP (JavaServer Page)开发,但从通常意义上讲,PowerBuilder更多的是作为一种C/S应用的开发工具,它在Web开发方面的功能是受到限制的。除非特别声明,在本文中使用的“PowerBuilder应用”或“PB应用”一词均指使用PowerBuilder开发的C/S应用程序。C/S应用最显著的特征是具有一个“胖”客户端,胖客户端需要完成大量的数据处理操作。胖客户端包含应用程序的用户界面以及业务逻辑,并操纵后端数据库里的数据。C/S架构一般也被称为2层结构(客
6、户端层和数据库层)。但是,一种新的C/S架构被称为3层结构,在3层结构中引进了用于存放应用逻辑的中间层。这种特殊的C/S架构包含3个独立的、定义明确的流程,每一流程运行于不同的平台上: 运行于用户机器(客户端)上的用户界面。 负责处理数据的功能模块。这种中间层运行于单独的服务器上,被称作应用服务器。 数据库管理系统(DBMS)储存数据,响应来自中间层的数据请求。这一层运行于另一个服务器,被称作数据库服务器。这种3层架构更具模块化,它的优点是在对一层进行修改或替换时不会影响到其他的层。但是,无论C/S应用属于2层还是3层,其客户端均是“胖”客户端。这样就带来了高维护成本和低可供性的缺点,这将最终
7、导致较高的拥有成本(TCO)。所以,企业一般急切需要将他们旧有的C/S架构的ERP, MIS或CRM等系统迁移至更具扩充性的网络架构中。1.2 B/S应用B/S应用或称为Web应用,是继C/S模式自然发展后的产物。B/S开发需要完全不同的技术和技能,比如HTML, JavaScript, ASP/JSP/PHP, Java/J2EE或.NET等。我们每一个人都有使用B/S应用的经验:在我们访问因特网(Internet)的时候,每一个网站或多或少的被认为是一个在网络上运行的应用程序,这些应用程序给最终用户提供一定的功能,如在线购物或电子邮件管理等。B/S应用拥有被称做“Web浏览器”的瘦客户端,
8、这是与C/S应用最大的不同。流行的商业Web浏览器有微软的Internet Explorer (IE)和网景公司的Netscape Navigator等。目前,大部分的个人电脑都拥有这些Web浏览器,用以访问存放于网络服务器上的Web页面。这种网络架构被称为B/S架构(browser/server: 浏览器/服务器架构)。简单的B/S应用一般只使用一台Web服务器和一台数据库服务器。而对于大型的企业,他们的B/S系统一般采用独立的应用服务器(application servers),用于存放应用的业务逻辑,并在Web服务器和数据库服务器之间起协调作用。瘦客户端给企业带来的优势是明显的:它使应用
9、程序的前端不需要任何维护成本。一个多层的网络架构带来的优越的服务质量包括:可扩充性、可供性、安全性、可靠性和灵活性。1.3 网络发布Appeon for PowerBuilder的网络发布被定义为:将一个以源代码(PowerScript)形式存在的PowerBuilder应用转换成一个能在Web浏览器内立即运行的B/S应用的自动过程。Appeon for PowerBuilder的网络发布是一个100%自动进行的过程。Appeon拥有多项行业领先的技术,使得将PowerBuilder应用向Web发布成为可能。1.4 网络迁移网络迁移指的是企业在Web环境下重新实施旧的C/S系统的总体过程。很多
10、企业多年以来一直使用C/S系统,这些C/S应用承载着企业的核心业务。因此将这些C/S应用迁移至网络乃举足轻重的任务,整个迁移过程涉及计划、评估、决策等多项步骤。网络迁移一般采用的方法是重写法。重写法指的是依照旧的C/S应用的功能,采用JSP或.NET等Web技术编写一个相应的B/S应用。重写法相当于针对旧的C/S应用开发一个新的B/S应用,其缺点是需要新的技术和开发人员,其开发成本高,时间长。使用APB进行网络迁移,依赖APB将PowerBuilder应用向Web发布的功能,重用PowerBuilder应用的源代码,免去了任何编写网络代码的烦恼,因而极大的降低了网络迁移项目的周期和成本。1.5
11、 网络开发网络开发指的是开发一个新的B/S应用的总体过程。诸如RUP (Rational Unified Process)等软件工程的理论将软件开发的流程明确的划分为若干工作流,这些工作流包括商业建模、需求分析、设计、编码、测试和发布的工作,分布于软件开发周期的不同阶段(先起、精化、构建、成型)。网络开发同样遵从于这些类似的流程。2 导言2.1 传统的方法企业大多认识到,将C/S应用迁移至网络,是事业进程中的当务之急。然而,将 PowerBuilder C/S应用重新架构为B/S应用不仅耗时巨大,而且需要PowerBuilder开发人员学习新的技术。取决于应用架构的特性,PowerBuilde
12、r应用的窗口和数据窗口(DataWindow)可能需要逐一重写。除此之外,基于HTML的普通B/S应用在界面交互能力上远远差于丰富用户界面的PowerBuilder应用。因此,网络迁移项目可能花费数月甚至数年的时间完成,而产生的B/S应用给予用户的体验却远逊于C/S应用。在当今充满挑战的商业环境下,PowerBuilder应用企业要求他们的C/S应用能快速、简便地迁移至网络,并且要求迁移过程使用已有的编程技术。并且,PowerBuilder应用企业看重网络环境下的丰富用户界面,以便能够在保留原有应用用户的同时吸引更多的新用户。图 21 网络迁移前:采用PowerBuilder开发的C/S应用2
13、.2 正阳的方案Appeon for PowerBuilder产品能够将整个PowerBuilder应用自动的迁移到网络。Appeon for PowerBuilder以PowerBuilder应用的原始代码为依据,自动映射生成多层架构的B/S应用。生成的B/S应用运行于标准的微软网络浏览器内,以HTML精确复制C/S应用的用户界面,不仅达到C/S应用的可使用性,并且带来了多层网络架构的优越的服务质量(QoS),包括可扩展性、可供性、安全性、可靠性和灵活性。Appeon for PowerBuilder 能够在PowerBuilder开发环境内完成B/S应用的全部生成过程。在整个生成过程中,开
14、发人员不需要编写任何HTML,Java,.NET或JavaScript代码 - 只需运用标准的PowerBuilder编程技术即可。利用Appeon for PowerBuilder,企业能继续使用PowerBuilder开发新的C/S应用,仅需点击一个按钮,便能生成该PowerBuilder应用的网络版本。同样,企业可以用Appeon for PowerBuilder将现有的C/S应用转化为B/S应用。开发B/S应用原本是繁复的工作,如今通过优化现有的PowerBuilder应用或者开发新的PowerBuilder应用便可完成,熟悉而又简单。图 22 网络迁移后:运行于IE浏览器内100%基
15、于HTML的B/S应用3 PB应用网络发布方案Appeon for PowerBuilder能将一个PowerBuilder应用发布至网络,这个发布的过程分为三步自动进行。在PB应用的网络发布过程进行完毕后,用户得到的是一个以HTML, JavaScript和XML精确复制原有PB应用的用户界面以及应用逻辑,并运行于标准Web浏览器的多层B/S应用。3.1 导出Appeon for PowerBuilder对一个PowerBuilder应用程序的源代码,即PowerBuilder库文件(*.PBL文件)进行解析,将PBL文件中的所有内容,包括PBL中包含的所有对象的定义和对象中写入的用户代码导
16、出,将导出的源代码以XML格式纪录(XML语法树)。3.2 翻译Appeon for PowerBuilder以PB应用导出后生成的XML语法树中的代码为依据,通过一系列复杂的映射关系,将PB源代码自动翻译为HTML, JavaScript和XML语言。3.2.1 应用映射转换前的PB应用属于C/S架构,转换后生成的是B/S应用,这两种应用存在着架构上的差异。因此,Appeon for PowerBuilder在将PB应用向B/S应用映射的过程中,就涉及应用总体的多个方面做出了各种策略性的处理: 用户界面PB应用的用户界面包括窗体、菜单、工具条以及各种可视化控件。在PowerBuilder库文
17、件(PBL文件)中,每一个窗体的源代码都对窗体以及窗体中包含控件的外观做了描述,如窗体的类型、大小;控件的尺寸、颜色和显示字体等。这些对界面的描述经Appeon for PowerBuilder的判别后,被翻译为相应的HTML语言,Appeon采用HTML语言丰富的标签如, , 等,和各类标签的style等属性来模拟PB应用中的各类可视化控件。如果PB应用中由于用户操作或代码,动态改变了用户界面的外观,则利用嵌入HTML的JavaScript语言来动态修改Web页面的外观。 业务逻辑PB应用中业务逻辑存在于写在窗口及窗口内控件中的用户代码,以及PB用户对象(user object)中的代码等。
18、这些代码亦存放于PowerBuilder库文件中(PBL文件)。Appeon for PowerBuilder将这些业务逻辑自动翻译为相应的JavaScript语言。 应用架构将PB应用映射成B/S应用存在着应用架构上的转变:在PB应用中,胖客户端负责显示应用用户界面以及所有业务逻辑的运算;在B/S应用中,数据库操作和某些业务逻辑则在应用服务器内完成。在翻译PB应用的过程中,Appeon for PowerBuilder将胖客户端一分为二,PB应用的用户界面、界面逻辑、和简单业务逻辑被翻译为HTML和JavaScript并发布至HTTP服务器;PB应用的数据窗口(DataWindow)定义和有
19、关数据服务上传至应用服务器内运行,从而实现应用表现层和逻辑层分开的、真正的多层结构的B/S应用。 事务处理和数据库连接在PB应用中,用户通过编写代码操纵Transaction对象以及嵌入式SQL语句和数据窗口(DataWindow)来完成事务操作。PB应用的胖客户端直接与数据库交互,用户通过修改Transaction的属性,可以控制与数据库的连接。在转换后的B/S应用中,B/S应用依靠中间层 应用服务器(Appeon Server)的连接缓存(connection cache)建立与数据库的连接。对于连接缓存,用户需要手工配置。所以,在向B/S应用的转换过程中,PB应用中通过Transacti
20、on对象进行事务操作的方式被应用服务器的连接缓存取而代之。所有的事务操作最终都由连接缓存来完成。 数据库在转换PB应用的过程中,Appeon for PowerBuilder对原有PB应用使用的数据库不做任何的修改,原有PB应用的数据库服务器仍然被翻译生成后的B/S应用所使用。3.2.2 对象映射PowerBuilder是一种很强的面向对象的编程语言,一个PB应用就是由各种不同的对象组成,包括应用对象,数据窗口对象,菜单对象,以及可视化/非可视化用户对象等。Appeon for PowerBuilder采用HTML和JavaScript来构筑翻译后的B/S应用,B/S应用同样具有很强的“对象”
21、概念:每一个PB对象(窗体、菜单、NVO)和每一个PB控件(按钮、下拉框、Tab、TreeView等)均被翻译为一个对应的JavaScript类。各种JavaScript类(class)便是构成翻译后B/S应用的主要组成部分。3.2.3 用户代码映射Appeon for PowerBuilder翻译PB应用在代码级别上的映射即是:将PowerBuilder代码(PowerScript)翻译为对应的JavaScript。代码的翻译是对编程语言各个层面上的特性进行复制,从对运算符、数据类型、变量声明、赋值的翻译,直至对系统函数、语句、结构、对象的方法、属性和事件的映射。3.2.4 数据窗口映射PB
22、应用中所有的数据窗口(DataWindow)被映射为XML文件,XML定义了数据窗口的类型、外观、和数据结构等。B/S应用依据XML中的数据窗口定义,输出HTML DataWindow。3.3 发布PB应用经过翻译后,生成了一系列的HTML, JavaScript和XML文件。这些文件停留在本地机器上,需要将它们上传到网络服务器,这样用户才能使用Web浏览器访问存放在服务器上的B/S应用。用户需要配置以下的信息,以便Appeon for PowerBuilder利用这些信息,自动的完成将B/S应用上传或发布的工作: 需要存放B/S应用的HTTP服务器的IP地址和端口号 在需要存放B/S应用的H
23、TTP服务器上建立一个FTP服务器,并告诉Appeon for PowerBuilder这台FTP服务器的IP、端口、账号信息。Appeon for PowerBuilder依靠FTP上传B/S应用的HTML, JavaScript和XML文件。 需要存放B/S应用的应用服务器的IP地址、端口号和账号信息。在B/S应用的发布过程中,Appeon for PowerBuilder使用IIOP协议,向应用服务器灌输B/S应用数据服务的相关功能。4 APB产品概述4.1 系统架构Appeon for PowerBuilder按照标准的多层Web体系结构工作,如下图。在这个Web体系结构中包括了几层,
24、每层都有特定的用途,所有的层可以在一个独立的物理机上,或者分别在不同的机上。例如,Web服务器、应用服务器以及Database服务器可能在一台计算机上,也可能在不同的计算机上。此外,每层可以包含多个物理机。例如,可以将应用服务器配置成一个包含多个物理机的集群,用来实现负载平衡。图 41 Appeon for PowerBuilder系统体系结构该体系结构中的每一层都要完成特定的任务,所以每部分都要安装相应的Appeon组件,有的还需要安装第三方软件。所谓“第三方”,就是指既非Appeon(第一方),也非Sybase(第二方)的软件生产商。下表简要列出了各个层的名称,用途,和需要安装的Appeo
25、n软件以及第三方软件。计算机用途需要安装的Appeon软件需要安装的第三方软件客户端访问远程Appeon Web应用。无Microsoft Internet ExplorerWeb服务器承载Appeon Web应用的表示层,响应客户端请求,同时负责将有关数据的操作提交至后台应用服务器。Appeon Server Web ComponentEAServer HTTP Server,或者其他与EAServer兼容的Web服务器,例如Apache,IIS等。应用服务器承载Appeon Web应用的后台操作逻辑,为Web应用提供接口和管理服务。Appeon ServerEAServer和Adaptiv
26、e Server Anywhere数据库服务器承载Web应用的数据库。无与Web应用使用的数据库相应的DBMS开发机承载PowerBuilder应用,实现PB到Web的转换。Appeon DeveloperPowerBuilder4.1.1 开发环境在图4-1中,开发机、Web服务器和应用服务器构成采用Appeon for PowerBuilder进行网络迁移或者网络开发的环境。PB开发人员在开发机上工作,开发机安装了PowerBuilder,PB开发人员将PB应用程序调入PB开发环境中,并使用Appeon for PowerBuilder将PB应用程序翻译成B/S应用,并将B/S应用发布到W
27、eb服务器和应用服务器上。4.1.2 运行环境在图4-1中,客户端、Web服务器、应用服务器和数据库服务器构成了翻译后的B/S应用的运行时架构。翻译后的B/S应用属于真正意义上的多层架构:Web服务器存放B/S应用的界面和部分简单业务逻辑;应用服务器负责B/S应用的数据操作,包括与后端数据库的交互;最终用户使用任何一台安装了IE的电脑,即可立刻访问B/S应用。4.2 产品部件4.2.1 Appeon DeveloperAppeon Developer是构成Appeon for PowerBuilder产品的一个部件,它给PB带来网络开发和部署的新功能。它能忠实的将一个无论是已有的或是新建的PB
28、应用转换成B/S应用,并且转换过程所需的技术仅仅是PowerBuilder。Appeon Developer提供一系列的工具实现从PB到Web的转换过程,这些工具以一条工具栏的形式内嵌于PB的开发环境中,当用户安装了Appeon Developer后,在打开PB开发环境时,Appeon Developer工具栏就会被自动加载:图 42 嵌于PB开发环境中的Appeon Developer工具条Appeon Developer发布PB应用的实际过程是对PB应用的PBL文件中的源代码进行导出和解析,翻译生成一套相应的HTML,JavaScript和XML文件。这些文件组成一个对源PowerBuil
29、der应用精确复制的B/S应用,B/S应用被自动部署到装载Appeon Server的网络架构中。Appeon Developer工具栏包含15个按钮,这些按钮完成以下一些功能: 预览功能 无需发布整个PB应用,便能以HTML, Excel或PDF格式在Web浏览器中预览PB应用的Window, DataWindow和Menu对象。 配置功能 配置Appeon Developer各项参数。 不支持特性分析 扫描并分析PB应用(按应用级别或对象级别),汇报PB应用中所有无法被Appeon Developer自动迁移的语言级特性。 应用发布 开始将PB应用发布到网络的整个过程。 打包向导 将转换后
30、的B/S应用打包成可安装程序。 撤销发布 从Appeon网络架构中删除已发布的B/S应用。 AEM快速启动 点击按钮,立即运行Appeon Enterprise Manager. 运行Web应用 点击按钮,立即在IE中运行当前发布的Web应用。 JS日志配置 配置如何纪录日志信息,以便于调试Appeon Web应用。 运行报告 汇报B/S应用在运行时的性能表现。 信息管理 察看应用有关的各类日志以及不支持特性报告。 在线帮助 关于支持/不支持PB特性的帮助文档。 4.2.2 Appeon ServerAppeon Server 是一套非可视化的J2EECORBA组件及PowerBuilder服
31、务器组件,这些组件运行在Sybase EAServer应用服务器内,并为Appeon的网络应用提供运行时的服务,这些服务包括: 数据连接服务 数据库事务管理 安全管理 负载均衡管理 N-Tier NVO支持 数据窗口支持,报表生成及打印有更多的服务,请参照ServerAppeon Server还包含Appeon Server Web Component,它装载于EAServer HTTP服务器内,或可单独安装于第三方Web服务器 (IIS, Apache, iPlanet)。它是一套JavaScript网络代码库,主要用于在Web浏览器内模拟PB应用风格的用户界面。 4.2.3 Appeon
32、Enterprise Manager (AEM)Appeon Enterprise Manager (AEM)是一个基于Web的应用程序。它提供一系列的工具,用于方便的管理Appeon系统,以及Appeon B/S应用。在安装Appeon Server的过程中,AEM被自动安装入Sybase EAServer HTTP服务器, AEM可通过任何标准的Web浏览器访问。图 43 Appeon Enterprise Manager (AEM)AEM提供以下的管理工具: 服务器属性配置包括:控制当前会话和事务,配置Web路径,配置日志文件,清理服务器垃圾文件,控制发布会话,以及配置Appeon Se
33、rver集群。 应用属性配置包括:为B/S应用配置事务对象,配置B/S应用中日期和时间显示的格式,以及为每个B/S应用配置缓存大小。 安全配置AEM支持使用Appeon内置的安全系统,或者使用外部的LDAP服务器对B/S应用进行用户和组群的管理。安全配置的功能包括:修改AEM登陆密码,配置安全模式(Appeon安全或LDAP安全),会话超时设定,配置组群,配置用户,为每一个部署的B/S应用设定用户和组群。4.3 系统需求4.3.1 Web浏览器需求软件需求 Windows 2000 SP4或者Windows XP SP1 Microsoft Internet Explorer 6.0 SP1S
34、P1, 1106.2800 (可选)Adobe Acrobat Reader 6.0,用于以PDF格式显示Web DataWindow。硬件需求 奔腾级CPU 500 MHz以上 内存128 MB(推荐256 MB)4.3.2 Appeon Developer需求软件需求 Sybase PowerBuilder 8.0.4(企业版)Build 10656 或PowerBuilder 9.0.1 Build 7161;最新的支持版本是7171 Sybase Adaptive Server Anywhere 8.0.27.0.4, 8.0.2, 9.0均可 Microsoft Windows NT
35、 4.0 SP6a或者Windows 2000 SP4或者Windows XP SP1 Microsoft Internet Explorer 6.0 SP1 (可选)Adobe Acrobat Reader 6.0,用于以PDF格式预览Web DataWindow。硬件需求 奔腾级CPU 1.8 GHz以上 内存512 MB(推荐1 GB) 250 MB可用磁盘空间,用于安装Appeon Developer。对于每一个需要迁移的PB应用,根据PB应用的大小将需要额外的磁盘空间。 CD-ROM 驱动器,用于从光盘安装Appeon产品。4.3.3 Appeon Server需求软件需求 Wind
36、ows 2000 SP4或者Windows XP SP1 Sybase EAServer 5.0 PowerBuilder Virtual Machine (PBVM) 8或9;PB8.0.4 #10656, 9.0.1#7171 Sun Java 2 JDK 1.3.1补丁6或者JDK 1.4补丁1 Sybase Adaptive Server Anywhere 8.0.27.0.4,8.0.2,9.0请参见PRD2.8 (可选)第三方Web服务器 - Apache, iPlanet, Netscape或Microsoft IIS,并安装相应的Sybase Redirector插件。 (可选
37、)Appeon自带PDFPrinter,用于服务器端DataWindow PDF打印。硬件需求 奔腾级CPU 733 MHz以上 内存512 MB 606 MB可用磁盘空间(安装Sybase EAServer),另需250 MB可用磁盘空间(安装Appeon Server)。 CD-ROM 驱动器,用于从光盘安装Appeon产品。4.3.4 数据库服务器需求依据PB应用使用的数据库类型,数据库服务器可选用以下DBMS之一: Sybase Adaptive Server Anywhere 7.0.4或8.0.2或9,附带Sybase iAnywhere JDBC驱动程序 Sybase Adapt
38、ive Server Enterprise (ASE) 12.x,附带Sybase iAnywhere JDBC驱动程序 Oracle 8i or 9i,附带Oracle JDBC驱动程序 Microsoft SQL Server 2000,附带Microsoft SQL Server JDBC驱动程序 IBM DB2 UDB 8.1,附带IBM JDBC驱动程序4.4 高级话题4.4.1 集群和负载均衡Appeon for PowerBuilder支持使用Sybase EAServer应用服务器的集群功能来实现B/S应用的负载均衡。集群是指一组共享知识库信息的服务器。Appeon Serve
39、r安装并集成到EAServer后,通过建立集群和使用EAServer同步机制,用户可以轻易从主服务器复制Appeon Server到集群的其他服务器。同步之后,每个EAServer都会有同样的Appeon Server的拷贝,这组EAServer(Appeon Server)可以跟一个Web服务器配合使用,以实现负载平衡。Appeon for PowerBuilder利用Sybase提供的Web服务器重定向器插件(Redirector Plug-in)实现EAServer负载平衡。在存放Appeon B/S应用的Web服务器上正确安装并配置了重定向器插件后,重定向器插件能将HTTP请求平均分配
40、发送到一个EAServer集群中不同的物理机器上,由此达到应用服务器负载均衡的目的。需要注意的是,安装重定向器插件的Web服务器必须是非EAServer HTTP server的Web服务器,比如Apache 1.3,iPlanet 4.1,Microsoft IIS 4.0 /5.0,或Netscape 3.6.x。如下图所示,Appeon Web应用发出HTTP请求时,请求到达重定向器插件并被平均地分发到三个EAServer上。图 44:Web服务器平均分发请求至多个EAServerAppeon for PowerBuilder只支持EAServer (Appeon Server)集群,不
41、支持Web服务器集群的负载平衡。如上图所示,系统只允许有一个Web服务器,并且必须是可以使用重定向器插件的非EAServer的Web服务器(Apache 1.3,iPlanet 4.1,Microsoft IIS 4.0 /5.0,或Netscape 3.6.x)。重定向器插件安装在Web服务器上,可以平均的分发HTTP请求到EAServer (Appeon Server)集群。4.4.2 B/S应用的安全性Appeon for PowerBuilder采取多项安全机制,保证翻译后的B/S应用程序能够在Web上安全的运行: 防火墙安全 - 支持防火墙设置,可以采用80端口进行通讯,在Web上传
42、输的仅是HTML, XML等Web文档。 支持客户端以HTTPS协议访问B/S应用,128位的SSL加密(HTTPS),保护机密数据的传输。 Web浏览器中运行的JavaScript代码经过了加密,以保护B/S应用的业务逻辑。 PB应用中代码编写的安全特性被自动转换并加载到网络。原有PB应用中依靠用户代码编写的安全特性将被自动转换到Web环境下。比如,原有PB应用中编写了用户登陆和账号管理的功能,在PB应用转换后,B/S应用将同样拥有这些安全特性。 Appeon为B/S应用添加额外的数据库死锁自动回滚功能。 B/S应用会话超时管理。Appeon Server对每一个B/S应用的会话(sessi
43、on)和事务(transaction)进行监控,可以设定一定的会话超时,B/S应用在一定时间内没有响应时,系统将自动关闭与B/S应用的连接。 使用LDAP或Appeon安全机制对B/S应用进行用户和组群管理。Appeon for PowerBuilder内置对B/S应用的用户账号和组群管理,可以将用户账号和组群信息存放在Appeon内置的安全数据库中,也可以存放在第三方的LDAP服务器中。B/S应用每次运行时加载Appeon安全登陆对话框,用户在输入用户名和密码后,只有通过了LDAP或Appeon安全数据库的认证,才能够继续访问B/S应用。4.4.3 B/S应用运行性能Appeon B/S应用
44、在运行时候的性能受到JavaScript代码执行效率的影响,由于JavaScript是一种解释性(非编译性)语言,B/S应用运行时,加载大量的JavaScript代码,可能导致B/S应用运行速度的放慢。Appeon长期致力于研究如何将JavaScript在IE内执行的效率提到最高,Appeon for PowerBuilder以往每一个版本的发布,都在B/S应用的运行速度上提高了数倍。目前的Appeon 2.8较前一版本而言,其基于JavaScript的B/S应用执行的效率亦有至少6倍以上的提高。这使得常见PB应用中绝大多数的窗口在发布至Web运行时,窗口响应的速度均在用户可承受的范围内(1-
45、5秒)。导致性能下降的最常见的一个原因就是胖窗体。当一个窗体中含有很多的数据窗口(DataWindow),或频繁使用了Tab或TreeView等控件时,就说这是一个胖窗体。这种窗体在Web上打开时需要5秒以上的时间。通过一些基本的代码调整,您可以提高性能,将窗口打开的时间降至5秒以内。另外一个常见的导致性能下降的原因就是复杂的PFC框架。PFC框架给一个应用带来大量的全局调用,因此PFC应用在Web上运行的性能低于非PFC应用。总的说来,PFC应用需要更多的性能调整,以达到可接受的Web运行性能。另外,Appeon 2.8在发布PB应用时提供了2种选项,除了通常的JavaScript发布选项以
46、外,另外包括ActiveX选项。使用ActiveX选项发布后的B/S应用基于ActiveX技术(用户在首次运行B/S应用时需要下载一个ActiveX控件),其运行速度能达到和PB C/S应用相似的水平。4.4.4 与外部Web技术的集成Appeon for PowerBuilder允许翻译后的B/S应用与外部标准的Web技术集成,如B/S应用可以调用Web Services、调用其他应用服务器(BEA WebLogic, IBM WebSphere application server)上的EJB/Java组件等。与外部Web技术的集成依赖于Appeon for PowerBuilder对PB N-Tier NVO组件的支持。PowerBuilder 8以上的版本支持开发者将在PB环境下编写的PB非可视化用户对象(NVO对象)并发布至EAServer,形成EAServer中的NVO组件,并且被PB应用的胖客户端所调用。Appeon for PowerBuilder支持翻译带EAServer NVO组件调用的PB应用。在翻译PB应用时,Appeon for PowerBuilder对NVO组件调用的相关PB代码(如有关connection对象、Proxy对象的代码)做适当的映射,生成对应JavaScript代码在Web上运行时负