《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > 基于J2EE的Web 應用的建模

基于J2EE的Web 應用的建模

2008-12-20
作者:萬賢福,宋碧蓮,孫莉

1、引 言?

??? 隨著全球化市場競爭的加劇,傳統的Web 應用系統" title="應用系統">應用系統已經不適應企業業務不斷擴展,流程不斷變化,存儲數據分布處理,企業之間橫向聯系的要求。如何使得企業應用系統在激烈的市場競爭中能夠迅速地反映企業的變化,加強伙伴企業之間應用服務的快速發現,企業之間業務數據的無縫集成,對于提高企業Web 應用的市場競爭力具有非常重要的意義。J2EE正是在這種背景下產生的,它是解決企業級應用棘手問題的理想平臺。由此基于J2EE開發Web 應用成為了當前的熱點。然而由于J2EE體系結構的特殊性,基于J2EE開發Web 應用有其自身的特點。于是如何對利用J2EE開發的Web 應用進行建模,成為擺在我們面前的問題。

本文在充分分析J2EE體系結構以及基于J2EE的web應用的基礎之上,得出基于J2EE的Web 應用的建模任務,接著通過實例講解基于J2EE的Web 應用的建模具體步驟,最后總結出建模原則。

2、J2EE?

??? J2EE是一種利用Java 2平臺來簡化與多級企業解決方案的開發、部署和管理相關的復雜問題的體系結構;它提供了一個企業級的計算模型和運行環境用于開發和部署多層體系結構的應用。通過提供企業計算環境所必需的各種服務,使得部署在J2EE平臺上的多層應用可以實現高可用性、安全性、可擴展性和可靠性。

J2EE的體系結構可以分為4層,如圖1所示。

.客戶端" title="客戶端">客戶端層 這一層直接與用戶交互,J2EE支持多種客戶端,它既可以是通過Internet訪問的Web瀏覽器客戶端,也可以是通過企業Intranet運行的瘦客戶端。

.Web層  這一層是為基于Web的應用程序服務的,J2EE中的JavaServer Page和Java Servlet技術可以訪問封裝有商務邏輯的組件,并負責響應Web客戶端的請求。

.EJB層  EJB(Enterprise Java Bean)封裝了商務邏輯,完成企業計算。EJB1.1規范中EJB包括兩種:會話Bean和實體Bean。會話Bean代表商業過程,而實體Bean代表永久性的商務數據。

.EIS層  EIS(Enterprise Information System)企業信息系統層包括企業已有系統(如ERP系統)、數據庫系統、文件系統等。J2EE提供了多種技術來訪問這些系統,如利用JDBC技術來訪問數據庫。

3、基于J2EE的Web 應用
3.1 Web 應用實例簡介

??? 在此舉一個簡單的Web應用實例,以闡述如何對基于J2EE開發的Web應用進行建模。它僅包括一個顧客登錄用例" title="用例">用例,此用例為:顧客在瀏覽器中輸入用戶名和密碼,點擊“登錄”之后,系統驗證顧客,如果驗證通過,頁面顯示“歡迎您!”信息,如果失敗,則顯示“登錄失敗!”。舉此例旨在后續闡述問題時做到清晰,故而盡量簡化。
3.2 基于J2EE的Web 應用的體系結構
??? 基于J2EE的Web 應用大多采用MVC體系結構。MVC模式即模型-視圖-控制器模型。模型指實現應用數據和商業邏輯的對象。視圖負責格式化應用系統的結果和動態頁面構建。控制器負責接收客戶請求,調用適當的商業邏輯,并且基于結果選擇適當的視圖顯示給用戶。
??? 圖2顯示了一種典型的基于J2EE的Web 應用的體系結構。
??? 其工作原理如下:首先,①客戶端瀏覽器向控制器發出請求事件,控制器(servlet)接收到請求事件之后,②向JavaBean代理發出處理請求,接著③JavaBean代理調用EJB進行業務邏輯處理并④獲得結果,置入到其屬性中,此時⑤控制器觸發響應,將控制權傳給相應的視圖(JSP),⑥視圖(JSP)從JavaBean代理中讀取屬性值,⑦獲得處理結果,⑧生成客戶端顯示代碼傳給客戶端瀏覽器。
3.3 基于J2EE的Web 應用的建模任務
??? 由上述體系結構的分析,我們可以得出基于J2EE的Web 應用的各組成部分的建模任務(以圖2所示結構為例):
.業務處理部分??此部分負責Web 應用的數據與業務邏輯,是Web 應用的核心,由EJB來實現,故這部分的建模任務是分析出Web 應用的業務邏輯并設計出相應的EJB以實現分析出的業務邏輯。
.控制器部分??此部分負責接收HTTP事件請求,調度相應的JavaBean代理并將控制轉移給相應的JSP頁面。所以這部分的建模任務是:設計出若干控制器,要求分析出每個控制器接受哪些HTTP請求,針對每個HTTP請求需分析出它調度哪些JavaBean代理和轉移至哪些JSP頁面。
.JavaBean代理部分?此部分負責調度EJB,得出JSP頁面所需顯示的數據,并將這些數據賦值給其自身相應的屬性。它的建模任務是根據JSP頁面所需,設計出相應的JavaBean代理,每個JavaBean代理需分析出它組織哪些EJB和怎樣組織這些EJB,還有就是它有哪些屬性以及怎樣獲得屬性值的。
.JSP頁面部分???在Web服務器上,負責從JavaBean代理中取出客戶端所需顯示的屬性值,生成客戶端顯示代碼;在瀏覽器上生成顯示界面,通過顯示界面向控制器發出HTTP請求事件。因此JSP頁面的建模任務是設計若干JSP頁面,分析出每個JSP頁面所需獲取的JavaBean代理的屬性,并且分析出JSP頁面生成的客戶端代碼可以觸發的HTTP請求事件。
4. 基于J2EE的Web 應用的建模具體步驟
?? ?基于J2EE的Web 應用建模具體步驟如下(在此我們采用RUP建模過程來對前述應用實例進行UML建模,假設以圖2所示體系結構實現此例):

(1)? 分析用例中所涉及的持久性數據與業務邏輯,確定用來滿足用例的EJB類。本用例涉及顧客信息,這是持久性數據,設計由CustomerBean實體EJB來封裝顧客信息。此外本用例還涉及到對顧客信息的驗證,這是業務邏輯,我們設計LoginVerifyBean無狀態會話EJB來驗證密碼是否正確。

(2)?? 粗略設計此用例中所涉及的體系結構中各元素,并將它們放入到順序圖中。我們設計客戶端頁面為Login.jsp,服務器端頁面為LoginResult.jsp,控制器為LoginServlet,JavaBean代理為LoginAgent。將它們與第一步設計的EJB一同放入到順序圖的適當位置。

(3)?? 分析用例流程,畫出對象之間交互的消息。本用例中,①首先顧客在瀏覽器Login.jsp頁面中填入用戶名和密碼,點擊“登錄”,向控制器LoginServlet發出登錄事件,②控制器接收到登錄事件后向LoginAgent發出Login消息,接著③ LoginAgent對LoginverifyBean發出LoginVerify消息,④ LoginVerifyBean通過UserName獲取到此用戶名的CustomerBean實體EJB對象,⑤LoginVerifyBean對CustomerBean發出getPassword消息獲取出密碼,⑥LoginVerifyBean進行密碼對比,得出驗證結果返回給LoginAgent,⑦ LoginAgent從后臺獲得驗證結果后,根據結果給LoginResultInf屬性賦值(若驗證通過,賦值“歡迎您!”,否則賦值“登錄失敗!”),⑧LoginServlet將控制轉給LoginResult.jsp頁面,⑨ LoginResult.jsp頁面向LoginAgent發出getLoginResultInf消息,獲得LoginAgent的LoginResultInf屬性值,之后生成顯示頁面傳至客戶端。至此順序圖完成,如圖3。

(4)? 將順序圖中的消息映射為操作,將消息中傳遞的數據封裝" title="數據封裝">數據封裝到適當的類中,至此類圖可以完成,如圖4。

??? 經過以上建模,體系結構中涉及登錄用例的各組成部分都得到足夠詳盡的分析;順序圖清晰地展示出體系結構中各組成部分的相互協作的流程;建模過程簡潔、清晰、明了;涉及數據和業務邏輯的類非常容易轉化為EJB。建模效果比較理想。

5.基于J2EE的Web 應用的建模原則總結?

??? 根據上面的建模過程,結合前人與作者本人的研究,下面列出基于J2EE的Web 應用的建模的幾點原則:

(1)? 在體系結構基礎上進行建模,將體系結構納入并貫穿到整個建模過程中。將體系結構貫穿整個建模過程,從而指導建模者按照體系結構中各部分職能進行劃分與設計系統,由此所建的模型能夠很好實現體系結構,并且各組成部分也能較好地完成前面提出的建模任務。

(2)? 對于涉及到數據與業務邏輯的類應該根據EJB的特殊性來進行設計。由于這些類最終要轉化為EJB,所以首先要確定該類將來由哪種EJB來實現,如果該類涉及到持久性數據封裝,則應該設計成實體EJB類,若涉及到業務邏輯則應設計成會話EJB類,特別值得注意的是實體EJB僅僅負責對于持久性數據的簡單查詢存取操作,所以如果某個類既涉及到持久性數據封裝又包括對這些數據的復雜操作,則該類應該拆成實體EJB類和會話EJB類。這是和一般面向對象設計的不同之處。狀態會話EJB也可以封裝業務數據,但這些業務數據必須是會話客戶狀態數據,而不能是持久性數據。無狀態會話EJB只能負責業務邏輯處理,不封裝業務數據。需要申明的是上述都是針對EJB1.1規范而言的。

(3)??適當設計一些會話Bean,這些會話Bean代替EJB客戶端執行對一些EJB的批量調用,并將最終結果返回給EJB客戶端,這樣做的目的是為了減少EJB客戶端與EJB層的數據傳輸量,從而改善系統性能。

6.結? 語?

??? 本文針對基于J2EE的Web 應用的特點,得出基于J2EE的Web 應用的建模任務,接著結合作者與前人的研究成果,最后總結出基于J2EE的Web 應用的建模原則與方法,經上海市十五重大科研基金項目上海市服裝設計和加工公共服務平臺(2S10716)驗證,效果理想,遂撰此文,望能起到拋磚引玉的作用。

參考文獻

[1] Simon Brown,《JSP編程指南》,2002.10,電子工業" title="電子工業">電子工業出版社。?

[2]陳華軍,《J2EE構建企業級應用解決方案》,2002.3,人民郵電出版社。?

[3] Khawar Zaman Ahmed,Cary E.Umrysh等,《用J2EE和UML開發Java企業級應用程序》,2002.7,清華大學出版社。?

[4]Ed Roman,《精通EJB》,2002.1,電子工業出版社。?

[5] Grady Boock,James Rumbaugh等,《UML用戶指南》,2001.6,機械工業出版社。?

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 老司机午夜视频在线观看 | 99免费视频 | 福利视频h | 日日干夜夜爽 | 美女被啪全免视频软件 | 亚洲人人看 | 日韩一级在线视频 | 欧美一区二区三区免费观看视频 | 一个人看的视频免费www | 日产欧美亚洲 | 激情文学综合丁香 | 欧洲一级毛片免费 | 在线中文字幕一区 | 成人怡红院 | 奇米777狠狠色噜噜狠狠狠 | 男女无遮挡在线完整视频 | 国产的一级毛片完整 | 国产精品视频福利一区二区 | 日本韩国在线播放 | 色综合天天综合网看在线影院 | 免费一级a毛片在线播放视 免费一级a毛片在线播出 | 男女上下爽无遮挡午夜免费视频 | 国产福利免费视频 | 天天爽爽| 午夜视频吧 | 99综合在线 | 天天躁夜夜躁狠狠躁2021西西 | 亚欧日韩毛片在线看免费网站 | 亚洲国产成人久久笫一页 | 激情爽毛片私人影院 | 国产一级特黄高清免费大片dvd | 国精品日韩欧美一区二区三区 | 午夜爱爱影院 | 无遮羞无删减肉动漫在线观看 | 亚洲欧美另类在线 | 手机看片高清国产日韩片 | 藏精第一福利 | 日本高清中文字幕一区二区三区 | 欧美中文综合在线视频 | 日本一道高清不卡免费 | 99免费在线观看视频 |