首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java分布式系统

Java分布式系统
EN

Stack Overflow用户
提问于 2011-08-29 08:16:30
回答 3查看 10.6K关注 0票数 9

我正在开始我的最后一年的计算机科学项目,我正在努力找出我的第一步。有关更多细节,您可以转到项目页面

背景:由于我在分布式系统方面的经验很少,我基本上认为我应该如何面对这样的挑战。我得出的结论是,该系统应按以下方式工作:

客户端发送一个文件或一组文件,其中包含要处理的代码。该代码将实现一个由我编写的分布式算法接口,一个特定的类。服务器将从class.That对象创建一个对象,负责运行该算法。服务器将向客户端返回结果。(我后来读到了关于RMI的文章,发现它非常类似)。

发送文件是基本的网络I/O,真正的问题是对象的创建,并在运行时使用它作为预定义的接口。

问题:

  1. 我提出的挑战听起来像是一个反思的挑战,这是正确的吗?
  2. 你对如何实现它有什么初步的建议吗?

为了寻找一些分布式系统java技术,我遇到了RMI、TRMI、LINDA、CORBA、JINI和其他许多技术。RMI听起来最吸引人,因为它与我收集的解决方案非常相似,但它也很老。

  1. 你认为哪一组库将帮助我完成这项任务?记住,我是一名计算机科学专业的学生,所以完全的解决方案不会停留在我的教授身上。
  2. 人机界面老了,有什么更好的解决方案吗?
  3. 有关于TRMI的全面教程吗?

如果你觉得我的逻辑有多错误,请改正。

如果你在这个问题上有更多的建议,你认为应该讨论,请随时与我联系。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-29 10:30:18

您可以使用这个例子和发送类文件来执行(您可以将类文件存储在磁盘上,然后使用URLClassLoader加载它们。如果您不想在磁盘上写入,McDowell有建议)。

至于沟通,有很多可供选择的地方。您可以考虑的一件事是使消息传递是同步的还是异步的。同步消息传递(如RMI)没有什么问题,但是您可能希望找到异步解决方案,因为它们应该是“热门”的。或者,您可以在HTTP或类似的基础上使用自己的协议。

一个有趣的练习是在节点间分配数据,并针对这些分布式数据执行算法,然后组合结果。在这种情况下,用户将指定两个算法。一个生成数据,一个聚合结果。

票数 2
EN

Stack Overflow用户

发布于 2011-08-29 08:42:03

没有足够的信息来推荐图书馆或技术。因此,我想集中讨论你问题中的“更多提示”部分;)

  • 服务器发送文件-通常是客户端向服务器发送请求,服务器将创建响应。你应该遵守那个惯例。
  • 文件需要执行-我们不能执行一个文件。文件可能包含一些脚本或二进制代码,可以由解释器或计算机执行。挑剔的原因:您必须对文件的内容做一些事情(解析、编译、解释、链接、.)
  • 文件将实现..。接口--见上面,这些文件没有实现任何东西。
  • 客户机将运行接口--无法执行或运行接口。
  • 将算法的结果返回到上面提到的服务器:通常是客户机将文件(“请求”)发送到服务器。然后,服务器将获取文件,根据文件内容进行一些计算,并将结果(“响应”)返回给客户端。

远程方法调用

使用RMI,我们通常有以下场景:客户端希望调用远程方法。客户端知道接口和服务器地址。服务器具有该接口的实现。现在,客户端与服务器联系并调用该服务器上的方法。

对于您的项目,它看起来有点不同:我认为客户端有一个算法的实现(java源文件或已编译的类文件),并且希望将它发送到一个或多个服务器。服务器将处理文件,对某些输入(切片)执行算法,并返回结果。

RMI可能是文件传输的候选对象,而不是(算法)方法调用的候选。远程方法可以是这样的(假设我们发送了一个java源文件):

代码语言:javascript
复制
public Result process(String javaSource, Data data);
票数 5
EN

Stack Overflow用户

发布于 2011-08-29 08:51:34

也请查看基于SOAP的web服务。MTOM提供了一种更有效地传输二进制内容的方法。

谢谢..

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7227700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档