資源描述:
《使用 uml 為 web 應(yīng)用程序構(gòu)架建?!酚蓵T上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、使用UML為Web應(yīng)用程序構(gòu)架建模作者:JimConallen,RationalSoftware1999年6月這份材料發(fā)表在1999年10月(第42卷,第10期)的CommunicationsoftheACM上。摘要Web應(yīng)用程序正變得越來越復(fù)雜,越來越重要。為了幫助管理這種復(fù)雜性,需要為Web應(yīng)用程序建模。UML是軟件密集型系統(tǒng)的標準建模語言。在嘗試用UML為Web應(yīng)用程序建模時,很明顯它的一些構(gòu)件不能與標準的UML建模元素一一對應(yīng)。為了讓整個系統(tǒng)(Web構(gòu)件,以及傳統(tǒng)的中間層構(gòu)件)使用同一種建模表示法,必須擴展UML。本文介紹UML的一
2、種擴展方式(使用正式的擴展機制)。進行擴展是為了讓W(xué)eb特有的構(gòu)件能與系統(tǒng)模型的其余部分集成,向Web應(yīng)用程序的設(shè)計員、實施員以及構(gòu)架設(shè)計師展示適當?shù)某橄蠛兔骷毤墑e。近年來,IT詞匯表中出現(xiàn)了一條新的術(shù)語,它就是“Web應(yīng)用程序”。參與業(yè)務(wù)軟件系統(tǒng)的所有人似乎都有構(gòu)建Web應(yīng)用程序的計劃,而在與業(yè)務(wù)不相關(guān)的軟件方面也有很多人對此感興趣。對于很早前就采用這種構(gòu)架的許多人來說,Web應(yīng)用程序這個詞象系統(tǒng)本身一樣,已經(jīng)從成功的小型Web站點插件發(fā)展成了強壯的n層應(yīng)用程序。Web應(yīng)用程序可以同時為分布在世界各地的、成千上萬的用戶提供服務(wù),這種情況早
3、已司空見慣。構(gòu)建Web應(yīng)用程序是一件嚴肅的事情。在實際應(yīng)用中,Web應(yīng)用程序這個詞對不同的人而言含義略有不同。一些人認為凡是用到Java的都是Web應(yīng)用程序,而另一些人則認為凡是使用Web服務(wù)器的都是Web應(yīng)用程序。多數(shù)人的意見介于這兩者之間。站在本文的角度,我們將Web應(yīng)用程序大體定義為Web系統(tǒng)(Web服務(wù)器、網(wǎng)絡(luò)、HTTP、瀏覽器),在這個系統(tǒng)中,用戶的輸入(導(dǎo)航和數(shù)據(jù)輸入)會影響到業(yè)務(wù)狀態(tài)。該定義試圖將Web應(yīng)用程序確立為一個具有業(yè)務(wù)狀態(tài)的軟件系統(tǒng),并且它的“前端”基本上是通過Web系統(tǒng)傳遞的。Web應(yīng)用程序的總體構(gòu)架是一個客戶機服
4、務(wù)器系統(tǒng),但二者有幾點顯著的區(qū)別。Web應(yīng)用程序最重要的優(yōu)點之一在于它的部署。部署Web應(yīng)用程序通常指的是建立網(wǎng)絡(luò)的服務(wù)器端構(gòu)件??蛻舳瞬恍枰貏e的軟件或配置。兩者的另一個重大差異在于客戶機和服務(wù)器通信的本質(zhì)。Web應(yīng)用程序的基本通信協(xié)議是HTTP,這是一個無連接協(xié)議,它不是為最大的通信吞吐量設(shè)計的,而是為強壯性和容錯而設(shè)計的。在Web應(yīng)用程序中,客戶機和服務(wù)器的通信通常圍繞Web頁導(dǎo)航進行,而不是在服務(wù)器端和客戶端對象之間直接通信。在一定的抽象程度上,Web應(yīng)用程序中所有的信息傳遞都可描述為Web頁實體的請求和接收。通常所說的Web應(yīng)用程
5、序構(gòu)架與動態(tài)Web站點的構(gòu)架并無太大區(qū)別。Web應(yīng)用程序與Web站點,甚至是與動態(tài)Web站點的區(qū)別都要涉及到使用。Web應(yīng)用程序?qū)崿F(xiàn)的是業(yè)務(wù)邏輯,它的使用改變了業(yè)務(wù)的狀態(tài)(其狀態(tài)為系統(tǒng)捕獲)。這是很重要的,因為它確定了建模工作的重點。Web應(yīng)用程序執(zhí)行業(yè)務(wù)邏輯,因此大多數(shù)重要的系統(tǒng)模型都側(cè)重于業(yè)務(wù)邏輯和業(yè)務(wù)狀態(tài),而不是表示細節(jié)。表示很重要(否則系統(tǒng)將毫無用處),不過應(yīng)盡量將業(yè)務(wù)和表示所關(guān)注的問題區(qū)分開。如果表示問題是重要的,甚至是復(fù)雜的,那么也需要對它們建模,但不必將它們作為業(yè)務(wù)邏輯模型的構(gòu)成部分。此外,用于表示的資源更注重外觀設(shè)計,而與實
6、施業(yè)務(wù)規(guī)則關(guān)系不大。關(guān)系管理方法(RMM)是與Web系統(tǒng)開發(fā)有關(guān)的一種方法/表示法。RMM是一種用于設(shè)計、構(gòu)建和維護Intranet及InternetWeb系統(tǒng)的方法。它的根本目標是降低動態(tài)數(shù)據(jù)庫驅(qū)動的Web站點的維護成本。它提倡系統(tǒng)進行形象化表示,以便展開設(shè)計上的討論。它是一個迭代式過程,包括Web頁可視元素的分解,及這些元素與數(shù)據(jù)庫實體的關(guān)聯(lián)關(guān)系。RMM是一種用于動態(tài)Web站點創(chuàng)建和維護的“完整詳盡”的方案。不過,在構(gòu)建Web應(yīng)用程序方面RMM就顯得無能為力了。Web應(yīng)用程序以業(yè)務(wù)邏輯為中心,它包括了許多實施業(yè)務(wù)邏輯的技術(shù)機制,而這些內(nèi)
7、容在RMM表示法中并未充分說明。客戶端腳本編寫、Applet和ActiveX控件等技術(shù)為促進系統(tǒng)業(yè)務(wù)規(guī)則的執(zhí)行發(fā)揮了重大作用。另外,Web應(yīng)用程序還可用作分布式對象系統(tǒng)的交付機制。Applet和ActiveX控件可以包含那些獨立于Web服務(wù)器,通過RMI或者DCOM與服務(wù)器端構(gòu)件異步交互的構(gòu)件。復(fù)雜應(yīng)用程序還可利用多個瀏覽器實例和客戶機上的框架,建立并維護自己的通信機制。既然所有這些機制都對系統(tǒng)的業(yè)務(wù)邏輯有促進作用,因此同樣也需要為它們建模。而且,由于它們只表示部分業(yè)務(wù)邏輯,它們需要與其余的系統(tǒng)模型集成。在很多情況下,大部分業(yè)務(wù)邏輯在Web
8、服務(wù)器后、服務(wù)器端的某一層執(zhí)行。建模語言和表示法的選擇通常要按照這一端的應(yīng)用程序的需要來決定。隨著UML作為一種正式的對象建模語言被OMG所接受,越來越多的系統(tǒng)開始用UML表示。