反应能力:Agent可以感知环境,并可以对环境发生的变化以及时的方式做出反应,以满足它们的设计目标。
预动能力:Agent通过主动发起可以表现出目标引导的行为,来满足它的设计目标。
3.2 多Agent系统
单个的Agent的作用是非常有限的,目前应用比较广泛的是通过多个Agent进行交互来实现某一目标的多Agent系统(MAS)。
Jennings(2000)描述了一个标准的多Agent系统结构:系统包含一些Agent,它们通过通信互相交互。这些Agent可以在环境中工作,不同的Agent有不同的作用范围,表示它们可以控制、至少是影响环境的不同部分。在有些情况下,影响的范围可能会重叠,而影响范围重叠的事实会产生Agent之间的依赖关系。Agent同样可以通过其他关系联系起来,比如一个Agent是另外一个Agent的“老板”。
由于多个Agent之间有依赖关系,因此每个Agent应该具有信念、愿望、意图等属性,并通过某种理性的平衡策略来交互,从而解决问题。
4 利用Agent实现数据库异构消解
利用Agent实现数据库异构消解的具体做法是:在原来的MDBS体系结构中的MDBS管理层中引入处理与LDB交互,并能互相通信的Agent。Agent的功能有两大部分:一是接收MDBS的命令与LDB进行交互;二是与系统中的其他Agent交互,包括传递信息并将处理结果转化成MDBS能够识别的统一格式的文档。由于多个站点的局部数据库是不同的,因此需要在MDBS管理层中设置多个Agent,每个Agent负责与一类数据库进行交互,如:Agent_Oracle负责与Oracle数据库进行通讯,如果有多个LDB采用Oracle数据库,则这些站点均与同一个Agent_Oracle进行通讯,同样Agent_SQL负责与SQL数据库进行通讯。由此,MDBS可以改成图2所示的结构:
这种异构消解方式的可行性在于:
(1) 由于MDBS连接的LDB的数量是不同的,如果在一个MDBS连接多个LDB的情况下,为每一个LDB设置一个Agent负责通讯和协商,成本明显比本文描述的方式要大,而且由于每个Agent位于各自的局部站点上,不利于Agent之间的交互。在MDBS层为每一类数据库设置一个Agent可以大大减少Agent的数量,而且易于实现Agent之间的通信。在构造多数据库系统时,可以根据具体的需要配置Agent,并且由于一类数据库对应一个Agent,这样有利于Agent的维护和功能升级。

图2 带有Agent的MDBS体系结构图
(2) 由于是Agent负责于各LDB进行交互,所以MDBS可以屏蔽各局部数据库系统异构的操作环境和语义表示,不用干预LDB的工作。
(3) 由于Agent可以独立的、主动的从环境 (这里指MDBS) 中获取信息,因此MDBS可以使用一种统一的语言,而不必关心与不同的Agent进行交互的问题。
(4) 由于多Agent系统可以通过某种机制进行协商使系统的总体收益最大化,减少了人为的优化工作。
(5) 多个Agent之间的交互可以使来自不同类型数据库的数据形成统一的可以被DMBS识别的文档。
(6) 由于Agent不光有行为,还可以保存数据,所以对分布式数据库子事务的提交和协商非常有利。
5 总结
本文通过在多数据库系统中的MDBS层为每一类数据库设置一个Agent,并由Agent来实现DMBS与各LDB的交互及不同模式的数据的统一,从而实现了异构数据库的消解。并论述了该方法的可行性。
参考文献
[1] 贾焰,王志英,韩伟红,李霖等. 分布式数据库技术[M]. 国防工业出版社,2001.
[2] Michael Wooldridge. An Introduction to MultiAgent Systems[M]. John Wiley & Sons,Inc. 2002.
[3] 萨师煊,王珊. 数据库系统概论[M]. 高等教育出版社,2001.
[4] 周彩兰. 移动Agent技术在分布式数据库系统中的应用[J]. 武汉理工大学学报,2005,27(2):85-92.
[5] 达飞鹏,孟广猛. 分布式数据库异构消解研究[J]. 计算机工程与应用,2004,187-190.
[6] 邵佩英. 分布式数据库系统及其应用[M]. 科学出版社,2005.
[7] 俞大昭. 基于分布式数据库的移动Agent安全体系架构[J]. 计算机工程与设计,2004,25(2):246-251.