看一下iCloud是如何工作的
iCloud 馬上就要和廣大果迷見(jiàn)面了,相信不少果迷已經(jīng)對(duì)該服務(wù)期待已久。被冠以 iOS 5 最重要更新之一的 iCloud 到底是如何為用戶服務(wù)的呢?下面帶果迷們一起了解一下 iCloud 的內(nèi)部構(gòu)造。

iCloud 最簡(jiǎn)單的存在形式其實(shí)就是一個(gè)特定的文件夾,它位于 iOS 設(shè)備的 /private/var/mobile/Library/Mobile Documents/ 目錄下。該目錄中保存有各應(yīng)用共享至云端的所有應(yīng)用數(shù)據(jù)。
應(yīng)用程序?qū)υ撃夸浻胁糠肿x寫權(quán)限,該權(quán)限是開(kāi)發(fā)人員特有的。對(duì)于密碼鑰匙串,開(kāi)發(fā)人員可以在各應(yīng)用間共享云端數(shù)據(jù)。比如,X 公司開(kāi)發(fā)的所有應(yīng)用可以共享、查看以及更新相同的文件集。你無(wú)法共享你開(kāi)發(fā)者賬戶以外的數(shù)據(jù),所以我的應(yīng)用無(wú)法看到 X 公司的文件,反之亦然。
iOS 系統(tǒng)監(jiān)控著 Mobile Documents 文件夾。當(dāng)文件被更改,設(shè)備會(huì)自動(dòng)的將這些更改上傳至云端。從而這些更改就可以傳輸至同一賬號(hào)綁定的所有設(shè)備上。這些操作都由本地操作系統(tǒng)服務(wù)進(jìn)行處理,應(yīng)用程序不直接參與其中。
相反,應(yīng)用程序通過(guò)訂閱不同種類的通知來(lái)讓應(yīng)用知道***發(fā)生的更改。然后,它們可以通過(guò)對(duì)比本地和 iCloud 端的數(shù)據(jù)差異從而來(lái)處理數(shù)據(jù)版本沖突。
至于開(kāi)發(fā)者如何做就是他們的事了。他們可以選擇“最近更改有效”策略。或者他們可以結(jié)合一些其他方式的更改。應(yīng)用程序的職責(zé)就在于確保不同硬件設(shè)備單元上的數(shù)據(jù)保持一致,同時(shí)也需要可用的網(wǎng)絡(luò)連接來(lái)處理這種一致性。
當(dāng)用戶失去網(wǎng)絡(luò)連接的時(shí)候,麻煩事就來(lái)了。比如,你也許在沒(méi)有網(wǎng)絡(luò)連接的航班上編輯待辦事項(xiàng),與此同時(shí)你的伴侶在他或她所在的城市正在更新同一份待辦事項(xiàng)。開(kāi)發(fā)者們?yōu)榇斯ぷ髁藬?shù)月,研究如何在同時(shí)接受雙方修改的前提下結(jié)合這些更改并更新目標(biāo)文件的策略。
***,iCloud API 接口方式或許會(huì)很少。它實(shí)際上就只是一個(gè)異地同步的存儲(chǔ)文件夾。對(duì)于開(kāi)發(fā)者來(lái)說(shuō),訣竅在于如何考慮時(shí)間、空間、連接不同方面對(duì)文件夾的影響,因?yàn)樵撐募A必須適應(yīng)于用戶的更新。