摘 要:? 提出一種基于會話策略的多主體交互協議描述方法。交互協議中的消息用言語動作來表示,這些言語動作被描述為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.