2010-11-30 13 views
5

私はネットワーク上にいくつかのコンピュータを持っていますが、ネットワークは何とかシリアルです。つまり、コンピュータが無線送信機と回線で接続されています。他のコンピュータにアクセスできない問題。 アーキテクチャはこのようなものになるだろう:
RT =無線送信機のコンピュータ間
Computer#1<-RT#1->Computer#2<-RT#2->Computer#3<-RT#3->....<-RT#(N-1)->Computer#N切断の危険性が高い低速ネットワーク

の距離は約20〜30キロであり、ネットワークの速度は0と10Kbpsとの間で変化します。コンピュータはWindows XPを実行しており、非常に高い負荷のプログラム(RAM 2GB、CPU使用率90%)が常に実行されており、すべてのコンピュータのIPアドレスは既知で静的です。

すべてのコンピュータで実行するプログラムを作成し、そのコンピュータで実行またはインストールして更新するコマンドまたはパッケージを取得します。低速ネットワークと切断の危険性が高いため、コンピュータ間でデータを送信するには再開機能が必要です。問題は私がそれをどのように実装すべきかということです。 .NETリモーティングを使用するか、単純なネットワークソケットとTCPを使用しますか?どちらがいいですか?あなたが提案している提案やアプローチを説明してください。

+0

のためにそれをチェックアウトし、ドメイン上のマシンはありますか?サーバー、ワークステーション? – dotnetnate

答えて

1

サーバとして動作する新しいシステムを追加する方法について説明します。このシステムは、ネットワーク上のすべての操作を制御するサービス(およびおそらくデータベース)をホストします。 すべてのIPアドレスは静的なので、切断された場合には簡単に追跡して再追跡することができます。

大きな送信の場合、パッケージを圧縮し分割して別々に送信することができます。障害が発生した場合、送信は破損したパケットから再開します。別のサーバーを使用すると、これらの統計情報をすべて簡単に管理でき、それに応じてトラフィックを制御できます。

クライアントは、CPU負荷が低い場合に、保留中のコマンド/アップグレードに対してサーバーにpingを実行することもできます。

WCFでは、双方向/二重化送信が可能です。

What You Need To Know About One-Way Calls, Callbacks, And Events

WCF Duplex Messaging

+0

素晴らしいアイデア! tnx –

5

この問題と構成の解決策は、歴史的にはUUCPです。

+0

UUCPのようなものを使用したいのですが、私は.NETのリモーティングを使用します! –

+0

@HPT私は驚くべき技術であると言っているわけではありませんが、確かに実績のある技術です。 –

1

私は恐ろしい接続で開発するために使用されました。

パケットが文字通り(3〜6時間のIIRC)後に返されました。契約は:)

上にあることを

感謝の良楽しもう!あなたの痛みが分かります。

0

あなたは接続自身からのメッセージに基づいていますNServiceBusのようなフレームワーク、その後、抽象的なあなたのプログラムを使用することができます。

システムでは、回線のどこかでバッファを使用して「成功するまで繰り返し」メッセージを送信できます。低レベルのものはあまり心配する必要はありません。

http://www.nservicebus.com/

私はそれが大規模なデータ転送を可能にするかどうかわからないんだけど、コマンド

関連する問題