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


    目标:

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

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

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

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

    3.第二天回到公司,同步数据到公司服务器

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

    实现方案:

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

    1.业务数据同步到本地

    2.本地提交到业务系统

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

    1.业务数据同步到本地

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

    技术实现要点:

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

    offline-app01

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

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

    • 最笨的方法就是遍历然后依次判断个属性是否相等,若发现在本地有副本,则跳到下一个业务数据条目,继续运行,
    • 使用version法,给每个业务数据条目都加上一个version,对业务数据条目的任何更改都会引起version++,这样我们就可以通过判断version来确定,而且我们可以使用截获事件的手段来避免version给我们带来业务逻辑上的任何变化

    2.提交数据到业务系统

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

    技术实现要点:

    • 找到那些已经被更改的数据,我们这里拟采用“已更改数据”存储模块来标识用户已经做了更改的数据条目,这样可以获得更快的速度,我们可以在最短的时间找到哪些数据做了更改
    •  提交到服务器,在服务器上找到那些已更改的数据条目,应用用户最新的处理结果,若在用户离线之后,别的用户对线上的数据做了一些修改,我们应该怎么处理呢?我们现在暂定的一个原则就是以用户最后更改为最新数据,当然,这方面确实会有一点点不妥,不知道大家有没有什么比较好的方案。

    offline-app02


    博客地址:Zealot Yin

    欢迎转载,转载请注明出处[http://creator.cnblogs.com/]

  • 相关阅读:
    函数
    python操作文件
    POJ-2689-Prime Distance(素数区间筛法)
    POJ-2891-Strange Way to Express Integers(线性同余方程组)
    POJ-2142-The Balance
    POJ-1061-青蛙的约会(扩展欧几里得)
    Educational Codeforces Round 75 (Rated for Div. 2) D. Salary Changing
    Educational Codeforces Round 75 (Rated for Div. 2) C. Minimize The Integer
    Educational Codeforces Round 75 (Rated for Div. 2) B. Binary Palindromes
    Educational Codeforces Round 75 (Rated for Div. 2) A. Broken Keyboard
  • 原文地址:https://www.cnblogs.com/Creator/p/2105477.html
Copyright © 2020-2023  润新知