專(zhuān)利名稱(chēng):基于Agent的動(dòng)態(tài)集成開(kāi)發(fā)平臺(tái)系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)技術(shù)領(lǐng)域,涉及基于Agent的動(dòng)態(tài)集成開(kāi)發(fā)平臺(tái),可用于各種系統(tǒng)的集成開(kāi)發(fā),特別是集成需求不斷變化的系統(tǒng)。
背景技術(shù):
系統(tǒng)集成是重用已有的遺留系統(tǒng),解決各種系統(tǒng)間互聯(lián)、互操作性問(wèn)題的過(guò)程。目
前存在眾多的系統(tǒng)集成方式,主要有傳統(tǒng)的系統(tǒng)集成方案(包括基于系統(tǒng)編程接口的集成
方案、基于中間件集成方案、基于分布式集成的集成方案)、基于Agent的系統(tǒng)集成方案。這
些系統(tǒng)集成方案基本滿足了現(xiàn)有系統(tǒng)集成的需求,并且在未來(lái)一段時(shí)間內(nèi),其仍將作為系
統(tǒng)集成的主要手段。 1.傳統(tǒng)的系統(tǒng)集成方案 (1)基于系統(tǒng)編程接口的集成方案,是使用被集成的子系統(tǒng)提供的編程接口作集成要點(diǎn),手工實(shí)現(xiàn)端到端系統(tǒng)集成。在保持原有系統(tǒng)基礎(chǔ)架構(gòu)不變的前提下,開(kāi)發(fā)人員將負(fù)責(zé)構(gòu)建一套統(tǒng)一的系統(tǒng)編程接口訪問(wèn)平臺(tái),并開(kāi)發(fā)以訪問(wèn)各子系統(tǒng)數(shù)據(jù)的定制化應(yīng)用,將其映射、轉(zhuǎn)換為特定子系統(tǒng)的數(shù)據(jù)結(jié)構(gòu);根據(jù)要求對(duì)這些數(shù)據(jù)進(jìn)行操作,并將其提交至目標(biāo)子系統(tǒng)。由于該平臺(tái)整合了系統(tǒng)公開(kāi)的編程接口,能夠方便地控制和訪問(wèn)各子系統(tǒng)的數(shù)據(jù)和過(guò)程。該方案適用于包含復(fù)雜應(yīng)用邏輯和外部數(shù)據(jù)庫(kù)元數(shù)據(jù)的大型封裝性質(zhì)的系統(tǒng)。但該方案實(shí)現(xiàn)集成復(fù)雜度較大,隨著集成需求的增加,實(shí)現(xiàn)集成而消耗的人力、資金等成本也不斷攀升,最終會(huì)達(dá)到令人無(wú)法接受的地步。而且整個(gè)系統(tǒng)的集成化程度受限于原系統(tǒng)提供的API接口。
格式,并通過(guò)中間件平臺(tái)提供的映射、轉(zhuǎn)換、和傳輸機(jī)制實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換。中間件平臺(tái)同時(shí)還能夠提供針對(duì)事務(wù)交換、事件監(jiān)視、錯(cuò)誤捕獲以及安全特性的支持機(jī)制,可以在隱藏系統(tǒng)過(guò)程復(fù)雜性的同時(shí)提供對(duì)子系統(tǒng)最大限度的功能調(diào)用,從而實(shí)現(xiàn)集成。該集成方案避免了大量的程序編碼工作,并將對(duì)斷點(diǎn)工作方式的了解程度降低至最低限度,但卻并非適用于所有情況,其造價(jià)高昂、結(jié)構(gòu)復(fù)雜且缺乏通用性。 (3)基于分布式技術(shù)的集成方案,是應(yīng)用流行的Web Service和XML技術(shù)。開(kāi)發(fā)人
員不需要了解各種不同子系統(tǒng)使用的變成接口,在這種開(kāi)發(fā)模式中,不再包含哪些需要通
過(guò)編程方式創(chuàng)建且具有緊密關(guān)聯(lián)性的應(yīng)編碼接口 ,相反,信息從信息源分離并且可以在任
何內(nèi)部應(yīng)用程序進(jìn)行交換。基于分布式技術(shù)的集成方案在實(shí)施過(guò)程中避免了各子系統(tǒng)進(jìn)行
底層編碼,無(wú)需了解其內(nèi)部程序邏輯,但當(dāng)被集成系統(tǒng)的集成需求發(fā)生變化時(shí),仍需對(duì)被集
成系統(tǒng)進(jìn)行一定量的重新編碼。 2.基于Agent的系統(tǒng)集成方案 (1)Telescript系統(tǒng)是第一個(gè)商用的基于移動(dòng)Agent的系統(tǒng),整個(gè)系統(tǒng)采用Telescript語(yǔ)言完成,為電子商務(wù)交易提供了一種移動(dòng)Agent的解決方案。Telescript系統(tǒng)通過(guò)Agent的移動(dòng)和計(jì)算完成商務(wù)活動(dòng)中的數(shù)據(jù)和信息交互。它除了具有軟件Agent基本特性,還具有移動(dòng)性,可以在網(wǎng)絡(luò)上從一臺(tái)主機(jī)自主地移動(dòng)到另一臺(tái)主機(jī),代替用戶完成指定的任務(wù),這種計(jì)算模式有效地降低分布式計(jì)算中的網(wǎng)絡(luò)負(fù)載,提高了通信效率,動(dòng)態(tài)的適應(yīng)變化了的網(wǎng)絡(luò)環(huán)境,具有很好的安全性和容錯(cuò)性。 (2)Aglet是由IBM公司用純Java開(kāi)發(fā)的移動(dòng)Agent技術(shù),并提供實(shí)用的平臺(tái)——Aglet Workbench,可用來(lái)開(kāi)發(fā)或執(zhí)行移動(dòng)Agent系統(tǒng)。Aglet是具有Agent行為的Java即plet對(duì)象。Aglet以線程的形式被產(chǎn)生于一臺(tái)機(jī)器上,可隨時(shí)暫停執(zhí)行的工作,而后整個(gè)Aglet可被分派到另一臺(tái)機(jī)器上,再重新啟動(dòng)接著執(zhí)行掛起的任務(wù)。Aglet之間的通信采用消息傳遞的方式來(lái)傳遞消息對(duì)象。基于安全考慮Aglet并非讓外界直接存取其信息,而是透過(guò)一個(gè)代理提供相應(yīng)的接口與外界溝通。 (3)JADE(Java Agent Development Environment)是用Java編寫(xiě)的 一個(gè)移動(dòng)Agent系統(tǒng),可以用來(lái)開(kāi)發(fā)基于Agent的應(yīng)用。每一個(gè)運(yùn)行的JADE執(zhí)行環(huán)境的實(shí)例被稱(chēng)為容器,即Agent運(yùn)行的環(huán)境。 一個(gè)單獨(dú)的特殊的主容器必須處于激活狀態(tài),所有其他容器都必須向主容器注冊(cè)。在JADE中,Agent是一種自治的具有合作和通信能力的實(shí)體。JADE平臺(tái)只提供了 Agent的一個(gè)運(yùn)行環(huán)境,保證在其上的Agent能夠正常運(yùn)行。
(4)浙江大學(xué)的軟件合成框架ABFSC (Agent-Based Framework forSoftwareComposition)是一個(gè)基于Agent和構(gòu)件技術(shù)的集成系統(tǒng)框架,支持系統(tǒng)體系結(jié)構(gòu)的設(shè)計(jì)、促進(jìn)軟件構(gòu)件之間協(xié)作和語(yǔ)義互操作的描述。該系統(tǒng)提出基于知識(shí)的軟件合成,并提供一定手段描述軟件構(gòu)件間的語(yǔ)義互操作性。ASFSC強(qiáng)調(diào)基于知識(shí)的軟件合成,描述軟件構(gòu)件之間的協(xié)作和語(yǔ)義互操作,改善了現(xiàn)有軟件構(gòu)件/軟總線技術(shù)缺乏系統(tǒng)柔性的現(xiàn)狀。
上述幾種多Agent系統(tǒng)強(qiáng)調(diào)集成框架和Agent的移動(dòng)性,為重新開(kāi)發(fā)新的Agent系統(tǒng)提供了工具和運(yùn)行環(huán)境的支持,但并沒(méi)有考慮對(duì)遺留系統(tǒng)的重用和對(duì)系統(tǒng)需求變化的支持。 上述傳統(tǒng)的系統(tǒng)集成方案雖然解決了不同系統(tǒng)間互聯(lián)、互操作問(wèn)題,實(shí)現(xiàn)了遺留系統(tǒng)的重用問(wèn)題,但其缺乏一定的自治性、智能型、動(dòng)態(tài)性和面向領(lǐng)域的可擴(kuò)充性。現(xiàn)有的基于Agent的系統(tǒng)集成方案利用了 Agent的自治性、主動(dòng)性、社會(huì)性、智能性和移動(dòng)性等特征,使集成后的系統(tǒng)具有了一定的自治性、智能型和面向領(lǐng)域的可擴(kuò)充性,但現(xiàn)有的基于Agent的系統(tǒng)集成方案不能靈活的適應(yīng)集成需求的變化,實(shí)現(xiàn)系統(tǒng)柔性的動(dòng)態(tài)集成。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服上述已有技術(shù)的不足,提供一種基于Agent的動(dòng)態(tài)集成開(kāi)發(fā)平臺(tái)系統(tǒng)和方法,以適應(yīng)集成需求的變化,提高系統(tǒng)集成的靈活性和適應(yīng)性,實(shí)現(xiàn)系統(tǒng)的動(dòng)態(tài)集成。 為實(shí)現(xiàn)上述目的,本發(fā)明提供的基于Agent的動(dòng)態(tài)集成開(kāi)發(fā)平臺(tái),包括
主控平臺(tái),部署在分布式集成環(huán)境的主控節(jié)點(diǎn)上,用于對(duì)全局范圍內(nèi)的Agent進(jìn)行管理和集成任務(wù)的控制,并提供對(duì)本地Agent運(yùn)行時(shí)的支持,控制非主控平臺(tái)實(shí)現(xiàn)分布式系統(tǒng)的集成; 非主控平臺(tái),根據(jù)系統(tǒng)的集成需求,部署在O到多個(gè)節(jié)點(diǎn)上,用于對(duì)本地Agent進(jìn)行管理,提供對(duì)本地Agent運(yùn)行時(shí)的支持; 所述的主控平臺(tái)包括用于運(yùn)行時(shí)管理的全局管理工具、用于運(yùn)行時(shí)支持的本地管理工具以及用于開(kāi)發(fā)階段支持的開(kāi)發(fā)設(shè)計(jì)工具; 所述的非主控平臺(tái)包括用于運(yùn)行時(shí)支持的本地管理工具,以及用于開(kāi)發(fā)階段支持的開(kāi)發(fā)設(shè)計(jì)工具。 所述的全局管理工具包括CRC、CMB、AMS和控制集成工具,該CRC分別與CMB和集成控制工具進(jìn)行交互,用于存儲(chǔ)系統(tǒng)中部署的Agent的能力信息;該CMB與CRC、Agent進(jìn)行交互,用于實(shí)現(xiàn)合同網(wǎng)協(xié)議;該AMS用于管理系統(tǒng)中部署的Agent的地址信息和狀態(tài)信息;該控制集成工具與CRC進(jìn)行交互,用于解釋集成腳本、生成集成規(guī)則,并利用集成規(guī)則綁定服務(wù)Agent之間的協(xié)作關(guān)系,控制系統(tǒng)的集成過(guò)程。 所述的本地管理工具包括Agent庫(kù)管理工具、平臺(tái)配置工具、平臺(tái)監(jiān)視工具、數(shù)據(jù)集成引擎和MTS,該Agent庫(kù)管理工具用于管理本地Agent,實(shí)現(xiàn)Agent的添加和刪除,以及啟動(dòng)Agent的自治線程,完成Agent的初始化;該平臺(tái)配置工具用于配置系統(tǒng)運(yùn)行時(shí)環(huán)境信息;該平臺(tái)監(jiān)控工具與MTS進(jìn)行交互,位于MTS的上層,用于監(jiān)控系統(tǒng)的運(yùn)行信息;該數(shù)據(jù)集成引擎用于對(duì)Agent間通信中存在異構(gòu)數(shù)據(jù)進(jìn)行轉(zhuǎn)換;該MTS為系統(tǒng)中的其它模塊提供消息傳輸服務(wù)。 所述的設(shè)計(jì)開(kāi)發(fā)工具包括Agent包裝工具、腳本設(shè)計(jì)工具和數(shù)據(jù)集成開(kāi)發(fā)工具,該Agent包裝工具用于Agent的開(kāi)發(fā),生成功能Agent和服務(wù)Agent ;該腳本設(shè)計(jì)工具用于設(shè)計(jì)集成腳本,對(duì)集成腳本進(jìn)行詞法、語(yǔ)法、流程的檢查;該數(shù)據(jù)集成開(kāi)發(fā)工具根據(jù)Agent的定義文件以及數(shù)據(jù)轉(zhuǎn)換的映射規(guī)則,生成數(shù)據(jù)轉(zhuǎn)換配置文件。 為實(shí)現(xiàn)上述目的,本發(fā)明提供的基于Agent的動(dòng)態(tài)集成開(kāi)發(fā)方法,包括如下步驟
(1)分析被集成系統(tǒng)各模塊的接口信息和模塊之間的交互關(guān)系,確定系統(tǒng)中存在的功能Agent、服務(wù)Agent以及Agent之間的層次關(guān)系; (2)根據(jù)確定的功能Agent、服務(wù)Agent以及Agent之間的層次關(guān)系,對(duì)功能Agent的接口以及服務(wù)Agent的接口和服務(wù)流程進(jìn)行設(shè)計(jì); (3)根據(jù)步驟(2)的設(shè)計(jì),利用Agent包裝工具對(duì)功能Agent和服務(wù)Agent進(jìn)行包裝,生成功能Agent的定義文件、能力組件以及服務(wù)Agent的定義文件,將包裝后的功能Agent和服務(wù)Agent部署到系統(tǒng)中,并根據(jù)系統(tǒng)的集成需求,利用腳本設(shè)計(jì)工具編寫(xiě)集成腳本; (4)利用控制集成工具解釋集成腳本,生成集成規(guī)則,分發(fā)給參與系統(tǒng)集成的服務(wù)Agent,綁定與其它服務(wù)Agent間的協(xié)作關(guān)系,完成系統(tǒng)的集成; (5)向參與系統(tǒng)集成的服務(wù)Agent發(fā)送啟動(dòng)命令,服務(wù)Agent接受到命令后,根據(jù)集成規(guī)則自主與其它服務(wù)Agent進(jìn)行協(xié)作,系統(tǒng)開(kāi)始運(yùn)行;在系統(tǒng)運(yùn)行期間,通過(guò)腳本的動(dòng)態(tài)切換策略和動(dòng)態(tài)招標(biāo)策略實(shí)現(xiàn)系統(tǒng)的動(dòng)態(tài)集成。 本發(fā)明由于將Agent應(yīng)用到系統(tǒng)的集成開(kāi)發(fā)中,通過(guò)把被集成系統(tǒng)中各模塊包裝成具有自治性和自主性的Agent,降低了集成后系統(tǒng)模塊之間的耦合度,使集成后的系統(tǒng)具有良好的可擴(kuò)充性;同時(shí)在系統(tǒng)的運(yùn)行期間,通過(guò)重新編寫(xiě)腳本,利用腳本的動(dòng)態(tài)切換策略,使系統(tǒng)從一種任務(wù)的執(zhí)行能夠切換到另一任務(wù)的執(zhí)行,提高了系統(tǒng)集成過(guò)程中對(duì)集成需求不斷變化的適應(yīng)性;此外,動(dòng)態(tài)招標(biāo)策略使新增的模塊能夠自動(dòng)地加入到系統(tǒng)的運(yùn)行中,提高了集成后系統(tǒng)的自適應(yīng)性和動(dòng)態(tài)性。
圖1是本發(fā)明的系統(tǒng)框圖; 圖2是本發(fā)明主控平臺(tái)框圖; 圖3是本發(fā)明系統(tǒng)中部署的功能Agent結(jié)構(gòu)框圖; 圖4是本發(fā)明系統(tǒng)中部署的服務(wù)Agent結(jié)構(gòu)框圖; 圖5是本發(fā)明動(dòng)態(tài)集成開(kāi)發(fā)總流程圖; 圖6是圖5中的功能Agent包裝流程圖; 圖7是圖5中的服務(wù)Agent包裝流程圖。
具體實(shí)施例方式
參照?qǐng)D1圖2,本發(fā)明的基于Agent的動(dòng)態(tài)集成開(kāi)發(fā)平臺(tái)系統(tǒng),包括主控平臺(tái)和非主控平臺(tái);其中主控平臺(tái)包括設(shè)計(jì)開(kāi)發(fā)工具、全局管理工具、本地管理工具和Agent,非主控平臺(tái)包括設(shè)計(jì)開(kāi)發(fā)工具、本地管理工具和Agent。 所述的設(shè)計(jì)開(kāi)發(fā)工具包括Agent包裝工具101、數(shù)據(jù)集成開(kāi)發(fā)工具102和腳本設(shè)計(jì)工具103 ;該Agent包裝工具101用于系統(tǒng)中服務(wù)Agent和功能Agent的開(kāi)發(fā),首先分析被集成系統(tǒng)各模塊的接口信息和模塊之間的交互關(guān)系,根據(jù)上述信息生成功能Agent的定義文件、能力組件以及服務(wù)Agent的定義文件;該數(shù)據(jù)集成開(kāi)發(fā)工具102用于生成數(shù)據(jù)轉(zhuǎn)換配置文件,由被集成模塊的接口信息確定Agent間存在的數(shù)據(jù)轉(zhuǎn)換關(guān)系,通過(guò)輸入存在數(shù)據(jù)轉(zhuǎn)換關(guān)系的Agent定義文件并手動(dòng)設(shè)置數(shù)據(jù)之間的映射關(guān)系,生成數(shù)據(jù)轉(zhuǎn)換配置文件;該腳本設(shè)計(jì)工具103用于集成腳本的設(shè)計(jì),根據(jù)系統(tǒng)的集成需求編寫(xiě)集成腳本,并對(duì)集成腳本進(jìn)行詞法、語(yǔ)法和流程檢查。 所述的全局管理工具包括CRC111、AMS112、CMB113和控制集成工具114 ;該CRClll分別與CMB113和控制集成工具114進(jìn)行交互,用于接收系統(tǒng)中部署的Agent能力信息和服務(wù)信息的注冊(cè),維護(hù)需要感知的能力信息,當(dāng)有符合感知要求的能力注冊(cè)時(shí),主動(dòng)通知相應(yīng)的服務(wù)Agent和CMB113 ;該AMS112用于接收系統(tǒng)中部署的Agent的地址信息注冊(cè),維護(hù)平臺(tái)中Agent的狀態(tài)信息;該CMB113用于實(shí)現(xiàn)合同網(wǎng)協(xié)議,接收服務(wù)Agent的招標(biāo)請(qǐng)求和邀請(qǐng)符合投標(biāo)條件的功能Agent參與投標(biāo),并對(duì)投標(biāo)過(guò)程進(jìn)行裁決;該控制集成工具114用于解釋集成腳本、生成集成規(guī)則,并利用集成規(guī)則綁定服務(wù)Agent之間的協(xié)作關(guān)系,控制系統(tǒng)的集成過(guò)程。 所述的本地管理工具包括Agent庫(kù)管理工具121、平臺(tái)配置工具122、平臺(tái)監(jiān)視工具123、數(shù)據(jù)集成引擎124和MTS125 ;該Agent庫(kù)管理工具121用于管理本地Agent,實(shí)現(xiàn)Agent的添加和刪除,以及啟動(dòng)Agent的自治線程,完成Agent的初始化;該平臺(tái)配置工具122用于配置系統(tǒng)運(yùn)行時(shí)環(huán)境信息;該平臺(tái)監(jiān)控工具123與MTS125進(jìn)行交互,位于MTS125的上層,用于監(jiān)控系統(tǒng)的運(yùn)行信息;該數(shù)據(jù)集成引擎124用于對(duì)Agent間通信中存在異構(gòu)數(shù)據(jù)進(jìn)行轉(zhuǎn)換;該MTS125為系統(tǒng)中的其它模塊提供消息傳輸服務(wù)。 所述的Agent包括功能Agent和服務(wù)Agent ;該功能Agent由用戶利用Agent包裝工具101包裝被集成模塊生成,為系統(tǒng)提供最小功能單元實(shí)現(xiàn);該服務(wù)Agent由用戶利用Agent包裝工具101開(kāi)發(fā)生成,用于組織功能Agent之間的協(xié)作。該功能Agent的結(jié)構(gòu)如圖3所示,它包括Agent自治線程300、消息隊(duì)列301、消息處理器302、協(xié)作引擎303、規(guī)劃調(diào)度器304、投標(biāo)管理器306和能力庫(kù)307,該Agent自治線程300通過(guò)Agent庫(kù)管理工具121進(jìn)行初始化和啟動(dòng),與消息處理器302和狀態(tài)監(jiān)控模塊305進(jìn)行交互,用于處理接收到的消息和維護(hù)自身的狀態(tài);該消息隊(duì)列301與消息處理器302進(jìn)行交互,用于緩存發(fā)送和接收的消息;該消息處理器302與協(xié)作引擎303進(jìn)行交互,用于處理接收到的消息;該協(xié)作引擎303與投標(biāo)管理器306和調(diào)度規(guī)劃器進(jìn)行交互,用于控制Agent之間的協(xié)作過(guò)程;該規(guī)劃調(diào)度器304用于調(diào)用能力庫(kù)中的能力,完成設(shè)定的任務(wù);該狀態(tài)監(jiān)控305用于監(jiān)控自身狀態(tài)的變化,并將變化后的狀態(tài)通知AMS112 ;該投標(biāo)管理器306用于管理投標(biāo)過(guò)程,根據(jù)自身的狀態(tài)決定是否參與投標(biāo),并將結(jié)果發(fā)送給CMB113 ;該能力庫(kù)307用于保存功能Agent的能力信息。該服務(wù)Agent的結(jié)構(gòu)如圖4所示,它包括Agent自治線程500、消息隊(duì)列501、消息處理器502、協(xié)作引擎503、規(guī)劃調(diào)度器504、狀態(tài)監(jiān)控505、服務(wù)庫(kù)506、規(guī)則庫(kù)507、招標(biāo)管理器508和熟人庫(kù)509,該Agent自治線程500通過(guò)Agent庫(kù)管理工具121進(jìn)行初始化和啟動(dòng),與消息處理器502和狀態(tài)監(jiān)控模塊505進(jìn)行交互,用于處理接收到的消息和維護(hù)自身的狀態(tài);該消息隊(duì)列501與消息處理器502進(jìn)行交互,用于緩存發(fā)送和接收的消息;該消息處理器502與協(xié)作引擎503進(jìn)行交互,用于處理接收到的消息;該協(xié)作引擎503與規(guī)劃調(diào)度器進(jìn)行交互,用于控制Agent間的協(xié)作過(guò)程;該規(guī)劃調(diào)度器504與招標(biāo)管理器進(jìn)行交互,用于解釋服務(wù)流程,調(diào)用熟人中的能力完成服務(wù)流程的執(zhí)行;該狀態(tài)監(jiān)控505用于監(jiān)控自身狀態(tài)的變化;該服務(wù)庫(kù)506用于保存服務(wù)Agent的服務(wù)信息;該規(guī)則庫(kù)507,用于保存系統(tǒng)集成中使用的集成規(guī)則;該招標(biāo)管理器508用于管理招標(biāo)過(guò)程,將招標(biāo)信息發(fā)送給CMB113,處理CMB113返回的招標(biāo)結(jié)果;該熟人庫(kù)509用于保存Agent的熟人信息。
參照?qǐng)D5,本發(fā)明提供的基于Agent的動(dòng)態(tài)集成開(kāi)發(fā)方法,包括如下步驟
步驟A,分析被集成系統(tǒng)各模塊的接口信息和模塊之間的交互關(guān)系,確定系統(tǒng)中存在的功能Agent、服務(wù)Agent以及Agent之間的層次關(guān)系。 步驟B,根據(jù)確定的系統(tǒng)中存在的功能Agent、服務(wù)Agent以及Agent之間的層次關(guān)系,對(duì)功能Agent的接口以及服務(wù)Agent的接口和服務(wù)流程進(jìn)行設(shè)計(jì)。
步驟C,包裝Agent 。 本步驟的實(shí)現(xiàn)包括包裝功能Agent和包裝服務(wù)Agent,其中包裝功能Agent的實(shí)現(xiàn)流程如圖6所示,包裝服務(wù)Agent的實(shí)現(xiàn)流程如圖7所示。
參照?qǐng)D6,包裝功能Agent的實(shí)現(xiàn)流程按如下步驟進(jìn)行 首先,新建功能Agent,選擇被包裝動(dòng)態(tài)鏈接庫(kù)文件,編輯功能Agent的名稱(chēng)、IP地址、端口號(hào)和Agent的描述信息; 其次,選取被包裝模塊的接口文件,從中提取被包裝模塊的接口信息,編輯功能Agent的參數(shù)信息; 再次,根據(jù)包裝工具生成的功能Agent接口信息,建立工程,編寫(xiě)、編譯生成功能Agent的能力組件,并對(duì)生成的能力組件進(jìn)行測(cè)試、修改,直到測(cè)試成功;
最后,生成功能Agent的定義文件,完成功能Agent的包裝。
參照?qǐng)D7,包裝服務(wù)Agent的實(shí)現(xiàn)流程按如下步驟進(jìn)行 首先,新建服務(wù)Agent,編輯服務(wù)Agent的名稱(chēng)、IP地址、端口號(hào)和Agent的描述信息; 其次,從功能Agent列表中選擇設(shè)定的功能Agent作為服務(wù)Agent的熟人,加入服務(wù)Agent的熟人列表; 再次,編輯服務(wù)Agent的接口信息和服務(wù)流程,并對(duì)服務(wù)流程進(jìn)行語(yǔ)法和語(yǔ)義檢
查,如失敗則對(duì)服務(wù)流程進(jìn)行修改直至檢查成功; 最后,生成服務(wù)Agent的定義文件,完成服務(wù)Agent的包裝。 步驟D,選擇包裝后的Agent的定義文件,利用Agent庫(kù)管理工具將包裝后的Agent部署到系統(tǒng)特定目錄下。
步驟E,設(shè)計(jì)集成腳本。 El)根據(jù)系統(tǒng)的集成需求,利用腳本設(shè)計(jì)工具設(shè)計(jì)、編寫(xiě)集成腳本; E2)利用控制集成工具解釋集成腳本,生成集成規(guī)則,分發(fā)給參與系統(tǒng)集成的服務(wù)
Agent ,綁定服務(wù)Agent間的協(xié)作關(guān)系。 步驟F,系統(tǒng)運(yùn)行 Fl)向參與系統(tǒng)集成的服務(wù)Agent發(fā)送啟動(dòng)命令,服務(wù)Agent接受到命令后,根據(jù)集成規(guī)則自主與其它服務(wù)Agent進(jìn)行協(xié)作,系統(tǒng)開(kāi)始運(yùn)行; F2)系統(tǒng)運(yùn)行期間,當(dāng)服務(wù)Agent缺少特設(shè)子功能無(wú)法提供服務(wù)時(shí),服務(wù)Agent向CMB發(fā)送招標(biāo)請(qǐng)求;CMB收到招標(biāo)請(qǐng)求后,向CRC查找符合投標(biāo)條件的功能Agent,并向查找到的功能Agent發(fā)送投標(biāo)邀請(qǐng);收到投標(biāo)邀請(qǐng)的功能Agent根據(jù)自身情況選擇是否參與投標(biāo),并將結(jié)果發(fā)送給CMB ;CMB從參與投標(biāo)的Agent中選擇一個(gè)作為中標(biāo)Agent,并將中標(biāo)Agent的信息發(fā)送給招標(biāo)的服務(wù)Agent ;招標(biāo)的服務(wù)Agent收到CMB返回的中標(biāo)Agent的信息后,向中標(biāo)的Agent發(fā)送確認(rèn)消息;中標(biāo)的Agent確認(rèn)消息后,招標(biāo)的服務(wù)Agent將中標(biāo)的Agent加為自己的熟人,并進(jìn)行協(xié)作,向外提供服務(wù); F3)系統(tǒng)運(yùn)行期間,當(dāng)系統(tǒng)的集成需求發(fā)生改變時(shí),重新分析被集成系統(tǒng)各模塊間
的集成邏輯,確定服務(wù)Agent之間的交互關(guān)系,編寫(xiě)新的集成腳本;利用控制集成工具解釋
新的集成腳本,生成集成規(guī)則,分發(fā)集成規(guī)則到參與系統(tǒng)集成的服務(wù)Agent ;服務(wù)Agent接
收到集成規(guī)則后,替換已有的集成規(guī)則,利用接收到的集成規(guī)則重新綁定與其它服務(wù)Agent
間的協(xié)作關(guān)系,并根據(jù)新的集成規(guī)則繼續(xù)運(yùn)行,系統(tǒng)轉(zhuǎn)向執(zhí)行新的任務(wù)。 本發(fā)明為系統(tǒng)的集成開(kāi)發(fā)過(guò)程提供了方法、工具和運(yùn)行環(huán)境的支持,可用于各種
系統(tǒng)的集成開(kāi)發(fā),其中的動(dòng)態(tài)集成開(kāi)發(fā)方法解決了已有的系統(tǒng)集成方法不能很好地適應(yīng)集
成需求變化的問(wèn)題。
權(quán)利要求
一種基于Agent的動(dòng)態(tài)集成開(kāi)發(fā)平臺(tái)系統(tǒng),包括主控平臺(tái),部署在分布式集成環(huán)境的主控節(jié)點(diǎn)上,用于對(duì)全局范圍內(nèi)的Agent進(jìn)行管理和集成任務(wù)的控制,并提供對(duì)本地Agent運(yùn)行時(shí)的支持,控制非主控平臺(tái)實(shí)現(xiàn)分布式系統(tǒng)的集成;非主控平臺(tái),根據(jù)系統(tǒng)的集成需求,部署在0到多個(gè)節(jié)點(diǎn)上,用于對(duì)本地Agent進(jìn)行管理,提供對(duì)本地Agent運(yùn)行時(shí)的支持;所述的主控平臺(tái)包括用于運(yùn)行時(shí)管理的全局管理工具、用于運(yùn)行時(shí)支持的本地管理工具以及用于開(kāi)發(fā)階段支持的開(kāi)發(fā)設(shè)計(jì)工具;所述的非主控平臺(tái)包括用于運(yùn)行時(shí)支持的本地管理工具,以及用于開(kāi)發(fā)階段支持的開(kāi)發(fā)設(shè)計(jì)工具。
2. 根據(jù)權(quán)利要求1所述的基于Agent的集成開(kāi)發(fā)平臺(tái)系統(tǒng),其中所述的全局管理工具 包括CRC(111)、AMS(112)、CMB(113)和控制集成工具(114),該CRC(lll)分別與CMB(113) 和集成控制工具(114)進(jìn)行交互,用于存儲(chǔ)系統(tǒng)中部署的Agent的能力信息;該CMB(113) 與CRC(lll)、 Agent進(jìn)行交互,用于實(shí)現(xiàn)合同網(wǎng)協(xié)議;該AMS(112)用于管理系統(tǒng)中部署的 Agent的地址信息和狀態(tài)信息;該控制集成工具(114)與CRC(lll)進(jìn)行交互,用于解釋集 成腳本、生成集成規(guī)則,并利用集成規(guī)則綁定服務(wù)Agent之間的協(xié)作關(guān)系,控制系統(tǒng)的集成 過(guò)程。
3. 根據(jù)權(quán)利要求1所述的基于Agent的集成開(kāi)發(fā)平臺(tái)系統(tǒng),其中所述的本地管理工具 包括Agent庫(kù)管理工具(121)、平臺(tái)配置工具(122)、平臺(tái)監(jiān)視工具(123)、數(shù)據(jù)集成引擎 (124)和MTS (125),該Agent庫(kù)管理工具(121)用于管理本地Agent,實(shí)現(xiàn)Agent的添加和 刪除,以及啟動(dòng)Agent的自治線程,完成Agent的初始化;該平臺(tái)配置工具(122)用于配置 系統(tǒng)運(yùn)行時(shí)環(huán)境信息;該平臺(tái)監(jiān)控工具(123)與MTS(125)進(jìn)行交互,位于MTS(125)的上 層,用于監(jiān)控系統(tǒng)的運(yùn)行信息;該數(shù)據(jù)集成引擎(124)用于對(duì)Agent間通信中存在異構(gòu)數(shù)據(jù) 進(jìn)行轉(zhuǎn)換;該MTS(125)為系統(tǒng)中的其它模塊提供消息傳輸服務(wù)。
4. 根據(jù)權(quán)利要求1所述的基于Agent的集成開(kāi)發(fā)平臺(tái)系統(tǒng),其中所述的設(shè)計(jì)開(kāi)發(fā)工具 包括Agent包裝工具(101)、腳本設(shè)計(jì)工具(103)和數(shù)據(jù)集成開(kāi)發(fā)工具(102),該Agent包 裝工具(101)用于Agent的開(kāi)發(fā),生成功能Agent和服務(wù)Agent ;該腳本設(shè)計(jì)工具(103)用 于設(shè)計(jì)集成腳本,對(duì)集成腳本進(jìn)行詞法、語(yǔ)法、流程的檢查;該數(shù)據(jù)集成開(kāi)發(fā)工具(102)根 據(jù)Agent的定義文件以及數(shù)據(jù)轉(zhuǎn)換的映射規(guī)則,生成數(shù)據(jù)轉(zhuǎn)換配置文件。
5. 根據(jù)權(quán)利要求4所述的基于Agent的集成開(kāi)發(fā)平臺(tái)系統(tǒng),其中所述的Agent包裝工 具生成的功能Agent包括Agent自治線程(300),通過(guò)Agent庫(kù)管理工具(121)進(jìn)行初始化和啟動(dòng),與消息處理 器(302)和狀態(tài)監(jiān)控模塊(305)進(jìn)行交互,用于處理接收到的消息和維護(hù)自身的狀態(tài); 消息隊(duì)列(301),與消息處理器(302)進(jìn)行交互,用于緩存發(fā)送和接收的消息; 消息處理器(302),與協(xié)作引擎(303)進(jìn)行交互,用于處理接收到的消息; 協(xié)作引擎(303),與投標(biāo)管理器(306)和調(diào)度規(guī)劃器進(jìn)行交互,用于控制Agent之間的 協(xié)作過(guò)程;規(guī)劃調(diào)度器(304),用于調(diào)用能力庫(kù)中的能力,完成設(shè)定的任務(wù); 狀態(tài)監(jiān)控(305),用于監(jiān)控自身狀態(tài)的變化;投標(biāo)管理器(306),用于管理投標(biāo)過(guò)程;能力庫(kù)(307),用于保存功能Agent的能力信息。
6. 根據(jù)權(quán)利要求4所述的基于Agent的集成開(kāi)發(fā)平臺(tái)系統(tǒng),其中所述的Agent包裝工 具生成的服務(wù)Agent包括 Agent自治線程(500),通過(guò)Agent庫(kù)管理工具(121)進(jìn)行初始化和啟動(dòng),與消息處理 器(502)和狀態(tài)監(jiān)控模塊(505)進(jìn)行交互,用于處理接收到的消息和維護(hù)自身的狀態(tài); 消息隊(duì)列(501),與消息處理器(502)進(jìn)行交互,用于緩存發(fā)送和接收的消息; 消息處理器(502),與協(xié)作引擎(503)進(jìn)行交互,用于處理接收到的消息; 協(xié)作引擎(503),與規(guī)劃調(diào)度器進(jìn)行交互,用于控制Agent間的協(xié)作過(guò)程; 規(guī)劃調(diào)度器(504),與招標(biāo)管理器進(jìn)行交互,用于解釋服務(wù)流程; 狀態(tài)監(jiān)控(505),用于監(jiān)控自身狀態(tài)的變化; 服務(wù)庫(kù)(506),用于保存服務(wù)Agent的服務(wù)信息; 規(guī)則庫(kù)(507),用于保存系統(tǒng)集成中使用的集成規(guī)則; 招標(biāo)管理器(508),用于管理招標(biāo)過(guò)程; 熟人庫(kù)(509),用于保存Agent的熟人信息。
7. —種基于Agent的動(dòng)態(tài)集成開(kāi)發(fā)方法,包括如下步驟(1) 分析被集成系統(tǒng)各模塊的接口信息和模塊之間的交互關(guān)系,確定系統(tǒng)中存在的功 能Agent、服務(wù)Agent以及Agent之間的層次關(guān)系;(2) 根據(jù)確定的功能Agent、服務(wù)Agent以及Agent之間的層次關(guān)系,對(duì)功能Agent的 接口以及服務(wù)Agent的接口和服務(wù)流程進(jìn)行設(shè)計(jì);(3) 根據(jù)步驟(2)的設(shè)計(jì),利用Agent包裝工具對(duì)功能Agent和服務(wù)Agent進(jìn)行包裝, 生成功能Agent的定義文件、能力組件以及服務(wù)Agent的定義文件,將包裝后的功能Agent 和服務(wù)Agent部署到系統(tǒng)中,并根據(jù)系統(tǒng)的集成需求,利用腳本設(shè)計(jì)工具編寫(xiě)集成腳本;(4) 利用控制集成工具解釋集成腳本,生成集成規(guī)則,分發(fā)給參與系統(tǒng)集成的服務(wù) Agent,綁定與其它服務(wù)Agent間的協(xié)作關(guān)系,完成系統(tǒng)的集成;(5) 向參與系統(tǒng)集成的服務(wù)Agent發(fā)送啟動(dòng)命令,服務(wù)Agent接受到命令后,根據(jù)集成 規(guī)則自主與其它服務(wù)Agent進(jìn)行協(xié)作,系統(tǒng)開(kāi)始運(yùn)行;在系統(tǒng)運(yùn)行期間,通過(guò)腳本的動(dòng)態(tài)切 換策略和動(dòng)態(tài)招標(biāo)策略實(shí)現(xiàn)系統(tǒng)的動(dòng)態(tài)集成。
8. 根據(jù)權(quán)利要求7所述的基于Agent的動(dòng)態(tài)集成開(kāi)發(fā)方法,其中步驟(5)所述的腳本 的動(dòng)態(tài)切換策略,是按照如下步驟進(jìn)行切換(8a)在系統(tǒng)運(yùn)行期間,集成需求發(fā)生改變時(shí),重新分析被集成系統(tǒng)各模塊間的集成邏 輯,確定服務(wù)Agent之間的交互關(guān)系,編寫(xiě)新的集成腳本;(8b)利用控制集成工具解釋新的集成腳本,生成集成規(guī)則,分發(fā)集成規(guī)則到參與系統(tǒng) 集成的服務(wù)Agent ;(8c)服務(wù)Agent接收到集成規(guī)則后,替換已有的集成規(guī)則,利用接收到的集成規(guī)則重 新綁定與其它服務(wù)Agent間的協(xié)作關(guān)系,并根據(jù)新的集成規(guī)則繼續(xù)運(yùn)行;(8d)發(fā)送命令到?jīng)]有參與集成的服務(wù)Agent,停止服務(wù)Agent的運(yùn)行,系統(tǒng)轉(zhuǎn)向執(zhí)行新 的任務(wù),完成腳本的動(dòng)態(tài)切換。
9. 根據(jù)權(quán)利要求7所述的基于Agent的動(dòng)態(tài)集成開(kāi)發(fā)方法,其中步驟(5)所述的動(dòng)態(tài)招標(biāo)策略,是按照如下步驟進(jìn)行招標(biāo)(9a)服務(wù)Agent向CMB發(fā)送招標(biāo)請(qǐng)求;(9b) CMB收到招標(biāo)請(qǐng)求后,向CRC查找符合投標(biāo)條件的功能Agent,并向查找到的功能 Agent發(fā)送投標(biāo)邀請(qǐng);(9c)收到投標(biāo)邀請(qǐng)的功能Agent根據(jù)自身情況選擇是否參與投標(biāo),并將結(jié)果發(fā)送給CMB ;(9d)CMB從參與投標(biāo)的Agent中選擇一個(gè)作為中標(biāo)Agent,并將中標(biāo)Agent的信息發(fā)送 給招標(biāo)的服務(wù)Agent ;(9e)招標(biāo)的服務(wù)Agent收到CMB返回的中標(biāo)Agent的信息后,向中標(biāo)的Agent發(fā)送確 認(rèn)消息;(9f)中標(biāo)的Agent確認(rèn)消息后,招標(biāo)的服務(wù)Agent將中標(biāo)的Agent加為自己的熟人,并進(jìn)行協(xié)作,動(dòng)態(tài)招標(biāo)過(guò)程結(jié)束;(9g)如果在步驟(9b)中CMB沒(méi)有查到符合投標(biāo)條件的功能Agent,則保存標(biāo)書(shū),當(dāng)有 新的功能Agent被部署到平臺(tái)中時(shí),CRC將新部署的Agent信息通知CMB,如果符合投標(biāo)的 條件則CMB向新部署的功能Agent發(fā)送投標(biāo)邀請(qǐng),然后執(zhí)行步驟(9c)至步驟(9f)。
全文摘要
本發(fā)明公開(kāi)了一種基于Agent的系統(tǒng)動(dòng)態(tài)集成開(kāi)發(fā)平臺(tái)系統(tǒng)及方法,主要解決現(xiàn)有系統(tǒng)集成方法適應(yīng)集成需求變化差的問(wèn)題。整個(gè)系統(tǒng)包括主控平臺(tái)和非主控平臺(tái),其中主控平臺(tái)部署在分布式集成環(huán)境的主控節(jié)點(diǎn)上,包括用于運(yùn)行時(shí)管理的全局管理工具、用于運(yùn)行時(shí)支持的本地管理工具和用于開(kāi)發(fā)階段支持的開(kāi)發(fā)設(shè)計(jì)工具;非主控平臺(tái)部署在分布式集成開(kāi)發(fā)環(huán)境的非主控節(jié)點(diǎn)上,包括用于運(yùn)行時(shí)支持的本地管理工具和用于開(kāi)發(fā)階段支持的開(kāi)發(fā)設(shè)計(jì)工具。本發(fā)明提供一種基于Agent的動(dòng)態(tài)集成開(kāi)發(fā)框架、模型和方法,并將Agent應(yīng)用到系統(tǒng)的集成開(kāi)發(fā)中,降低了集成后系統(tǒng)模塊之間的耦合度,有效的提高系統(tǒng)集成的靈活性、適應(yīng)性和動(dòng)態(tài)性。本發(fā)明可用于各種系統(tǒng)的集成開(kāi)發(fā),特別是集成需求不斷變化的系統(tǒng)。
文檔編號(hào)G06F9/44GK101710281SQ20091021944
公開(kāi)日2010年5月19日 申請(qǐng)日期2009年12月11日 優(yōu)先權(quán)日2009年12月11日
發(fā)明者嚴(yán)體華, 劉鶴, 李青山, 胡圣明, 蔣丹, 贠海順 申請(qǐng)人:西安電子科技大學(xué)