Realm發布了新的移動開發平臺,致力于提供無縫的實時同步、沖突處理以及反應型(Reactive)事件處理。另外,其客戶端數據庫目前已經完全開源。
Realm移動平臺(Realm Mobile Platform)通過其新的Realm對象服務器(Realm Object Server)來集成Realm移動數據庫(Realm Mobile Database),提供了跨多移動設備平臺的特性,包括iOS、Android和watchOS。
Realm移動數據庫很重要的一個方面在于它是一個對象圖管理器(object graph manager),致力于提供應用模型的直接表述,這類似于蘋果的Core Data。Realm對象服務器擴展了這種哲學,提供了實時對象(live object)的抽象,根據Realm的聲明,這些對象能夠無縫和自動地與不同設備上的對象保持同步,在這個過程中甚至不需要編程人員編寫網絡代碼。要實現這一點,有一項基礎的特性就是自動沖突處理(automatic conflict resolution),當共享的實時對象同時提交時,會出現競爭變更,這時候就需要這項特性。Realm處理沖突的方式是致力于提供強的最終一致性,它能夠保證即便在兩端按照不同的順序提交變更,最終都會形成相同的結果。這是通過以下幾項基本的規則來實現的,包括:
如果某個對象已刪除的話,即便另外的設備對這個對象進行更新,它依然會保持刪除狀態; 如果兩個設備更新同一個屬性的話,后面的一次更新會生效; 如果兩個設備都往列表的尾端添加條目的時候,那么這兩個條目會按照它們的插入的時間追加到列表中。借助自動化的沖突處理功能,Realm說開發人員可以很容易地構建正常運行的應用,不用擔心數據丟失或間歇性地連接問題。
Realm移動平臺另外一項很有趣的特性就是事件處理,不過它只能在高級企業版中才可以使用。通過它,能夠定義服務端的處理器(handler),當對象狀態的變更傳遞到服務器時,這些處理器就會觸發,這樣的話,能夠設計應用實現serverless架構。
Realm對象服務器能夠部署在本地(on-premises),也可以運行在公有云上,包括AWS、Azure等等。Realm采用兩種形式提供其移動平臺:免費的開發者版本和高級企業版,后者包括了事件處理功能。
查看英文原文:Realm Mobile Platform to Enable Reactive Mobile Apps with Data Sync and Event Handling