中间件是位于平台(平台与操作系统)和应用之间的通用服务,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,他们可以有符合接口和协议规范的多种实现。业界比较认可的两种定义如下:
(1)在一个分布式系统环境中处于操作系统和应用程序之间的软件。
(2)中间件是一种独立的系统软件或服务程序,分布式应用软件借住这种软件在不同的技术之间共享资源,中间件位于客户机/服务器的操作系统之上,管理计算资源和网络通信。
从这些定义中可以看出:
(1)中间件是一类软件,而非一种软件。
(2)中间件不仅仅实现互联,还是实现应用之间的互操作。
(3)中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。
中间件的功能包括如下:
(1)负责客户机和服务器间的连接和通信。
(2)提供客户机与应用层的高效通信机制。
(3)提供应用层不同服务之间的互操作机制。
(4)提供应用层与数据库之间的连接和控制机制。
(5)提供一个多层结构应用开发和运行的平台。
(6)提供一个应用开发框架,支持模块化的应用开发。
(7)屏蔽硬件、操作系统、网络和数据库。
(8)提供交易管理机制,保证交易的一致性。
(9)提供应用的负载均衡和高可用性。
(10)提供应用的安全机制与管理功能。