黑板模式

  黑板模式是一種經常使用的架構模式,應用中的多種不一樣數據處理邏輯相互影響和協同來完成數據分析處理。就好像多位不一樣的專家在同一黑板上交流思想,每一個專家均可以得到別的專家寫在黑板上的信息,同時也能夠用本身的分析去更新黑板上的信息,從而影響其它專家。數據庫

  

應用場景

黑板模式的應用場景是要解決的任務能夠分爲多個子任務。解決方案以下圖所示:
 

 

優缺點


黑板模式的優勢:可用於非肯定性問題求解,啓發式解決過程,可維護性,可重用
不足:不能確保指望結果,效率低下,回退,不支持並行,共享空間的訪問須要同步
 

實際應用

在實際應用中常見的實現模式有:
A 利用數據庫
利用數據庫充當黑板,不一樣的應用共享數據庫中信息,而且能夠更新數據信息。這也是最多見的實現方式。
特色:
1 便於實現信息的查詢,篩選和統計,這方面關係數據庫提供了SQL 92的強大支持。
2 不能用於較高實時性要求的環境,這種實現是工做在「拉模式」下的,而且高頻率的訪問數據庫會致使嚴重的系統性能問題。
B 利用發佈—訂閱模式
這種實現方式一般採用消息隊列做爲黑板,隊列工做在主題模式(Topic),專家做爲隊列的訂閱者,同時能夠向隊列發送消息,消息會被髮送至全部訂閱者。以上過程實現了專家間的信息交流。
特色:
1 能夠有效應用於實時性要求較高的系統,這種實現工做在「推模式」下。
2 難於實現信息的統計分析,不像實現方式一那樣能夠經過SQL支持,這些工做必須開發者本身完成。
 

典型應用

信號處理領域,數據庫,人工智能系統,如網絡信息檢索、電子商務、自動控制、辦公自動化、商業管理智能決策、語音和模式識別、智能控制領域等。

黑板模式由3個主要組成部分組成。網絡

  • 黑板——包含來自解決方案空間的對象的結構化全局內存
  • 知識源——專門的模塊和它們本身的表示
  • 控制組件——選擇、配置和執行模塊

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

 類圖以下:

 

解決方案

黑板架構背後的理念是,一系列獨立的程序攜手合做,致力於處理同一個數據結構。 
在解決問題的過程當中,系統經過合併、修正或否決部分解來完成工做。每一個部分解都針對一個子問題,是這個子問題的最終解在特定階段的表現形式。全部的可能解構成解空間,並被組織成多個抽象層級,其中最低層爲輸入的內部表示,最高層包含系統要解決的整個問題的可能解。 
之因此使用名稱「黑板」(blackboard),是由於它讓人想起專家們站在黑板前協做解決問題的情形。專家們一般自行決定截下來該由誰來到黑板前,而在這裏介紹的模式中,若是有多個程序都能提供幫助,將由調停者(moderator)組件決定這些程序的執行順序。架構

結構

對系統進行劃分,使其包含一個黑板組件、一系列知識源以及一個控制組件。 
黑板爲中央數據存儲區,解空間中的元素及控制數據都存儲在這裏。黑板提供了一個接口,讓全部知識源都可以對其進行讀寫。 
每一個知識源都是一個獨立的子系統,解決整個問題的特定方面。 
控制組件運行一個監視黑板內容變化的循環,並決定接下來採起什麼措施。性能

實現

  1. 定義問題。
  2. 定義問題的解空間。咱們將解分爲中間解和頂級解,還將其分爲部分解和完整解。頂級解位於最高抽象層級,其餘層級的解爲中間解。完整解是整個問題的答案,而部分解是部分問題的答案。
  3. 將求解過程分爲以下步驟: (1)定義如何將解轉換爲上一層級的解。(2)描繪如何做出同一抽象層級的推測。(3)詳細說明如何從其餘層級尋找證據,以證明作出的推測。(4)指出可利用什麼樣的知識將部分解空間排除在外。
  4. 根據子任務將知識劃分爲專業知識源。
  5. 定義黑板的詞表。
  6. 規範系統的控制機制。
  7. 實現知識源。
相關文章
相關標籤/搜索