我正在寻找一种在远程服务器上执行“作业”的方法。通常RMI会做得很好但据我所知,这需要在服务器上实际实现逻辑。我的问题是我无法预定义服务器上的作业,因为我希望它们尽可能通用。
所以我想到的是以下内容:客户端具有他想要执行的特定工作的实现。显然,该实现必须遵循一组规则才能使服务器能够使用它。客户端将其打包成某种对象,将其发送到服务器执行,并等待他要求的任何计算结果。
这可能与RMI有关吗?如果没有,是否有其他东西允许我以这种方式工作?
感谢您的时间和见解。
答案 0 :(得分:3)
您可以使用Dynamic code downloading using Java RMI但您必须设置服务器以保存客户端任务类
答案 1 :(得分:3)
当我解读您的问题时,服务器不会“知道”要提前执行的代码。 所以你可以尝试发送一些运行时可解释的代码,如groovy,javascript或python,并在服务器端使用其中一个解释器。
对于更简单的执行,UEL和具体的JUEL可能值得一看
答案 2 :(得分:0)
任何可序列化的对象都可以通过RMI传递。您可以将逻辑包装在可序列化的对象中,将其传递给服务器,然后服务器执行它(它可以有一个执行方法,例如服务器调用)。
正如这里的评论中所提到的,客户端和服务器都需要知道从客户端传递到服务器的类。