首页 [重点]PB应用走向WEB的技术方案选择

[重点]PB应用走向WEB的技术方案选择

举报
开通vip

[重点]PB应用走向WEB的技术方案选择[重点]PB应用走向WEB的技术方案选择 PB应用走向WEB的技术方案选择 —Appeon for PowerBuilder WEB 发布和J2EE WEB应用重写方案的比较 1 概述 大多数企业已经认识到,将现有基于Client/Server架构的PB应用转换为成熟的N-Tier WEB架构会给企业带来诸多的优势。其中最显著的一点是在延伸企业应用到WEB架构之后,将会有更多的人如员工、合作伙伴、客户以及其他相关人员,能通过使用该WEB应用来运行相关的业务流程。当他们在获得授权之后,可以通过互联网(Intern...

[重点]PB应用走向WEB的技术方案选择
[重点]PB应用走向WEB的技术 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 选择 PB应用走向WEB的技术方案选择 —Appeon for PowerBuilder WEB 发布和J2EE WEB应用重写方案的比较 1 概述 大多数企业已经认识到,将现有基于Client/Server架构的PB应用转换为成熟的N-Tier WEB架构会给企业带来诸多的优势。其中最显著的一点是在延伸企业应用到WEB架构之后,将会有更多的人如员工、合作伙伴、客户以及其他相关人员,能通过使用该WEB应用来运行相关的业务 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 。当他们在获得授权之后,可以通过互联网(Internet)随时随地访问WEB应用,让企业的运转更加方便、高效而有序。另一方面,WEB应用和C/S应用比较而言,会更具伸缩性、更安全、更加易于维护,同时能有效地降低企业的总体拥有成本。最为重要的是,应用转到WEB架构之后,能为企业带来可持续增长的利润和长期的竞争优势,保证企业在未来的日子里立于不败之地。 1.1 可行的解决方案 由于 J2EE平台的稳定性、安全性、平台无关性,以及许多基于J2EE平台的成功案例,使得很多企业更加关注J2EE平台。因此本文侧重于介绍基于J2EE平台的解决方案: 方案一、利用J2EE技术重写出一个全新的WEB应用。重写以后,将在J2EE开发环境中维护新的应用。 方案二、使用Appeon for PowerBuilder(以下简称APB)产品对原有PB应用程序在PowerBuilder(以下简称PB)开发环境中进行WEB发布 [注:APB不仅可以将应用发布到基于J2EE平台运行,也可以将应用发布到基于.NET运行]。 1.1.1 利用J2EE技术进行WEB应用重写 重写是指利用J2EE技术按照原有的业务规则开发出一套新的WEB应用程序。因此,整理出原有PB应用的业务规则和数据结构是所有重写活动的起点,同时也是重点。原有PB应用的业务规则和数据结构的整理质量对于项目是否成功将起到决定性的作用。然后再使用HTML、CSS、JavaScript、Jsp、Servlet、 EJB等技术去实现这些已经整理出来的业务规则和数据结构。同继续使用PB开发应用相比,J2EE开发技术难度高,花的时间多,各种不确定因素较多,风险大。 企业可以选择自己重写,也可以选择外包给另外的公司。不管是企业自己重写还是外包,由于PB技术和J2EE技术本身的差异,企业将要使用全新的应用开发和维护流程,这意味着发生巨大的变化,而这些变化会导致非常多的风险。重写会在一定程序上改进原有PB应用程序的不良设计和编码,但是也可能会带来许多新的隐患,新写的代码通常都是需要在运行一段时间并不停地修复Bug后才能稳定。 1.1.2 使用Appeon for PowerBuilder产品进行WEB发布 APB以企业原有的PB应用的源代码为基础,自动生成一个映射原有PB应用功能的基于多层架构的WEB新应用。APB生成的WEB应用将精确地复制PB应用的用户界面和业务逻辑。 由于 APB是基于PB源代码进行地WEB发布。因此,企业可以让PB开发人员在PowerBuilder开发环境内完成企业原有应用的修改或添加新的功能,再由APB来完成PB应用程序生成WEB应用程序的所有事情。在整个过程中,PB开发人员不需要编写任何HTML、JavaScript、CSS、Java代码 —— PB开发人员只需运用标准的PB编程技术即可。 利用APB,企业能继续使用PB开发新的功能,然后再将其转化为WEB应用。因此APB 可以帮助企业使用现有的PB技术有效的对原有的PB应用进行功能的扩展。 1.2 如何选择解决方案, 企业选择解决方案的时候,首先应当考虑的是解决方案本身是否和企业自身的发展策略方向一致;其次是解决方案是否能够支撑起企业的业务运转,同时能应付将来的业务扩展;最后需要考虑的是解决方案本身的成本以及会给企业带来的风险。下面列示的是企业在进行解决方案选择的时候必须谨慎考虑的主要因素: ? 由于企业策略原因需要的是使用Java开发工具去开发WEB应用还是继续使用PowerBuilder进行应用开发, ? 原有PB应用功能是否满足企业目前的业务需要, ? 原有PB应用是否能够有效的进行功能扩展,以满足企业新的业务需求, ? 原有PB应用程序的现状是代码质量很好、维护成本很低还是与之相反, ? 原有PB应用程序转换为WEB应用程序之后对于最终用户的影响是正面的还是负面的,通常表现在最终用户对于新的WEB应用程序在用户界面和操作方式上的适应性,以及是否能够高效率的对应用进行操作。 ? 在原有PB应用程序转换为WEB应用程序的过程中,企业能否承受较长的开发周期、较多的成本及较高的风险,。 企业能准确的回答上面的问题之后,便可以选出最合适企业的解决方案。如果企业不打算继续使用PowerBuilder做为企业的主流开发工具,那么使用新的J2EE进行重写是最佳方案。反之,企业可以考虑另一种更加务实的方案——使用APB对原有的PB应用进行发布。因为APB可以帮助企业在进行PB应用程序向WEB应用程序转换的过程中缩短开发时间、减少开发成本、降低开发风险。后面的章节将对于上述两个解决方案做出更加详尽的分析和说明。 2 APB WEB发布和J2EE重写的综合比较 2.1 成本和风险 使用APB对PB应用进行WEB发布,不仅可以实现对原有程序代码的重用,还可以继续利用企业现有PB开发人员的开发技能和对应用商业逻辑的理解。用APB进行WEB发布之后的WEB应用不仅具有和利用J2EE 技术重写的WEB应用相同的架构优势,而且还保留了PB应用原来的业务逻辑和用户界面,最终用户无需经过 培训 焊锡培训资料ppt免费下载焊接培训教程 ppt 下载特设培训下载班长管理培训下载培训时间表下载 即可使用发布后的WEB应用。并且企业可以继续让现有的PB开发人员对新的WEB应用进行维护以及添加新的功能。APB的这些特点将让企业的成本和风险降到最低。 而使用J2EE进行重写这种方式,需要支出更多的成本。第一,需要引进新的J2EE开发团队,或引进部分J2EE开发人员带领原有部分PB开发人员组建新的团队;第二,必需购置新软件和硬件去支持基于J2EE平台的开发;第三,新的成员必须要花时间适应新的工作环境;第四,需要对PB开发人员培训如何使用J2EE技术进行WEB开发,并且需要培训那些新加入项目团队的J2EE开发人员熟悉应用的商务逻辑。第五,现有PB应用源代码无法重用,需要全部重写。并且原有PB开发人员需要经过很长的时间才能达到熟练运用J2EE技术开发的水平,况且J2EE平台开发生产力本身就比PB差很多。所以开发成本相对直接进行WEB发布要高很多。 另外,重写这种方式还面临更多的风险。第一,由于部分成员对J2EE新技术的应用缺乏必要的经验,由他们写出的代码可能会存在较多的隐患或者不够高效;第二,久经考验的PB应用逻辑必须重新编写,由于这个过程是由人工完成地,因此,有经验的人知道,会不可避 免的出现一些错误;第四,新的代码需要花大量的时间去测试,并且上线后还会逐渐出现各种错误(Bug),这会对最终用户的工作造成影响,严重时会对企业整个业务流程造成影响。第五,由于新开发的WEB应用在界面上和流程上同以前的应用会有很多的不同,有可能会大大影响最终用户的工作效率。 不管是企业自己重写,还是选择某个外包公司重写,在项目进行过程中会一直伴随着需求、技术、成本和进度等诸多的风险。而采用APB解决方案,可以在大幅度地降低成本的同时有效的规避风险。 2.2 功能 APB在拥有将PB应用直接发布成WEB应用的能力,同时让用户界面、用户交互方式和原有PB应用一模一样。APB支持绝大多数的PB用户界面元素以及和它们相关联的事件机制,其中就包括掩码编辑器、菜单、工具条、标签页,MDI窗口等复杂的用户界面元素。正因为这些复杂用户界面元素和与之绑定的事件驱动机制,大大地丰富了WEB应用的用户界面,提供了最佳的最终用户的使用体验。最终用户再也不需要面对传统WEB应用中烦人的一次又一次的页面刷新,一个页面到另一个页面的链接和跳转。 APB另一个最重要也是最吸引人的地方是,它完全支持了PowerBuilder引以为傲的数据库访问功能和灵活实用的报表功能,包括Datawindow,DataStore,Embedded SQL以及与之相关的丰富的数据的更新、查询、过滤、查找功能。 APB的这些功能,让发布后WEB应用拥有了和原PB应用一样丰富的用户界面,强大的数据处理能力以及生成复杂数据报表能力,极大地提高了生产效率和最终用户的使用体验。 而使用J2EE技术重写的WEB应用,由于普通网页技术的局限性,大多数的界面相对简陋、交互性很差。这将直接导致用户界面的不友好,使得最终用户的体验很差,进而降低最终用户的工作效率。另外,在J2EE中实现类似APB的超强的数据处理功能有一定的难度,除非企业投入大量的资金去研究和开发。 2.3 生产力 本文以一个实际的案例来评估APB WEB发布和J2EE重写的生产力。案例实现了很多PB应用中很常用的一组和数据库进行交互的功能: ? 查询数据; ? 精确查找数据; ? 查询相应的明细数据; 使用APB进行WEB发布后的用户界面如图 1 所示,使用J2EE进行重写后的WEB应用用户界面如图 2 所示。 图1 使用APB 进行WEB发布后的应用界面截图 图2 J2EE重写出的WEB应用界面截图 开发过程分两部分:案例准备和案例开发。案例准备包括准备好案例需要使用的数据库,和撰写设计说明书。案例开发阶段,由一名精通PowerBuilder技术和另一名精通J2EE技术的开发人员分头用PowerBuilder和Java开发工具进行编码、调试、发布和部署WEB应用。 下表统计了整个过程的工作量: 方案 WEB Deployment J2EE Rewrite (PowerBuilder + APB) (Eclipse) 案例准备(小时) 4 案例开发 (小时) 4 24 代码规模 (行) 总代码行:1950 182 重用代码行:1185 手工编写:765 表 1 生产力统计数据 从表上可以看出,案例开发过程中,J2EE重写花的时间是APB方案的6倍,手工编码量是APB方案4.2倍,总代码量是APB方案的10.7倍 。需要指出的是,此案例中并不是对一个已经存在的PB应用进行WEB发布和重写。当对一个已存在的PB应用进行WEB发布时, APB方案的应用开发和发布时间将会更少。而且此案例非常简单,如果对一个界面和业务逻辑都异常复杂的应用进行WEB发布, APB方案的生产力将会更高。 2.4 应用维护 使用APB对PB应用进行WEB发布的方案,能让原开发团队继续保持原有的开发习惯和遵循已有的开发流程。而且可以通过维护同一套代码来支持不同的部署方式:按传统的C/S方式运行或发布为WEB应用程序以B/S方式运行。另外,众所周知,PB提供了强大的所见即所得以及事件驱动的编程方式,能非常容易地维护应用。 使用J2EE技术对PB应用进行WEB重写,则需要利用Java IDE如Eclipse来维护应用。Java开发工具的可用性在过去几年里得到了提高,但同那些4GL开发工具如PB、VB、Delphi相比,还有较大差距。同时,新开发的WEB应用中会包含各种类型的代码,如HTML,JavaScript,CSS,JSP,Java等等。这将直接导致了如上一节所描述的问题——新的WEB应用的代码规模将变得很大。因此,使用J2EE技术重写的Web应用不仅维护的量很大,而且Java IDE并不能帮助企业开发人员高效的维护应用。同时,在代码规模很大的情况下,调试和定位错误将变得非常困难。 2.5 集成能力 利用J2EE技术进行重写后的WEB应用能在服务器端和其他的组件进行集成,包括对EJB、WEB Service 和CORBA调用。 APB方案不仅提供基于服务器端的集成,还提供基于客户端的集成。例如在发布后的WEB应用中,可以和客户端的OLE/OCX集成,并且支持对客户端DLL及Windows API的调用(如 图3所示)。 图 3 Appeon for PowerBuilder 集成能力示意图 (注:图中的星号(―*‖)表示 CORBA和PB的NVO对象需要特定应用服务器的支持) 2.6 性能和伸缩性 将生产力比较那一节中提到的APB和J2EE案例部署到相同的软硬件环境中,然后进行相应的性能和伸缩性测试: 为基于APB发布的WEB应用和基于J2EE重写的WEB应用采用同样的性能优化措施:对从服务器端传到客户端的 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 进行ZIP压缩,并对界面进行局部更新,同时都按照分页的方 式读取数据。 应用服务器采用的是WebSphere。数据库服务器则采用的是Oracle。 网络带宽为100M。测试工具为LoadRunner。测试中的思考时间为20秒,每隔1秒钟增加一个虚拟在线用户。利用LoadRunner统计如图4所示的第1-4步的响应时间(未包括界面更新的时间),以及Application Server上应用服务器的CPU占用率和内存占用情况。考虑到WEBSphere在配置好预分配内存之后的性能会更好,所以事先给WebSphere预分配了1280M内存。 图 4 性能和伸缩性测试网络架构图 2.6.1 响应时间 从图 5中可以看出,JSP和APB的差距并不明显,二者非常接近。而且保持相同的趋势。可见,JSP和APB应用的性能非常接近。 图 5 APB和J2EE WEB应用的响应时间对比 2.6.2 CPU占用 从图 6中可以看出,J2EE WEB应用 的CPU占用率要略低于APB,但非常接近。 图 6 APB和J2EE WEB应用的CPU占用率对比 2.6.3 内存使用 从图7中可以看出,用APB发布后的WEB应用的内存使用量要比J2EE WEB应用多了少许,差距为5 – 20 Mb之间,这种差距在实际应用中几乎可以忽略不计。从图上看,两种应用的内存使用量都很平稳,这与为应用服务器预先分配了1280M内存有一定的关系。 图 7 APB和J2EE WEB应用的内存使用量对比 2.6.4 小结 从上面的数据可以看出,在WegSphere应用服务器上,用APB发布后的WEB应用和与用J2EE技术重写后的WEB应用相比,在响应时间、CPU占用以及内存占用三个方面都非常 接近。因此,可以看出在同等条件下,两种方案产生的WEB应用在性能上并不存在差距。同时,由于APB采用的是Rich Client技术,可以充分利用客户端的计算能力。因而当应用的UI和逻辑非常复杂时,APB发布后的WEB应用会拥有更好的性能和伸缩性。 2.7 安全性 从安全性角度看,两种解决方案都有十分完善的措施保障应用的安全性,都支持SSL/HTTPS、LDAP验证、应用会话超时管理、WEB业务逻辑加密、数字签名等安全措施。除此之外,APB还内置了专门的用户组群去管理应用的发布和运行。 2.8 综合比较 上面已经从各个方面对两种方案进行了比较。下表是一个总结: 比较项 APB WEB Deployment Solution J2EE WEB Application Rewrite PB应用的 用户界面几乎没有 大量 改动 PB应用的 功能丰富对PB 90%以上的功能提供支持,同时支瘦客户端的架构决定了只能支持部程度和客持客户端集成技术(OLE/OCX,DLL和分功能,并且不支持客户端集成技户端的集Windows API调用)。 术。 成性 APB提供了成熟的WEB Application架受制于开发经验。如果是PB公司自性能和伸构,让发布后的应用具有不错的性能和行重写J2EE WEB应用,有可能经缩性 伸缩性。 验不足。 需要充分的时间去学习和理解新技项目启动简单PB应用比重写快3倍以上,复杂应术或需要花时间去了解应用的商业到正式上用比重写快10倍以上。 逻辑。由于技术或业务经验不足,线的时间 会拖慢整个项目进度。 可以节约75%以上的成本,来自于对现需要追加很多投资。表现在技术或项目成本 有开发人员的使用和对现有代码的重业务培训,新的软、硬件投入、对 用。而且保护了已有的投资。 客户的培训等。 由于 PB应用本身已经经过漫长的时间需要经受时间考验。所有的功能都考验。而APB又精确复制了PB应用的项目质量 被重新实现,很难在短时间内稳定业务逻辑和用户界面,因而WEB应用具下来。 有很好的质量。 风险最低。几乎不会产生项目延迟和经风险很大,来自于技术、业务和管项目风险 费超支或更糟的结果。 理方面的巨大变更。 很轻松,直接利用具有高效生产力的 项目后期4GL开发工具PowerBuilder来进行WEB难度大,效率低,缺少快速有效的维护 应用的维护。而且对C/S应用和WEB应开发工具。 用维护同一套代码。 表 2 两种方案的综合比较 3 结论 综上所述,使用J2EE进行重写和使用APB进行WEB发布各有其优势和不足。正因为如此, 使得这两种方案会适用于不同的项目。无论以何种方案去实现一个WEB应用,都需要企业考虑自身的实际情况去选择。 如果企业决定放弃原有的PB应用程序和在PB方面的开发经验甚至开发团队,那么重写将是唯一的选择。但是,当企业决定仍然使用PowerBuilder做为应用的开发和维护工具,但又想能轻松获得一个WEB程序,那么APB是最佳选择。 4 附录 – 性能测试结果 4.1 测试方法 测试在不同的在线用户数的情况下,APB和J2EE WEB应用的响应时间、CPU占用率和内存占用情况。然后根据这些指标对APB和J2EE WEB进行综合的比较,从而得出二者在不同的在线用户数下的性能表现,并观察两者是否存在性能差距。在线虚拟用户数指标的值设定为1,50,100,150,200,300,400,500。每一个定额的用户数指标会运行7分钟,在这个用户数指标运行的区间中,取最平稳的3分钟数据平均后得出最终结果。 4.2 测试脚本 脚本包含下列Transactions,以整个Action1的响应时间做为性能测试的结果。在Action1 的最后面,加入了20秒的Think Time。 Actions Transactions 应用的初始步骤 Vuser_init ? 查询第一页数据; Action1 ? 查找ID为23的数据; ? 查询ID为23 的第一部分明细数据; ? 查询ID为23 的第二部分明细数据; ? 查询ID为23 的第三部分明细数据; ? Think time: 20 seconds. 应用的结束步骤 Vuser_end 表 3 测试脚本说明 4.3 测试环境 表 4中详细的列出了测试的软件、硬件和网络环境说明。 Appeon for PowerBuilder 软机器类型 硬件 J2EE 软件 件 应用服务器 CPU: Xeon 3.0 G o Windows Server 2003 o Windows Server Memory: 2G Enterprise Edition SP1; 2003 Enterprise Edition Hard Disk: 70G o WEBSphere 5.1; SP1; Network: 100M o Appeon Server for o WEBSphere 5.1; PowerBuilder 5.0 GA; o Oracle JDBC Driver; o Oracle JDBC Driver; o JSP WEB o APB WEB application; application; 数据库服务器 CPU: Xeon 2.4 G o Windows Server 2003 o Windows Server Memory: 1G Enterprise Edition SP1; 2003 Enterprise Edition Hard Disk: 40G o Oracle 9.2i Enterprise SP1; Network: 100M Edition; o Oracle 9.2i Enterprise Edition; 测试机器 CPU: Pentium 2.4 G o Windows 2000 Server o Windows 2000 Memory: 1G SP4; Server SP4; Hard Disk: 80G o IE 6.0.2800.1106; o IE 6.0.2800.1106; Network: 100M 表 4 性能测试的软、硬件环境详细配置信息 WEBSphere安装完毕之后,还对表 5中的参数进行了调整。 参数 值 应用程序服务器 > server1 > 进程定义 >Java 虚拟机 > 初始堆大小 1280 M 应用程序服务器 > server1 > 进程定义 >Java 虚拟机 > 最大堆大小 1280 M JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 连接超时 600 秒 JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 最大连接数 200 个 JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 最小连接数 10 个 JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 获得时间 180 秒 JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 不使用超时 600 秒 表 5 对于WEBSphere进行调优的参数列表和设置的值 4.4 测试结果 4.4.1 Appeon for PowerBuilder WEB Application 用户数 响应时间(秒) CPU占用率 (%) 内存占用量(M) 1 0.064 0.42 1445 50 0.065 12.35 1467 100 0.074 23.73 1469 150 0.083 31.64 1469 200 0.110 42.51 1470 300 0.116 60.14 1472 400 0.165 73.27 1472 500 0.263 88.38 1474 表 6 APB WEB Application 测试结果 4.4.2 J2EE WEB Application 用户数 响应时间(秒) CPU占用率 (%) 内存占用量(M) 1 0.063 0.73 1440 50 0.064 13.79 1443 100 0.065 20.80 1444 150 0.070 32.32 1444 200 0.077 39.16 1445 300 0.100 56.15 1445 400 0.130 71.67 1446 500 0.216 83.31 1447 表 7 J2EE WEB Application测试结果 PB应用走向WEB的技术方案选择 —Appeon for PowerBuilder WEB 发布和J2EE WEB应用重写方案的比较 1 概述 大多数企业已经认识到,将现有基于Client/Server架构的PB应用转换为成熟的N-Tier WEB架构会给企业带来诸多的优势。其中最显著的一点是在延伸企业应用到WEB架构之后,将会有更多的人如员工、合作伙伴、客户以及其他相关人员,能通过使用该WEB应用来运行相关的业务流程。当他们在获得授权之后,可以通过互联网(Internet)随时随地访问WEB应用,让企业的运转更加方便、高效而有序。另一方面,WEB应用和C/S应用比较而言,会更具伸缩性、更安全、更加易于维护,同时能有效地降低企业的总体拥有成本。最为重要的是,应用转到WEB架构之后,能为企业带来可持续增长的利润和长期的竞争优势,保证企业在未来的日子里立于不败之地。 1.1 可行的解决方案 由于 J2EE平台的稳定性、安全性、平台无关性,以及许多基于J2EE平台的成功案例,使得很多企业更加关注J2EE平台。因此本文侧重于介绍基于J2EE平台的解决方案: 方案一、利用J2EE技术重写出一个全新的WEB应用。重写以后,将在J2EE开发环境中维护新的应用。 方案二、使用Appeon for PowerBuilder(以下简称APB)产品对原有PB应用程序在PowerBuilder(以下简称PB)开发环境中进行WEB发布 [注:APB不仅可以将应用发布到基于J2EE平台运行,也可以将应用发布到基于.NET运行]。 1.1.1 利用J2EE技术进行WEB应用重写 重写是指利用J2EE技术按照原有的业务规则开发出一套新的WEB应用程序。因此,整理出原有PB应用的业务规则和数据结构是所有重写活动的起点,同时也是重点。原有PB应用的业务规则和数据结构的整理质量对于项目是否成功将起到决定性的作用。然后再使用HTML、CSS、JavaScript、Jsp、Servlet、 EJB等技术去实现这些已经整理出来的业务规则和数据结构。同继续使用PB开发应用相比,J2EE开发技术难度高,花的时间多,各种不确定因素较多,风险大。 企业可以选择自己重写,也可以选择外包给另外的公司。不管是企业自己重写还是外包,由于PB技术和J2EE技术本身的差异,企业将要使用全新的应用开发和维护流程,这意味着发生巨大的变化,而这些变化会导致非常多的风险。重写会在一定程序上改进原有PB应用程序的不良设计和编码,但是也可能会带来许多新的隐患,新写的代码通常都是需要在运行一段时间并不停地修复Bug后才能稳定。 1.1.2 使用Appeon for PowerBuilder产品进行WEB发布 APB以企业原有的PB应用的源代码为基础,自动生成一个映射原有PB应用功能的基于多层架构的WEB新应用。APB生成的WEB应用将精确地复制PB应用的用户界面和业务逻辑。 由于 APB是基于PB源代码进行地WEB发布。因此,企业可以让PB开发人员在PowerBuilder开发环境内完成企业原有应用的修改或添加新的功能,再由APB来完成PB应用程序生成WEB应用程序的所有事情。在整个过程中,PB开发人员不需要编写任何HTML、JavaScript、CSS、Java代码 —— PB开发人员只需运用标准的PB编程技术即可。 利用APB,企业能继续使用PB开发新的功能,然后再将其转化为WEB应用。因此APB可以帮助企业使用现有的PB技术有效的对原有的PB应用进行功能的扩展。 1.2 如何选择解决方案, 企业选择解决方案的时候,首先应当考虑的是解决方案本身是否和企业自身的发展策略方向一致;其次是解决方案是否能够支撑起企业的业务运转,同时能应付将来的业务扩展;最后需要考虑的是解决方案本身的成本以及会给企业带来的风险。下面列示的是企业在进行解决方案选择的时候必须谨慎考虑的主要因素: ? 由于企业策略原因需要的是使用Java开发工具去开发WEB应用还是继续使用PowerBuilder进行应用开发, ? 原有PB应用功能是否满足企业目前的业务需要, ? 原有PB应用是否能够有效的进行功能扩展,以满足企业新的业务需求, ? 原有PB应用程序的现状是代码质量很好、维护成本很低还是与之相反, ? 原有PB应用程序转换为WEB应用程序之后对于最终用户的影响是正面的还是负面的,通常表现在最终用户对于新的WEB应用程序在用户界面和操作方式上的适应性,以及是否能够高效率的对应用进行操作。 ? 在原有PB应用程序转换为WEB应用程序的过程中,企业能否承受较长的开发周期、较多的成本及较高的风险,。 企业能准确的回答上面的问题之后,便可以选出最合适企业的解决方案。如果企业不打算继续使用PowerBuilder做为企业的主流开发工具,那么使用新的J2EE进行重写是最佳方案。反之,企业可以考虑另一种更加务实的方案——使用APB对原有的PB应用进行发布。因为APB可以帮助企业在进行PB应用程序向WEB应用程序转换的过程中缩短开发时间、减少开发成本、降低开发风险。后面的章节将对于上述两个解决方案做出更加详尽的分析和说明。 2 APB WEB发布和J2EE重写的综合比较 2.1 成本和风险 使用APB对PB应用进行WEB发布,不仅可以实现对原有程序代码的重用,还可以继续利用企业现有PB开发人员的开发技能和对应用商业逻辑的理解。用APB进行WEB发布之后的WEB应用不仅具有和利用J2EE 技术重写的WEB应用相同的架构优势,而且还保留了PB应用原来的业务逻辑和用户界面,最终用户无需经过培训即可使用发布后的WEB应用。并且企业可以继续让现有的PB开发人员对新的WEB应用进行维护以及添加新的功能。APB的这些特点将让企业的成本和风险降到最低。 而使用J2EE进行重写这种方式,需要支出更多的成本。第一,需要引进新的J2EE开发团队,或引进部分J2EE开发人员带领原有部分PB开发人员组建新的团队;第二,必需购置 新软件和硬件去支持基于J2EE平台的开发;第三,新的成员必须要花时间适应新的工作环境;第四,需要对PB开发人员培训如何使用J2EE技术进行WEB开发,并且需要培训那些新加入项目团队的J2EE开发人员熟悉应用的商务逻辑。第五,现有PB应用源代码无法重用,需要全部重写。并且原有PB开发人员需要经过很长的时间才能达到熟练运用J2EE技术开发的水平,况且J2EE平台开发生产力本身就比PB差很多。所以开发成本相对直接进行WEB发布要高很多。 另外,重写这种方式还面临更多的风险。第一,由于部分成员对J2EE新技术的应用缺乏必要的经验,由他们写出的代码可能会存在较多的隐患或者不够高效;第二,久经考验的PB应用逻辑必须重新编写,由于这个过程是由人工完成地,因此,有经验的人知道,会不可避免的出现一些错误;第四,新的代码需要花大量的时间去测试,并且上线后还会逐渐出现各种错误(Bug),这会对最终用户的工作造成影响,严重时会对企业整个业务流程造成影响。第五,由于新开发的WEB应用在界面上和流程上同以前的应用会有很多的不同,有可能会大大影响最终用户的工作效率。 不管是企业自己重写,还是选择某个外包公司重写,在项目进行过程中会一直伴随着需求、技术、成本和进度等诸多的风险。而采用APB解决方案,可以在大幅度地降低成本的同时有效的规避风险。 2.2 功能 APB在拥有将PB应用直接发布成WEB应用的能力,同时让用户界面、用户交互方式和原有PB应用一模一样。APB支持绝大多数的PB用户界面元素以及和它们相关联的事件机制,其中就包括掩码编辑器、菜单、工具条、标签页,MDI窗口等复杂的用户界面元素。正因为这些复杂用户界面元素和与之绑定的事件驱动机制,大大地丰富了WEB应用的用户界面,提供了最佳的最终用户的使用体验。最终用户再也不需要面对传统WEB应用中烦人的一次又一次的页面刷新,一个页面到另一个页面的链接和跳转。 APB另一个最重要也是最吸引人的地方是,它完全支持了PowerBuilder引以为傲的数据库访问功能和灵活实用的报表功能,包括Datawindow,DataStore,Embedded SQL以及与之相关的丰富的数据的更新、查询、过滤、查找功能。 APB的这些功能,让发布后WEB应用拥有了和原PB应用一样丰富的用户界面,强大的数据处理能力以及生成复杂数据报表能力,极大地提高了生产效率和最终用户的使用体验。 而使用J2EE技术重写的WEB应用,由于普通网页技术的局限性,大多数的界面相对简陋、交互性很差。这将直接导致用户界面的不友好,使得最终用户的体验很差,进而降低最终用户的工作效率。另外,在J2EE中实现类似APB的超强的数据处理功能有一定的难度,除非企业投入大量的资金去研究和开发。 2.3 生产力 本文以一个实际的案例来评估APB WEB发布和J2EE重写的生产力。案例实现了很多PB应用中很常用的一组和数据库进行交互的功能: ? 查询数据; ? 精确查找数据; ? 查询相应的明细数据; 使用APB进行WEB发布后的用户界面如图 1 所示,使用J2EE进行重写后的WEB应用用户界面如图 2 所示。 图1 使用APB 进行WEB发布后的应用界面截图 图2 J2EE重写出的WEB应用界面截图 开发过程分两部分:案例准备和案例开发。案例准备包括准备好案例需要使用的数据库,和撰写设计说明书。案例开发阶段,由一名精通PowerBuilder技术和另一名精通J2EE技术的开发人员分头用PowerBuilder和Java开发工具进行编码、调试、发布和部署WEB应用。 下表统计了整个过程的工作量: 方案 WEB Deployment J2EE Rewrite (PowerBuilder + APB) (Eclipse) 案例准备(小时) 4 案例开发 (小时) 4 24 代码规模 (行) 总代码行:1950 182 重用代码行:1185 手工编写:765 表 1 生产力统计数据 从表上可以看出,案例开发过程中,J2EE重写花的时间是APB方案的6倍,手工编码量是APB方案4.2倍,总代码量是APB方案的10.7倍 。需要指出的是,此案例中并不是对一个已经存在的PB应用进行WEB发布和重写。当对一个已存在的PB应用进行WEB发布时, APB方案的应用开发和发布时间将会更少。而且此案例非常简单,如果对一个界面和业务逻辑都异常复杂的应用进行WEB发布, APB方案的生产力将会更高。 2.4 应用维护 使用APB对PB应用进行WEB发布的方案,能让原开发团队继续保持原有的开发习惯和遵循已有的开发流程。而且可以通过维护同一套代码来支持不同的部署方式:按传统的C/S方式运行或发布为WEB应用程序以B/S方式运行。另外,众所周知,PB提供了强大的所见即所得以及事件驱动的编程方式,能非常容易地维护应用。 使用J2EE技术对PB应用进行WEB重写,则需要利用Java IDE如Eclipse来维护应用。Java开发工具的可用性在过去几年里得到了提高,但同那些4GL开发工具如PB、VB、Delphi相比,还有较大差距。同时,新开发的WEB应用中会包含各种类型的代码,如HTML,JavaScript,CSS,JSP,Java等等。这将直接导致了如上一节所描述的问题——新的WEB应用的代码规模将变得很大。因此,使用J2EE技术重写的Web应用不仅维护的量很大,而且Java IDE并不能帮助企业开发人员高效的维护应用。同时,在代码规模很大的情况下,调试和定位错误将变得非常困难。 2.5 集成能力 利用J2EE技术进行重写后的WEB应用能在服务器端和其他的组件进行集成,包括对EJB、WEB Service 和CORBA调用。 APB方案不仅提供基于服务器端的集成,还提供基于客户端的集成。例如在发布后的WEB应用中,可以和客户端的OLE/OCX集成,并且支持对客户端DLL及Windows API的调用(如 图3所示)。 图 3 Appeon for PowerBuilder 集成能力示意图 (注:图中的星号(―*‖)表示 CORBA和PB的NVO对象需要特定应用服务器的支持) 2.6 性能和伸缩性 将生产力比较那一节中提到的APB和J2EE案例部署到相同的软硬件环境中,然后进行相应的性能和伸缩性测试: 为基于APB发布的WEB应用和基于J2EE重写的WEB应用采用同样的性能优化措施:对从服务器端传到客户端的内容进行ZIP压缩,并对界面进行局部更新,同时都按照分页的方 式读取数据。 应用服务器采用的是WebSphere。数据库服务器则采用的是Oracle。 网络带宽为100M。测试工具为LoadRunner。测试中的思考时间为20秒,每隔1秒钟增加一个虚拟在线用户。利用LoadRunner统计如图4所示的第1-4步的响应时间(未包括界面更新的时间),以及Application Server上应用服务器的CPU占用率和内存占用情况。考虑到WEBSphere在配置好预分配内存之后的性能会更好,所以事先给WebSphere预分配了1280M内存。 图 4 性能和伸缩性测试网络架构图 2.6.1 响应时间 从图 5中可以看出,JSP和APB的差距并不明显,二者非常接近。而且保持相同的趋势。可见,JSP和APB应用的性能非常接近。 图 5 APB和J2EE WEB应用的响应时间对比 2.6.2 CPU占用 从图 6中可以看出,J2EE WEB应用 的CPU占用率要略低于APB,但非常接近。 图 6 APB和J2EE WEB应用的CPU占用率对比 2.6.3 内存使用 从图7中可以看出,用APB发布后的WEB应用的内存使用量要比J2EE WEB应用多了少许,差距为5 – 20 Mb之间,这种差距在实际应用中几乎可以忽略不计。从图上看,两种应用的内存使用量都很平稳,这与为应用服务器预先分配了1280M内存有一定的关系。 图 7 APB和J2EE WEB应用的内存使用量对比 2.6.4 小结 从上面的数据可以看出,在WegSphere应用服务器上,用APB发布后的WEB应用和与用J2EE技术重写后的WEB应用相比,在响应时间、CPU占用以及内存占用三个方面都非常 接近。因此,可以看出在同等条件下,两种方案产生的WEB应用在性能上并不存在差距。同时,由于APB采用的是Rich Client技术,可以充分利用客户端的计算能力。因而当应用的UI和逻辑非常复杂时,APB发布后的WEB应用会拥有更好的性能和伸缩性。 2.7 安全性 从安全性角度看,两种解决方案都有十分完善的措施保障应用的安全性,都支持SSL/HTTPS、LDAP验证、应用会话超时管理、WEB业务逻辑加密、数字签名等安全措施。除此之外,APB还内置了专门的用户组群去管理应用的发布和运行。 2.8 综合比较 上面已经从各个方面对两种方案进行了比较。下表是一个总结: 比较项 APB WEB Deployment Solution J2EE WEB Application Rewrite PB应用的 用户界面几乎没有 大量 改动 PB应用的 功能丰富对PB 90%以上的功能提供支持,同时支瘦客户端的架构决定了只能支持部程度和客持客户端集成技术(OLE/OCX,DLL和分功能,并且不支持客户端集成技户端的集Windows API调用)。 术。 成性 APB提供了成熟的WEB Application架受制于开发经验。如果是PB公司自性能和伸构,让发布后的应用具有不错的性能和行重写J2EE WEB应用,有可能经缩性 伸缩性。 验不足。 需要充分的时间去学习和理解新技项目启动简单PB应用比重写快3倍以上,复杂应术或需要花时间去了解应用的商业到正式上用比重写快10倍以上。 逻辑。由于技术或业务经验不足,线的时间 会拖慢整个项目进度。 可以节约75%以上的成本,来自于对现需要追加很多投资。表现在技术或项目成本 有开发人员的使用和对现有代码的重业务培训,新的软、硬件投入、对 用。而且保护了已有的投资。 客户的培训等。 由于 PB应用本身已经经过漫长的时间需要经受时间考验。所有的功能都考验。而APB又精确复制了PB应用的项目质量 被重新实现,很难在短时间内稳定业务逻辑和用户界面,因而WEB应用具下来。 有很好的质量。 风险最低。几乎不会产生项目延迟和经风险很大,来自于技术、业务和管项目风险 费超支或更糟的结果。 理方面的巨大变更。 很轻松,直接利用具有高效生产力的 项目后期4GL开发工具PowerBuilder来进行WEB难度大,效率低,缺少快速有效的维护 应用的维护。而且对C/S应用和WEB应开发工具。 用维护同一套代码。 表 2 两种方案的综合比较 3 结论 综上所述,使用J2EE进行重写和使用APB进行WEB发布各有其优势和不足。正因为如此, 使得这两种方案会适用于不同的项目。无论以何种方案去实现一个WEB应用,都需要企业考虑自身的实际情况去选择。 如果企业决定放弃原有的PB应用程序和在PB方面的开发经验甚至开发团队,那么重写将是唯一的选择。但是,当企业决定仍然使用PowerBuilder做为应用的开发和维护工具,但又想能轻松获得一个WEB程序,那么APB是最佳选择。 4 附录 – 性能测试结果 4.1 测试方法 测试在不同的在线用户数的情况下,APB和J2EE WEB应用的响应时间、CPU占用率和内存占用情况。然后根据这些指标对APB和J2EE WEB进行综合的比较,从而得出二者在不同的在线用户数下的性能表现,并观察两者是否存在性能差距。在线虚拟用户数指标的值设定为1,50,100,150,200,300,400,500。每一个定额的用户数指标会运行7分钟,在这个用户数指标运行的区间中,取最平稳的3分钟数据平均后得出最终结果。 4.2 测试脚本 脚本包含下列Transactions,以整个Action1的响应时间做为性能测试的结果。在Action1 的最后面,加入了20秒的Think Time。 Actions Transactions 应用的初始步骤 Vuser_init ? 查询第一页数据; Action1 ? 查找ID为23的数据; ? 查询ID为23 的第一部分明细数据; ? 查询ID为23 的第二部分明细数据; ? 查询ID为23 的第三部分明细数据; ? Think time: 20 seconds. 应用的结束步骤 Vuser_end 表 3 测试脚本说明 4.3 测试环境 表 4中详细的列出了测试的软件、硬件和网络环境说明。 Appeon for PowerBuilder 软机器类型 硬件 J2EE 软件 件 应用服务器 CPU: Xeon 3.0 G o Windows Server 2003 o Windows Server Memory: 2G Enterprise Edition SP1; 2003 Enterprise Edition Hard Disk: 70G o WEBSphere 5.1; SP1; Network: 100M o Appeon Server for o WEBSphere 5.1; PowerBuilder 5.0 GA; o Oracle JDBC Driver; o Oracle JDBC Driver; o JSP WEB o APB WEB application; application; 数据库服务器 CPU: Xeon 2.4 G o Windows Server 2003 o Windows Server Memory: 1G Enterprise Edition SP1; 2003 Enterprise Edition Hard Disk: 40G o Oracle 9.2i Enterprise SP1; Network: 100M Edition; o Oracle 9.2i Enterprise Edition; 测试机器 CPU: Pentium 2.4 G o Windows 2000 Server o Windows 2000 Memory: 1G SP4; Server SP4; Hard Disk: 80G o IE 6.0.2800.1106; o IE 6.0.2800.1106; Network: 100M 表 4 性能测试的软、硬件环境详细配置信息 WEBSphere安装完毕之后,还对表 5中的参数进行了调整。 参数 值 应用程序服务器 > server1 > 进程定义 >Java 虚拟机 > 初始堆大小 1280 M 应用程序服务器 > server1 > 进程定义 >Java 虚拟机 > 最大堆大小 1280 M JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 连接超时 600 秒 JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 最大连接数 200 个 JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 最小连接数 10 个 JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 获得时间 180 秒 JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 不使用超时 600 秒 表 5 对于WEBSphere进行调优的参数列表和设置的值 4.4 测试结果 4.4.1 Appeon for PowerBuilder WEB Application 用户数 响应时间(秒) CPU占用率 (%) 内存占用量(M) 1 0.064 0.42 1445 50 0.065 12.35 1467 100 0.074 23.73 1469 150 0.083 31.64 1469 200 0.110 42.51 1470 300 0.116 60.14 1472 400 0.165 73.27 1472 500 0.263 88.38 1474 表 6 APB WEB Application 测试结果 4.4.2 J2EE WEB Application 用户数 响应时间(秒) CPU占用率 (%) 内存占用量(M) 1 0.063 0.73 1440 50 0.064 13.79 1443 100 0.065 20.80 1444 150 0.070 32.32 1444 200 0.077 39.16 1445 300 0.100 56.15 1445 400 0.130 71.67 1446 500 0.216 83.31 1447 表 7 J2EE WEB Application测试结果 PB应用走向WEB的技术方案选择 —Appeon for PowerBuilder WEB 发布和J2EE WEB应用重写方案的比较 1 概述 大多数企业已经认识到,将现有基于Client/Server架构的PB应用转换为成熟的N-Tier WEB架构会给企业带来诸多的优势。其中最显著的一点是在延伸企业应用到WEB架构之后,将会有更多的人如员工、合作伙伴、客户以及其他相关人员,能通过使用该WEB应用来运行相关的业务流程。当他们在获得授权之后,可以通过互联网(Internet)随时随地访问WEB应用,让企业的运转更加方便、高效而有序。另一方面,WEB应用和C/S应用比较而言,会更具伸缩性、更安全、更加易于维护,同时能有效地降低企业的总体拥有成本。最为重要的是,应用转到WEB架构之后,能为企业带来可持续增长的利润和长期的竞争优势,保证企业在未来的日子里立于不败之地。 1.1 可行的解决方案 由于 J2EE平台的稳定性、安全性、平台无关性,以及许多基于J2EE平台的成功案例,使得很多企业更加关注J2EE平台。因此本文侧重于介绍基于J2EE平台的解决方案: 方案一、利用J2EE技术重写出一个全新的WEB应用。重写以后,将在J2EE开发环境中维护新的应用。 方案二、使用Appeon for PowerBuilder(以下简称APB)产品对原有PB应用程序在PowerBuilder(以下简称PB)开发环境中进行WEB发布 [注:APB不仅可以将应用发布到基于J2EE平台运行,也可以将应用发布到基于.NET运行]。 1.1.1 利用J2EE技术进行WEB应用重写 重写是指利用J2EE技术按照原有的业务规则开发出一套新的WEB应用程序。因此,整理出原有PB应用的业务规则和数据结构是所有重写活动的起点,同时也是重点。原有PB应用的业务规则和数据结构的整理质量对于项目是否成功将起到决定性的作用。然后再使用HTML、CSS、JavaScript、Jsp、Servlet、 EJB等技术去实现这些已经整理出来的业务规则和数据结构。同继续使用PB开发应用相比,J2EE开发技术难度高,花的时间多,各种不确定因素较多,风险大。 企业可以选择自己重写,也可以选择外包给另外的公司。不管是企业自己重写还是外包,由于PB技术和J2EE技术本身的差异,企业将要使用全新的应用开发和维护流程,这意味着发生巨大的变化,而这些变化会导致非常多的风险。重写会在一定程序上改进原有PB应用程序的不良设计和编码,但是也可能会带来许多新的隐患,新写的代码通常都是需要在运行一段时间并不停地修复Bug后才能稳定。 1.1.2 使用Appeon for PowerBuilder产品进行WEB发布 APB以企业原有的PB应用的源代码为基础,自动生成一个映射原有PB应用功能的基于多层架构的WEB新应用。APB生成的WEB应用将精确地复制PB应用的用户界面和业务逻辑。 由于 APB是基于PB源代码进行地WEB发布。因此,企业可以让PB开发人员在PowerBuilder开发环境内完成企业原有应用的修改或添加新的功能,再由APB来完成PB应用程序生成WEB应用程序的所有事情。在整个过程中,PB开发人员不需要编写任何HTML、JavaScript、CSS、Java代码 —— PB开发人员只需运用标准的PB编程技术即可。 利用APB,企业能继续使用PB开发新的功能,然后再将其转化为WEB应用。因此APB可以帮助企业使用现有的PB技术有效的对原有的PB应用进行功能的扩展。 1.2 如何选择解决方案, 企业选择解决方案的时候,首先应当考虑的是解决方案本身是否和企业自身的发展策略方向一致;其次是解决方案是否能够支撑起企业的业务运转,同时能应付将来的业务扩展;最后需要考虑的是解决方案本身的成本以及会给企业带来的风险。下面列示的是企业在进行解决方案选择的时候必须谨慎考虑的主要因素: ? 由于企业策略原因需要的是使用Java开发工具去开发WEB应用还是继续使用PowerBuilder进行应用开发, ? 原有PB应用功能是否满足企业目前的业务需要, ? 原有PB应用是否能够有效的进行功能扩展,以满足企业新的业务需求, ? 原有PB应用程序的现状是代码质量很好、维护成本很低还是与之相反, ? 原有PB应用程序转换为WEB应用程序之后对于最终用户的影响是正面的还是负面的,通常表现在最终用户对于新的WEB应用程序在用户界面和操作方式上的适应性,以及是否能够高效率的对应用进行操作。 ? 在原有PB应用程序转换为WEB应用程序的过程中,企业能否承受较长的开发周期、较多的成本及较高的风险,。 企业能准确的回答上面的问题之后,便可以选出最合适企业的解决方案。如果企业不打算继续使用PowerBuilder做为企业的主流开发工具,那么使用新的J2EE进行重写是最佳方案。反之,企业可以考虑另一种更加务实的方案——使用APB对原有的PB应用进行发布。因为APB可以帮助企业在进行PB应用程序向WEB应用程序转换的过程中缩短开发时间、减少开发成本、降低开发风险。后面的章节将对于上述两个解决方案做出更加详尽的分析和说明。 2 APB WEB发布和J2EE重写的综合比较 2.1 成本和风险 使用APB对PB应用进行WEB发布,不仅可以实现对原有程序代码的重用,还可以继续利用企业现有PB开发人员的开发技能和对应用商业逻辑的理解。用APB进行WEB发布之后的WEB应用不仅具有和利用J2EE 技术重写的WEB应用相同的架构优势,而且还保留了PB应用原来的业务逻辑和用户界面,最终用户无需经过培训即可使用发布后的WEB应用。并且企业可以继续让现有的PB开发人员对新的WEB应用进行维护以及添加新的功能。APB的这些特点将让企业的成本和风险降到最低。 而使用J2EE进行重写这种方式,需要支出更多的成本。第一,需要引进新的J2EE开发团队,或引进部分J2EE开发人员带领原有部分PB开发人员组建新的团队;第二,必需购置 新软件和硬件去支持基于J2EE平台的开发;第三,新的成员必须要花时间适应新的工作环境;第四,需要对PB开发人员培训如何使用J2EE技术进行WEB开发,并且需要培训那些新加入项目团队的J2EE开发人员熟悉应用的商务逻辑。第五,现有PB应用源代码无法重用,需要全部重写。并且原有PB开发人员需要经过很长的时间才能达到熟练运用J2EE技术开发的水平,况且J2EE平台开发生产力本身就比PB差很多。所以开发成本相对直接进行WEB发布要高很多。 另外,重写这种方式还面临更多的风险。第一,由于部分成员对J2EE新技术的应用缺乏必要的经验,由他们写出的代码可能会存在较多的隐患或者不够高效;第二,久经考验的PB应用逻辑必须重新编写,由于这个过程是由人工完成地,因此,有经验的人知道,会不可避免的出现一些错误;第四,新的代码需要花大量的时间去测试,并且上线后还会逐渐出现各种错误(Bug),这会对最终用户的工作造成影响,严重时会对企业整个业务流程造成影响。第五,由于新开发的WEB应用在界面上和流程上同以前的应用会有很多的不同,有可能会大大影响最终用户的工作效率。 不管是企业自己重写,还是选择某个外包公司重写,在项目进行过程中会一直伴随着需求、技术、成本和进度等诸多的风险。而采用APB解决方案,可以在大幅度地降低成本的同时有效的规避风险。 2.2 功能 APB在拥有将PB应用直接发布成WEB应用的能力,同时让用户界面、用户交互方式和原有PB应用一模一样。APB支持绝大多数的PB用户界面元素以及和它们相关联的事件机制,其中就包括掩码编辑器、菜单、工具条、标签页,MDI窗口等复杂的用户界面元素。正因为这些复杂用户界面元素和与之绑定的事件驱动机制,大大地丰富了WEB应用的用户界面,提供了最佳的最终用户的使用体验。最终用户再也不需要面对传统WEB应用中烦人的一次又一次的页面刷新,一个页面到另一个页面的链接和跳转。 APB另一个最重要也是最吸引人的地方是,它完全支持了PowerBuilder引以为傲的数据库访问功能和灵活实用的报表功能,包括Datawindow,DataStore,Embedded SQL以及与之相关的丰富的数据的更新、查询、过滤、查找功能。 APB的这些功能,让发布后WEB应用拥有了和原PB应用一样丰富的用户界面,强大的数据处理能力以及生成复杂数据报表能力,极大地提高了生产效率和最终用户的使用体验。 而使用J2EE技术重写的WEB应用,由于普通网页技术的局限性,大多数的界面相对简陋、交互性很差。这将直接导致用户界面的不友好,使得最终用户的体验很差,进而降低最终用户的工作效率。另外,在J2EE中实现类似APB的超强的数据处理功能有一定的难度,除非企业投入大量的资金去研究和开发。 2.3 生产力 本文以一个实际的案例来评估APB WEB发布和J2EE重写的生产力。案例实现了很多PB应用中很常用的一组和数据库进行交互的功能: ? 查询数据; ? 精确查找数据; ? 查询相应的明细数据; 使用APB进行WEB发布后的用户界面如图 1 所示,使用J2EE进行重写后的WEB应用用户界面如图 2 所示。 图1 使用APB 进行WEB发布后的应用界面截图 图2 J2EE重写出的WEB应用界面截图 开发过程分两部分:案例准备和案例开发。案例准备包括准备好案例需要使用的数据库,和撰写设计说明书。案例开发阶段,由一名精通PowerBuilder技术和另一名精通J2EE技术的开发人员分头用PowerBuilder和Java开发工具进行编码、调试、发布和部署WEB应用。 下表统计了整个过程的工作量: 方案 WEB Deployment J2EE Rewrite (PowerBuilder + APB) (Eclipse) 案例准备(小时) 4 案例开发 (小时) 4 24 代码规模 (行) 总代码行:1950 182 重用代码行:1185 手工编写:765 表 1 生产力统计数据 从表上可以看出,案例开发过程中,J2EE重写花的时间是APB方案的6倍,手工编码量是APB方案4.2倍,总代码量是APB方案的10.7倍 。需要指出的是,此案例中并不是对一个已经存在的PB应用进行WEB发布和重写。当对一个已存在的PB应用进行WEB发布时, APB方案的应用开发和发布时间将会更少。而且此案例非常简单,如果对一个界面和业务逻辑都异常复杂的应用进行WEB发布, APB方案的生产力将会更高。 2.4 应用维护 使用APB对PB应用进行WEB发布的方案,能让原开发团队继续保持原有的开发习惯和遵循已有的开发流程。而且可以通过维护同一套代码来支持不同的部署方式:按传统的C/S方式运行或发布为WEB应用程序以B/S方式运行。另外,众所周知,PB提供了强大的所见即所得以及事件驱动的编程方式,能非常容易地维护应用。 使用J2EE技术对PB应用进行WEB重写,则需要利用Java IDE如Eclipse来维护应用。Java开发工具的可用性在过去几年里得到了提高,但同那些4GL开发工具如PB、VB、Delphi相比,还有较大差距。同时,新开发的WEB应用中会包含各种类型的代码,如HTML,JavaScript,CSS,JSP,Java等等。这将直接导致了如上一节所描述的问题——新的WEB应用的代码规模将变得很大。因此,使用J2EE技术重写的Web应用不仅维护的量很大,而且Java IDE并不能帮助企业开发人员高效的维护应用。同时,在代码规模很大的情况下,调试和定位错误将变得非常困难。 2.5 集成能力 利用J2EE技术进行重写后的WEB应用能在服务器端和其他的组件进行集成,包括对EJB、WEB Service 和CORBA调用。 APB方案不仅提供基于服务器端的集成,还提供基于客户端的集成。例如在发布后的WEB应用中,可以和客户端的OLE/OCX集成,并且支持对客户端DLL及Windows API的调用(如 图3所示)。 图 3 Appeon for PowerBuilder 集成能力示意图 (注:图中的星号(―*‖)表示 CORBA和PB的NVO对象需要特定应用服务器的支持) 2.6 性能和伸缩性 将生产力比较那一节中提到的APB和J2EE案例部署到相同的软硬件环境中,然后进行相应的性能和伸缩性测试: 为基于APB发布的WEB应用和基于J2EE重写的WEB应用采用同样的性能优化措施:对从服务器端传到客户端的内容进行ZIP压缩,并对界面进行局部更新,同时都按照分页的方 式读取数据。 应用服务器采用的是WebSphere。数据库服务器则采用的是Oracle。 网络带宽为100M。测试工具为LoadRunner。测试中的思考时间为20秒,每隔1秒钟增加一个虚拟在线用户。利用LoadRunner统计如图4所示的第1-4步的响应时间(未包括界面更新的时间),以及Application Server上应用服务器的CPU占用率和内存占用情况。考虑到WEBSphere在配置好预分配内存之后的性能会更好,所以事先给WebSphere预分配了1280M内存。 图 4 性能和伸缩性测试网络架构图 2.6.1 响应时间 从图 5中可以看出,JSP和APB的差距并不明显,二者非常接近。而且保持相同的趋势。可见,JSP和APB应用的性能非常接近。 图 5 APB和J2EE WEB应用的响应时间对比 2.6.2 CPU占用 从图 6中可以看出,J2EE WEB应用 的CPU占用率要略低于APB,但非常接近。 图 6 APB和J2EE WEB应用的CPU占用率对比 2.6.3 内存使用 从图7中可以看出,用APB发布后的WEB应用的内存使用量要比J2EE WEB应用多了少许,差距为5 – 20 Mb之间,这种差距在实际应用中几乎可以忽略不计。从图上看,两种应用的内存使用量都很平稳,这与为应用服务器预先分配了1280M内存有一定的关系。 图 7 APB和J2EE WEB应用的内存使用量对比 2.6.4 小结 从上面的数据可以看出,在WegSphere应用服务器上,用APB发布后的WEB应用和与用J2EE技术重写后的WEB应用相比,在响应时间、CPU占用以及内存占用三个方面都非常 接近。因此,可以看出在同等条件下,两种方案产生的WEB应用在性能上并不存在差距。同时,由于APB采用的是Rich Client技术,可以充分利用客户端的计算能力。因而当应用的UI和逻辑非常复杂时,APB发布后的WEB应用会拥有更好的性能和伸缩性。 2.7 安全性 从安全性角度看,两种解决方案都有十分完善的措施保障应用的安全性,都支持SSL/HTTPS、LDAP验证、应用会话超时管理、WEB业务逻辑加密、数字签名等安全措施。除此之外,APB还内置了专门的用户组群去管理应用的发布和运行。 2.8 综合比较 上面已经从各个方面对两种方案进行了比较。下表是一个总结: 比较项 APB WEB Deployment Solution J2EE WEB Application Rewrite PB应用的 用户界面几乎没有 大量 改动 PB应用的 功能丰富对PB 90%以上的功能提供支持,同时支瘦客户端的架构决定了只能支持部程度和客持客户端集成技术(OLE/OCX,DLL和分功能,并且不支持客户端集成技户端的集Windows API调用)。 术。 成性 APB提供了成熟的WEB Application架受制于开发经验。如果是PB公司自性能和伸构,让发布后的应用具有不错的性能和行重写J2EE WEB应用,有可能经缩性 伸缩性。 验不足。 需要充分的时间去学习和理解新技项目启动简单PB应用比重写快3倍以上,复杂应术或需要花时间去了解应用的商业到正式上用比重写快10倍以上。 逻辑。由于技术或业务经验不足,线的时间 会拖慢整个项目进度。 可以节约75%以上的成本,来自于对现需要追加很多投资。表现在技术或项目成本 有开发人员的使用和对现有代码的重业务培训,新的软、硬件投入、对 用。而且保护了已有的投资。 客户的培训等。 由于 PB应用本身已经经过漫长的时间需要经受时间考验。所有的功能都考验。而APB又精确复制了PB应用的项目质量 被重新实现,很难在短时间内稳定业务逻辑和用户界面,因而WEB应用具下来。 有很好的质量。 风险最低。几乎不会产生项目延迟和经风险很大,来自于技术、业务和管项目风险 费超支或更糟的结果。 理方面的巨大变更。 很轻松,直接利用具有高效生产力的 项目后期4GL开发工具PowerBuilder来进行WEB难度大,效率低,缺少快速有效的维护 应用的维护。而且对C/S应用和WEB应开发工具。 用维护同一套代码。 表 2 两种方案的综合比较 3 结论 综上所述,使用J2EE进行重写和使用APB进行WEB发布各有其优势和不足。正因为如此, 使得这两种方案会适用于不同的项目。无论以何种方案去实现一个WEB应用,都需要企业考虑自身的实际情况去选择。 如果企业决定放弃原有的PB应用程序和在PB方面的开发经验甚至开发团队,那么重写将是唯一的选择。但是,当企业决定仍然使用PowerBuilder做为应用的开发和维护工具,但又想能轻松获得一个WEB程序,那么APB是最佳选择。 4 附录 – 性能测试结果 4.1 测试方法 测试在不同的在线用户数的情况下,APB和J2EE WEB应用的响应时间、CPU占用率和内存占用情况。然后根据这些指标对APB和J2EE WEB进行综合的比较,从而得出二者在不同的在线用户数下的性能表现,并观察两者是否存在性能差距。在线虚拟用户数指标的值设定为1,50,100,150,200,300,400,500。每一个定额的用户数指标会运行7分钟,在这个用户数指标运行的区间中,取最平稳的3分钟数据平均后得出最终结果。 4.2 测试脚本 脚本包含下列Transactions,以整个Action1的响应时间做为性能测试的结果。在Action1 的最后面,加入了20秒的Think Time。 Actions Transactions 应用的初始步骤 Vuser_init ? 查询第一页数据; Action1 ? 查找ID为23的数据; ? 查询ID为23 的第一部分明细数据; ? 查询ID为23 的第二部分明细数据; ? 查询ID为23 的第三部分明细数据; ? Think time: 20 seconds. 应用的结束步骤 Vuser_end 表 3 测试脚本说明 4.3 测试环境 表 4中详细的列出了测试的软件、硬件和网络环境说明。 Appeon for PowerBuilder 软机器类型 硬件 J2EE 软件 件 应用服务器 CPU: Xeon 3.0 G o Windows Server 2003 o Windows Server Memory: 2G Enterprise Edition SP1; 2003 Enterprise Edition Hard Disk: 70G o WEBSphere 5.1; SP1; Network: 100M o Appeon Server for o WEBSphere 5.1; PowerBuilder 5.0 GA; o Oracle JDBC Driver; o Oracle JDBC Driver; o JSP WEB o APB WEB application; application; 数据库服务器 CPU: Xeon 2.4 G o Windows Server 2003 o Windows Server Memory: 1G Enterprise Edition SP1; 2003 Enterprise Edition Hard Disk: 40G o Oracle 9.2i Enterprise SP1; Network: 100M Edition; o Oracle 9.2i Enterprise Edition; 测试机器 CPU: Pentium 2.4 G o Windows 2000 Server o Windows 2000 Memory: 1G SP4; Server SP4; Hard Disk: 80G o IE 6.0.2800.1106; o IE 6.0.2800.1106; Network: 100M 表 4 性能测试的软、硬件环境详细配置信息 WEBSphere安装完毕之后,还对表 5中的参数进行了调整。 参数 值 应用程序服务器 > server1 > 进程定义 >Java 虚拟机 > 初始堆大小 1280 M 应用程序服务器 > server1 > 进程定义 >Java 虚拟机 > 最大堆大小 1280 M JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 连接超时 600 秒 JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 最大连接数 200 个 JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 最小连接数 10 个 JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 获得时间 180 秒 JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 不使用超时 600 秒 表 5 对于WEBSphere进行调优的参数列表和设置的值 4.4 测试结果 4.4.1 Appeon for PowerBuilder WEB Application 用户数 响应时间(秒) CPU占用率 (%) 内存占用量(M) 1 0.064 0.42 1445 50 0.065 12.35 1467 100 0.074 23.73 1469 150 0.083 31.64 1469 200 0.110 42.51 1470 300 0.116 60.14 1472 400 0.165 73.27 1472 500 0.263 88.38 1474 表 6 APB WEB Application 测试结果 4.4.2 J2EE WEB Application 用户数 响应时间(秒) CPU占用率 (%) 内存占用量(M) 1 0.063 0.73 1440 50 0.064 13.79 1443 100 0.065 20.80 1444 150 0.070 32.32 1444 200 0.077 39.16 1445 300 0.100 56.15 1445 400 0.130 71.67 1446 500 0.216 83.31 1447 表 7 J2EE WEB Application测试结果 PB应用走向WEB的技术方案选择 —Appeon for PowerBuilder WEB 发布和J2EE WEB应用重写方案的比较 1 概述 大多数企业已经认识到,将现有基于Client/Server架构的PB应用转换为成熟的N-Tier WEB架构会给企业带来诸多的优势。其中最显著的一点是在延伸企业应用到WEB架构之后,将会有更多的人如员工、合作伙伴、客户以及其他相关人员,能通过使用该WEB应用来运行相关的业务流程。当他们在获得授权之后,可以通过互联网(Internet)随时随地访问WEB应用,让企业的运转更加方便、高效而有序。另一方面,WEB应用和C/S应用比较而言,会更具伸缩性、更安全、更加易于维护,同时能有效地降低企业的总体拥有成本。最为重要的是,应用转到WEB架构之后,能为企业带来可持续增长的利润和长期的竞争优势,保证企业在未来的日子里立于不败之地。 1.1 可行的解决方案 由于 J2EE平台的稳定性、安全性、平台无关性,以及许多基于J2EE平台的成功案例,使得很多企业更加关注J2EE平台。因此本文侧重于介绍基于J2EE平台的解决方案: 方案一、利用J2EE技术重写出一个全新的WEB应用。重写以后,将在J2EE开发环境中维护新的应用。 方案二、使用Appeon for PowerBuilder(以下简称APB)产品对原有PB应用程序在PowerBuilder(以下简称PB)开发环境中进行WEB发布 [注:APB不仅可以将应用发布到基于J2EE平台运行,也可以将应用发布到基于.NET运行]。 1.1.1 利用J2EE技术进行WEB应用重写 重写是指利用J2EE技术按照原有的业务规则开发出一套新的WEB应用程序。因此,整理出原有PB应用的业务规则和数据结构是所有重写活动的起点,同时也是重点。原有PB应用的业务规则和数据结构的整理质量对于项目是否成功将起到决定性的作用。然后再使用HTML、CSS、JavaScript、Jsp、Servlet、 EJB等技术去实现这些已经整理出来的业务规则和数据结构。同继续使用PB开发应用相比,J2EE开发技术难度高,花的时间多,各种不确定因素较多,风险大。 企业可以选择自己重写,也可以选择外包给另外的公司。不管是企业自己重写还是外包,由于PB技术和J2EE技术本身的差异,企业将要使用全新的应用开发和维护流程,这意味着发生巨大的变化,而这些变化会导致非常多的风险。重写会在一定程序上改进原有PB应用程序的不良设计和编码,但是也可能会带来许多新的隐患,新写的代码通常都是需要在运行一段时间并不停地修复Bug后才能稳定。 1.1.2 使用Appeon for PowerBuilder产品进行WEB发布 APB以企业原有的PB应用的源代码为基础,自动生成一个映射原有PB应用功能的基于多层架构的WEB新应用。APB生成的WEB应用将精确地复制PB应用的用户界面和业务逻辑。 由于 APB是基于PB源代码进行地WEB发布。因此,企业可以让PB开发人员在PowerBuilder开发环境内完成企业原有应用的修改或添加新的功能,再由APB来完成PB应用程序生成WEB应用程序的所有事情。在整个过程中,PB开发人员不需要编写任何HTML、JavaScript、CSS、Java代码 —— PB开发人员只需运用标准的PB编程技术即可。 利用APB,企业能继续使用PB开发新的功能,然后再将其转化为WEB应用。因此APB可以帮助企业使用现有的PB技术有效的对原有的PB应用进行功能的扩展。 1.2 如何选择解决方案, 企业选择解决方案的时候,首先应当考虑的是解决方案本身是否和企业自身的发展策略方向一致;其次是解决方案是否能够支撑起企业的业务运转,同时能应付将来的业务扩展;最后需要考虑的是解决方案本身的成本以及会给企业带来的风险。下面列示的是企业在进行解决方案选择的时候必须谨慎考虑的主要因素: ? 由于企业策略原因需要的是使用Java开发工具去开发WEB应用还是继续使用PowerBuilder进行应用开发, ? 原有PB应用功能是否满足企业目前的业务需要, ? 原有PB应用是否能够有效的进行功能扩展,以满足企业新的业务需求, ? 原有PB应用程序的现状是代码质量很好、维护成本很低还是与之相反, ? 原有PB应用程序转换为WEB应用程序之后对于最终用户的影响是正面的还是负面的,通常表现在最终用户对于新的WEB应用程序在用户界面和操作方式上的适应性,以及是否能够高效率的对应用进行操作。 ? 在原有PB应用程序转换为WEB应用程序的过程中,企业能否承受较长的开发周期、较多的成本及较高的风险,。 企业能准确的回答上面的问题之后,便可以选出最合适企业的解决方案。如果企业不打算继续使用PowerBuilder做为企业的主流开发工具,那么使用新的J2EE进行重写是最佳方案。反之,企业可以考虑另一种更加务实的方案——使用APB对原有的PB应用进行发布。因为APB可以帮助企业在进行PB应用程序向WEB应用程序转换的过程中缩短开发时间、减少开发成本、降低开发风险。后面的章节将对于上述两个解决方案做出更加详尽的分析和说明。 2 APB WEB发布和J2EE重写的综合比较 2.1 成本和风险 使用APB对PB应用进行WEB发布,不仅可以实现对原有程序代码的重用,还可以继续利用企业现有PB开发人员的开发技能和对应用商业逻辑的理解。用APB进行WEB发布之后的WEB应用不仅具有和利用J2EE 技术重写的WEB应用相同的架构优势,而且还保留了PB应用原来的业务逻辑和用户界面,最终用户无需经过培训即可使用发布后的WEB应用。并且企业可以继续让现有的PB开发人员对新的WEB应用进行维护以及添加新的功能。APB的这些特点将让企业的成本和风险降到最低。 而使用J2EE进行重写这种方式,需要支出更多的成本。第一,需要引进新的J2EE开发团队,或引进部分J2EE开发人员带领原有部分PB开发人员组建新的团队;第二,必需购置 新软件和硬件去支持基于J2EE平台的开发;第三,新的成员必须要花时间适应新的工作环境;第四,需要对PB开发人员培训如何使用J2EE技术进行WEB开发,并且需要培训那些新加入项目团队的J2EE开发人员熟悉应用的商务逻辑。第五,现有PB应用源代码无法重用,需要全部重写。并且原有PB开发人员需要经过很长的时间才能达到熟练运用J2EE技术开发的水平,况且J2EE平台开发生产力本身就比PB差很多。所以开发成本相对直接进行WEB发布要高很多。 另外,重写这种方式还面临更多的风险。第一,由于部分成员对J2EE新技术的应用缺乏必要的经验,由他们写出的代码可能会存在较多的隐患或者不够高效;第二,久经考验的PB应用逻辑必须重新编写,由于这个过程是由人工完成地,因此,有经验的人知道,会不可避免的出现一些错误;第四,新的代码需要花大量的时间去测试,并且上线后还会逐渐出现各种错误(Bug),这会对最终用户的工作造成影响,严重时会对企业整个业务流程造成影响。第五,由于新开发的WEB应用在界面上和流程上同以前的应用会有很多的不同,有可能会大大影响最终用户的工作效率。 不管是企业自己重写,还是选择某个外包公司重写,在项目进行过程中会一直伴随着需求、技术、成本和进度等诸多的风险。而采用APB解决方案,可以在大幅度地降低成本的同时有效的规避风险。 2.2 功能 APB在拥有将PB应用直接发布成WEB应用的能力,同时让用户界面、用户交互方式和原有PB应用一模一样。APB支持绝大多数的PB用户界面元素以及和它们相关联的事件机制,其中就包括掩码编辑器、菜单、工具条、标签页,MDI窗口等复杂的用户界面元素。正因为这些复杂用户界面元素和与之绑定的事件驱动机制,大大地丰富了WEB应用的用户界面,提供了最佳的最终用户的使用体验。最终用户再也不需要面对传统WEB应用中烦人的一次又一次的页面刷新,一个页面到另一个页面的链接和跳转。 APB另一个最重要也是最吸引人的地方是,它完全支持了PowerBuilder引以为傲的数据库访问功能和灵活实用的报表功能,包括Datawindow,DataStore,Embedded SQL以及与之相关的丰富的数据的更新、查询、过滤、查找功能。 APB的这些功能,让发布后WEB应用拥有了和原PB应用一样丰富的用户界面,强大的数据处理能力以及生成复杂数据报表能力,极大地提高了生产效率和最终用户的使用体验。 而使用J2EE技术重写的WEB应用,由于普通网页技术的局限性,大多数的界面相对简陋、交互性很差。这将直接导致用户界面的不友好,使得最终用户的体验很差,进而降低最终用户的工作效率。另外,在J2EE中实现类似APB的超强的数据处理功能有一定的难度,除非企业投入大量的资金去研究和开发。 2.3 生产力 本文以一个实际的案例来评估APB WEB发布和J2EE重写的生产力。案例实现了很多PB应用中很常用的一组和数据库进行交互的功能: ? 查询数据; ? 精确查找数据; ? 查询相应的明细数据; 使用APB进行WEB发布后的用户界面如图 1 所示,使用J2EE进行重写后的WEB应用用户界面如图 2 所示。 图1 使用APB 进行WEB发布后的应用界面截图 图2 J2EE重写出的WEB应用界面截图 开发过程分两部分:案例准备和案例开发。案例准备包括准备好案例需要使用的数据库,和撰写设计说明书。案例开发阶段,由一名精通PowerBuilder技术和另一名精通J2EE技术的开发人员分头用PowerBuilder和Java开发工具进行编码、调试、发布和部署WEB应用。 下表统计了整个过程的工作量: 方案 WEB Deployment J2EE Rewrite (PowerBuilder + APB) (Eclipse) 案例准备(小时) 4 案例开发 (小时) 4 24 代码规模 (行) 总代码行:1950 182 重用代码行:1185 手工编写:765 表 1 生产力统计数据 从表上可以看出,案例开发过程中,J2EE重写花的时间是APB方案的6倍,手工编码量是APB方案4.2倍,总代码量是APB方案的10.7倍 。需要指出的是,此案例中并不是对一个已经存在的PB应用进行WEB发布和重写。当对一个已存在的PB应用进行WEB发布时, APB方案的应用开发和发布时间将会更少。而且此案例非常简单,如果对一个界面和业务逻辑都异常复杂的应用进行WEB发布, APB方案的生产力将会更高。 2.4 应用维护 使用APB对PB应用进行WEB发布的方案,能让原开发团队继续保持原有的开发习惯和遵循已有的开发流程。而且可以通过维护同一套代码来支持不同的部署方式:按传统的C/S方式运行或发布为WEB应用程序以B/S方式运行。另外,众所周知,PB提供了强大的所见即所得以及事件驱动的编程方式,能非常容易地维护应用。 使用J2EE技术对PB应用进行WEB重写,则需要利用Java IDE如Eclipse来维护应用。Java开发工具的可用性在过去几年里得到了提高,但同那些4GL开发工具如PB、VB、Delphi相比,还有较大差距。同时,新开发的WEB应用中会包含各种类型的代码,如HTML,JavaScript,CSS,JSP,Java等等。这将直接导致了如上一节所描述的问题——新的WEB应用的代码规模将变得很大。因此,使用J2EE技术重写的Web应用不仅维护的量很大,而且Java IDE并不能帮助企业开发人员高效的维护应用。同时,在代码规模很大的情况下,调试和定位错误将变得非常困难。 2.5 集成能力 利用J2EE技术进行重写后的WEB应用能在服务器端和其他的组件进行集成,包括对EJB、WEB Service 和CORBA调用。 APB方案不仅提供基于服务器端的集成,还提供基于客户端的集成。例如在发布后的WEB应用中,可以和客户端的OLE/OCX集成,并且支持对客户端DLL及Windows API的调用(如 图3所示)。 图 3 Appeon for PowerBuilder 集成能力示意图 (注:图中的星号(―*‖)表示 CORBA和PB的NVO对象需要特定应用服务器的支持) 2.6 性能和伸缩性 将生产力比较那一节中提到的APB和J2EE案例部署到相同的软硬件环境中,然后进行相应的性能和伸缩性测试: 为基于APB发布的WEB应用和基于J2EE重写的WEB应用采用同样的性能优化措施:对从服务器端传到客户端的内容进行ZIP压缩,并对界面进行局部更新,同时都按照分页的方 式读取数据。 应用服务器采用的是WebSphere。数据库服务器则采用的是Oracle。 网络带宽为100M。测试工具为LoadRunner。测试中的思考时间为20秒,每隔1秒钟增加一个虚拟在线用户。利用LoadRunner统计如图4所示的第1-4步的响应时间(未包括界面更新的时间),以及Application Server上应用服务器的CPU占用率和内存占用情况。考虑到WEBSphere在配置好预分配内存之后的性能会更好,所以事先给WebSphere预分配了1280M内存。 图 4 性能和伸缩性测试网络架构图 2.6.1 响应时间 从图 5中可以看出,JSP和APB的差距并不明显,二者非常接近。而且保持相同的趋势。可见,JSP和APB应用的性能非常接近。 图 5 APB和J2EE WEB应用的响应时间对比 2.6.2 CPU占用 从图 6中可以看出,J2EE WEB应用 的CPU占用率要略低于APB,但非常接近。 图 6 APB和J2EE WEB应用的CPU占用率对比 2.6.3 内存使用 从图7中可以看出,用APB发布后的WEB应用的内存使用量要比J2EE WEB应用多了少许,差距为5 – 20 Mb之间,这种差距在实际应用中几乎可以忽略不计。从图上看,两种应用的内存使用量都很平稳,这与为应用服务器预先分配了1280M内存有一定的关系。 图 7 APB和J2EE WEB应用的内存使用量对比 2.6.4 小结 从上面的数据可以看出,在WegSphere应用服务器上,用APB发布后的WEB应用和与用J2EE技术重写后的WEB应用相比,在响应时间、CPU占用以及内存占用三个方面都非常 接近。因此,可以看出在同等条件下,两种方案产生的WEB应用在性能上并不存在差距。同时,由于APB采用的是Rich Client技术,可以充分利用客户端的计算能力。因而当应用的UI和逻辑非常复杂时,APB发布后的WEB应用会拥有更好的性能和伸缩性。 2.7 安全性 从安全性角度看,两种解决方案都有十分完善的措施保障应用的安全性,都支持SSL/HTTPS、LDAP验证、应用会话超时管理、WEB业务逻辑加密、数字签名等安全措施。除此之外,APB还内置了专门的用户组群去管理应用的发布和运行。 2.8 综合比较 上面已经从各个方面对两种方案进行了比较。下表是一个总结: 比较项 APB WEB Deployment Solution J2EE WEB Application Rewrite PB应用的 用户界面几乎没有 大量 改动 PB应用的 功能丰富对PB 90%以上的功能提供支持,同时支瘦客户端的架构决定了只能支持部程度和客持客户端集成技术(OLE/OCX,DLL和分功能,并且不支持客户端集成技户端的集Windows API调用)。 术。 成性 APB提供了成熟的WEB Application架受制于开发经验。如果是PB公司自性能和伸构,让发布后的应用具有不错的性能和行重写J2EE WEB应用,有可能经缩性 伸缩性。 验不足。 需要充分的时间去学习和理解新技项目启动简单PB应用比重写快3倍以上,复杂应术或需要花时间去了解应用的商业到正式上用比重写快10倍以上。 逻辑。由于技术或业务经验不足,线的时间 会拖慢整个项目进度。 可以节约75%以上的成本,来自于对现需要追加很多投资。表现在技术或项目成本 有开发人员的使用和对现有代码的重业务培训,新的软、硬件投入、对 用。而且保护了已有的投资。 客户的培训等。 由于 PB应用本身已经经过漫长的时间需要经受时间考验。所有的功能都考验。而APB又精确复制了PB应用的项目质量 被重新实现,很难在短时间内稳定业务逻辑和用户界面,因而WEB应用具下来。 有很好的质量。 风险最低。几乎不会产生项目延迟和经风险很大,来自于技术、业务和管项目风险 费超支或更糟的结果。 理方面的巨大变更。 很轻松,直接利用具有高效生产力的 项目后期4GL开发工具PowerBuilder来进行WEB难度大,效率低,缺少快速有效的维护 应用的维护。而且对C/S应用和WEB应开发工具。 用维护同一套代码。 表 2 两种方案的综合比较 3 结论 综上所述,使用J2EE进行重写和使用APB进行WEB发布各有其优势和不足。正因为如此, 使得这两种方案会适用于不同的项目。无论以何种方案去实现一个WEB应用,都需要企业考虑自身的实际情况去选择。 如果企业决定放弃原有的PB应用程序和在PB方面的开发经验甚至开发团队,那么重写将是唯一的选择。但是,当企业决定仍然使用PowerBuilder做为应用的开发和维护工具,但又想能轻松获得一个WEB程序,那么APB是最佳选择。 4 附录 – 性能测试结果 4.1 测试方法 测试在不同的在线用户数的情况下,APB和J2EE WEB应用的响应时间、CPU占用率和内存占用情况。然后根据这些指标对APB和J2EE WEB进行综合的比较,从而得出二者在不同的在线用户数下的性能表现,并观察两者是否存在性能差距。在线虚拟用户数指标的值设定为1,50,100,150,200,300,400,500。每一个定额的用户数指标会运行7分钟,在这个用户数指标运行的区间中,取最平稳的3分钟数据平均后得出最终结果。 4.2 测试脚本 脚本包含下列Transactions,以整个Action1的响应时间做为性能测试的结果。在Action1 的最后面,加入了20秒的Think Time。 Actions Transactions 应用的初始步骤 Vuser_init ? 查询第一页数据; Action1 ? 查找ID为23的数据; ? 查询ID为23 的第一部分明细数据; ? 查询ID为23 的第二部分明细数据; ? 查询ID为23 的第三部分明细数据; ? Think time: 20 seconds. 应用的结束步骤 Vuser_end 表 3 测试脚本说明 4.3 测试环境 表 4中详细的列出了测试的软件、硬件和网络环境说明。 Appeon for PowerBuilder 软机器类型 硬件 J2EE 软件 件 应用服务器 CPU: Xeon 3.0 G o Windows Server 2003 o Windows Server Memory: 2G Enterprise Edition SP1; 2003 Enterprise Edition Hard Disk: 70G o WEBSphere 5.1; SP1; Network: 100M o Appeon Server for o WEBSphere 5.1; PowerBuilder 5.0 GA; o Oracle JDBC Driver; o Oracle JDBC Driver; o JSP WEB o APB WEB application; application; 数据库服务器 CPU: Xeon 2.4 G o Windows Server 2003 o Windows Server Memory: 1G Enterprise Edition SP1; 2003 Enterprise Edition Hard Disk: 40G o Oracle 9.2i Enterprise SP1; Network: 100M Edition; o Oracle 9.2i Enterprise Edition; 测试机器 CPU: Pentium 2.4 G o Windows 2000 Server o Windows 2000 Memory: 1G SP4; Server SP4; Hard Disk: 80G o IE 6.0.2800.1106; o IE 6.0.2800.1106; Network: 100M 表 4 性能测试的软、硬件环境详细配置信息 WEBSphere安装完毕之后,还对表 5中的参数进行了调整。 参数 值 应用程序服务器 > server1 > 进程定义 >Java 虚拟机 > 初始堆大小 1280 M 应用程序服务器 > server1 > 进程定义 >Java 虚拟机 > 最大堆大小 1280 M JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 连接超时 600 秒 JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 最大连接数 200 个 JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 最小连接数 10 个 JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 获得时间 180 秒 JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 不使用超时 600 秒 表 5 对于WEBSphere进行调优的参数列表和设置的值 4.4 测试结果 4.4.1 Appeon for PowerBuilder WEB Application 用户数 响应时间(秒) CPU占用率 (%) 内存占用量(M) 1 0.064 0.42 1445 50 0.065 12.35 1467 100 0.074 23.73 1469 150 0.083 31.64 1469 200 0.110 42.51 1470 300 0.116 60.14 1472 400 0.165 73.27 1472 500 0.263 88.38 1474 表 6 APB WEB Application 测试结果 4.4.2 J2EE WEB Application 用户数 响应时间(秒) CPU占用率 (%) 内存占用量(M) 1 0.063 0.73 1440 50 0.064 13.79 1443 100 0.065 20.80 1444 150 0.070 32.32 1444 200 0.077 39.16 1445 300 0.100 56.15 1445 400 0.130 71.67 1446 500 0.216 83.31 1447 表 7 J2EE WEB Application测试结果 PB应用走向WEB的技术方案选择 —Appeon for PowerBuilder WEB 发布和J2EE WEB应用重写方案的比较 1 概述 大多数企业已经认识到,将现有基于Client/Server架构的PB应用转换为成熟的N-Tier WEB架构会给企业带来诸多的优势。其中最显著的一点是在延伸企业应用到WEB架构之后,将会有更多的人如员工、合作伙伴、客户以及其他相关人员,能通过使用该WEB应用来运行相关的业务流程。当他们在获得授权之后,可以通过互联网(Internet)随时随地访问WEB应用,让企业的运转更加方便、高效而有序。另一方面,WEB应用和C/S应用比较而言,会更具伸缩性、更安全、更加易于维护,同时能有效地降低企业的总体拥有成本。最为重要的是,应用转到WEB架构之后,能为企业带来可持续增长的利润和长期的竞争优势,保证企业在未来的日子里立于不败之地。 1.1 可行的解决方案 由于 J2EE平台的稳定性、安全性、平台无关性,以及许多基于J2EE平台的成功案例,使得很多企业更加关注J2EE平台。因此本文侧重于介绍基于J2EE平台的解决方案: 方案一、利用J2EE技术重写出一个全新的WEB应用。重写以后,将在J2EE开发环境中维护新的应用。 方案二、使用Appeon for PowerBuilder(以下简称APB)产品对原有PB应用程序在PowerBuilder(以下简称PB)开发环境中进行WEB发布 [注:APB不仅可以将应用发布到基于J2EE平台运行,也可以将应用发布到基于.NET运行]。 1.1.1 利用J2EE技术进行WEB应用重写 重写是指利用J2EE技术按照原有的业务规则开发出一套新的WEB应用程序。因此,整理出原有PB应用的业务规则和数据结构是所有重写活动的起点,同时也是重点。原有PB应用的业务规则和数据结构的整理质量对于项目是否成功将起到决定性的作用。然后再使用HTML、CSS、JavaScript、Jsp、Servlet、 EJB等技术去实现这些已经整理出来的业务规则和数据结构。同继续使用PB开发应用相比,J2EE开发技术难度高,花的时间多,各种不确定因素较多,风险大。 企业可以选择自己重写,也可以选择外包给另外的公司。不管是企业自己重写还是外包,由于PB技术和J2EE技术本身的差异,企业将要使用全新的应用开发和维护流程,这意味着发生巨大的变化,而这些变化会导致非常多的风险。重写会在一定程序上改进原有PB应用程序的不良设计和编码,但是也可能会带来许多新的隐患,新写的代码通常都是需要在运行一段时间并不停地修复Bug后才能稳定。 1.1.2 使用Appeon for PowerBuilder产品进行WEB发布 APB以企业原有的PB应用的源代码为基础,自动生成一个映射原有PB应用功能的基于多层架构的WEB新应用。APB生成的WEB应用将精确地复制PB应用的用户界面和业务逻辑。 由于 APB是基于PB源代码进行地WEB发布。因此,企业可以让PB开发人员在PowerBuilder开发环境内完成企业原有应用的修改或添加新的功能,再由APB来完成PB应用程序生成WEB应用程序的所有事情。在整个过程中,PB开发人员不需要编写任何HTML、JavaScript、CSS、Java代码 —— PB开发人员只需运用标准的PB编程技术即可。 利用APB,企业能继续使用PB开发新的功能,然后再将其转化为WEB应用。因此APB可以帮助企业使用现有的PB技术有效的对原有的PB应用进行功能的扩展。 1.2 如何选择解决方案, 企业选择解决方案的时候,首先应当考虑的是解决方案本身是否和企业自身的发展策略方向一致;其次是解决方案是否能够支撑起企业的业务运转,同时能应付将来的业务扩展;最后需要考虑的是解决方案本身的成本以及会给企业带来的风险。下面列示的是企业在进行解决方案选择的时候必须谨慎考虑的主要因素: ? 由于企业策略原因需要的是使用Java开发工具去开发WEB应用还是继续使用PowerBuilder进行应用开发, ? 原有PB应用功能是否满足企业目前的业务需要, ? 原有PB应用是否能够有效的进行功能扩展,以满足企业新的业务需求, ? 原有PB应用程序的现状是代码质量很好、维护成本很低还是与之相反, ? 原有PB应用程序转换为WEB应用程序之后对于最终用户的影响是正面的还是负面的,通常表现在最终用户对于新的WEB应用程序在用户界面和操作方式上的适应性,以及是否能够高效率的对应用进行操作。 ? 在原有PB应用程序转换为WEB应用程序的过程中,企业能否承受较长的开发周期、较多的成本及较高的风险,。 企业能准确的回答上面的问题之后,便可以选出最合适企业的解决方案。如果企业不打算继续使用PowerBuilder做为企业的主流开发工具,那么使用新的J2EE进行重写是最佳方案。反之,企业可以考虑另一种更加务实的方案——使用APB对原有的PB应用进行发布。因为APB可以帮助企业在进行PB应用程序向WEB应用程序转换的过程中缩短开发时间、减少开发成本、降低开发风险。后面的章节将对于上述两个解决方案做出更加详尽的分析和说明。 2 APB WEB发布和J2EE重写的综合比较 2.1 成本和风险 使用APB对PB应用进行WEB发布,不仅可以实现对原有程序代码的重用,还可以继续利用企业现有PB开发人员的开发技能和对应用商业逻辑的理解。用APB进行WEB发布之后的WEB应用不仅具有和利用J2EE 技术重写的WEB应用相同的架构优势,而且还保留了PB应用原来的业务逻辑和用户界面,最终用户无需经过培训即可使用发布后的WEB应用。并且企业可以继续让现有的PB开发人员对新的WEB应用进行维护以及添加新的功能。APB的这些特点将让企业的成本和风险降到最低。 而使用J2EE进行重写这种方式,需要支出更多的成本。第一,需要引进新的J2EE开发团队,或引进部分J2EE开发人员带领原有部分PB开发人员组建新的团队;第二,必需购置 新软件和硬件去支持基于J2EE平台的开发;第三,新的成员必须要花时间适应新的工作环境;第四,需要对PB开发人员培训如何使用J2EE技术进行WEB开发,并且需要培训那些新加入项目团队的J2EE开发人员熟悉应用的商务逻辑。第五,现有PB应用源代码无法重用,需要全部重写。并且原有PB开发人员需要经过很长的时间才能达到熟练运用J2EE技术开发的水平,况且J2EE平台开发生产力本身就比PB差很多。所以开发成本相对直接进行WEB发布要高很多。 另外,重写这种方式还面临更多的风险。第一,由于部分成员对J2EE新技术的应用缺乏必要的经验,由他们写出的代码可能会存在较多的隐患或者不够高效;第二,久经考验的PB应用逻辑必须重新编写,由于这个过程是由人工完成地,因此,有经验的人知道,会不可避免的出现一些错误;第四,新的代码需要花大量的时间去测试,并且上线后还会逐渐出现各种错误(Bug),这会对最终用户的工作造成影响,严重时会对企业整个业务流程造成影响。第五,由于新开发的WEB应用在界面上和流程上同以前的应用会有很多的不同,有可能会大大影响最终用户的工作效率。 不管是企业自己重写,还是选择某个外包公司重写,在项目进行过程中会一直伴随着需求、技术、成本和进度等诸多的风险。而采用APB解决方案,可以在大幅度地降低成本的同时有效的规避风险。 2.2 功能 APB在拥有将PB应用直接发布成WEB应用的能力,同时让用户界面、用户交互方式和原有PB应用一模一样。APB支持绝大多数的PB用户界面元素以及和它们相关联的事件机制,其中就包括掩码编辑器、菜单、工具条、标签页,MDI窗口等复杂的用户界面元素。正因为这些复杂用户界面元素和与之绑定的事件驱动机制,大大地丰富了WEB应用的用户界面,提供了最佳的最终用户的使用体验。最终用户再也不需要面对传统WEB应用中烦人的一次又一次的页面刷新,一个页面到另一个页面的链接和跳转。 APB另一个最重要也是最吸引人的地方是,它完全支持了PowerBuilder引以为傲的数据库访问功能和灵活实用的报表功能,包括Datawindow,DataStore,Embedded SQL以及与之相关的丰富的数据的更新、查询、过滤、查找功能。 APB的这些功能,让发布后WEB应用拥有了和原PB应用一样丰富的用户界面,强大的数据处理能力以及生成复杂数据报表能力,极大地提高了生产效率和最终用户的使用体验。 而使用J2EE技术重写的WEB应用,由于普通网页技术的局限性,大多数的界面相对简陋、交互性很差。这将直接导致用户界面的不友好,使得最终用户的体验很差,进而降低最终用户的工作效率。另外,在J2EE中实现类似APB的超强的数据处理功能有一定的难度,除非企业投入大量的资金去研究和开发。 2.3 生产力 本文以一个实际的案例来评估APB WEB发布和J2EE重写的生产力。案例实现了很多PB应用中很常用的一组和数据库进行交互的功能: ? 查询数据; ? 精确查找数据; ? 查询相应的明细数据; 使用APB进行WEB发布后的用户界面如图 1 所示,使用J2EE进行重写后的WEB应用用户界面如图 2 所示。 图1 使用APB 进行WEB发布后的应用界面截图 图2 J2EE重写出的WEB应用界面截图 开发过程分两部分:案例准备和案例开发。案例准备包括准备好案例需要使用的数据库,和撰写设计说明书。案例开发阶段,由一名精通PowerBuilder技术和另一名精通J2EE技术的开发人员分头用PowerBuilder和Java开发工具进行编码、调试、发布和部署WEB应用。 下表统计了整个过程的工作量: 方案 WEB Deployment J2EE Rewrite (PowerBuilder + APB) (Eclipse) 案例准备(小时) 4 案例开发 (小时) 4 24 代码规模 (行) 总代码行:1950 182 重用代码行:1185 手工编写:765 表 1 生产力统计数据 从表上可以看出,案例开发过程中,J2EE重写花的时间是APB方案的6倍,手工编码量是APB方案4.2倍,总代码量是APB方案的10.7倍 。需要指出的是,此案例中并不是对一个已经存在的PB应用进行WEB发布和重写。当对一个已存在的PB应用进行WEB发布时, APB方案的应用开发和发布时间将会更少。而且此案例非常简单,如果对一个界面和业务逻辑都异常复杂的应用进行WEB发布, APB方案的生产力将会更高。 2.4 应用维护 使用APB对PB应用进行WEB发布的方案,能让原开发团队继续保持原有的开发习惯和遵循已有的开发流程。而且可以通过维护同一套代码来支持不同的部署方式:按传统的C/S方式运行或发布为WEB应用程序以B/S方式运行。另外,众所周知,PB提供了强大的所见即所得以及事件驱动的编程方式,能非常容易地维护应用。 使用J2EE技术对PB应用进行WEB重写,则需要利用Java IDE如Eclipse来维护应用。Java开发工具的可用性在过去几年里得到了提高,但同那些4GL开发工具如PB、VB、Delphi相比,还有较大差距。同时,新开发的WEB应用中会包含各种类型的代码,如HTML,JavaScript,CSS,JSP,Java等等。这将直接导致了如上一节所描述的问题——新的WEB应用的代码规模将变得很大。因此,使用J2EE技术重写的Web应用不仅维护的量很大,而且Java IDE并不能帮助企业开发人员高效的维护应用。同时,在代码规模很大的情况下,调试和定位错误将变得非常困难。 2.5 集成能力 利用J2EE技术进行重写后的WEB应用能在服务器端和其他的组件进行集成,包括对EJB、WEB Service 和CORBA调用。 APB方案不仅提供基于服务器端的集成,还提供基于客户端的集成。例如在发布后的WEB应用中,可以和客户端的OLE/OCX集成,并且支持对客户端DLL及Windows API的调用(如 图3所示)。 图 3 Appeon for PowerBuilder 集成能力示意图 (注:图中的星号(―*‖)表示 CORBA和PB的NVO对象需要特定应用服务器的支持) 2.6 性能和伸缩性 将生产力比较那一节中提到的APB和J2EE案例部署到相同的软硬件环境中,然后进行相应的性能和伸缩性测试: 为基于APB发布的WEB应用和基于J2EE重写的WEB应用采用同样的性能优化措施:对从服务器端传到客户端的内容进行ZIP压缩,并对界面进行局部更新,同时都按照分页的方 式读取数据。 应用服务器采用的是WebSphere。数据库服务器则采用的是Oracle。 网络带宽为100M。测试工具为LoadRunner。测试中的思考时间为20秒,每隔1秒钟增加一个虚拟在线用户。利用LoadRunner统计如图4所示的第1-4步的响应时间(未包括界面更新的时间),以及Application Server上应用服务器的CPU占用率和内存占用情况。考虑到WEBSphere在配置好预分配内存之后的性能会更好,所以事先给WebSphere预分配了1280M内存。 图 4 性能和伸缩性测试网络架构图 2.6.1 响应时间 从图 5中可以看出,JSP和APB的差距并不明显,二者非常接近。而且保持相同的趋势。可见,JSP和APB应用的性能非常接近。 图 5 APB和J2EE WEB应用的响应时间对比 2.6.2 CPU占用 从图 6中可以看出,J2EE WEB应用 的CPU占用率要略低于APB,但非常接近。 图 6 APB和J2EE WEB应用的CPU占用率对比 2.6.3 内存使用 从图7中可以看出,用APB发布后的WEB应用的内存使用量要比J2EE WEB应用多了少许,差距为5 – 20 Mb之间,这种差距在实际应用中几乎可以忽略不计。从图上看,两种应用的内存使用量都很平稳,这与为应用服务器预先分配了1280M内存有一定的关系。 图 7 APB和J2EE WEB应用的内存使用量对比 2.6.4 小结 从上面的数据可以看出,在WegSphere应用服务器上,用APB发布后的WEB应用和与用J2EE技术重写后的WEB应用相比,在响应时间、CPU占用以及内存占用三个方面都非常 接近。因此,可以看出在同等条件下,两种方案产生的WEB应用在性能上并不存在差距。同时,由于APB采用的是Rich Client技术,可以充分利用客户端的计算能力。因而当应用的UI和逻辑非常复杂时,APB发布后的WEB应用会拥有更好的性能和伸缩性。 2.7 安全性 从安全性角度看,两种解决方案都有十分完善的措施保障应用的安全性,都支持SSL/HTTPS、LDAP验证、应用会话超时管理、WEB业务逻辑加密、数字签名等安全措施。除此之外,APB还内置了专门的用户组群去管理应用的发布和运行。 2.8 综合比较 上面已经从各个方面对两种方案进行了比较。下表是一个总结: 比较项 APB WEB Deployment Solution J2EE WEB Application Rewrite PB应用的 用户界面几乎没有 大量 改动 PB应用的 功能丰富对PB 90%以上的功能提供支持,同时支瘦客户端的架构决定了只能支持部程度和客持客户端集成技术(OLE/OCX,DLL和分功能,并且不支持客户端集成技户端的集Windows API调用)。 术。 成性 APB提供了成熟的WEB Application架受制于开发经验。如果是PB公司自性能和伸构,让发布后的应用具有不错的性能和行重写J2EE WEB应用,有可能经缩性 伸缩性。 验不足。 需要充分的时间去学习和理解新技项目启动简单PB应用比重写快3倍以上,复杂应术或需要花时间去了解应用的商业到正式上用比重写快10倍以上。 逻辑。由于技术或业务经验不足,线的时间 会拖慢整个项目进度。 可以节约75%以上的成本,来自于对现需要追加很多投资。表现在技术或项目成本 有开发人员的使用和对现有代码的重业务培训,新的软、硬件投入、对 用。而且保护了已有的投资。 客户的培训等。 由于 PB应用本身已经经过漫长的时间需要经受时间考验。所有的功能都考验。而APB又精确复制了PB应用的项目质量 被重新实现,很难在短时间内稳定业务逻辑和用户界面,因而WEB应用具下来。 有很好的质量。 风险最低。几乎不会产生项目延迟和经风险很大,来自于技术、业务和管项目风险 费超支或更糟的结果。 理方面的巨大变更。 很轻松,直接利用具有高效生产力的 项目后期4GL开发工具PowerBuilder来进行WEB难度大,效率低,缺少快速有效的维护 应用的维护。而且对C/S应用和WEB应开发工具。 用维护同一套代码。 表 2 两种方案的综合比较 3 结论 综上所述,使用J2EE进行重写和使用APB进行WEB发布各有其优势和不足。正因为如此, 使得这两种方案会适用于不同的项目。无论以何种方案去实现一个WEB应用,都需要企业考虑自身的实际情况去选择。 如果企业决定放弃原有的PB应用程序和在PB方面的开发经验甚至开发团队,那么重写将是唯一的选择。但是,当企业决定仍然使用PowerBuilder做为应用的开发和维护工具,但又想能轻松获得一个WEB程序,那么APB是最佳选择。 4 附录 – 性能测试结果 4.1 测试方法 测试在不同的在线用户数的情况下,APB和J2EE WEB应用的响应时间、CPU占用率和内存占用情况。然后根据这些指标对APB和J2EE WEB进行综合的比较,从而得出二者在不同的在线用户数下的性能表现,并观察两者是否存在性能差距。在线虚拟用户数指标的值设定为1,50,100,150,200,300,400,500。每一个定额的用户数指标会运行7分钟,在这个用户数指标运行的区间中,取最平稳的3分钟数据平均后得出最终结果。 4.2 测试脚本 脚本包含下列Transactions,以整个Action1的响应时间做为性能测试的结果。在Action1 的最后面,加入了20秒的Think Time。 Actions Transactions 应用的初始步骤 Vuser_init ? 查询第一页数据; Action1 ? 查找ID为23的数据; ? 查询ID为23 的第一部分明细数据; ? 查询ID为23 的第二部分明细数据; ? 查询ID为23 的第三部分明细数据; ? Think time: 20 seconds. 应用的结束步骤 Vuser_end 表 3 测试脚本说明 4.3 测试环境 表 4中详细的列出了测试的软件、硬件和网络环境说明。 Appeon for PowerBuilder 软机器类型 硬件 J2EE 软件 件 应用服务器 CPU: Xeon 3.0 G o Windows Server 2003 o Windows Server Memory: 2G Enterprise Edition SP1; 2003 Enterprise Edition Hard Disk: 70G o WEBSphere 5.1; SP1; Network: 100M o Appeon Server for o WEBSphere 5.1; PowerBuilder 5.0 GA; o Oracle JDBC Driver; o Oracle JDBC Driver; o JSP WEB o APB WEB application; application; 数据库服务器 CPU: Xeon 2.4 G o Windows Server 2003 o Windows Server Memory: 1G Enterprise Edition SP1; 2003 Enterprise Edition Hard Disk: 40G o Oracle 9.2i Enterprise SP1; Network: 100M Edition; o Oracle 9.2i Enterprise Edition; 测试机器 CPU: Pentium 2.4 G o Windows 2000 Server o Windows 2000 Memory: 1G SP4; Server SP4; Hard Disk: 80G o IE 6.0.2800.1106; o IE 6.0.2800.1106; Network: 100M 表 4 性能测试的软、硬件环境详细配置信息 WEBSphere安装完毕之后,还对表 5中的参数进行了调整。 参数 值 应用程序服务器 > server1 > 进程定义 >Java 虚拟机 > 初始堆大小 1280 M 应用程序服务器 > server1 > 进程定义 >Java 虚拟机 > 最大堆大小 1280 M JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 连接超时 600 秒 JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 最大连接数 200 个 JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 最小连接数 10 个 JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 获得时间 180 秒 JDBC 提供程序 > Oracle JDBC Driver > 数据源 > 不使用超时 600 秒 表 5 对于WEBSphere进行调优的参数列表和设置的值 4.4 测试结果 4.4.1 Appeon for PowerBuilder WEB Application 用户数 响应时间(秒) CPU占用率 (%) 内存占用量(M) 1 0.064 0.42 1445 50 0.065 12.35 1467 100 0.074 23.73 1469 150 0.083 31.64 1469 200 0.110 42.51 1470 300 0.116 60.14 1472 400 0.165 73.27 1472 500 0.263 88.38 1474 表 6 APB WEB Application 测试结果 4.4.2 J2EE WEB Application 用户数 响应时间(秒) CPU占用率 (%) 内存占用量(M) 1 0.063 0.73 1440 50 0.064 13.79 1443 100 0.065 20.80 1444 150 0.070 32.32 1444 200 0.077 39.16 1445 300 0.100 56.15 1445 400 0.130 71.67 1446 500 0.216 83.31 1447 表 7 J2EE WEB Application测试结果 分享到: 上一篇: APB .NET版本功能和技术特点 下一篇: Appeon for PowerBuilder常见问题 查看评论 暂无评论 您还没有登录,请[登录]或[注册] * 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场 个人资料 hejishan 访问:499671次 积分:78390分 排名:第2名 原创:7469篇 转载:0篇 译文:0篇 评论:66条 文章搜索 窗体顶端 搜索 窗体底端 文章存档 2008年06月(589) 2008年04月(3166) 2008年03月(1435) 2008年01月(605) 2007年12月(1619) 2007年10月(55) 展开 阅读排行 16进制字符串转数字(C/C++,VB... (2578) 网通的IP地址段 (2267) WinCVS中文版及中文使用手册 (2226) zlib 与 libpng 的配置与使... (2069) [转]FTP搜索引擎的设计与实现(优化... (1953) [dotNET]―ThreadPool... (1604) 《ASP.NET 2.0应用开发技术》... (1602) [收藏]深入浅出的《网络socket编... (1584) 手机"用户界面和多媒体"版面有价值问题... (1534) [收藏]C++大师Stan Lippm... (1444) 评论排行 Verilog与C++的类比 (4) [asp,jsp,asp.net]文... (2) 今天收获挺大,掌握了CP243的通信协... (2) 分析函数调用关系图(call grap... (2) [收藏]深入浅出的《网络socket编... (2) [USTC]中科大备忘录 (2) 基于过程的软件测试全景图 (2) (1) 独立部署cas服务器以测试客户端各应用... (1) CAS安全性介绍 (1) 如果我恨一个人,我就领他到中关村买相机... (1) 推荐文章 最新评论 ODBC基本概念 zxyxm: 在一篇文章中,怎么同样的内容,重复了这么多遍. [转]大量正版软件下载链接 xKF59252: 收藏一下,留着后面用; [收藏]C++大师Stan Lippman:我对中国程序员的忠告 SpringXudq: 很好,和适合年轻的我们看 Turbo还是那个Turbo吗, lixiaobin_sh: ............... [收藏]深入浅出的《网络socket编程指南》 popsunjian: 学习中... 从一个笑话看软件开发管理 liujie_lx: 我要举报你浪费csdn的硬盘~ 书评:《C# Primer》 by Joe Casad qxg3260: dfdfdfdfdfdf 我对SOA的反思:SOA架构的本质 hzz512144009: 有必要复制那么多遍吗,, 分析函数调用关系图(call graph)的几种方法 gsnumen: 请问 LZ 上面的图片是用什么工具画的? 显示数据库中的表结构(新增了索引及表的描述信息) bingren03: 值得一看 公司简介|招贤纳士|广告服务|银行汇款帐号|联系方式|版权声明|法律顾问|问题 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 北京创新乐知信息技术有限公司 版权所有, 京 ICP 证 070598 号 世纪乐知(北京)网络技术有限公司 提供技术支持 江苏乐知网络技术有限公司 提供商务支持 Email:webmaster@csdn.net Copyright ? 1999-2012, CSDN.NET, All Rights Reserved
本文档为【[重点]PB应用走向WEB的技术方案选择】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_314871
暂无简介~
格式:doc
大小:784KB
软件:Word
页数:78
分类:初中语文
上传时间:2018-04-26
浏览量:22