.net - 远程管理和数据捕获 : WCF, SQL Sync、SyncFramework、BITS 还是其他?

标签 .net wcf networking microsoft-sync-framework

我们在不同的客户站点上有几千台 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 和框架重新设计该软件。

我们有一些功能需求,它们是:
  • 由于可用的工程资源,基于 .NET 的环境。
  • 防火墙友好 - 我们只能通过 HTTP/80 从客户端站点与我们基于 Internet 的服务器“对话”,并且 Internet 访问不稳定,客户端带宽相对较差。 VPN 在我们的客户群中不受欢迎。

  • 我们可以在这里利用的大量技术让我们不知所措:.NET Remoting、.NET Web Services、WCF、Sync Framework、SQL Pub-Sub、SQL Sync、BITS 等。

    我们可以深入了解哪些技术选择最适合这里的设计。

    有没有“自然”的合身?

    最佳答案

    我会选择WCF。您可以轻松地将其配置为使用基本 HTTP。需要时,您可以更改任一端的绑定(bind),因此您可以使用不同的协议(protocol)进行通信。这使它变得灵活。您还可以选择以适合您需要的方式托管 WCF 服务(IIS、NT 服务或您可以提出的任何其他 .NET 进程)。
    此外,WCF 易于设置,.NET 为您提供了通信所需的所有工具,因此您不必做尽可能少的管道工作。

    关于.net - 远程管理和数据捕获 : WCF, SQL Sync、SyncFramework、BITS 还是其他?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2065832/

    相关文章:

    c# - 如何使用 LINQ 解析 XML header 和嵌套部分

    .net - 本土集成系统还是 ESB?

    c# - 重构 “procedural” WCF服务

    .net - 什么是一流的 .NET 语言?

    c# - 尽管采取了措施,FileSystemWatcher 事件仍会引发两次

    c# - 请求期间使用 WCF 的 System.OutOfMemoryException

    c# - 如何使多个 SOAP Web 服务调用通用以减少冗余?

    java - 错误是什么? Android 编程新手

    java - 从 IO 迁移到 NIO - 网络、IllegalBlockingModeException

    networking - TCP中的流量控制和拥塞控制有什么区别?