私はシステムの要素がシステムの他のコンポーネントによって応答されるイベントを生成することによって通信するイベント駆動型システムを設計しようとしています。これらのコンポーネントは互いに独立しているか、または私ができるように、ほとんど独立していることを意図しています。このシステムは、最初はWindows 7で実装され、Delphiで書かれています。生成されたイベントは、Delphiコードによって生成されます。私は、単一のマシン上に記述されたタイプのシステムをどのように実装するのかを理解しています。リモートイベント駆動型システムを実装するためにはどのような要素が必要ですか? - 概要が必要です
さまざまなマシンアーキテクチャ、特にWindows 7とは異なる分散アーキテクチャ上で動作するさまざまなコンポーネントで容易に展開できるようにシステムを設計したいと考えています。それ自身の外部のシステムと通信します。
私は検討が必要なアーキテクチャを調査し、以下に挙げる質問を見てきました。これらは、ハードウェア間通信のメカニズムとして名前付きパイプを利用することを指し示すようです。これらの調査の結果、私は自分のシステムを記述するために以下のことを説明しました。図の最初の部分は、私が開発しているシステムです。私が推測した第二の部分は、将来の実装が可能であるために必要なものです。
これは、次の点につながる:
- は、あなたが名前付きパイプを経由してイベントを渡すことはできますか?
- この問題に取り組むには、これは適切で分かりやすい構造ですか?
- 代替手段がありますか?
- (この粒度レベルで)私は何を忘れましたか?
How is event driven programming implemented? How do I send a string from one instance of my Delphi program to another?
編集:私は "@Iはがらくたの答えを与える" 応答十分な配慮から生じる点を与えられていなかった
。彼のポイントへの私の最初の反応は以下のとおりです。
- 同期V非同期 - 主に非同期
- イベントは、常にFIFOキューになります。
- 接続損失 - それほど重要ではない - 私はこれを非厳密に扱う余裕がある。
- 無制限のキューは、渡されたイベントを処理するための完全な方法です(できるだけ多くのイベントが生成されることは想定されていません)。
どのようなOSですか? Windows? –
@ S.Lott質問で述べたように、私は最初にWindows 7用に開発しています。将来の実装では、Linuxサーバーでホストされたバックエンドに対して実行されるUI要素をWebベースにすることも関係あります。私はこの種の将来の発展の障害にならないような方法でデザインしたいと思っています。 –
申し訳ありません。タグには通常、オペレーティングシステムが含まれています。私はなぜOSがタグから省略されたのか不明でした。 –