黑板模式(張保海)

2022-05-08 16:12:12 字數 1103 閱讀 4453

黑板模式

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

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

資料庫作為黑板

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

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

以語音識別為例:

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

所有的元件都可以訪問黑板。元件可以生成新增到黑板上的新資料物件。元件在黑板上查詢特定型別的資料,並通過與現有知識源的模式匹配來查詢這些資料。

實現方式: 

a 利用資料庫  利用資料庫充當黑板,不同的應用共享資料庫中資訊,並且可以更新資料資訊。這也是最常見的實現方式。

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

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

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

設計模式 黑板模式

黑板模式 blackboard design pattern 是觀察者模式的乙個擴充套件 允許訊息的讀寫同時進行,廣泛地互動訊息。黑板模式允許多個訊息讀寫者同時存在,訊息的生產者和消費者完全分開,兩者在空間和時間上可以解耦,並且互不干擾。黑板模式是訊息的廣播,主要解決訊息的生產者和消費者之間的耦合問...

設計模式之黑板模式

黑板模式是觀察者模式的乙個擴充套件,知名度並不高,但使用的範圍卻非常廣.其意圖為 允許訊息的讀寫同時進行,廣泛的互動訊息.簡單的說,黑板模式允許多個訊息讀寫者同時存在,訊息的生產者和消費者完全分開.這就像乙個黑板,任何乙個老師 訊息的生產者 都可以在上面書寫訊息,任何乙個學生 訊息的消費者 都可以從...

設計模式之黑板模式

黑板模式是觀察者模式的乙個擴充套件,知名度並不高,但使用的範圍卻非常廣.其意圖為 允許訊息的讀寫同時進行,廣泛的互動訊息.簡單的說,黑板模式允許多個訊息讀寫者同時存在,訊息的生產者和消費者完全分開.這就像乙個黑板,任何乙個老師 訊息的生產者 都可以在上面書寫訊息,任何乙個學生 訊息的消費者 都可以從...