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 名词定义 1 1.1 C/S
2、应用 1 1.2 B/S应用 1 1.3 网络发布 2 1.4 网络迁移 2 1.5 网络开发 2 2 导言 4 2.1 传统的方法 4 2.2 正阳的方案 5 3 PB应用网络发布方案 6 3.1 导出 6 3.2 翻译 6 3.2.1 应用映射 6 3.2.2 对象映射 7 3.2.3 用户代码映射 8 3.2.4 数据窗口映射 8 3.3 发布 8 4 APB产品概述 9 4.1 系统架构 9 4.1.1 开发环境 10 4.1.2 运行环境 10 4.2 产品部件 10 4.2.1 Appeon Developer 10 4.2.2 Appe
3、on Server 11 4.2.3 Appeon Enterprise Manager (AEM) 12 4.3 系统需求 14 4.3.1 Web浏览器需求 14 4.3.2 Appeon Developer需求 14 4.3.3 Appeon Server需求 15 4.3.4 数据库服务器需求 15 4.4 高级话题 16 4.4.1 集群和负载均衡 16 4.4.2 B/S应用的安全性 17 4.4.3 B/S应用运行性能 18 4.4.4 与外部Web技术的集成 19 5 支持PB编程特性 21 5.1 总体要求 21 5.2 系统对象 21 5.3
4、系统控件 22 5.4 面向对象的编程特性 22 5.5 PowerScript语言基础 22 5.6 用户对象 23 5.7 PowerScript语句 23 5.8 嵌入式SQL 24 5.9 系统函数 24 5.10 系统事件 25 5.11 DataWindow 29 5.11.1 DataWindow数据源 29 5.11.2 DataWindow显示风格 29 5.11.3 DataWindow运算符和表达式 30 5.11.4 DataWindow对象 32 5.11.5 DataWindow控件 33 5.11.6 DataStore对象 35 5
5、11.7 DataWindowChild对象 37 5.12 PFC支持 39 6 APB产品优势 45 6.1 商业优势 45 6.2 技术优势 45 6.3 与同类产品的比较 46 7 总结 47 1 名词定义 1.1 C/S应用 C/S应用(Client/Server applications: C/S应用)在本世纪90年代被广泛的使用。C/S应用一般采用第4代编程语言(4GL)开发,这些语言包括微软的Visual Basic,Sybase的PowerBuilder和Oracle公司的Forms等。 虽然最新版本的PowerBuilder (版本9)引进
6、了某些Web开发的功能,如JSP (JavaServer Page)开发,但从通常意义上讲,PowerBuilder更多的是作为一种C/S应用的开发工具,它在Web开发方面的功能是受到限制的。除非特别声明,在本文中使用的“PowerBuilder应用”或“PB应用”一词均指使用PowerBuilder开发的C/S应用程序。 C/S应用最显著的特征是具有一个“胖”客户端,胖客户端需要完成大量的数据处理操作。胖客户端包含应用程序的用户界面以及业务逻辑,并操纵后端数据库里的数据。 C/S架构一般也被称为2层结构(客户端层和数据库层)。但是,一种新的C/S架构被称为3层结构,在3层结构中引进了用于
7、存放应用逻辑的中间层。这种特殊的C/S架构包含3个独立的、定义明确的流程,每一流程运行于不同的平台上: · 运行于用户机器(客户端)上的用户界面。 · 负责处理数据的功能模块。这种中间层运行于单独的服务器上,被称作应用服务器。 · 数据库管理系统(DBMS)储存数据,响应来自中间层的数据请求。这一层运行于另一个服务器,被称作数据库服务器。 这种3层架构更具模块化,它的优点是在对一层进行修改或替换时不会影响到其他的层。 但是,无论C/S应用属于2层还是3层,其客户端均是“胖”客户端。这样就带来了高维护成本和低可供性的缺点,这将最终导致较高的拥有成本(TCO)。所以,企业一般急切需要将他
8、们旧有的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浏览器”的瘦客户端,这是与C/S应用最大的不同。流行的商
9、业Web浏览器有微软的Internet Explorer (IE)和网景公司的Netscape Navigator等。目前,大部分的个人电脑都拥有这些Web浏览器,用以访问存放于网络服务器上的Web页面。这种网络架构被称为B/S架构(browser/server: 浏览器/服务器架构)。 简单的B/S应用一般只使用一台Web服务器和一台数据库服务器。而对于大型的企业,他们的B/S系统一般采用独立的应用服务器(application servers),用于存放应用的业务逻辑,并在Web服务器和数据库服务器之间起协调作用。 瘦客户端给企业带来的优势是明显的:它使应用程序的前端不需要任何维护成本
10、一个多层的网络架构带来的优越的服务质量包括:可扩充性、可供性、安全性、可靠性和灵活性。 1.3 网络发布 Appeon for PowerBuilder的网络发布被定义为:将一个以源代码(PowerScript)形式存在的PowerBuilder应用转换成一个能在Web浏览器内立即运行的B/S应用的自动过程。 Appeon for PowerBuilder的网络发布是一个100%自动进行的过程。Appeon拥有多项行业领先的技术,使得将PowerBuilder应用向Web发布成为可能。 1.4 网络迁移 网络迁移指的是企业在Web环境下重新实施旧的C/S系统的总体过程。
11、很多企业多年以来一直使用C/S系统,这些C/S应用承载着企业的核心业务。因此将这些C/S应用迁移至网络乃举足轻重的任务,整个迁移过程涉及计划、评估、决策等多项步骤。 网络迁移一般采用的方法是重写法。重写法指的是依照旧的C/S应用的功能,采用JSP或.NET等Web技术编写一个相应的B/S应用。重写法相当于针对旧的C/S应用开发一个新的B/S应用,其缺点是需要新的技术和开发人员,其开发成本高,时间长。 使用APB进行网络迁移,依赖APB将PowerBuilder应用向Web发布的功能,重用PowerBuilder应用的源代码,免去了任何编写网络代码的烦恼,因而极大的降低了网络迁移项目的周期和
12、成本。 1.5 网络开发 网络开发指的是开发一个新的B/S应用的总体过程。 诸如RUP (Rational Unified Process)等软件工程的理论将软件开发的流程明确的划分为若干工作流,这些工作流包括商业建模、需求分析、设计、编码、测试和发布的工作,分布于软件开发周期的不同阶段(先起、精化、构建、成型)。网络开发同样遵从于这些类似的流程。 2 导言 2.1 传统的方法 企业大多认识到,将C/S应用迁移至网络,是事业进程中的当务之急。 然而,将 PowerBuilder C/S应用重新架构为B/S应用不仅耗时巨大,而且需要PowerBuilder开发人员学习新的技
13、术。取决于应用架构的特性,PowerBuilder应用的窗口和数据窗口(DataWindow)可能需要逐一重写。除此之外,基于HTML的普通B/S应用在界面交互能力上远远差于丰富用户界面的PowerBuilder应用。因此,网络迁移项目可能花费数月甚至数年的时间完成,而产生的B/S应用给予用户的体验却远逊于C/S应用。 在当今充满挑战的商业环境下,PowerBuilder应用企业要求他们的C/S应用能快速、简便地迁移至网络,并且要求迁移过程使用已有的编程技术。并且,PowerBuilder应用企业看重网络环境下的丰富用户界面,以便能够在保留原有应用用户的同时吸引更多的新用户。 图 2
14、1 网络迁移前:采用PowerBuilder开发的C/S应用 2.2 正阳的方案 Appeon for PowerBuilder产品能够将整个PowerBuilder应用自动的迁移到网络。 Appeon for PowerBuilder以PowerBuilder应用的原始代码为依据,自动映射生成多层架构的B/S应用。生成的B/S应用运行于标准的微软网络浏览器内,以HTML精确复制C/S应用的用户界面,不仅达到C/S应用的可使用性,并且带来了多层网络架构的优越的服务质量(QoS),包括可扩展性、可供性、安全性、可靠性和灵活性。 Appeon for PowerBuilder
15、能够在PowerBuilder开发环境内完成B/S应用的全部生成过程。在整个生成过程中,开发人员不需要编写任何HTML,Java,.NET或JavaScript代码 - 只需运用标准的PowerBuilder编程技术即可。 利用Appeon for PowerBuilder,企业能继续使用PowerBuilder开发新的C/S应用,仅需点击一个按钮,便能生成该PowerBuilder应用的网络版本。同样,企业可以用Appeon for PowerBuilder将现有的C/S应用转化为B/S应用。开发B/S应用原本是繁复的工作,如今通过优化现有的PowerBuilder应用或者开发新的Powe
16、rBuilder应用便可完成,熟悉而又简单。 图 22 网络迁移后:运行于IE浏览器内100%基于HTML的B/S应用 3 PB应用网络发布方案 Appeon for PowerBuilder能将一个PowerBuilder应用发布至网络,这个发布的过程分为三步自动进行。在PB应用的网络发布过程进行完毕后,用户得到的是一个以HTML, JavaScript和XML精确复制原有PB应用的用户界面以及应用逻辑,并运行于标准Web浏览器的多层B/S应用。 3.1 导出 Appeon for PowerBuilder对一个PowerBuilder应用程序的源代码,即PowerB
17、uilder库文件(*.PBL文件)进行解析,将PBL文件中的所有内容,包括PBL中包含的所有对象的定义和对象中写入的用户代码导出,将导出的源代码以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应用映射的过程
18、中,就涉及应用总体的多个方面做出了各种策略性的处理: · 用户界面 PB应用的用户界面包括窗体、菜单、工具条以及各种可视化控件。在PowerBuilder库文件(PBL文件)中,每一个窗体的源代码都对窗体以及窗体中包含控件的外观做了描述,如窗体的类型、大小;控件的尺寸、颜色和显示字体等。这些对界面的描述经Appeon for PowerBuilder的判别后,被翻译为相应的HTML语言,Appeon采用HTML语言丰富的标签如