中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。
在众多关于中间件的定义中,比较普遍被接受的是IDC表述的:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
IDC对中间件的定义表明,中间件是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。
中科院软件所研究员仲萃豪形象地把中间件定义为:平台+通信。这个定义限定了只有用于分布式系统中的此类软件才能被称为 中间件,同时此定义还可以把中间件与支撑软件和实用软件区分开来。
目前,中间件发展很快,已经与操作系统、数据库并列为三大基础软件。中间件主要分为以下几类:
1.通信处理(消息)中间件
此类中间件能在不同平台之间通信,实现分布式系统中可靠的、高效的、实时的跨平台数据传输(如Tong LINK、BEAe Link、IBM的MQ Series等)。这是中间件中唯一不可缺少的,是销售额最大的中间件产品。
2.交易中间件
在分布式事务处理系统中要处理大量事务,常常在系统中要同时做上万笔事务。例如在北京市就要设置各