部署圖由節(jié)點(diǎn)以及節(jié)點(diǎn)之間的關(guān)系組成。
部署圖描述的是系統(tǒng)運(yùn)行時(shí)的結(jié)構(gòu),展示了硬件的配置及其軟件如何部署到網(wǎng)絡(luò)結(jié)構(gòu)中。
部署圖通常用來(lái)幫助理解分布式系統(tǒng),一個(gè)系統(tǒng)模型只有一個(gè)部署圖。
部署圖用于可視化的軟件組件部署的系統(tǒng)中的物理組件的拓?fù)浣Y(jié)構(gòu)。
部署圖是用來(lái)描述一個(gè)系統(tǒng)的靜態(tài)部署視圖。
UML 部署圖元素
1、結(jié)點(diǎn)(Node)
結(jié)點(diǎn)是存在與運(yùn)行時(shí)的代表計(jì)算機(jī)資源的物理元素,可以是硬件也可以是運(yùn)行其上的軟件系統(tǒng),比如64主機(jī)、Windows server 2008操作系統(tǒng)、防火墻等。
結(jié)點(diǎn)用三維盒裝表示,如下圖所示:
2、結(jié)點(diǎn)實(shí)例(Node Instance)
結(jié)點(diǎn)實(shí)例的命名格式:Node Instance : node。它與結(jié)點(diǎn)的區(qū)別在于名稱(chēng)有下劃線(xiàn)和結(jié)點(diǎn)類(lèi)型前面有冒號(hào),冒號(hào)前面可以有示例名稱(chēng)也可以沒(méi)有示例名稱(chēng),如下圖:
3、結(jié)點(diǎn)類(lèi)型(Node Stereotypes)
結(jié)點(diǎn)類(lèi)型有:cdrom、cd-rom、computer、disk array、pc、pc client、pc server、secure、server、storage、unix server、user pc,并在結(jié)點(diǎn)的右上角用不同的圖標(biāo)表示,如下圖:
4、物件(Artifact)
物件是軟件開(kāi)發(fā)過(guò)程中的產(chǎn)物,包括過(guò)程模型(比如用例圖、設(shè)計(jì)圖等等)、源代碼、可執(zhí)行程序、設(shè)計(jì)文檔、測(cè)試報(bào)告、需求原型、用戶(hù)手冊(cè)等等。物件表示如下,帶有關(guān)鍵字 artifact 和文檔圖標(biāo)
5、連接(Association)
結(jié)點(diǎn)之間的連線(xiàn)表示系統(tǒng)之間進(jìn)行交互的通信路徑,這個(gè)通信路徑稱(chēng)為連接(Association),如下圖所示,連接中有網(wǎng)絡(luò)協(xié)議:
6、結(jié)點(diǎn)容器(Node as Container)
一個(gè)結(jié)點(diǎn)可以包括其他的結(jié)點(diǎn),比如組件或者物件,則稱(chēng)此結(jié)點(diǎn)為結(jié)點(diǎn)容器(Node as Container)。如下圖所示,結(jié)點(diǎn)(Node)包容了物件(Artifact):
UML 部署圖目的:
部署圖與組件圖密切相關(guān),部署圖是用來(lái)描述軟件組件部署的硬件組件;而組件圖是用來(lái)描述組件和顯示了它們是如何在硬件中部署。
UML的設(shè)計(jì)主要是把重點(diǎn)放在系統(tǒng)的軟件構(gòu)件。但是,這兩個(gè)圖是使用特殊圖表專(zhuān)注于軟件組件和硬件組件。
所以大多數(shù)的 UML 圖是用來(lái)處理邏輯組件,但把重點(diǎn)放在系統(tǒng)的硬件拓?fù)洳渴饒D。
以下是部署圖的目的描述:
可視化系統(tǒng)的硬件拓?fù)洹?/p>
描述用于部署軟件組件的硬件組件。
描述運(yùn)行時(shí)處理節(jié)點(diǎn)。
如何繪制 UML 部署圖?
部署圖對(duì)系統(tǒng)工程師是非常有用。一個(gè)高效的部署圖是非常重要的,因?yàn)樗刂埔韵聟?shù):
性能
可擴(kuò)展性
可維護(hù)性
可移植性
在繪制部署圖前應(yīng)確定以下構(gòu)件:
節(jié)點(diǎn)
節(jié)點(diǎn)之間的關(guān)系
下列部署圖是一個(gè)樣品給訂單管理系統(tǒng)的部署視圖的想法,已經(jīng)表明的節(jié)點(diǎn):
監(jiān)控
調(diào)制解調(diào)器
緩存服務(wù)器
服務(wù)器
假定應(yīng)用程序是一個(gè)基于 Web 的應(yīng)用程序部署在集群環(huán)境中使用服務(wù)器1,服務(wù)器2和服務(wù)器3。用戶(hù)連接到使用互聯(lián)網(wǎng)的應(yīng)用程序??刂屏鲝木彺娣?wù)器的集群環(huán)境中。
所以下面的部署圖已經(jīng)制定考慮到所有上述提到的幾點(diǎn):

在哪里使用部署圖?
部署圖主要用于系統(tǒng)工程師。這些圖用來(lái)描述的物理組件(硬件)以及它們的分布和關(guān)聯(lián)。
為了闡述清楚細(xì)節(jié),我們可以想像的硬件組件/節(jié)點(diǎn)上的軟件組件位于部署圖。
軟件應(yīng)用程序的開(kāi)發(fā)需要復(fù)雜的業(yè)務(wù)流程模型。為了滿(mǎn)足業(yè)務(wù)的需求,一個(gè)軟件應(yīng)用只做到高效是不夠的,還應(yīng)考慮到業(yè)務(wù)是否能夠支持用戶(hù)的不斷增長(zhǎng)以及響應(yīng)的時(shí)間是否夠快等。
軟件應(yīng)用程序可以是獨(dú)立的,基于 Web,分布式,基于大型機(jī)和更多。
使用部署圖可以描述如下:
為了模擬一個(gè)系統(tǒng)的硬件拓?fù)洹?/p>
嵌入式系統(tǒng)建模。
為了模擬一個(gè)客戶(hù)機(jī)/服務(wù)器系統(tǒng)的硬件的詳細(xì)信息。
為了模擬硬件的分布式應(yīng)用程序的細(xì)節(jié)。
正向和逆向工程。
更多建議: