【发布时间】: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