中间件(英语:Middleware),又译中间件、中介层,是一类提供系统软件和应用软件之间连接、便于软件各部件之间的沟通的软件,应用软件可以借助中间件在不同的技术架构之间共享信息与资源。中间件位于客户机服务器的操作系统之上,管理着计算资源和网络通信。
中间件在现代信息技术应用框架如Web服务、面向服务的体系结构等中应用比较广泛,如数据库、Apache的Tomcat,IBM公司的WebSphere,BEA公司的WebLogic应用服务器,东方通的Tong系列中间件等都属于中间件。
严格来讲,中间件技术已经不局限于应用服务器、数据库服务器。围绕中间件,Apache组织、IBM、Oracle(BEA)、微软各自发展出了较为完整的软件产品体系。(Microsoft Servers微软公司的服务器产品)。
当前主流操作系统主要为Unix、Linux、苹果公司的系统以及微软视窗系列。微软阵营的主要技术提供商来自微软及其商业伙伴,Java阵营则来自IBM、Sun(已被Oracle收购)、Oracle、BEA(已被Oracle收购)、东方通(Tong系列中间件)、金蝶(Kingdee Apusic)及其合作伙伴,开源阵营则主要来自诸如Apache,SourceForge等组织的共享代码。
中间件的概念是随着技术的发展而发展的。
中国科学院软件所研究员仲萃豪把中间件定义为“平台+通信”。这个定义限定了只有用于分布式系统中的此类软件才能被称为中间件,同时此定义也把中间件与实际应用的应用软件区分开来。
中间件技术创建在对应用软件部分常用功能的抽象上,将常用且重要的过程调用、分布式组件、消息队列、事务、安全、链接器、商业流程、网络并发、HTTP服务器、Web Service等功能集于一身或者分别在不同品牌的不同产品中分别完成。一般认为在商业中间件及信息化市场主要存在微软阵营、Java阵营、开源阵营。阵营的区分主要体现在对下层操作系统的选择以及对上层组件标准的制订。
基于中间件技术构建的商业信息软件广泛的应用于能源、电信、金融、银行、医疗、教育等行业软件,降低了面向行业的软件的开发成本。
上层中间件(Upper Middleware)是基于中间件之上的一种产品服务。传统的中间件一般只是提供技术服务,而在此之上的上层中间件考虑解决业务问题,为业务人员所用。简单地说,上层中间件是中间件与业务服务的结合产物,所表现出的是允许业务人员定制业务服务,实现实时的业务价值。一般来说,上层中间件是SOA架构的一种延伸形态。
与物联网/M2M相关中间件有很多种类,如嵌入式中间件、数字电视中间件、RFID中间件和通用M2M物联网中间件等,中间件和物联网一样无处不在。OSGi(Open Services Gateway initiative)是一个1999年成立的开放标准联盟,被广泛的用到了手机和智能M2M终端上,在汽车业(汽车中的嵌入式系统)、工业自动化、智能楼宇、网格计算、云计算、各种机顶盒、Telematics等领域都有广泛应用。