24小时在线咨询 186 7123 0772
网站建设从简单的数据传输到现代的可组合架构
已浏览:52 来源:本站 发布时间:2025-04-09 09:24

当计算机开始相互交谈时,方法非常简单。在互联网的早期,系统通过FTP交换文件,或通过原始的TP/IP接口进行通信。这种直接方法对于简单的用例很有效,但随着应用程序变得越来越复杂,它很快显示出其局限性。

在实现网络计算机之间复杂通信方面的真正突破是 远程程序调用(RPC) 在80年代。RPC允许开发人员调用远程系统上的过程,就像它们是本地功能一样,抽象出网络通信的复杂性。这种模式为我们今天使用的许多现代一体化方法奠定了基础。

RPC在其核心实现了一个客户机-服务器模型,客户机在这个模型中准备并连续化了一个包含参数的过程调用,将消息发送到远程服务器,服务器对该过程进行非自动化处理并执行该过程,然后将响应发送回客户机。

现代的实现,例如GPC支持流和双向通信。在下面的示例中,我们定义了一个称为GERPC的服务Calculator 两种RPC方法,Calculate ,这需要一个Numbers 信息和返回aResult 信息,以及CalculateStream ,它发出一股Result 回应信息。

现代集成:Web服务和SOA的兴起  #

上世纪90年代末和21世纪初 网络服务 面向服务架构(SOA) .SOAP(简单对象访问协议)成为企业集成的标准,引入了一种结构化的系统通信方法。

尽管SOAP提供了强大的企业特性,但它的复杂性和冗长导致开发了更简单的替代品,特别是今天主导Web服务通信的其他API。

但休息并不孤单。让我们看看一些现代的集成模式。

宁静API  #

休息(代表国调动) 已经成为网络API的实际标准,提供了一种简单的、无状态的资源操作方法。它的简单性和基于http的性质使它成为Web应用程序的理想选择。

2000年,罗伊·菲尔丁首次将其定义为网络标准协议之上的一种体系结构风格,其约束与现代网络的目标完全一致,如 表现 , 可伸缩性 , 可靠性 ,以及 能见度 :客户机和服务器由接口和松散耦合的无状态通信、可存储响应分隔开来。

在现代应用程序中,REST协议最常见的实现是基于JSON格式,该格式用于编码请求和响应的消息。

G3o-ql是指Facebook2012年的内部发展需求,然后于2015年公开上市。它源于构建复杂移动应用程序的挑战,解决了传统RESTAPI的局限性,特别是过度获取和过度获取数据的问题。

在它的核心,GLULQL是一种查询语言和运行时,它提供了一个类型系统和声明性数据获取,使客户机能够精确地指定从服务器获取什么。

通常用于构建带有嵌套数据结构、移动应用程序或微服务架构的复杂的UIS,它已证明在大规模处理复杂的数据需求方面是有效的,并提供了一个不断增长的工具生态系统。

现代应用程序往往需要实时更新。例如,电子商务应用程序在进行购买时需要更新库存水平,内容管理应用程序在编辑文档时需要刷新缓存的内容。传统的请求响应模型可能难以满足这些需求,因为它们依赖客户端的轮询服务器进行更新,而这种更新效率低且资源密集。

网络挂钩和事件驱动的架构更有效地解决了这些需求。当特定事件发生时,网络挂钩让服务器向客户机或其他系统发送实时通知。这减少了持续投票的必要性。事件驱动的架构更进一步通过脱钩应用程序组件。服务可以异步地发布和订阅事件,这使系统更具可伸缩性、响应性和简单性。

有了这些背景信息和技术知识,可以更容易地描绘Web应用程序开发的现状。 一个单一的、单一的应用程序不再是商业需求的答案 但一种新的范式已经出现:可组合建筑。

可组合架构和自定义CMS  #

这种演变使我们产生了可组合架构的概念,即应用程序是通过 合并专门服务 .这就是无头的cms解决方案有一个明显的优势的地方,它是现代集成模式如何结合在一起的完美例子。

自定义的cms平台将内容管理与内容展示分开,使您能够依靠功能齐全的内容后端建立专门的前沿。这种脱钩有利于 内容重用 , 独立刻度 ,以及 灵活性 为系统的每个部分使用专用的技术或服务。

带走 故事 作为一个例子。是一个无头的cms,旨在帮助开发人员构建灵活、可伸缩和可组合的应用程序。内容是通过API、REST或GLULQL公开的;它提供了一长串事件列表,这些事件可以触发一个网络挂钩。编辑们对一个伟大的视觉编辑器很满意,在那里他们可以看到实时的变化,许多集成是通过市场进行的。

同样,许多已经在故事市场中可用,您可以很容易地从仪表板上控制它们。然而,为了充分利用可组合架构,我们可以使用开发人员手中最强大的工具:代码。

让我们想象一个现代化的电子商务平台,使用故事作为其内容中心,购物库存和订单,阿尔戈利亚的产品搜索,并条纹支付。

一旦建立了每个帐户,并且我们有了访问令牌,我们可以很快为我们的商店建立一个前端页面。这并不是生产准备好的代码,只是为了得到一个快速的想法,让我们使用响应来为一个集成我们的服务的产品构建页面。

使用这种方法,每个服务都独立于其他服务,这有助于我们实现业务目标(性能、可伸缩性、灵活性),拥有良好的开发经验和更小、更简单、更容易维护的应用程序。

结论  #

自定义CMS和现代Web服务之间的集成代表了高性能Web应用程序的当前和未来状态。通过使用专门的、脱钩的服务,开发人员可以专注于业务逻辑和用户体验。一个可组合的生态系统不仅是模块化的,而且能够适应现代企业不断变化的需求。

这些集成突出了掌握由鸦片驱动的体系结构的重要性,以及理解不同的工具如何能够和谐地融入更大的技术栈。