Java 如何选择中间件范式

Java 如何选择中间件范式,java,osgi,ejb-3.0,apache-camel,middleware,Java,Osgi,Ejb 3.0,Apache Camel,Middleware,我一直在阅读Java中间件解决方案,除非我在这里完全偏离了基础(我可能已经这样做了,在这种情况下,请先纠正我!),否则您可以为企业应用程序选择四种主要的中间件解决方案/范例: 完全兼容JavaEE(EJB3s);或 第三方ESB,如Apache Camel或Mule;或 OSGi;或 事件驱动体系结构 我正在寻找一个准则,或者一个可以让我说: 鉴于业务需要xyz,此应用程序的最佳中间件策略是xyz 我想我想知道这四种方法各有哪些优点/缺点/优点/注意事项,以及这些属性如何与这四种方法中哪一种

我一直在阅读Java中间件解决方案,除非我在这里完全偏离了基础(我可能已经这样做了,在这种情况下,请先纠正我!),否则您可以为企业应用程序选择四种主要的中间件解决方案/范例:

  • 完全兼容JavaEE(EJB3s);或
  • 第三方ESB,如Apache Camel或Mule;或
  • OSGi;或
  • 事件驱动体系结构
我正在寻找一个准则,或者一个可以让我说:

鉴于业务需要xyz,此应用程序的最佳中间件策略是xyz

我想我想知道这四种方法各有哪些优点/缺点/优点/注意事项,以及这些属性如何与这四种方法中哪一种方法的决策相适应


是否有人能提供现实生活中的用例,说明这4种情况中的每一种都比备选方案更可取?也许我们可以从这些用例中提取出这样一个准则。

一个好的第三方EIS体系结构可以包含其他三个选项,因此其中一个不推荐它是不明智的。

我认为第五个答案是:“第三方通信中间件,如DDS、CORBA或JMS”。这些都是进程间数据通信的标准化技术


我个人喜欢DDS(),因为它的性能(<100 usec本地网络延迟)、灵活性(动态发现端点意味着没有服务器查找),以及强大的数据存储、表示和过滤选项。DDS支持Java(除其他语言外),并用于多个领域(金融、医疗、国防部等)的企业应用程序。

非常确定这是合格的、闲聊的、开放式的。