为什么Web服务被称为中间件?

时间:2018-01-01 07:12:39

标签: web-services java-ee middleware data-integration eai

背景:

  

wiki说:可以视为中间件的服务包括企业应用程序集成数据集成,面向消息的中间件(MOM),对象请求代理(ORB)和企业服务总线(ESB)。

     

下面是我工作的基于中间件的3层架构,其中4个组件 - 客户端,中间件和两个管理器,都是基于java的系统,并且RMI知道。

     

enter image description here

           

中间件是在架构(上面)中引入的,主要用于数据集成(业务逻辑):

     
      
  • 执行来自多个经理的不同数据(业务逻辑)的集成
  •   
  • 表示层(用于客户端),在集成后提供特定格式的数据
  •   
  • 身份验证/授权/客户端访问安全性。
  •   
     

总结一下,以上是在任何3层架构产品中引入中间件的一些主要原因。

     

如上所述here,RMI只提供寻址同步编码移动性但不是互操作性沟通方面,在上述架构中,仅此而已。 RMI本身是中间件

想象一下,将上述架构从基于 RMI的迁移到Axis2,这4个组件(包括中间件)中的所有POJO都应该使用 Axis2 进行Web启用。中间件(上图)的功能保持不变。

Axis2 只会使用SOAP或REST(v2)协议启用这4个组件之间的可互操作通信。

但是在这个paper中,Axis2被称为中间件。它是一个 JAX-WS规范的实施。

Axis2是一个中间件是什么意思?它不执行业务逻辑。

2 个答案:

答案 0 :(得分:1)

你的问题似乎是基于意见的,但我们试着回答。

我相信你的直觉是正确的。恕我直言Axis2是一个服务框架,我不称之为中间件,因为我理解更广泛的功能。

另一方面 - 术语中间件的定义并不严格,所以这取决于你做出的广泛/抽象定义。

当使用Axis提供消息转换(SOAP to Java)时,一些安全功能可以理解为中间件,因为Axis没有执行任何业务逻辑(那么即使RMI也适合中间件定义)

总结 - 将Axis2框架称为中间件是恕我直言不幸。现在问题是作者是否试图使用流行语或者他们找不到更好的标题

答案 1 :(得分:0)

如果中间件的定义类似于 - "一个通用术语,用于定义中间人,同时传达两种不同的技术" 然后Axis可以命名为中间件。我认为他们已经考虑了这个通用的定义。

但主要使用的中间件是两种类型 -

  • 面向消息的中间件(MOM)ex-MQs

  • 企业服务总线(ESB)ex-Mule ESB,TIBCO,Camel等。