解析Web應(yīng)用中的UML建模
本節(jié)和大家一起學(xué)習(xí)一下Web應(yīng)用的UML建模,主要包括Web應(yīng)用的構(gòu)架模式和UML的Web應(yīng)用擴(kuò)展兩大部分內(nèi)容,相信通過本節(jié)的介紹你對(duì)Web應(yīng)用的UML建模會(huì)有一定的了解。
Web應(yīng)用中UML建模
本文通過分析Web應(yīng)用的構(gòu)架模式,引入U(xiǎn)ML擴(kuò)展機(jī)制,實(shí)現(xiàn)對(duì)Web應(yīng)用中各種對(duì)象的建模。探討.NET框架下Web應(yīng)用的UML建模及開發(fā)方法,并將其應(yīng)用到一個(gè)實(shí)際的研究所管理系統(tǒng)中。實(shí)際應(yīng)用表明該方法有利于降低開發(fā)的復(fù)雜性,縮短開發(fā)周期,取得了較好的效果。
1引言
基于Web的應(yīng)用系統(tǒng)一般包含兩部分:服務(wù)器和客戶端瀏覽器。服務(wù)器主要對(duì)事務(wù)進(jìn)行邏輯處理,而用戶對(duì)服務(wù)器上業(yè)務(wù)邏輯的影響,使Web應(yīng)用往往具有復(fù)雜性和高度動(dòng)態(tài)性的特點(diǎn)。這種特點(diǎn)使得基于Web應(yīng)用的系統(tǒng)開發(fā)比較復(fù)雜、管理困難。為了有效地解決上述問題,縮短開發(fā)周期,減少維護(hù)費(fèi)用,主要策略是對(duì)Web應(yīng)用進(jìn)行建模。UML是面向?qū)ο蠹夹g(shù)領(lǐng)域中占主導(dǎo)地位的統(tǒng)一建模語(yǔ)言。此外,.NET框架在通用語(yǔ)言運(yùn)行時(shí)CLR的基礎(chǔ)上,提供了完善的基礎(chǔ)類庫(kù)、數(shù)據(jù)庫(kù)訪問技術(shù)ADO.NET和網(wǎng)絡(luò)開發(fā)技術(shù)ASP.NET,使開發(fā)者可以快速構(gòu)建Web應(yīng)用。因此,本文主要探討基于.NET框架Web應(yīng)用的UML建模及開發(fā)方法,并將該方法用于作者開發(fā)的研究所管理系統(tǒng)中,實(shí)際應(yīng)用表明該方法可以有效地降低系統(tǒng)開發(fā)和管理的復(fù)雜性,提高經(jīng)濟(jì)效益。
2Web應(yīng)用的構(gòu)架模式
Web應(yīng)用的基本構(gòu)架包括瀏覽器、網(wǎng)絡(luò)和Web服務(wù)器。瀏覽器向服務(wù)器請(qǐng)求Web頁(yè),Web頁(yè)可能包括由瀏覽器解釋執(zhí)行的客戶端腳本,而且可以與瀏覽器、頁(yè)內(nèi)容和頁(yè)中包含的其他控件(JavaApplet、ActiveX控件和插件等)進(jìn)行交互。用戶向Web頁(yè)輸入信息或通過超級(jí)鏈接導(dǎo)航到其它Web頁(yè),與系統(tǒng)進(jìn)行交互,改變系統(tǒng)的“業(yè)務(wù)狀態(tài)”。
2.1瘦Web客戶端
主要適用于基于Internet的應(yīng)用,對(duì)客戶端配置幾乎沒有控制??蛻舳酥恍枰獦?biāo)準(zhǔn)Web瀏覽器,可以請(qǐng)求和顯示標(biāo)準(zhǔn)的HTML頁(yè)面。所有的業(yè)務(wù)邏輯都在服務(wù)器上執(zhí)行。
客戶端瀏覽器通過HTTP協(xié)議向服務(wù)器請(qǐng)求頁(yè)面資源,服務(wù)器將被請(qǐng)求的URL解析為文件系統(tǒng)中的文件,或者由應(yīng)用服務(wù)器處理并可能改變業(yè)務(wù)狀態(tài),得到請(qǐng)求的頁(yè)面,返回給客戶端。
2.2胖Web客戶端
胖Web客戶端對(duì)于可以確定客戶端配置和瀏覽器版本的Web應(yīng)用是最適合的。客戶端通過HTTP與服務(wù)器通信,使用DHTML、Javaapplet或者ActiveX控件執(zhí)行業(yè)務(wù)邏輯。HTTP的無連接特性,決定了客戶端腳本、ActiveX控件和JavaApplet只能同客戶端對(duì)象進(jìn)行交互。
客戶端顯示接收的頁(yè)面時(shí),執(zhí)行嵌入的腳本,這些腳本通??梢栽诓煌木€程中執(zhí)行,通過DOM接口與頁(yè)面內(nèi)容進(jìn)行交互。
2.3Web傳輸
Web傳輸模式除了使用HTTP負(fù)責(zé)客戶端和服務(wù)器的通信之外,還可以使用IIOP和DCOM等協(xié)議以支持分布式對(duì)象系統(tǒng)。Web頁(yè)面通過遠(yuǎn)程對(duì)象樁和遠(yuǎn)程對(duì)象傳輸協(xié)議與遠(yuǎn)程對(duì)象服務(wù)器通信,由服務(wù)器管理遠(yuǎn)程業(yè)務(wù)對(duì)象的生命周期,向客戶端對(duì)象提供服務(wù)。
遠(yuǎn)程對(duì)象樁是一個(gè)對(duì)象,在客戶端執(zhí)行,并與遠(yuǎn)程對(duì)象具有相同的接口。當(dāng)通過這個(gè)對(duì)象調(diào)用方法時(shí),這些方法被封裝起來,使用遠(yuǎn)程對(duì)象傳輸協(xié)議RMI/DCOM發(fā)送到遠(yuǎn)程對(duì)象服務(wù)器,服務(wù)器解釋請(qǐng)求,實(shí)例化并調(diào)用實(shí)際對(duì)象實(shí)例中的方法。
實(shí)際應(yīng)用中,往往根據(jù)業(yè)務(wù)需要,綜合使用上述構(gòu)架。在我們的研究所管理系統(tǒng)中,綜合采用了瘦Web客戶端和Web傳輸構(gòu)架??蛻舳耸褂昧薐avaScript進(jìn)行客戶端驗(yàn)證,把經(jīng)過驗(yàn)證的數(shù)據(jù)提交服務(wù)器處理。在數(shù)據(jù)的后臺(tái)管理上,采用了Web傳輸構(gòu)架,保持客戶端與服務(wù)器的開放連接,以便進(jìn)行較長(zhǎng)時(shí)間的、較復(fù)雜的會(huì)話。
3UML的Web應(yīng)用擴(kuò)展
UML(UnifiedModelingLanguage)是一種通用的可視化建模語(yǔ)言,適用于各種軟件開發(fā)方法、軟件生命周期的各個(gè)階段、各種應(yīng)用領(lǐng)域以及各種開發(fā)工具。但在對(duì)Web應(yīng)用進(jìn)行建模時(shí),它的一些構(gòu)件不能與標(biāo)準(zhǔn)UML建模元素一一對(duì)應(yīng),因此必須對(duì)UML進(jìn)行擴(kuò)展。
UML的三種核心擴(kuò)展機(jī)制包括構(gòu)造型、標(biāo)記值和約束。其中最重要的擴(kuò)展機(jī)制是構(gòu)造型,它不能改變?cè)P偷慕Y(jié)構(gòu),但可以在模型元素上附加新的語(yǔ)義,通常用“《構(gòu)造型名》”來表示。約束是模型元素中的語(yǔ)義關(guān)系,定義了模型如何組織在一起,通常用一對(duì)“{}”之間的字符串表示。標(biāo)記值是對(duì)模型元素特性的擴(kuò)展,大多數(shù)的模型元素都有與之關(guān)聯(lián)的特性,通常用帶括號(hào)的字符串表示。
3.1Web頁(yè)建模
Web頁(yè)可能同時(shí)包含客戶端腳本和服務(wù)器端腳本,因此必須分別進(jìn)行建模。服務(wù)器端Web頁(yè)面一般包含由服務(wù)器執(zhí)行的腳本,每一次被請(qǐng)求時(shí)都在服務(wù)器上組合,更新業(yè)務(wù)邏輯狀態(tài),返回給瀏覽器??蛻舳薟eb頁(yè)可能包含數(shù)據(jù)、表現(xiàn)形式甚至業(yè)務(wù)邏輯,由瀏覽器解釋執(zhí)行,并可以與客戶端組件相關(guān)聯(lián),如JavaApplet、ActiveX、插件等。兩者之間通過定向關(guān)系相互關(guān)聯(lián)。這種關(guān)聯(lián)關(guān)系的構(gòu)造型為«build»。
Web應(yīng)用中的超級(jí)鏈接代表導(dǎo)航路徑,用構(gòu)造型為«link»的關(guān)聯(lián)關(guān)系表示。標(biāo)記值用于定義隨超級(jí)鏈接請(qǐng)求傳遞的參數(shù)列表,供服務(wù)器端Web頁(yè)使用。
.NET框架中大多數(shù)建立的是服務(wù)器端Web頁(yè),經(jīng)編譯后生成HTML代碼傳遞到客戶端瀏覽器。同時(shí),為了提高效率,對(duì)于那些不包含業(yè)務(wù)邏輯的Web頁(yè),在.NET框架中可以直接用HTML元素建立客戶端Web頁(yè),再建立起與對(duì)應(yīng)的服務(wù)器端Web頁(yè)之間的調(diào)用關(guān)系。
3.2表單建模
Web應(yīng)用的UML建模中表單是Web頁(yè)的基本輸入機(jī)制,包括<input>、<select>和<textarea>等輸入元素,用《Form》構(gòu)造型進(jìn)行建模?!禙orm》沒有操作,與之交互的操作是包含表單的Web頁(yè)的特性。它可以與作為輸入控件的Applet或ActiveX控件關(guān)聯(lián),還可以把表單內(nèi)容提交到服務(wù)器進(jìn)行處理。.NET中每一個(gè)頁(yè)面只有一個(gè)表單,包含所有的輸入元素,通常表現(xiàn)為服務(wù)器端控件或客戶端控件,其中服務(wù)器端控件由服務(wù)器端Web頁(yè)經(jīng)過編譯后傳送到客戶端。
3.3組件建模
Web應(yīng)用中的組件分為服務(wù)器端組件和客戶端組件兩類。服務(wù)器端較復(fù)雜的業(yè)務(wù)邏輯通常由中間層完成,包括一組封裝了所有業(yè)務(wù)邏輯的已編譯好的組件。因此,使用中間層不僅可以提高性能,而且可以共享整個(gè)應(yīng)用的業(yè)務(wù)功能??蛻舳薟eb頁(yè)中常見的組件是JavaApplet和ActiveX,利用它們?cè)L問瀏覽器和客戶端的各種資源,實(shí)現(xiàn)HTML無法實(shí)現(xiàn)的功能。
Web應(yīng)用擴(kuò)展定義了《staticpage》和《dynamicpage》兩個(gè)抽象組件構(gòu)造型。《staticpage》實(shí)現(xiàn)客戶端組件。《dynamicpage》的主要任務(wù)是在運(yùn)行時(shí)系統(tǒng)的物理文件和邏輯視圖中的邏輯表現(xiàn)之間提供映射。
3.4框架建模
Web應(yīng)用擴(kuò)展定義了構(gòu)造型《frameset》和《target》以及關(guān)聯(lián)關(guān)系構(gòu)造型《targetedlink》來實(shí)現(xiàn)對(duì)框架的建模?!秄rameset》直接映射到HTML的<frameset>標(biāo)記?!秚arget》表示當(dāng)前Web頁(yè)引用的其它Web頁(yè)或框架?!秚argetedlink》是指向另一個(gè)Web頁(yè)的超級(jí)鏈接,但它要在特定目標(biāo)中才能提供。
【編輯推薦】
- 術(shù)語(yǔ)匯編 UML建模技術(shù)解析
- UML建模過程中需要注意要點(diǎn)專家提醒
- UML組成及其全稱解析
- 解析UML類圖符號(hào)意義
- 九大UML建模誤區(qū)如何避免