0

我正在寻找一种在远程服务器上执行“作业”的方法。通常 RMI 会做得很好,但据我所知,这需要在服务器上实际实现逻辑。我的问题是我无法在服务器上预定义作业,因为我希望它们尽可能通用。

所以我想到的是:客户有他想要执行的特定工作的实现。这个实现显然必须遵循一组规则,以便服务器能够使用它。客户端将其打包成某种对象,将其发送到服务器执行,并等待他要求的任何计算的结果。

RMI 可以吗?如果没有,还有其他东西可以让我以这种方式工作吗?

感谢您的时间和洞察力。

4

3 回答 3

3

您可以使用Java RMI 使用动态代码下载,但您必须设置服务器来保存客户端任务类

于 2012-12-05T14:43:50.137 回答
3

据我了解您的问题,服务器不“知道”要提前执行的代码。因此,您可以尝试发送一些运行时可解释的代码,如 groovy、javascript 或 python,并使用服务器端的众多解释器之一。

对于更简单的执行 UEL 和具体的 JUEL 可能值得一看

于 2012-12-05T14:47:44.960 回答
0

任何可序列化的对象都可以通过 RMI 传递。您可以将逻辑包装在可序列化的对象中,将其传递给服务器,然后服务器执行它(它可能有一个执行方法,例如服务器调用)。

正如这里的评论中提到的,您从客户端传递到服务器的类需要客户端和服务器都知道。

于 2012-12-05T14:38:56.590 回答