文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

中间件的过去、现在和未来

2024-12-01 18:35

关注

该术语是在 1980 年代初期引入的。它包含复杂的软件解决方案,通过软件和应用程序组件等新功能对遗留系统(通常是大型机)进行现代化改造。最初,它仅用于扩展分离网络层和应用层的中间层。随后,它的用途扩大到作为操作系统和网络层之上,应用层之下的层。这意味着中间件现在可以促进应用程序组件和分布式网络之间的常规通信。

通过中间件,程序员可以选择实施松耦合的解决方案,而不必交互和分析不同的组件。

在最近的文献3,12,14,16根据研究领域,使用了多种定义。一方面,软件和 DevOps 工程师都将中间件描述为通过不同系统组件将软件“粘合”在一起的层;另一方面,网络工程师会说中间件是网络连接的容错和错误检查集成。换句话说,他们会将中间件定义为通信管理软件。与此同时,数据工程师将中间件视为一种技术,负责协调、触发和编排动作,以处理和发布来自各种来源的数据,利用大数据和 IoT(物联网)。鉴于中间件没有统一的定义,最好采用特定领域的方式。

中间件主要分类

交易。处理多个同步/异步交易,充当来自分布式系统(如银行交易或信用卡支付)的关联请求的粘合层。

学术界根据其服务的应用程序模块进一步隔离了中间件,例如数据库、Web 服务器等。中间件有几种类型,分为以下关键类别:反射、代理、数据库、嵌入式、门户网站和设备(或机器人)。

第一个分类更广泛,强调架构操作原则,而第二个分类是应用程序驱动的。出于这个原因,第一个隔离更可取,以准确定义每个架构集成的中间件,而不是其应用程序属性。所有类型的中间件如图所示。

中间件的使用

在开发应用程序时,需要考虑的三个必要要素是可扩展性、可维护和自动化。首先,开发者避免横向扩展,这只是增加资源来扩展主系统的能力。他们努力实现工作负载分区——在整个网络上优化分配作业调度。至于维护,关注点分离原则对于开发人员来说非常重要,既要使每个实体可重用(模块化),又要捆绑其属性(封装)。(典型的模块化示例包括 Linux 内核,因为代码库可以更改添加/删除,以及可以多次使用不同元素来构建系统的乐高积木。)此外,开发人员专注于自动化操作以减少错误并提供 24/7 可用的应用程序。

中间件可以充当促进者,以实现可扩展性、可维护和自动化。具体来说,它添加了一个层,将复杂系统简化为小型集成,允许它们与分布式资源网络相关联。这意味着中间件在软件开发过程中提供了敏捷性,同时缩短了整个软件周期的时间;它还为开发人员提供了更容易的未来扩展点。

此外,中间件可以通过结合“快速失败,快速成功”的原则来支持快速原型设计。它允许开发人员立即应用、采用和评估业务变更。中间件还可以降低项目成本,促进创业创新。

中间件的能力

在 Internet 的广泛使用和高速连接的适应之前,大多数应用程序都是作为单层、独立的软件解决方案开发的。该软件是“单一的”,旨在服务于特定的目的和活动,因此并非旨在与其他应用程序和软件组件连接和交互。单层软件需要一个复杂的中间件解决方案来与不同的模块(例如客户端/服务器)共享信息,或者传递来自主机/资源管理软件的请求。

在互联网彻底改变了开发人员的操作方式之后,越来越多的交易由连接到大型分布式计算机网络(也称为物联网)的多个计算设备驱动。分布式计算引入了 SOA(面向服务的架构)而不是单体应用程序。具体来说,SOA 由实现实体和服务分离的多层软件解决方案组成,从而将每个组件分解为微服务。这是通过降低系统的复杂性并进一步增加其模块化来实现的。在这种情况下,中间件将每个实体视为唯一且自治的。因此,未来的修改是针对特定服务(模块)而不是针对整个系统的组件。

中间件是一种将单个应用程序开发为一组小型服务的方法,每个服务都在自己的进程中运行并与轻量级机制进行通信,通常是 HTTP RestfulAPI。

中间件与 API(应用协议接口)紧密相连,充当程序员使用的不同 API 的层或软件包。这意味着中间件可以简化复杂的应用程序,使开发人员不仅关注组件的通信,还关注业务逻辑和系统交互。这是物联网时代的一个重要方面,因为 API 是连接设备和无误发送信息的主要网关。

物联网中间件

物联网这个术语描述了一个大型互连设备网络,这些设备收集由多个智能传感设备融合的实时数据。为实现这一目标,电子设备(手机/平板电脑/计算机)将数据发送到托管在云或边缘计算基础设施中的外部服务。最近的研究集中在开发一个物联网网络,该网络不仅可以与周围环境交互,而且可以自主行动而无需用户干预。在此范围内,物联网将普适/无处不在的计算视为计算应用的未来。计算机不再与单个设备或设备网络相关联。普适计算被定义为“源自数字世界的全部情景服务,通过物理世界感知。

此外,开发物联网应用程序的架构原则包括对安全性、能耗和监控、可靠性、可解释性和通信的审查。如前所述,中间件为所有这些功能提供了一个抽象层。根据其软件许可,它可以分为企业维护、开源或设备特定(用于微型计算机/执行器,如 Raspberry Pi 或 Arduino)。

下图描绘了物联网中间件通常如何根据以下关注点分离处理其操作:

对有关 IoT 中间件的一些最有前途的开源项目的回顾突出了以下几点:用于云中传感器系统的 OpenIoT;FIWARE 用于转换设备之间的通信协议;LinkSmart(以前称为 Hydra),用于数据存储和机器学习的快速部署和高可扩展性;DeviceHive 用于物联网关于通信、控制和管理的自动化层抽象;和 ThingSpeak 用于有关智能应用的工业物联网框架。

同样,IBM、AWS(亚马逊网络服务)、微软 Azure、谷歌和甲骨文也开发了企业中间件。基于突出显示的项目,一些中间件框架专注于自动化特定任务或核心业务活动流程。

未来:云容器和微服务

虽然开发人员使用虚拟化(将资源分层到基础设施中)、管理程序(操作系统的解释器)、客户操作系统(具有自己的内核)和应用程序,但中间件促进了在单一多用途环境中的分散部署。随着容器的指数级增长,这一点变得很明显——软件环境可以通过同一服务器(主机)在隔离环境(也称为沙箱)中快速轻松地多次部署. 就像 Java 的座右铭“一次编写,随处运行”一样,容器是一个独立的软件环境,具有独特的代码、库、运行时和依赖项。中间件层也从虚拟化转移到容器化,目的是为了优化通信和抽象通信协议以开发软件管道。

从开发人员的角度来看,转向云计算解决方案意味着需要更少的编码,因为云基础架构中的大部分工作都是在“幕后”执行的。换句话说,以前由本地中间层处理的分布式编程和企业开发的几个方面现在可以远程处理。更具体地说,要解决的常见问题包括扩展、弹性可观察性、资源管理以及持续集成和交付。这意味着企业将限制中间件开发人员的数量,他们将专注于架构和应用程序开发,而不是部署。

结论

中间件可用于软件周期的多个阶段——从架构和开发到部署。对企业数字化转型(从单体到微服务实施)的永久需求,这些表明中间件将继续存在。无论是将复杂的软件组件分离成更小的服务,在计算机之间传输数据,还是创建通用网关以实现无缝通信,您都可以依靠中间件来实现不同设备、应用程序和软件层之间的通信。此外,有必要对新开发人员进行中间件教育,并通过现代教育技术和学习系统强调其重要性。

随着越来越多的敏捷运动,科技行业采用了快速瀑布模型来为每个结构需求创建层堆栈,包括集成、通信、数据和安全性。鉴于此范围,研究云或数据服务的潜在扩展不再重要。现在必须强调端点连接和敏捷开发。

这意味着中间件不应该仅仅作为一个面向对象的解决方案来执行简单的请求-响应命令。中间件可以通过结合微服务架构来通过多个网关整合推拉事件和数据流,以开发一个整体的去中心化生态系统。

来源:云原生技术爱好者社区内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯