1、定義數據庫
黑板模式是一種經常使用的架構模式,應用中的多種不一樣數據處理邏輯相互影響和協同來完成數據分析處理。黑板模式容許多個消息讀寫者同時存在,消息的生產者和消費者徹底分開。這就像一個黑板,任何一個教授(消息的生產者)均可以在其上書寫消息,任何一個學生(消息的消費者)均可以從黑板上讀取消息,二者在空間和時間上能夠解耦,而且互不干擾。這種模式對於沒有肯定解決方案策略的問題是有用的。編程
2、模式組成網絡
黑板模式由3個主要組成部分組成。數據結構
(1)知識源:包含獨立的、與應用程序相關的知識,知識源之間不直接進行通信,它們之間的交互只經過黑板來完成。架構
(2)黑板數據結構:按照與應用程序相關的層次來組織並解決問題的數據,知識源經過不斷地改變黑板數據來解決問題。性能
(3)控制組件;徹底由黑板的狀態驅動,黑板狀態的改變決定了須要使用的特定知識。spa
黑板模式通常不會對架構產生什麼影響,但它一般會要求有一個清晰的消息結構。黑板模式通常都會提供一系列的過濾器,以便消息的消費者再也不接觸到與本身無關的消息。在實際開發中,黑板模式常見的有兩種實現方式:設計
(一)數據庫做爲黑板對象
利用數據庫充當黑板,生產者更新數據信息,不一樣的消費者共享數據庫中信息,這是最多見的實現方式。該方式在技術上容易實現,開發量較少,熟悉度較高。缺點是在大量消息和高頻率訪問的狀況下,性能會受到必定影響。在該模式下,消息的讀取是經過消費者主動「拉取」,所以該模式也叫作「拉模式」。隊列
(二)以語音識別爲例:
語音識別黑板裏邊就是語言包 ;語言包就是知識源,控制機構就是管理語言包的,當你說一句話,不知道是什麼語言,因此時非肯定性的問題,控制機構把你說的話對應的語言包給你看,這就是黑板模式的流程
全部的組件均可以訪問黑板。組件能夠生成添加到黑板上的新數據對象。組件在黑板上查找特定類型的數據,並經過與現有知識源的模式匹配來查找這些數據。
3、模式實現
(一)利用數據庫
利用數據庫充當黑板,不一樣的應用共享數據庫中信息,而且能夠更新數據信息。這也是最多見的實現方式。
(二)利用發佈—訂閱模式
這種實現方式一般採用消息隊列做爲黑板,隊列工做在主題模式(Topic),專家做爲隊列的訂閱者,同時能夠向隊列發送消息,消息會被髮送至全部訂閱者。以上過程實現了專家間的信息交流。
4、影響黑板系統的因素
影響黑板系統設計的最大因素是引用問題自己的特性,可是支撐應用程序的黑板體系結構有許多類似的特徵和構件。對於特定應用問題,黑板系統可經過選取各類黑板、知識源和控制模塊的構件來設計;也能夠利用預先制定的黑板體系結構的編程環境。
5、應用實例
黑板系統的典型應用是信號處理領域,如網絡信息檢索、電子商務、自動控制、商業管理智能決策、語音和模式識別、智能控制領域等
實際應用
在實際應用中常見的實現模式有:
A 利用數據庫
利用數據庫充當黑板,不一樣的應用共享數據庫中信息,而且能夠更新數據信息。這也是最多見的實現方式。
特色:
1 便於實現信息的查詢,篩選和統計,這方面關係數據庫提供了SQL 92的強大支持。
2 不能用於較高實時性要求的環境,這種實現是工做在「拉模式」下的,而且高頻率的訪問數據庫會致使嚴重的系統性能問題。
B 利用發佈—訂閱模式
這種實現方式一般採用消息隊列做爲黑板,隊列工做在主題模式(Topic),專家做爲隊列的訂閱者,同時能夠向隊列發送消息,消息會被髮送至全部訂閱者。以上過程實現了專家間的信息交流。
特色:
一、能夠有效應用於實時性要求較高的系統,這種實現工做在「推模式」下。
二、難於實現信息的統計分析,不像實現方式一那樣能夠經過SQL支持,這些工做必須開發者本身完成。
6、優缺點分析
優勢:可用於非肯定性問題求解,啓發式解決過程,可維護性,可重用
缺點:不能確保指望結果,效率低下,回退,不支持並行,共享空間的訪問須要同步