離線應用——業務資料同步方案探討

來源:互聯網
上載者:User

目標:

大家可以設想這樣一個情景,公司已經部署資訊化,且很多辦公流程已經挪到線上正在運營的系統來解決,這帶給企業的員工非常大的便利,節省辦公時間,提高辦公效率,可是我們把所有的流程和資料都放到了公司伺服器,一旦離開了公司,我們就相當於和我們所有的辦公環境脫離了,不再可以查看公司系統上的運營資料,不再可以進行添加刪除等等一系列操作。如果你最近的工作非常的多,你在有限的正常辦公時間內不能完成,那怎麼辦,只有在辦公室奮戰,叫苦不迭的夜晚辦公室生活就開始了.

離線應用生來就是為瞭解決這樣的問題,針對上面所列舉的情況,你不需要在辦公室進行奮戰,你要做的只有

1.將線上系統某個列表(或儲存結構)的資料按需選擇同步到本地

2.回到家,利用閑暇時間,開啟離線應用,對資料進行操作

3.第二天回到公司,同步資料到公司伺服器

說了這麼多,我們的目的只有一個:實現離線辦公

實現方案:

我們將整個離線應用分為兩塊

1.業務資料同步到本地

2.本地提交到業務系統

對於中間支援使用者怎麼去操作資料,不是我們這裡討論的重點,這也是隨商務邏輯而變的,一般都會在功能上做成和線上的系統一樣

1.業務資料同步到本地

將雲上的業務上的資料按需同步到本地並不是什麼難的操作,但是這裡也不容小覷

技術實現要點:

  • 能夠按需選擇資料同步到本地,為了讓使用者不用花大量的時間在等待同步資料到本地,我們可以採用由使用者選擇資料的同步 機制,有選擇的將真正對使用者有用的資料同步到本地,當然我們在代碼邏輯中,還需要記住使用者的這些選擇,並持久化,為使用者回到公司進行資料提交提供處理基礎
  • 離線用戶端資料暫存器能夠實現資料的持久化

業務資料同步到本地除了上面涉及到的,實際上我們還必須解決差異同步問題

雖然我們在同步業務資料到本地的時候,使用者可以按需進行選擇,但是如果使用者當前選擇的資料,有若干資料已經在本地有副本了,這些應該怎麼處理呢?差異同步的實現不知道大家有沒有比較好的方案,我這裡提供一點拙見

  • 最笨的方法就是遍曆然後依次判斷個屬性是否相等,若發現在本地有副本,則跳到下一個業務資料條目,繼續運行,
  • 使用version法,給每個業務資料條目都加上一個version,對業務資料條目的任何更改都會引起version++,這樣我們就可以通過判斷version來確定,而且我們可以使用截獲事件的手段來避免version給我們帶來商務邏輯上的任何變化

2.提交資料到業務系統

這裡主要是員工回到公司後,系統對員工已經線上下所作的更改提交到業務系統,產生效果

技術實現要點:

  • 找到那些已經被更改的資料,我們這裡擬採用“已更改資料”儲存模組來標識使用者已經做了更改的資料條目,這樣可以獲得更快的速度,我們可以在最短的時間找到哪些資料做了更改
  •  提交到伺服器,在伺服器上找到那些已更改的資料條目,應用使用者最新的處理結果,若在使用者離線之後,別的使用者對線上的資料做了一些修改,我們應該怎麼處理呢?我們現在暫訂一個原則就是以使用者最後更改為最新資料,當然,這方面確實會有一點點不妥,不知道大家有沒有什麼比較好的方案。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.