中间件
中间件(英语:Middleware),又译中间件、中介层,是一类提供系统软件和应用软件之间连接、便于软件各部件之间的沟通的软件,应用软件可以借助中间件在不同的技术架构之间共享资讯与资源。中间件位于客户机伺服器的操作系统之上,管理着计算资源和网络通信。
中间件在现代资讯科技应用框架如Web服务、面向服务的体系结构等中应用比较广泛,如应用程序接口、数据库、Apache的Tomcat,IBM公司的WebSphere,BEA公司的WebLogic应用伺服器,中创的InforSuite系列产品,金蝶的Apusic系列产品,东方通的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等领域都有广泛应用。