去中心化计算的未来:通过 RPC 从微服务过渡到WASM

本文探讨了Wasm在浏览器之外的应用,强调其可移植性、效率和灵活性。通过RPC,可以实现跨设备的分布式系统交互。文章详细介绍了如何从编写Rust代码到编译为Wasm,设置RPC服务器,安装WAVM虚拟机,以及通过HTTP Post远程执行Wasm代码。Wasm和RPC的结合为实现语言无关的通用代码执行提供了新途径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从浏览器内的角度来看,Wasm 最近的开发工作,理所当然地受到了广泛好评。在上一篇文章《只需5分钟,教你如何编写并执行一个 Rust WebAssembly 程序》,我们对 Rust 到 Wasm 的编译以及简单的浏览器内 Wasm 执行的案例做了演示。

在另外一篇文章《区块链、硬件与面向服务的架构,WASM 即将迎来大爆发?》,里面有绝佳的浏览器内的 WASM 应用程序示例,并辅以了对WebAssembly(Wasm)的详细解释。

浏览器之外

Wasm 不仅仅是浏览器的字节码。 Wasm 有着前所未有的强大的可移植性、高效率和灵活性。因此,我们现在可以做到,以多种不同语言编写浏览器内 Wasm 应用程序,发展到在所有设备上分发 Wasm 独立功能单元,在这一点上取得飞跃。

Wasm 执行环境可以包括最少的 shell、移动设备、台式机和物联网设备。Wasm 可能会推动从微芯片乃至整个数据中心,这所有一切的发展(Webassembly.org,2019)。

file

为什么跨越浏览器很重要?

当连接到现代 Web 服务时,我们并非仅仅与一台机器进行交互,而是持续和后台可能数千台机器进行交互( Arpaci-Dusseau 和Arpaci-Dusseau,2018 )。

网站越复杂,运营成本就越高。散布在分布式系统上的微服务需要尽最大可能做到简单、高效和可靠。对于 Facebook、Google 这种大公司来说,这些特性意味着可以节省大量能耗,进而节省成本,促成积极成果。

除了这些能轻易做到的,我们还应该积极试验,以找到方法来改善 Wasm 最终用户/消费者体验。 eBay 就是一个很好的例子。

利用 Wasm,eBay 最近很好地完善了其移动条形码扫描仪的实现,恰到好处地为客户提供了最优服务( Tech.ebayinc.com,2019)。

为什么选 Wasm?

首先我们需要了解下“抽象化”。

虽然操作系统抽象化对于构建分布式系统来说是一个糟糕的选择,但编程语言抽象化却更具意义。 (阿帕奇-杜索和阿帕奇-杜索,2018)。Wasm 作为从一开始就使用形式语义设计的第一种主流编程语言,进一步地提供了对现代硬件的抽象化的支持(Rossberg等,2018)。

Wasm 允许在最大量的源代码语言中编写和共享每个单个功能的逻辑。Wasm符合我们熟知的最佳软件原则和惯例(DRY 和 KISS),并提供了必要时在所有设备之间转换可执行代码的方法。

为什么要进行远程过程调用(Remote Procedure Call)?

从进程间通信(IPC)角度来看,最主要的抽象化是基于远程程序调用(Remote Procedure Call)的概念,简称 RPC。(Arpaci-Dusseau和Arpaci-Dusseau,2018)。

要实现这种分布式机器之间普遍存在的互操作性,需要具备允许任何应用程序(以任何语言编写)直接从任何其他分布式机器调用服务的功能,就好像它只是调用自己的本地对象一样。 这正是远程过程调用 (RPC) 技术所实现的。

本文的目标是使用 Wasm 和 RPC 在 web 上执行与语言无关的通用代码。

在下一节中,会讲解如何:

  1. 编写自定义的 Rust 代码并编译为 Wasm
  2. 设置 RPC 服务器
  3. 在 RPC 服务器上定义自定义服务
  4. 安装 Wasm 虚拟机(WAVM)
  5. 通过 HTTP Post(即Curl,Python等)远程执行自定义 WebAssembly(Wasm)代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值