如下图为中间件的逻辑架构:
- 中间件居于物理节点(physical node)和逻辑节点(logical node)之间的层次;
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或 OS 环境。
中间件可以进一步级联;如下图为以中间件的形式,对请求的代理pipeline:
1. 中间件是对输入输出的研究
假设如下的场景,你所在的公司生产了 4 件产品,公司的某客户,手头已有 3 件产品分别来自 3 家不同的公司。此时如果客户想将所有这些产品集成为一个大系统。最快的方式是什么?
答案便是使用中间件技术。这里中间件的要义在于,研究各个系统的输入和输出,以及它们需要利用的资源,然后选择一个恰当的中间件框架。如下图所示,中间件置于整个大系统的中间位置,比如首个系统如果输出 X,系统 Y 和系统 Z 则可消耗 X,继续运行。
2. 中间件的分类
- 远程过程调用和对象访问中间件;
- 分布式环境下应用的互相访问问题;也是应用服务化的基础(以服务的形式提供应用)
- 消息中间件;
- 应用间的消息传递,解耦,异步的问题;
- 数据访问中间件;
- 应用访问数据库的共性问题;