システムのようなプラグインサンドボックスが欲しいプロジェクトに取り組んでいますが、双方向のリアルタイムクロスプロセス通信の実行に問題があります。最初はオブジェクトメタデータを渡すことができるWCFについて考えましたが、すぐにWCFのサービスクライアントモデルが問題になることに気付きました。しかし、私がすべてのアイデアと質問を置く前に、ここに私が計画したものがあります。
ほとんどの作業を実行するホストアプリケーションが必要です。このhost.exeを呼び出します。host.exeは、プログラムのメインアプリケーションロジックと、プラグインの起動、実行、および強制終了をホストします。プラグインは、MEFを介してプラグインをホストするプラグインプロキシを介してホストされるため、proxy.exeと呼びます。proxy.exeはプラグインdllをロードし、障害を分離する人里離れた環境でそれらをホストし、プラグインが失敗した場合、アプリケーションではなくプロキシを強制終了します。ホストとプロキシは双方向でリアルタイムに通信する必要があります。複数のプロキシホストが存在するため、オブジェクトデータを渡すことができるのが最適です。
それが私が欲しいものの基本的な考え方です。私はこれを行うためのいくつかの方法を考えていました。最初はWCFでしたが、WCFの動作方法は、サービスのサーバーがクライアントに要求/コマンドを送信することが不可能ではないにしても難しいと考えました。次のアイデアはTCPを使用し、ホストをTCPサーバーにして、通信に使用できるメッセージングプロトコルを開発しますが、WCFメタデータの贅沢がなく、複雑なクラス情報を渡すため、問題が発生します。正気を失っている。
私のすべての研究を通して、私は問題を次々と思いついたので、誰かがこの問題の解決策を提案することができれば幸いです。ありがとうございました。