2

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

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

设置:

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

最终的要求是:

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

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

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

我对做云不感兴趣,因为这些任务大部分都很小,但非常频繁(一天一次但任务可能很容易,但会执行维护)。

这个系统的所有代码都是Java。

4

3 回答 3

3

您可能想研究基于空间的体系结构,尤其是JiniJavaspaces。什么是吉尼?它本质上是具有可配置发现机制的 RMI。您请求一个 Java 接口的实现者,Jini 子系统会找到实现该接口的当前服务,并动态地通知您的服务。

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

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

于 2009-10-13T07:56:46.313 回答
1

看看Grid Beans

于 2009-10-13T07:49:33.583 回答
0

BOINC听起来它可以解决您的问题,尽管您必须为您的客户包装 java。那,这对你来说可能是矫枉过正。

于 2009-10-13T10:45:22.380 回答