摘要
一個UML部署圖(對象管理組織2001)描述了一個運行時的硬件結點,以及在這些結點上運行的軟件組件的靜態(tài)視圖。 部署圖顯示了系統(tǒng)的硬件,安裝在硬件上的軟件,以及用于連接異構的機器之間的中間件。(2002-06-24 15:39:52)
一個UML部署圖(對象管理組織2001)描述了一個運行時的硬件結點,以及在這些結點上運行的軟件組件的靜態(tài)視圖。 部署圖顯示了系統(tǒng)的硬件,安裝在硬件上的軟件,以及用于連接異構的機器之間的中間件。 創(chuàng)建一個部署模型的目的包括∶
通用準則
在特定的項目圖上注明軟件組件
集中在企業(yè)級圖上的結點和通信關聯(lián)
結點和組件
用描述性術語命名結點
僅僅建模重要的軟件組件
為組件一致地應用一致版型
把可視化的版型應用到結點
依賴和通信關聯(lián)
用版型來注明通信協(xié)議
僅僅建模組件間的關鍵性依賴
1.在特定的項目圖上注明軟件組件
圖1是一個大學管理系統(tǒng)的UML部署圖描述. 該圖描述了那些包含單一應用程序的主要軟件組件是怎樣配置到生產(chǎn)環(huán)境中的,這使得項目團隊能夠確定他們的部署策略。
圖1.一個特定項目的UML部署圖。
2.集中在企業(yè)級圖上的結點和通信關聯(lián)
UML部署圖經(jīng)常被認為是一個網(wǎng)絡圖或技術架構圖,圖2是該風格的一個例子,它描述了一個簡單組織的技術基礎結構。 注意圖2是一個非常簡單的例子,像這樣的圖,許多組織將會有幾十甚至幾百個結點。
雖然在圖的有限范圍內注明組件的部署情況是可以頂用的,例如圖1,但圖很快地就變得笨重起來。 圖2則關注于企業(yè)的那些高階部署,因此配置在硬件結點之上的軟件組件的精細的、細節(jié)的東西就不需要顯示出來,你可以在你的CASE工具中處理這些信息,但這并不意味著你需要在圖上顯示它們。
圖2.一個組織的UML部署圖。
一個結點,通常描述成一個立體的盒子,表示一個計算設備,一般是一個單獨的硬件設備,例如一臺電腦,網(wǎng)絡路由器,主機,傳感器,或個人數(shù)字助理(PDA)。 組件,描述為矩形,左側面還伸出兩個較小矩形,這和UML組件圖上使用的符號是相同的,它表示軟件的中間產(chǎn)物,例如文件、框架、或領域組件。
1.用描述性術語命名結點
在圖1中,你可以看到結點都有名稱,例如client、Application Server、Database Server、和Mainframe。 所有的這些術語都需要即刻為組織內的開發(fā)人員所認可,因為這些條款都是他們日常使用的。 保持它的簡單性。
2.僅僅建模重要的軟件組件
雖然圖1包含軟件組件,但它沒有描述每一個軟件組件。 例如,客戶機上很可能還安裝有其他的軟件組件,如操作系統(tǒng)和應用軟件,但那些組件沒有顯示出來,因為它們已經(jīng)離題了。 事實是每個結點也許有幾十甚至幾百的軟件組件配置于其上,你的目標并不是描述所有的軟件組件,而是只需要描述那些對系統(tǒng)的列節(jié)至關重要的組件。如果你需要探究軟件組件間的關系,你應該創(chuàng)建一個UML組件圖作為替代,遵循敏捷建模( AM) ( Ambler 2002)的應用"合適的Artifact"的實踐。
3.為組件一致地應用一致版型
在UML部署圖上為組件應用和UML組件圖中的相同的版型。
4.把可視化的版型應用到結點
圖2使用可視化的版型來描述結點描述結點,例如mobile PC是顯示為一個筆記本,而databases則使用傳統(tǒng)的數(shù)據(jù)庫的圓筒符號來表示。 為UML部署圖上應用可視化版型制定標準是不可能的,一般的經(jīng)驗法則是使用你看得到的適當?shù)募糍N畫。
通信關聯(lián),經(jīng)常稱為連接,被描述為連接結點間的線條。組件間的依賴則被建模成虛線箭頭,這和其他UML圖上使用的符號是一樣的。
1.用版型來注明通信協(xié)議
通信關聯(lián)支持一個或多個通信協(xié)議,每一個都應該使用一個UML版型來描述。 圖1中你可以看到HTTP、JDBC、和web services協(xié)議,他們就是使用了這個方法。表1提供了一個典型的通信關聯(lián)的版型列表,你的組織也許會想開發(fā)自己的特定標準。
表1.通用的版型為通信關聯(lián)
版型 含意
異步 一個異步連接,也許經(jīng)由一個消息總線或消息隊列。
HTTP 超文本傳輸協(xié)議,一個網(wǎng)際協(xié)議。
JDBC Java數(shù)據(jù)庫連接,一套為數(shù)據(jù)庫存取編寫的Java API。
ODBC 開放式數(shù)據(jù)庫連接,一套微軟的數(shù)據(jù)庫存取應用編程接口。
RMI 遠程方法調用,一個Java的通信協(xié)議。
RPC 經(jīng)由遠程過程調用的通信。
同步 一個同步連接,發(fā)送器等待從接收器回來的反應。
web services 經(jīng)由諸如SOAP和UDDI的Web Services協(xié)議的通信。
2.僅僅建模組件間的關鍵性依賴
圖1中配置在應用服務器上的領域組件間的依賴并沒有被建模出來,因為它們和圖并沒有什么關系(而且它們最好是在UML組件圖上建模具體的細節(jié))。 然而,在數(shù)據(jù)庫服務器上的組件間的依賴則被建模出來,因為它有助于展示數(shù)據(jù)庫的訪問。領域組件對數(shù)據(jù)庫的方位是間接的,他們需要通過一個持久性框架,這是通用的架構最佳實踐( Ambler 2001)。 遵循AM的實踐,簡單的描述建模。僅僅建模和手頭的任務相關的信息。