【问题标题】:Solution for simple grid computing in local network局域网中简单网格计算的解决方案
【发布时间】:2014-06-20 09:43:28
【问题描述】:

我想使用 .NET 为以下问题开发一个简单的解决方案:

我们在本地网络中有几台计算机:

  • 可能需要执行仅安装在两个工作站上的程序的 10 台客户端计算机
  • 仅用于执行定义程序的两个工作站
  • 可用于安装可从所有前面描述的计算机获得的服务的服务器

当客户端计算机需要执行程序时,他会向服务器发送请求,服务器会在可以执行时将作业分发给工作站,并在执行完成时通知客户端计算机。

我不太习惯网络和服务开发,所以我不确定这是否是最好的方法,但以下是我想到的一个可能的解决方案:

  • 服务器上的 Web 服务将任务列表及其状态存储在队列中或数据库中
  • 客户端计算机调用 Web 服务来执行程序并获取任务 ID。然后每秒使用任务 ID 调用它以了解是否已执行。
  • 可用的工作站每秒调用一次 Web 服务以了解是否有要执行的操作。如果是,则服务器分配任务,工作站在执行完成时调用 Web 服务。

我在下图中总结了这一点:

您认为有更简单的解决方案吗?

【问题讨论】:

    标签: asp.net web-services queue distributed-computing grid-computing


    【解决方案1】:

    看看signalr!您可以将其用作消息传递框架,并且不需要从 2 个不同的方向轮询服务。使用 signalR,您将能够将执行订单推送到服务,一旦执行完成,服务将通知客户端。工作站也将与 signalR 连接。他们不需要请求执行命令,因为 Web 服务可以将执行命令推送到所有工作站或特定工作站。

    【讨论】:

    • 谢谢,这看起来很完美! “SignalR 集线器 API 使您能够从服务器到连接的客户端以及从客户端到服务器进行远程过程调用 (RPC)。在服务器代码中,您定义可由客户端调用的方法,并调用在客户端。在客户端代码中,您定义可以从服务器调用的方法,并调用在服务器上运行的方法。SignalR 会为您处理所有客户端到服务器的管道。"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    相关资源
    最近更新 更多