我应该如何设计一个由众多(但相同)独立进程组成的应用程序,这些进程需要将数据传送到企业应用程序并通过 Web 界面进行监控和访问?
这是Java中更具体的示例:
独立进程是独立 J2SE 应用程序的多个实例,它接收有关“用户”实体的初始化数据,然后开始执行有关该“用户”的操作(这是一个无限的进程,因此任何批处理类型的设计在这里都是错误的,并且同样,这些过程的开始时间也无关紧要)
企业应用程序是一组 J2EE bean 和 Web 服务,它们实现了业务逻辑、数据库访问等,并且(例如)托管在 GlassFish 上。
Web 前端是一组与 bean 一起工作的 JSP(可能也在 GlassFish 上)。
现在,理想情况下,我希望 (1) 中的进程能够从 (2) 中的 bean 调用方法,而且 (2)中的 bean也能够更新进程 (1) 关于事物的方法。
因此,这些是所需的执行流程,假设有 10 个独立进程(1)为 10 个不同的用户运行(考虑一个“用户”,可以通过一个数字轻松识别):
- 在 (1) 的一个过程中发生了一些事情,它们使用一些数据从企业应用程序 (2) 调用一个方法。
- 一个真实的人类用户(已经被网络应用程序识别)点击(3)的网页上的某些东西,这会调用(2)中的一个方法,然后是一些“神奇”实体(我有不知道如何命名)从 (1) 中找到负责该特定用户的独立进程,并使用一些新数据更新该进程。
到目前为止,我最好的方法是通过 JMX 公开这些 J2SE 应用程序并从那里开始,但我有一件事我不明白 - 谁或什么应该持有这样的密钥对列表“URI X处的过程是负责用户Y ”,然后相应地引导呼叫。
顺便说一句,请随时在 Java 平台(!)之外提供任何建议,只要它是一个可以轻松扩展的平台。
编辑: 另外,有没有办法在某些应用服务器上“托管”这样的独立进程?如果它们失败会重新生成进程,允许在远程机器上部署和监视这些进程等?