论文部分内容阅读
基于Agent的计算作为一种新的软件工程的范式,在构造复杂的、面向开放网络的、分布式系统中逐渐受到重视。研究人员已经提出了很多面向Agent分析、设计的技术与方法。但是现有方法不易掌握,给拥有应用需求与领域知识的人员进行系统的设计、建模带来困难,影响了多Agent系统(MultiAgent System)在实际软件开发中的普及应用。本文根据grammarware的工程化思想与产生式编程技术,基于JADE,以黑板Agent结构与Agent模版语言(Agent Pattern Language, APL)为基础,实现了一个MAS应用系统开发框架。首先,在Java Agent DEvelopment framework(JADE)上实现基于黑板的Agent结构。一方面利用黑板记录、维护应用系统所涉及的类型、关系等内容,并通过黑板上记录内容的更新反映Agent运行环境的变化,以此来触发、协调Agent中对应不同目标的知识源的运行;另一方面,利用JADE对于Agent生命周期的管理,实现基于黑板的Agent结构在JADE上的启动、停止、服务注册等功能,并利用JADE对于Agent交互的支持,实现黑板Agent的消息处理部件,使得Agent能够与其他Agent进行通信,并利用Agent之间的往来消息更新黑板上的内容,使黑板及时反映出Agent运行的上下文环境。其次,改进了APL的在规划、动作方面的表达,使得当设计人员利用APL对应用场景进行建模时,不仅可以描述场景中需要表达的类型、实例、关系,以及Agent所要达成的目标等内容。此外,还可以按照有穷自动机的形式描述Agent针对不同目标的规划,或者通过描述用于构成规划的动作,使得Agent在运行过程中能够动态的生成规划过程。这些内容最终通过Agent中的解析部件,映射为黑板上的相应内容或Agent运行所需的组件。最后,本文通过一个应用场景说明基于黑板的Agent与APL结合的开发框架如何实现MAS应用系统,包括如何利用APL描述应用场景、如何将APL文档翻译为JADE上可执行代码、Agent对特定目标进行规划的实现过程。通过应用场景的实现可以看到,系统设计人员借助框架的支持,利用APL对应用场景进行建模,而后由基于黑板的Agent系统将APL解析为JADE上的可执行代码,进而利用JADE对于多Agent系统的支持实现MAS自顶向下的开发,从而达到提高应用系统开发效率的目的。