基于本体和会话策略的多主体交互协议描述方法
2009-06-03
作者:姚永雷, 马 利
摘 要:提出一种基于会话策略的多主体交互协议描述方法。交互协议中的消息用言语动作来表示,这些言语动作被描述为WS-Agreement的schema;会话策略则描述了消息传递的流程以及交互过程中的上下文信息,如参与者属性、时间阈值等等,所有这些会话策略组成了一个多主体交互协议;采用本体描述语言OWL作为会话策略的表示语言。这种方法使得主体在一个开放、动态的环境中可以灵活地选择交互协议。
关键词:多主体系统; 交互协议; 本体; 会话策略
多主体系统MAS(Multi-Agent System)由一组相对自治的主体组成。交互是多主体系统的一个基本特性,使得多主体系统表现出了任何单个主体都不具有的复杂行为。主体交互的一个非常有效的方式是会话,会话是多主体系统中主体合作活动的基石。为了结构化主体间的会话过程,有关交互协议的研究热情日益高涨。
主体使用结构化主体通信语言ACL(Agent Communication Language)进行通信。许多基于言语动作的ACL已经研究出来,如KQML[1]、FIPA ACL[2],但是决定何时使用交互协议、传递什么信息以及如何描述会话结构等问题还是留给了多主体系统的设计者。对于封闭的多主体系统,可以直接编码,因为系统中用到的交互协议都可以事先预料并设计好。随着多主体系统理论和实践研究的日益深入,多主体系统和Internet平台的融合趋势日益明显。在Internet这样一个开放、动态环境中,主体之间的交互是一件复杂而困难的事情,每个主体对于交互(Interaction)都有着不同的理解和不同的要求。而且,根本无法预料到所有的交互协议,因为有很多情况都会产生新的交互协议,如新实体的加入、新服务的加入等。显而易见:任何一个特定的交互协议都无法适用于所有的场景,满足所有主体的需求。
针对这一问题,本文提出一种开放多主体系统交互协议的表示方法,用描述性的语言表示多主体交互协议。交互协议中的消息用言语动作表示,这些言语动作被描述为WS-Agreement的schema;会话策略则描述了消息传递的流程以及交互过程中的上下文信息,如参与者属性、时间阈值等,所有这些会话策略就组成了一个多主体交互协议;采用本体描述语言OWL作为会话策略的描述语言。因此从形式上,一个主体交互协议就是一些用OWL语言表示的会话策略。利用这种方法,担当服务提供者角色的主体使用OWL描述并发布与自己交互的协议,即若干会话策略;而对服务请求者的主体来说,只要能够理解这些基于OWL的会话策略,就可以与之进行交互。基于OWL的描述特性,主体的通信模块与交互协议的耦合度大大降低,主体可以根据自己的需求发布任何形式的交互协议,而其他主体可以参加任何形式的交互(只要它能够理解其他主体的协议描述语言),不仅极大地提高了灵活性,而且简化了软件主体的结构。
1 消息描述
为了定义一个多主体交互协议,一方面必须定义消息的表示方法,因为消息是交互过程中基本的信息单元。在FIPA的言语动作库[3]中规定了一些基本的言语动作,如request、propose、accept、reject等,语义丰富而灵活,能够支持主体之间的灵活交互。另一方面,WS-Agreement[4]是一种基于XML的语言,具有描述性的特点。因此,本文扩展WS-Agreement的Schema已包括这些言语动作,用这些言语动作表示一个多主体交互协议中的个体消息。
逻辑上,一个消息的结构为:
Message = Speech Act (sender, receiver, proposal)
Speech Act定义了消息的类型,表达了消息的意图。言语动作是根据消息的语义来划分的,交互协议就是由这些基本的言语动作组合而成的。sender和receiver表示了这个言语动作的参与者;proposal则是这个言语动作的内容,描述了sender对服务的期望。
可以用扩展WS-Agreement的Schema来表示这些言语动作。例如,offer消息是一个“take-it-or-leave-it”的提议,接收者或者接受这个提议,或者拒绝,而不能回应另一个提议。一个offer消息类型可以表示为:
其中,Speech Act规定了消息的语义;而Wsag:Terms这个tag则封装了主体交互过程中的一个提议,表达了对服务的期望。
其他Speech act可以以同样的方式予以定义。
2 交互协议描述
在主体交互过程中,为了进行有组织的信息交换,仅仅定义个体消息是不够的,还必须定义主体交互过程中的消息传递流程以及交互的上下文信息,即主体交互协议。形式上,一个多主体交互协议就是一个会话的过程,本文采用会话策略来描述这些多主体交互协议。
会话是多个主体为了达到一定的目标而交换的言语动作序列。为了使会话有意义,会话必须遵守一定的规约:(1)必须规定言语动作的交换顺序,例如,当收到一个Request消息,可以回应一个Accept或者Reject消息;(2)必须规范会话的上下文信息,如消息的内容、通信动作的发送者和接收者的属性、时间约束等。而会话策略[5]则是一些描述性的规约,这些规约起着约束主体之间消息交换的作用,并且对所有参与者公开。更确切地讲,一个会话策略就是一个细粒度的约束集合,针对主体会话的某一特定方面。这些约束是公开的、共享的和标准的,并能以不同的方式组合。不同的会话适用不同的策略集合。当主体为了交互而同意遵守某些会话策略时,也就意味着它们接受这些约束集合来管理它们之间的交互。
策略规则是策略的基本单元。一个策略规则表示为参与交互的主体特定条件下被允许(permission)、禁止(prohibition)或强制(obligation)发送的言语动作,其逻辑结构表示为:
Deontic(Actor,Speech Act,Conditions)
其中,Deontic表示了允许、禁止或强制等概念;Actor是策略规则的约束对象,Speech Act是被约束对象的动作;Conditions表示Actor能够发送Speech Act的前置条件。例如,一个策略规则“任何一方在收到对方的accept消息后,必须回应一个Acknowledge消息”,可以表示为:
Obligation(X, Acknowledge(X, Y, Proposal), Y. Accepted)
其中,X、Y是两个变量,分别表示Acknowledge这个Speech Act的发送者和接收者;Y. Accepted表示当前状态是Y接受了X的一个提议。
一个会话策略是一个策略规则的集合,通常对应主体交互过程中的某一方面的全部或部分特征,如终止、同步、异常处理,等等;这也符合“一个会话策略就是一个细粒度的约束集合”的概念。所有描述多主体交互过程的会话策略共同定义了一个多主体交互协议。
一个策略的逻辑结构如下所示:
CP= Operator {r1,r2,…,rn}
其中,Operator是一个逻辑操作符。如果Operator是“All”,则所有策略规则都生效;如果Operator是“ExactlyOne”,则只有一个策略规则生效;如果Operator是“OneOrMore”,则至少一个规则生效;ri是一个策略规则。
采用本体语言OWL作为会话策略的描述语言,会话策略相关的概念被定义为OWL的class,所有class组成一个本体。会话策略上层本体如图1所示。
Policy,即会话策略,定义了对主体交互过程的某些约束。一个Policy可能包含多个策略规则,并且用“All”、“ExactlyOne”和“OneOrMore”等逻辑操作符组合成这些策略规则;
一个策略规则就是一个Deontic concept,定义了特定条件下某个主体被允许(Permission)、禁止(Prohibition)或强制(Obligation)发出的Speech Act,其逻辑结构是一个“Condition-action”的声明。一个策略规则可能具有一个优先级属性,用以解决可能发生的冲突;而且,Actor可以是一个变量;
Speech Act定义了一个发送消息的行为: Performative表征了消息的语义,Sender和Receiver表示参与者,Proposal表示消息的内容并且由特定的领域本体来描述,而Grounding将这个Speech Act映射到一个具体的用WS-agreement schema定义的消息。根据具体需要,可以将Propose、Accept、Reject、Inform等具体的言语行为定义为Speech Act的子类。
Condition定义了行动的前置条件,其逻辑形式是一个(Subject,Predicate,Object)的三元组。比如,条件“Mike是电子工程系的学生”定义为(Mike,StudentOf,EE)。
3 示例:FIPA提议协议
作为一个示例,用基于本体和会话策略的方法来描述FIPA提议协议(FIPA Propose Protocol),如图2所示。
主体Initiator向主体Participant发送一个Propose消息,而Participant可以回应一个Accept或者Reject消息。这三个消息都可以用WS-Agreement schema来定义,如第2节所述。
对图1的上层本体进行扩展,将Propose、Accept和Reject三个言语行为定义为类Speech Act的子类。则FIPA提议协议可以用同步策略和终止策略来表示。
3.1 同步策略
Permission (Initiator, Propose (Initiator, Participant, Proposal),-);
Obligation (Participant, Speech Act, Initiator.proposed);
Permission (Participant, Reject-proposal (Participant, Initiator, Proposal), Initiator.proposed);
Permission (Participant, Accept-proposal (Participant, Initiator, Proposal), Initiator.proposed);
这个策略包括4条策略规则,用and操作符连接:
(1) 主体Initiator随时可以给主体Participant发送Propose消息;
(2) 主体Participant收到Propose消息后必须回应;
(3) 主体Participant收到Propose消息后可以回应Accept消息;
(4) 主体Participant收到Propose消息后可以回应Reject消息。
3.2 终止策略
Prohibition (Participant, Speech Act, Participant.rejected);
Prohibition (Participant, Speech Act, Participant.rejected);
Prohibition (Initiator, Speech Act, Participant.rejected);
Prohibition (Initiator, Speech Act, Participant.accepted);
这个策略同样包含4个规则,用and操作符联结:
(1) 主体Participant发送Reject消息后不能再发送消息;
(2) 主体Participant发送Accept消息后不能再发送消息;
(3) 主体Initiator收到Accept消息后不能再发送消息,会话过程终止;
(4) 主体Initiator收到Reject消息后不能再发送消息,会话过程终止。
主体Initiator使用OWL语言描述这两个会话策略,即描述这个提议协议(由于篇幅所限,本文不再给出协议的OWL表示),并发布出去。任何一个其他主体,只要能够理解OWL,就可以通过这个提议协议和Initiator进行交互。
研究人员在多主交互协议方面已经作了大量工作,取得了许多有代表性的阶段性成果[6-7]。
随着多主体系统和互联网平台的融合[8],需要一种全新的方法,在互联网这样一个开放、动态环境中描述多主体协议, 使得主体能够灵活地参与多种形式的交互。本文用描述性的方法来表示一个主体交互协议。交互协议中的个体消息被表示为WS-agreement Schema,交互协议则被描述为一个会话策略集合,采用描述性的本体语言OWL作为会话策略的表示语言,将主体的内部结构和具体的交互协议完全解耦合。主体可以自由地选择、发布交互协议,使得主体间的交互具有最大限度的灵活性。
参考文献
[1] GENESERETH M R, KETCHPEL S P. Software agents[J], Comm. of the ACM, 1994, 37(7): 49-53.
[2] FIPA. FIPA agent communication language specifications. http://www.fipa.org/repository/aclspecs.html, 1998.
[3] FIPA. FIPA communicative act library specification.www.fipa.org/specs/fipa00037/SC00037J.pdf, 2002.
[4] ANDRIEUX A, CZAJKOWSKI C, DAN A, et al. Web services agreement specification(WS-Agreement), June 29th 2005.
[5] GREAVES M, HOLMBACK H, BRADSHAW J. What is a conversation policy[C]. Autonomous Agents ’99 Workshop on Specifying and Implementing Conversation Policies,1999.
[6] 赵志崑,盛秋戬,高翔,等. 多主体交互协议的表示和实现[J].计算机工程与应用,2004(24):8-11.
[7] 杨建池,张新宇,黄柯棣. 本体论在Agent 间通信中的应用[J]. 系统仿真学报, 2007,19(6):1199-1201.
[8] 伍春晖,龚正虎. Web服务与Agent技术结合的研究[J].微处理机, 2006,27(4):96-98.