圖 1.基于 HTTP API 的復雜集成,需要多個跨系統請求。

當法規影響數據去向時怎么辦?如果系統 A 在歐盟,系統 B 在美國,數據能否從 A 轉移到 B?我的系統如何跨越這些界限進行整合?即使在同一法律管轄范圍內,金融機構也要考慮敏感數據的管理和外流問題。集成商真正感興趣的數據不太可能通過 HTTP API 流出。

但是,為什么我們可以承受這種成本呢?現在,這種分離可以幫助我們在多個小型工程師團隊之間擴展大型系統的構建。它通過減少工程師對其他團隊的信任度,來縮小他們必須達成的協議范圍。安全、隔離和冗余問題可以在網絡層面解決。

我們之所以付出代價,是因為我們沒有更好的工具來構建系統。

進入 Web Assembly

WebAssembly (Wasm) 誕生于瀏覽器,是萬維網聯盟(W3C)的一項標準,它使在網絡上運行用其他語言編寫的代碼和 JavaScript 成為可能。現在,網絡應用程序可以以接近原生的速度執行緊湊、高效的二進制模塊,從而使 Photoshop 和 AutoCAD 等復雜的桌面軟件能夠在瀏覽器中運行。Wasm 成功的關鍵在于它的安全模型,默認情況下,它不允許任何代碼進行網絡請求、讀寫文件或掌握周圍主機環境的任何信息。Wasm 在完全隔離的沙盒虛擬機中運行,只能在主機允許的范圍內運行。

這對應用程序接口和系統集成意味著什么?

幾年前,Wasm 擺脫了瀏覽器的束縛,并多次作為獨立虛擬機實現。這意味著 Wasm 模塊可以在虛擬機能夠運行的任何地方運行:臺式機、游戲機、服務器、物聯網設備、邊緣平臺,甚至電視和智能手表。在服務器應用程序中嵌入式運行 Wasm 意味著任意、不受信任的代碼可以在我們的軟件中安全執行,在進程中運行動態代碼。

事實證明,Wasm 并不是要將其他語言的功能帶到瀏覽器中,它真正的優勢在于將瀏覽器的功能帶到您的語言中。

讓我們重溫一下上面的場景,系統 A 和系統 B 通過 HTTP API 集成。如果系統 A 可以運行系統 B 的代碼,但只運行處理集成所需的部分,而不需要在互聯網上跳來跳去,會怎么樣呢?這里有一個簡單的理論想法來說明這一點:

  1. Stripe 收到 Acme Corp. 客戶的信用卡收費請求。
  2. Stripe 加載 Acme Corp. 的 Wasm 插件來調用該before_charge_action函數,該函數返回有關購買的一些數據。
  3. Acme Corp. 的插件必須首先在 Stripe 的 API 上查找客戶的過去購買記錄。由于插件仍在 Stripe 中,因此這是一個本地函數調用 — 無需互聯網!這只需5-7 納秒即可完成!(作為參考,40 毫秒的洲內跳躍是 40,000,000 納秒。)
  4. 通過購買數據,插件繼續運行并檢測到過去 30 天內已經進行了 10 次類似的購買。
  5. 因此,該插件被編碼為在客戶下次購買時發送一封包含忠誠度折扣的電子郵件,因此它會對 Stripe 進行另一個函數調用以獲取電子郵件地址和客戶姓名(在 Stripe 的數據庫中管理)來填寫電子郵件模板。
  6. Stripe 已經send email為插件提供了功能,因此它可以傳遞電子郵件內容并直接從 Stripe 的高可靠性電子郵件服務發送。
  7. 插件將數據返回給 Stripe,扣款成功。緊接著,客戶在收件箱中看到一封友好的折扣電子郵件。

圖 2.復雜的 Wasm 插件集成,類似于圖 1(上)中系統 A 和系統 B 之間的流程,但所有邏輯都是事件發起方(如 Stripe)的本地邏輯。

我們無需在兩個系統之間通過互聯網調用任何應用程序接口(API)就能完成所有這些工作。在支付交易過程中執行可能需要很長時間的本地函數調用只需幾納秒。此外,所有交易信息和客戶數據都保留在 Stripe 的服務器上,沒有外泄或 PII 意外泄露的風險。

真實世界的 WebAssembly 集成

事實上,如今很多這樣的系統都是這樣工作的,使用 WebAssembly 支持安全的客戶代碼執行。Figma 是一款廣受歡迎的設計工具,用于創建高保真網絡和移動應用程序模型。Figma 在 Wasm 運行時內運行第三方插件代碼,使客戶能夠自由擴展軟件的新特性和功能,而無需 Figma 介入和處理功能請求。Figma 同時擁有網絡和桌面應用程序,那么插件開發人員是否必須為每個平臺實施一個插件?不會!Wasm 在這些平臺上的運行方式完全相同,因此無論 Figma 在哪里運行,相同的插件都能正常工作。

Shopify 是這種集成模式的另一個杰出實施者。這家電子商務市場的領導者多年來一直在生產中運行 Wasm,為其下一代應用程序市場提供支持:Shopify Functions。開發人員可以構建插件,商家將其安裝到自己的商店中,直接在 Shopify 的基礎設施中運行。這為平臺提供了更深層次的集成訪問,而且由于沒有網絡延遲,集成運行速度很快,即使在結賬路徑中也能注入自定義行為,而在結賬路徑中,每一個微小的延遲都可能意味著銷售損失。

好處不僅限于集成速度和深度。與通過 HTTP API 相比,Shopify 還可以直接在平臺上提供更多定制服務,從而保護客戶的利益。最近,一家 Shopify 應用程序開發商承認發生了一起嚴重的數據泄露事件,暴露了從使用其應用程序的商家那里收集到的 Shopify 客戶數據。由于這些應用程序調用 HTTP API 并將客戶數據存儲在第三方服務器上,Shopify 無法控制該開發商的安全態勢。使用 WebAssembly 插件將所有第三方代碼保存在 Shopify 上,意味著他們對類似情況的控制能力大大增強,從而避免了這次不幸的泄漏事件。

HTTP API 將數據轉移到計算環境中使用,而 Wasm 則實現了革命性的轉變,將邏輯轉移到數據環境中。將數據靜止和邏輯移動的關系顛倒過來,可以實現新的集成,而我們才剛剛開始利用這種關系。

期待

HTTP API 不會消失,也不會很快消失。但是,新技術和新的系統集成方法的出現,意味著是時候考慮一些替代方案,或研究如何逐步改善現狀了。將 Wasm 的安全性和速度引入您的集成架構有很多好處,我們看到其采用率正在迅速上升。

當您考慮創建更安全的集成 API 時,請考慮 WebAssembly。您的客戶將非常欣賞 WebAssembly 為您的平臺帶來的靈活性和易集成性。可以說,Wasm 在應用程序接口和系統集成領域還處于起步階段,但它已經在大大小小的公司中證明了自己的價值。

原文鏈接:Beyond the HTTP API: WebAssembly and the Future of Systems Integration

上一篇:

面向初學者的10個API測試技巧(SOAP 和 REST)

下一篇:

Service Mesh和API網關正在逐步融合
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費