CN104615784B - 一种存取数据的方法 - Google Patents

一种存取数据的方法 Download PDF

Info

Publication number
CN104615784B
CN104615784B CN201510095678.7A CN201510095678A CN104615784B CN 104615784 B CN104615784 B CN 104615784B CN 201510095678 A CN201510095678 A CN 201510095678A CN 104615784 B CN104615784 B CN 104615784B
Authority
CN
China
Prior art keywords
file
hash
data
content
mobile terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510095678.7A
Other languages
English (en)
Other versions
CN104615784A (zh
Inventor
佘劲松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guizhou Teng Mai Information Technology Co., Ltd.
Original Assignee
Guizhou Teng Mai Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guizhou Teng Mai Information Technology Co Ltd filed Critical Guizhou Teng Mai Information Technology Co Ltd
Priority to CN201510095678.7A priority Critical patent/CN104615784B/zh
Publication of CN104615784A publication Critical patent/CN104615784A/zh
Application granted granted Critical
Publication of CN104615784B publication Critical patent/CN104615784B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供了一种存取数据的方法,用于在移动终端与服务器之间实现数据同步,该方法包括:移动终端利用散列运算捕获数据变化,基于所述数据变化,移动终端发起数据同步过程。本发明以散列数据计算为核心,具有高度的可行性和高效性,数据同步过程中在移动终端用户的参与下,有效地解决移动终端与服务器端的数据不一致问题。

Description

一种存取数据的方法
技术领域
本发明涉及数据通信,特别涉及一种在移动信息系统中存取数据的方法。
背景技术
电子病历系统为医护人员提供一个能够获取患者信息,将患者门诊、住院信息完全集成的,全面了解患者的综合医疗信息的平台,可更加有效地辅助医疗工作的开展。随着移动终端的应用,新形势下的移动医疗为医疗行业的智能化、自动化工作的开展提供了可能,也是对现行固定医疗的一种完善与补充。然而,移动医疗涉及到了移动终端与主服务器端的数据同步。因此,如何解决服务器端存储的数据与移动终端的数据副本的数据一致性就成为目前系统无缝扩展亟待解决的问题。目前主流的数据同步解决方案中,数据同步的扫描与分发工作由服务器端处理,无法充分利用硬件性能优越的移动终端,由此增加了服务器的压力,并且智能终端与服务器端的耦合程度复杂,增强数据同步的不灵活。
因此,针对相关技术中所存在的上述问题,目前尚未提出有效的解决方案。
发明内容
为解决上述现有技术所存在的问题,本发明提出了一种存取数据的方法,用于在移动终端与服务器之间实现数据同步,包括:
移动终端利用散列运算捕获数据变化,
基于所述数据变化,移动终端发起数据同步过程。
优选地,所述移动终端和服务器均包括通信模块与数据同步应用模块,其中,
移动终端的通信模块用于散列指纹信息的封装与解析、格式转换、数据传递;移动终端的数据同步应用模块负责同步数据的捕获、信息比对、变化数据的存储与读取等;
服务器端的通信模块用于散列指纹信息的封装与解析、格式转换、数据传递。服务器的数据同步应用模块负责同步数据的捕获、变化数据的存储与读取,而不提供变化数据的比对。
优选地,所述散列运算包括根据数据文件及消息计算相应的散列文件及散列消息,所述散列文件由文件头与文件内容两部分组成,其中文件内容由不同的散列消息组成,文件头由四个组成部分,分别是文件名映射数组、散列文件的大小、文件内容的起始偏移量、文件内容的当前偏移量;散列消息是对本地数据库中捕获的变化数据的封装,它由消息头和消息内容两部分组成,消息头是同步文件的文件名对应的散列映射,消息内容是同步文件的文件内容对应的散列映射,消息头由5个部分组成,分别是文件名映射、下一个消息的起始偏移量、消息状态标记字段、消息内容标记字段、消息内容偏移量,所述消息内容由3个部分组成,分别是总长度、文件全路径以及文件内容的散列映射。
优选地,所述每个文件的文件名映射为不同的散列值,不同的散列值存储在相应的映射数组中,同一散列值文件以链表形式组织起来,所述文件的文件名信息块包含两个指针,一个是指向下一文件的文件名信息块指针,另一个指针指向自身文件内容信息块,散列映射文件中第一个文件的起始指针用于查找信息块链表的起始位置,散列映射文件中最后一个文件的结束指针用于在插入下一个文件信息块时进行定位,不同文件通过散列映射数组快速找到链表的入口地址,同一入口地址下的文件以链表形式组织起来。
优选地,所述散列计算进一步包括:
步骤1:捕获发生变化的文件File,其文件名为File_Name,文件内容为File_Content,生成该文件对应的消息Mf;
步骤2:构造散列映射数组Mapping_Array,其大小为N,选择散列函数:
Hash(key)=key MOD P,其中P≤N;
步骤3:选取P为质数或者不包含20的质因数的合数;
步骤4:对文件名与文件内容取模运算,得到文件名的模值为FNK,文件内容的模值为FCK,即
FNK=File_Name Mod P;
FCK=File_ContentMod P;
步骤5:查找映射数组Mapping_Array。即Mapping_Array[FNK]=FNK
步骤6:判断Mapping_Array[FNK]的数组链表长度,若为无后继节点,添加消息节点,并将散列文件大小加1操作;第一个文件的起始指针和最后一个文件的结束指针均指向该文件对应的消息Mf。
步骤7:若Mapping_Array[FNK]后继节点非空,添加消息节点,并将散列文件大小加1操作;最后一个文件的结束指针指向该文件对应的消息Mf的后继节点。
本发明相比现有技术,具有以下优点:
本发明以散列数据计算为核心,具有高度的可行性和高效性,数据同步过程中在移动终端用户的参与下,有效地解决移动终端与服务器端的数据不一致问题。
附图说明
图1是根据本发明实施例的存取数据的方法的流程图。
具体实施方式
下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
本发明提出一种新的数据同步方法,由移动终端发起数据同步过程。图1是根据本发明实施例的存取数据的方法流程图。如图1所示,实施本发明的具体步骤如下:
本发明的数据同步结构由两部分组成,分别是移动终端和服务器FSC。
(1)移动终端MU。它由通信模块与数据同步应用模块两部分组成,移动终端的通信模块负责散列指纹信息的封装与解析、格式转换、数据传递等。移动终端的数据同步应用模块负责同步数据的捕获、信息比对、变化数据的存储与读取等。
(2)服务器FSC。它由数据同步应用模块与通信模块两部分组成,服务器的通信模块负责散列指纹信息的封装与解析、格式转换、数据传递等。服务器的数据同步应用模块负责同步数据的捕获、变化数据的存储与读取等,与移动终端的主要区别是不提供变化数据的比对。
基于散列的数据同步方法:
本发明采用了散列方法作为数据同步方法,该模型的优势在于将数据同步的工作交由移动终端负责,所以设计上首先要解决的问题是移动终端如何借助散列方法捕获数据变化,其次是解决如何同步的问题。在解决这两个问题之前我们需要定义散列文件及散列消息的格式。
散列文件由文件头与文件内容两部分组成,其中文件内容由不同的散列消息组成。散列文件头由四个组成部分,分别是文件名映射数组、散列文件的大小、文件内容的起始偏移量、文件内容的当前偏移量。散列消息是对本地数据库中捕获的变化数据的封装。它由消息头和消息内容两部分组成。消息头是同步文件的文件名对应的散列映射,消息内容是同步文件的文件内容对应的散列映射。消息头由5个部分组成,分别是文件名映射、下一个消息的起始偏移量、消息状态标记字段、消息内容标记字段、消息内容偏移量。消息内容由3个部分组成,分别是总长度、文件全路径以及文件内容的散列映射。
每个文件的文件名映射为不同的散列值,不同的散列值存储在相应的映射数组中,同一散列值文件以链表形式组织起来。
第n个文件的文件名信息块包含两个指针,一个是指向下一文件的文件名信息块指针,另一个指针指向自身文件内容信息块。散列映射文件中第一个文件的起始指针,方便快速查找信息块链表的起始位置,散列映射文件中最后一个文件的结束指针是在插入下一个文件信息块时快速定位。不同文件通过散列映射数组快速找到链表的入口地址,同一入口地址下的文件以链表形式组织起来。
散列同步方法具体的过程描述如下:
步骤1:设某个发生变化的文件File,其文件名为File_Name,文件内容为File_Content,生成该文件对应的消息Mf;
步骤2:构造散列映射数组Mapping_Array,其大小为N,选择散列函数:
散列(key)=key MOD P,其中P≤N;
步骤3:选取合适的P值,由经验得知,一般情况下可以选择P为质数或者不包含20的质因数的合数;
步骤4:对文件名与文件内容取模运算,设文件名的模值为FNK,文件内容的模值为FCK。
FNK=File_Name Mod P;
FCK=File_ContentMod P;
步骤5:查找映射数组Mapping_Array。即Mapping_Array[FNK]=FNK
步骤6:判断Mapping_Array[FNK]的数组链表长度,若为无后继节点,添加消息节点,并将散列文件大小加1操作;
第一个文件的起始指针和最后一个文件的结束指针均指向该文件对应的消息Mf。
步骤7:若Mapping_Array[FNK]后继节点非空,添加消息节点,并将散列文件大小加1操作;最后一个文件的结束指针指向该文件对应的消息Mf的后继节点。由上,移动终端与服务器端的数据同步过程分为变化数据捕获、数据比对和数据存储三个过程,同步处理的主要思想是:(1)不管移动终端是否需要重新初始化,都要先从服务器端下载相应的散列文件,也称捕获日志文件。这是服务器端数据信息稳定同步的前提。(2)散列文件的初始化由服务器端完成,移动终端与服务器端的同步对象为“散列文件”和“变化的本地文件”两类。(3)信息比对的过程发生在移动终端,比对的依据是终端的散列文件Status_Flag字段。不同的Status_Flag值代表移动终端与服务器端文件的状态。其中,在Status_Flag取0-6的状态下,文件状态分别为
Status_Flag为0:移动终端无此文件、服务器端新增此文件
Status_Flag为1:移动终端已删除此文件,服务器端有此文件
Status_Flag为2:移动终端有此文件、服务器端已删除此文件
Status_Flag为3:移动终端文件新增此文件,服务器端无此文件
Status_Flag为4:移动终端有此文件并已修改,服务器端有此文件但未修改
Status_Flag为5:移动终端有此文件但未修改,服务器端有此文件并已修改
Status_Flag为6:移动终端和服务器端均有此文件、内容一致
本发明优选的同步过程描述如下:
(1)服务器端待同步文件集USS对应的散列映射文件Fs,在服务器端所有文件集中USA中,USS∈USA,移动终端本地待同步文件集UCS及其对应的散列映射文件Fc,在表示移动终端所有文件集UCA中,UCS∈UCA
(2)当发现有效的无线网络时,检查终端初始化状态State,确定移动终端是否初始化;
(3)根据初始化状态,从服务器端获取本地待同步文件集USA及其对应的散列映射文件Fs,若散列映射文件不存在,由移动终端上传本地待同步文件集UCS及其对应的散列映射文件Fc,转至步骤(6),若散列映射文件存在,转至步骤(4);
(4)比对散列映射文件Fs与Fc。
若Status_Flag字段的值Status_Flag为0,则从USS读取待分发的相应文件filex,其中filex∈USS,转至步骤(5),
若字段Status_Flag为1,执行过程与Status_Flag为0类似,只是文件的传送方向是从移动终端向服务器端传送,
若Status_Flag为2,移动终端存在冗余数据文件filey,其中filey∈UCA,转至步骤(6),
若字段Status_Flag为3,移动终端的待同步数据文件filey有效,其同步原理与Status_Flag为2相似,只是对filey的操作是从移动终端向服务器端上传,
若字段Status_Flag为4,移动终端的数据发生变化,此时服务器端的文件filez是无效的冗余文件,转至步骤(8),
若Status_Flag为5,其同步过程与Status_Flag为4相似,
若Status_Flag为6,此时移动终端与服务器端数据保持一致,无需同步,转至步骤(9);
(5)向移动终端分发服务器端待同步文件filex,将其加入移动的文件集UCA并将移动终端散列映射文件Fc的Status_Flag设置为6;转至步骤(9);
(6)修改移动终端的文件集UCA,从中删除本地文件filey,同时将移动终端散列映射文件Fc的Status_Flag设置为6,转至步骤(9);
(7)清空服务器端的存储,删除服务器端散列映射文件Fs;
(8)从服务器端的文件集USA中删除服务器文件filez;将移动终端散列映射文件Fc的Status_Flag设置为6;
(9)移动终端与服务器数据库的数据同步完成。
综上所述,本发明本发明结合工作的实际需要,针对移动终端的特点,提出了以散列数据同步方法为核心的同步方法,该方法具有高度的可行性和高效性。数据同步过程中在移动终端用户的参与下,能够有效地解决移动终端与服务器端的数据不一致问题。
显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

Claims (2)

1.一种存取数据的方法,用于在移动终端与服务器之间实现数据同步,其特征在于,包括:
移动终端利用散列运算捕获数据变化,
基于所述数据变化,移动终端发起数据同步过程;
所述移动终端和服务器均包括通信模块与数据同步应用模块,其中,
移动终端的通信模块用于散列指纹信息的封装与解析、格式转换、数据传递;移动终端的数据同步应用模块负责同步数据的捕获、信息比对、变化数据的存储与读取等;
服务器端的通信模块用于散列指纹信息的封装与解析、格式转换、数据传递,服务器的数据同步应用模块负责同步数据的捕获、变化数据的存储与读取,而不提供变化数据的比对;
所述散列运算包括根据数据文件及消息计算相应的散列文件及散列消息,所述散列文件由文件头与文件内容两部分组成,其中文件内容由不同的散列消息组成,文件头由四个组成部分,分别是文件名映射数组、散列文件的大小、文件内容的起始偏移量、文件内容的当前偏移量;散列消息是对本地数据库中捕获的变化数据的封装,它由消息头和消息内容两部分组成,消息头是同步文件的文件名对应的散列映射,消息内容是同步文件的文件内容对应的散列映射,消息头由5个部分组成,分别是文件名映射、下一个消息的起始偏移量、消息状态标记字段、消息内容标记字段、消息内容偏移量,所述消息内容由3个部分组成,分别是总长度、文件全路径以及文件内容的散列映射;
每个文件的文件名映射为不同的散列值,不同的散列值存储在相应的映射数组中,同一散列值文件以链表形式组织起来,所述文件的文件名信息块包含两个指针,一个是指向下一文件的文件名信息块指针,另一个指针指向自身文件内容信息块,散列映射文件中第一个文件的起始指针用于查找信息块链表的起始位置,散列映射文件中最后一个文件的结束指针用于在插入下一个文件信息块时进行定位,不同文件通过散列映射数组快速找到链表的入口地址,同一入口地址下的文件以链表形式组织起来。
2.根据权利要求1所述的方法,其特征在于,所述散列运算进一步包括:
步骤1:捕获发生变化的文件File,其文件名为File_Name,文件内容为File_Content,生成该文件对应的消息Mf;
步骤2:构造散列映射数组Mapping_Array,其大小为N,选择散列函数:
Hash(key)=key MOD P,其中P≤N;
步骤3:选取P为质数或者不包含20的质因数的合数;
步骤4:对文件名与文件内容取模运算,得到文件名的模值为FNK,文件内容的模值为FCK,即
FNK=File_Name Mod P;
FCK=File_Content Mod P;
步骤5:查找映射数组Mapping_Array,即Mapping_Array[FNK]=FNK;
步骤6:判断Mapping_Array[FNK]的数组链表长度,若为无后继节点,添加消息节点,并将散列文件大小加1操作;第一个文件的起始指针和最后一个文件的结束指针均指向该文件对应的消息Mf,
步骤7:若Mapping_Array[FNK]后继节点非空,添加消息节点,并将散列文件大小加1操作;最后一个文件的结束指针指向该文件对应的消息Mf的后继节点。
CN201510095678.7A 2015-03-04 2015-03-04 一种存取数据的方法 Active CN104615784B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510095678.7A CN104615784B (zh) 2015-03-04 2015-03-04 一种存取数据的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510095678.7A CN104615784B (zh) 2015-03-04 2015-03-04 一种存取数据的方法

Publications (2)

Publication Number Publication Date
CN104615784A CN104615784A (zh) 2015-05-13
CN104615784B true CN104615784B (zh) 2017-09-08

Family

ID=53150226

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510095678.7A Active CN104615784B (zh) 2015-03-04 2015-03-04 一种存取数据的方法

Country Status (1)

Country Link
CN (1) CN104615784B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108573738A (zh) * 2018-03-29 2018-09-25 浙江慧优科技有限公司 一种快速查看患者及家族成员健康档案的方法
CN111953412B (zh) * 2020-08-07 2022-03-08 苏州浪潮智能科技有限公司 一种实现光模块开关光信息同步的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101009516A (zh) * 2006-01-26 2007-08-01 华为技术有限公司 一种进行数据同步的方法及系统
CN101882078A (zh) * 2010-05-28 2010-11-10 浙江大学 基于内存数据架构的模块间实时同步方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2475363A1 (en) * 2002-02-07 2003-08-14 Paul Jefferson Reilly Method and apparatus for providing content to a mobile terminal

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101009516A (zh) * 2006-01-26 2007-08-01 华为技术有限公司 一种进行数据同步的方法及系统
CN101882078A (zh) * 2010-05-28 2010-11-10 浙江大学 基于内存数据架构的模块间实时同步方法

Also Published As

Publication number Publication date
CN104615784A (zh) 2015-05-13

Similar Documents

Publication Publication Date Title
WO2017167171A1 (zh) 一种数据操作方法,服务器及存储系统
CN102420843B (zh) 一种基于云压缩链接的压缩和解压缩方法、装置及系统
CN101009516B (zh) 一种进行数据同步的方法、系统及装置
CN104376053B (zh) 一种基于海量气象数据的存储与检索方法
CN109446160A (zh) 一种文件读取方法、系统、装置及计算机可读存储介质
CN107332918A (zh) 一种云端‑本地文件同步实现方法及系统
CN102546740B (zh) 一种基于云压缩文件的压缩和解压缩方法、装置及系统
EP2200222A1 (en) A data synchronization method, system and device
CN103116615B (zh) 一种基于版本矢量的数据索引方法及服务器
JP5152877B2 (ja) 文書ベースシステムにおける文書データ記憶方法およびその装置
CN101673289B (zh) 分布式文件存储构架的构建方法和装置
CN106484820B (zh) 一种重命名方法、访问方法及装置
RU2007143551A (ru) Способ, система и читаемый компьютером носитель информации для синхронизации поддающихся изменению документов для множества клиентов
WO2014015488A1 (zh) 一种数据存储、数据查询的方法及装置
WO2013078797A1 (zh) 网络文件传输方法及系统
CN103942344A (zh) 一种预览文件的方法及文件处理系统
CN104965835B (zh) 一种分布式文件系统的文件读写方法及装置
CN107682399A (zh) 一种基于大数据的文件夹断点续传方法
CN106547911A (zh) 一种海量小文件的存取方法和系统
CN104615784B (zh) 一种存取数据的方法
CN104639651A (zh) 一种移动设备信息传输方法
CN101459489A (zh) 深度报文检测设备和方法
CN105978944A (zh) 对象存储方法和装置
CN106372109A (zh) 互联网资源文件缓存方法及装置
CN107423425A (zh) 一种对k/v格式的数据快速存储和查询方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: She Jinsong

Inventor before: Yu Zhexu

Inventor before: Zhao Daquan

CB03 Change of inventor or designer information
TA01 Transfer of patent application right

Effective date of registration: 20170814

Address after: 550001 1-10-2, Kai Mao Building, No. 88, flying mountain street, Yunyan District, Guizhou, Guiyang

Applicant after: Guizhou Teng Mai Information Technology Co., Ltd.

Address before: High tech Zone Chengdu city Sichuan province 610000 Dayuan Street No. 104, No. 6, 2 floor 4

Applicant before: Chengdu Wei Yuanai two pieces of jade put together Information Technology Co., Ltd

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method for data access

Effective date of registration: 20180131

Granted publication date: 20170908

Pledgee: Bank of Guiyang Limited by Share Ltd high tech branch

Pledgor: Guizhou Teng Mai Information Technology Co., Ltd.

Registration number: 2018990000099

PE01 Entry into force of the registration of the contract for pledge of patent right