什么是中间件?

复制 URL

中间件是指连接操作系统与应用、数据及用户的软件层。中间件提供一些常用服务和功能,例如单点登录(SSO)或应用编程接口(API)管理。开发人员可以借助中间件集成不同的应用组件,使其通过一个简单、统一的方式进行连接和交互。这让开发人员能够腾出时间来构建应用的核心功能,而不是花时间将这些功能连接到不同的端点和环境,包括传统系统。

1960 年代末开始,中间件就成为了软件工程技术的一部分,并且它不仅限于某一特定类型的软件,而是作为一个广泛的类别,可以应用于许多不同类型的现代软件组件。中间件可以包括应用运行时、企业应用集成和各种云服务。数据管理、应用服务、消息传递、身份验证和 API 管理通常都要通过中间件来处理。

如今,中间件是现代云原生架构的技术基础。对于具有多云和容器化环境的企业而言,中间件可以助您大规模、经济高效地开发和运行应用。

浏览红帽应用基础

从广义上讲,中间件涵盖了从 Web 服务器,到身份验证系统,再到消息传递工具等一切组件。以下是现代化开发中一些常见的中间件用例。

Middleware New Application Development diagram

新应用开发

中间件可支持各种用例的现代常用运行时环境。开发人员和架构师可以根据一组基本运行时、框架和编程语言,跨平台灵活地开展工作。此外,中间件还可以提供一些常用功能,例如 Web 服务器、单点登录(SSO)、消息传递和内存中缓存。

Middleware optimization of existing applications diagram

优化现有应用

借助中间件,开发人员可以将传统单体式应用转换为云原生应用,从而带来更高的性能和更强的可移植性,让有价值的工具焕发新生。

Middleware comprehensive integration diagram

全面集成

中间件集成工具可连接关键的内部和外部系统。转换、连接、组合和企业消息传递等集成功能与 SSO 身份验证相结合,使开发人员可以更轻松地在不同应用之间扩展功能。

Middleware app programming interfaces diagram

应用编程接口(API)

许多中间件服务都是通过 API 访问的,API 是一组允许应用之间相互通信的工具、定义和协议。正是有了 API,才有可能通过通用层连接完全不同的产品和服务。

Middleware data streaming diagram

数据流

API 是在应用之间共享数据的一种方法,另一种方法是异步数据流。这种方法是在中间存储中复制数据集,其中的数据可在多个应用之间共享。Apache Kafka 是一款常见的用于实时数据流的开源中间件工具。

Middleware intelligent business automation diagram

智能业务自动化

借助中间件,开发人员、架构师、IT 和业务主管可以实现手动决策自动化。自动化可以改善资源管理和整体效率。

红帽资源

随着企业越来越多地采用云原生开发,软件开发人员和系统架构师必须更关注应用平台的前期设计和架构。这需要选择和设置合适的框架与功能,以便开发、部署和运行应用,而所有功能都是由中间件来管理和协调。有了这些功能,企业就能进一步挖掘云的益处。应用可以部署在多个不同的基础架构上(无论是本地系统还是公共云环境),并且它们都能正常运行。

为了应对这种复杂情况,企业纷纷选择了中间件(现在大部分中间件作为云服务来提供,简化了开发和管理工作)来保持快速、经济高效的应用开发。中间件可以有力支持应用环境在高度分布式平台上平稳、一致地运行。它还可以为软件供应链安全防护、DevSecOps 战略和自动化提供支持,帮助团队更快速地构建更好的新型应用,同时仍能掌控安全风险。

现代业务应用经过精心设计,可以在本地或跨云端大规模运行。为了构建这些应用,开发人员需要一种具备统一基础功能的应用环境。中间件正是打造这种环境的关键。

我们可以将这些功能分为四层,外加相应的工具:

容器层

中间件的这一层将以统一方式管理应用生命周期的交付。它提供带有 CI/CDDevOps 能力、容器管理以及服务网格功能。

运行时层

该层包含了自定义代码的执行环境。中间件可以为高度分布式云环境(例如微服务)、内存中缓存(用于快速访问数据)和消息传递(用于快速数据传输)提供轻量级运行时和框架。

集成层

集成中间件可提供相关服务,以通过消息传递、集成和 API 来连接自定义与购买的应用及软件即服务(SaaS)资产,从而形成功能正常的系统。此外,它还可以提供内存数据库和数据缓存服务、数据/事件流以及 API 管理功能。

流程自动化和决策管理层

这是开发中间件的最后一层,旨在强化关键智能,实现优化和自动化,以及加强决策管理。

工具

除了上述四层中间件之外,还有相应的应用开发工具。借助这些工具,团队可以使用预设的模板和容器来构建应用,并促进有效的代码共享和联合开发。这些工具可在本地和云端提供连贯一致的应用开发和交付体验。

API 会建立一组用于集成软件的定义和协议,以便应用可以与其他产品和服务通信。API 简化了开发人员将新应用组件集成到现有架构的方式,继而帮助团队更好地协作,更快速地为软件添加实用的新功能。

使用 API 和微服务是云原生应用开发的基础。促进 API 连接的服务也是一种中间件。通过 API 管理工具,开发人员能够分享、分发、控制 API 并利用 API 盈利。

连同服务网格和数据流等其他应用服务工具,API 管理支持在混合云环境中大规模运行应用。

中心

红帽官方博客

获取有关我们的客户、合作伙伴和社区生态系统的最新信息。

所有红帽产品试用

我们的免费试用可让您亲身体验红帽的产品功能,为获得认证做好准备,或评估某个产品是否适合您的企业。

扩展阅读

什么是应用集成?

应用集成可将不同的系统和应用连接起来,使它们可通过交换数据和使用服务进行协作。

一文看懂 API 是什么,有什么用?- 红帽

应用编程接口(API)是一组用于构建和集成应用软件的定义和协议。通过向合作伙伴或公众提供您的 API,可以:创造新的收入渠道,扩大您的品牌覆盖范围,通过外部开发和协作,推动开放创新或提高效率。

一文看懂 GraphQL 是什么?都有哪些优缺点 - 红帽

GraphQL 是一种用于应用编程接口(API)的查询语言和服务器端运行时,作为 REST 的替代方案,它可以使客户端准确地获得所需的数据,没有任何冗余。让 API 变得快速、灵活并且为开发人员提供便利。

集成 相关资源