vivo web service:億萬級規模web服務引擎架構
本文首發於 vivo網際網路技術 微信公眾號
連結: https://mp.weixin.qq.com/s/ovOS0l9U5svlUMfZoYFU9Q
vivo web service是開發團隊圍繞奇點核心打造出的基於vivo手機平臺的web服務引擎,該服務引擎從瀏覽器產品線中經過多年迭代而出。除了提供可靠的基礎Web服務,服務引擎還整合了非常強大的擴充套件功能。本文從架構方面對該服務引擎進行一次簡單剖析,幫助讀者對vivo web service有一個整體瞭解。
1. 奇點核心
在多年的瀏覽器開發工作中,開發團隊逐漸迭代出一款有競爭力的核心產品–奇點核心。從架構上講奇點核心已經不是一款單純的系統 WebView 替代產品,它整合了豐富的擴充套件功能,同時具備高效能、穩定性強的特點。
奇點核心架構示意圖
這麼豐富的功能如果僅提供給瀏覽器使用,無疑是大材小用了。
我們舉幾個例子:
-
深色模式。這是最近非常火熱的功能。然而,從Android Q開始系統WebView才逐漸支援深色模式。這對於在無法升級到Q版本的Android平臺的開發者來說,僅使用系統WebView來實現類似的效果,無疑是巨大的挑戰。幸運的是,使用奇點核心可以輕鬆的獲取比系統WebView更好的深色模式效果,同時支援按需調整樣式,這應該是應用開發者的巨大福音了。
-
穩定性。系統WebView的崩潰率資料約為0.4%左右,奇點核心在更加複雜的瀏覽器環境中執行,崩潰率基本保持在0.05%以下,這對長期苦於系統WebView穩定性差問題的應用有很大吸引力。
-
相容性。奇點核心提供全平臺的相容能力,使用同樣的API應用可以做到全平臺上返回同樣的執行結果,而不需要考慮Android版本的相容性問題,節省接入方的開發和維護的工作量。
-
安全性。基於快速迭代的能力,開發團隊能夠在第一時間修復WebView暴露的各種風險和漏洞,同時透過資料加密、防劫持等手段提高了Web訪問的安全性,這是系統WebView做不到的。
2.vivo web service
以上優勢,對於關注相關點的應用已經有足夠的吸引力了。更進一步,在奇點核心的基礎上我們將瀏覽器和部門的其他技術資源整合起來,構建了一個圍繞奇點核心的服務平臺,我們稱為vivo web service。
web service apk架構示意圖
其中:
-
奇點核心以WebView的形式提供出來, API與系統WebView保持一致。
-
作為奇點核心的後備,Web服務平臺提供動態切換奇點WebView到系統WebView的能力。
-
透過奇點核心,還可以有條件的使用到雲端代理(省流加速、內容轉碼等)、HTTP DNS防劫持能力。
-
web service可以提供JSBridge、J2V8等擴充套件能力。
-
web service可以提供強大的奇點Player,這款自主研發的播放器在播放速度和穩定性方面遠超系統提供的MediaPlayer。
我們將以上資源整合後,以奇點核心為核心提供出一套web service sdk出來供接入方使用。由於使用外掛化技術,接入方僅需接入200多K的sdk,就可以使用到上述這些功能。
3.vivo web service架構
在vivo手機平臺上,各個應用使用web service的架構示意圖,圖中展示了各應用透過sdk可以獲取到的web service的各種服務。
注意,這個圖僅表示應用間的依賴關係,並非類似於Android平臺的層次架構圖。web service目前並不是系統framework的一部分,它與其他應用沒有區別,就是普通的app而已。
web service架構示意圖
4.vivo web service技術原理
前面提到,web service的實現方式是外掛化,由sdk和apk兩部分構成。接入方透過sdk動態載入web service apk,每個應用在自己的程式空間中使用獨自的web service,互不干擾。
應用動態載入web service apk示意圖
其中:
-
web service apk提前被安裝到系統中,或者由應用按需下載安裝。
-
應用在使用web service之前使用sdk介面將apk中的類實現動態載入到自己的程式中,就可以使用服務。
-
應用可以透過API開啟或者關閉某些服務,也可以透過伺服器配置,每個應用的配置互不干擾。
-
apk可以透過應用商店進行更新,更新後應用下次啟動立刻可以使用到apk的最新特性。
-
apk支援自升級,可以透過伺服器配置是否強制升級為最新版本,作為緊急問題修復的兜底方案。
5.vivo web service未來演進
隨著web service的迭代,未來的功能會更加豐富。目前來看,web service可能向以下的幾個方向演進。
-
提供更強大的Web能力。Web能力的提供者是核心,未來我們會透過定期的升級核心,並持續的進行效能和穩定性最佳化來強化核心能力。
-
提供更多的擴充套件功能。未來web service會開發和引入更多、更強大的元件或服務,這些元件或服務依託於Web服務,為接入方提供更多的可選擇性。
-
提供更簡潔的接入方式。未來web service中的奇點核心會成為系統的預設webview。第三方應用甚至不需要修改程式碼,就能使用上web service服務。依託於vivo強大的手機平臺優勢,web service會有更大的想象空間。
平臺應用使用vivo web service示意圖
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69912579/viewspace-2663839/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 構建Web API服務WebAPI
- 微服務架構—服務降級微服務架構
- 如何使用FastReport.Service.dll建立Web服務ASTWeb
- 什麼是web service?- SOAP Web Service & Restful Web ServiceWebREST
- 乾淨架構在 Web 服務開發中的實踐架構Web
- 用 GIN 構建一個 WEB 服務Web
- vivo 服務端監控架構設計與實踐服務端架構
- web service 的事務問題Web
- 架構 規則引擎 quartz架構quartz
- SpringCloud構建微服務架構-Hystrix服務降級SpringGCCloud微服務架構
- Web專案架構優化單臺機器到叢集服務Web架構優化
- vivo服務端監控系統架構及演進之路服務端架構
- 搭建 Restful Web 服務RESTWeb
- Linux web服務LinuxWeb
- Web前端架構師Web前端架構
- WEB 架構技術Web架構
- Spring Cloud構建微服務架構-Hystrix服務降級SpringCloud微服務架構
- xml web serviceXMLWeb
- Web Service 教程Web
- web service的架構中,有些使用stub 和skeleton,的必要性?Web架構
- 企業級服務網格架構之路解讀——Service Mesh在會話層解耦架構會話解耦
- vivo 海量微服務架構最新實踐微服務架構
- 億級流量架構之服務降級思路與方法架構
- Spring Cloud雲服務架構 - HongHu雲架構common-service程式碼結構分析SpringCloud架構
- Spring Cloud構建微服務架構—服務容錯保護(Hystrix服務降級)SpringCloud微服務架構
- Web網站服務(二)Web網站
- 保障Web服務的安全Web
- PHP開發Web服務PHPWeb
- 單體架構&微服務架構&中臺服務架構架構微服務
- 研究Web Service同仁們,不知道對如何提高呼叫Web服務有什麼好的措施?Web
- RESTful Web Service(續)RESTWeb
- Web Service 基礎Web
- Web Service入門Web
- 使用 Jersey 和 Apache Tomcat 構建 RESTful Web 服務ApacheTomcatRESTWeb
- Nginx服務系列——靜態資源web服務NginxWeb
- Apache CXF實現Web Service(1)——不借助重量級Web容器和Spring實現一個純的JAX-WS web serviceApacheWebSpring
- RHEL 8 搭建 Apache Web 服務ApacheWeb
- RHEL 8 搭建 Nginx Web 服務NginxWeb