
人工智能如何改變 API 的未來
圖 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)。
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)運行。
幾年前,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)上跳來跳去,會怎么樣呢?這里有一個簡單的理論想法來說明這一點:
圖 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)險。
事實上,如今很多這樣的系統(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