# 第 1 章 什么是中间件

作者:小傅哥
博客:https://bugstack.cn (opens new window)

沉淀、分享、成长,让自己和他人都能有所收获!

# 一、前言

在互联网应用开发初期,所有用于支撑系统建设的,框架结构、基础工具、业务逻辑、功能服务包括页面展示等,都是在一个系统中开发完成,最终也只是把系统和数据库部署在同一台服务器上。

但随着互联网应用的发展,业务体量逐渐增大,那么原有的系统搭建就很难支撑起现有的业务体量。因此开始陆续出现应用与数据库分离、Nginx 反向代理、缓存组件、分组部署、RPC 分布式应用、网关服务、监控系统等等。

在这些系统的架构的演进过程中,不断的出现各类支撑起服务建设升级的系统和中间件。在中间件这一层的建设,基本是来自于业务系统中非业务逻辑的通用性核心功能抽离出来的,而逐步形成各类中间件服务。

中间件:是介于操作系统和应用软件之间,为应用软件提供服务功能的软件,有消息中间件,通信中间件,应用服务器等。由于介于两种软件之间,所以,称为中间件。

# 二、中间件的起源

最早具有中间件技术思想以及功能实现的软件是 IBM 的 CICS,但由于 CICS 不是分布式环境下的产品,因此大家一般把 Tuxedo 作为第一个严格意义上的中间件。

Tuxedo 是1984年在当时属于AT&T的贝尔实验室开发完成,但由于分布式处理当时并没有在商业应用上获得像今天一样的成功,Tuxedo 在很长一段时期里只是实验室的产品,后来被 Novell 收购,在经过 Novell 并不成功的商业推广后,1995年被现在的 BEA 公司收购。

尽管中间件的概念很早就已经产生,但中间件技术的广泛运用却是在最近10年之中。BEA 公司1995年成立后收购 Tuxedo 才成为一个真正的中间件厂商,IBM 的中间件 MQSeries 也是20世纪90年代的产品,其他许多中间件产品也都是最近几年才成熟起来的。