iCloud 馬上就要和廣大果迷見面了,相信不少果迷已經對該服務期待已久。被冠以 iOS 5 最重要更新之一的 iCloud 到底是如何為使用者服務的呢?下面帶果迷們一起瞭解一下 iCloud 的內部構造。
iCloud 最簡單的存在形式其實就是一個特定的檔案夾,它位於 iOS 裝置的 /private/var/mobile/Library/Mobile Documents/ 目錄下。該目錄中儲存有各應用共用至雲端的所有應用資料。
應用程式對該目錄有部分讀寫權限,該許可權是開發人員特有的。對於密碼鑰匙串,開發人員可以在各應用間共用雲端資料。比如,X 公司開發的所有應用可以共用、查看以及更新相同的檔案集。你無法共用你開發人員賬戶以外的資料,所以我的應用程式無法看到 X 公司的檔案,反之亦然。
iOS 系統監控著 Mobile Documents 檔案夾。當檔案被更改,裝置會自動的將這些更改上傳至雲端。從而這些更改就可以傳輸至同一帳號綁定的所有裝置上。這些操作都由本地作業系統服務進行處理,應用程式不直接參与其中。
相反,應用程式通過訂閱不同種類的通知來讓應用知道最新發生的更改。然後,它們可以通過對比本地和 iCloud 端的資料差異從而來處理資料版本衝突。
至於開發人員如何做就是他們的事了。他們可以選擇“最近更改有效”策略。或者他們可以結合一些其他方式的更改。應用程式的職責就在於確保不同硬體裝置單元上的資料保持一致,同時也需要可用的網路連接來處理這種一致性。
當使用者失去網路連接的時候,麻煩事就來了。比如,你也許在沒有網路連接的航班上編輯待辦事項,與此同時你的伴侶在他或她所在的城市正在更新同一份待辦事項。開發人員們為此工作了數月,研究如何在同時接受雙方修改的前提下結合這些更改並更新目標檔案的策略。
最後,iCloud API 介面方式或許會很少。它實際上就只是一個異地同步的隱藏檔夾。對於開發人員來說,訣竅在於如何考慮時間、空間、串連不同方面對檔案夾的影響,因為該檔案夾必須適應於使用者的更新。