J2EE體系包括java server pages(jsp) ,java SERVLET, enterPRise bean,WEB service等技術。這些技術的出現給電子商務時代的WEB應用程序的開發提供了一個非常有競爭力的選擇。怎樣把這些技術組合起來形成一個適應項目需要的穩定架構是項目開發過程中一個非常重要的步驟。完成這個步驟可以形成一個主要里程碑基線。形成這個基線有很多好處:
各種因數初步確定
為了形成架構基線,架構設計師要對平臺(體系)中的技術進行篩選,各種利弊的權衡。往往架構設計師在這個過程中要閱讀大量的技術資料,聽取項目組成員的建議,考慮領域專家的需求,考慮贊助商成本(包括開發成本和運行維護成本)限額。一旦架構設計經過評審,這些因數初步地就有了在整個項目過程中的對項目起多大作用的定位。
定向技術培訓
一旦架構師設計的架構得到了批準形成了基線,項目開發和運行所采用的技術基本確定下來了。眾多的項目經理都會對預備項目組成員的技術功底感到擔心;他們需要培訓部門提供培訓,但就架構師面對的技術海洋,項目經理根本就提不出明確的技術培訓需求。怎不能夠對體系中所有技術都進行培訓吧!有了架構里程碑基線,項目經理能確定這個項目開發會采用什么技術,這是提出培訓需求應該是最精確的。不過在實際項目開發中,技術培訓可以在基線確定之前與架構設計并發進行。
角色分工
有了一個好的架構藍圖,我們就能準確劃分工作。如網頁設計,JSP 標簽處理類設計,SERVLET 設計,session bean設計,還有各種實現。這些任務在架構藍圖上都可以清楚地標出位置,使得項目組成員能很好地定位自己的任務。一個好的架構藍圖同時也能規范化任務,能很好地把任務劃分為幾類,在同一類中的任務的工作量和性質相同或相似。這樣工作量估計起來有一個非常好的基礎。
運行維護
前面說過各個任務在架構圖上都有比較好的定位。任何人能借助它很快地熟悉整個項目的運行情況,錯誤出現時能比較快速地定位錯誤點。另外,有了清楚的架構圖,項目版本治理也有很好的版本樹軀干。
擴展性
架構如同一顆參天大樹的軀干,只要軀干根系牢,樹干粗,長一些旁支,加一些樹葉輕而易舉無疑。同樣,有一個穩定的經得起考驗的架構,增加一兩個業務組件是非常快速和輕易的。
大家都知道這些好處,一心想形成一個這樣的J2EE應用程序架構(就像在windows平臺中的MFC)。在這個路程中經歷了兩個大的階段:
1.1. 模型1
模型1其實不是一個什么穩定架構,甚至談不上形成了架構。模型1的基礎是JSP文件。它從HTTP的請求中提取參數,調用相應的業務邏輯,處理HTTP會話,最后生成HTTP文檔。一系列這樣的JSP文件形成一個完整的模型1應用,當然可能會有其他輔助類或文件。早期的asp 和 php 技術就屬于這個情況。
總的看來,這個模型的好處是簡單,但是它把業務邏輯和表現混在一塊,對大應用來說,這個缺點是令人容忍不了的。
1.2. 模型2
在經過一番實踐,并廣泛借鑒和總結經驗教訓之后,J2EE應用程序終于迎來了MVC(模型-視圖-控制)模式。MVC模式并不是J2EE行業人士標新立異的,所以前面我談到廣發借鑒。MVC的核心就是做到三層甚至多層的松散耦合。這對基于組件的,所覆蓋的技術不斷膨脹的J2EE體系來說真是福音和救星。
它在瀏覽器(本文對客戶代理都稱瀏覽器)和JSP或SERVLET之間插入一個控制組件。這個控制組件集中了處理瀏覽器發過來的HTTP請求的分發邏輯,也就是說,它會根據HTTP請求的URL,輸入參數,和目前應用的內部狀態,把請求分發給相應的WEB 層的JSP 或SERVLET。另外它也負責選擇下一個視圖(在J2EE中,JSP,SERVLET會生成回給瀏覽器的Html從而形成視圖)。集中的控制組件也有利于安全驗證,日志紀錄,有時也封裝請求數據給下面的WEB tier層。這一套邏輯的實現形成了一個像MFC的應用框架,位置如圖:
1.3. 多層應用
下圖為J2EE體系中典型的多層應用模型。
Client tier客戶層
一般為瀏覽器或其他應用??蛻魧悠毡榈刂С諬TTP協議,也稱客戶代理。
WEB tier WEB應用層
在J2EE中,這一層由WEB 容器運行,它包括JSP, SERVLET等WEB部件。
EJB tier 企業組件層
企業組件層由EJB容器運行,支持EJB, JMS, JTA 等服務和技術。
EIS tier 企業信息系統層
企業信息系統包含企業內傳統信息系統如財務,CRM等,特點是有數據庫系統的支持。
新聞熱點
疑難解答