2013-08-29 67 views
3

我目前開始爲現有網絡平臺開發移動應用程序(iOS和Android)。該Web平臺具有REST API,客戶端應用程序將使用該平臺進行通信。問題是移動應用程序可以對API進行更改,並且我必須有離線支持。這將有同步問題:移動數據同步

  1. 客戶可以在相同的離線數據發生變化,那麼它可以產生問題時,同步與服務器信息

  2. 網頁客戶端可以改變的信息,以及與該移動客戶端處於脫機狀態,並沒有看到這些變化,我也改變了舊內容

  3. 讓移動應用程序離線存儲最新數據,以便用戶可以工作。而當它聯機時,它應該解決變化並將更改發送到服務器

是否有任何理論上的事情我可以閱讀或看到可用於此的算法?我的意思是這在移動應用程序開發中非常常見,我不想在這裏重新發明輪子。

+0

請檢查http://coenraets.org/blog/2012/05/simple-offline-data-synchronization-for-mobile-web-and-phonegap-applications/ –

+0

警告將是適當的:1.實現對於全功能羽翼豐滿的同步技術將會非常難*。 2.根據你的描述,你很可能需要一個「完全成熟的解決方案」。只有少數幾家公司設法提供可靠的商業解決方案! (請參閱basho.com上的Riak)分析整個問題區域甚至不是那麼容易,因爲許多「簡單的數據同步解決方案的移動」存在證明。 – CouchDeveloper

回答

0

要解決你的問題,你可以按照下面的方法。

例如,您正在通過Web客戶端進行更改。那時你的手機處於離線狀態。這些更改保存在服務器上。現在,您在離線狀態下也對移動設備進行了更改。 這是棘手的部分需要做的 - 當您的手機上線時,首先檢查是否有任何更改通過網絡客戶端完成?如果是,那麼詢問用戶「你想用最後的改變覆蓋它嗎?」比如這種類型的消息或者你想要顯示的任何東西,以提醒用戶更改是衝突的。

如果選擇了,然後繼續並上傳移動完成的更改。

希望這會幫助你解決你的問題。

+0

要確定是否完成更改,可以在服務器上添加標誌變量。 :) –

+0

如果數據與多個設備同步會怎麼樣?這不起作用。這不是實現同步的正確方法。有100個場景和衝突。 –

+0

@ShivarajPatil是的,你是對的。如果支持多臺設備同時登錄並且這些設備處於脫機狀態,將會出現問題。 –

3

最近我在博客上關於同步(sync algorithm for exchanging data in the 「Client – Server」 model via REST API)。我在文章中提到的算法用於構建同步功能以支持脫機客戶端。它可以幫助您根據您的特定要求構建同步邏輯。

注意:我只是簡單地提供了鏈接到提到的算法,而不是在這裏解釋它的原因是,該文章包含許多有價值的評論,讚美文章。

+0

以上鍊接已損壞。 –

+0

@Shivaraj Patil - 提供的鏈接應該可以工作。這是由Google託管的博客服務器。 – Havrl

+0

我再次檢查它說「沒有收到數據 ERR_EMPTY_RESPONSE」 –