一、中间件是什么?

中间件(英语:Middleware)顾名思义是系统软件和用户应用软件之间连接的软件,以便于软件各部件之间的沟通,特别是应用软件对于系统软件的集中的逻辑,是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件在客户服务器的操作系统、网络和数据库之上,管理计算资源和网络通信。总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。

也就是说,关于中间件,我们可以理解为:是一类能够为一种或多种应用程序合作互通、资源共享,同时还能够为该应用程序提供相关的服务的软件。中间件是一类软件统称,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作。

中间件是什么,常用的中间件有哪些?

中间件示意图

中间件的特点:

满足大量应用的需要;
运行于多种硬件和OS平台;
支持分布计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互;
支持标准的协议;
支持标准的接口。

作者:行行查
链接:https://www.zhihu.com/question/19730582/answer/899159964
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

中间件与操作系统和数据库共同构成基础软件三大支柱,是一种应用于分布式系统的基础软件,位于应用与操作系统、数据库之间,为上层应用软件提供开发、运行和集成的平台。中间件解决了异构网络环境下软件互联和互操作等共性问题,并提供标准接口、协议,为应用软件间共享资源提供了可复用的“标准件”。

中间件可以分为基础中间件、集成中间件和行业领域应用平台。其中,基础中间件是构建分布式应用的基础,也是集成中间件和行业领域应用平台的基础,包括应用服务器、消息中间件和交易中间件等。

三大基础中间件分别为交易中间件、消息中间件和应用服务器中间件,其中:

交易中间件是专门针对联机业务处理系统而设计的,是所有中间件类型中理论较为成熟、功能和性能界定比较清晰的中间件产品。在联机业务处理系统中,需处理大量并发进程,涉及到操作系统、文件系统、数据通讯、数据库管理、应用软件等,通过交易中间件,可降低联机业务处理系统的开发难度,提高系统运行的安全稳定性。交易中间件主要应用在金融、财税、运输、电力、电信等行业中,如银行业务系统、电信计费系统等。

消息队列(Message Quequing)是在消息传输过程中保存消息的容器,消息中间件即为消息队列的承载形式。消息是两台计算机间传送的数据单位,消息队列在将消息从它的源中继到它的目标时充当中间人,主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它,主要解决传统结构耦合性问题、系统异步性问题以及缓解大数据量并发的问题等。

消息队列有较多的型号,较为常用的为ActiveMQ、Rabbit MQ、RocketMQ和Kafk a。由于消息队列使用消息将应用程序连接起来,这些消息通过像Rabbit MQ的消息代理服务器在应用程序之间路由。

应用服务器中间件位于客户浏览器和数据库之间,为应用程序提供业务逻辑的代码。应用服务器通过组件的应用程序接口将商业应用逻辑曝露给客户端的程序,同时为应用提供运行平台和系统服务,并管理对数据库的范围。对于高端需求,应用服务器具有高可用性监视、集群化、负载平衡、集成冗余和高性能分布式应用服务,以及对复杂的数据库访问的支持等功能。目前,市场上应用服务器平台中有J2EE,WebLogic,Glassfish,JBoss企业应用平台,以及Apache Tomcat和Apache Geronimo等。

中间件技术发展的初衷是以适应网络技术应用的复杂性及跨平台特性为基础,是在软件产业不断发展过程中自然产生的。

二、分 类

(1)事务式中间件
事务式中间件又称事务处理管理程序,是当前用的最广泛的中间件之一,其主要功能是提供联机事务处理所需要的通信、并发访问控制、事务控制、资源管理、安全管理、负载平衡、故障恢复和其他必要的服务。事务式中间件支持大量客户进程的并发访问,具有极强的扩展性。由于事务式中间件具有可靠性高、极强的扩展性等特点,主要应用于电信、金融、飞机订票系统、证券等拥有大量客户的领域。
(2)过程式中间件
过程式中间件又称远程过程调用中间件。过程中间件一般从逻辑上分为两部分:客户和服务器。客户和服务器是一个逻辑概念,既可以运行在同一计算机上,也可以运行在不同的计算机上,甚至客户和服务器底层的操作系统也可以不同。客户机和服务器之间的通信可以使用同步通信,也可以采用线程式异步调用。所以过程式中间件有较好的异构支持能力,简单易用,但由于客户和服务器之间采用访问连接,所以在易剪裁性和容错方面有一定的局限性。
(3)面向消息的中间件
面向消息的中间件,简称为消息中间件,是一类以消息为载体进行通信的中间件,利用高效可靠的消息机制来实现不同应用间大量的数据交换。按其通信模型的不同,消息中间件的通信模型有两类:消息队列和消息传递。通过这两种消息模型,不同应用之间的通信和网络的复杂性脱离,摆脱对不同通信协议的依赖,可以在复杂的网络环境中高可靠、高效率的实现安全的异步通信。消息中间件的非直接连接,支持多种通信规程,达到多个系统之间的数据的共享和同步。面向消息中间件是一类常用的中间件。 [3]
(4)面向对象中间件
面向对象中间件又称分布对象中间件,是分布式计算技术和面向对象技术发展的结合,简称对象中间件。分布对象模型是面向对象模型在分布异构环境下的自然拓广。面向对象中间件给应用层提供过重不同形式的通信服务,通过这些服务,上层应用对事务处理、分布式数据访问,对象管理等处理更简单易行。OMG组织是分布对象技术标准化方面的国际组织,它制定出了CORBA等标准。 [3]
(5)Web应用服务器
Web应用服务器是Web服务器和应用服务器相结合的产物。应用服务器中间件可以说是软件的基础设施,利用构件化技术将应用软件整合到一个确定的协同工作环境中,并提供多种通信机制,事务处理能力,及应用的开发管理功能。由于直接支持三层或多层应用系统的开发,应用服务器受到了广大用户的欢迎,是目前中间件市场上竞争的热点,J2EE架构是目前应用服务器方面的主流标准。
(6)其他
新的应用需求、新的技术创新、新的应用领域促成了新的中间件产品的出现。如,ASAAC在研究标准航空电子体系结构时提出的通用系统管理GSM,属于典型的嵌入式航电系统的中间件,互联网云技术的发展云计算中间件、物流网的中间件等随着应用市场的需求应运而生。

三、常用的中间件有哪些?

因为中间件属于一类软件的统称,所以具体来说常用中间件有哪些不同的服务商有不同的定义,我们以阿里云中间件为例来说明一下,点击下面按钮进入阿里云中间件页面:

阿里云-推广AD

我们可以看到下列中间件产品:

企业级分布式应用服务EDAS

消息队列MQ

消息队列MQ for IoT

消息服务MNS

消息队列Kafka

性能测试PTS

业务实时监控服务ARMS

在产品选购页面上,首先我们可以看到有尝鲜体验的三款中间件:

中间件是什么,常用的中间件有哪些?

 

下面还有一组热卖的中间件产品:

中间件是什么,常用的中间件有哪些?

中间件产品

这里面每款中间件产品的功能和面向的用户都是不同的,阿里云方面有非常详细的说明,大家可以阅读相关介绍,本站有时间也会单独介绍某个具体的中间件产品。

 

四、相关产品举例

Apusic MQ

该产品是国产中间件厂商金蝶的旗舰产品之一,金蝶中间件目前拥有 Apusic J2EE应用服务器、 Apusic MQ消息中间件和 Apusic Studio开发平台,组成了轻量级风格的企业基础架构软件平台金蝶 Apuisc Platform,其具备技术模型简单化、开发过程一体化、业务组件实用化的显著特性,产品间无缝集成。

BEA Weblogic

Weblogic系列的最大特点是平台开放。 Weblogic和其他第三方开发工具的结合也非常好,常见的组合就是 Jbuilder Weblogic的开发环境。
BEA Weblogic integration是 BEA Weblogic Enterprise Platform的一个组件,它提供了企业应用集成所需的各种功能,可用开发新应用,将新应用与现有系统集成,简化业务流程以及通过门户网关扩展业务基础结构。 BEA Weblogic Integration为快速交付业务集成、简化生产管理提供了通用的开发环境,整合了业务集成领域各种不同的部件,其中包括ERP、CRM遗留应用、业务用户、供应链和业务伙伴。

Oracle fusion

甲骨文公司的 Oracle融合中间件 Oracle fusion middleware是一个全面的中间件产品系列,由甲骨文公司的SOA和中间件产品组成,其中包括: Oracle应用服务器10g、 Oracle应用服务器产品和可选配件、 Oracle数据平台、 Oracle内容服务10g、 Oracle实时协作10g和 Oracle统一传信。这一经过验证的中间件产品系列可帮助各企业提高公共运作的效率及敏捷性, Oracle fusion middleware还为客户的面向服务应用提供贯穿整个生命周期的全面支持,由于其独特的插作式架构,这个系列产品具有与企业现有T基础设施的互操作性。

SA PXI

SA PXI应用集成套件作为 SA NEtweaver中间件产品的一部分,目的是为non-SAP系统提供一个其他管理信息系统与SAP系统进行数据和流程交互的平台,因为SAP定位于ERP系统,关注点在企业的人、财、物,但对于企业其他的专业系统,SAP的功能无法覆盖和取代,因此,必须有这样的“接口”来实现相互之间的数据和业务交换。