网格计算和Java

时间:2009-10-13 07:44:54

标签: java grid-computing

我似乎无法找到类似的问题。

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

设置:

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

最终要求是:

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

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

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

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

此系统的所有代码均为Java。

3 个答案:

答案 0 :(得分:3)

您可能需要调查space-based architectures,特别是JiniJavaspaces。什么是吉尼?它本质上是具有可配置发现机制的RMI。您请求Java接口的实现者,Jini子系统查找实现该接口的当前服务,并动态地通知您的服务。

简而言之,您将工作项目写入空间。网格节点将被设置为从空间事务性地读取数据。每个网格节点将获取一个工作项,处理它并将结果写回该空间(或另一个空间)。分发节点可以监视正在写回的结果(并根据您的要求监视您的预计结果时间)。

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

答案 1 :(得分:1)

查看Grid Beans

答案 2 :(得分:0)

BOINC听起来它会对你的问题起作用,尽管你必须为你的客户端包装java。那,对你来说可能有点过头了。