摘 要:? 提出一種基于會話策略的多主體交互協(xié)議描述方法。交互協(xié)議中的消息用言語動作來表示,這些言語動作被描述為WS-Agreement的schema;會話策略則描述了消息傳遞的流程以及交互過程中的上下文信息,如參與者屬性、時間閾值等等,所有這些會話策略組成了一個多主體交互協(xié)議;采用本體描述語言O(shè)WL作為會話策略的表示語言。這種方法使得主體在一個開放、動態(tài)的環(huán)境中可以靈活地選擇交互協(xié)議。
關(guān)鍵詞: 多主體系統(tǒng); 交互協(xié)議; 本體; 會話策略
?
多主體系統(tǒng)MAS(Multi-Agent System)由一組相對自治的主體組成。交互是多主體系統(tǒng)的一個基本特性,使得多主體系統(tǒng)表現(xiàn)出了任何單個主體都不具有的復(fù)雜行為。主體交互的一個非常有效的方式是會話,會話是多主體系統(tǒng)中主體合作活動的基石。為了結(jié)構(gòu)化主體間的會話過程,有關(guān)交互協(xié)議的研究熱情日益高漲。
主體使用結(jié)構(gòu)化主體通信語言ACL(Agent Communication Language)進行通信。許多基于言語動作的ACL已經(jīng)研究出來,如KQML[1]、FIPA ACL[2],但是決定何時使用交互協(xié)議、傳遞什么信息以及如何描述會話結(jié)構(gòu)等問題還是留給了多主體系統(tǒng)的設(shè)計者。對于封閉的多主體系統(tǒng),可以直接編碼,因為系統(tǒng)中用到的交互協(xié)議都可以事先預(yù)料并設(shè)計好。隨著多主體系統(tǒng)理論和實踐研究的日益深入,多主體系統(tǒng)和Internet平臺的融合趨勢日益明顯。在Internet這樣一個開放、動態(tài)環(huán)境中,主體之間的交互是一件復(fù)雜而困難的事情,每個主體對于交互(Interaction)都有著不同的理解和不同的要求。而且,根本無法預(yù)料到所有的交互協(xié)議,因為有很多情況都會產(chǎn)生新的交互協(xié)議,如新實體的加入、新服務(wù)的加入等。顯而易見:任何一個特定的交互協(xié)議都無法適用于所有的場景,滿足所有主體的需求。
針對這一問題,本文提出一種開放多主體系統(tǒng)交互協(xié)議的表示方法,用描述性的語言表示多主體交互協(xié)議。交互協(xié)議中的消息用言語動作表示,這些言語動作被描述為WS-Agreement的schema;會話策略則描述了消息傳遞的流程以及交互過程中的上下文信息,如參與者屬性、時間閾值等,所有這些會話策略就組成了一個多主體交互協(xié)議;采用本體描述語言O(shè)WL作為會話策略的描述語言。因此從形式上,一個主體交互協(xié)議就是一些用OWL語言表示的會話策略。利用這種方法,擔(dān)當服務(wù)提供者角色的主體使用OWL描述并發(fā)布與自己交互的協(xié)議,即若干會話策略;而對服務(wù)請求者的主體來說,只要能夠理解這些基于OWL的會話策略,就可以與之進行交互?;贠WL的描述特性,主體的通信模塊與交互協(xié)議的耦合度大大降低,主體可以根據(jù)自己的需求發(fā)布任何形式的交互協(xié)議,而其他主體可以參加任何形式的交互(只要它能夠理解其他主體的協(xié)議描述語言),不僅極大地提高了靈活性,而且簡化了軟件主體的結(jié)構(gòu)。
1 消息描述
為了定義一個多主體交互協(xié)議,一方面必須定義消息的表示方法,因為消息是交互過程中基本的信息單元。在FIPA的言語動作庫[3]中規(guī)定了一些基本的言語動作,如request、propose、accept、reject等,語義豐富而靈活,能夠支持主體之間的靈活交互。另一方面,WS-Agreement[4]是一種基于XML的語言,具有描述性的特點。因此,本文擴展WS-Agreement的Schema已包括這些言語動作,用這些言語動作表示一個多主體交互協(xié)議中的個體消息。
邏輯上,一個消息的結(jié)構(gòu)為:
Message = Speech Act (sender, receiver, proposal)
Speech Act定義了消息的類型,表達了消息的意圖。言語動作是根據(jù)消息的語義來劃分的,交互協(xié)議就是由這些基本的言語動作組合而成的。sender和receiver表示了這個言語動作的參與者;proposal則是這個言語動作的內(nèi)容,描述了sender對服務(wù)的期望。
可以用擴展WS-Agreement的Schema來表示這些言語動作。例如,offer消息是一個“take-it-or-leave-it”的提議,接收者或者接受這個提議,或者拒絕,而不能回應(yīng)另一個提議。一個offer消息類型可以表示為:
其中,Speech Act規(guī)定了消息的語義;而Wsag:Terms這個tag則封裝了主體交互過程中的一個提議,表達了對服務(wù)的期望。
其他Speech act可以以同樣的方式予以定義。
2 交互協(xié)議描述
在主體交互過程中,為了進行有組織的信息交換,僅僅定義個體消息是不夠的,還必須定義主體交互過程中的消息傳遞流程以及交互的上下文信息,即主體交互協(xié)議。形式上,一個多主體交互協(xié)議就是一個會話的過程,本文采用會話策略來描述這些多主體交互協(xié)議。
會話是多個主體為了達到一定的目標而交換的言語動作序列。為了使會話有意義,會話必須遵守一定的規(guī)約:(1)必須規(guī)定言語動作的交換順序,例如,當收到一個Request消息,可以回應(yīng)一個Accept或者Reject消息;(2)必須規(guī)范會話的上下文信息,如消息的內(nèi)容、通信動作的發(fā)送者和接收者的屬性、時間約束等。而會話策略[5]則是一些描述性的規(guī)約,這些規(guī)約起著約束主體之間消息交換的作用,并且對所有參與者公開。更確切地講,一個會話策略就是一個細粒度的約束集合,針對主體會話的某一特定方面。這些約束是公開的、共享的和標準的,并能以不同的方式組合。不同的會話適用不同的策略集合。當主體為了交互而同意遵守某些會話策略時,也就意味著它們接受這些約束集合來管理它們之間的交互。
策略規(guī)則是策略的基本單元。一個策略規(guī)則表示為參與交互的主體特定條件下被允許(permission)、禁止(prohibition)或強制(obligation)發(fā)送的言語動作,其邏輯結(jié)構(gòu)表示為:
Deontic(Actor,Speech Act,Conditions)
其中,Deontic表示了允許、禁止或強制等概念;Actor是策略規(guī)則的約束對象,Speech Act是被約束對象的動作;Conditions表示Actor能夠發(fā)送Speech Act的前置條件。例如,一個策略規(guī)則“任何一方在收到對方的accept消息后,必須回應(yīng)一個Acknowledge消息”,可以表示為:
Obligation(X, Acknowledge(X, Y, Proposal), Y. Accepted)
其中,X、Y是兩個變量,分別表示Acknowledge這個Speech Act的發(fā)送者和接收者;Y. Accepted表示當前狀態(tài)是Y接受了X的一個提議。
一個會話策略是一個策略規(guī)則的集合,通常對應(yīng)主體交互過程中的某一方面的全部或部分特征,如終止、同步、異常處理,等等;這也符合“一個會話策略就是一個細粒度的約束集合”的概念。所有描述多主體交互過程的會話策略共同定義了一個多主體交互協(xié)議。
一個策略的邏輯結(jié)構(gòu)如下所示:
CP= Operator {r1,r2,…,rn}
其中,Operator是一個邏輯操作符。如果Operator是“All”,則所有策略規(guī)則都生效;如果Operator是“ExactlyOne”,則只有一個策略規(guī)則生效;如果Operator是“OneOrMore”,則至少一個規(guī)則生效;ri是一個策略規(guī)則。
采用本體語言O(shè)WL作為會話策略的描述語言,會話策略相關(guān)的概念被定義為OWL的class,所有class組成一個本體。會話策略上層本體如圖1所示。
?
Policy,即會話策略,定義了對主體交互過程的某些約束。一個Policy可能包含多個策略規(guī)則,并且用“All”、“ExactlyOne”和“OneOrMore”等邏輯操作符組合成這些策略規(guī)則;
一個策略規(guī)則就是一個Deontic concept,定義了特定條件下某個主體被允許(Permission)、禁止(Prohibition)或強制(Obligation)發(fā)出的Speech Act,其邏輯結(jié)構(gòu)是一個“Condition-action”的聲明。一個策略規(guī)則可能具有一個優(yōu)先級屬性,用以解決可能發(fā)生的沖突;而且,Actor可以是一個變量;
Speech Act定義了一個發(fā)送消息的行為: Performative表征了消息的語義,Sender和Receiver表示參與者,Proposal表示消息的內(nèi)容并且由特定的領(lǐng)域本體來描述,而Grounding將這個Speech Act映射到一個具體的用WS-agreement schema定義的消息。根據(jù)具體需要,可以將Propose、Accept、Reject、Inform等具體的言語行為定義為Speech Act的子類。
Condition定義了行動的前置條件,其邏輯形式是一個(Subject,Predicate,Object)的三元組。比如,條件“Mike是電子工程系的學(xué)生”定義為(Mike,StudentOf,EE)。
3 示例:FIPA提議協(xié)議
作為一個示例,用基于本體和會話策略的方法來描述FIPA提議協(xié)議(FIPA Propose Protocol),如圖2所示。
主體Initiator向主體Participant發(fā)送一個Propose消息,而Participant可以回應(yīng)一個Accept或者Reject消息。這三個消息都可以用WS-Agreement schema來定義,如第2節(jié)所述。
對圖1的上層本體進行擴展,將Propose、Accept和Reject三個言語行為定義為類Speech Act的子類。則FIPA提議協(xié)議可以用同步策略和終止策略來表示。
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條策略規(guī)則,用and操作符連接:
(1) 主體Initiator隨時可以給主體Participant發(fā)送Propose消息;
(2) 主體Participant收到Propose消息后必須回應(yīng);
(3) 主體Participant收到Propose消息后可以回應(yīng)Accept消息;
(4) 主體Participant收到Propose消息后可以回應(yīng)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個規(guī)則,用and操作符聯(lián)結(jié):
(1) 主體Participant發(fā)送Reject消息后不能再發(fā)送消息;
(2) 主體Participant發(fā)送Accept消息后不能再發(fā)送消息;
(3) 主體Initiator收到Accept消息后不能再發(fā)送消息,會話過程終止;
(4) 主體Initiator收到Reject消息后不能再發(fā)送消息,會話過程終止。
主體Initiator使用OWL語言描述這兩個會話策略,即描述這個提議協(xié)議(由于篇幅所限,本文不再給出協(xié)議的OWL表示),并發(fā)布出去。任何一個其他主體,只要能夠理解OWL,就可以通過這個提議協(xié)議和Initiator進行交互。
研究人員在多主交互協(xié)議方面已經(jīng)作了大量工作,取得了許多有代表性的階段性成果[6-7]。
隨著多主體系統(tǒng)和互聯(lián)網(wǎng)平臺的融合[8],需要一種全新的方法,在互聯(lián)網(wǎng)這樣一個開放、動態(tài)環(huán)境中描述多主體協(xié)議, 使得主體能夠靈活地參與多種形式的交互。本文用描述性的方法來表示一個主體交互協(xié)議。交互協(xié)議中的個體消息被表示為WS-agreement Schema,交互協(xié)議則被描述為一個會話策略集合,采用描述性的本體語言O(shè)WL作為會話策略的表示語言,將主體的內(nèi)部結(jié)構(gòu)和具體的交互協(xié)議完全解耦合。主體可以自由地選擇、發(fā)布交互協(xié)議,使得主體間的交互具有最大限度的靈活性。
參考文獻
[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]? 趙志崑,盛秋戩,高翔,等. 多主體交互協(xié)議的表示和實現(xiàn)[J]. 計算機工程與應(yīng)用,2004(24):8-11.
[7]? 楊建池,張新宇,黃柯棣. 本體論在Agent 間通信中的應(yīng)用[J]. 系統(tǒng)仿真學(xué)報, 2007,19(6):1199-1201.
[8] ?伍春暉,龔正虎. Web服務(wù)與Agent技術(shù)結(jié)合的研究[J].微處理機, 2006,27(4):96-98.