主要特征

1 分布式计算平台

计算技术发展到今天,已经进入分布式计算时代,我们对分布式计算也不再陌生。分布式计算允许应用程序要素在网络的不同的硬件平台上运行。

MAGE主体平台是一个分布式计算平台,可以分布在不同的主机上(假定它们可以通过RMI进行连接)。

 现在的分布式对象模型主要有DCOM、CORBA和RMI。要使用这些对象模型,一方面要求程序员了解相关技术细节,另一方面使用某一模型构建的软件很难与使用其他模型构建的软件进行交互。

MAGE分布式计算平台构建在Java RMI之上,隐藏底层实现细节,呈现给用户的是统一的分布式计算环境。用户可以像使用一台电脑那样使用整个MAGE分布式计算环境,可以在其上方便地搭建自己的分布式应用。

2 多种软件重用方案

现在软件工程界的重要研究方向之一是如何加速软件开发速度以及提升软件产品的品质,所以近几年来软件工程师及学术界一直尝试着找出一些有效又合理的方法来满足上述的需求;其中,"软件重用"以俨然成为大家所认同的方法之一。软件重用之所以可行,它所依据的基础既是架构于一些以下的观念上面:

●无须重新开发已完成的成果

●提高可靠度及降低风险

●有效缩短开发时间及成本

由上述观点来看,软件重用具备大多数开发软件过程的优势,可有效地解决现今发展软 件时所面临的一些问题,也因此成为MAGE要解决的主要问题之一。

为了对已有的主体软件和非主体软件进行方便的重用(不管这些软件采用何种语言编码),MAGE提供了三种软件重用方案。

嵌入式:即通过Java类提供的软件模块。

若能力来自于某个已申明的外部对象,则直接调用该对象内对应的方法。否则,即能力来源于某个类,则先创建该类的一个实例(一个临时对象),然后调用对应的方法。

外挂式:主要指外部可执行应用程序。

直接执行该可执行程序,同时截获该程序的标准输出流。程序执行结束,最后输出的数据将作为外部程序的返回结果。

动态连接式:通过动态连接库方式连接的软件模块。

首先将该能力所基于的动态连接库预载入内存,然后申明对应的方法。这样就可以直接调用该方法了。

一般而言,软件重用按照重用粒度的大小可分为下面几种:

●应用系统再利用

●子系统再利用

●组件再利用

●函数再利用

可以看出,MAGE的三种软件重用方案完全支持不同层次的软件重用,给应用程序员提供了最大的灵活性。

3 多种主体生成方案

MAGE是面向主体的软件开发环境,主体是其中的基本要素。用户在搭建具体应用时,首先按照面向主体的设计思想划分系统中不同的角色以及它们之间的交互关系,然后生成相应的主体,封装各自具体的行为,提供所需服务。因此,主体生成在之中起到至关重要的作用,也是其中的难点。基于其重要性和复杂性,MAGE提供了多种主体生成方案供程序员灵活使用:

编码直接扩展Agent类

程序员直接继承MAGE Agent类,添加应用相关的行为,构建系统所需主体。该方案建议在从头构建一个主体时采用。

主体描述语言ADL

采用第一种主体生成方案对程序员有一定的要求,即要求程序员懂得Java语言,又要求对MAGE Agent的公共接口有一定的了解,这势必加重程序员的负担。可不可以用户对想要生成的主体给个大致的描述,MAGE系统自动生成哪?这就是我们引入主体描述语言的初衷。

主体描述语言用来定义主体的相关属性,如名字、局部地址、能力、及行为模式等。主体描述语言是一种类自然语言,语法简单,描述能力强。应用程序员通过使用这种语言,可以描述想要生成的主体的各种特性,然后MAGE按照描述,自动生成所需主体,从而大大减轻程序员负担。该方案建议在进行软件重用时采用,程序员可以对重用的软件进行描述,从而方便地集成到MAGE中。

克隆

在一个应用系统中,可能需要多个具有相同或相似功能的主体。这时程序员可以生成一个主体,然后克隆任意多个需要的主体。这是运行时的主体生成方案,而不是开发时的主体生成方案。

4 面向主体的图形化软件设计方法

一个多主体系统由各种各样的主体组成,它们按照目的、职责、所能提供的服务等的不同分为不同的角色。角色由主体模型进行刻画。主体模型描述了不同角色之间的类层次关系。另外,MAGE中还采用交互模型来刻画各个角色之间的交互、控制关系。

MAGE中提供了面向主体的图形化软件设计工具:XMIDE。它帮助用户设计系统中不同的角色,并让用户方便地建立各个角色之间的交互关系,最终完成整个设计工作。

XMIDE1.0版本在的输出是主体描述语言ADL。如前所述,MAGE使用ADL可以方便生成主体,构建多主体系统。

下图5是XMIDE的设计界面。

5 开放的环境 FIPA兼容的主体平台

MAGE不是一个孤立的环境,它完全遵循FIPA规范设计,是与FIPA规范兼容的主体平台。FIPA规范的目的是使得主体平台具有最大的语义交互性。因此,MAGE平台可以与其他遵循FIPA规范的平台进行无障碍通信,利用彼此提供的服务完成自身的任务。其中,我们的MAGE连接到AgentCities是个很好的说明。

AgentCities是欧共体关于主体研究的一个组织,创建于2001年10月,其主要目的就是将世界上的各主体平台连接起来,每个主体平台中包含各种类型的主体,构成为一个"主体城市",在不同平台之间可以进行通信,并提供各种服务。它主要针对主体技术和服务进行实验性研究,为主体研究者们创建了一个测试平台与资源共享平台。现在已经有20多个国家与地区建立了与AgentCities的连接,我们的MAGE是在2002年4月与之连接成功(平台名为Peking.AgentCities.net),是国内唯一与之相连接的平台,亚洲只有我们北京(Peking)与日本仙台(Sendai)两个主体平台。

    图6是MAGE在Agentcities上的允许情况。

也可参考连接:http://www.agentcities.net/globalapd.jsp

6 图形用户界面 强大的管理功能

    可以从一台主机对整个主体平台进行管理。提供的管理功能有:Start New Agent、Suspend、Resume、Migrate Agent、Clone Agent、Kill Agent、Kill Container、Wait、Wake Up、Send Message、Install a new MTP、Uninstall a MTP、View AP Description、Manage Installed MTPs、Add Platform via AMS AID、Add Platform via URL、Refresh AP Description、Remove Remote Platform、Refresh Agent List、Close RMA Agent、Exit this Container、Shut Down Agent Platform,另外还提供了启动各种工具的功能。图7展示了MAGE图形用户界面。

7 调试工具

现在的应用系统越来越复杂,其调试工作也日益困难。为了支持多主体应用复杂困难的调试工作,MAGE提供了一些调试工具供程序员使用。

Sniffer Agent基本上是一个FIPA兼容的主体,它带有嗅探的功能。当用户决定探测一个主体或一组主体时,与之相关的每条输入和输出消息都被追踪并被显示在sniffer GUI上。用户可以查看每条消息并把它存到磁盘上。用户也可以存储所有被追踪的消息并在以后从文件中导入进行分析。Sniffer界面如图8所示。

工具DummyAgent允许和MAGE主体按照习惯方式进行交互。Dummy GUI允许用户组成和发送ACL消息,并维持发送和接收消息的列表。用户可以检查该列表,每条消息可以详细查询,甚至可以编辑。另外,消息列表可以存储到磁盘,供以后检索。可以在需要的时候启动多个DummyAgent的实例。DummyAgent界面如图9所示。

8 目录服务器

    MAGE中每个主体对外界都表现为具有一定能力,提供一定的服务。那么为了方便高效地使用这些服务,首先就要对它们进行合理地组织、管理。MAGE中的目录服务器DF就是提供这样的黄页服务。DF支持的操作有:查看、注册、注销、修改、搜索以及联盟。DF界面如图10所示。

9 方便高效的消息传输

MAGE系统内部采用内部消息传输协议IMTP和消息分发相结合的消息传输方式。传输的内容是FIPA-ACL格式的消息。MAGE完全屏蔽了底层实现细节,用户只要设置消息中各个槽的值,然后发送即可;而接收只是很简单的从消息队列中取而已。而且MAGE还提供了多种不同的消息接收模式,提供了消息模板匹配,供应用程序员使用。

利用MAGE图形化界面可以方便地组合并发送消息,如下图11:

10 MAGE丰富的行为模板 主体行为调度模型

为了帮助程序员开发主体,MAGE封装了主体的公共特性。程序员只要添加应用相关的行为,就可以建造丰富多样、具有不同行为的主体。行为模型支持多个并行、并发的主体活动的执行。为了帮助程序员方便灵活地创建各种各样的行为,MAGE提供了丰富的行为模板。

每个主体中都有一个调度器,它隐藏于主体内核中,开发者是不可见的,对主体任务队列中所有可用行为循环执行非抢占调度策略。

图12展示了各种不同行为模板的层次关系。

11 主体应用模板AAP及其组织管理

MAGE2.0的设计初衷是能够方便地对各种应用进行集成。为了方便地组建各种应用系统,MAGE提供了一些主体应用模板和基本的主体应用框架。

主体应用模板是开发人员编制的应用程序,适合于特定的领域。应用对象为用户完成特定的工作,如金融决策支持、制造管理决策、保险业务、税收决策支持、渔业资源预测、电子商务、远程教学等。

主体应用框架提供高层的、面向应用的共享主体集合,如面向对象推理主体、产生式推理主体、基于范例推理主体、约束推理主体、数据库知识发现主体、神经网络主体、数据库搜索主体、模型库主体、多媒体信息浏览主体、信息检索主体、图象检索主体、计算机辅助教学主体等,可以用来组建应用系统。

AAPM叫主体应用模板管理(Agent Library Management),就是对主体应用模板进行组织和管理,构成一个应用搭建环境。用户可以根据构件来生成主体,可以根据主体应用框架构建主体应用模板,也可以直接根据主体应用模板来生成具体应用。MAGE提供很多工具对AAPM进行有效的支持。

图13和图14分别展示了AAP管理图形界面和主体内部具体信息。

12 FIPA交互协议库

    为了方便应用程序员搭建应用,MAGE实现了基本的FIPA标准交互协议。FIPA指定了一组标准交互协议,可用来作为建造主体会话的标准模板。对主体间每次会话,MAGE都分为发起角色(开始会话的主体)和反应角色(在被联系后参与会话的主体)。MAGE根据大多数FIPA交互协议为会话中的两个角色都提供了可用的行为类。

13 MAGE系统基本行为的自动化

    MAGE自动化了主体一些日常行为(比如到AMS的注册、注销等),使得应用程序员不必关心这些,而把注意力集中到应用相关的区域,比如应用相关行为的搭建,应用主体的搭建等,这样在很大程度上减轻了应用程序员的负担。

14 其他

    MAGE在支持应用程序员开发应用方面还有很多的特色,比如支持平台内主体的移动、支持用户定义的内容语言和本体、允许外部应用启动自主主体的进程内接口等,这里不再一一介绍。



附件下载: