資源描述:
《j2ee web應(yīng)用架構(gòu)的分析》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、.....當前流行的J2EEWEB應(yīng)用架構(gòu)分析責任編輯:覃里作者:IBMdeveloperworks網(wǎng)站2009-11-19來源:IT168網(wǎng)站文本Tag:StrutsJavaJSF【IT168技術(shù)文章】J2EE體系包括javaserverpages(JSP),javaSERVLET,enterprisebean,WEBservice等技術(shù)。這些技術(shù)的出現(xiàn)給電子商務(wù)時代的WEB應(yīng)用程序的開發(fā)提供了一個非常有競爭力的選擇。怎樣把這些技術(shù)組合起來形成一個適應(yīng)項目需要的穩(wěn)定架構(gòu)是項目開發(fā)過程中一個非常重要的步驟。完成這個
2、步驟可以形成一個主要里程碑基線。1.架構(gòu)概述J2EE體系包括javaserverpages(JSP),javaSERVLET,enterprisebean,WEBservice等技術(shù)。這些技術(shù)的出現(xiàn)給電子商務(wù)時代的WEB應(yīng)用程序的開發(fā)提供了一個非常有競爭力的選擇。怎樣把這些技術(shù)組合起來形成一個適應(yīng)項目需要的穩(wěn)定架構(gòu)是項目開發(fā)過程中一個非常重要的步驟。完成這個步驟可以形成一個主要里程碑基線。形成這個基線有很多好處:各種因數(shù)初步確定為了形成架構(gòu)基線,架構(gòu)設(shè)計師要對平臺(體系)中的技術(shù)進行篩選,各種利弊的權(quán)衡。往往架構(gòu)設(shè)
3、計師在這個過程中要閱讀大量的技術(shù)資料,聽取項目組成員的建議,考慮領(lǐng)域?qū)<业男枨螅紤]贊助商成本(包括開發(fā)成本和運行維護成本)限額。一旦架構(gòu)設(shè)計經(jīng)過評審,這些因數(shù)初步地就有了在整個項目過程中的對項目起多大作用的定位。定向技術(shù)培訓(xùn)一旦架構(gòu)師設(shè)計的架構(gòu)得到了批準形成了基線,項目開發(fā)和運行所采用的技術(shù)基本確定下來了。眾多的項目經(jīng)理都會對預(yù)備項目組成員的技術(shù)功底感到擔心;他們需要培訓(xùn)部門提供培訓(xùn),但就架構(gòu)師面對的技術(shù)海洋,項目經(jīng)理根本就提不出明確的技術(shù)培訓(xùn)需求。怎不能夠?qū)w系中所有技術(shù)都進行培訓(xùn)吧!有了架構(gòu)里程碑基線,項目經(jīng)
4、理能確定這個項目開發(fā)會采用什么技術(shù),這是提出培訓(xùn)需求應(yīng)該是最精確的。不過在實際項目開發(fā)中,技術(shù)培訓(xùn)可以在基線確定之前與架構(gòu)設(shè)計并發(fā)進行。角色分工有了一個好的架構(gòu)藍圖,我們就能準確劃分工作。如網(wǎng)頁設(shè)計,JSP標簽處理類設(shè)計,SERVLET設(shè)計,sessionbean設(shè)計,還有各種實現(xiàn)。這些任務(wù)在架構(gòu)藍圖上都可以清晰地標出位置,使得項目組成員能很好地定位自己的任務(wù)。一..........個好的架構(gòu)藍圖同時也能規(guī)范化任務(wù),能很好地把任務(wù)劃分為幾類,在同一類中的任務(wù)的工作量和性質(zhì)相同或相似。這樣工作量估計起來有一個非常好的
5、基礎(chǔ)。運行維護前面說過各個任務(wù)在架構(gòu)圖上都有比較好的定位。任何人能借助它很快地熟悉整個項目的運行情況,錯誤出現(xiàn)時能比較快速地定位錯誤點。另外,有了清晰的架構(gòu)圖,項目版本管理也有很好的版本樹軀干。擴展性架構(gòu)猶如一顆參天大樹的軀干,只要軀干根系牢,樹干粗,長一些旁支,加一些樹葉輕而易舉無疑。同樣,有一個穩(wěn)定的經(jīng)得起考驗的架構(gòu),增加一兩個業(yè)務(wù)組件是非常快速和容易的。大家都知道這些好處,一心想形成一個這樣的J2EE應(yīng)用程序架構(gòu)(就像在windows平臺中的MFC)。在這個路程中經(jīng)歷了兩個大的階段:1.1.模型1模型1其實不
6、是一個什么穩(wěn)定架構(gòu),甚至談不上形成了架構(gòu)。模型1的基礎(chǔ)是JSP文件。它從HTTP的請求中提取參數(shù),調(diào)用相應(yīng)的業(yè)務(wù)邏輯,處理HTTP會話,最后生成HTTP文檔。一系列這樣的JSP文件形成一個完整的模型1應(yīng)用,當然可能會有其他輔助類或文件。早期的ASP和PHP技術(shù)就屬于這個情況??偟目磥?,這個模型的好處是簡單,但是它把業(yè)務(wù)邏輯和表現(xiàn)混在一塊,對大應(yīng)用來說,這個缺點是令人容忍不了的。1.2.模型2在經(jīng)過一番實踐,并廣泛借鑒和總結(jié)經(jīng)驗教訓(xùn)之后,J2EE應(yīng)用程序終于迎來了MVC(模型-視圖-控制)模式。MVC模式并不是J2E
7、E行業(yè)人士標新立異的,所以前面我談到廣發(fā)借鑒。MVC的核心就是做到三層甚至多層的松散耦合。這對基于組件的,所覆蓋的技術(shù)不斷膨脹的J2EE體系來說真是福音和救星。它在瀏覽器(本文對客戶代理都稱瀏覽器)和JSP或SERVLET之間插入一個控制組件。這個控制組件集中了處理瀏覽器發(fā)過來的HTTP請求的分發(fā)邏輯,也就是說,它會根據(jù)HTTP請求的URL,輸入?yún)?shù),和目前應(yīng)用的內(nèi)部狀態(tài),把請求分發(fā)給相應(yīng)的WEB層的JSP或SERVLET。另外它也負責選擇下一個視圖(在J2EE中,JSP,SERVLET會生成回給瀏覽器的html從
8、而形成視圖)。集中的控制組件也有利于安全驗證,日志紀錄,有時也封裝請求數(shù)據(jù)給下面的WEBtier層。這一套邏輯的實現(xiàn)形成了一個像MFC的應(yīng)用框架,位置如圖:..........1.3.多層應(yīng)用下圖為J2EE體系中典型的多層應(yīng)用模型。Clienttier客戶層一般為瀏覽器或其他應(yīng)用??蛻魧悠毡榈刂С諬TTP協(xié)議,也稱客戶代理。WEBtierWEB應(yīng)用層在J2E