1. 基于構件的動態系統結構
(1)分為應用層、中間層、體系結構層。
(2)應用層處于最低層,包括構件連接、構件接口和執行。可以添加新的構件、刪除或更新已經存在的構件。
a. 構件連接:定義了連接件如何與構件連接。
b. 構件接口:說明了構件提供的服務。
(3)中間層包括連接件配置、構件配置、構件描述以及執行。可以添加版本控制機制和不同的構件裝載方法。
a. 連接件配置:主要是管理連接件及接口的通信配置。
b. 構件配置:管理構件的所有行為。
c. 構件描述:對構件的內部結構、行為、功能和版本等信息加以描述。
(4)體系結構層位于最上層,控制和管理整個體系結構,包括體系結構配置、體系結構描述和執行。可以更改和擴展更新機制,更改系統的拓撲結構,以及更改構件到處理元素之間的映射。
a. 體系結構描述:主要是描述構件以及它們相聯系的連接件的數據。
【主要對體系結構層的行為進行描述】
b. 體系結構配置:控制整個分布式系統的執行,并且管理配置層。
(5)更新過程:
a. 檢測更新的范圍:判斷是局部更新還是全局更新
局部更新作用于需要更新的構件的內部,不影響系統的其他部分。
全局更新影響系統的其他部分,需要發送請求到更高的抽象層。
b. 更新準備工作
如果更新發生在應用層,構件配置器等待參與的進程發出信號,以表明它們處于可安全執行更新的狀態。
如果更新發生在配置層,就需要等待連接件中斷通信,其他構件配置器已完成它們的更新。
c. 執行更新,并告知更新發起者更新的結果
d. 存儲更新,將構件或體系結構所做的更新存儲到構件或者體系結構描述中
(6)CBDSAM局部更新實例:
a. 更新發起者發出一個更新請求,這個請求被送到構件配置器中,構建配置器將分析更新的類型,從而判斷它是對象的局部更新
b. 構件A的配置器發出一個信號給連接件以隔離構件A的通信,準備執行更新
c. 構件A的配置器開始執行更新
d. 更新執行完畢后,構件A的構件描述被更新,并且構件A發送一個消息給連接件B,兩者間的連接被重新存儲起來
e. 將更新結構返回給更新發起者
(7)CBDSAM全局更新實例
a. Server構件配置器收到更新發起者提出的更新請求后,向體系結構配置器提出更新請求
b. 體系結構配置器對更新請求的類型進行分析,判斷是否在更新請求限制范圍內,不在更新范圍內的更新不予執行;如果在更新限制范圍內,體系結構配置器對更新所涉及的連接件和構件發出消息要求它們做好更新準備
c. 準備工作完成后,Client構件配置器和連接件向體系結構配置器返回就緒信息
d. 一切準備就緒后,體系結構配置器通知Server構件進行更新
e. 更新執行完畢后,向Server構件配置器、體系結構配置器和更新發起者通知更新執行完畢并返回更新結果;同時,體系結構配置器通知Client構件和連接件更新結束,可以繼續正常運行