离线应用——业务数据同步方案探讨

目标:服务器

你们能够设想这样一个情景,公司已经部署信息化,且不少办公流程已经挪到线上正在运营的系统来解决,这带给企业的员工很是大的便利,节省办公时间,提升办公效率,但是咱们把全部的流程和数据都放到了公司服务器,一旦离开了公司,咱们就至关于和咱们全部的办公环境脱离了,再也不能够查看公司系统上的运营数据,再也不能够进行添加删除等等一系列操做。若是你最近的工做很是的多,你在有限的正常办公时间内不能完成,那怎么办,只有在办公室奋战,叫苦连天的夜晚办公室生活就开始了.app

离线应用生来就是为了解决这样的问题,针对上面所列举的状况,你不须要在办公室进行奋战,你要作的只有spa

1.将线上系统某个列表(或存储结构)的数据按需选择同步到本地blog

2.回到家,利用闲暇时间,打开离线应用,对数据进行操做事件

3.次日回到公司,同步数据到公司服务器部署

说了这么多,咱们的目的只有一个:实现离线办公get

 

实现方案:同步

咱们将整个离线应用分为两块it

1.业务数据同步到本地io

2.本地提交到业务系统

对于中间支持用户怎么去操做数据,不是咱们这里讨论的重点,这也是随业务逻辑而变的,通常都会在功能上作成和线上的系统同样

1.业务数据同步到本地

将云上的业务上的数据按需同步到本地并非什么难的操做,可是这里也不容小觑

技术实现要点:

  • 可以按需选择数据同步到本地,为了让用户不用花大量的时间在等待同步数据到本地,咱们能够采用由用户选择数据的同步 机制,有选择的将真正对用户有用的数据同步到本地,固然咱们在代码逻辑中,还须要记住用户的这些选择,并持久化,为用户回到公司进行数据提交提供处理基础

  • 离线客户端数据暂存器可以实现数据的持久化

offline-app01

业务数据同步到本地除了上面涉及到的,实际上咱们还必须解决差别同步问题

虽然咱们在同步业务数据到本地的时候,用户能够按需进行选择,可是若是用户当前选择的数据,有若干数据已经在本地有副本了,这些应该怎么处理呢?差别同步的实现不知道你们有没有比较好的方案,我这里提供一点拙见

  • 最笨的方法就是遍历而后依次判断个属性是否相等,若发如今本地有副本,则跳到下一个业务数据条目,继续运行,

  • 使用version法,给每一个业务数据条目都加上一个version,对业务数据条目的任何更改都会引发version++,这样咱们就能够经过判断version来肯定,并且咱们可使用截获事件的手段来避免version给咱们带来业务逻辑上的任何变化

2.提交数据到业务系统

这里主要是员工回到公司后,系统对员工已经在线下所做的更改提交到业务系统,产生效果

技术实现要点:

  • 找到那些已经被更改的数据,咱们这里拟采用“已更改数据”存储模块来标识用户已经作了更改的数据条目,这样能够得到更快的速度,咱们能够在最短的时间找到哪些数据作了更改

  •  提交到服务器,在服务器上找到那些已更改的数据条目,应用用户最新的处理结果,若在用户离线以后,别的用户对线上的数据作了一些修改,咱们应该怎么处理呢?咱们如今暂定的一个原则就是以用户最后更改成最新数据,固然,这方面确实会有一点点不妥,不知道你们有没有什么比较好的方案。

 

offline-app02

相关文章
相关标签/搜索