軟件架構之黑板模式


黑板模式

定義:黑板模式是一種常用的架構模式,應用中的多種不同數據處理邏輯相互影響和協同來完成數據分析處理。就好像多位不同的專家在同一黑板上交流思想,每個專家都可以獲得別的專家寫在黑板上的信息,同時也可以用自己的分析去更新黑板上的信息,從而影響其它專家。

優缺點:

黑板模式的優點:可用於非確定性問題求解,啟發式解決過程,可維護性,可重用

不足:不能確保期望結果,效率低下,回退,不支持並行,共享空間的訪問需要同步

實際應用

在實際應用中常見的實現模式有:

A 利用數據庫

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

特點:

1 便於實現信息的查詢,篩選和統計,這方面關系數據庫提供了SQL 92的強大支持。

2 不能用於較高實時性要求的環境,這種實現是工作在“拉模式”下的,並且高頻率的訪問數據庫會導致嚴重的系統性能問題。

B 利用發布—訂閱模式

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

特點:

1 可以有效應用於實時性要求較高的系統,這種實現工作在“推模式”下。

2 難於實現信息的統計分析,不像實現方式一那樣可以通過SQL支持,這些工作必須開發者自己完成。

黑板架構風格:黑板架構包括知識源、黑板和控制3個部分。知識源包括若干獨立計算的不同單元,提供解決問題的知識,知識源響應黑板上的變化,也只修改黑板。黑板是一個全局數據庫,包含解域的全部狀態,是知識源互相作用的唯一媒介。知識源響應是通過黑板狀態的變化來控制。黑板通常應用在對於解決問題沒有確定性算法的系統中,例如信號處理、問題規划及編譯器優化等軟件系統的設計中。

 

這種模式對於沒有確定解決方案策略的問題是有用的。黑板模式由3個主要組成部分組成。

黑板——包含來自解決方案空間的對象的結構化全局內存

知識源——專門的模塊和它們自己的表示

控制組件——選擇、配置和執行模塊

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

使用場景:

語音識別

車輛識別和跟蹤

蛋白質結構識別

聲納信號的解釋

 

應用背景:黑板模式解決沒有確定可行的解決方案,將原始數據轉換為高級數據結構(圖表或英語詞組)。存在這些問題的領域包括視覺識別,圖像識別,語音識別和監視等。這種問題具體如下特點:可分解成多個子問題,但每個子問題都屬於不同的專業領域。

對於這種問題,影響其解決方案的作用力如下:

  1. 不可能在合理的時間內遍歷整個解空間;

  2. 鑒於領域不成熟,可能需要對同一個子任務嘗試不同的算法;

  3. 子問題的算法各不相同;

  4. 輸入,中間結果和最終結果的表示方式各不相同,而不同算法是根據不同范式實現的;

  5. 一個算法通常使用另一個算法的結果;

  6. 涉及不可靠的數據和近似解;

  7. 算法的執行順序不確定時還可能要求支持並行性。

    可解決的問題:可分解成多個子問題,但每個子問題都屬於不同的專業領域。

    解決方案:黑板模式正是來解決這種問題的,黑板模式就好像多位不同的專家在同一黑板上交流思想,每個專家都可以獲得別的專家寫在黑板上的信息,同時也可以用自己的分析去更新黑板上的信息,從而影響其它專家,正好解決了可分解成多個子問題,但每個子問題都屬於不同的專業領域的問題。

    實例分析:語音識別(語音翻譯)

    系統可以識別漢語,英語,俄語,意大利語,法語,日語這6種語言。

    數據庫存放事實:英式英語,美式英語,語言的各種方言

    判定那種語言?

    TF  語音是四川話  THEN 語音是漢語

    TF 語音是美式英語  THEN 語音是英語

    TF 語音是粵語  THEN 語音粵語

    TF 語音是河南話和普通話   THEN  語音是漢語

    解釋:每種語言屬於不同領域,每個語音可能摻雜多種語言,要解析就要分解,黑板模式適用  


免責聲明!

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



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