what
是一种应用于分布式系统的基础软件。
从纵向层次来看,中间件位于各类应用/服务与操作系统/数据库系统以及其他系统软件之间,主要解决分布式环境下数据传输、数据访问、应用调度、系统构建和系统集成、流程管理等问题,是分布式环境下支撑应用开发、运行和集成的平台,能够实现系统之间的互联互通,帮助用户高效开发应用软件。
中间件伴随分布式计算架构发展而演化。中间件发展和计算架构变化紧密相关,随着网络架构发展,许多应用软件需要在不同的硬件平台、网络协议环境下运行,传统的两层分布式架构,即客户端—服务器架构,面临着性能差、效率低的问题,无法满足需求,三层或多层分布式架构由此提出,具体业务逻辑与底层逻辑解耦,分离至中间层,最终由中间件统一接口和协议,将客户端与服务器进行组合。
分类
中间件的功能特点、自身定位决定了其分类的多样性。具体的,中间件可以分为基础中间件、集成中间件和行业领域应用平台。
基础中间件
中间件产生之初主要解决分布式环境下软件性能和可靠性的问题,包括交易中间件、消息中间件等。
此后,为满足应用软件在不同硬件平台、网络环境下运行的需求,应用服务器中间件随之出现。
交易中间件
是面向对象技术与分布式计算技术结合的产物,其高效地传递交易(事务)请求,协调事务的各个分支,保证事务的完整性,调度应用程序的运行,实现整个系统运行的高效性。
交易中间件适用于联机交易系统,如银行业务系统、订票系统等,在金融、财税、电信等行业中得到广泛落地。
消息中间件
解决了分布式计算环境下多个子系统间的消息通信问题。
其建立网络异步通信的通道,实现不同或同一计算机系统的应用通信,为网络环境下分布式应用系统的开发和运行提供灵活、易用的支撑平台,通常用来在各个系统或者组件间发送消息数据。消息队列是消息中间件的一种实现方式。
应用服务器中间件
主要应用于Web系统,位于客户浏览器和数据库之间,其主要作用为把商业逻辑(应用)曝露给客户端,同时为商业逻辑(应用)提供运行平台和系统服务,并管理对数据库的访问。
应用服务器中间件为Web系统下的应用开发者提供了开发工具和运行平台。
总体而言,基于基础中间件,软件应用能够运行于不同操作系统,数据能够存储到各厂商的数据库,支持基于各种不同的网络进行信息交换与稳定的交易。
软件基础平台
伴随着网络技术的进一步发展,基础中间件难以解决业务跨部门、跨企业的互联互通问题,集成中间件应运而生,主要基于面向服务(Service Oriented Architecture,SOA)架构。
在SOA架构下,Web Services是一种具体实现方式,所有具备价值的IT资源不论新旧,均能成为随取随用的IT资产,并将各种服务快速整合并开发为组合式应用。
基于此,企业服务总线(Enterprise Service Bus,ESB)发展而来,其基于消息通信、智能路由、数据转换等技术,支持各种异构软件及业务模块以服务化方式进行通信,是一种综合的集成中间件。
近年来,云计算、大数据等新一代信息技术兴起,中间件产品功能也持续演进,应用场景和边界向云计算、大数据领域发展,云中间件、数据集成平台等成为新基础设施。
SOA、云计算、大数据领域的中间件主要解决应用软件的集成、软件架构的一致性、软件的快速交付以及数据治理和安全使用等问题。为区别于传统中间件,业内提出了软件基础平台的概念。
