【问题标题】:Why web service is called a middleware? [closed]为什么 Web 服务被称为中间件? [关闭]
【发布时间】:2018-06-11 09:11:35
【问题描述】:

背景:

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

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


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

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

概括地说,以上是在任何 3 层架构产品中引入中间件的一些主要原因。

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


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

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

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


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

【问题讨论】:

  • 您的定义不正确。中间件与业务逻辑无关。 RMI 最肯定中间件,Axis2 也是如此,消息代理也是如此,以及大量其他的东西,包括应用程序组件。
  • @EJP 要将中间件视为应用程序组件,请查看幻灯片#21 和幻灯片#24,here
  • 我无意做任何这样的事情。几十年来,“中间件”在 IT 领域一直有着明确的含义,但事实并非如此。尽管有任意 Internet 资源。
  • @EJP 这是他的book 的介绍。任意互联网资源。除了使用一些英语单词之外,您的 cmets 对我没有任何意义。
  • 这只是意料之中的事。您最近提出的问题很少对我有意义。 “中间件”是指消息代理、J2EE、CORBA ORB、Axis2、RMI……这些都是产品服务,它们与应用程序无关。仅仅将应用程序的一部分粘贴到另外两个应用程序的中间并不能使其成为中间件。 Wikipedia 和 IETF 都使用这个定义,我真的不在乎你在 Internet 上能找到多少任意来源。

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


【解决方案1】:

如果中间件的定义是这样的 - “一个通用术语,用于定义中间人,同时传达两种不同的技术” 那么 Axis 可以被命名为中间件。我认为他们已经考虑过这个通用定义。

但最常用的中间件有两种——

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

  • 企业服务总线 (ESB) 例如 Mule ESB、TIBCO、Camel 等

【讨论】:

【解决方案2】:

您的问题似乎是基于意见的,但让我们尝试回答。

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

另一方面 - 术语中间件的定义不是很严格,所以这完全取决于您的定义有多宽泛/抽象。

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

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

【讨论】:

    猜你喜欢
    • 2014-08-15
    • 1970-01-01
    • 2022-12-05
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 2016-01-03
    • 1970-01-01
    • 2011-01-02
    相关资源
    最近更新 更多