我应该如何设计一个由众多(但相同的)独立流程组成的应用程序,这些流程需要将数据传递给企业应用程序并通过Web界面进行监控和访问?
这是Java中一个更具体的例子:
独立进程是一个独立的J2SE应用程序的多个实例,它接收关于“用户”实体的初始化数据,然后开始做关于这个“用户”的东西(这是一个无限的过程,所以任何批次的类型设计在这里是错误的,同样地,这些过程的开始时间是无关紧要的)
企业应用程序是一组J2EE bean和Web服务,它们实现业务逻辑,数据库访问等......并且(例如)托管在GlassFish上。
Web前端是一组与bean一起使用的JSP(可能也在GlassFish上)。
现在理想情况下,我希望(1)中的流程能够从(2)中的bean调用方法,但也,以便(2)中的bean能够并更新有关事物的过程(1)。
所以这些是所需的执行流程,假设有10个独立的进程(1)为10个不同的用户运行(考虑一个“用户”可以通过数字轻易识别的东西):
到目前为止,我最好的方法是通过JMX暴露这些J2SE应用程序并从那里开始,但我有一件事我不明白 - 谁或什么应该持有这种类型的密钥对列表“ URI X 负责用户 Y “,然后相应地指示调用。
BTW,请随意在Java平台之外提供任何建议(!),只要它是一个可以轻松扩展的平台。修改 另外,有没有办法在某些app-server上“托管”这样的独立进程?如果它们失败会重新生成进程的东西,允许在远程机器上部署和监视这些进程等。
答案 0 :(得分:1)
自从我过去使用Java Message Service已经有一段时间了,所以我担心我不了解技术细节,但从您的描述来看,它似乎适合您的情况,处理管理GUI和客户端进程之间的通信。
有各种选择(我相信你对异步通信很感兴趣)所以你应该看看最新的发展情况,以检查自己是否适合你的情况。
关于服务器与进程交换的数据大小,我认为这是一个不同的主题,我必须说答案取决于。发送邮件中的所有数据会更好吗?或者该消息只是一个通知,以便客户端得到通知,然后连接到某个企业bean来检查一些新的状态?我更喜欢后一种情况,但这是你应该根据你的要求决定的。我不会盲目地排除第一个选项,除非我有一些明显的证据证明这不起作用。
关于缩放我不认为它比你剩下的bean的缩放更糟糕。尽管服务器关注的是他们的流程都是需要服务的所有客户端。
请带上上述建议:我不知道你的问题/设计的具体细节。我在一般方面说得更多。
我希望有帮助