我似乎找不到与此类似的问题。

我目前正在寻找解决网格计算问题的最佳解决方案。

设置:

  • 我有一个服务器/客户端的情况,其中客户端[通常大多数逻辑都是愚蠢的]并接收来自服务器的指令
  • 有授权请求
  • 客户反馈完成任务的速度信息(根据任务类型判断任务的难易程度)
  • 客户会收到最适合其之前表现的任务(最好的客户会收到最严重的问题)

最终的要求是:

  • 客户端的占用空间必须小且独立 - 我不能拥有需要大量安装和设置的客户端
  • 客户端应该能够从服务器获取新的作业和作业运行时间(如果网格能够适应引入的新问题[并且新问题将由服务器分发],那就太好了)
  • 我需要有一个身份验证层(不必很复杂或符合现有的 ldap)[更简单的要求:客户可以注册一个新的“会员资格”并获得访问权限](我不确定 RMI 的优势在于此)
  • 客户端将能够从互联网运行,而不是在网络环境中运行
    • 这意味着对请求的结果进行加密

我目前正在使用网络服务在客户端和服务器之间进行通信。所有信息和结果都会返回到托管服务器 (J2EE)。

我的问题是,是否有一个网格系统设置可以满足所有/大部分这些要求,并且是开源的?

我对做云不感兴趣,因为大多数这些任务都很小,但非常频繁(每天一次,但任务可能很简单,但执行维护)。

该系统的所有代码均采用 Java 编写。

有帮助吗?

解决方案

您可能想调查 天基架构, ,特别是 基尼Java空间. 。吉尼是什么?它本质上是具有可配置发现机制的 RMI。您请求 Java 接口的实现者,Jini 子系统会找到实现该接口的当前服务,并动态地将这些信息通知您的服务。

简而言之,您可以将工作项写入一个空间。网格节点将被设置为从空间中以事务方式读取数据。每个网格节点都会获取一个工作项,对其进行处理并将结果写回该空间(或另一个空间)。分发节点可以监视写回的结果(和/或按照您的要求监视您的预计结果时间)。

全部都是 Java,并且会线性扩展。因为它是 Jini,所以网格节点可以从 HTTP 服务器动态加载它们的类,因此您可以轻松地传播代码更​​新。

其他提示

看看 网格豆

博恩克 听起来它可以解决你的问题,尽管你必须为你的客户包装java。那对你来说可能有点过分了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top