系分論文7
論Java技術(shù)在因特網(wǎng)平臺上的應(yīng)用——論文3:銀行業(yè)的應(yīng)用
【摘要】
因特網(wǎng)上應(yīng)用的日益普及與深化,為Java技術(shù)的運(yùn)用提供了廣闊的活動舞臺,也大大推進(jìn)了Browser/Server模式的企業(yè)內(nèi)聯(lián)網(wǎng)應(yīng)用與網(wǎng)絡(luò)計算。
作為某信息公司中的技術(shù)骨干,我有幸承擔(dān)了某銀行信貸管理與查詢系統(tǒng)等的開發(fā)任務(wù),獨(dú)立地完成了其中的系統(tǒng)設(shè)計、類設(shè)計、部分開發(fā)及測試工作。
整個系統(tǒng)完全按照J(rèn)2EE的標(biāo)準(zhǔn)來設(shè)計。前臺界面應(yīng)用了JSP技術(shù),控制部分采用了Servlet來開發(fā),業(yè)務(wù)邏輯應(yīng)用了EJB技術(shù)來封裝,應(yīng)用服務(wù)器采用了支持J2EE標(biāo)準(zhǔn)的BEA公司的Weblogic,后臺的數(shù)據(jù)庫選用的是Informix7.3,目的是為了與銀行中其他業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫保持一致。在硬件平臺上,我們選用的是HP公司的某臺中型服務(wù)器機(jī)器,操作系統(tǒng)是HP-UX。
該系統(tǒng)界面運(yùn)用的是IE,它不僅兼容性較好,而且已為廣大用戶所熟悉。系統(tǒng)運(yùn)行后,各個支行都普遍反映界面友善,功能強(qiáng)大,開發(fā)的效果令人滿意。
【正文】
在銀行應(yīng)用中私人的儲蓄、企業(yè)的會計、國際的業(yè)務(wù)、信貸、財務(wù)管理都是十分重要的,它們構(gòu)成銀行的基礎(chǔ)業(yè)務(wù)系統(tǒng)。我從事開發(fā)的信貸業(yè)務(wù)更是銀行利潤來源的重要部分。與儲蓄,對公等以交易事務(wù)為主的業(yè)務(wù)模式有所不同的是,盡管信貸也是交易,但需要更多其他輔助信息的支持。如客戶的基本資料,在本行內(nèi)業(yè)務(wù)發(fā)生狀況、信用等級、是否有逾期貸款未能歸還等。各個支行的有關(guān)業(yè)務(wù)人員及分行管理人員都希望能方便及時地了解這些信息。傳統(tǒng)的基于終端的用戶界面難以傳遞這么多信息給用戶,所以我們決定采用基于測覽器IE的用戶界面,一方面IE使用方便,不需要專門培訓(xùn),另外它是與Windows操作系統(tǒng)捆綁在一起的,也可節(jié)省前臺費(fèi)用。在開發(fā)技術(shù)上有ASP,JSP可供選擇。
由于考慮到Java技術(shù)在Internet上的迅速發(fā)展,J2EE更是提出了全新的用語言來統(tǒng)一平臺的思路,于是我們決定采納J2EE標(biāo)準(zhǔn),并選用了JSP。在設(shè)計上,基本上是采用了一個交易畫面對應(yīng)于一個JSP程序,充分發(fā)揮JSP動態(tài)處理頁面的長處。
為了使設(shè)計有更好的可擴(kuò)性、靈活性與邏輯性,能為以后擴(kuò)展奠定堅實的基礎(chǔ),我采用了(Modelu,View,Controller)的MVC設(shè)計模式,View全部由JSP實現(xiàn),而Controller則是設(shè)計了一個Servlet程序,它負(fù)責(zé)處理前臺瀏覽器傳送來的所有請求,并按事先定義好的路徑/程序關(guān)系,分發(fā)給相應(yīng)的JSP程序去處理。由于Servlet本來就是為Java服務(wù)器端編程來設(shè)計的,因此由它來負(fù)責(zé)服務(wù)器端的處理是相當(dāng)合適的。
在開始設(shè)計時,我運(yùn)用了構(gòu)件技術(shù),由EJB承擔(dān)起設(shè)計模式的Modelu角色。具體的貸款開戶,放款,結(jié)息逾期貸款,歸還貸款等交易都對應(yīng)一個具體的EJB。為了將這些處理邏輯與相應(yīng)的數(shù)據(jù)庫操作分離開,能更加便于維護(hù),我將處理業(yè)務(wù)的EJB設(shè)計成Session Bean,而為每個Session Bean再配備一個相對應(yīng)的Entity Bean,用于訪問后臺的數(shù)據(jù)庫。貸款管理中有很重要的一點(diǎn)是進(jìn)行查詢,我按照需求分析的結(jié)果,為每類查詢都設(shè)計了相對應(yīng)的Bean,其目標(biāo)是盡可能地提高查詢的速度。
在對數(shù)據(jù)庫的存取中,我本來的設(shè)計應(yīng)用Informix JDBC所帶的Driver Manager,這樣,在存取數(shù)據(jù)庫中的Bean中就要把Driver及Server寫入,后來考慮到應(yīng)盡量提高應(yīng)用的平臺獨(dú)立性,在參閱了J2EE中JDBC部分的說明后,改用了Data Resource的處理方法,這樣,即使以后數(shù)據(jù)庫換成Oracle或其他產(chǎn)品,程序也不用修改,只需要在配置時進(jìn)行變動即可。
在這次信貸管理系統(tǒng)的開發(fā)過程中,Java的平臺無關(guān)性優(yōu)勢,在開發(fā)人員從事開發(fā)的活動中體現(xiàn)得淋漓盡致。由于經(jīng)費(fèi)相對緊缺,我們的開發(fā)環(huán)境是各個項目組共用一臺HP機(jī)器,雖然每個開發(fā)小組都搭建了自己的環(huán)境,但項目一多,特別是遇上結(jié)息與批量測試等場合,機(jī)器就顯得不堪重負(fù),使開發(fā)與測試工作的效率大為下降。我們小組由于采用的是Java技術(shù),大家可以在自己的NT機(jī)器上搭建相同的環(huán)境。這樣一來,大家平時的開發(fā)工作,包括JSP,Servlet,EJB的程序,都可以在本地完成,只是到測試或展現(xiàn)階段才需放到HP開發(fā)機(jī)器上進(jìn)行。
以前我們開發(fā)的Web應(yīng)用,往往只是應(yīng)用了部分的Web技術(shù),如采用Apache Web Server、ASP開發(fā)語言等。整個體系的集成與組合往往不夠理想,這次由于我們采用的一整套符合J2EE標(biāo)準(zhǔn)的組件,整個系統(tǒng)的協(xié)同性與一致性非常之好。再加上有一個支持J2EE的應(yīng)用服務(wù)器——BEA Weblogic,以往我們做得不理想的復(fù)雜配置,模塊間的連結(jié),如今都用不到再操心了,只需在圖形化的配置工具中,輸入系統(tǒng)所需要的配置,如路徑與實際應(yīng)用程序的關(guān)系,組件中的EJB引用,Data Resource的屬性等;全部配置完成后,Weblogic會替我們完成項目的部署,并將這一切有關(guān)的程序都封裝起來。
原來,我們開發(fā)小組的文檔編制任務(wù)顯得非常之繁重,因為整個系統(tǒng)既有交易部分,又有管理查詢部分,交易、數(shù)據(jù)與源程序都很多。為了解決這個問題,我們直接應(yīng)用了Java源程序中的Javadoc導(dǎo)出文檔,這樣不僅文檔美觀,而且能夠保持與源程序的一致性,實乃一石二鳥之舉。
整個項目完成后,用戶使用下來都覺得界面友好,操作簡便。但是我心里知道.這個系統(tǒng)還有很多可以加以改進(jìn)的地方。
首先,基于Java系統(tǒng)的開發(fā)需要資金較多的投入,由于該系統(tǒng)受到經(jīng)費(fèi)的限制,只申請到一臺生產(chǎn)用機(jī),這樣,Web Server、Application Server、DB Server只能被擠放在一起。雖然Weblogic能實現(xiàn)部分負(fù)載平衡,但在將來的業(yè)務(wù)發(fā)展時,這樣的分布肯定不是最理想的。好在我們在設(shè)計時已經(jīng)考慮過盡量有良好的擴(kuò)展性,在以后條件許可時,只需進(jìn)行在不同機(jī)器之間的進(jìn)一步部署即可,應(yīng)用程序大體上無需改動。
其次,在設(shè)計上,可以采用UML的產(chǎn)品,如Rational Rose,另一方面,Rational Rose具有自動代碼生成功能,也可以大大節(jié)省開發(fā)的成本。
最后,目前的信貸管理系統(tǒng)相對用戶數(shù)目量不多,當(dāng)推廣類似系統(tǒng)需要擁有大批用戶時,基于Java的系統(tǒng)的響應(yīng)時間與系統(tǒng)分布都會有較為突出的矛盾出現(xiàn)。
以上這些,都是我在今后的系統(tǒng)設(shè)計與開發(fā)中需要加以注意的地方,也是運(yùn)用Java技術(shù)應(yīng)當(dāng)努力的方向。(本文主要參考了上海戴黎平等人的論文)
評注:討論具體,應(yīng)用較為深入,表達(dá)清晰。存在的問題屬實。
系分論文8
論改進(jìn)Web服務(wù)器性能的有關(guān)技術(shù)——論文1:銀行業(yè)的應(yīng)用
【摘要】
基于Web技術(shù)的數(shù)據(jù)庫應(yīng)用是當(dāng)前應(yīng)用的一個熱點(diǎn),在用戶數(shù)目與通信負(fù)荷很大的場合,提高Web服務(wù)器性能是一個迫切的課題。本文從筆者參與某個銀行系統(tǒng)項目開發(fā)的經(jīng)歷出發(fā),闡述了提高Web服務(wù)器的性能應(yīng)滲入到項目論證、選型、開發(fā)、運(yùn)行和管理的各個環(huán)節(jié),只有各個環(huán)節(jié)都能充分考慮到性能與質(zhì)量的需要,系統(tǒng)的性能才是真正可保證的和可擴(kuò)充的。
文章從系統(tǒng)的實際運(yùn)行與相應(yīng)的經(jīng)驗出發(fā),闡述了性能改進(jìn)方面的一些具體措施。
比如:在本文中討論了Web服務(wù)器平臺的選型考慮;Web服務(wù)器的配置管理;應(yīng)用系統(tǒng)本身的優(yōu)化與預(yù)先設(shè)計系統(tǒng)時可擴(kuò)性的性能保障等具體內(nèi)容。
通過技術(shù)上的分析與改進(jìn),綜合性地運(yùn)用多類措施與手段,在實際系統(tǒng)中,Web服務(wù)器運(yùn)行的性能得到了一定程度的保證。
【正文】
我所在的單位是把目標(biāo)定位于金融領(lǐng)域開發(fā)IT應(yīng)用的一家信息技術(shù)公司。隨著金融電子化建設(shè)的發(fā)展和商業(yè)銀行之間市場競爭的加劇,各主要商業(yè)銀行不斷通過信息技術(shù)提供新的金融產(chǎn)品,并且希望能整合市場渠道。比如主要的商業(yè)銀行不斷推出形形色色的網(wǎng)上銀行服務(wù)。在這種背景下,本人參與了開發(fā)新一代網(wǎng)上銀行產(chǎn)品,涉及到提供網(wǎng)上個人理財服務(wù)、網(wǎng)上外匯買賣服務(wù)、網(wǎng)上企業(yè)服務(wù)等具有市場競爭力的產(chǎn)品。作為項目開發(fā)的組織者之一和主要的技術(shù)骨干,在整個項目開發(fā)過程中始終要處于第一線,從而在改進(jìn)Web服務(wù)器性能、提高整個網(wǎng)上平臺系統(tǒng)性能方面收獲良多,在本文中簡要討論如下,希望與讀者們共享經(jīng)驗。在Web服務(wù)器配置與優(yōu)化方面,我有如下幾方面主要的體會:
第一方面是Web服務(wù)器選型考慮。
在Web服務(wù)器選型及網(wǎng)上平臺搭建之初,我們就已充分考慮整個網(wǎng)上平臺的性能及可擴(kuò)展性問題。這一考慮為該系統(tǒng)的穩(wěn)定性及擴(kuò)展性能力方面打下了堅實的基礎(chǔ)。
某銀行原有的一些網(wǎng)上產(chǎn)品由于開發(fā)較早,故而采用的是老式的HTTP Server+CGI程序調(diào)用的方式。這時,每一客戶請求需要對應(yīng)于后端系統(tǒng)的系統(tǒng)進(jìn)程來運(yùn)行CGI程序來處理,系統(tǒng)的開銷相當(dāng)大,系統(tǒng)的擴(kuò)展能力也很差,性能已不能滿足業(yè)務(wù)處理的需要,故而在為此銀行系統(tǒng)具體選型的時候,我們一開始就否決了這種方案。
通過市場上同類產(chǎn)品的比較選擇,我們選擇了國際商業(yè)機(jī)器有限公司IBM的Web Sphere產(chǎn)品系列作為該行網(wǎng)上銀行系統(tǒng)的建立平臺。作出這樣選擇是因為Web Sphere基于使HTTP Server和應(yīng)用服務(wù)器相分離的整體架構(gòu),同時支持JSP、Servlet和企業(yè)組Java Bean等輕量級線程規(guī)范,所有的請求對應(yīng)于應(yīng)用服務(wù)器上的處理線程,系統(tǒng)的開銷低、效率非常高,同時Web Sphere整個體系結(jié)構(gòu)相當(dāng)?shù)撵`活,為適應(yīng)擴(kuò)展需要可以作不同的橫向和縱向擴(kuò)展,從而可以滿足各銀行未來的擴(kuò)展需要。
正是因為在一開始選型的時候我們就已考慮到未來的擴(kuò)展需要,整個系統(tǒng)在接下來的幾次性能改進(jìn)方面,我們大體上都能相對順利地達(dá)到了預(yù)期目標(biāo)。
第二方面是Web服務(wù)器的性能配置。
在一開始系統(tǒng)上線的時候,由于系統(tǒng)的負(fù)荷不是很大,為了節(jié)省系統(tǒng)總擁有成本TCO投資,我們在一臺較低配置的IBM RS6000上投產(chǎn)了該系統(tǒng)。整個系統(tǒng)的HTTP服務(wù)器、應(yīng)用服務(wù)器、通信服務(wù)器等均位于該臺機(jī)器上,由于初始投產(chǎn)時用戶不多,所以系統(tǒng)的性能基本上能令人接受。
但隨著業(yè)務(wù)的發(fā)展和用戶訪問量的增大,我們發(fā)現(xiàn)該服務(wù)器的響應(yīng)變慢,系統(tǒng)的CPU利用率和內(nèi)外存交換顯著增大。經(jīng)過跟蹤,我們發(fā)現(xiàn)關(guān)鍵原因之一是系統(tǒng)的內(nèi)存不足的緣故。由于網(wǎng)上服務(wù)器把大量用戶的會話信息保存在內(nèi)存中供給應(yīng)用系統(tǒng)使用,當(dāng)內(nèi)存不足時,大量Session信息被迫交換至硬盤,大量CPU時間消耗在等候內(nèi)外存的交換上,系統(tǒng)效率迅速下降。
鑒于這種情況,我們把該服務(wù)器的內(nèi)存由2GB擴(kuò)充為4GB,同時相應(yīng)調(diào)整用戶會話信息的保存時間,這樣整個系統(tǒng)的效率又回到較為理想的狀況。
由于新應(yīng)用的不斷投產(chǎn)及數(shù)據(jù)庫操作的日益增加,我們后來逐漸監(jiān)控到系統(tǒng)的數(shù)據(jù)庫處于繁忙狀態(tài),系統(tǒng)的錯誤日志也記錄下了供應(yīng)用服務(wù)器使用的數(shù)據(jù)庫連接處出現(xiàn)資源不足的情況。在這種背景下,我們認(rèn)為整個系統(tǒng)由于硬件配置所限,應(yīng)該進(jìn)行橫向擴(kuò)展,因此我們把數(shù)據(jù)庫服務(wù)器分離出來,配置到另一較高性能的服務(wù)器上,相應(yīng)定義的數(shù)據(jù)庫資源也大幅增加,這樣整個系統(tǒng)的性能又處于較為理想的狀況。
第三方面是對應(yīng)用系統(tǒng)進(jìn)行相應(yīng)的優(yōu)化以提高性能。
Web服務(wù)器配置及相應(yīng)的硬件擴(kuò)展不失為解決系統(tǒng)性能問題的一條捷徑,但應(yīng)用系統(tǒng)的優(yōu)化也是應(yīng)該重點(diǎn)加以考慮的,畢竟它能夠在投入較少的情況下提高系統(tǒng)的運(yùn)用效率。
在開發(fā)的初期,我們就已經(jīng)十分注意系統(tǒng)的利用效率,比如提醒程序員盡量不要利用用戶會話信息(Session)來傳遞大的對象,對于內(nèi)存要注意回收等。同時,通過內(nèi)部的交流會推廣與介紹一些小的、有用的編程技巧來提高開發(fā)人員的水平,通過代碼的抽查,希望能在早期就發(fā)現(xiàn)問題等。
在系統(tǒng)運(yùn)行期間,我們通過監(jiān)控發(fā)現(xiàn),應(yīng)用服務(wù)器所基于的Java虛擬機(jī),其內(nèi)存堆的空閑空間有不斷下降的趨勢,每隔若干天導(dǎo)致空間消耗殆盡、無法分配新對象空間,從而導(dǎo)致系統(tǒng)重啟。在排除了系統(tǒng)本身問題的原因外,我們確定為應(yīng)用系統(tǒng)的開發(fā)有問題。通過從網(wǎng)上萬載IBM公司檢測Java虛擬機(jī)的相關(guān)工具對JVM進(jìn)行監(jiān)控后終于發(fā)現(xiàn)系統(tǒng)內(nèi)部存在著不能回收內(nèi)存的對象,再通過查找相應(yīng)的程序發(fā)現(xiàn)在該程序中有“環(huán)狀”的對象引用,從而導(dǎo)致對象使用后不能被垃圾收集器所回收。這個問題的解決過程雖然十分艱苦,但由于該問題不能通過升級硬件或增加資源配置而得到根本解決,會給系統(tǒng)帶來很大的隱患。所以,整個過程的分析與解決是完全值得的,更何況通過查找故障原因的過程,給整個項目組上了生動的一堂軟件質(zhì)量保證課,對項目組的質(zhì)量意識起了很大的促進(jìn)作用。
所以說改進(jìn)Web服務(wù)器的性能井不單純是系統(tǒng)管理方面的工作,它滲透到開發(fā)以及
系統(tǒng)運(yùn)行等一系列環(huán)節(jié)中。
第四方面預(yù)先考慮未來的擴(kuò)展與性能需要。
隨著系統(tǒng)的發(fā)展及成熟,考慮到用戶訪問量的不斷上升,為了預(yù)留系統(tǒng)的發(fā)展空間,我們最近又對整個系統(tǒng)作了一個系統(tǒng)性的升級。通過引入多臺HTTP服務(wù)器及應(yīng)用服務(wù)器并行工作提高整個系統(tǒng)吞吐量及單點(diǎn)故障克服能力。由于在一開始選型的時候就已經(jīng)充分考慮到動態(tài)負(fù)載均衡及橫向擴(kuò)展方面的需要,這一項的升級無需對整個系統(tǒng)的體系結(jié)構(gòu)作根本的變革,對應(yīng)用程序來說,更是沒有造成任何影響。
整個項目歷時近兩年,從這兩年的系統(tǒng)情況來看,整個系統(tǒng)是成功的。根據(jù)我親身的經(jīng)歷,系統(tǒng)性能并不單純是系統(tǒng)運(yùn)行與管理階段的問題,而是滲透在項目論證、開發(fā)以及運(yùn)行的各個階段。只有在各個階段都能充分考慮性能方面的需要,在實際運(yùn)行時,整個系統(tǒng)的性能才可能真正有保障。在技術(shù)方面來看,可以綜合利用選型評估、硬件擴(kuò)展、應(yīng)用優(yōu)化和系統(tǒng)配置優(yōu)化等一系列的手段;比如在硬件擴(kuò)展方面,又可以分為主要部件擴(kuò)容,縱向升級、橫向升級等方面。在我們的項目實踐中,曾綜合地利用了上述的各種手段。比如某銀行的整個系統(tǒng)從日訪問量不足1萬至現(xiàn)在的每日超過I0萬次以上的點(diǎn)擊的發(fā)展情況來看,整個系統(tǒng)的性能保障及提高方案是比較成功的。
評注:實踐過程較有說服力。條理與思路相當(dāng)清晰,技術(shù)措施與管理措施的推進(jìn)也很明確。所論述的技術(shù)還有一些局限,不夠開闊。(本文主要參考了廣州黃昌湛等人的論文)
上一頁 [1] [2] [3] [4] [5] [6] 下一頁
轉(zhuǎn)帖于:軟件水平考試_考試吧- 推薦給朋友
- 收藏此頁
·網(wǎng)絡(luò)工程師資料:網(wǎng)絡(luò)體系結(jié)構(gòu)-軟考網(wǎng)絡(luò)類題解 (2008-4-25 14:33:38)
·計算機(jī)網(wǎng)絡(luò)基礎(chǔ)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)及優(yōu)缺點(diǎn)分析 (2008-2-22 14:04:32)
·網(wǎng)絡(luò)工程師必知:靜態(tài)路由協(xié)議配置方法 (2008-2-22 14:03:39)
·計算機(jī)網(wǎng)絡(luò)尼奎斯特 香農(nóng)公式例題解析 (2008-2-22 14:02:35)
·軟考復(fù)習(xí):因特網(wǎng)IP的分類、尋址規(guī)則及子網(wǎng)掩碼 (2008-2-22 13:57:21)
如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系,我們將會及時處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請注明出處。