什么是中间件?

中间件是指不同应用程序用于相互通信的软件。它提供智能、高效连接应用程序的功能,从而使您能够更快速地创新。中间件相当于不同技术、工具和数据库之间的桥梁,因此,您可以将它们无缝集成到单个系统中。单个系统随后向其用户提供统一服务。例如,Windows 前端应用程序通过 Linux 后端服务器发送和接收数据,但应用程序用户并不知道这一差别。

为什么中间件非常重要?

在中间件于 1980 年代流行起来之前,它最初是作为新应用程序与旧式系统之间的桥梁。开发人员最初使用中间件将新程序与早期系统集成,而无需重写早期代码。中间件已经成为分布式系统中重要的通信和数据管理工具。

开发人员可以使用中间件为应用程序开发提供支持,并简化设计流程。这可以将开发人员解脱出来,使其将工作重点放在业务逻辑和功能上,而不是不同软件组件之间的连接性。如果没有中间件,开发人员必须为连接到应用程序的每个软件组件构建一个数据交换模块。这项工作很有挑战性,因为现代化应用程序包含多个相互通信的微服务或小型软件组件。 

中间件有哪些使用案例?

以下是较常见的中间件使用案例:

游戏开发

游戏开发员使用中间件作为游戏引擎。要使游戏正常运行,软件必须与各种图像、音频和视频服务器以及通信系统进行通信。游戏引擎可以促进这种通信,并使游戏开发更加高效。

电子

电子工程师使用中间件将各种类型的传感器与其控制器集成起来。中间件层允许传感器通过通用消息收发框架与控制器通信。 

软件开发

软件开发人员使用中间件将不同软件组件集成到其他应用程序中。中间件可以提供标准应用程序编程接口 (API),用于管理来自组件所需数据的输入和输出。与组件的内部链接对用户是隐藏的。开发人员使用 API 从软件组件请求他们需要的服务。 

数据传输

软件应用程序使用中间件可靠地发送和接收数据流。数据流是连续数据的高速传输。它们对于可靠的视频和音频流传输非常重要。

分布式应用程序

分布式应用程序是在网络上的不同计算机上运行的软件程序。它们通常由前端和后端应用程序组成。前端应用程序是您在计算机或移动设备上使用的软件,如社交媒体应用程序。相比之下,后端应用程序是执行数据处理、业务逻辑和资源管理任务的软件程序。中间件在前端和后端应用程序之间进行通信,以使分布式应用程序得以顺利运行。

中间件架构是怎样的?

中间件软件架构由多个组件组成,这些组件进行通信以创建数据管道。数据通过中间件从一个连接应用程序移动到另一个连接应用程序。中间件处理数据以实现兼容性。 以下是中间件软件的常见组件:

管理控制台

管理控制台可为软件开发人员提供中间件系统活动、软件规则和配置的概览。

客户端接口

客户端接口是中间件软件的外部部分,用于与应用程序通信。开发人员使用客户端接口提供的功能与其他应用程序、数据库或其他微服务进行交互。

中间件内部接口

中间件内部接口充当软件粘合剂,将各种组件绑定在一起。中间件组件使用内部接口与其自己的协议紧密结合发挥作用。 

平台接口

中间件接口可以确保中间件程序与各种平台兼容。它包含多个软件组件,可与不同类型的操作系统配合使用。 

合约管理器

合约管理器定义在中间件系统中进行数据交换的规则。它还可以确保应用程序在使用中间件发送数据时遵守规则。当应用程序违反特定规则时,它会向应用程序发送提示或异常。例如,如果应用程序在本应发送词汇时发送了数字,则合约管理器将返回异常。 

会话管理器

会话管理器可在应用程序与中间件之间建立安全的通信通道。它可确保通信无缝流动,并存储数据活动记录用于报告。 

数据库管理器

某些类型的中间件还包括数据库管理器。数据库管理器负责根据需要与不同数据库类型集成。 

运行时监控器

运行时监控器提供对中间件中数据移动的持续监控。它将检测异常活动,并向开发人员报告。 

中间件的工作原理是什么?

中间件将组件之间的底层通信过程抽象化。这意味着前端应用程序只与中间件通信,而不必学习其他后端软件组件的语言。 

消息收发框架

消息收发框架有助于前端应用程序与后端应用程序之间的数据交换。常见框架包括以下几种:

  • JavaScript 对象表示法 (JSON)
  • 表述状态转移 (REST API)
  • 可扩展标记语言 (XML)
  • Web 服务
  • 简单对象访问协议 (SOAP) 

消息收发框架可为不同操作平台和语言的应用程序提供通用通信接口。应用程序将以消息收发框架提供的标准化格式写入和读取数据。 

中间件的示例

例如,Web 服务器是将网站连接到后端数据库的中间件。当您在网站上提交表单时,您的计算机会将 XML 或 JSON 格式的请求发送到 Web 服务器。然后,Web 服务器将根据该请求运行业务逻辑,从数据库中检索信息,或使用不同协议与其他微服务通信。

其他中间件功能

除了作为软件应用程序之间的中介之外,中间件程序还执行以下操作:

  • 在分布式应用程序之间提供安全的通信通道,以便网站将敏感信息安全地发送到后端应用程序。 
  • 管理通信流量,并避免使特定应用程序或文件服务器不堪重负。
  • 自动执行和自定义对请求的响应。例如,中间件在将结果发送到前端应用程序之前,会对结果进行排序和筛选。

什么是平台中间件?

平台中间件通过提供托管工具和资源的系统,为应用程序开发提供支持。开发人员使用平台中间件在应用程序之间共享或转移资源。以下是平台中间件资源的一些示例:

运行时环境

运行时环境就像一个允许软件程序运行的小型操作系统。例如,Java 应用程序必须在 Java 运行时环境中运行。开发人员可以使用 AWS Lambda 为任何编程语言设置运行时环境。 

Web 服务器

Web 服务器是一种计算机程序,用于接收、处理和响应来自网站的请求。Web 开发人员使用 Amazon Lightsail 托管和管理用于简单应用程序的 Web 服务器。 

内容管理系统

内容管理系统是创建、修改、存储和发布数字信息的软件。例如,WordPress 是一种用于构建网站的开源内容管理系统。 

容器

容器是可随时部署的捆绑包,其中包含应用程序代码和必要资源。开发人员可以使用 Amazon Elastic Container Service (Amazon ECS) 来部署、管理和扩展容器化应用程序。 

中间件有哪些类型?

在软件开发中,开发人员可将中间件用于各种用途。 以下是中间件的常见类型:

企业应用程序集成中间件

企业应用程序集成中间件可将组织内的所有软件系统、服务和数据源连接起来。企业应用程序可以使用此中间件相互发送信息,而无需更改网络或数据库配置。 

面向数据库的中间件

面向数据或面向数据库的中间件可以促进应用程序与不同类型数据库之间的数据传输。

面向消息的中间件

面向消息的中间件 (MOM) 可为分布式计算系统上软件组件之间的通信提供支持。

事务中间件

事务中间件,如事务处理监控器,可以确保软件事务处理中的每个步骤都得到正确执行。 

以内容为中心的中间件

应用程序使用以内容为中心的中间件来发布或检索内容,而无需构建底层存储机制。

远程过程调用中间件

软件程序使用远程过程调用 (RPC) 中间件来使用同一网络中其他程序的服务。

设备中间件

设备中间件可为开发人员在特定移动设备上构建移动应用程序提供必要资源,如连接框架和库。 

对象请求中间件

应用程序使用对象请求代理或对象请求中间件来发送请求,而无需知道目标应用程序的托管位置。

应用程序服务器中间件

开发人员可以使用应用程序服务器中间件来构建、部署、管理企业应用程序,并将其连接到后端应用程序服务器。

嵌入式中间件

嵌入式中间件充当嵌入式系统中应用程序与操作系统之间的桥梁。嵌入式系统是与微控制器配合工作的电子产品。 

API 管理中间件

开发人员可以使用 API 管理中间件来创建 API,并方便其他开发人员使用。 

异步数据流式传输中间件

异步数据流式传输中间件可为分布式系统之间的实时数据流式传输提供支持。

机器人中间件

工程师可以使用机器人中间件来集成不同类型的机器人,而无论其硬件、固件和制造商如何。 

什么是云计算中的中间件?

云计算涉及跨越不同基础设施构建和部署云原生应用程序。开发人员可以使用中间件访问云资源,而不会被管理基础设施的复杂性弄得不堪重负。开发人员可将云应用程序部署在基于云的可扩展托管上的容器中,如 Amazon Elastic Compute Cloud (Amazon EC2)

Amazon EC2 简介

AWS 如何为中间件技术提供支持?

AWS 上的应用程序集成是一套服务,是用于云计算的传统中间件的经济实惠的替代品。开发人员可以使用这些服务在微服务、分布式系统和无服务器应用程序中的分离组件之间进行通信。例如:

  • AWS Step Functions 是一项可视化的工作流服务,使开发人员能够通过使用 AWS 服务轻松构建分布式应用程序、自动执行 IT 和业务流程,以及构建数据和机器学习管道。
  • Amazon Simple Notification Service (Amazon SNS) 是面向消息的中间件的替代品。它可为应用程序提供消息收发服务。
  • Amazon EventBridge 是一种无服务器事件总线,开发人员可以使用它将云应用程序与 AWS 服务集成起来。  

立即创建 AWS 账户开始使用 AWS 上的中间件。

中间件后续步骤

Sign up for a free account
注册免费账户

立即享受 AWS 免费套餐。

创建免费账户 
Standard Product Icons (Start Building) Squid Ink
开始在控制台中构建

在 AWS 管理控制台中,使用 Amzon EC2 开始构建。

登录