21

私は何年も前からBlackboard パターンに興味を持っていましたが(特に AI を勉強していたとき)、学界以外での適切な実装をまだ見つけることができませんでした。ソフトウェア開発のトレンドを考えると、パターンを中心に構築された大きなフレームワークは思い浮かびません。

このパターンに関連する成功談や失敗談を知っている人はいますか?

注:その他のリンク

  • 外部リンク 1
  • 外部リンク 2

編集:パターンがマッシュアップ可能なエコシステムなどのパターンとして使用される可能性があるかどうか疑問に思っています

編集:さらに調査した後、ウィキペディアは黒板のようなものを提案している興味深い論文を見つけましたが、エージェントとしての人間に依存しています。その結果、StackOverflow はほぼ Blackboard システムであり、私たちエージェントが、ボード上に設定された未解決の問題に関する専門知識を共有していることに気付きました... とにかく、考える材料です。

4

5 に答える 5

9

黒板パターンは共同作業に適しています。それ以外は、あまり良い考えではないと思う傾向があります。

黒板は、あらゆる種類の興味深いアクセス パターンを作成する共有状態の大きな袋として終わる傾向があります。現代の言語と技術はすべて、状態管理を可能な限りカプセル化して制御しようとしますが、黒板はまったく逆です。

アルゴリズムで使用されていることがわかったときは、通常、解決すべき問題を事前に適切に理解していないことを示しています。したがって、「安全のために」、あまりにも多くの状態をあまりにも多くのアクターが利用できるようにします。

私はこのパターンを 2 つのアプリケーションから削除し、実際の機能とデータ要件を表す優れた堅牢なインターフェイスに置き換えましたが、どちらも成功しました ;)

于 2009-01-26T07:51:35.147 に答える
8

私の見解では、制約のあるデータセットがあり、複数のアクターが並行して作業でき、データセットを改良して再改良する必要がある場合、黒板パターンは非常にうまく機能します。非常にシンプルなインターフェイスを使用して、アクターを完全に個別に記述し、すべて非同期で実行することができます。

これの良い候補として、私たちのシステムがあります。

私たちの視覚システムにはいくつかの基本的なデータ (画像) があり、これらから新しいデータを生成する多くのアルゴリズムがあります。あるアルゴリズムが他のアルゴリズムが生成する情報をうまく利用できることはよくありますが、これらを共有する方法は非常に貧弱です。なぜなら、oo-system のメッセージを介した通常の引数では、すぐにリストが大きくなり、処理しきれなくなるからです。また、プロセスの後半で見つけた情報によって初期の推測が改善されるという問題もありますが、これを行うと、引数のパイプライン処理がさらに必要になります。

残念ながら、そのようなリファクタリングには、現在よりも多くのリソースが必要になります:(

于 2010-01-14T07:54:52.470 に答える
6

タプルスペースとその実装を見てください。大きな影響はありませんでしたが、分散アプリケーションの構築に向けた興味深いアプローチです。

于 2009-01-26T09:30:25.180 に答える
3

これはC4Iシステムで一般的であり、状態を更新するアクターの多くは人間ですが、一部はソフトウェアエージェントです。

SCADAシステムで使用されるタプルスペースも見ましたが、通常はそのように呼ばれることはなく、ソフトウェアエージェントの側面にそれほど重点を置いていません。(通常、監視用のスペースに接続された単純なルールシステムがあります)

于 2009-01-26T09:41:20.820 に答える