【问题标题】:Grid Computing and Java网格计算和 Java
【发布时间】:2009-10-13 07:44:53
【问题描述】:

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

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

设置:

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

最终的要求是:

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

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

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

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

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

【问题讨论】:

    标签: java grid-computing


    【解决方案1】:

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

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

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

    【讨论】:

    • JINI的客户端运行时需求大吗,也可以由客户端配置而不用硬编码吗?
    • 什么意思?我真的很喜欢空间的想法。这听起来比用 RMI 做任何事情都要好。对安全通道的要求如何?这是可配置的吗?还有被遗弃的孩子怎么办?另一个问题,(考虑哪些网格豆)工作拨款呢?
    • 我相信 JERI 会关注安全通道。工作拨款是空间如何运作的函数。您可以标记工作,客户可以酌情选择。我建议查看 Jini 用户邮件列表并在那里提出更多问题。
    【解决方案2】:

    看看Grid Beans

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-08
        相关资源
        最近更新 更多