基于WebAssembly的工業軟件,正在實現“云超車”。
文章來源| 極客公園
WebAssembly 無疑是近年來讓人最為興奮的新技術之一。它最早是在2015 年由 JavaScript 的創造者 Brendan Eich 提出的,并迅速被各大主要的瀏覽器支持,日趨成為一種主流技術。一些重磅的軟件應用通過WebAssembly技術逐漸移植到Web上,為軟件“云化“提供了技術支撐和便利。
軟件云化勢不可擋,作為突破當下“卡脖子”困境的剛需,工業軟件在加速布局云化賽道的過程中,WebAssembly將會起到怎樣關鍵的作用?又將為云工業軟件打開哪些機會窗口?
解碼WebAssembly
為什么它是面向未來的技術?
從定義上來說,WebAssembly是一種將用編程語言編寫的代碼(如rust/C/C++/Go等)轉換為瀏覽器可理解的機器代碼的技術,它具有體積小,性能高,安全性高的特點,使得大型應用程序能夠通過網絡快速平穩地運行。速度快,效率高,再加上用戶無需下載或安裝就可以進行交互,用戶成本低,這就是為什么WebAssembly 會被迅速接納并廣泛使用。
作為一種代碼的編譯技術,WebAssembly可以解決腳本語言無法解決的性能問題,這是它的最大優勢。
長期以來,腳本語言的性能一直被人詬病,進行高密度計算更是奢望,這成為限制腳本語言的天花板。WebAssembly出現后,腳本語言可以利用它實現更高的性能——應用程序的效率會更高,響應速度也會更快,這將大大改善用戶體驗。
此外,WebAssembly天生擁有跨平臺的特性,想象一下:你可以使用任何編程語言構建軟件,在Web 瀏覽器中無需安裝就可以直接使用軟件,并且性能媲美原生軟件。在減少了開發成本的同時,也為語言之間的結合提供了一種高效的方式。
WebAssembly的優越性還體現在,它利用瀏覽器提供一種其它語言無法比擬的安全沙盒環境,使得應用程序代碼在內存安全的沙盒環境中運行,可以防止安全漏洞和數據損壞。這為解決用戶關注的數據安全問題提供了一項其他語言無法提供的關鍵優勢。因此,WebAssembly也將成為Web3.0時代的核心安全技術之一。
在實際的工業化落地中,區塊鏈、游戲及圖像視頻等多個領域都正依靠WebAssembly 創造出讓人稱贊的軟件應用產品,包括Autodesk、Google Earth、Figma等知名軟件都在運用這個技術構建更優秀的瀏覽器體驗。
其中,我們熟知的Adobe公司在推出云化、輕量化的Photoshop網頁版時,同樣運用了WebAssembly作為關鍵底層技術——將現有的大部分Photoshop 代碼庫直接移植到 Web 上,不必完全從頭開發,讓推出網頁版的難度大大降低。
WebAssembly為工業軟件上云
造了一把“梯子”
隨著云時代的到來,云計算技術讓軟件應用的開發與使用變得更加靈活、安全、低成本,軟件云化已成為大勢所趨。我們將目光投向更加細分的工業軟件領域,在云計算成為“水電燃氣”般普遍存在的今天,工業軟件的“云化”越來越被認可與接納。
“云化”是工業軟件走向輕量化發展的重要方式。包括西門子、Autodesk等海外工業軟件巨頭已紛紛帶頭做相關布局,國內市場工業軟件的“云化”趨勢也有明顯進展,以用友、金蝶為代表的老牌廠商也推出了云SaaS服務。業內人士認為,云化的工業軟件國內外正站在同一“起跑線”上。
WebAssembly 技術的誕生,可以說為工業軟件“上云”提供了一把更加便捷的“梯子”。其中,云工業軟件企業三維家在運用WebAssembly 技術上,就做了不少前瞻性的嘗試。
誕生于2013年,當時正值云計算在國內起步,三維家將“云”的基因融入到產品設計理念中,自研基于web的圖形引擎,并且在基于云的建模內核之上,融入大數據、AI人工智能等前沿技術,打造出面向家居家裝行業、高AI化、一體化的工業軟件。
C/C++是最先支持WebAssembly的編程語言,而工業軟件普遍使用C/C++語言編寫。C++語言對于工業軟件而言,具有其他語言無法比擬的優勢:優越的性能,工業級的建模精度等等。因此,工業軟件利用WebAssembly上云有著天然的條件。
更快速、更流暢
大幅提升用戶體驗
三維家以C++為底層開發語言,在C++工業庫方面有著深厚積累。從2017年起,三維家便嘗試將C++工業庫進行WebAssembly轉換,可以算是國內最早的一批先行者。
據三維家技術研究院基礎平臺負責人陳江豪介紹,工業軟件采用WebAssembly后,會變得更加小巧、輕量化,且天生擁有跨平臺能力,利用Web能夠更快觸達用戶。工業軟件上云后,利用云原生等云端技術相關的devops,能夠快速迭代,響應用戶需求。三維家利用WebAssembly將大部分C++工業庫上云后,正是吸收了這些特點,讓團隊開發更符合現代敏捷開發形態,效率大大提升。
陳江豪還表示,三維家的三大基礎技術底座——AI引擎、幾何引擎、渲染引擎的核心功能均使用了WebAssembly技術,旗下擁有WebAssembly化的百萬級業務代碼的商用產品——3D云設計軟件,在部分高密度計算、多媒體和加密計算算法上同樣運用了WebAssembly技術。
WebAssembly對三維家最顯著的影響在于軟件綜合性能的提升,如用戶在線設計家裝效果圖時,打開巨型方案、加載模型的耗時會大大減少,降低等待時間;同時,會提高設計方案操作的流暢性,提升用戶體驗。在開發層面,WebAssembly幫助三維家三大技術底座能夠做到一碼多用,極大地降低開發成本。
三維家著力于踐行WebAssembly,這和三維家致力推動家居產業前后端一體化,以技術驅動家居產業變革的理念息息相關。WebAssembly能帶來工業級建模所需要的精度,為研發自由建模軟件CAD和CAM帶來技術基礎,并最大程度地優化產品性能。隨著三維家對WebAssembly的深入應用,其產品性能將快速提升,其廣闊的發展空間有望與同業產品拉開競爭優勢。
業內人士認為,WebAssembly是一項“改變游戲規則”的技術,它是面向未來的,借助WebAssembly可以在前端創造出更多的可能性。
隨著WebAssembly生態的不斷優化,也有如三維家一樣的技術踐行者在持續實踐,WebAssembly正在為云工業軟件的未來,描畫出一副更具想象空間的技術圖景。