軟件架構之黑板模式

黑板模式算法

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

優缺點:數據結構

黑板模式的優勢:可用於非肯定性問題求解,啓發式解決過程,可維護性,可重用架構

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

實際應用優化

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

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  語音是漢語

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

相關文章
相關標籤/搜索