表示-抽象-控制(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) 可應用性;
控制系統設計 非線性控制系統設計
控制設計的目標可以敘述如下 對於給定的被控物理系統和系統期望性態的規範,構造反饋控制規律,使得系統呈現出期望的性態。兩類基本的非線性控制問題 非線性調節和非線性跟蹤 非線性控制所期望的性態 構造非線性控制器的基本問題 可利用的非線性控制器設計方法。1.1.鎮定問題 漸近鎮定問題 給定由方程 描述的非...
交通控制系統
設計要求 用vhdl語言設計乙個由一條主幹道和一條支幹道的匯合點形成的十字交叉路口的交通燈控制器,要求如下 1 主 支幹道各設乙個紅 綠 黃指示燈,led顯示 2 主幹道處於常允許通行狀態,支幹道有車來的時候才允許通行 主幹道允許通行時亮綠燈,支幹道紅燈。支幹道允許通行時亮綠燈,主幹道亮紅燈 3 主...
版本控制系統
linux一直痛恨的cvs及svn都是集中式的版本控制系統,而git是分布式版本控制系統,集中式和分布式版本控制系統有什麼區別呢?1 集中式版本控制系統 代表 svn cvs 版本庫是集中存放在 伺服器的,而幹活的時候,用的都是自己的電腦,所以要先從 伺服器取得最新的版本,然後開始幹活,幹完活了,再...