摘 要:針對(duì)面向agent軟件開(kāi)發(fā)方法普遍缺乏對(duì)多agent系統(tǒng)軟件體系結(jié)構(gòu)的描述的問(wèn)題,基于UML 2.0規(guī)定的兩種擴(kuò)充方式,在UML元模型的基礎(chǔ)上增加了描述多agent系統(tǒng)和軟件體系結(jié)構(gòu)兩個(gè)方面特征的建模元素,并用八個(gè)視圖對(duì)多agent系統(tǒng)的軟件體系結(jié)構(gòu)進(jìn)行描述,最后通過(guò)實(shí)例說(shuō)明了該方法適用于多agent系統(tǒng)軟件體系結(jié)構(gòu)的構(gòu)造。
關(guān)鍵詞:多agent系統(tǒng); 軟件體系結(jié)構(gòu); 統(tǒng)一建模語(yǔ)言; 元模型; 多視圖
中圖分類號(hào):TP311文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2009)09-3384-04
doi:10.3969/j.issn.1001-3695.2009.09.052
Research on description ofmulti-agent systems’ softwarearchitecture based on UML
GUO Feng ZHANG Meng2
(1. School of Information Engineering, North China University of Technology, Beijing 100041, China; 2. Graduate School, Chinese Academy of Sciences, Beijing 100080, China)
Abstract:Now the agent oriented methods appearing at present ignored the researches on the multi-agent systems’ software architecture. To address this issue, based on the two extension mechanisms of UML 2.0 added new model elements by combining the characters of agents and software architecture, presented eight views for describing the software architecture of multi-agent systems. At last an example proves this model.
Key words:multi-agent systems; software architecture; UML; metemodel; multiview
0 引言
近十年來(lái),面向agent的軟件工程的研究非常活躍并取得了一系列的進(jìn)展,但是目前面向agent的軟件工程仍然處于很不成熟的階段。文獻(xiàn)[1]提出了目前面向agent軟件工程研究在基礎(chǔ)理論、標(biāo)準(zhǔn)化、關(guān)鍵技術(shù)等方面存在的一系列挑戰(zhàn)性的問(wèn)題,其中特別指出現(xiàn)階段有關(guān)多agent系統(tǒng)軟件體系結(jié)構(gòu)方面的研究比較薄弱。
目前關(guān)于多agent系統(tǒng)體系結(jié)構(gòu)的研究主要集中在agent個(gè)體結(jié)構(gòu)、組織結(jié)構(gòu)與實(shí)現(xiàn)結(jié)構(gòu)方面。Agent個(gè)體結(jié)構(gòu)主要從智能的角度對(duì)agent個(gè)體的組成結(jié)構(gòu)進(jìn)行研究,典型的是慎思結(jié)構(gòu)、反應(yīng)結(jié)構(gòu)和混合結(jié)構(gòu)三種類型的agent個(gè)體結(jié)構(gòu)[2];組織結(jié)構(gòu)從需求分析的層面研究多agent系統(tǒng)作為一個(gè)社會(huì)性組織的組成結(jié)構(gòu)[3,4];實(shí)現(xiàn)結(jié)構(gòu)如FIPA體系結(jié)構(gòu)[5]、RETSINA(reusable task structure based intelligent network agents)[6]等體系結(jié)構(gòu)模型,主要從系統(tǒng)實(shí)現(xiàn)的層面研究系統(tǒng)的組成。在這些研究中,雖然也采用結(jié)構(gòu)的概念描述了多agent系統(tǒng)結(jié)構(gòu)方面的特征,但是實(shí)現(xiàn)結(jié)構(gòu)和個(gè)體結(jié)構(gòu)的描述太注意細(xì)節(jié),組織結(jié)構(gòu)限于社會(huì)性的描述,而軟件體系結(jié)構(gòu)是對(duì)整個(gè)系統(tǒng)從不同角度進(jìn)行的全面的、概略的描述。目前軟件體系結(jié)構(gòu)在軟件開(kāi)發(fā)過(guò)程中的重要性已經(jīng)獲得充分的認(rèn)識(shí),缺乏軟件體系結(jié)構(gòu)的研究會(huì)使得多agent系統(tǒng)主要用于實(shí)驗(yàn)性、學(xué)術(shù)性的應(yīng)用領(lǐng)域,其解決復(fù)雜大型系統(tǒng)構(gòu)造問(wèn)題的潛能無(wú)法得到真正的發(fā)揮,因此對(duì)多agent系統(tǒng)軟件體系結(jié)構(gòu)的深入研究是非常必要的。
1 多agent系統(tǒng)軟件體系結(jié)構(gòu)元模型
由于在面向agent軟件開(kāi)發(fā)方法中,通常將agent視為對(duì)象的擴(kuò)展,擴(kuò)展面向?qū)ο蠓椒ǔ蔀槊嫦騛gent軟件開(kāi)發(fā)方法的主流,UML作為面向?qū)ο蟮臉?biāo)準(zhǔn)建模語(yǔ)言自然也成為描述多agent系統(tǒng)模型的首選建模語(yǔ)言。兩個(gè)標(biāo)準(zhǔn)化組織OMG(Object Management Group)和FIPA(Foundation for Intelligent Physical Agents)都建議用UML描述agent系統(tǒng)的生命周期。
UML 2.0規(guī)范提供了兩種擴(kuò)充UML的方式:a)通過(guò)擴(kuò)展型基于已有的元類定義新的建模元素,這種方法只是限制建模元素的語(yǔ)義,不能改變建模元素的文法結(jié)構(gòu);b)通過(guò)直接增加新的建模元素的方式修改元模型,這種方法具有更強(qiáng)的靈活性。本文通過(guò)結(jié)合上述兩種方式來(lái)定義適合構(gòu)造多agent系統(tǒng)軟件體系結(jié)構(gòu)的元模型。
文獻(xiàn)[7]總結(jié)了目前面向agent軟件開(kāi)發(fā)方法中使用的概念,提出了統(tǒng)一多agent系統(tǒng)的元模型的研究思路。目前提出的多agent系統(tǒng)元模型還存在諸多問(wèn)題:
a)某些元模型獨(dú)立于UML,缺乏與UML的融合機(jī)制,缺乏建模工具的支持,難以在實(shí)際項(xiàng)目中獲得應(yīng)用。文獻(xiàn)[1]歸納了三種主要建模方法中的建模概念,以元模型的方式進(jìn)行了描述,并提出一種統(tǒng)一元模型,但是這些元模型是獨(dú)立于UML的,沒(méi)有考慮如何獲得建模工具支持的問(wèn)題。
b)大多數(shù)元模型缺乏軟件體系結(jié)構(gòu)的概念,通常只描述了組織結(jié)構(gòu)相關(guān)的概念,不能滿足多agent系統(tǒng)各個(gè)階段建模的需要,如ALADDIN[8]、MOISE[4]等方法只描述了多agent系統(tǒng)的組織結(jié)構(gòu)。只有文獻(xiàn)[9]提出的AML明確包含了描述軟件體系結(jié)構(gòu)需要的建模元素,但是其使用的術(shù)語(yǔ)與常用術(shù)語(yǔ)差別很大,沒(méi)有包括軟件體系結(jié)構(gòu)的構(gòu)件、連接件、端口等核心概念。
c)這些元模型往往將所有概念都當(dāng)做agent來(lái)處理,而實(shí)際系統(tǒng)的開(kāi)發(fā)過(guò)程中,必然存在不屬于agent的概念,比如遺留系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)、人機(jī)界面等,這些概念不包含在元模型之中,對(duì)系統(tǒng)的描述是難以被軟件開(kāi)發(fā)人員理解和接受的,最終將影響系統(tǒng)功能的實(shí)現(xiàn)。
針對(duì)上述問(wèn)題,本文通過(guò)結(jié)合UML 2.0規(guī)范提供的兩種擴(kuò)充方式來(lái)定義適合描述多agent系統(tǒng)軟件體系結(jié)構(gòu)的元模型。這種元模型基于UML給出的兩種擴(kuò)展機(jī)制,容易被軟件開(kāi)發(fā)人員接受,也比較容易獲得建模工具的支持。元模型定義涉及兩個(gè)方面的內(nèi)容:a)建模元素之間關(guān)系的描述;b)這些建模元素與已有的UML建模元素之間的關(guān)系的描述,首先應(yīng)該明確多agent系統(tǒng)軟件體系結(jié)構(gòu)建模需要哪些建模元素。
從軟件體系結(jié)構(gòu)層面上觀察多agent系統(tǒng),與面向agent軟件開(kāi)發(fā)方法中的多agent系統(tǒng)會(huì)有很大的不同。在目前出現(xiàn)的面向agent的軟件開(kāi)發(fā)方法中,通常將agent作為對(duì)象的擴(kuò)展,多agent系統(tǒng)中的相關(guān)概念通常在類、對(duì)象、關(guān)聯(lián)等概念的基礎(chǔ)上進(jìn)行描述。在軟件體系結(jié)構(gòu)層面上觀察多agent系統(tǒng),必須考慮多agent系統(tǒng)的相關(guān)概念和軟件體系結(jié)構(gòu)相關(guān)概念的結(jié)合問(wèn)題。目前在多agent系統(tǒng)開(kāi)發(fā)方法中,將系統(tǒng)中所有元素都作為agent來(lái)處理的現(xiàn)象非常普遍,而實(shí)際上復(fù)雜軟件系統(tǒng)很難完全用agent相關(guān)的概念來(lái)表達(dá),比如人機(jī)界面、數(shù)據(jù)庫(kù)系統(tǒng)或者遺留系統(tǒng)的描述,必然要使用目前比較成熟的技術(shù)手段描述。這方面的問(wèn)題也得到了agent領(lǐng)域研究人員的重視,文獻(xiàn)[10]指出:把系統(tǒng)中的所有成分都看做agent是多agent系統(tǒng)開(kāi)發(fā)中的一種常見(jiàn)錯(cuò)誤。隨著面向agent軟件開(kāi)發(fā)方法的深入研究,agent技術(shù)與非agent技術(shù)的融合成為一種必然的趨勢(shì)。因此本文認(rèn)為,軟件體系結(jié)構(gòu)核心模型的基本要素(構(gòu)件、連接件、配置、端口和角色)在多agent系統(tǒng)的軟件體系結(jié)構(gòu)模型中仍然存在,面向agent軟件開(kāi)發(fā)方法中常見(jiàn)的概念如agent、信念、目標(biāo)、規(guī)劃、本體、通信語(yǔ)言、交互協(xié)議、agent結(jié)構(gòu)(慎思、反應(yīng)、混合)、任務(wù)、服務(wù)等也要在多agent系統(tǒng)的軟件體系結(jié)構(gòu)模型中出現(xiàn)。
多agent系統(tǒng)軟件體系結(jié)構(gòu)元模型如圖1所示。其中,構(gòu)件、連接件和端口是UML規(guī)范中已經(jīng)包括的概念,構(gòu)件在UML 1.x版本中提出,連接器、端口在UML 2.0中出現(xiàn),但是這些概念不是針對(duì)軟件體系結(jié)構(gòu)提出的。UML經(jīng)過(guò)多年的發(fā)展,雖然語(yǔ)法豐富繁雜,但是其主要目的仍然是給面向?qū)ο蠼7椒ㄌ峁┱Z(yǔ)言的支持,UML中的這些名稱與軟件體系結(jié)構(gòu)核心模型的基本要素具有不同的含義,因此對(duì)于UML中和軟件體系結(jié)構(gòu)中重合的元類,本文以“Ar”+UML元類名稱的方式表示,如ArComponent、ArConnector、ArPort,分別對(duì)應(yīng)體系結(jié)構(gòu)構(gòu)件、體系結(jié)構(gòu)連接件、體系結(jié)構(gòu)端口。本文中元類的中文名稱,若未特別指明(如構(gòu)件、連接件、端口等)都是指軟件體系結(jié)構(gòu)中的概念,而要說(shuō)明是UML元類,則稱為UML構(gòu)件、UML連接件、UML端口。另外,角色的概念在UML規(guī)范中也有描述,但不是一個(gè)獨(dú)立的元類,本文保留UML中對(duì)角色的定義,同時(shí)增加一個(gè)社會(huì)角色的概念來(lái)描述多agent系統(tǒng)的組織結(jié)構(gòu)。
本文采用與UML 2.0上層結(jié)構(gòu)規(guī)范的格式對(duì)新增元素或擴(kuò)展型進(jìn)行描述,描述形式如下:
a)抽象語(yǔ)法,主要說(shuō)明各個(gè)新增元類與UML元模型中已有元類之間的關(guān)系,用類圖進(jìn)行描述。
b)元類描述,包括新增建模元素的屬性、關(guān)聯(lián)、約束規(guī)則、語(yǔ)義、圖形表示等內(nèi)容,其中屬性、關(guān)聯(lián)、約束規(guī)則和圖形表示都不是必需的。限于篇幅,本文沒(méi)有給出詳細(xì)的描述。
在上述元模型的基礎(chǔ)上,為了描述多agent系統(tǒng)軟件體系結(jié)構(gòu),增加了四種新的圖形,分別是構(gòu)件圖(圖2)、組織關(guān)系圖(圖3)、增強(qiáng)用例圖和協(xié)議圖。
構(gòu)件圖描述多agent系統(tǒng)中的構(gòu)件、agent以及它們之間的關(guān)系。構(gòu)件之間的關(guān)系用arConnector表示,arConnector可能是簡(jiǎn)單的消息,也可能是一個(gè)復(fù)雜的交互過(guò)程。Agent之間的關(guān)系用agConnector表示,agConnector表示基于agent通信語(yǔ)言的交互過(guò)程,用agent交互協(xié)議描述。
在增強(qiáng)用例圖中,參與者通過(guò)端口與用例關(guān)聯(lián),每個(gè)構(gòu)件內(nèi)部包含一個(gè)或多個(gè)用例,可以清楚地反映構(gòu)件與系統(tǒng)功能之間的關(guān)系以及系統(tǒng)參與者和構(gòu)件之間的關(guān)系。增強(qiáng)用例圖中的構(gòu)件既可以是一般構(gòu)件,也可以是agent構(gòu)件。
社會(huì)關(guān)聯(lián)描述社會(huì)角色之間的關(guān)聯(lián)關(guān)系,如平等關(guān)系、上下級(jí)關(guān)系等。用戶在建模時(shí)可以根據(jù)具體的應(yīng)用領(lǐng)域自行定義不同的社會(huì)關(guān)聯(lián)關(guān)系。組、社會(huì)角色通過(guò)社會(huì)關(guān)聯(lián)連接形成組織關(guān)系圖。
協(xié)議圖描述agent之間的交互協(xié)議,協(xié)議圖是UML順序圖的擴(kuò)展,增加了多重生命線和agent通信消息。
2 多agent系統(tǒng)的多視圖模型
目前對(duì)于軟件體系結(jié)構(gòu)的描述普遍采用多視點(diǎn)的概念,用不同的視圖描述軟件體系結(jié)構(gòu)不同方面的特征,比較常見(jiàn)的如4+1視圖[11]、7視圖[12]等。結(jié)合軟件體系結(jié)構(gòu)研究中提出的不同視圖模型以及多agent系統(tǒng)的特點(diǎn),基于上文給出的多agent軟件體系結(jié)構(gòu)的建模元素,本文用八種視圖描述多agent系統(tǒng)的軟件體系結(jié)構(gòu),即環(huán)境視圖、框架視圖、功能視圖、邏輯視圖、交互視圖、行為視圖、微觀視圖、實(shí)現(xiàn)視圖。
a)環(huán)境視圖描述多agent系統(tǒng)和它所存在的外部環(huán)境之間的關(guān)系,這種關(guān)系通過(guò)用例圖來(lái)描述。
b)框架視圖可以反映軟件體系結(jié)構(gòu)的風(fēng)格,代表軟件系統(tǒng)高層的結(jié)構(gòu)關(guān)系,框架視圖用構(gòu)件圖表示。
c)功能視圖描述構(gòu)件與用例之間以及agent與用例之間的關(guān)系,用增強(qiáng)用例圖表示。功能視圖通過(guò)將用例分配給構(gòu)件和agent,體現(xiàn)了系統(tǒng)的功能與功能實(shí)現(xiàn)者之間的關(guān)系,對(duì)系統(tǒng)功能需求的理解更加深刻,在測(cè)試階段可以更明確地衡量構(gòu)件或agent是否實(shí)現(xiàn)了應(yīng)該實(shí)現(xiàn)的功能。
d)邏輯視圖包括組織關(guān)系圖和構(gòu)件圖。構(gòu)件圖描述構(gòu)件之間、agent之間以及agent和構(gòu)件之間的關(guān)系;組織關(guān)系圖描述多agent系統(tǒng)的社會(huì)角色組成以及社會(huì)角色之間的交互關(guān)系。
e)交互視圖包括協(xié)議圖和順序圖。協(xié)議圖描述多agent系統(tǒng)中agent之間的交互關(guān)系,這種交互關(guān)系體現(xiàn)了agent在交互過(guò)程中應(yīng)該遵守的行為準(zhǔn)則,是agent協(xié)作的基礎(chǔ),agent交互協(xié)議體現(xiàn)了與對(duì)象中的方法調(diào)用完全不同的協(xié)作方式,可以認(rèn)為是社會(huì)性的一種體現(xiàn)。同時(shí)交互視圖還用順序圖描述構(gòu)件和構(gòu)件之間以及agent與構(gòu)件之間的交互關(guān)系,這種交互關(guān)系反映了它們之間按照對(duì)象方法調(diào)用方式進(jìn)行的通信過(guò)程。
f)行為視圖包括狀態(tài)圖。狀態(tài)圖用來(lái)描述構(gòu)件或agent在生命周期內(nèi)的狀態(tài)變化。
g)微觀視圖描述agent內(nèi)部的組成。根據(jù)實(shí)現(xiàn)時(shí)的agent類型確定,比如慎思agent,需要描述agent的信念、目標(biāo)、意圖等;如果是反應(yīng)agent,則需要描述agent的規(guī)劃、任務(wù)等。在微觀視圖中用類圖描述agent的內(nèi)部成分之間的關(guān)系。
h)實(shí)現(xiàn)視圖包括UML構(gòu)件圖和部署圖。UML構(gòu)件圖用來(lái)描述代碼構(gòu)件的物理結(jié)構(gòu)和各構(gòu)件之間的依賴關(guān)系;配置圖定義系統(tǒng)中軟、硬件的體系結(jié)構(gòu),可以描述實(shí)際的計(jì)算機(jī)設(shè)備以及它們之間的連接關(guān)系。
本文提出的描述多agent系統(tǒng)軟件體系結(jié)構(gòu)的八種視圖模型,最根本的特點(diǎn)就在于融合了多agent系統(tǒng)和軟件體系結(jié)構(gòu)這兩個(gè)領(lǐng)域的概念,可以準(zhǔn)確、全面地描述多agent系統(tǒng)的軟件體系結(jié)構(gòu)。文獻(xiàn)[13]列舉了agent系統(tǒng)開(kāi)發(fā)中的缺陷,如對(duì)agent方法的過(guò)度吹捧;忘記自己是在開(kāi)發(fā)軟件;在agent實(shí)現(xiàn)中,使用了太多的人工智能技術(shù);滿眼都是agent;等等。如果不能對(duì)多agent系統(tǒng)的軟件體系結(jié)構(gòu)有一個(gè)正確的理解,這些缺陷在多agent系統(tǒng)軟件體系結(jié)構(gòu)模型中將仍然存在。本文提出的描述多agent系統(tǒng)軟件體系結(jié)構(gòu)的八視圖模型體現(xiàn)了本文對(duì)多agent系統(tǒng)的基本理解:a)多agent系統(tǒng)中不僅僅包含agent,還包含非agent的軟件實(shí)體;b)多agent系統(tǒng)的開(kāi)發(fā)是軟件系統(tǒng)的開(kāi)發(fā),符合一般軟件開(kāi)發(fā)的普遍規(guī)律,又具有一定的特殊性;c)在多agent系統(tǒng)開(kāi)發(fā)的早期階段,不應(yīng)過(guò)多關(guān)注agent的智能特性。
本文提出的這八種視圖可以分為三種類型:a)通用類型,主要是環(huán)境視圖和框架視圖,這兩種視圖與其他的多視圖方法沒(méi)有任何區(qū)別;b)新增類型,主要是功能視圖、交互視圖和微觀視圖,這三種視圖是軟件體系結(jié)構(gòu)多視圖描述方法中沒(méi)有的,主要是針對(duì)agent的特點(diǎn)設(shè)計(jì)的;c)綜合類型,包括邏輯視圖、行為視圖和實(shí)現(xiàn)視圖,這三種視圖在目前軟件體系結(jié)構(gòu)的多視圖描述方法中也是存在的,但是本文在這些視圖中增加了agent相關(guān)的建模元素。從對(duì)視圖的分類可以看出,本文提出多agent系統(tǒng)軟件體系結(jié)構(gòu)的八視圖描述方法,既繼承了軟件體系結(jié)構(gòu)描述的研究成果,又反映了多agent系統(tǒng)的特點(diǎn)。基于上述八種視圖,完全可以設(shè)計(jì)一種以體系結(jié)構(gòu)為中心的多agent系統(tǒng)開(kāi)發(fā)過(guò)程,從而使面向agent的軟件開(kāi)發(fā)與當(dāng)前主流的軟件開(kāi)發(fā)思想、方法和過(guò)程能夠緊密地結(jié)合在一起,獲得更加廣泛的支持。
3 實(shí)例研究
在電子商務(wù)系統(tǒng)中,agent可以扮演購(gòu)買(mǎi)者、售貨者、代理商和信息提供者的角色,實(shí)現(xiàn)電子商務(wù)中部分或全部工作的自動(dòng)化。電子商務(wù)有三種形式:B-B、B-C和C-C。本章以一個(gè)B-C形式的簡(jiǎn)單電子商務(wù)系統(tǒng)為例,按照本文提出的多視圖描述方法給出幾個(gè)有關(guān)圖形。
系統(tǒng)涉及三類用戶:客戶、產(chǎn)品供應(yīng)商和代理商。系統(tǒng)的任務(wù)是幫助客戶從多個(gè)供應(yīng)商處以盡可能便宜的價(jià)格買(mǎi)到所需的產(chǎn)品,同時(shí),系統(tǒng)還要保證每個(gè)供應(yīng)商盡可能獲取最大利潤(rùn)。為簡(jiǎn)化起見(jiàn),本文主要考慮支持客戶購(gòu)買(mǎi)產(chǎn)品的業(yè)務(wù)過(guò)程,而不考慮供應(yīng)商推銷產(chǎn)品的業(yè)務(wù)過(guò)程。客戶購(gòu)買(mǎi)產(chǎn)品的過(guò)程可分為四個(gè)階段:
a)提出產(chǎn)品需求。客戶提出需要什么產(chǎn)品,并打算以什么價(jià)格購(gòu)買(mǎi)。
b)尋找供應(yīng)商。代理商根據(jù)客戶的產(chǎn)品需求尋找最適合的供應(yīng)商,促成雙方在一起交易。
c)競(jìng)價(jià)協(xié)商。客戶和供應(yīng)商經(jīng)過(guò)討價(jià)還價(jià),達(dá)成一個(gè)雙方都滿意的價(jià)格。
d)付款和送貨。客戶和供應(yīng)商確定交易價(jià)格之后,客戶支付貨款,供應(yīng)商將貨物發(fā)送給客戶,完成客戶購(gòu)買(mǎi)產(chǎn)品的過(guò)程。
該系統(tǒng)是一個(gè)多agent系統(tǒng),應(yīng)用本文提出的方法可以清晰地描述其軟件體系結(jié)構(gòu)。圖4為該系統(tǒng)的功能視圖。在客戶購(gòu)買(mǎi)產(chǎn)品的業(yè)務(wù)過(guò)程中,客戶只需提出他的產(chǎn)品需求,系統(tǒng)內(nèi)agent將代替他尋找供應(yīng)商,并根據(jù)自身的知識(shí)和供應(yīng)商競(jìng)價(jià),以盡可能低的價(jià)格買(mǎi)到客戶需要的產(chǎn)品。如果購(gòu)買(mǎi)成功,agent將通知客戶付款,同樣,供應(yīng)商除了通知客戶登記產(chǎn)品和收款之外,其他工作也由agent完成,代理商負(fù)責(zé)組織客戶和供應(yīng)商之間的交易。其中組織交易的工作由代理商agent完成,協(xié)商價(jià)格的工作由客戶agent和供應(yīng)商agent完成。所以,出現(xiàn)了三個(gè)agent,它們分別代表客戶、供應(yīng)商和代理商執(zhí)行一定的功能。
圖5給出交互視圖的部分內(nèi)容,描述了客戶agent與供應(yīng)商agent之間協(xié)商價(jià)格的交互過(guò)程。客戶agent的作用是在代理商agent選擇供應(yīng)商之后與供應(yīng)商協(xié)商價(jià)格。圖6給出了行為視圖的部分內(nèi)容,是客戶agent的狀態(tài)圖。
從本章對(duì)該系統(tǒng)的多視圖描述過(guò)程中可以看出,本文提出的多視圖方法可以支持這一基本的觀點(diǎn),將agent領(lǐng)域和軟件體系結(jié)構(gòu)領(lǐng)域的概念結(jié)合起來(lái)進(jìn)行描述是可行的,是容易被理解和接受的。在當(dāng)前軟硬件技術(shù)不斷進(jìn)步、用戶需求不斷增強(qiáng)的背景下,采用本文方法可以更好地理解、開(kāi)發(fā)多agent系統(tǒng)。
4 結(jié)束語(yǔ)
本文在綜合多種建模方法的基礎(chǔ)上,基于UML的兩種擴(kuò)展方式提出了一種多agent系統(tǒng)軟件體系結(jié)構(gòu)的描述方法,在UML元模型的基礎(chǔ)上增加了描述軟件體系結(jié)構(gòu)和多agent系統(tǒng)的建模元素,并研究了這些建模元素與UML元模型之間的關(guān)系。本文通過(guò)UML 2.0提供的一階擴(kuò)展機(jī)制將新增加的建模元素嵌入U(xiǎn)ML元模型之中,克服了以往采用擴(kuò)展型方法定義多agent系統(tǒng)建模語(yǔ)言的弊端;同時(shí),本文提出的方法結(jié)合了軟件體系結(jié)構(gòu)和多agent系統(tǒng)的特點(diǎn),包括了對(duì)agent和非agent構(gòu)件的描述,這更加符合多agent系統(tǒng)的真實(shí)情況,有利于agent概念和主流軟件開(kāi)發(fā)方法與工具的融合,有利于面向agent軟件工程領(lǐng)域的發(fā)展。
致謝 本文獲得北方工業(yè)大學(xué)科研平臺(tái)及團(tuán)隊(duì)建設(shè)基金項(xiàng)目的資助,在此表示感謝!
參考文獻(xiàn):
[1]毛新軍, 常志明, 王戟,等. 面向agent軟件工程現(xiàn)狀與挑戰(zhàn)[J]. 計(jì)算機(jī)研究與發(fā)展, 2006, 43(10): 1782-1789.
[2]史忠植. 智能主體及應(yīng)用[M]. 北京: 科學(xué)技術(shù)出版社, 2000.
[3]FERBER J, GUTHNECHT O. A meta-model for the analysis and design of organization in multi-agent systems[C]//Proc of the 3rd International Conference on Multi Agent Systems. 1998:128-135.
[4] HANNOUN M, BOISSIER O, SICHMAN J, et al. MOISE:an organi-zational model for multi-agent systems[C]//Lecture Notes in Computer Science. Berlin:Springer, 2000:152-161.
[5]FIPA abstract architecture specification[EB/OL]. http://www.fipa.org/specs/fipa00001.
[6]SYCARA K, DECKER K, PANNU A. et al.Distributed intelligent agents[J]. IEEE Expert, 1996,11(6):36-46.
[7]BERNON C, COSSENTINO M, GLEIZES M. et al. A study of some multi-agent meta-models[C]//Proc of the 5th International Workshop on Agen-Oriented Software Engineering. 2005:62-77.
[8]WOOLDRIDGE M. An introduction to multi-agent systems[M]. NewYork:Wiley, 2002.
[9]CERVENKA R C, TRENCANSKY I, CALIST M, et al. AML:agent modeling language toward industry-grade agent-based medeling[C]//Proc of the 5th International Workshop on Agent-Oriented Software Engineering. 2005:31-46.
[10]ODELL J. Objects and agents compared[J]. Journal of Object Technology, 2002, 1(1): 41-53.
[11]KRUCHTEN P B. The 4+1 view model of architecture [J]. IEEE Software, 1995,12(6):42-50.
[12]孫昌愛(ài). 軟件體系結(jié)構(gòu)正逆向構(gòu)造與描述研究[D]. 北京: 北京航空航天大學(xué), 2002.
[13]WOOLDRIDGE M, JENNINGS N R. Intelligent agents: Pitfalls of agent-oriented development[C]//Proc of the 2nd International Conference on Autonomous Agents.1998:385-391.