楊迪
摘要:面向Agent的方法是一個迅速發展的研究領域。該方法的運用對信息系統的分析、設計與實施具有十分重大的意義。本文將對面向Agent技術的理論基礎進行闡述,分析這種技術適用于信息系統開發過程的原因,并介紹幾種面向Agent分析設計的方法。
關鍵詞:Agant Gaia面向Agant方法
一、幾種面向Agent的分析與設計方法
(一)AAII方法
AAIl方法主要利用面向對象的方法論,并增加基于Agent的概念。AAII方法論提出了外延模型和內涵模型。外延模型表示系統級的觀點:模型中主要關心Agent和Agent之間的關系,而并不關心Agent的內涵,即它們是如何構造的或它們做什么。相反,內涵模型主要關心Agent的內涵:它們的信念、愿望和意圖(BDI)。
AAII方法論就是對上面所述模型進行反復修正、迭代與精化。其主要步驟如下:
1.識別應用領域中有關的角色,并在此基礎之上,研究Agent類的層次結構;2.識別與每個角色相關的責任、角色要求和提供的服務,然后確定與每個服務相關的目標;3.對每個服務,確定與之相關的交互及每個交互的前提要求與上下文背景;4.確定系統的信念結構——每個交互和目標對信息的需求。
(二)Agent UML
統一建模語言(UML)是由面向對象的分析與設計的三個主要策劃者(Grandy Booch,James Rumbaugh和Ivar Jacobson)提出的,為建模開發的面向對象系統的一種單一標記語言。UML本身并不是方法論,它是系統文檔模型語言,與UML相關的方法論是著名的理性統一過程。
UML是面向對象建模的事實上的標準,被人們所廣泛接受。OMG(Object Management Group)和FIPA(Foundation for Intelligent Physical Agents)共同提出AUML,用以描述多Agent的交互機制,該建模規范是UML面向Agent擴展的子集。
(三)Gaia方法
Gaia方法論的企圖是使分析人員系統地從需求的描述,走向可以直接實現的詳細設計。在應用Gaia時,分析人員從抽象逐步走向越來越具體的概念。每前進一步都會引入更多的實現偏好。并縮小需要實現的系統的可能空間,以滿足初始的需求描述。Gaia借鑒了許多面向對象分析和設計的術語和標記法。然而,將這些方法應用到面向Agent的開發中,不是簡單自然的嘗試,而是提供了一組與Agent的說明有關的概念。通過這些概念,可以理解一個復雜系統并對它進行建模。特別地,Gaia鼓勵開發者將基于Agent系統的實現視為組織設計的過程。
二、幾種面向Agent的分析與設計方法對比
通常來說,信息系統的分析與設計問題可以分為總體分析(需求定義)、總體設計與詳細設計三個階段,不同的方法論所對各個階段所關注的程度也不同。
Gaia方法論基本涵蓋了所有三個階段,但在詳細設計階段略有欠缺;AAII方法論在需求確定以后,直接圍繞Agent的模型開始分析與設計,基本沒有覆蓋到系統分析階段;Agent UML由于沿用了UML的模型規范,對詳細設計階段有最為詳實的描述,已基本接近了系統的具體實現。在選取不同方法對信息系統進行分析與設計時,我們也可以考慮綜合使用多種方法,使我們的方法能覆蓋從系統分析到具體實現的所有階段。
三、適用范圍與缺陷
(一)面向Agent技術的適用范圍
雖然面向Agent技術在對一些信息系統進行分析與設計中發揮了很大作用,但這種技術并不是普適的,有許多因素指向面向Agent技術的適用范圍。
1.Agent是自然的比喻;2.數據、控制或專長的分布;3.遺留系統
(二)面向Agent技術的缺陷
我們主要考慮由于使用面向Agent技術后給復雜系統的發展帶來的困難,因此我們集中分析面向Agent技術固有的、本質上的缺陷:
1.交互的形式與結果本質上是不可預測的;
2.由于極有可能出現涌現行為,系統整體的行為也是難以預測的。
首先,關于交互的形式、對象、時機與目標的決策都是實時的,它與Agent的內部狀態、Agent對環境的認知(或許還包括相近的Agent的狀態)以及當時的組織背景有著復雜的依賴關系。將這些多樣的因素混雜到一起意味著預測系統的交互是極其困難的。其次,在交互開始時提出的請求與最終交互產生的結果之間可能存在很大的變化。由于Agent對自己的選擇有自治權,這使初始的要求可能完全被滿足,也可能完全被拒絕,或者通過又一系列交互后做出某些改動,簡而言之,無論是交互的性質還是結果都不可能在最開始的時候就確定下來。
在開發特定的系統或應用時,設計者們可以通過嚴格規范組織結構、限制Agent交互的性質與范圍來回避上面提到的缺陷。然后,這些規定也制約了面向Agent技術發揮它本具有的功效。如何解決這個兩難的問題,還需要學者們做更深入的研究。endprint