黑板模式(張保海)


黑板模式

簡介:

黑板模式是一種常用的架構模式,應用中的多種不同數據處理邏輯相互影響和協同來完成數據分析處理。黑板模式允許多個消息讀寫者同時存在,消息的生產者和消費者完全分開。這就像一個黑板,任何一個教授(消息的生產者)都可以在其上書寫消息,任何一個學生(消息的消費者)都可以從黑板上讀取消息,兩者在空間和時間上可以解耦,並且互不干擾。這種模式對於沒有確定解決方案策略的問題是有用的。黑板模式由3個主要組成部分組成。

黑板模式一般不會對架構產生什么影響,但它通常會要求有一個清晰的消息結構。黑板模式一般都會提供一系列的過濾器,以便消息的消費者不再接觸到與自己無關的消息。在實際開發中,黑板模式常見的有兩種實現方式:

  數據庫作為黑板

  利用數據庫充當黑板,生產者更新數據信息,不同的消費者共享數據庫中信息,這是最常見的實現方式。該方式在技術上容易實現,開發量較少,熟悉度較高。缺點是在大量消息和高頻率訪問的情況下,性能會受到一定影響。在該模式下,消息的讀取是通過消費者主動“拉取”,因此該模式也叫做“拉模式”。

(1)知識源:包含獨立的、與應用程序相關的知識,知識源之間不直接進行通訊,它們之間的交互只通過黑板來完成。

(2)黑板數據結構:按照與應用程序相關的層次來組織並解決問題的數據,知識源通過不斷地改變黑板數據來解決問題。

(3)控制組件;完全由黑板的狀態驅動,黑板狀態的改變決定了需要使用的特定知識。

以語音識別為例:
  語音識別黑板里邊就是語言包 ;語言包就是知識源,控制機構就是管理語言包的,當你說一句話,不知道是什么語言,所以時非確定性的問題,控制機構把你說的話對應的語言包給你看,這就是黑板模式的流程

所有的組件都可以訪問黑板。組件可以生成添加到黑板上的新數據對象。組件在黑板上查找特定類型的數據,並通過與現有知識源的模式匹配來查找這些數據。

 

實現方式: 

A 利用數據庫  利用數據庫充當黑板,不同的應用共享數據庫中信息,並且可以更新數據信息。這也是最常見的實現方式。

 B 利用發布—訂閱模式  這種實現方式通常采用消息隊列作為黑板,隊列工作在主題模式(Topic),專家作為隊列的訂閱者,同時可以向隊列發送消息,消息會被發送至所有訂閱者。以上過程實現了專家間的信息交流。

影響黑板系統的因素

影響黑板系統設計的最大因素是引用問題本身的特性,但是支撐應用程序的黑板體系結構有許多相似的特征和構件。對於特定應用問題,黑板系統可通過選取各種黑板、知識源和控制模塊的構件來設計;也可以利用預先制定的黑板體系結構的編程環境。

典型應用

黑板系統的典型應用是信號處理領域,如網絡信息檢索、電子商務、自動控制、商業管理智能決策、語音和模式識別、智能控制領域等。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM