裝置管理(Device Management;DM)顧名思義是透過遠端傳輸方式對行動裝置進行更新、管理、控制及資料備份。目前常見的裝置管理標準主要有TR-069和OMA DM,TR-069源於前身為數位用戶迴路論壇(DSL Forum)之寬頻論壇,是一項針對客戶端設備在廣域網路端的協定;而OMA DM則是開放行動聯盟(Open Mobile Alliance;OMA)提出的一套針對行動客戶端裝置的通訊協定。以最廣泛使用的手機來說,Nokia的S80系列,windows mobile等手機都有支援OMA DM;可與客戶端裝置進行溝通的管理伺服器則是有Funambol DM Server、IBM WebSphere、只支援Windows Mobile的Microsoft System Center Mobile Device Manager、Bitfone以及Redbend。其中Funambol DM Server是開放源碼軟體,有提供部分DM功能的免費版本和全部功能的商業版本;對於想要了解DM運作方式的開發人員,使用免費版本Funambol DM Server是不錯入門方式。本文在接下來的章節將會先介紹OMA DM,然後以Funambol DM server為例介紹伺服器和裝置之間溝通的流程。
OMA DM介紹
OMA DM是一套應用在行動裝置上裝置管理的標準,管理伺服器和客戶端透過標準中的DM協定(DM protocol)溝通,使得伺服器可以透過遠端傳輸的方式管理行動裝置,傳輸方式可透過有線和無線;有線傳輸包括使用USB或RS-232進行傳輸,無線傳輸則包括紅外線、藍芽、及各式的通訊標準如Wi-Fi、GSM、WCDMA等。在傳輸層使用的協定則是WSP(Wireless Session Protocol)和Http,所以不論底層是使用何種網路,只要有連線到管理伺服器(DM server)就可以進行DM連線(DM session)。而在客戶端(DM client)的裝置則是以裝置管理樹(DM tree)的方式儲存裝置本身的資訊,管理伺服器對管理樹下達管理指令(Management operation)達成取得裝置資訊、更新軟體等目的。以手機為例,一個OMA DM的客戶端和管理伺服器在網路上的配置如下圖:
客戶端裝置透過無線網路連線到後端的管理伺服器,這個管理伺服器可以接受外部系統(External System)的要求或自行與客戶端進行連線;當客戶端需要下載軟體或韌體時,管理伺服器可以指定內容伺服器(Content Server)的位址供客戶端下載。進行DM連線時,管理伺服器和客戶端必定會參與其中;在有些DM的網路配置,內容伺服器、外部系統與管理伺服器是同一台主機。
根據OMA的官方文件,做為一個裝置管理的標準,OMA DM支援的使用案例(Use Cases)有以下五類:
- Provisioning: 新的客戶端裝置第一次使用時的必要設定。通常是由一個管理伺服器透過網路連結到新的裝置進行初始配置,例如閘道器的IP位址等必要的網路參數。
- Configuration Maintenance/Management: 當網路營運商更改了一些網路設備的設定值而影響到某些行動裝置時,管理伺服器能夠更改維護這些裝置的設定值。
- Software Management: 管理伺服器能夠偵測到客戶端裝置所擁有的軟體,依據情況進行軟體的升級、更新以及安裝;並在客戶端動作完成後回報伺服器升級等動作的結果。
- Fault Detection, Query and Reporting: 查詢來自客戶端裝置的狀態或錯誤,營運商的客服人員可根據查詢的狀態判斷問題所在。
- Non-Application Software Download: Non-Application software包括了裝置的作業系統、驅動程式以及韌體等。伺服器傳送這些程式碼給客戶端,使裝置可以安裝使用。
OMA DM定義了以上的使用案例,但一隻支援OMA DM的裝置並不需要實作所有的案例;開發人員可以選擇實作某一案例全部或部分的子功能,這取決於裝置的需求。在這些使用案例中,最常使用到的就是軟體和韌體的更新, 在OMA的官方文件也針對了韌體的更新流程定義了一個根基於OMA DM的標準,稱之為FUMO(Firmware Update Management Object)。接下來將針對OMA DM的一些技術細節做說明。
SyncML
SyncML(Synchronization Markup Language)是一個資料同步的標準,它的語法根基於XML。DM協定利用這個標準來描述伺服器和客戶端溝通的內容。與其他資料同步標準不同的地方是,SyncML不限定要在特定的平台上使用;其開放平台的特性得到不少國際大廠的支持,例如Nokia、IBM、及Sony Ericsson。
裝置上的一些程式或資料可以使用SyncML描述其中的資訊,並更新到其他的裝置。舉例來說,手機上的聯絡人資訊可以透過SyncML以純文字傳送至到個人電腦上;其內容即是一個XML檔,包含了各式的標籤,只要電腦上的應用程式能夠讀取並辨識這個XML檔內容,即可把聯絡人資訊備分至電腦上。
裝置管理樹
為了要能與管理伺服器溝通,客戶端裝置必須建置一顆裝置管理樹(Device Management Tree)供伺服器存取。管理樹可由軟體方式建立或是內建在裝置的硬體中。下圖是管理樹的示意圖:
《圖二 裝置管理樹 (source: http://www.setcom.eu)》 |
|
在根節點底下的各個子節點表示進行DM連線有關的資訊,例如DMAcc這棵子樹表示帳號,DevInfo表示裝置的資訊。實際的資訊存在樹的葉子上,例如DevID儲存裝置的識別碼,而內部節點則是代表某一類資訊的集合。
節點的屬性除了最基本的名稱外,還有格式(節點是內部節點或葉子)、大小、型態(文字或者是物件)等屬性描述節點的特徵,詳細內容可以參考OMA描述裝置管理樹的官方文件。
管理指令
當管理伺服器和客戶端之間透過DM協定溝通時,管理指令會被夾帶在封包當中,表示兩者之間的要求和回應。常見的管理指令如下表所示:
上述的指令除了Alert和Result是管理伺服器和客戶端皆可發送外,其餘的指令都只能由伺服器下達。藉由這些指令,管理伺服器可以管理客戶端裝置。舉例來說,如果負責軟體下載的子樹是./Software/Download,Download底下有子節點PkgURL儲存下載的位址,當有新的軟體可供下載時,管理伺服器可以先下Alert指令起始DM連線,然後利用Replace指令把下載的位址寫入至./Software/Download/PkgURL,再對./Software/Download這個節點下Exec指令,客戶端就會下載新軟體至裝置。
DM協定
上述提到的指令需要管理伺服器和客戶端透過DM協定溝通。DM協定分成兩部分,設置階段(Setup phase)和管理階段(Management phase)。設置階段的目的是讓管理伺服器和客戶端建立連線,而管理階段則是下達管理指令。下圖描述這兩階段的流程。封包是管理伺服器和客戶端之間的傳送單位,各封包的目的如下:
- Package 0: 伺服器通知客戶端建立DM連線,此封包非必要。
- Package 1: 客戶端主動建立DM連線,向伺服器認證並把客戶端的裝置資訊傳給伺服器。如果客戶端有任何的Alert指令也可夾帶在此封包。
- Package 2: 伺服器回覆客戶端的認證,並傳送第一個管理指令給客戶端。如果有收到Alert,此封包會夾帶結果。
- Package 3: 回覆管理指令的結果,如果客戶端有其他的Alert指令也可夾帶在此封包。
- Package 4: 如果伺服器還有其他管理指令則由此封包傳送,客戶端重新傳送package 3;如果沒有其他的管理指令,則結束DM連線。
《圖三 DM協定的設置和管理階段(source: www.openmobilealliance.org/)》 |
|
Funambol DM Server使用範例
Funambol這家公司根據OMA DM的標準推出自己的裝置管理解決方案,稱作Funambol Open Source Device Management(DM)solution。這套解決方案有免費版本和商業版本,免費版本提供最基本的管理伺服器和客戶端程式,不過由於客戶端程式的功能不完全,有可能需要使用者自己修改程式才能跟管理伺服器連線,因此建議用另一個軟體SCTS(SyncML Conformance Test Suite)來扮演客戶端程式。使用者可以在本機上執行DM server和SCTS來了解DM協定溝通的過程。
雖然免費版本的DM server不能由伺服器端起始DM連線、沒有支援所有的管理指令,但對於入門的使用者來說,想要了解OMA DM是如何運作還是相當有幫助的。
《圖四 Funambol DM server介面》 |
|
結論
隨著通訊技術和晶片的進步,今日的手機越來越像一部小型的電腦;但功能越複雜,也就越像個人電腦一般,需要三不五時從網路上更新修補檔案、升級軟體;但如果手機也像個人電腦一般,必須自己隨時上網下載這些更新程式的話,那對使用者來說一定是相當的不方便;藉著裝置管理這樣的技術,使用者在使用手機的經驗就如同過去2G的時代,不需要費太多的心力去設定手機或者下載更新程式,就能使手機正常運作;相信隨著高階手機越來越普及的情況下,支援裝置管理的手機會越來越多。而做為裝置管理主流技術的OMA DM,在未來也一定會在行動通訊領域扮演更重要的角色。
…本文作者廖彥豪任職於資策會網路多媒體研究所…