我正在构建一个Web应用程序,我希望在各种层中分发代码,如UI,业务逻辑和数据库。以下是我想要的功能,它解释了我的使用场景:
我尝试了RMI但缺点是Java锁定并且不支持负载平衡和故障转移功能。我也考虑过JMS但要意识到,即使像负载均衡功能,MOM的故障是很诱人的,它似乎并不适合于实时请求 - 响应类型的应用程序,我(纠正我,如果你认为我错了)。< / p>
请建议我在这个用例场景中最适合的流行的,合适的框架。
更新
探索SOA,我遇到了两个突出的选项SOAP和REST。正如我所提到的,我必须选择一种通信方法,以便在我的应用程序中的模块/层之间进行内部使用。在寻找快速请求响应和高可扩展性,负载平衡,故障转移方案时,是否有明显/受欢迎的选择?我不打算将此帖子转换为REST与SOAP讨论,但如果快速精简比较可以在这种情况下提供帮助。如果在SOA中我缺少任何第三种替代方案,我也是开放的。实际部署方案中的一些示例也会有所帮助。
答案 0 :(得分:2)
实时和分布有点成反比。
是的,基于JMS的解决方案更适合异步,而不适合实时。
对于实现的类型,您正在设想分布式SOA服务(是的Web服务)解决方案似乎是一个很好的选择。服务在负载平衡的集群环境中运行,提供高可用性。取决于你需要多少实时。
也就是说,如果您不认为需要进行外部交互,那么在应用服务器上部署为一个捆绑包的ui-service-dao / dal层运行直接部署更加实时。您仍然可以使用支持会话故障转移的群集节点实现负载平衡和故障转移。这可能无法提供互操作性,但您可以在需要时为其提供包装。
答案 1 :(得分:1)
让我们深入了解建筑要求:
实时高性能请求 - 响应类型应用程序
应用程序分为各种层,如UI,业务逻辑和数据库 - 每个层在一组计算机上工作:
这些层应该支持负载平衡和故障转移功能,最好对其他交互层透明:
将来与各种语言的互操作性将是一个额外的理想功能
这些图层将驻留在我的组织内部,即我目前不打算与外部组织服务进行交互。