2013年1月27日 星期日

[windows]程式更新機制自動化的考量(2)-流程概念

Omaha 流程說明

Omaha 主要由三個部份組成:

  • 一個client run time(client-side),
  • 一個 meta-installer,
  • 一個 server。

client 及 server 之間,使用 http 或 https 溝通。

當使用者希望安裝新的 google應用程式,實際上,使用者只是下載了一個 meta-installer。該檔包裝了一個client run time 安裝檔,以及使用者所選的應用程式安裝檔。

這個 meta-installer 會依情況做事:

  • 如果使用者的環境裡沒有 client run time,meta-installer 會安裝一個 client run time。(一台電腦只裝一個),
  • 如果使用者環境有一個 client run time,但不是最新的,meta-installer 會更新 client run time。

之後,meta-installer 會要求 client run time,安裝使用者要的 google應用程式。如果,google應用程式不曾被安裝過,client run time 會使用 meta-installer 裡所附帶的 google應用程式安裝檔來安裝,或依 meta-installer 所指示的位置,下載安裝檔來裝裝google應用程式。client run time 會定時跟 server 要資料,檢查安裝在電腦上的 google應用程式,如果有新版本,就會更新google應用程式。

Omaha 也提供了提升權限的功能,讓系統中權限較低的使用者也能安裝google應用程式,不需系統管理員登入來安裝。

新安裝(omaha 沒安裝在系統中)

使用者從 google 網站,下載 meta-install。當使用者啟動 meta-installer 時,它就會安裝並執行 omaha client。在 windows 平台上,像 Vista 的版本,會啟用 UAC 防護,若為所有使用者安裝應用程式(applications per-machine),執行時需要提高至系統管理員權限。接下來 omaha client 會下載應用程式並執行其安裝檔。

二次安裝(omaha 已安裝在系統中)

當 google 網站偵測到,使用者的電腦已經有安裝 omaha client,瀏覽器會利用 ActiveX 或類似物件,開始執行安裝程序,不用下載 meta-installer 的 EXE 或 MSI。

移除 omaha

當系統中,沒有應用程式需要 Omaha 時做為更新機制時,Omaha 會將自己移除。

 

以下是安裝的流程圖:

  1. 使用者下載安裝程式,AppNameSetup.exe,裡面包含了 Omaha 的安裝程式及 tag 資料
  2. 執行 AppNameSetup.exe 的過程,會安裝 Omaha client。Omaha client 讀取 tag 資料,與 Update Server 溝通,得到最新版本的 AppName 安裝檔位置。Omaha client 下載且執行其安裝檔,它本身不參與安裝過程。
  3. Omaha client 定時(預設 5 小時) 會檢查 Update Server,每一個應用程式是否有更新版的安裝檔,若有就下載並執行它。

參考:http://omaha.googlecode.com/svn/wiki/OmahaOverview.html

沒有留言:

張貼留言