2011-09-24 7 views
5

サービスとデスクトップアプリケーションまたはWebページとの間の通信には、どのような方法が推奨されますか?SERVICEとWeb /デスクトップアプリケーション間の通信

私はサービスがすべて仕事をしたいと思っていますが、 ウェブまたはデスクトップを介して管理/管理/レポート作成を可能にしています。 (これはC#で.Net 4.0で書かれます)

名前付きパイプですか?ソケット? wcf?残り ?石鹸?他の?ベストプラクティスとは何ですか?

すべての情報をいただければ幸いです。

すべての通信が非同期である必要があるように、サービスは実質的にリアルタイムである必要があります。

おかげ アンドリュー

UPDATE 1 - サービスはサービスとしてネットワークトラフィックREALTIMEを監視します。クライアントはローカルでもリモートでも構いません(ASP.NET/MVCまたはSilverlightを使用)。クライアントはリアルタイムデータを必要としませんが、設定、統計、ログなどを照会するにはabeでなければなりません。

+1

これはあまりにも曖昧です。クライアントとサーバーが互いに関連している場所、データ量、永続性/信頼性の要件など多くのことに依存します – Joe

+0

ちょうど質問を更新しました...これで十分ですか? – user296191

答えて

1

コードの両端が制御されていれば、特定の要件を除いてWCFを選択します"それはとても単純です"。

Choosing a (WCF) Transportを参照してください:それは名前付きパイプへのTCPためにHTTPから行くのは簡単 だ(OOOラ・ラ!):

名前付きパイプのような、Windowsオペレーティングシステムのカーネル内のオブジェクトでありますプロセスが通信に使用できる共有メモリのセクション [read:非常に高速]。名前付きパイプは名前を持ち、1台のマシン上のプロセス間で一方向または二重通信に使用することができます。もちろん

同じマシン要件が違反した場合、その後、HTTP/TCPは、ネットワークの構成などに応じて、代わりに使用することができます - コーディングするの違いは?構成設定:)

ハッピーコーディング。

+0

ありがとう...ただ質問を更新しました...まだWCFをお勧めしますか? – user296191

+0

私はそれに固執します:それは、サービスクライアントの通信が個々の要求(おそらく周期的ですが、複雑なペイロードが比較的大きい)の妥協であるように思えますが、必ずしもデータそのものの流れではありません。もちろん、WCFは「マイクロソフト中心のソリューション」であり、関連性があるかもしれません。 –

1

質問は、WCFまたはHTTPまたはTCPとして尋ねられます。 WCFは非常に柔軟なコミュニケーション基盤です。 HTTP JSON/POX、TCP、バイナリ、HTTP経由のバイナリ、カスタムシリアル化などの設定とコードを使用してコードを一度書き、データクラスをフライスイッチで飾ることができます。ルーティング/ファイアウォールの制限、クライアントなどに基づいて...個人的に、HTTPやJSON/XMLのような診断可能なトランスポートは、それらがどのように普遍的で、ルーティング可能で、診断可能であるか(checkout fiddler2)が好きです。

あなたの説明から、問題の難しい部分は、サービスが実行するREALTIMEネットワークトラフィックの監視のようです。クライアントとそのサービスの間のチャネルは、問題の単純な部分のように見えます。

説明からも、クライアントはREAL TIMEである必要はなく、単に統計、設定、ログを照会しているだけです。クライアントはローカルまたはリモート(イントラネット外のおそらくは外部からのルーティングを意味する)である可能性があるためです。

このため、REALTIMEネットワークの統計情報収集プロセスとクエリの部分を切り離し、前述のように非同期にします。その時点で、サービスは単純な統計、設定、ログを照会するためのクライアントへのチャネルを開くだけです... HTP、REST JSON | XMLのような最もルーティング可能で診断可能なチャネルを選択してください。それが問題であれば、WCFサーバーコードをそのまま保ち、WCFバインディング構成を変更してください。

質問は少し開いて曖昧ですが、うまくいけば少し助けてください。

関連する問題