队列服务器-->;java应用服务器-->;计算服务器集群

队列服务器-->;java应用服务器-->;计算服务器集群,java,architecture,Java,Architecture,有关手头的问题,请参见标题。向客户机提供特定的“计算服务”(cpu密集型),如下所示:所有客户机请求都转到一台管理队列的机器,并且当集群中的服务器或cpu空闲时,将请求转发到java appserver。appserver使用ejb进行工作流管理,并且在工作流中的某一点必须调用计算服务(*)。计算结果在工作流中进行管理 问题: -对计算服务的调用必须是RMI或是否存在其他选项? -哪些产品支持这种“开箱即用”的体系结构(可以这么说) (*)它作为独立的java程序调用,在内部使用JNI。任何形式

有关手头的问题,请参见标题。向客户机提供特定的“计算服务”(cpu密集型),如下所示:所有客户机请求都转到一台管理队列的机器,并且当集群中的服务器或cpu空闲时,将请求转发到java appserver。appserver使用ejb进行工作流管理,并且在工作流中的某一点必须调用计算服务(*)。计算结果在工作流中进行管理

问题: -对计算服务的调用必须是RMI或是否存在其他选项? -哪些产品支持这种“开箱即用”的体系结构(可以这么说)


(*)它作为独立的java程序调用,在内部使用JNI。

任何形式的RPC都可以。RMI是一个很好的解决方案,但我更喜欢使用。它允许您定义一个接口,并注入该接口的实现,该接口恰好可以远程执行工作。我认为这很适合您想要做的事情。

计算服务器实例可能都在同一队列中侦听。当他们准备好进行新的计算时,他们从队列中读取一个项目,完成工作,并在响应队列中弹出答案

这是一种非常简单的方法,可以让一些引擎为请求提供服务。需要理解和控制排队系统的可用性特征

工作流引擎需要将请求发送到计算服务器,然后等待其响应。这意味着工作流引擎将具有某种“暂停外部事件”功能。由于工作流也可以合理地等待人类回答问题,这是一个非常常见的特性


至少有一个商业工作流引擎自然会这样工作。

至少有一个。。。i、 你指的是哪一个?你认为SpringRemoting需要完整的Spring框架,还是可以独立使用?Spring框架被分解为多个模块。你需要一些,但不是全部。