雖然組件圖專注於代碼模塊的邏輯組織,而UML部署圖架起了通往現實的橋樑。它回答了一個關鍵問題:「這些代碼實際上運行在哪裡?」
此圖是唯一專注於物理運行環境的UML模型。它可視化軟件組件與硬件目標之間的映射關係,展示系統組件如何分布在伺服器、資料庫、移動設備和雲基礎設施中。在雲計算、微服務和物聯網時代,理解這種物理架構比以往任何時候都更加重要。

物理架構的構成
部署圖的主要目標是部署圖展示系統的物理拓撲結構——即運行其上的硬體(節點)和軟件(組件)。
1. 節點:硬體與執行環境
部署圖的基本構建單元是節點。節點代表部署組件以供執行的計算資源。它們以三維方塊(立方體)的形式呈現。
節點主要有兩種類型:
-
設備節點: 這些代表具有處理能力的物理硬體資源。
-
範例: 應用伺服器、資料庫伺服器、手機、物聯網感測器或負載均衡器。
-
-
執行環境節點(執行環境): 這些是運行在設備節點內的基於軟件的容器,用於托管特定類型的組件。它們代表管理已部署組件的軟件層。
-
範例:一個Java虛擬機(JVM)、.NET CLR、Docker容器或網頁瀏覽器實例。
-
2. 組件:可部署的軟件
一個組件 代表軟體元件的具體實體表現。雖然「元件」是類別的邏輯群組,但「實體」是實際安裝到伺服器上的檔案。
實體通常以帶有關鍵字「」的矩形繪製«實體»或角落的小文件圖示。它們通常放置於內部節點內,以顯示它們被部署的位置。
-
範例:
user-service.jar,index.html,database-schema.sql,config.xml,或payment-api.exe.
3. 通訊路徑:連接
節點很少孤立運作。通訊路徑代表節點之間的實體連接或關聯,顯示它們如何交換資訊。
這些以連接兩個節點的實線繪製。關鍵的是,它們通常標註了樣式,以表示所使用的通訊協定或網路類型。
-
範例:
«HTTP/HTTPS»,«TCP/IP»,«JDBC»,«RMI»,或«訊息佇列».

視覺化拓撲
典型的部署圖會講述系統執行時期結構的故事。例如,一個標準的三層式網頁應用程式可能如下所示:
-
客戶端層: 一個
行動裝置(節點)包含一個行動應用程式(實體)。 -
中介層: 一個
網頁伺服器(裝置節點)主機一個Docker 容器(執行環境),其內部包含API 服務.jar(實體)。 -
資料層: 一個
資料庫伺服器(裝置節點)主機一個PostgreSQL實例(執行環境),負責管理使用者資料(實體)。
連接這些節點的線路會標示為«HTTPS»(在行動裝置與網頁伺服器之間)以及«JDBC»(在Web伺服器與資料庫之間)。
為什麼要使用部署圖?
部署圖對DevOps工程師、系統架構師和網路管理員而言,這些圖表是不可或缺的。
-
部署規劃: 它們是釋放管理的最終地圖,明確指出哪些檔案需要送往哪些伺服器。
-
效能分析: 透過視覺化處理的分佈與網路連結,架構師可以識別潛在的瓶頸(例如,單一低功率節點上過多的元件,或頻繁通訊服務之間的慢速網路連結)。
-
安全性建模: 它們有助於識別安全風險,透過標示哪些節點暴露於外部網路(公眾網際網路)以及哪些節點位於防火牆後方隔離。
-
基礎設施即程式碼(IaC)設計: 在現代DevOps中,這些圖表為撰寫Terraform或CloudFormation指令碼以配置雲端資源提供了概念藍圖。
如需關於UML與AI輔助視覺化的更多資訊,請參閱我們的UML資源中心.








