衛(wèi)翔 邵作浩
摘要:本文針對(duì)各類異構(gòu)仿真系統(tǒng)在信息實(shí)時(shí)傳輸、信息共享、數(shù)據(jù)維護(hù)等方面的互聯(lián)互通需求,研究了通用黑板技術(shù)的技術(shù)原理,總結(jié)了其技術(shù)優(yōu)勢(shì),設(shè)計(jì)了基于黑板技術(shù)的異構(gòu)仿真系統(tǒng)結(jié)構(gòu),為解決仿真系統(tǒng)數(shù)據(jù)實(shí)時(shí)共享難、業(yè)務(wù)協(xié)同難等問題提供了一種新的思路方案。
[關(guān)鍵詞]通用黑板 分布式 仿真系統(tǒng)
分布式交互仿真要求通過采用協(xié)調(diào)一致的結(jié)構(gòu),統(tǒng)一的數(shù)據(jù)標(biāo)準(zhǔn)、協(xié)議、數(shù)據(jù)庫,以及局域網(wǎng)或廣域網(wǎng)技術(shù),將分散配制的各類仿真器、仿真管理及應(yīng)用程序進(jìn)行互聯(lián),建立一個(gè)無縫的虛擬環(huán)境。每個(gè)分布的仿真器對(duì)應(yīng)于仿真虛擬環(huán)境中的一個(gè)或多個(gè)實(shí)體。這就需要一個(gè)“數(shù)據(jù)軟總線”,將各類應(yīng)用掛接在這個(gè)數(shù)據(jù)軟總線上,實(shí)現(xiàn)數(shù)據(jù)和信息的實(shí)時(shí)傳輸和共享。掛接在數(shù)據(jù)軟總線上的應(yīng)用程序必須要有統(tǒng)一的數(shù)據(jù)交換協(xié)議和必要的數(shù)據(jù)結(jié)構(gòu)。
近些年來出現(xiàn)了基于內(nèi)存共享的通用黑板GBB(GenericBlack-Board)技術(shù),與傳統(tǒng)技術(shù)架構(gòu)相比,GBB在信息共享、協(xié)同計(jì)算、分布控制等方面性能優(yōu)異,在業(yè)務(wù)構(gòu)造、模型開發(fā)、系統(tǒng)集成等方面也有不俗表現(xiàn),為解決信息實(shí)時(shí)共享難、業(yè)務(wù)協(xié)同難等問題,提供了一種新的思路方案。
1通用黑板概念
GBB在20世紀(jì)80年代在人工智能研究中提出,最早是用于開發(fā)基于黑板結(jié)構(gòu)的專家系統(tǒng)?;贑ommon Lisp和CLOS的擴(kuò)展,能為用戶提供一個(gè)開放式的擴(kuò)展結(jié)構(gòu),已在過程控制、設(shè)計(jì)規(guī)劃、工作流協(xié)同等方面得到應(yīng)用。隨著技術(shù)的不斷發(fā)展,通用黑板中的核心黑板數(shù)據(jù)機(jī)構(gòu)在功能和性能上也有了很大的提升。由于其高效便捷的分布式數(shù)據(jù)快速共享特點(diǎn),可以廣泛應(yīng)用于異地分布式、異構(gòu)信息系統(tǒng)集成,解決海量業(yè)務(wù)信息的高速共享、快速處理問題。
GBB是一個(gè)通用的數(shù)據(jù)倉庫。在仿真應(yīng)用時(shí),它包含了整個(gè)仿真執(zhí)行過程的應(yīng)用數(shù)據(jù),采用共享內(nèi)存空間機(jī)制,使得所有Agent能夠在任何時(shí)間訪問該數(shù)據(jù)。
GBB內(nèi)存分配采用內(nèi)存換性能的策略(即“以空間換時(shí)間”),在系統(tǒng)運(yùn)行前按本地黑板所需最大的數(shù)據(jù)量提前分配內(nèi)存空間,系統(tǒng)運(yùn)行期間,黑板不再進(jìn)行內(nèi)存分配與釋放。
GBB每塊數(shù)據(jù)區(qū)采用“讀、寫”雙緩存機(jī)制,通過雙緩存的輪轉(zhuǎn)解決多應(yīng)用數(shù)據(jù)同步問題,實(shí)現(xiàn)黑板數(shù)據(jù)的一致性,具體是通過更新循環(huán)來實(shí)現(xiàn)。在每個(gè)周期的結(jié)尾,該周期所更新的數(shù)據(jù)對(duì)所有“讀”的代理來說變成可用,而舊的數(shù)據(jù)變成“可寫”。這種“雙緩存”的機(jī)制,確保了未實(shí)現(xiàn)鎖機(jī)制的條件下,沒有代理讀取數(shù)據(jù)而另一個(gè)代理正更新數(shù)據(jù)。
2GBB技術(shù)原理
2.1GBB存儲(chǔ)結(jié)構(gòu)
GBB以關(guān)系數(shù)據(jù)庫的形式保持應(yīng)用數(shù)據(jù)。GBB主要由四類表格組成:主實(shí)體表、實(shí)體表、描述符表、消息表。圖1提供了一個(gè)表示主實(shí)體表、實(shí)體表和描述符表關(guān)系的示例。
2.1.1主實(shí)體表
主實(shí)體表保持了GBB中可用實(shí)體的列表。此表中每個(gè)條目包含了一個(gè)引用值,該引用指向?qū)嶓w表一個(gè)條目,并包含了該實(shí)體的附加通用信息。這些信息包括:
(1)實(shí)體ID:特有的標(biāo)識(shí),表示整個(gè)黑板內(nèi)某個(gè)實(shí)體。該實(shí)體ID從實(shí)體創(chuàng)建開始到刪除始終保持不變。
(2)創(chuàng)建時(shí)間:實(shí)體被創(chuàng)建和被引用到黑板中的時(shí)間。
(3)實(shí)體類型:枚舉值,定義了實(shí)體的類型。實(shí)體的類型指向一個(gè)特定的實(shí)體表,該表中實(shí)體已經(jīng)被定義。
2.1.2實(shí)體表
實(shí)體是用來表示應(yīng)用域內(nèi)的對(duì)象。不同實(shí)體類型定義了不同的數(shù)據(jù)項(xiàng),而數(shù)據(jù)項(xiàng)里包含了相關(guān)信息。
GBB保持了一組實(shí)體表,每個(gè)實(shí)體表保持了一組特定類型實(shí)體的信息。一個(gè)實(shí)體表的每個(gè)條目保持了如下數(shù)據(jù):
(1)實(shí)體ID;
(2)實(shí)體狀態(tài):對(duì)實(shí)體觀察者來說實(shí)體可用時(shí),可由用戶設(shè)置;
(3)引用:指向主實(shí)體表中相關(guān)條目。
2.1.3描述符表
描述符用來“描述”GBB中實(shí)體的數(shù)據(jù)結(jié)構(gòu)。每個(gè)描述符類型包含了數(shù)據(jù)的不同類型,可為幾種不同實(shí)體類型所用。
描述符表與主實(shí)體表和實(shí)體表不同,它用于維持應(yīng)用程序的特定數(shù)據(jù),而后兩者用于保持通用信息。每個(gè)描述符表維持特定類型的信息(由應(yīng)用程序所定義);在描述符表內(nèi)每個(gè)單一條目包含了如下信息:
(1)引用,指向相關(guān)實(shí)體(實(shí)體表內(nèi)的一個(gè)條目);
(2)最后更新時(shí)間;
(3)描述符數(shù)據(jù),每個(gè)條目包含了數(shù)據(jù)的兩份拷貝,使得“讀者”在更新新的數(shù)據(jù)時(shí),還可以查詢前一個(gè)計(jì)算周期里所更新的數(shù)據(jù)。
2.1.4消息表
GBB中的消息包含單獨(dú)的表中。每個(gè)消息表包含了特定類型的消息,也就是說特定結(jié)構(gòu)的數(shù)據(jù)。
消息表作為循環(huán)隊(duì)列來處理;當(dāng)一個(gè)表滿時(shí),舊的消息被刪除以騰出空間給新的消息。
2.2消息處理機(jī)制
分布式的應(yīng)用之間除數(shù)據(jù)交換以外,還需要進(jìn)行事件的通知,稱之為“消息”。一般采用消息管理器進(jìn)行消息分發(fā),但受網(wǎng)絡(luò)和運(yùn)行環(huán)境的影響,消息會(huì)在傳遞過程中發(fā)生丟失,延遲,業(yè)務(wù)應(yīng)用系統(tǒng)會(huì)等待這些丟失和延遲的消息,從而造成業(yè)務(wù)處理的延遲。
GBB將消息作為數(shù)據(jù)進(jìn)行處理,在本地黑板中設(shè)置消息數(shù)據(jù)區(qū),并充分運(yùn)用通用黑板中數(shù)據(jù)的快速同步機(jī)制,任何一個(gè)應(yīng)用只須讀寫共享內(nèi)存區(qū)中的消息數(shù)據(jù)區(qū),就可在近實(shí)時(shí)的時(shí)間內(nèi)獲取或發(fā)布消息信息。
因?yàn)樵诒局芷趦?nèi)發(fā)送的消息,需要等待網(wǎng)絡(luò)管理器在下一周期同步所有內(nèi)存數(shù)據(jù)區(qū)時(shí),才能更新到所有節(jié)點(diǎn),接收方在下一周期才能取到該消息數(shù)據(jù)。為保障實(shí)時(shí)性要求高的消息交互需求,GBB技術(shù)框架產(chǎn)品也提供了業(yè)務(wù)應(yīng)用間消息直接傳遞的機(jī)制。
兩種消息傳遞機(jī)制并存,使得在網(wǎng)絡(luò)中只需傳遞少量的“實(shí)時(shí)消息”即可實(shí)現(xiàn)實(shí)時(shí)交互,這在很大程度上簡(jiǎn)化了業(yè)務(wù)系統(tǒng)間的信息交互,確保了業(yè)務(wù)信息交互的實(shí)時(shí)性。
“發(fā)后不管”如何解決消息的丟失問題?本地黑板中為每個(gè)消息維護(hù)一個(gè)緩沖池,池的大小根據(jù)消息發(fā)送的頻率提前定義,從而有效的解決了消息丟失的問題。
3GBB技術(shù)優(yōu)勢(shì)
3.1信息實(shí)時(shí)共享
GBB采用輪轉(zhuǎn)式的雙緩沖內(nèi)存數(shù)據(jù)共享區(qū)技術(shù),信息更新快、信道占用少,能夠精巧解決海量、分布、異構(gòu)系統(tǒng)間信息實(shí)時(shí)同步、高效共享的老大難問題。
采用這種輪轉(zhuǎn)式的雙緩沖內(nèi)存數(shù)據(jù)共享區(qū)技術(shù),十分巧妙的將數(shù)據(jù)一致性問題轉(zhuǎn)換為內(nèi)存切換問題,可在毫秒級(jí)確保多個(gè)內(nèi)存數(shù)據(jù)區(qū)內(nèi)的一致性,極其高效地解決了分布式內(nèi)存數(shù)據(jù)區(qū)的近實(shí)時(shí)同步更新問題。由于只更新變化的數(shù)據(jù),有效降低系統(tǒng)網(wǎng)絡(luò)通信流量,同時(shí)又能充分利用當(dāng)前內(nèi)存讀寫性能、網(wǎng)絡(luò)傳輸速度提升、價(jià)格降低的優(yōu)勢(shì)。
3.2方便的數(shù)據(jù)維護(hù)機(jī)制
由于GBB技術(shù)框架的數(shù)據(jù)集中管理機(jī)制,可以使用戶能夠很方便的對(duì)本地黑板的所有數(shù)據(jù)進(jìn)行集中維護(hù),如通過GBB瀏覽器可以很方便的查看、顯示本地應(yīng)用所讀寫的所有數(shù)據(jù)。
3.3數(shù)據(jù)與應(yīng)用高度解耦
GBB技術(shù)架構(gòu)突出以數(shù)據(jù)為中心的系統(tǒng)集成思想,首先將整個(gè)系統(tǒng)的數(shù)據(jù)整合為一塊大的“邏輯黑板”,也就是完整的數(shù)據(jù)集。在進(jìn)行分布式應(yīng)用部署時(shí),從邏輯黑板中為網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)分配相應(yīng)的數(shù)據(jù)塊,即“本地黑板”。本地黑板數(shù)據(jù)的定義、分配、管理與應(yīng)用程序的處理邏輯完全無關(guān),不僅方便實(shí)現(xiàn)數(shù)據(jù)與應(yīng)用的解耦,而且也方便應(yīng)用與應(yīng)用之間的解耦。
從業(yè)務(wù)應(yīng)用的角度看,每個(gè)應(yīng)用只須從本地黑板讀寫數(shù)據(jù),不需要關(guān)注其他數(shù)據(jù)的提供者和使用者,不需要向某個(gè)指定的應(yīng)用去申請(qǐng)數(shù)據(jù),也不需要向某個(gè)指定的應(yīng)用提供數(shù)據(jù)。
從數(shù)據(jù)的角度看,所有應(yīng)用可以分為數(shù)據(jù)提供者和數(shù)據(jù)使用者,數(shù)據(jù)使用者只需關(guān)注具體的應(yīng)用功能,而無需關(guān)注數(shù)據(jù)的來源。
3.4并行處理優(yōu)勢(shì)
根據(jù)GBB這一優(yōu)勢(shì),可實(shí)現(xiàn)業(yè)務(wù)構(gòu)件根據(jù)多樣化的任務(wù)需求自由組合、即插即用,業(yè)務(wù)處理能夠方便的實(shí)現(xiàn)從傳統(tǒng)“單線”串行處理模式轉(zhuǎn)變?yōu)椤岸嗑€”并行處理模式,這種模式能夠支持當(dāng)前大數(shù)據(jù)和人工智能時(shí)代高速處理、復(fù)雜協(xié)同、智慧涌現(xiàn)等各種智能化、并行處理方法的引入。從而使我們能夠更加靈活、快速地構(gòu)建系統(tǒng),各業(yè)務(wù)系統(tǒng)可靈活配置,也使得系統(tǒng)能夠快速部署,柔性重組能力更強(qiáng)。更加適應(yīng)聯(lián)合作戰(zhàn)體系海量信息共享、決策知識(shí)涌現(xiàn)、多維業(yè)務(wù)協(xié)同的要求。
3.5協(xié)同開發(fā)優(yōu)勢(shì)
通用黑板技術(shù)的提出背景就是為了解決人工智能中的協(xié)同工作問題,其運(yùn)行機(jī)制為協(xié)同開發(fā)提供了便利條件。
在復(fù)雜系統(tǒng)的研究與工作中,必然會(huì)涉及到多人異地的協(xié)同并行開發(fā)。協(xié)同開發(fā)的本質(zhì)問題就是如何解決異地分布式開發(fā)條件下的成果共享。GBB提供了一種基于黑板的信息交流機(jī)制。該機(jī)制由網(wǎng)絡(luò)管理員、本地管理員、本地黑板組成,本地黑板是指在網(wǎng)絡(luò)中的每臺(tái)計(jì)算設(shè)備上創(chuàng)建的共享內(nèi)存數(shù)據(jù)區(qū),本地管理員負(fù)責(zé)創(chuàng)建、維護(hù)本地黑板上的數(shù)據(jù),網(wǎng)絡(luò)管理員負(fù)責(zé)確保網(wǎng)絡(luò)上所有節(jié)點(diǎn)的本地黑板數(shù)據(jù)的一致性。
每個(gè)應(yīng)用讀寫本地黑板的內(nèi)容,本地管理員提供相關(guān)讀寫服務(wù),當(dāng)本地黑板有數(shù)據(jù)更新時(shí),本地管理員會(huì)發(fā)出通知,并由網(wǎng)絡(luò)管理員負(fù)責(zé)將更新后的數(shù)據(jù)發(fā)布到其他節(jié)點(diǎn)的本地黑板,完成網(wǎng)絡(luò)上數(shù)據(jù)的一致性。
4基于GBB的分布式仿真系統(tǒng)應(yīng)用
在仿真領(lǐng)域,多Agent系統(tǒng)(MAS,Multi-AgentSystems)是由若干自主交互實(shí)體(Agents)組成的,每個(gè)Agent通常執(zhí)行一個(gè)指定的任務(wù)或模擬一個(gè)智能的實(shí)體。MAS的繼承結(jié)構(gòu)為分布系統(tǒng)和創(chuàng)建分布式Agent系統(tǒng)提供極大的優(yōu)勢(shì)。在分布式多Agent系統(tǒng)(DMAS,DistributedMulti-AgentSystems)中,Agent分布在網(wǎng)絡(luò)空間中,突破了單機(jī)計(jì)算能力的限制。
如圖2所示,GBB框架設(shè)計(jì)為DMAS,其中的黑板作為主要信息的倉儲(chǔ)、應(yīng)用Agent間數(shù)據(jù)交換的機(jī)制,提供全系統(tǒng)的明細(xì)和通告服務(wù)。GBB處于系統(tǒng)架構(gòu)的核心。該架構(gòu)背后的主要概念是創(chuàng)建一個(gè)聯(lián)合的數(shù)據(jù)倉儲(chǔ),使得多個(gè)軟件Agent在需要時(shí)來訪問和修改數(shù)據(jù),這樣使整個(gè)系統(tǒng)進(jìn)行時(shí)間異步操作,同時(shí)通過強(qiáng)制事件驅(qū)動(dòng)操作來保證同步。架構(gòu)的頂層是基于GBB的應(yīng)用和DMAS,包括圖中的系統(tǒng)工具部分和應(yīng)用程序部分,以及GBB記錄和回放應(yīng)用程序。
GBB就是一個(gè)分布在節(jié)點(diǎn)之間的通用的數(shù)據(jù)倉儲(chǔ),使得應(yīng)用數(shù)據(jù)能夠被每個(gè)節(jié)點(diǎn)中的Agent所獲得。該數(shù)據(jù)倉儲(chǔ)由兩個(gè)應(yīng)用支持:GBB管理器(GBBManager)負(fù)責(zé)每個(gè)獨(dú)立節(jié)點(diǎn)中倉儲(chǔ)的創(chuàng)建和維護(hù),SNA(SerialNetworkAdapter)負(fù)責(zé)數(shù)據(jù)的分發(fā)和節(jié)點(diǎn)間的同步。該架構(gòu)的主要指導(dǎo)思想是:
(1)Agent之間的全部交互都要通過GBB;
(2)在所有的系統(tǒng)節(jié)點(diǎn)中,分布的數(shù)據(jù)都是一*樣的;
(3)一個(gè)Agent并不需要知曉其它Agent的動(dòng)作和知識(shí)。
5總結(jié)
GBB通用黑板技術(shù)適用于大型分布式仿真系統(tǒng)的基礎(chǔ)內(nèi)核和底層支撐框架。采用GBB技術(shù),可以非常方便的實(shí)現(xiàn)分布式仿真計(jì)算,將大量的復(fù)雜模型根據(jù)計(jì)算量的大小合理配置到不同的仿真節(jié)點(diǎn),充分發(fā)揮計(jì)算機(jī)網(wǎng)絡(luò)中的硬件計(jì)算資源,大大提高了仿真模型的計(jì)算效率;采用GBB技術(shù),實(shí)現(xiàn)了本地黑板數(shù)據(jù)的快速讀寫,以及網(wǎng)絡(luò)數(shù)據(jù)的高速共享;同時(shí)也方便實(shí)現(xiàn)復(fù)雜仿真系統(tǒng)的分布式集成與部署。
通用黑板相比傳統(tǒng)技術(shù)架構(gòu),先進(jìn)性包容性更強(qiáng),特別是在信息共享、協(xié)同計(jì)算、分布控制等方面性能優(yōu)異,在業(yè)務(wù)構(gòu)造、模型開發(fā)、系統(tǒng)集成等方面也有不俗表現(xiàn),為解決信息系統(tǒng)實(shí)時(shí)共享難、業(yè)務(wù)協(xié)同難等問題,提供了一種新的技術(shù)方案。
參考文獻(xiàn)
[1] Nii P H. Blackboard systemsblackboard application , systems,blackboard system from a knowledgeengineering perspective[J]. AIMagazine,1986, 7(3):82-106.
[2]Corki1l D D. Countdown to success:dynamic objects, GBB and RADARSAT-1 [J]. Communications of the ACM,1997,40(5): 49-58.
[3]侯平魁,史習(xí)智,林良驥?;谕ㄓ煤诎宓臄?shù)據(jù)融合系統(tǒng)[J]上海交通大學(xué)學(xué)報(bào),2000,34(05):1200-1205.
[4]李明軍,李偉華,何華燦,基于黑板Agent結(jié)構(gòu)的應(yīng)用模塊工作流通用模板設(shè)計(jì)[J].計(jì)算機(jī)工程與應(yīng)用,2001,37(14):11-12.