圖 1.基于 HTTP API 的復(fù)雜集成,需要多個跨系統(tǒng)請求。

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

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

我們之所以付出代價,是因為我們沒有更好的工具來構(gòu)建系統(tǒng)。

進(jìn)入 Web Assembly

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

這對應(yīng)用程序接口和系統(tǒng)集成意味著什么?

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

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

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

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

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

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

真實世界的 WebAssembly 集成

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

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

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

HTTP API 將數(shù)據(jù)轉(zhuǎn)移到計算環(huán)境中使用,而 Wasm 則實現(xiàn)了革命性的轉(zhuǎn)變,將邏輯轉(zhuǎn)移到數(shù)據(jù)環(huán)境中。將數(shù)據(jù)靜止和邏輯移動的關(guān)系顛倒過來,可以實現(xiàn)新的集成,而我們才剛剛開始利用這種關(guān)系。

期待

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

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

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

上一篇:

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

下一篇:

Service Mesh和API網(wǎng)關(guān)正在逐步融合
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊

多API并行試用

數(shù)據(jù)驅(qū)動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

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

#AI深度推理大模型API

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

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