3

さまざまな顧客サイトに数千台の Windows XP クライアント マシンがあり、すべてが匿名の使用データを収集するように設計された対話型ソフトウェアを実行しています。クライアントマシンは、データをインターネットベースのサーバーにアップロードし、構成情報をプッシュしてクライアントに再起動などのタスクを実行するように要求できる、古い、古い、古いクライアントサーバーソフトウェアを使用します。

基本的に、次の機能があります (疑似 C#/IDL で)。

interface IClientToServer
{
  void LogUsage(clientMachineName, anonymousUserID, Pair[] usageData, startTime, endTime);
  void LogError(clientMachineName, errorMessage);
  void LogUptime(clientMachineName, bootTime);
  DateTime SyncClock(clientMachineName, timezone);
}

interface IServerToClient
{
  void UpdateSettings(Pair[] settings);
  Bitmap GetScreenshot();
  void Reboot();
  string Execute(cmdLine);
}

..しかし、このコードは寿命に達しました (壊れやすく、スキル不足のため保守できません)。

私たちは、最新のツール、SDK、およびフレームワークを使用してこのソフトウェアを作り直すために、グリーンフィールドで白紙の状態から始めるプロジェクトに着手しようとしています。

いくつかの機能要件があります。

  1. 利用可能なエンジニアリング リソースによる .NET ベースの環境。
  2. ファイアウォールに優しい - HTTP/80 経由でクライアント サイトからインターネット ベースのサーバーにのみ「発信」でき、インターネット アクセスは不安定で、クライアントの帯域幅は比較的貧弱です。VPN は、当社の顧客ベースに人気がありません。

.NET Remoting、.NET Web Services、WCF、Sync Framework、SQL Pub-Sub、SQL Sync、BITS など、ここで活用できるテクノロジーの数の多さに圧倒されます。

ここで、どのテクノロジーの選択が設計に最も適しているかについての洞察を使用できます。

「自然な」適合はありますか?

4

1 に答える 1

1

私はWCFに行きます。基本的な HTTP を使用するようにこれを簡単に構成できます。必要に応じて、両端のバインディングを変更できるため、通信に別のプロトコルを使用できます。これにより、柔軟になります。また、ニーズに合った方法で WCF サービスをホストすることもできます (IIS、NT サービス、または思いつく他の .NET プロセス)。また、WCF は簡単にセットアップでき、.NET は通信に必要なすべてのツールを提供するため、配管作業を最小限に抑える必要がありません。

于 2010-01-18T09:14:35.687 に答える