本期釋出術語熱詞:漸進式網絡應用(Progressive Web Application)。
開篇導語:
漸進式網絡應用程式(Progressive Web Application,以下簡稱為 PWA)是一種由普通網頁或網站架構起來的網絡應用程式,但能以傳統桌面應用程式或是原生移動應用程式的形式展示給使用者。PWA相對于普通網頁應用的主要改進在于對互動體驗和性能的提升,以期盡量模拟原生應用品質[1]。PWA能夠一定程度上達到無處不在、功能豐富,且盡可能接近原生應用的使用者體驗。它不嚴格依附于原生軟體生态,可以通過Runtime或浏覽器實作跨平台的互動體驗;它靜默安裝,使用者随用随走、按需而取、按用付費;它實時更新,在網絡環境允許的情況下,會預設提供最新版本以保障使用者獲得更好體驗[7]。在普适計算時代,PWA對于跨裝置、跨平台為使用者提供連續、一緻的互動體驗具有天然的優勢,是下一代互動應用的重要支撐技術之一。
漸進式網絡應用(Progressive Web Application)
作者:賈朝晖(聯想集團),陸遠(鼎道智聯),張印帥(鼎道智聯),易鑫(清華大學)
InfoBox:
中文名:漸進式網絡應用
外文名:Progressive Web Application
學科:人機互動
關鍵詞:浏覽器技術,Web技術,普适計算
實質:網絡應用技術接口
背景:
随着普适計算的發展,人們可以随時随地獲得需要的資訊和服務。在這樣的場景下,超越單一裝置螢幕範圍的界面或應用,将能為人類和數字内容的互動提供新的方式。其中,得益于其跨裝置和作業系統的普遍性、以使用者為中心的安全模型、統一化的雲服務體系等特征,Web成為了一個獨特的軟體開發平台。然而,由于Web應用在軟體生态的大發展時期缺乏很多能力,是以絕大多數的使用者選擇了特定于平台的本地原生應用程式(APPs)。它們豐富而可靠,并可在網絡連接配接缺失時保持工作。同時,使用者可以通過本地應用,實作對目前裝置所具有的輸入輸出接口(如USB、藍牙、檔案),甚至是在同一網絡環境下連接配接的其他裝置上的輸入輸出接口的控制和使用。但是,本地原生應用程式在面臨跨裝置、跨平台應用場景時往往需要開發者進行複雜而繁瑣的開發和适配工作,同時也很難保證對于使用者提供一緻、連續的互動體驗,因而無法滿足普适計算時代的互動需求。
PWA結合了Web應用與本地原生應用兩者的優勢,一方面充分利用Web技術在跨平台、統一雲服務等方面的體驗優勢,另一方面,又能保證它具備和原聲應用相當的軟體能力。形成功能強大、易用、安裝簡便的獨特使用體驗的應用生态。進而,讓使用者擺脫應用下載下傳、安裝、解除安裝、更新等龐雜的管理系統互動,實作按需而取,随用随走的軟體服務模式。此外,由于PWA的雲原生優勢,使用者的個人偏好、使用資料等資訊,都會随着賬号而非裝置遷移,進而可以實作跨裝置、跨系統體驗的高度一緻性。
研究概況:
2015年,Chrome 開發人員 Alex Russel 和設計師 Frances Berriman 在Progressive Web Apps: Escaping Tabs Without Losing Our Soul 中,首次提出了PWA這個概念,并期望這項技術能夠跨裝置和上下文建構更好的體驗。此後,谷歌陸續提出了多項工具來支援PWA的使用,例如,以使用者為中心的性能模型(RAIL),用來幫助開發者稽核PWA生命周期中的體驗是否能夠達到使用者預期[2]。以及用來檢測和定義網絡品質信号對使用者體驗影響的Web Vitals計劃。Web Vitals将PWA的使用者體驗品質定義成,首次輸入延遲(FID)等名額,進行資料化管理[3],目前谷歌主要的開發者工具都支援了對Web Vitals中名額的測量[4]。
2017年,新浪微網誌在谷歌開發者大會上介紹了其正在打造的PWA版本微網誌應用,同年,UC浏覽器釋出了全新U4核心,完整支援PWA技術,拉開了國内PWA生态的序幕。
2018年,Giulia de Andrade Cardieri從使用者體驗的角度對比了移動應用,原生Web應用和PWA。研究發現,即使PWA可能存在互動問題,參與者從體驗上依舊表現出了正向的結果,這極大增強了開發者對使用PWA技術去開發跨平台體驗應用的信心[5]。同年,Abhi Gambhir從性能上将PWA與原生應用進行了比較,并發掘了其在緩存、存儲空間等方面的優勢。這說明,在體驗和性能兩方面,PWA已經接近且即将超越原生應用。Andreas Biørn-Hansen在文中表示,PWA也具有豐富的研究價值,他認為在不使用跨平台架構的情況下,PWA有很大潛力成為網絡原生應用開發的統一解決方案[6]。PWA逐漸逼近原生應用的趨勢,在業界已經得到了充分驗證,目前主流作業系統廠商的浏覽器(Chrome、Edge、Safari),均可以支援PWA的使用,安裝、解除安裝。
在技術成熟度與體驗品質得到了一定程度上的驗證後,國外的研究領域開始把注意力放在PWA技術的行業應用研究,2018年,Mhaske讨論了PWA在教育領域的應用[8];2019年Nurwanto Nurwanto在電子商務網站上實作了PWA,使使用者可以直接在手機螢幕上點選其圖示來運作[9];2020年Dat Huynh開發了一個針對“建築數字孿生”的PWA,将有價值的建築性能資料集可視化、互動化,并在業主和建築系統之間提供了一個及時的溝通管道[10]。
近年來,國内的騰訊、阿裡、位元組等網際網路服務廠商也都先後釋出了PWA版本應用。國内裝置廠商中,聯想集團于2020年成立了子公司鼎道智聯,将在其自主研發的作業系統中全面支援PWA,并建構自有生态。嘗試在PWA的基礎上,增強了硬體的協同能力的。并将其定名為即漸進式協同計算架構(Progressive Collaborative Computing Architecture),縮寫為PCCA。2021年英特爾與鼎道智聯共同舉辦了中國首個“PWA開發者日”,英特爾、聯想、阿裡巴巴、騰訊、谷歌等公司分别就各自在PWA領域的應用執行個體進行了分享。形成一個國内PWA開發者最新研究進展和成果展示的平台。
但是PWA生态在國内的産業化依舊存在諸多有待解決的問題,例如在軟體服務的分發平台與支付方面,PWA生态尚且無法真正替代應用商店。而一些國内軟硬體嘗試,基于其在流量與商業化方面的經驗,也提出了與PWA類似的網頁應用技術标準,其中最著名的就是2016年微信釋出的小程式,以及2018年由華為、小米、聯想等9家手機廠商共同舉辦釋出的“快應用”标準[11]。
總結與展望:
PWA本質上是一種網絡應用程式,但是依靠漸進式增強,為現代浏覽器賦予了更廣泛的能力。使用Service Worker和網絡應用程式清單 (manifest),使網絡應用程式變得可靠且可安裝。在萬物互聯的今天,不同裝置間的系統隔閡、不同應用間的資料隔閡等,極大阻礙了使用者的跨裝置互動體驗。而PWA利用了一組最佳實踐和現代web API,結合在“Android、iOS、桌面應用程式”中深受使用者喜愛的所有友好功能,為基于雲原生的Web應用,開創了豐富的想象空間,打下了堅實的技術基礎。但PWA要從單純的技術轉變為生态,還要解決軟體服務的分發、支付等問題。未來,PWA或小程式、快應用等基于網頁的應用軟體生态将通過服務定義軟體的形式,為使用者提供按需而取,按用付費,随用随走的智能服務使用體驗,進一步支撐滿足普适計算時代的使用者互動需求。
參考文獻
[1] Richard S, LePage P. What are progressive web apps[J]. Retrieved February, 2020, 2: 2021.
[2] Measure performance with the RAIL model[J]. Last modified Jun, 2020, 10.
[3] Walton P. Web Vitals[J]. Web. de. Last modified April, 2020, 30.
[4] Core Web Vitals workflows with Google tools[J]. Updated Jan 18, 2022.
[5] de Andrade Cardieri G, Zaina L M. Analyzing user experience in mobile web, native and progressive web applications: a user and HCI specialist perspectives[C]//Proceedings of the 17th Brazilian Symposium on Human Factors in Computing Systems. 2018: 1-11.
[6] Biørn-Hansen A, Majchrzak T A, Grønli T M. Progressive web apps: The possible web-native unifier for mobile development[C]//International Conference on Web Information Systems and Technologies. SciTePress, 2017, 2: 344-351.
[7] Analysis of Cache in Service Worker and Performance Scoring of Progressive Web Application Gambhir A, Raj G. Analysis of cache in service worker and performance scoring of progressive web application[C]//2018 International Conference on Advances in Computing and Communication Engineering (ICACCE). IEEE, 2018: 294-299.
[8] Mhaske A, Bhattad A, Khamkar P, et al. Progressive Web App for Educational System[J]. International Research Journal of Engineering and Technology (IRJET), 2018, 5(1).
[9] Nurwanto N. Penerapan progressive web application (PWA) pada e-commerce[J]. Techno. Com, 2019, 18(3): 227-235.
[10] Huynh D, Nguyen-Ky S. Engaging Building Automation Data Visualisation Using Building Information Modelling and Progressive Web Application[J]. Open Engineering, 2020, 10(1): 434-442.
[11] 手機廠商聯手推出"快應用"對抗"小程式"有無勝算?[J]. 計算機應用文摘, 2018(7):1.
作者介紹

聯想集團
賈朝晖
研究領域:桌面研發、消費電子産品、個人電腦産品
鼎道智聯
陸遠
研究領域:Web 技術,浏覽器技術,PWA,基于 web 的作業系統生态設計
鼎道智聯
張印帥
研究領域:人機互動設計,HMI,智能終端作業系統互動設計
清華大學
易鑫
研究領域:應用安全、人機互動、普适計算
術語工委及術語平台介紹:
計算機術語審定委員會(Committee on Terminology)主要職能為收集、翻譯、釋義、審定和推薦計算機新詞,并在CCF平台上宣傳推廣。這對厘清學科體系,開展科學研究,并将科學和知識在全社會廣泛傳播,都具有十分重要的意義。
術語衆包平台CCFpedia的建設和持續優化,可以有效推進中國計算機術語的收集、審定、規範和傳播工作,同時又能起到各領域規範化标準定制的推廣作用。
新版的CCFpedia計算機術語平台(http://term.ccf.org.cn)将術語的編輯營運與浏覽使用進行了整合,摒棄老版中跨平台操作的繁瑣步驟,在界面可觀性上進行了更新,讓使用者能夠簡單友善地查閱術語資訊。同時,新版平台中引入知識圖譜的方式對所有術語資料進行組織,通過圖譜多層關聯的形式更新了術語浏覽的應用形态。
計算機術語審定工作委員會
主任:
劉挺(哈爾濱工業大學)
副主任:
王昊奮(同濟大學)
李國良(清華大學)
主任助理:
李一斌(上海海乂知資訊科技有限公司)
執行委員:
丁軍(上海海乂知資訊科技有限公司)
林俊宇(中國科學院資訊工程研究所)
蘭豔豔(清華大學)
張偉男(哈爾濱工業大學)