什么是中间件 (Middleware)??

3D 渲染展览背景

什么是中间件 (Middleware)??

中间件 (Middleware) 是一种软件,可在分布式网络中的应用程序或组件之间实现一种或多种通信或连接,中间件本质上充当了将不同系统绑定在一起的“软件粘合剂”。

中间件的智能化功能可在最初设计为互不联通的平台之间建立连接,从而简化应用程序开发并加速上市。

各种类型的中间件包括:

辅以专家洞察分析的最新科技新闻

通过 Think 时事通讯,了解有关 AI、自动化、数据等方面最重要且最有趣的行业趋势。请参阅 IBM 隐私声明

谢谢!您已订阅。

您的订阅将以英语提供。您会在每份时事通讯中找到一个取消订阅链接。您可以在此管理您的订阅或取消订阅。更多相关信息,请参阅我们的《IBM 隐私声明》。

中间件的起源

“中间件”一词最早出现在 20 世纪 60 年代末。之所以提出这个术语,是因为最初的版本通常充当应用前端(客户端)与后端资源之间的中介。该资源可能是数据库、主机应用程序或专用硬件设备,客户端可能会从中请求数据。为了应对 20 世纪 80 年代分布式计算的增长,中间件作为将较新应用程序与传统旧式系统相互链接的一种方式,应用也更为广泛。

但是如今,中间件的运行远远超出了这个范畴。例如,门户中间件包括应用程序前端以及用于后端连接的工具。数据库中间件通常包含自己的数据存储。

经过不断演变,中间件已经在现代云原生应用程序开发中发挥着举足轻重的作用。它利用容器技术,帮助 DevOps 和其他团队连接到分布在多云环境中的资源。此方式支持持续集成 (CI) 持续交付 (CD),即 CI/CD,从而可简化应用程序编码、测试和部署,实现快速扩展和业务增长。

企业越来越倾向于将中间件作为基于云的服务产品用于系统之间的通信,同时也将中间件作为数据管理工具。Technavio 的一项研究预测,全球中间件即服务 (MWaaS) 市场将在 2023—2028 年期间增长 454.4 亿美元,复合年增长率 (CAGR) 为 17.73%。该研究将这种增长归因于云计算的广泛采用以及无服务器计算和微服务的增加。1

WebMethods Hybrid Integration

重塑 AI 时代的集成范式

IBM Web Methods Hybrid Integration 展示了企业如何无缝连接云和本地部署的应用程序,实现敏捷和可扩展的数字化转型。 

中间件如何工作?

利用中间件,开发人员在搭建应用程序时,如果需要连接到应用程序组件(服务或微服务)、数据源、计算资源或设备时,无需再创建定制集成。

中间件通过提供基本服务,促进不同应用程序和服务之间的通信。它通过常见的消息传递框架实现这种通信,例如 JavaScript 对象表示法 (JSON)、表述性状态转移 (REST)、可扩展标记语言 (XML)、简单对象访问协议 (SOAP) 或 Web 服务。通常,中间件还提供服务来实现以多种语言(例如 Java、C++、PHP 和 Python)编写的组件之间的相互通信。

中间件组件

标准中间件架构组件包括:

  • 中间件管理控制台:管理控制台为开发人员提供了中间件事件、活动、配置等的概要信息。
  • 客户端界面:前端的客户端界面与后端应用程序、数据库微服务或其他服务进行通信。
  • 中间件内部接口:借助中间件内部接口,中间件实例可以使用特殊的中间件协议彼此通信。
  • 平台接口:平台接口连接后端服务器和不同的操作系统 (OS),确保中间件跨平台运行。
  • 合约管理器:合约管理器用于定义应用程序必须遵循的数据交换规则。
  • 会话管理器:会话管理器可确保中间件和应用程序之间的安全通信,并确保此类通信不会超时。
  • 数据库管理器:数据库管理器可根据具体要求(例如,内部数据或基于云的数据)提供与不同数据库的集成。
  • 运行时监控器:运行时监控器可跟踪所有中间件数据的移动,并为软件开发人员提供活动报告。

面向软件开发人员的中间件用例

除了能轻松实现互操作性,中间件服务还可以通过以下方式为软件开发人员助力。

配置和控制连接与集成

根据客户端或前端应用程序请求信息,中间件可以自定义后端应用程序或服务响应。在零售商的电子商务应用中,中间件应用逻辑可以根据距离最近的门店位置,对来自后端库存数据库的产品搜索结果进行排序。这种排序基于 HTTP 请求标头中的 IP 地址或位置信息。

保护连接和数据传输

中间件通常使用传输层安全协议 (TSL) 或其他网络安全协议,在前端应用程序与后端数据源之间建立安全连接。它可以提供身份验证功能,向前端应用程序发起请求以获取凭据(用户名和密码)或数字证书。

跨分布式系统动态管理流量

当应用程序流量达到峰值时,企业中间件可以扩展以将客户端请求分发到本地或云中的多个服务器。并发处理功能可防止多个客户端同时尝试访问同一后端数据源时出现问题。

优化现有应用程序

中间件可将传统的单体式应用程序转换为基于微服务架构的云端应用程序,帮助开发人员实现应用程序现代化

减少手动任务

中间件自动化可帮助开发人员简化和自动化复杂 IT 任务的管理,从而提高整体效率。

支持 DevSecOps

中间件通过帮助团队更快构建应用程序,同时降低安全风险,来为 DevSecOps(代表开发、安全和运营)方法提供支持。

中间件类型

中间件有许多不同的类型。有些专注于特定类型的连接,有些则专注于特定的应用程序、应用程序组件和设备。有些则将中间件功能结合起来,用于特定的软件开发任务。以下是一些最著名和最常用的中间件软件类型:

  • 面向消息的中间件 (MOM)
  • 远程过程调用 (RPC) 中间件
  • 数据或数据库中间件
  • 应用程序编程接口 (API) 中间件
  • 对象请求代理 (ORB) 中间件
  • 事务性中间件
  • 异步数据流中间件
  • 设备中间件
  • 门户中间件
  • 机器人中间件
  • 企业应用集成中间件

面向消息的中间件 (MOM)

借助面向消息的中间件 (MOM),使用不同消息传递协议的应用程序组件能够进行通信并交换消息。除了在应用程序之间转换消息之外,MOM 还管理消息的路由,使消息始终按照适当的顺序到达相应的组件。MOM 的示例包括消息队列消息代理

远程过程调用 (RPC) 中间件

远程过程调用 (RPC) 中间件使一个应用程序能够触发另一个应用程序中的过程,无论这些应用程序位于同一台计算机还是不同的计算机或网络。该过程使两个应用程序的运行方式就像它们在同一台计算机上、属于同一个应用程序一样。

数据或数据库中间件

数据或数据库中间件可简化对后端数据库的访问以及与后端数据库的交互。通常,数据库中间件是某种形式的 SQL 数据库服务器。

应用程序编程接口 (API) 中间件

应用程序编程接口 (API) 中间件为开发人员提供了为其应用程序创建、公开和管理 API 所用的工具,以便其他开发人员可以连接到这些应用程序。

一些 API 中间件包含用于实现 API 货币化的工具,使不同组织能够按成本价使用这些 API。API 中间件的示例包括 API 管理平台、API 网关和 API 开发人员门户。

对象请求代理 (ORB) 中间件

对象请求代理 (ORB) 中间件充当一个中介,负责处理一个应用对象或组件的请求与另一个对象或组件的响应之间的交互。这个过程发生在分布式网络内,确保组件之间的无缝通信和交互。

对象请求代理 (ORB) 基于通用对象请求代理架构 (CORBA) 运行,该架构使一个软件组件可以向另一个组件发出请求,而无需知道对方的托管位置或其用户界面 (UI) 是什么样的。“中介”机制在交换过程中管理这些信息。

事务性中间件

事务性中间件提供服务,以支持在分布式网络上执行数据事务。最著名的事务性中间件是事务处理监视器 (TPM),它将事务从一个步骤驱动到下一个步骤。它们通过根据需要添加、修改或删除数据来管理数据交换,直到事务完成为止。

异步数据流中间件

异步数据流中间件在中间存储中复制数据流,从而实现多个应用程序之间的数据共享。Apache Kafka 是用于实时事件流的最有名的中间件开源平台示例之一。

设备中间件

设备中间件提供了一系列集中式集成和连接功能,用于为特定移动操作系统 (OS) 开发应用程序。

门户中间件

门户中间件提供了工具和资源,用于单一屏幕上集成各种相关应用程序的内容和功能,以创建单个复合应用程序。

机器人中间件

机器人中间件可简化对来自多个制造商和地点的机器人硬件、固件与软件的集成。

中间件类别

中间件有两种基本类别:企业应用程序中间件和平台中间件。

企业应用集成中间件

企业可以利用企业应用程序集成中间件来建立企业集成中心。此系统提供了一种用于连接整个扩展企业中所有应用程序、应用程序组件、业务流程和后端数据源的标准化方法。

直到大约十年前,最流行的企业应用程序集成中间件还是企业服务总线 (ESB),它充当面向服务的架构 (SOA) 中的集成中心。

如今,借助集成平台即服务 (iPaaS),组织可以跨混合云(本地部署、私有云和公有云环境的组合)连接应用程序、数据、流程和服务。这样,组织便可避免在自己的数据中心内购买、安装、管理和维护集成中间件(及其运行所依赖的硬件)所耗费的工作和成本。

主流云服务提供商 (CSP) - Microsoft Azure、Google Cloud、Amazon Web Services (AWS) 或 IBM Cloud,均提供 iPaaS 解决方案。

平台中间件

平台中间件(或应用程序平台中间件)用于支持应用程序开发。它通过为应用程序或业务逻辑提供运行时托管环境(例如 Java 运行时环境 (Java RE) 和/或容器)来加速应用程序交付。平台中间件可以包含或组合企业应用服务器、Web 服务器、内容管理系统 (CMS) 以及之前提到的其他类型的中间件。

iPaaS 和 PaaS 有何区别?

集成平台即服务 (iPaaS) 和平台即服务 (PaaS) 都是基于云的计算解决方案,分别用于不同的目的。iPaaS 侧重于实现应用程序、设备和系统集成,而 PaaS 为组织提供了用于构建、运行和管理应用程序的平台。

PaaS 是 IT 预算有限的小型企业和初创公司的理想选择,因为与创建内部开发平台相比,PaaS 可支持团队经济高效地构建应用程序。对于运行复杂的动态架构的大型组织和企业来说,iPaaS 则是更好的选择。

也就是说,iPaaS 服务通常与云服务协同工作,包括 PaaS 和软件即服务 (SaaS)。例如,组织可能将 iPaaS 与 PaaS(例如 Cloud Foundry、Red Hat OpenShift)或 SaaS(例如 GitHub)开发解决方案结合使用。

中间件和云原生应用程序

云原生是一种应用程序开发方法,它使用基本的云计算技术在混合云环境中提供一致的开发、部署和管理。

当今的云原生应用程序由微服务搭建而成,并部署在容器中,其中这些容器使用了 Kubernetes 这一广泛应用的容器编排平台。 

微服务是一种松散耦合的应用程序组件,包含自己的堆栈,并且可以相互独立地进行部署和更新。它们通过组合使用 REST API、消息代理和事件流来进行通信。

容器是轻量级执行任务,可将应用程序代码(例如微服务)与在任何云或传统 IT 基础架构上运行该代码所需的操作系统库和依赖项打包在一起。

这些技术及相关技术共同打造了一个一次开发即可随时随地部署的强大平台,用于交付全新的混合云应用程序,并对旧的传统系统进行现代化改造以在云端使用。然而,它们也要求在开发环境中组合更多的软件应用程序、数据源、编程语言、工具和分布式系统,因而开发环境变得更加复杂。

中间件可以解决其中的一些复杂性问题。但是,使用传统中间件运行容器化应用程序本身会增加复杂性,包括增加基础设施开销,而容器本身旨在降低这一开销。因此,云应用程序开发平台包含容器化或模块化中间件,以便仅将需要的连接功能打包在容器中。

中间件的行业用例

游戏

中间件可充当游戏引擎,从而支持游戏开发。该软件层有助于无缝集成视频、音频和其他关键游戏组件。

金融服务

对于金融机构而言,中间件集成了应用程序和客户数据库,以支持数字银行服务,包括实时交易处理。

医疗保健

健康和医疗数据一直难以安全地访问和共享。中间件对于医疗保健互操作性至关重要,它支持跨各种医疗保健系统和应用程序(例如远程医疗平台和电子健康记录 (EHR))的无缝数据流。

电子商务

电子商务组织利用中间件将其在线平台与关键的后端服务(例如订单处理)相连接,以改进整体客户体验。

制造业

在制造业中,中间件有助于确保包括企业资源规划 (ERP) 平台在内的业务软件系统与其他应用程序集成,从而提供统一的运营视图。此方法有助于优化并简化维护、供应链、质量保证等环节的工作。

相关解决方案
IBM webMethods Hybrid Integration

AI 驱动的自动化可在 API、应用程序、事件、文件和 B2B/EDI 方面扩展敏捷性。

深入了解 IBM® webMethods Hybrid Integration
集成软件和解决方案

通过 IBM 集成解决方案,连接应用程序和系统以快速安全地访问关键数据,从而释放业务潜力。

深入了解云集成解决方案
云咨询服务

利用 IBM 的云咨询服务解锁新功能并促进业务敏捷性。了解如何通过混合云战略和专家合作共同制定解决方案、加速数字化转型并优化绩效。

深入了解云服务
采取下一步行动

 

IBM webMethods Hybrid Integration 提供统一的接口和控制平面,适用于多种集成模式、应用程序、API、B2B 和文件,并能跨地域、环境和团队扩展敏捷性。

 

 

深入了解 IBM webMethods Hybrid Integration 了解实际应用