代码之家  ›  专栏  ›  技术社区  ›  monksy

网格计算与Java

  •  2
  • monksy  · 技术社区  · 15 年前

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

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

    设置:

    • 我有一个服务器/客户机的情况,在这种情况下,客户机[通常是大多数逻辑的哑巴]和从服务器接收指令
    • 有授权请求
    • 客户报告完成任务的速度信息(任务的难度由任务类型判断)
    • 客户机根据其以前的性能接收最适合的任务(最好的客户机接收最坏的问题)

    最终要求是:

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

    我目前正在使用WebServices在客户机和服务器之间进行通信。所有的信息和结果都返回到宿主服务器(J2EE)。

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

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

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

    3 回复  |  直到 10 年前
        1
  •  3
  •   Brian Agnew    15 年前

    你可能想调查一下 space-based architectures 尤其是 Jini Javaspaces . Jini是干什么的?它本质上是具有可配置发现机制的RMI。您请求Java接口的实现者,Jini子系统发现当前服务实现该接口并动态通知您对这些服务的服务。

    简单地说,您将把工作项写到一个空间中。网格节点将被设置为从空间中以事务方式读取数据。每个网格节点将获取一个工作项,对其进行处理,并将结果写回该空间(或另一个空间)。分发节点可以监视正在回写的结果(和/或您所请求的计划结果计时)。

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

        2
  •  1
  •   elder_george    15 年前

    看一看 Grid Beans

        3
  •  0
  •   Carl    15 年前

    BOINC 听起来它会对你的问题起作用,尽管你必须为你的客户包Java。那对你来说可能是杀伤力太大了。