一种基于数据包的移动终端与业务系统数据同步的方法

文档序号:7860690阅读:275来源:国知局
专利名称:一种基于数据包的移动终端与业务系统数据同步的方法
技术领域
本发明涉及一种基于数据包的移动终端与业务系统数据同步的方法,面向各类移动作业,实现移动终端与业务系统之间的双向数据同步,属于移动应用信息化处理技术领域。
背景技术
随着无线通信技术和手持便携设备的发展,移动设备在日常生活和工作中的应用越来越广泛。各行业已经有了很多成熟的基于移动设备的应用案例,例如餐饮行业的PDA点菜系统,快递行业电子签收系统。近年来,利用移动终端开展电力业务现场作业,已经成为重要的工作方式之一,如用电管理、抄表作业、电力线路巡检作业、物资管理、应急作业 处理等电力业务都陆续实现了部分移动作业功能。这些移动作业都涉及到移动终端与后端业务系统进行数据同步,因此数据同步是移动作业的关键技术。当前主流的移动终端操作系统包括Apple iOS、Google Andriod、MicrosoftWindows Mobile、Nokia Symbian 等,在工业级 PDA 终端设备上常用 Windows Mobile 系统。这些智能终端操作系统都支持通过GPRS、3G、无线网络或USB连接方式建立与主机的通信,实现数据交换。移动终端通过USB端口建立与主机的连接后,可通过专用的同步软件,如WindowsActiveSync等,可以在终端设备与主机之间拷贝文件,以文件方式实现数据同步。就Windows Mobi Ie系统而言,在USB连接建立后还可以通过USB代理访问本地网络或Internet网络,此后可以在终端设备上直接通过网络通信方式与远程服务器交换数据,实现数据同步。在无线网络或移动通信网络中也可以通过建立无线网络连接方式进行远程服务器访问。以上数据同步方式中,文件同步的效率低、操作不方便;网络数据同步实现简单,但有时受限于网络条件,可能存在网络连接不稳定、通信效率低的问题。在基于网络通信的数据同步技术中,主要主存在以Web Services实现数据同步和以移动终端嵌入式数据库实现数据同步两类技术路线。前者在移动终端设备上通过网络调用远程服务器的Web Services接口实现数据下载与上传,此技术路线实现成本低,但由于是在线数据同步模式,对网络的稳定性、可靠性要求较高,且在大数据量传输时网络延时比较明显。后者也是基于网络调用的数据同步,但并非基于Web Services方式实现,而且采用TCP连接、二进制数据流方式完成数据的高效同步。这类产品以Sybase、IBM DB2为代表,提供的移动数据同步方案中最大瓶颈在于对后台数据库的实时访问而导致并发性能低。高峰期间大量的移动设备需要访问服务器下载或上传数据,由于数据实时访问,对数据库产生很大的压力,高峰时段频繁出现后台或中介数据库无响应的情况,严重影响用户使用。

发明内容
有鉴于此,本发明目的在于实现一种基于数据包的移动终端与业务系统数据同步的方法,应用于移动终端应用与业务系统之间的双向数据同步,其同步内容涵盖数据结构、业务数据、非结构化数据。本发明的另一目的是增强安全性、提高数据同步执行效率、降低主站业务系统负载、降低主站业务系统开发成本和软硬件部署成本。为实现上述目的,本发明提供如下技术方案
本发明基于网络通信的数据同步技术,以Web Services实现数据同步。本发明的技术方案中移动终端中运行移动应用及轻量级嵌入式数据(如Sqlite),用于存储移动作业所需要的业务数据,作为移动应用的数据源。移动应用基于统一的开发框架,框架运行时自动记录数据的变更日志,并生成增量数据包,作为未来数据同步的依据。移动应用服务作为终端设备与业务系统的中介,主要为终端设备提供数据访问接口、数据包管理、权限控制、业务系统集成、访问日志等功能。移动应用服务的另一个重要作用是保护业务系统不直接面向终端设备。移动终端设备与业务系统之间通过防火墙、隔离装置等物理设备以及移动应用服务实现对业务系统的间接访问。正是出于安全考虑,不允许移动终端设置操作的业务数 据也不能直接从业务系统获取,必须由移动应用服务代理中转。移动应用服务按离线数据包生成规则异步生成数据包并磁盘存储,终端设备直接下载离线数据包文件方式完成作业数据的封包、下载;终端设备提交增量数据包之后,移动应用服务按回填规则异步完成增量数据包到业务系统或业务数据库的回填。数据包生成及回填时移动应用服务可以直接操作业务系统的数据库,也可以调用业务系统提供的数据访问服务接口由业务系统实现数据库操作。本发明的方法通过生成离线数据、下载离线数据和上传回填增量数据等过程形成一个任务驱动的流程闭环,完成移动终端和业务系统的数据交换,实现数据同步。 本文中的“离线数据包”是构成一次业务作业的完整数据包,通常是一个ZIP压缩文件。离线数据包由三部分构成数据包描述文件,包含任务信息以及包中所有文件的索引;结构化数据文件,是指嵌入式数据库文件,包含任务相关的所有业务数据表结构及实例数据;非结构化数据各类文件(下面称为附件),包括作业时需要用到的文本、Office文档、图片或视频等文件。数据包由移动应用服务预先生成,下载到移动终端后,解压并还原成业务数据。本文中的“增量数据包”是移动应用基于统一的客户端开发框架,框架运行时自动记录数据的变更日志。执行上传增量数据包时,按照操作时间顺序,将变更的数据依次取出,并生成增量数据包,再将其通过调用数据同步服务上传至移动应用服务端。本文中的“数据同步规则”主要定义对数据表记录查询、创建、更新、删除等规则,其中查询规则用于离线数据包生成,创建、更新和删除规则用于增量数据包回填。数据同步规则描述了一类作业需要操作的数据范围,以及业务数据库和移动数据库之间的数据转换规范。数据同步规则支持动态参数,以便于从一个数据同步规则实例化包含不同数据实例的数据包对象。本发明的方法主要步骤如下
I定义数据包生成和回填规则
移动应用服务提供数据同步规则定义器定义数据同步规则,并保存在移动应用服务端。规则定义以Xml方式描述,格式如下所示
〈Template〉〈Table name= “父表名”〉
〈Table name= “子表名”〉
<SelectLogicXSql> 查询记录 SQL〈/Sql>〈/SelectLogic > <InsertLogic><Sql> 插入记录 SQL〈/Sql>〈/InsertLogic><UpdateLogicXSql> 更新记录 SQL〈/Sql>〈/UpdateLogic>〈DeleteLogicXSql〉删除记录 SQL〈/Sql>〈/DeleteLogic >
〈/Table〉
〈/Table〉
〈/Template〉
规则模板通过Table标签声明对一张数据表的查询、修改和删除SQL,在生成数据包时使用SelectLogic定义的SQL,数据回填时使用InsertLogic、UpdateLogic、DeleteLogic 等 SQL。规则定义中以下常用占位符用于插入动态参数值
(1)${new.字段名},表示移动数据库中的最新字段值,用于移动数据库向业务数据库同步创建、更新动作;
(2)$ {parent. obj_id. list},表示父表的主键字段列表,用于在抽取子表数据构造子表查询条件,如ssgzrwd in ($ {parent. obj_id. list});
(3)${变量名},用于传入动态变量值,如${BTJT. mwt_ud_bzzy_bzrwd. filter},可以在启动数据包生成时传递一个名为BTJT. mwt_ud_bzzy_bzrwd. filter的变量,构造动态查询 SQL。离线数据包生成
移动应用服务提供数据同步规则定义器定义数据抽取规则,并保存在移动应用服务端,在直连业务系统数据库(下面称数据库直连方式)时以SQL形式定义业务数据的抽取规贝1J。针对无法或不允许直连业务系统数据库的情况,移动应用服务允许通过业务系统的相关服务接口抽取数据(下面称Web服务方式)。抽取的业务数据直接转换成嵌入式数据库文件。离线数据包的生成由业务系统触发,业务系统在合适的时间调用移动应用服务的数据包生成通知接口通知移动应用服务开始生成数据包。业务系统需要在通知数据中需要提供任务的元数据、任务相关的非结构化数据的访问地址(可以是一个URL或共享存储目录),移动应用服务按照已定义的生成规则,抽取业务数据,下载非结构化数据,生成离线数据包,并记录数据的元数据。生成的数据包存储在可以通过HTTP访问的共享存储中,以便终端下载。终端下载离线数据包
移动终端用户登陆后,可通过任务视图在线查询待执行的数据包列表。用户可指定下载此次出工所要执行的任务,也可以一次性批量下载到客户端。离线数据包被下载到客户端后,平台客户端会将其解压缩还原成若干文件,存放在临时文件夹中,并将数据库文件存放到终端中(每个离线数据包都对应移动终端上的一个数据库文件)。当移动终端完成上述操作后,用户便可在移动终端执行数据包中的具体任务内容。本发明的方法除支持离线数据包下载外,还支持在线数据下载,可由移动应用设置查询条件,下载指定数据表中符合条件的数据。移动终端数据同步模块调用移动应用服务同步服务进行数据下载,参数包括数据库表名,数据过滤条件,从而获取需要符合条件的业务数据。其中数据过滤条件是对数据表的查询过滤条件。移动应用服务直连业务系统数据库或调用业务系统的相应服务获取数据并将这些数据序列化成XML结构化数据返回。平台客户端再将其反序列化到业务数据库中,从而实现在线数据下载。增量数据包上传回填
本发明的方法中修改业务数据的操作都必须通过统一的客户端开发框架提供的业务数据访问模块执行,因此所有更新都被记录在当前任务数据库日志表中。移动终端首先根据日志,按照操作时间顺序,将变更的数据依次取出,并生成增量离线数据包,再将其通过调用数据同步服务上传至移动应用服务。增量数据包回填包括增量结构化数据回填和增量非结构化数据回填
为了完成结构化数据回填,在直连业务系统数据库的情况下,可以通过数据同步规则定义器定义SQL形式的数据回填规则。针对无法或不允许直连业务系统数据库的情况,移动应用服务通过业务系统的相关服务接口回填数据。移动终端中变更的非结构化数据封装在上节所述的增量数据包中,随增量数据包上传一并处理。在结构化数据上传事务完成后,对非结构化数据进行上传。非结构化数据提交到共享存储交换区,并通知业务系统有文件上传,由业务系统从交换区读取并处理文件。本发明对数据冲突的处理策略
在结构化数据更新时,有可能出现冲突数据,即在一条业务数据被移动作业修改时,业务系统也进行了修改,移动应用服务提供对数据冲突检查及处理的扩展机制,对冲突数据进行发现、处理。直连业务系统数据库回填数据时,增量数据包中的结构化数据在一个事务中完成上传,全部数据上传成功后才提交事务。一旦上传失败,则回滚事务,当前增量数据包回池,且状态为“失败”。移动终端对失败的离线数据包进行检查并重新修正数据,重新提交。本发明的一种基于数据包的移动终端与业务系统数据同步的方法,与同类移动应用解决方案相比,表现出较高的数据包生成和回填效率。通过定义SQL形式的数据同步规则进行数据包生成与回填,这种直接面向数据库的方式具有效率高的优点。数据包生成与上传回填通过移动应用服务中介执行,不仅起到分担负载的作用,而且避免业务系统直接面向终端设备,由移动应用服务实现设备权限控制等安全防护,提高了业务系统安全性。


图I为基于本发明设计的移动作业平台架构模式图。图2为离线数据包生成流程示意图。图3为增量数据包上传回填流程示意图。图4为异步生成和回填数据包时序图。
具体实施例方式为了使本发明的上述目的、特征和优点更加明显易懂,以下结合附图和具体的实施流程对本发明的技术方案作进一步描述
图I示出数据同步由上述平台提供的移动终端程序和移动应用服务完成,移动终端与移动应用服务相连,而移动应用服务与各主站业务系统通过Web服务连接,同时还与主站数据库相连。如果主站业务系统不允许移动应用服务器与其数据库直连,则可采用基于Web服务的间接数据访问。本发明的生成离线数据包具体实施按图2流程进行。业务系统在明确移动作业任务后,主动通知移动应用服务生成离线数据包。首先,移动应用服务解析通知消息,找到对应的离线数据包生成规则;其次,将通知消息中的生成条件作为动态参数值填充规则中的占位符;最后,通过数据库直连抽取数据。针对移动作业中所需的非结构化数据,业务系统负责生成附件包并在通知消息中提供下载地址。推荐使用共享存储区域存放附件包。移动应用服务负责将抽取到的数据和附件包合并,生成离线数据包并建立数据包与移动作业任务的关系。生成好的数据包可放置在数据共享设备中,当不具备共享存储条件时也可使用移动应用服务器存放,同时将此文件存储位置与业务流程中的任务实体关联,方便终端查询、下载。·
如图4所示,针对离线数据包生成的逻辑一般都比较复杂,包含了一次移动作业所需的全部数据,这些数据的抽取规则复杂,数据包生成时间长,数据量大,占用较多的服务端资源,本发明提供移动异步数据包生成器,采取异步生成离线数据包方式。本发明的增量数据包上传回填具体实施按图3流程进行。移动终端用户在终端上完成作业后,生成增量数据包,并上传至移动应用服务的增量数据包任务处理池。图4示出移动应用服务对增量数据包进行异步提交。移动应用服务以异步方式从任务池中获取增量数据包并进行解析。首先,根据变更数据的表名、操作类型(InsertLogic、UpdateLogic或DeleteLogic)获取对应的回填规则;其次,将变更数据作为动态参数值填充规则中的占位符;最后,将SQL形式的增量数据包回填规则以事务的方式向业务数据库同步创建、更新动作,并通知业务系统进行后续处理。其中后续处理非结构化数据、解决数据冲突等。若在增量数据包回填失败,移动终端用户可以修订数据重新提交。由本节描述可知数据包任务通过任务池进行管理,移动应用服务提供异步数据包生成器生成离线数据包和异步数据包回填器回填增量数据包。部署移动应用服务时,可根据服务器性能动态配置任务池大小。当采取集群部署时,数据包任务调度功能根据服务繁忙程度进行任务调度,实现负载均衡。通过这种管理和调度机制可避免同时过多数据包生成和回填线程争用移动应用服务器和业务系统数据库服务器资源,给系统的性能带来压力。
权利要求
1.一种基于数据包的移动终端与业务系统数据同步的方法,包括采用XML文件方式配置数据表同步规则,同步规则描述数据表记录的查询、新增、更新、删除的SQL语句;依据数据表记录查询SQL语句生成数据包,供移动终端下载使用;依据数据表记录新增、更新、删除SQL语句,将移动终端中的数据变更相应地应用到业务系统,实现终端数据到业务系统的回填。
2.根据权利要求I所述的一种基于数据包的移动终端与业务系统数据同步的方法,其特征在于,所述数据表记录查询规则SQL语句,从业务系统数据库或调用业务系统服务查询获取生成数据包所需要的数据。
3.根据权利要求I所述的一种基于数据包的移动终端与业务系统数据同步的方法,其特征在于,所述数据表记录新增、更新、删除规则SQL语句,将移动终端中数据的新增、变更、删除动作直接应用于业务系统数据库或调用业务系统服务进行完成相应数据的新增、变更、删除。
4.根据权利要求I所述的一种基于数据包的移动终端与业务系统数据同步的方法,其特征在于,所述数据表同步规则,支持动态参数占位符,以实现可调整的数据范围。
5.根据权利要求I所述的一种基于数据包的移动终端与业务系统数据同步的方法,其特征在于,所述数据表同步规则,采用XML语言形式来定义数据表的同步规则。
6.根据权利要求I所述的一种基于数据包的移动终端与业务系统数据同步的方法,其特征在于,所述数据表同步规则,能描述数据库中多张数据表的同步规则,且支持父子表定义。
7.根据权利要求I所述的一种基于数据包的移动终端与业务系统数据同步的方法,其特征在于,所述数据包的生成,采用队列、异步方式生成,保证生成的效率,减轻对系统的并发压力。
8.根据权利要求I所述的一种基于数据包的移动终端与业务系统数据同步的方法,其特征在于,所述终端数据到业务系统的回填,采用队列、异步方式,减轻对业务系统数据库的并发压力。
9.根据权利要求I所述的一种基于数据包的移动终端与业务系统数据同步的方法,其特征在于,所述数据包中的数据文件是一种嵌入式数据库的数据文件,能直接还原成嵌入式数据库实例。
10.根据权利要求I所述的一种基于数据包的移动终端与业务系统数据同步的方法,其特征在于,所述终端数据到业务系统的回填,是指数据包中的数据文件是一种记录嵌入式数据库数据变更的描述文件,使用XML格式组织,结合新增、更新和删除规则可实现终端数据到业务系统的回填。
全文摘要
本发明公开了一种基于数据包的移动终端与业务系统数据同步的方法,属于移动应用信息化处理技术领域,应用于移动终端应用与业务系统之间的双向数据同步。该方法通过数据同步规则定义文件对数据表记录查询、创建、更新、删除等规则进行定义,数据同步规则描述文件用于一类数据包的生成与数据回填。基于数据同步规则定义文件,可以直接从业务系统数据库或通过业务系统的服务查询数据,生成嵌入式数据库文件,由移动终端下载使用。移动终端变更后的增量数据依据相应的同步规则将数据直接写入业务数据库或调用服务完成数据回填。本发明通过同步规则描述数据包生成与回填规则,实现高效地数据包生成,准确高效的数据回填。
文档编号H04L29/08GK102917020SQ201210347640
公开日2013年2月6日 申请日期2012年9月19日 优先权日2011年9月24日
发明者孟庆强, 李昕, 孔震, 王俊 申请人:国网电力科学研究院, 南京南瑞集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1