表示-抽象-控制——系统结构模式学习笔记

来源:互联网 发布:主网络和访客网络 编辑:程序博客网 时间:2024/04/30 12:05

表示-抽象-控制(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) 可应用性;