中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。
中间件处在操作系统、网络和数据库之上,应用软件的下层(如图 15-1 所示),也有人认为它应该属于操作系统中的一部分。
中间件的概念
中间件发展迅速,但在技术上还处于成长阶段,没有统一的标准和模型。
中间件要涉及软件的所有标准、规范和技术,它有更多的内涵,因为它包括平台功能,自身具有自治性、自主性、隔离性、社会化、激发性、主动性、并发性、认识能力等特性,是近似于 Agent(代理)的结构。
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件 在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网 络通信。这些服务程序或软件具有标准的程序接口和协议。针对不同的操作系统和硬件平台, 它们可以有符合接口和协议规范的多种实现。中间件为处于其上层的应用软件提供运行与开 发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。
中间件应具有如下的一些特 点:
满足大量应用的需要;
运行于多种硬件和 OS 平台;
支持分布计算,提供跨网络、硬件和 OS 平台的透明性的应用或服务的交互;
支持标准的协议;
支持标准的接口。
中间件的十大优越性:
缩短应用的开发周期;
节约应用的开发成本;
减少系统初期的建设成本;
降低应用开发的失败率;
保护已有的投资;
简化应用集成;
减少维护费用;
提高应用的开发质量;
保证技术进步的连续性;
增强应用的生命力。
中间件的分类
(1)通信处理(消息)中间件
在分布式系统中,人们要建网和制定出通信协议,以保 证系统能在不同平台之间通信,实现分布式系统中可靠的、高效的、实时的跨平台数据传输, 这类中间件称为消息中间件。
(2)事务处理(交易)中间件
在分布式事务处理系统中, 经常要处理大量事务,特别是 OLTP 中,每项事务常常要多台服务器上的程序按顺序协调完 成,一旦中间发生某种故障,不但要完成恢复工作,而且要自动切换系统,达到系统永不停 机,实现高可靠性运行。要使大量事务在多台应用服务器上能实时并发运行,并进行负载平 衡的调度,实现与昂贵的可靠性机和大型计算机系统同等的功能,为了实现这个目标,要求 中间件系统具有监视和调度整个系统的功能。
(3)数据存取管理中间件
在分布式系统中,重要的数据都集中存放在数据服务器中, 它们可以是关系型的、复合文档型、具有各种存放格式的多媒体型,或者是经过加密或压缩 存放的,该中间件将为在网络上虚拟缓冲存取、格式转换、解压等带来方便。
(4)Web 服务器中间件
浏览器图形用户界面已成为公认规范,然而它的会话能力差、 不擅长做数据写入、受 HTTP 协议的限制等,就必须进行修改和扩充,形成了 Web 服务器 中间件。
(5)安全中间件
如防火墙、加密、认证等。
产生不安全因素是由操作系统引起的,但必须要用中间件去解决,以适应灵活多变的要求。
(6)跨平台和架构的中间件
在分布式系统中,还需要集成各节点上的不同系统平台上的构件或新老版本的构件,由此产 生了架构中间件。
(7)专用平台中间件
为特定应用领域设计领域参考模式,建立相应架构,配置相应的构件库和中间件,为应用服务器开发和运行特定领域的关键任务(如电子商务、网站等)。
(8)网络中间件
它包括网管、接入、网络测试、虚拟社区、虚拟缓冲等,也是当前最热门的研发项目。