wiki说:可以被视为中间件的服务包括企业应用程序集成,数据集成,面向消息的中间件(MOM),对象请求代理(ORB)和企业服务总线(ESB)。
下面是我工作的基于中间件的3层架构,其中4个组件 - 客户端,中间件和两个管理器,都是基于java的系统和RMI意识到的。
中间件在架构(上图)中引入,主要用于数据集成(业务逻辑):
- 执行来自多个经理的不同数据(业务逻辑)的集成
- 表示层(用于客户端)在集成后提供特定格式的数据
- 客户端访问的身份验证/授权/安全性。
概括起来,以上是在任何3层架构产品中引入中间件的一些主要原因。
正如上面提到的here,RMI只是在上述架构中提供寻址,同步,编码,移动性而非互操作性,通信方面,仅此而已。 RMI本身不是中间件
想象一下,将上述架构从RMI迁移到Axis2,这四个组件(包括中间件)中的所有POJO都应该使用Axis2启用Web。中间件(上图)的功能保持不变。
Axis2只使用SOAP或REST(v2)协议实现这4个组件之间的可互操作通信,仅此而已。
但在这个paper中,Axis2被称为中间件。它是JAX-WS规范的实现。
说Axis2是一个中间件是什么意思?它不执行业务逻辑。
你的问题似乎是基于意见的,但我们试着回答。
我相信你的直觉是正确的。恕我直言Axis2是一个服务框架,我不称之为中间件,因为我理解更广泛的功能。
另一方面 - 术语中间件的定义并不严格,所以这取决于你做出的广泛/抽象定义。
当使用Axis提供消息转换(SOAP to Java)时,一些安全功能可以理解为中间件,因为Axis没有执行任何业务逻辑(那么甚至RMI也适合中间件定义)
总结 - 将Axis2框架称为中间件是恕我直言不幸。现在问题是作者是否试图使用流行语或者他们找不到更好的标题
如果中间件的定义类似于 - “用于在传达两种不同技术时定义中间人的通用术语”那么Axis可以被命名为中间件。我认为他们已经考虑过这个通用定义。
但大多数使用的中间件是两种类型 -