摘 要: 提出基于Agent的集成體系結構AIA(Architecture of Agent-based Integration)實現(xiàn)中小型企業(yè)級應用集成" title="應用集成">應用集成,解決目前集成系統(tǒng)" title="集成系統(tǒng)">集成系統(tǒng)出現(xiàn)的被動、靜態(tài)和無序狀態(tài)。
關鍵詞: Agent AIA 企業(yè)級應用集成
隨著分布式人工智能(DAI)研究的深入,Agent以及MAS(Multi Agent System)已經成為研究人員關注的熱點。由于Agent具有自主能力、社交能力、反應能力和行為理性等特點,利用它能為建立企業(yè)應用集成平臺提供一條嶄新的途徑。本文提出基于Agent的集成體系結構AIA,采用分層的思想,對企業(yè)級應用集成平臺進行分層,每層均由Agent組成。由于該體系結構清晰的層次性以及Agent所具有的特點,不僅使該平臺具有清晰的結構,而且具有良好的開放性、集成性和靈活性,有利于解決目前集成系統(tǒng)出現(xiàn)的被動、靜態(tài)和無序狀態(tài),實現(xiàn)中小型企業(yè)級應用集成。
1 基于Agent的集成體系結構AIA
充分利用Agent的特性和面向對象技術,提出了基于Agent的集成體系結構AIA,在AIA中,Agent與Object相比,它是一種粗粒度" title="粗粒度">粗粒度的、可重用的、可能包含心智狀態(tài)(BDI),并能通過與外界通信進行感知或根據(jù)內部狀態(tài)的變化獨立地決定和控制自身行為的軟硬件綜合實體。企業(yè)級應用集成平臺實際上是一個交互系統(tǒng),因此能夠抽象為三層:界面層、協(xié)調層和模型層。
(1)界面層:界面層由一組個人助理Agent(AssAgent)組成,用戶AssAgent與系統(tǒng)中其他Agent進行通信和協(xié)同工作。AssAgent的外在表現(xiàn)形式和功能主要由用戶的業(yè)務特征和工作習慣決定。本層的設計重點在于:用戶業(yè)務特征和工作習慣的研究、AssAgent學習和訓練方法以及知識來源的確定、人機相互激勵環(huán)境的建立等。由于界面層的相對獨立性,已抽象和定義好的界面框架和AssAgent可以方便地運用于其他問題領域。
(2)協(xié)調層:協(xié)調層中每一個業(yè)務處理Agent-BuA對應于企業(yè)中的粗粒度的、具有穩(wěn)定性和原子性的業(yè)務處理過程或企業(yè)組織結構中的一個部門。協(xié)調層是企業(yè)經營活動的反映,它位于模型層和界面層之間,用于連接界面層和模型層,負責解釋執(zhí)行界面層傳來的消息,使模型層的Agent協(xié)調運作,完成用戶所要求的動作。本層的設計重點在于:企業(yè)經營活動的模型化、BuA之間的層次結構及協(xié)調關系、BuA連接的拓撲結構對企業(yè)組織結構的自適應調整算法等。其目標在于不僅滿足企業(yè)現(xiàn)有業(yè)務流程,更適應企業(yè)流程再造的需要。
(3)模型層:模型層是企業(yè)固有數(shù)據(jù)模型的反映。模型層的建立是從用戶需求分析入手,將顯示問題空間映射到計算機空間。模型層包括如圖1所示的兩類Agent:DA、SA和LR的結合體。DA是新構筑的數(shù)據(jù)模型Agent,來實現(xiàn)企業(yè)級應用集成。LR是“遺產”信息資源,SA為語義描述Agent,SA是集成異質信息資源的重要橋梁。本層的設計重點在于:分析并獲取問題域模型、SA的設計和抽象、如何將對象模型轉換為Agent模型。其中,OpA為個人助理Agent,BuA為業(yè)務處理Agent,DA為數(shù)據(jù)模型Agent,SA為語義描述Agent,LR為遺產資源。
總之,采用上述的三層結構,不僅能夠有效解決企業(yè)級應用集成平臺的開放性問題,而且能夠為支持企業(yè)進行業(yè)務流程再造提供一條新途徑,提高了平臺的靈活性。界面層是人與系統(tǒng)的結合點;協(xié)調層是企業(yè)業(yè)務的反映,業(yè)務流程處理的柔性、技術與組織的融合是本層的核心;模型層是企業(yè)級應用集成的基礎,各種異質信息資源在此層進行融合。
2 AIA中各層Agent的設計
2.1 AIA中Agent的一般定義
這里首先給出在本系統(tǒng)中Agent的一般定義:
Agent=<Agent類型,自身模型,社會模型>
Agent類型∈{界面Agent,協(xié)調Agent,過程管理" title="過程管理">過程管理Agent,模型Agent}
自身模型=<業(yè)務數(shù)據(jù),專業(yè)能力,專業(yè)行為>
業(yè)務數(shù)據(jù)∈{數(shù)據(jù)1,數(shù)據(jù)2...}
專業(yè)能力∈{專業(yè)能力1,專業(yè)能力2...}
專業(yè)能力=<能力類型,表現(xiàn)形式,相關數(shù)據(jù)> //其表現(xiàn)形式常常是某種專業(yè)行為;
專業(yè)行為=<行為類型,行為目標,發(fā)生條件,反應>
行為目標∈{目標1,目標2...}
社會模型=<社會知識,社會能力,社會行為>
社會知識∈{社會知識1,社會知識2 ...}
社會能力∈{社會能力1,社會能力2...}
社會能力=<能力類型,表現(xiàn)形式,相關數(shù)據(jù)> //其表現(xiàn)形式常常是某種社會行為;
社會行為=<行為類型,發(fā)生條件,反應>
社會行為類型∈{接受、拒絕、協(xié)作、談判、請求}
2.2 界面層Agent結構設計
界面層Agent作為用戶與系統(tǒng)的中介,也是實現(xiàn)人機高度融合的關鍵。界面層Agent主要負責和用戶交互,記錄交互過程并寫入用戶模型,同時將交互信息傳遞給協(xié)調層Agent。它的主要組成部分包括:學習方式、用戶操作模型、熟人模型,其結構如圖2所示。
界面層Agent定義如下:
nterfaceAgent=<AgentType,iSelfMode>
AgentType=<InterfaceAgent_ID>
iSelfMode=<iAction>
iAction=<iActionType,iActionGoal,iActionCondition,iResponse>
iActionType∈{Display,Write}
iActionGoal∈{UserMode,ManagerAgent}
iActionCondition∈{Condition1,Condition2……}
iResponse=<Display,Write>
2.3 協(xié)調層Agent結構設計
業(yè)務Agent群是由協(xié)調Agent和多個業(yè)務處理Agent組成的一個微社會系統(tǒng)。每個業(yè)務Agent具有獨立解決問題所需要的業(yè)務數(shù)據(jù),負責具體的業(yè)務,如增刪改業(yè)務數(shù)據(jù),進行問題解決,根據(jù)用戶的要求提供相應功能,為用戶提出建議或幫助用戶完成部分工作,如圖3所示。
當遇到超出其本身能力范圍的問題時,通過協(xié)調Agent,由其他業(yè)務Agent完成任務。首先,根據(jù)協(xié)調Agent傳來的指令信息,一個Agent試圖解決一個問題,當它能夠獨立解決時(符合其能力范圍和業(yè)務數(shù)據(jù)范圍條件),它則獨立解決,否則它向協(xié)調Agent發(fā)出求助信息,協(xié)調Agent的數(shù)據(jù)庫中存有關于每個Agent能力和數(shù)據(jù)的數(shù)據(jù),通過推理它會選擇一個或多個能夠解決任務的Agent。在業(yè)務的過程中,協(xié)調Agent還能根據(jù)業(yè)務過程管理Agent發(fā)送的對業(yè)務過程的監(jiān)視數(shù)據(jù)以及業(yè)務策略數(shù)據(jù),調整業(yè)務過程中的微策略,例如:調整業(yè)務信息順序、改變數(shù)據(jù)呈現(xiàn)方式等。
協(xié)調層中Agent網絡的拓撲結構、關聯(lián)關系構成企業(yè)業(yè)務處理模型如圖4所示。
本文設計時受到人類分工合作的啟發(fā),業(yè)務Agent群眾的協(xié)調Agent就相當于項目經理,業(yè)務Agent相當于每一個成員。由協(xié)調Agent負責調度和協(xié)調工作。業(yè)務Agent屬于混合Agent的結構形式,它支持兩類反應:一是不需推理的立即反應,當業(yè)務Agent檢測到環(huán)境負荷某種行為條件時,行為就被激活。二是需要規(guī)劃、預測、分析能力的控制反應,這由協(xié)調Agent和業(yè)務Agent合作完成,協(xié)調Agent會對各種信息進行分析、判斷和推理。
2.4 模型層Agent結構設計
模型層包括兩類Agent:DA、SA和LR的結合體。
模型層中的DA可抽象為兩層,上層為變換器,它由統(tǒng)一格式的本地數(shù)據(jù)描述、方法、知識組成;下層是傳統(tǒng)意義上的數(shù)據(jù)庫系統(tǒng)" title="數(shù)據(jù)庫系統(tǒng)">數(shù)據(jù)庫系統(tǒng)中的表(Table)。若干表構成數(shù)據(jù)庫(DB),直觀而言,它是數(shù)據(jù)庫系統(tǒng)的一種擴展,如圖5所示。
模型層Agent的定義如下:
ModelAgent=<AgentType,mSelfMode,mSocialMode>
AgentType=<ModelAgent_ID>
mSelfMode=<mEntityData,mCapability,mAction>
mEntityData∈{DatabaseColumn}
mCapability=<mCapabilityType,mRepresentation,mRelatedData>
mAction=<mActionType,mActionCondition,mResponse>
mSocialMode=<mSocialCapability,mSocialAction>
2.5 AIA系統(tǒng)的定義
根據(jù)以上的分析,本文最后給出AIA系統(tǒng)的簡略定義:
Message=<Sender_ID,Receiver_ID,MessageType,MessageContent>
MessageType∈{Require,Accept,Refuse,Cooperate,Display,F(xiàn)eedback}
3 AIA體系結構的應用
本文將以某個企業(yè)的銷售審批流程來說明AIA企業(yè)集成結構如何實現(xiàn)動態(tài)作業(yè)流程。如圖6所示傳統(tǒng)的銷售發(fā)貨流程存在部分不增值活動。
在圖6中,為了保證往來單據(jù)的正確性,銷售部門和會計部門需要花大量的人力核對許多冗余單據(jù)的往來,因此導致對客戶響應速度遲緩。假如企業(yè)一方面需要保證來往單據(jù)的正確性(保留原流程),另一方面對于信用度好的客戶、重要客戶、緊急合同等情況需要提高交貨速度,從而將財務部門的審核置于發(fā)貨之后。這樣,企業(yè)銷售發(fā)貨流程就需要動態(tài)地改變。設圖6中每一個業(yè)務處理點對應協(xié)調層中的一個BuA。為了支持業(yè)務動態(tài)調整,每個BuA的知識庫和事務處理描述器中應加入相關的動態(tài)業(yè)務處理知識和業(yè)務描述。如在發(fā)貨Agent知識庫和事務處理流程中分別對動態(tài)業(yè)務處理知識以及快捷、普通發(fā)貨流程進行描述,便能實現(xiàn)對銷售發(fā)貨業(yè)務的動態(tài)支持。以下為發(fā)貨Agent的知識庫中發(fā)貨流程選擇規(guī)則,發(fā)貨流程選擇:
if 合同數(shù)據(jù)Agent優(yōu)先級(合同ID)> xx then 按快捷流程發(fā)貨;
if 合同數(shù)據(jù)Agent優(yōu)先級(合同ID)<= xx then 按普通流程發(fā)貨;
由于每個Agent既有關于它自身信息的統(tǒng)一描述,又有相關聯(lián)Agent的接口信息,所以能非常自然、方便地實現(xiàn)Agent之間的方法動態(tài)調用。因此能夠較好地支持企業(yè)動態(tài)業(yè)務。
企業(yè)級應用集成實際上是一個交互系統(tǒng),將Agent技術與成熟的對象技術相結合,提出了一個企業(yè)應用集成體系結構AIA。不僅具備良好的協(xié)調能力,而且具備良好的集成擴展能力。合理的分層設計和清晰的三層結構使得各層的功能和分工非常明確,易于設計實現(xiàn),提高了平臺的重用性。