質問

Cで書かれた独自のシステムとデバイス、および(デバイスの状態を監視し、設定を送信し、デバイスから記録されたデータを取得する)目的を管理するためのWindowsアプリケーション:

私は自分の道を来てプロジェクトを持っています。私が使用しますどのような技術の選択に柔軟性を持っています。それは柔軟なものでなければなりませんので、要件は今かなりあいまいです。主要な通信プロトコルはTCPです。私たちは、通常の通信は、例えば、いくつかのネットワークの故障に起因する障害が発生した際に、メンテナンスオプションとしてCOMポートを使用することができます。

私は、アプリケーションとデバイス間の「代理」としてWCFサービスの利用を検討しています。アプリがサービスにデータを送信し、サービスは(パケット内のデータがデバイスが理解されている)のデータを処理し、デバイスへのTCPパケットを送信し、デバイスは順番にアプリケーションに処理されたメッセージを送信WCFサービスにTCPパケットを送り返す反応します。 WCFのこの使用はいかなる意味を成していますか?

WCFは、容易ので、通常のWindowsアプリケーション以外にも、我々はそれで私たちのシステムはよりセクシー作ることができるWebアプリケーションからアクセスすることができますが、それは価値がありますか?あなたのアイデアを共有、どう思いますか、してください)。

役に立ちましたか?

解決

私はそれを理解したよう

、次の3つの要素を持つシステム・アーキテクチャを検討しています。プロキシとして動作するか、行く-間で、両者の間の通信を仲介しまうのWindowsアプリケーション、デバイスのセット、および追加のサービス。

最初の質問:管理アプリケーションは、デバイス自体に接続できない理由があるのでしょうか?管理のために使用されるWindowsアプリは同じように簡単に他のアプリができたとして、デバイスへのソケットを開くことができます。なぜあなたはないでしょうか?私はのアーキテクチャに、ブローカー、第三の要素を導入する正当な理由は何ですか、これを依頼する別の方法があると思う?のあなたが紹介したいいくつかの非同期性はありますか?それは規模の問題である - 多分デバイスの数はあなたが別のアプリではなく、直接UIを持つアプリケーションから接続するよりも、それらのすべてに通信を管理したいほど大きいです。それは、ネットワークトポロジの問題ですか?どのような技術がブローカーで使用することを検討する前に、最初のアーキテクチャでブローカーを含めるように説得力がある何を決定します。

第三の要素のための良好な正当性があると仮定すると、

、あなたはWCFは、その要素のための適切な通信技術であるかどうかの問題を考慮することができます。確かに2、Windowsベースのアプリケーション間で、WCFはうまく動作します。彼らは同じマシン上にある場合は、バインド名前付きパイプを使用し、ローカル通信のための非常に良いパフォーマーを得ることができます。これら二つのアプリは異なるWindowsマシン上に分散している場合は、ネットワーク通信に再び、非常に良好なパフォーマンスのためにTCPを使用することができます。

また、ブローカーとデバイス間の接続を考慮したいと思います。 WCFは非WCFシステムと相互接続することができます。あなたは、既存のシステムと相互接続するために、WCF側のいくつかの拡張機能を記述する必要があります。しかし、それは可能であると私はWCFのために近い主流のユースケースを言うと思います。 での詳細については、このQのhref="https://stackoverflow.com/questions/381142/how-to-write-a-socket-based-custom-transport-for-wcf">参照してください。 。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top