PB 應(yīng)用走向 WEB 的技術(shù)方案選擇
— Appeon for PowerBuilder WEB 發(fā)布和 J2EE WEB 應(yīng)用重寫(xiě)方案的比較
1
概述
大多數(shù)企業(yè)已經(jīng)認(rèn)識(shí)到,將現(xiàn)有基于 Client/Server 架構(gòu)的 PB 應(yīng)用轉(zhuǎn)換為成熟的 N-Tier WEB 架構(gòu)會(huì)給企業(yè)帶來(lái)諸多的優(yōu)勢(shì)。其中最顯著的一點(diǎn)是在延伸企業(yè)應(yīng)用到 WEB 架構(gòu)之后,將會(huì)有更多的人如員工、合作伙伴、客戶(hù)以及其他相關(guān)人員,能通過(guò)使用該 WEB 應(yīng)用來(lái)運(yùn)行相關(guān)的業(yè)務(wù)流程。當(dāng)他們?cè)讷@得授權(quán)之后,可以通過(guò)互聯(lián)網(wǎng) (Internet) 隨時(shí)隨地訪問(wèn) WEB 應(yīng)用,讓企業(yè)的運(yùn)轉(zhuǎn)更加方便、高效而有序。另一方面, WEB 應(yīng)用和 C/S 應(yīng)用比較而言,會(huì)更具伸縮性、更安全、更加易于維護(hù),同時(shí)能有效地降低企業(yè)的總體擁有成本。最為重要的是,應(yīng)用轉(zhuǎn)到 WEB 架構(gòu)之后,能為企業(yè)帶來(lái)可持續(xù)增長(zhǎng)的利潤(rùn)和長(zhǎng)期的競(jìng)爭(zhēng)優(yōu)勢(shì),保證企業(yè)在未來(lái)的日子里立于不敗之地。
1.1
可行的解決方案
由于 J2EE 平臺(tái)的穩(wěn)定性、安全性、平臺(tái)無(wú)關(guān)性,以及許多基于 J2EE 平臺(tái)的成功案例,使得很多企業(yè)更加關(guān)注 J2EE 平臺(tái)。因此本文側(cè)重于介紹基于 J2EE 平臺(tái)的解決方案:
方案一、利用 J2EE 技術(shù)重寫(xiě)出一個(gè)全新的 WEB 應(yīng)用。重寫(xiě)以后,將在 J2EE 開(kāi)發(fā)環(huán)境中維護(hù)新的應(yīng)用。
方案二、使用 Appeon for PowerBuilder (以下簡(jiǎn)稱(chēng) APB )產(chǎn)品對(duì)原有 PB 應(yīng)用程序在 PowerBuilder (以下簡(jiǎn)稱(chēng) PB )開(kāi)發(fā)環(huán)境中進(jìn)行 WEB 發(fā)布 [ 注: APB 不僅可以將應(yīng)用發(fā)布到基于 J2EE 平臺(tái)運(yùn)行,也可以將應(yīng)用發(fā)布到基于 .NET 運(yùn)行 ] 。
1.1.1
利用
J2EE
技術(shù)進(jìn)行
WEB
應(yīng)用重寫(xiě)
重寫(xiě)是指利用 J2EE 技術(shù)按照原有的業(yè)務(wù)規(guī)則開(kāi)發(fā)出一套新的 WEB 應(yīng)用程序。因此,整理出原有 PB 應(yīng)用的業(yè)務(wù)規(guī)則和數(shù)據(jù)結(jié)構(gòu)是所有重寫(xiě)活動(dòng)的起點(diǎn),同時(shí)也是重點(diǎn)。原有 PB 應(yīng)用的業(yè)務(wù)規(guī)則和數(shù)據(jù)結(jié)構(gòu)的整理質(zhì)量對(duì)于項(xiàng)目是否成功將起到?jīng)Q定性的作用。然后再使用 HTML 、 CSS 、 JavaScript 、 Jsp 、 Servlet 、 EJB 等技術(shù)去實(shí)現(xiàn)這些已經(jīng)整理出來(lái)的業(yè)務(wù)規(guī)則和數(shù)據(jù)結(jié)構(gòu)。同繼續(xù)使用 PB 開(kāi)發(fā)應(yīng)用相比, J2EE 開(kāi)發(fā)技術(shù)難度高,花的時(shí)間多,各種不確定因素較多,風(fēng)險(xiǎn)大。
企業(yè)可以選擇自己重寫(xiě),也可以選擇外包給另外的公司。不管是企業(yè)自己重寫(xiě)還是外包,由于 PB 技術(shù)和 J2EE 技術(shù)本身的差異,企業(yè)將要使用全新的應(yīng)用開(kāi)發(fā)和維護(hù)流程,這意味著發(fā)生巨大的變化,而這些變化會(huì)導(dǎo)致非常多的風(fēng)險(xiǎn)。重寫(xiě)會(huì)在一定程序上改進(jìn)原有 PB 應(yīng)用程序的不良設(shè)計(jì)和編碼,但是也可能會(huì)帶來(lái)許多新的隱患,新寫(xiě)的代碼通常都是需要在運(yùn)行一段時(shí)間并不停地修復(fù) Bug 后才能穩(wěn)定。
1.1.2
使用
Appeon for PowerBuilder
產(chǎn)品進(jìn)行
WEB
發(fā)布
APB 以企業(yè)原有的 PB 應(yīng)用的源代碼為基礎(chǔ),自動(dòng)生成一個(gè)映射原有 PB 應(yīng)用功能的基于多層架構(gòu)的 WEB 新應(yīng)用。 APB 生成的 WEB 應(yīng)用將精確地復(fù)制 PB 應(yīng)用的用戶(hù)界面和業(yè)務(wù)邏輯。
由于 APB 是基于 PB 源代碼進(jìn)行地 WEB 發(fā)布。因此,企業(yè)可以讓 PB 開(kāi)發(fā)人員在 PowerBuilder 開(kāi)發(fā)環(huán)境內(nèi)完成企業(yè)原有應(yīng)用的修改或添加新的功能,再由 APB 來(lái)完成 PB 應(yīng)用程序生成 WEB 應(yīng)用程序的所有事情。在整個(gè)過(guò)程中, PB 開(kāi)發(fā)人員不需要編寫(xiě)任何 HTML 、 JavaScript 、 CSS 、 Java 代碼 —— PB 開(kāi)發(fā)人員只需運(yùn)用標(biāo)準(zhǔn)的 PB 編程技術(shù)即可。
利用 APB ,企業(yè)能繼續(xù)使用 PB 開(kāi)發(fā)新的功能,然后再將其轉(zhuǎn)化為 WEB 應(yīng)用。因此 APB 可以幫助企業(yè)使用現(xiàn)有的 PB 技術(shù)有效的對(duì)原有的 PB 應(yīng)用進(jìn)行功能的擴(kuò)展。
1.2
如何選擇解決方案?
企業(yè)選擇解決方案的時(shí)候,首先應(yīng)當(dāng)考慮的是解決方案本身是否和企業(yè)自身的發(fā)展策略方向一致;其次是解決方案是否能夠支撐起企業(yè)的業(yè)務(wù)運(yùn)轉(zhuǎn),同時(shí)能應(yīng)付將來(lái)的業(yè)務(wù)擴(kuò)展;最后需要考慮的是解決方案本身的成本以及會(huì)給企業(yè)帶來(lái)的風(fēng)險(xiǎn)。下面列示的是企業(yè)在進(jìn)行解決方案選擇的時(shí)候必須謹(jǐn)慎考慮的主要因素:
· 由于企業(yè)策略原因需要的是使用 Java 開(kāi)發(fā)工具去開(kāi)發(fā) WEB 應(yīng)用還是繼續(xù)使用 PowerBuilder 進(jìn)行應(yīng)用開(kāi)發(fā)?
· 原有 PB 應(yīng)用功能是否滿(mǎn)足企業(yè)目前的業(yè)務(wù)需要?
· 原有 PB 應(yīng)用是否能夠有效的進(jìn)行功能擴(kuò)展,以滿(mǎn)足企業(yè)新的業(yè)務(wù)需求?
· 原有 PB 應(yīng)用程序的現(xiàn)狀是代碼質(zhì)量很好、維護(hù)成本很低還是與之相反?
· 原有 PB 應(yīng)用程序轉(zhuǎn)換為 WEB 應(yīng)用程序之后對(duì)于最終用戶(hù)的影響是正面的還是負(fù)面的?通常表現(xiàn)在最終用戶(hù)對(duì)于新的 WEB 應(yīng)用程序在用戶(hù)界面和操作方式上的適應(yīng)性,以及是否能夠高效率的對(duì)應(yīng)用進(jìn)行操作。
· 在原有 PB 應(yīng)用程序轉(zhuǎn)換為 WEB 應(yīng)用程序的過(guò)程中,企業(yè)能否承受較長(zhǎng)的開(kāi)發(fā)周期、較多的成本及較高的風(fēng)險(xiǎn)?。
企業(yè)能準(zhǔn)確的回答上面的問(wèn)題之后,便可以選出最合適企業(yè)的解決方案。如果企業(yè)不打算繼續(xù)使用 PowerBuilder 做為企業(yè)的主流開(kāi)發(fā)工具,那么使用新的 J2EE 進(jìn)行重寫(xiě)是最佳方案。反之,企業(yè)可以考慮另一種更加務(wù)實(shí)的方案——使用 APB 對(duì)原有的 PB 應(yīng)用進(jìn)行發(fā)布。因?yàn)? APB 可以幫助企業(yè)在進(jìn)行 PB 應(yīng)用程序向 WEB 應(yīng)用程序轉(zhuǎn)換的過(guò)程中縮短開(kāi)發(fā)時(shí)間、減少開(kāi)發(fā)成本、降低開(kāi)發(fā)風(fēng)險(xiǎn)。后面的章節(jié)將對(duì)于上述兩個(gè)解決方案做出更加詳盡的分析和說(shuō)明。
2
APB WEB
發(fā)布和
J2EE
重寫(xiě)的綜合比較
2.1
成本和風(fēng)險(xiǎn)
使用 APB 對(duì) PB 應(yīng)用進(jìn)行 WEB 發(fā)布,不僅可以實(shí)現(xiàn)對(duì)原有程序代碼的重用,還可以繼續(xù)利用企業(yè)現(xiàn)有 PB 開(kāi)發(fā)人員的開(kāi)發(fā)技能和對(duì)應(yīng)用商業(yè)邏輯的理解。用 APB 進(jìn)行 WEB 發(fā)布之后的 WEB 應(yīng)用不僅具有和利用 J2EE 技術(shù)重寫(xiě)的 WEB 應(yīng)用相同的架構(gòu)優(yōu)勢(shì),而且還保留了 PB 應(yīng)用原來(lái)的業(yè)務(wù)邏輯和用戶(hù)界面,最終用戶(hù)無(wú)需經(jīng)過(guò)培訓(xùn)即可使用發(fā)布后的 WEB 應(yīng)用。并且企業(yè)可以繼續(xù)讓現(xiàn)有的 PB 開(kāi)發(fā)人員對(duì)新的 WEB 應(yīng)用進(jìn)行維護(hù)以及添加新的功能。 APB 的這些特點(diǎn)將讓企業(yè)的成本和風(fēng)險(xiǎn)降到最低。
而使用 J2EE 進(jìn)行重寫(xiě)這種方式,需要支出更多的成本。第一,需要引進(jìn)新的 J2EE 開(kāi)發(fā)團(tuán)隊(duì),或引進(jìn)部分 J2EE 開(kāi)發(fā)人員帶領(lǐng)原有部分 PB 開(kāi)發(fā)人員組建新的團(tuán)隊(duì);第二,必需購(gòu)置新軟件和硬件去支持基于 J2EE 平臺(tái)的開(kāi)發(fā);第三,新的成員必須要花時(shí)間適應(yīng)新的工作環(huán)境;第四,需要對(duì) PB 開(kāi)發(fā)人員培訓(xùn)如何使用 J2EE 技術(shù)進(jìn)行 WEB 開(kāi)發(fā),并且需要培訓(xùn)那些新加入項(xiàng)目團(tuán)隊(duì)的 J2EE 開(kāi)發(fā)人員熟悉應(yīng)用的商務(wù)邏輯。第五,現(xiàn)有 PB 應(yīng)用源代碼無(wú)法重用,需要全部重寫(xiě)。并且原有 PB 開(kāi)發(fā)人員需要經(jīng)過(guò)很長(zhǎng)的時(shí)間才能達(dá)到熟練運(yùn)用 J2EE 技術(shù)開(kāi)發(fā)的水平,況且 J2EE 平臺(tái)開(kāi)發(fā)生產(chǎn)力本身就比 PB 差很多。所以開(kāi)發(fā)成本相對(duì)直接進(jìn)行 WEB 發(fā)布要高很多。
另外,重寫(xiě)這種方式還面臨更多的風(fēng)險(xiǎn)。第一,由于部分成員對(duì) J2EE 新技術(shù)的應(yīng)用缺乏必要的經(jīng)驗(yàn),由他們寫(xiě)出的代碼可能會(huì)存在較多的隱患或者不夠高效;第二,久經(jīng)考驗(yàn)的 PB 應(yīng)用邏輯必須重新編寫(xiě),由于這個(gè)過(guò)程是由人工完成地,因此,有經(jīng)驗(yàn)的人知道,會(huì)不可避免的出現(xiàn)一些錯(cuò)誤;第四,新的代碼需要花大量的時(shí)間去測(cè)試,并且上線后還會(huì)逐漸出現(xiàn)各種錯(cuò)誤 (Bug) ,這會(huì)對(duì)最終用戶(hù)的工作造成影響,嚴(yán)重時(shí)會(huì)對(duì)企業(yè)整個(gè)業(yè)務(wù)流程造成影響。第五,由于新開(kāi)發(fā)的 WEB 應(yīng)用在界面上和流程上同以前的應(yīng)用會(huì)有很多的不同,有可能會(huì)大大影響最終用戶(hù)的工作效率。
不管是企業(yè)自己重寫(xiě),還是選擇某個(gè)外包公司重寫(xiě),在項(xiàng)目進(jìn)行過(guò)程中會(huì)一直伴隨著需求、技術(shù)、成本和進(jìn)度等諸多的風(fēng)險(xiǎn)。而采用 APB 解決方案,可以在大幅度地降低成本的同時(shí)有效的規(guī)避風(fēng)險(xiǎn)。
2.2
功能
APB 在擁有將 PB 應(yīng)用直接發(fā)布成 WEB 應(yīng)用的能力,同時(shí)讓用戶(hù)界面、用戶(hù)交互方式和原有 PB 應(yīng)用一模一樣。 APB 支持絕大多數(shù)的 PB 用戶(hù)界面元素以及和它們相關(guān)聯(lián)的事件機(jī)制,其中就包括掩碼編輯器、菜單、工具條、標(biāo)簽頁(yè), MDI 窗口等復(fù)雜的用戶(hù)界面元素。正因?yàn)檫@些復(fù)雜用戶(hù)界面元素和與之綁定的事件驅(qū)動(dòng)機(jī)制,大大地豐富了 WEB 應(yīng)用的用戶(hù)界面,提供了最佳的最終用戶(hù)的使用體驗(yàn)。最終用戶(hù)再也不需要面對(duì)傳統(tǒng) WEB 應(yīng)用中煩人的一次又一次的頁(yè)面刷新,一個(gè)頁(yè)面到另一個(gè)頁(yè)面的鏈接和跳轉(zhuǎn)。
APB 另一個(gè)最重要也是最吸引人的地方是,它完全支持了 PowerBuilder 引以為傲的數(shù)據(jù)庫(kù)訪問(wèn)功能和靈活實(shí)用的報(bào)表功能,包括 Datawindow , DataStore , Embedded SQL 以及與之相關(guān)的豐富的數(shù)據(jù)的更新、查詢(xún)、過(guò)濾、查找功能。
APB 的這些功能,讓發(fā)布后 WEB 應(yīng)用擁有了和原 PB 應(yīng)用一樣豐富的用戶(hù)界面,強(qiáng)大的數(shù)據(jù)處理能力以及生成復(fù)雜數(shù)據(jù)報(bào)表能力,極大地提高了生產(chǎn)效率和最終用戶(hù)的使用體驗(yàn)。
而使用 J2EE 技術(shù)重寫(xiě)的 WEB 應(yīng)用,由于普通網(wǎng)頁(yè)技術(shù)的局限性,大多數(shù)的界面相對(duì)簡(jiǎn)陋、交互性很差。這將直接導(dǎo)致用戶(hù)界面的不友好,使得最終用戶(hù)的體驗(yàn)很差,進(jìn)而降低最終用戶(hù)的工作效率。另外,在 J2EE 中實(shí)現(xiàn)類(lèi)似 APB 的超強(qiáng)的數(shù)據(jù)處理功能有一定的難度,除非企業(yè)投入大量的資金去研究和開(kāi)發(fā)。
2.3
生產(chǎn)力
本文以一個(gè)實(shí)際的案例來(lái)評(píng)估 APB WEB 發(fā)布和 J2EE 重寫(xiě)的生產(chǎn)力。案例實(shí)現(xiàn)了很多 PB 應(yīng)用中很常用的一組和數(shù)據(jù)庫(kù)進(jìn)行交互的功能:
· 查詢(xún)數(shù)據(jù);
· 精確查找數(shù)據(jù);
· 查詢(xún)相應(yīng)的明細(xì)數(shù)據(jù);
使用 APB 進(jìn)行 WEB 發(fā)布后的用戶(hù)界面如圖 1 所示,使用 J2EE 進(jìn)行重寫(xiě)后的 WEB 應(yīng)用用戶(hù)界面如圖 2 所示。
<shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shape id="_x0000_i1031" style="WIDTH: 431.25pt; HEIGHT: 313.5pt" type="#_x0000_t75" wrapcoords="-38 0 -38 21548 21600 21548 21600 0 -38 0"><imagedata src="file:///C:%5CDOCUME~1%5CMSC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.png" o:title=""></imagedata></shape>
圖 1 使用 APB 進(jìn)行 WEB 發(fā)布后的應(yīng)用界面截圖
<shape id="_x0000_i1030" style="WIDTH: 431.25pt; HEIGHT: 5in" type="#_x0000_t75" wrapcoords="-38 0 -38 21555 21600 21555 21600 0 -38 0"><imagedata src="file:///C:%5CDOCUME~1%5CMSC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.png" o:title=""></imagedata></shape>
圖 2 J2EE 重寫(xiě)出的 WEB 應(yīng)用界面截圖
開(kāi)發(fā)過(guò)程分兩部分:案例準(zhǔn)備和案例開(kāi)發(fā)。案例準(zhǔn)備包括準(zhǔn)備好案例需要使用的數(shù)據(jù)庫(kù),和撰寫(xiě)設(shè)計(jì)說(shuō)明書(shū)。案例開(kāi)發(fā)階段,由一名精通 PowerBuilder 技術(shù)和另一名精通 J2EE 技術(shù)的開(kāi)發(fā)人員分頭用 PowerBuilder 和 Java 開(kāi)發(fā)工具進(jìn)行編碼、調(diào)試、發(fā)布和部署 WEB 應(yīng)用。
下表統(tǒng)計(jì)了整個(gè)過(guò)程的工作量:
方案
|
WEB Deployment
( PowerBuilder + APB )
|
J2EE Rewrite
( Eclipse )
|
案例準(zhǔn)備(小時(shí))
|
4
|
|
案例開(kāi)發(fā) ( 小時(shí) )
|
4
|
24
|
代碼規(guī)模 ( 行 )
|
182
|
總代碼行: 1950
重用代碼行: 1185
手工編寫(xiě): 765
|
表 1 生產(chǎn)力統(tǒng)計(jì)數(shù)據(jù)
從表上可以看出,案例開(kāi)發(fā)過(guò)程中, J2EE 重寫(xiě)花的時(shí)間是 APB 方案的 6 倍,手工編碼量是 APB 方案 4.2 倍,總代碼量是 APB 方案的 10.7 倍 。需要指出的是,此案例中并不是對(duì)一個(gè)已經(jīng)存在的 PB 應(yīng)用進(jìn)行 WEB 發(fā)布和重寫(xiě)。當(dāng)對(duì)一個(gè)已存在的 PB 應(yīng)用進(jìn)行 WEB 發(fā)布時(shí), APB 方案的應(yīng)用開(kāi)發(fā)和發(fā)布時(shí)間將會(huì)更少。而且此案例非常簡(jiǎn)單,如果對(duì)一個(gè)界面和業(yè)務(wù)邏輯都異常復(fù)雜的應(yīng)用進(jìn)行 WEB 發(fā)布, APB 方案的生產(chǎn)力將會(huì)更高。
2.4
應(yīng)用維護(hù)
使用 APB 對(duì) PB 應(yīng)用進(jìn)行 WEB 發(fā)布的方案,能讓原開(kāi)發(fā)團(tuán)隊(duì)繼續(xù)保持原有的開(kāi)發(fā)習(xí)慣和遵循已有的開(kāi)發(fā)流程。而且可以通過(guò)維護(hù)同一套代碼來(lái)支持不同的部署方式:按傳統(tǒng)的 C/S 方式運(yùn)行或發(fā)布為 WEB 應(yīng)用程序以 B/S 方式運(yùn)行。另外,眾所周知, PB 提供了強(qiáng)大的所見(jiàn)即所得以及事件驅(qū)動(dòng)的編程方式,能非常容易地維護(hù)應(yīng)用。
使用 J2EE 技術(shù)對(duì) PB 應(yīng)用進(jìn)行 WEB 重寫(xiě),則需要利用 Java IDE 如 Eclipse 來(lái)維護(hù)應(yīng)用。 Java 開(kāi)發(fā)工具的可用性在過(guò)去幾年里得到了提高,但同那些 4GL 開(kāi)發(fā)工具如 PB 、 VB 、 Delphi 相比,還有較大差距。同時(shí),新開(kāi)發(fā)的 WEB 應(yīng)用中會(huì)包含各種類(lèi)型的代碼,如 HTML , JavaScript , CSS , JSP , Java 等等。這將直接導(dǎo)致了如上一節(jié)所描述的問(wèn)題——新的 WEB 應(yīng)用的代碼規(guī)模將變得很大。因此,使用 J2EE 技術(shù)重寫(xiě)的 Web 應(yīng)用不僅維護(hù)的量很大,而且 Java IDE 并不能幫助企業(yè)開(kāi)發(fā)人員高效的維護(hù)應(yīng)用。同時(shí),在代碼規(guī)模很大的情況下,調(diào)試和定位錯(cuò)誤將變得非常困難。
2.5
集成能力
利用 J2EE 技術(shù)進(jìn)行重寫(xiě)后的 WEB 應(yīng)用能在服務(wù)器端和其他的組件進(jìn)行集成,包括對(duì) EJB 、 WEB Service 和 CORBA 調(diào)用。
APB 方案不僅提供基于服務(wù)器端的集成,還提供基于客戶(hù)端的集成。例如在發(fā)布后的 WEB 應(yīng)用中,可以和客戶(hù)端的 OLE/OCX 集成,并且支持對(duì)客戶(hù)端 DLL 及 Windows API 的調(diào)用 ( 如圖 3 所示 ) 。
<shape id="_x0000_i1025" style="WIDTH: 426.75pt; HEIGHT: 204pt" type="#_x0000_t75" wrapcoords="-41 0 -41 21513 21600 21513 21600 0 -41 0"><imagedata src="file:///C:%5CDOCUME~1%5CMSC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image005.jpg" o:title="雜志圖片1"></imagedata></shape>
圖 3 Appeon for PowerBuilder 集成能力示意圖
(注:圖中的星號(hào) (“*”) 表示 CORBA 和 PB 的 NVO 對(duì)象需要特定應(yīng)用服務(wù)器的支持)
2.6
性能和伸縮性
將生產(chǎn)力比較那一節(jié)中提到的 APB 和 J2EE 案例部署到相同的軟硬件環(huán)境中,然后進(jìn)行相應(yīng)的性能和伸縮性測(cè)試:
-
為基于
APB
發(fā)布的
WEB
應(yīng)用和基于
J2EE
重寫(xiě)的
WEB
應(yīng)用采用同樣的性能優(yōu)化措施:對(duì)從服務(wù)器端傳到客戶(hù)端的內(nèi)容進(jìn)行
ZIP
壓縮,并對(duì)界面進(jìn)行局部更新,同時(shí)都按照分頁(yè)的方式讀取數(shù)據(jù)。
-
應(yīng)用服務(wù)器采用的是
WebSphere
。數(shù)據(jù)庫(kù)服務(wù)器則采用的是
Oracle
。
-
網(wǎng)絡(luò)帶寬為
100M
。測(cè)試工具為
LoadRunner
。測(cè)試中的思考時(shí)間為
20
秒,每隔
1
秒鐘增加一個(gè)虛擬在線用戶(hù)。利用
LoadRunner
統(tǒng)計(jì)如圖
4
所示的第
1-4
步的響應(yīng)時(shí)間(未包括界面更新的時(shí)間),以及
Application Server
上應(yīng)用服務(wù)器的
CPU
占用率和內(nèi)存占用情況。考慮到
WEBSphere
在配置好預(yù)分配內(nèi)存之后的性能會(huì)更好,所以事先給
WebSphere
預(yù)分配了
1280M
內(nèi)存。
<shape id="_x0000_i1026" style="WIDTH: 324pt; HEIGHT: 182.25pt" type="#_x0000_t75" wrapcoords="-38 0 -38 21533 21600 21533 21600 0 -38 0"><imagedata src="file:///C:%5CDOCUME~1%5CMSC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image007.jpg" o:title="structure 02 no webserver"></imagedata></shape>
圖 4 性能和伸縮性測(cè)試網(wǎng)絡(luò)架構(gòu)圖
2.6.1
響應(yīng)時(shí)間
從圖 5 中可以看出, JSP 和 APB 的差距并不明顯,二者非常接近。而且保持相同的趨勢(shì)。可見(jiàn), JSP 和 APB 應(yīng)用的性能非常接近。
<shape id="_x0000_i1027" style="WIDTH: 426.75pt; HEIGHT: 237.75pt" type="#_x0000_t75" wrapcoords="132 393 132 21129 21380 21129 21380 393 132 393"><imagedata src="file:///C:%5CDOCUME~1%5CMSC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image009.emz" o:title=""></imagedata></shape>
圖 5 APB 和 J2EE WEB 應(yīng)用的響應(yīng)時(shí)間對(duì)比
2.6.2
CPU
占用
從圖 6 中可以看出, J2EE WEB 應(yīng)用 的 CPU 占用率要略低于 APB ,但非常接近。
<shape id="_x0000_i1028" style="WIDTH: 426.75pt; HEIGHT: 238.5pt" type="#_x0000_t75" wrapcoords="132 393 132 21129 21380 21129 21380 393 132 393"><imagedata src="file:///C:%5CDOCUME~1%5CMSC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image011.emz" o:title=""></imagedata></shape>
圖 6 APB 和 J2EE WEB 應(yīng)用的 CPU 占用率對(duì)比
2.6.3
內(nèi)存使用
從圖 7 中可以看出,用 APB 發(fā)布后的 WEB 應(yīng)用的內(nèi)存使用量要比 J2EE WEB 應(yīng)用多了少許,差距為 5 – 20 Mb 之間,這種差距在實(shí)際應(yīng)用中幾乎可以忽略不計(jì)。從圖上看,兩種應(yīng)用的內(nèi)存使用量都很平穩(wěn),這與為應(yīng)用服務(wù)器預(yù)先分配了 1280M 內(nèi)存有一定的關(guān)系。
<shape id="_x0000_i1029" style="WIDTH: 426.75pt; HEIGHT: 237.75pt" type="#_x0000_t75" wrapcoords="132 393 132 21129 21380 21129 21380 393 132 393"><imagedata src="file:///C:%5CDOCUME~1%5CMSC%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image013.emz" o:title=""></imagedata></shape>
圖 7 APB 和 J2EE WEB 應(yīng)用的內(nèi)存使用量對(duì)比
2.6.4
小結(jié)
從上面的數(shù)據(jù)可以看出,在 WegSphere 應(yīng)用服務(wù)器上,用 APB 發(fā)布后的 WEB 應(yīng)用和與用 J2EE 技術(shù)重寫(xiě)后的 WEB 應(yīng)用相比,在響應(yīng)時(shí)間、 CPU 占用以及內(nèi)存占用三個(gè)方面都非常接近。因此,可以看出在同等條件下,兩種方案產(chǎn)生的 WEB 應(yīng)用在性能上并不存在差距。同時(shí),由于 APB 采用的是 Rich Client 技術(shù),可以充分利用客戶(hù)端的計(jì)算能力。因而當(dāng)應(yīng)用的 UI 和邏輯非常復(fù)雜時(shí), APB 發(fā)布后的 WEB 應(yīng)用會(huì)擁有更好的性能和伸縮性。
2.7
安全性
從安全性角度看,兩種解決方案都有十分完善的措施保障應(yīng)用的安全性,都支持 SSL/HTTPS 、 LDAP 驗(yàn)證、應(yīng)用會(huì)話超時(shí)管理、 WEB 業(yè)務(wù)邏輯加密、數(shù)字簽名等安全措施。除此之外, APB 還內(nèi)置了專(zhuān)門(mén)的用戶(hù)組群去管理應(yīng)用的發(fā)布和運(yùn)行。
2.8
綜合比較
上面已經(jīng)從各個(gè)方面對(duì)兩種方案進(jìn)行了比較。下表是一個(gè)總結(jié):
比較項(xiàng)
|
APB WEB Deployment Solution
|
J2EE WEB Application Rewrite
|
PB 應(yīng)用的用戶(hù)界面改動(dòng)
|
幾乎沒(méi)有
|
大量
|
PB 應(yīng)用的功能豐富程度和客戶(hù)端的集成性
|
<p cla
發(fā)表評(píng)論
最新評(píng)論
|
PB應(yīng)用走向WEB的技術(shù)方案選擇——Appeon for PowerBuilder WEB 發(fā)布和J2EE WEB應(yīng)用重寫(xiě)方案的比較
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

評(píng)論