表示-抽象-控制——系統結構模式學習筆記

熊貓夜未眠發表於2011-09-21

原文連結:enter link description here 作者:chgaowei

表示-抽象-控制(PAC)體系結構模式以合作agent的層次形式定義了互動式軟體系統的一種結構。每個agent負責應用程式功能的某一特定方面,並且有表示,抽象,控制三個元件構成。這種細分將agent的人機互動部分和與其功能核心和它與其他agent的通訊分割開來。

1. 例子

一個簡單的有比例表示的政治選舉系統。

2. 語境

在agent的協助下開發一個互動式應用程式。

3. 問題

在這種寫作的agent體系結構中,為某一特定任務指定一個agent,所有的agent提供所有系統的功能。

1) agent通常維護他們自己的狀態和資料;

2) 由於他們各自的人機互動常常差別較大,互動agent提供他們各自的使用者介面。

3) 系統隨時間變化,他們的表示特性特別易於變化。

4. 解決方案

以PAC agent樹狀層次結構構建互動式應用程式。應有一個頂層agent,幾個中間層agent,多個底層agent。每個agent分別都負責應用功能的某一特定方面,並且由抽象,控制,表示三個部分(元件)構成:(?為什麼需要這麼多的agent,可以理解為一個模組嗎?)。

1) 表示元件提供PAC agent的可視行為。

2) 抽象元件維護了構成agent基礎的資料模型,並提供對這些資料進行操作的功能。

3) 控制元件連線表示與抽象元件,並且負責與其他的PAC agent通訊。

頂層的agent提供系統的核心功能。

底層的agent表達一些獨立語義概念。使用者可以基於這些概念進行工作,如:電子表單和圖表。

中層的agent表達了底層agent的組合或底層agent之間的關係。

5. 結構

1、頂層agent

它應該是整個系統的核心部分。它維護了整個系統的全域性資料模型。

1) 抽象元件負責維護整個系統的全域性資料模型。

2) 表示元件通常沒有什麼實際的用處。

3) 控制元件的功能包括:為底層agent提供服務以操作全域性資料;維護agent的層次結構;儲存使用者與系統的互動資訊:(?為什麼在這裡儲存)

2、底層agent

底層agent給出了應用領域的一個具體語義概念(比如,柱狀圖)。

1) 表示元件給出了對應於語義概念的一個具體檢視。並儲存了檢視的資訊。

2) 抽象元件的功能和頂層agent抽象元件功能類似,負責維護agent的資料,不同的是,這些資料時這個agent私有的。

3) 控制元件負責表示元件和抽象元件的通訊,避免他們的直接依賴。另外,負責和更高層的agent進行通訊。

3、中層agent

作用是合作與協作。用於當一個複雜物件由多個底層agent構成,它維護這多個底層agent。

另外一個作用是維護底層agent之間的一致性。例如,協調相同資料的多個檢視。

抽象元件維護他的特有資料,表示元件實現了它的使用者介面,控制元件具有負責和其他agent通訊。

6. 動態特性

主要描述了兩個動態特性:

1) 使用者呼叫一個新的圖形。檢視協調agent向圖形agent傳送open請求;圖形agent控制元件收到請求,並且向頂層agent申請資料;頂層agent控制元件收到請求後,通過抽象元件獲取資料,並返回給圖形agent控制元件;圖形agent控制元件將資料傳送給抽象元件;抽象元件儲存資料;控制元件呼叫表示元件生成圖形;

2) 使用者輸入一個資料。使用者通過電子表單輸入資料;電子表單的控制元件間資料傳送至頂層agent;頂層agent控制元件收到資料,通知抽象元件更新資料;抽象元件通知控制元件更新所有依賴於資料的agent;控制元件通知協調程式agent。

7. 實現

1) 定義一個應用模型。

A. 系統應提供哪些服務;

B. 哪些元件提供這些服務;

C. 元件間關係如何;

D. 如何協作;

E. 各元件對什麼資料進行操作;

F. 使用者如何與軟體進行互動;

2) 為組織pac 層次定義一般策略。當一組agent依賴於一個agent是,把這個agent看成是這組agent的根。選擇一個合適的層的深度,過深或過淺均不好。

3) 明確說明頂層agent。這是整個系統的核心。

4) 明確說明底層agent。這是使用者可操作和觀察的最小單元。

5) 明確說明系統服務的底層agent。比如,通訊agent,錯誤處理agent。

6) 明確說中間agent。包括兩種,一種負責協作,一種負責組合。

7) 從人機互動中分離核心功能。

8) 提供外部介面。

9) 連線各層次。

8. 效果

1) 事務分離;

2) 支援變化和擴充套件;

3) 支援多工;

不足:

1) 增加複雜性;

2) 負責的控制元件;

3) 效率;

4) 可應用性;

相關文章