天天看點

vivo web service:億萬級規模web服務引擎架構

vivo web service是開發團隊圍繞奇點核心打造出的基于vivo手機平台的web服務引擎,該服務引擎從浏覽器産品線中經過多年疊代而出。除了提供可靠的基礎Web服務,服務引擎還內建了非常強大的擴充功能。本文從架構方面對該服務引擎進行一次簡單剖析,幫助讀者對vivo web service有一個整體了解。

本文首發于 vivo網際網路技術 微信公衆号 

連結:https://mp.weixin.qq.com/s/ovOS0l9U5svlUMfZoYFU9Q

1. 奇點核心

在多年的浏覽器開發工作中,開發團隊逐漸疊代出一款有競争力的核心産品–奇點核心。從架構上講奇點核心已經不是一款單純的系統 WebView 替代産品,它內建了豐富的擴充功能,同時具備高性能、穩定性強的特點。

奇點核心架構示意圖

vivo web service:億萬級規模web服務引擎架構

這麼豐富的功能如果僅提供給浏覽器使用,無疑是大材小用了。

我們舉幾個例子:

  • 深色模式。這是最近非常火熱的功能。然而,從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架構示意圖

vivo web service:億萬級規模web服務引擎架構

其中:

  • 奇點核心以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架構示意圖

vivo web service:億萬級規模web服務引擎架構

4.vivo web service技術原理

前面提到,web service的實作方式是插件化,由sdk和apk兩部分構成。接入方通過sdk動态加載web service apk,每個應用在自己的程序空間中使用獨自的web service,互不幹擾。

應用動态加載web service apk示意圖

vivo web service:億萬級規模web服務引擎架構

其中:

  • 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示意圖

vivo web service:億萬級規模web服務引擎架構

更多内容敬請關注 vivo 網際網路技術 微信公衆号

vivo web service:億萬級規模web服務引擎架構

注:轉載文章請先與微信号:labs2020 聯系。

分享 vivo 網際網路技術幹貨與沙龍活動,推薦最新行業動态與熱門會議。

繼續閱讀