我应该如何在管理流程和子流程之间进行进程间通信?

时间:2013-01-31 01:20:45

标签: java process

我有五个独立的java 进程;它们作为业务逻辑模块运行。我想开发我的流程管理应用程序,我可以启动/ ping /监视/消息子进程。

此外,它可能会通过rest-ws或最坏情况rmi调用共享资源,如缓存等与子进程,因为需要额外的开销。

我倾向于基于webservice的api,它将继续发送有关在进程内运行的业务逻辑的信息。这些过程可以是数据搅拌,计算,通知过程引擎。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

一种选择是使用JMX,并发布一个或多个MBean。 Oracle有documentation on it。您可以使用流程中的请求信息,或向他们发送信号以更改其行为。

您要做的事情的简单概述是决定在每个子进程中远程公开所需的方法。它们中的每一个都应该定义具有这些方法的接口,然后是该接口的实现。然后,这些实现需要在MBeanServer注册。

这种方法的优势在于,您可以立即获得一个简单的“管理应用程序”,因为您可以针对您的流程打开JConsole并使用MBean。如果您希望创建一个能够更清晰地呈现数据的单独应用程序,您可以在闲暇时这样做,而无需更改子进程。

这种方法实际上并没有让你“共享缓存”,但在进程(或机器)之间共享缓存应该是一个单独的问题(我认为)。