CN114153659B - 一种数据的双模式存储及同步系统 - Google Patents

一种数据的双模式存储及同步系统 Download PDF

Info

Publication number
CN114153659B
CN114153659B CN202111436329.9A CN202111436329A CN114153659B CN 114153659 B CN114153659 B CN 114153659B CN 202111436329 A CN202111436329 A CN 202111436329A CN 114153659 B CN114153659 B CN 114153659B
Authority
CN
China
Prior art keywords
data
file
text file
synchronization
packet
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
CN202111436329.9A
Other languages
English (en)
Other versions
CN114153659A (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.)
Zhonghe Space Beijing Technology Co ltd
Original Assignee
Zhonghe Space Beijing 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 Zhonghe Space Beijing Technology Co ltd filed Critical Zhonghe Space Beijing Technology Co ltd
Priority to CN202111436329.9A priority Critical patent/CN114153659B/zh
Publication of CN114153659A publication Critical patent/CN114153659A/zh
Application granted granted Critical
Publication of CN114153659B publication Critical patent/CN114153659B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details of archiving
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/168Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种数据的双模式存储及同步系统,属于数据处理技术领域,用以解决数据双模式存储过程中的数据同步问题。一种数据的双模式存储及同步系统,包括:基于数据库的表单系统,用于以数据库模式存储数据;云文件系统,用于以文件模式存储数据;同步系统,用于实现文件模式与数据库模式存储的数据之间的同步。与现有技术相比,本发明中的数据的双模式存储及同步系统具备如下优势:便于用户灵活应用文件模式和数据库模式应对特殊应用场合;为数据提供了双重存储保险;同步系统无需人工干涉即可完成数据同步工作;使用云文件系统提供方便的文件模式应用;使用基于数据库的表单系统展示数据库中的数据具有强大的扩展性。

Description

一种数据的双模式存储及同步系统
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据的双模式存储和同步系统。
背景技术
在计算机领域,将从生产生活中提取的一条数据资料存储到计算机中,从应用的角度来看,有文件存储(又以文本文件方式为最常见一种方法)、数据库存储两种方式。“数据”本身是一个抽象的概念。在不同的事务中,“一条数据”有不同的内容丰度。学校班级内“学生”数据中的一条数据,包括一名学生的姓名、性别、学号等个人完整信息,甚至还可能将一张该学生的照片作为数据的一部分;而以“图册”为整体的事务中,一条数据可能仅仅是一张图片,再无其他。总体来说,“一条数据”就是指在同一类事务环境的前提下,具备相对独立信息的一个最小逻辑单元的数据,是指没有结构上类似的重复个体的数据集合。
文件存储数据的基础都是二进制。通过ASCII编码等方法,人们将二进制和日常使用的文字进行映射转换,从而有了通用的文本文件类型。该类型最大的特点就是,几乎所有的计算机软件系统都直接支持该类型文件的读取、存储和编辑,不需要任何额外的软件功能支持。这不仅包括了我们日常使用的个人电脑、手机等智能计算机设备,连简单的单片机、嵌入式系统等也对文本文件有着最为基础的使用支持。当然文本文件也有一些局限性,对于文字以外的数据形式,例如图片、声音、视频等多媒体信息的支持不佳。但通过对二进制数据进行一些特殊的编码转换(例如base64等),仍然是可以将这些数据记录在文本文件中;虽然打开这样的文本文件,人们无法直接阅读并理解这些转换后的信息,但仍可通过软件对其进行反编码然后使用。基于上面的描述,显然,一条数据是可以存储在单个文本文件中的。
数据库系统则是计算机软件领域非常重要的一种数据应用系统,通过将描述“一条数据”的结构明确化为一个数据表格的方式,可用于存储相同格式的多条数据;并维系这些数据内部或与外部其他数据之间的联系,实现各种可能的数据交互。目前计算机科学领域的数据库系统有很多,本发明不针对各种各样的数据库系统进行差异化分析,只关注其“综合数据管理”的共性。要注意到,在操作系统层面,所有的计算机运行过程中产生的数据,最终都是以文件为存储方式存储到存储介质上的,数据库系统也不例外——绝大多数数据库对应的存储文件为二进制模式,必须使用相关的程序才能读写。无论最终存储形式为何,一条数据存储在数据库中,是再平常不过的事情。
通过前面的描述,尽管在底层实现上两种存储方式有相似点(最终都以计算机系统中的文件存储方式存储到介质上)。但是,将一条数据存储到计算机中,结合用户随后访问数据的界面可知,不同的存储方式存在很大的不同,主要区别如表1所示。
表1对比一条数据存储在单个文本文件中、存储在数据库中的特点
Figure BDA0003381651500000021
现实生活中,一条数据存储到一个单独的文本文件,还是存储到数据库中,这两种存储方法,都有其适应的场合,各有优势和劣势。但如果能同时对一条数据启用两种模式的存储,就能结合二者的优势,规避其劣势,形成更为灵活、强大的数据功能系统。
但如果要实现双模式存储,就必须面临以下问题。
(1)在文本文件中设计一种与数据库存储匹配的数据格式
文本文件本身容放数据是非常自由的,但存储数据如果没有一种严格的格式约束,则在之后通过程序的方式从文本文件中提取数据就会变得很困难,不利于日常使用。因此需要为文本文件存储数据设计一种格式来进行约束。
(2)在文本文件中提供一定加密能力来保护数据
文本文件几乎在所有计算机系统中都能够直接打开访问其内容。若要赋予其内容的安全性,对文本文件的原始内容可提供若干加密方式进行转换。这些加密算法一定是可逆的,且需要密钥才能解密。密钥的保存和使用也需要一个配套的系统来支持。
(3)为数据存储的文本文件进行文件系统安全性补充
注意,这种安全性补充,是指当所有的存储数据的文本文件集中存储在一个特定的文件系统中时,进行安全性补充;当该文本文件通过拷贝、网络传输等方式离开该文件系统后,这些安全措施即将失效。如果对于取出的文件在其他系统中仍具备一定的安全性,则需要依赖文件本身的加密措施。
(4)提供一种自动同步两种模式下存储的数据的方法
数据以两种不同模式进行存储后,就产生了至少两个数据副本。日常使用中,不同模式下的数据发生变化后,就有一个同步的需求,否则数据内容不匹配,各个模式所体现的应用优势也就没有意义了。
同步两种模式下的数据,使之始终保持内容一致,是数据双模式存储方案中最为核心的过程。
发明内容
鉴于上述的分析,本发明实施例旨在提供一种数据的双模式存储和同步系统,用以解决数据双模式存储过程中的数据同步问题。
本发明实施例公开了一种数据的双模式存储及同步系统,包括:
基于数据库的表单系统,用于以数据库模式存储数据;
云文件系统,用于以文件模式存储数据;
同步系统,用于实现文件模式与数据库模式存储的数据之间的同步。
在上述方案的基础上,本发明还做出了如下改进:
进一步,在云文件系统中,一条数据存储为一个独立的数据文本文件,所述数据文本文件包括数据结构、数据结构唯一标识、匹配于数据结构的一条数据值及数据值唯一标识;其中,
数据结构,用于以文本形式描述所述数据中的关键字段;
数据结构唯一标识,用于唯一标识所述数据结构;
数据值,用于以文本形式描述所述数据中关键字段的取值;
数据值唯一标识,用于唯一标识所述数据值。
进一步,表单系统中的表单模板由数据格式和若干条数据行组成;表单模板中的一条数据唯一对应一个数据包,数据包包括数据格式、数据格式唯一标识、匹配于数据格式的一条数据行、以及数据行唯一标识;其中,
数据格式,用于以表格形式描述所述数据中的关键字段;
数据格式唯一标识,用于唯一标识所述数据格式;
数据行,用于以表格形式描述所述数据中关键字段的取值;
数据行唯一标识,用于唯一标识所述数据行。
进一步,在所述双模式存储及同步系统中,表单系统、云文件系统及同步系统配合实现数据同步:
数据操作指令的接收方除执行数据操作指令中的数据操作外,还判断数据操作是否触发于用户请求,若是,还触发同步系统执行同步操作:同步触发数据操作指令的同步方执行同步于该数据操作的数据操作;
其中,数据操作指令的接收方为云文件系统和表单系统中的一方,数据操作指令的同步方为云文件系统和表单系统中的另一方。
进一步,所述同步系统执行同步操作时,执行以下一种或多种操作:
关联维护,包括三个元操作:判断一个数据包是否是孤立,一个数据文本文件是否孤立,将一个数据包关联到一个数据文本文件;
数据解析,以数据文本文件中的数据为准、同步到数据包中;
数据打包,以数据包中的数据为准、同步到数据文本文件中。
进一步,数据解析的过程为:
步骤J1:读取数据文本文件中的数据结构唯一标识,判断是否含数据结构唯一标识,若含,则记录该数据结构唯一标识,然后跳转到J2;若不含,直接跳转到J2;
步骤J2:读取数据文本文件中的数据结构信息,并转换数据结构信息为数据格式;
步骤J3:读取数据文本文件中的数据值唯一标识,判断是否含数据值唯一标识,若含,则记录数据值唯一标识,然后跳转到J4;若不含,直接跳转到J4;
步骤J4:读取数据文本文件中的数据值,并转换数据值为数据行;
步骤J5:将数据结构唯一标识作为数据格式唯一标识、将数据值唯一标识作为数据行唯一标识,按照数据包的形式组织数据格式唯一标识、数据格式、数据行唯一标识及数据行,得到解析后的数据包。
进一步,数据打包的过程为:
读取数据包,顺次提取并记录数据格式唯一标识、数据格式信息、数据行唯一标识及数据行;
将数据格式唯一标识作为数据结构唯一标识、将数据行唯一标识作为数据值唯一标识,将数据格式转换为数据结构、数据行转换为数据值,按照数据文本文件的形式组织数据结构唯一标识、数据结构、数据值唯一标识及数据值,得到打包后的数据文本文件。
进一步,云文件系统中执行的数据操作为文件操作,包括:文件新建、文件编辑及文件删除;
表单系统中执行的数据操作为数据库操作,包括:创建表单、插入数据、更新数据及删除数据。
进一步,在实现数据同步的过程中,表单系统中的最新数据仅关联同步于云文件系统中对应的数据文本文件的最新版本,该数据文本文件的历史版本仍存储在云文件系统中。
进一步,所述云文件系统具备权限管理功能,所述同步系统在实现文件模式与数据库模式存储的数据之间的同步时,受限于所述云文件系统的权限管理功能。
与现有技术相比,本发明至少可实现如下有益效果之一:
本发明提供的一种数据的双模式存储和同步系统,具备如下优势:
1、灵活应用文件模式和数据库模式应对特殊应用场合
根据数据的应用场合,可以自由选择使用两种存储模式之一,同时体现数据库存储和文件存储在实际运用中的优势,亦能同时避免二者的劣势。比如,需要数据分析的场合,启用数据的数据库存储模式;而平时携带、转移数据,使用数据的文件模式。
2、为数据提供了双重存储保险
双模式存储带来了数据冗余。从某种意义上来说,这正是数据的一种双重存储保险。文件模式存储的数据,可自由的拷贝、分散至独立的文件存储设备;数据库存储模式数据,又有数据的存储副本。无论哪种模式存储的数据发生了缺失,至少有另一种模式的数据可供还原。
3、同步系统无需人工干涉完成数据同步工作
数据冗余的一个弊端是,当一部分数据发生变更时,冗余部分必须也要进行同样的变更,否则会造成数据的混乱。在本发明中,特地提供了同步系统为数据的双模式存储进行的数据的自动同步工作,从而解决了数据变更中最关键的问题。
4、使用云文件系统提供方便的文件模式应用
在同步系统中,同步系统对接数据的文件模式和数据库模式,分别提供了一个云文件系统和基于数据库的表单系统,用来存放两种模式数据,并保持二者之间的同步。
云文件系统对于处理数据文本文件有着强大的功能:
(1)作为云文件系统,便于数据文本文件提供者通过网络上传各自的文件;
(2)云文件系统的文件管理功能可以很好的详细记录单条数据文本文件的上传时间、上传用户等元数据信息,确保数据的可追溯性。
(3)云文件系统的文件安全性可以为文件的访问读取提供系统级安全特性
(4)云文件系统具备文件历史版本的记录功能,从而可实现数据库中一条数据的历史数据变化追溯功能(在数据库系统中要实现同等功能,需要特地开发相对复杂的数据冗余存储功能,更不要说是“任意”的数据都具备历史追溯功能,其开发代价高昂)。
(5)云文件系统中为打开数据文本文件提供了一种特有的展示方案:虽然数据是存储在文本文件中,但因为包含结构信息,云文件系统可解析这种结构,将文件以“表单”的方式呈现,这样阅读单个文件时,更为直观。
5、使用基于数据库的表单系统展示数据库中的数据具有强大的扩展性
(1)基于数据库的表单系统,为数据文本文件中的数据对应数据库数据提供了可动态扩充的能力:
(2)数据文本文件中的数据只要遵循一定的格式规范,可描述不同结构的数据对象。表单系统可根据结构的不同,自动地扩充数据库的存储结构,而无需为特定的结构数据单独进行程序开发。
(3)无需通过最终存储的数据库再进行单独开发来使用数据——表单系统直接提供一种通用的数据表格模式来展示数据库中的数据,便于用户直接使用。除此之外,表单系统甚至可以提供更多的通用展示方案来呈现数据。
本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
图1为数据的双模式存储及同步系统结构示意图;
图2为同步系统工作示意图;
图3为数据文本文件和数据包的关联关系示意图;
图4为数据解析流程图;
图5为数据打包流程图;
图6为同步操作过程中文件系统、同步系统及表单系统之间的交互示意图;
图7为云文件系统中新建数据文本文件的同步过程流程图;
图8为云文件系统中编辑数据文本文件的同步过程流程图;
图9为云文件系统中删除数据文本文件的同步过程流程图;
图10为表单系统中插入一条新数据的同步过程流程图;
图11为表单系统中更新一条数据的同步过程流程图;
图12为表单系统中删除一条新数据的同步过程流程图;
图13为同步系统的同步操作下云文件系统和表单系统操作处理共性流程示意图;
图14为双模式存储中、文件存储模式可为数据库存储模式提供数据历史版本追溯能力的示意图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
本发明实施例公开了一种数据的双模式存储及同步系统,结构示意图如图1所示,包括:
基于数据库的表单系统,用于以数据库模式存储数据;
云文件系统,用于以文件模式存储数据;
同步系统,用于实现文件模式与数据库模式存储的数据之间的同步。
如图1所示,在数据的双模式存储及同步系统中,将一条数据存储为数据库中的一条数据(对接表单系统)、或者存储为云文件系统中的一个独立数据文本文件后,两组数据均对接进入同步系统,并在同步系统中实现两种模式下所存储的数据之间的同步。此外,为便于用户操作,数据的双模式存储及同步系统还可以为用户提供对应两种存储模式的用户操作界面,分别为:用于操作表单系统的数据库操作界面,为用户提供数据表单形式的操作界面;用于操作云文件系统的文件操作界面,可为用户提供文件形式的操作界面,操作过程中,可以以文件管理的方式打开数据文本文件,呈现为文件表单形式。
在本实施例中,同步系统是实现整个方案的核心环节。通过进一步解析本实施例中的数据的双模式存储及同步系统,可以看到更为详细的内涵。如图2所示,在同步系统工作示意图中可看到下列要素:
1、云文件系统及存储其中的数据文本文件
2、表单系统及数据包
3、数据文本文件在云文件系统中的文件操作:文件新建、文件编辑及文件删除操作
4、数据包中数据格式和数据行相关的数据库操作:创建表单、插入数据、更新数据及删除数据;
5、同步系统的三大工作流程:关联维护、数据解析与打包、同步操作
本实施例的详细实现方案将基于上述5条要素逐一阐述。首先,对云文件系统、表单系统及同步系统的基本特征做如下介绍:
第一、云文件系统
1、在云文件系统中,一条数据存储为一个独立的数据文本文件,数据文本文件包括数据结构、数据结构唯一标识、匹配于数据结构的一条数据值及数据值唯一标识;其中,数据结构,用于以文本形式描述所述数据中的关键字段;数据结构唯一标识,用于唯一标识所述数据结构;数据值,用于以文本形式描述所述数据中关键字段的取值;数据值唯一标识,用于唯一标识所述数据值。注意,非空数据文本文件中必须包含数据结构,数据值可以为空,数据结构唯一标识和数据值唯一标识可以在文件新建过程中经由同步系统的同步操作实现填充。
2、作为可共享的云文件空间,用户可以通过文件传输源将数据文本文件存入云文件系统,或从云文件系统中拷贝出数据文本文件。
3、作为可共享的云文件空间,云文件系统具有一定的权限管理功能,可控制存储其上的数据文本文件具有“可见”(对特定用户可见/隐藏设定)、“可读”(对特定用户可读取设定)、“可写”(内容编辑,但不能修改文件的权限)、“可管理”(对特定用户具有全部权限)特性。需要强调的是,同步系统在实现文件模式与数据库模式存储的数据之间的同步时,受限于云文件系统对数据文本文件的权限管理功能。具体地,在云云文件系统侧,只有满足权限管理功能的数据文本文件才能执行相应的文件操作;而在表单系统侧,一条数据的权限管理功能为匹配于该数据的数据包关联的数据文本文件的权限管理功能,只有满足权限管理功能的数据才能执行相应的数据库操作;例如,如果某一数据文本文件不可写,那么,无法对其进行文件编辑。同样,若该数据文本文件文件与表单系统中的一个数据包关联,则同样无法对表单系统中匹配于该数据包的数据进行更新数据操作。因此,只有具备相应的权限管理功能的数据文本文件或数据包,才能进入到图7-13的同步流程。
4、具有文件历史版本记录功能。在在实现数据同步的过程中(如执行文件编辑、或者更新数据等操作时),表单系统中的最新数据仅关联于云文件系统中对应的数据文本文件的最新版本,该数据文本文件的历史版本仍存储在云文件系统中。因此,编辑后的数据文本文件实际上是存储为新的数据文本文件副本,并沿袭旧版所有的权限设定,对历史版本进行“文件归档”。历史版本的保留数量可控。
5、具有“文件归档”功能。该功能是指表单系统中的一条数据断开与一个数据文本文件的关联、转而与另一个数据文本文件关联后,会对原来关联的数据文本文件进行文件归档,即,将原来关联的数据文本文件从常规的文件管理中彻底隐藏,变成支持最新的数据文本文件内容展示的“附属数据”。归档后的历史版本的数据文本文件仍然可以通过特殊的操作单独取出,但无法再进行编辑和管理设置(用户权限足够也不能再改变),成为绝对的“只读”文件。
6、数据文本文件最终以ASCII码方式存储,以便于脱离本实施例中的同步环境后,数据文本文件仍具备一定的可用性。
7、数据文本文件需遵循设定的结构化文本规范,结构化文本规范可以使用XML、JSON等方法进行描述;本实施例对所遵循的结构化文本规范不做限定。但是,如果要实现对一条数据进行双模式存储和同步,这个结构化文本规范必须唯一确定,而不能多种规范混杂。
当数据文本文件存储在云文件系统中时,云文件系统和存储其中的数据文本文件均受到同步系统的控制,具体体现在:
8、云文件系统对数据文本文件的文件操作均受同步系统监控;
9、数据文本文件的内容受同步系统监控,从而实现数据解析与打包过程。
10、数据文本文件的存储受同步系统监控,从而实现与表单系统对应的数据包的关联维护功能。
以上功能特征,是实现同步系统功能中对云文件系统及数据文本文件的要求。在接下来的功能描述中,将会使用到以上功能特征。
注意,一个数据文本文件经由文件传输源复制到外部,离开同步系统后,将不再受任何同步系统限制,可以做各种编辑改变;但若想要编辑变化后重新复制回双模式存储及同步系统,则要求其在外部的改变仍遵循双模式存储及同步系统内的结构化文本规范以及数据文本文件的结构——如果不符合,则该文件不再是可用于同步处理的数据文本文件,在双模式存储及同步系统中会被忽略同步处理。
第二、表单系统
1、基于数据库源开发,所有产生和使用的表单数据均基于标准的数据库表创建和实现。
2、可在约定的结构化文本规范下创建各种新格式的表格。该结构化文本规范与云文件系统中数据文本文件的结构化文本规范要求一致。
3、对各种格式的数据表单支持插入数据、更新数据、删除数据等基本的数据库操作。
4、表单系统中的表单模板由数据格式和若干条数据行组成;表单模板中的一条数据唯一对应一个数据包,数据包指表单模板中一条数据的全部内容:数据包包括数据格式、数据格式唯一标识、匹配于数据格式的一条数据行、以及数据行唯一标识;其中,数据格式,用于以表格形式描述所述数据中的关键字段;数据格式唯一标识,用于唯一标识所述数据格式,通过数据格式唯一标识,可以区分不同数据格式的数据;数据行,用于以表格形式描述所述数据中关键字段的取值;数据行唯一标识,用于唯一标识所述数据行,通过数据行唯一标识,可以区分相同数据格式下的不同数据行信息。基于上面描述可知,本质上讲,同一条数据体现在数据包与数据文本文件的内容一致,只是表现形式上有所区别,一个是表格形式、一个是文件形式。注意,非空数据包中必须包含数据格式,数据行可以为空,数据格式唯一标识和数据行唯一标识可以通过表单系统实现填充。
第三、数据文本文件在云文件系统中的文件操作
1、文件新建:包括两种方式:直接在云文件系统中创建一条空的数据文本文件后立即手工填写数据并保存;或者,通过文件传输源复制而来的一个具有数据内容的数据文本文件;按照前述介绍,无论通过哪种方式进行文件新建,新建的数据文本文件中必须包含数据结构信息。
2、文件编辑:实质上是基于现有的数据文本文件生成新的数据文本文件副本,然后在新的数据文本文件副本中写入新的数据值并保存的过程。如果新的数据文本文件副本最终执行了保存,将在同步系统中替代原数据文本文件与表单系统中的相应数据包进行关联;原数据文本文件将进行“文件归档”操作,从而在云文件系统中隐藏。
3、文件删除:实质上是将现有的数据文本文件直接进行“文件归档”,即在云文件系统中隐藏。
第四、数据包中数据格式和数据行相关的创建表单、插入数据、更新数据、删除数据
1、创建表单:根据数据包中的数据格式生成新的表单模板,并将该数据格式作为表单模板的数据格式,生成并记录数据格式唯一标识;
2、插入数据:根据数据包中的数据行(无数据行唯一标识),在指定的表单模板中,创建一条新的数据行记录,生成并记录数据行唯一标识。
3、更新数据:根据数据包中的数据行(有数据行唯一标识),在指定的表单模板中,根据数据行唯一标识来更新一条已有的数据;
4、删除数据:根据数据包中的数据行(有数据行唯一标识),在指定的表单模板中,根据数据行唯一标识来删除一条已有的数据。
需要说明的是,考虑到表单系统自身具备严格的格式要求,且通过表单系统追加唯一标识的方式比较容易实现;而通过云文件系统新建文件、或在新建文件中的添加一条数据值时,由于用户可能使用各种不同的文件编辑工具,未必能够方便的设置唯一标识。因此,在本实施例中,唯一标识只在表单系统一侧生成,然后通过同步系统同步至关联的数据文本文件中。示例性地,唯一标识可基于全球唯一标识方式生成。
第五、同步系统的工作流程
同步系统对相关数据文本文件和数据包的同步过程进行监控,主要包括以下三个自动化的工作流程:关联维护、数据解析与打包、同步操作。具体地:
1、关联维护
关联维护包括三个元操作:判断一个数据包是否是孤立,一个数据文本文件是否孤立,将一个数据包关联到一个数据文本文件;具体地,
将一个数据包关联到一个数据文本文件:通过设置从数据包发起的、指向数据文本文件的指针关系,将数据包关联到相应的数据文本文件;
数据包是否孤立的判断:若该数据包关联一个数据文本文件,则数据包不孤立;否则,数据包孤立;
数据文本文件是否孤立的判断:若存在一个数据包与该数据文本文件关联,则数据文本文件不孤立;否则,数据文本文件孤立;
关联维护的示意图如图3所示。在本实施例中,数据文本文件和数据包之间的关联关系,描述为从数据包发起的、指向数据文本文件的指针关系。示例性地,该指针为数据包关联的数据文本文件的存储物理路径;该存储物理路径直接存储于数据包中,或与数据包具备一一映射关系。一般情况下,建立关联关系的数据文本文件和数据包必须具备严格的对应关系:数据格式唯一标识与数据结构唯一标识一致、数据格式与数据结构一致、数据行与数据值一致、数据行唯一标识与数据值唯一标识一致。但是,在执行同步操作时,为简化操作过程,可能存在以下特殊情况:建立关联之初,数据包和数据文本文件二者之一为空,此时,同步系统会首先设置从数据包发起的、指向数据文本文件的指针关系,建立二者之间的初步关联关系;接着,同步系统通过数据解析或数据打包的操作,对为空的一方进行数据填充,最终使得建立关联关系的数据文本文件和数据包具备严格的对应关系。因此,从同步结果上看,建立关联关系的数据文本文件和数据包之间是具备严格对应关系的。
关联维护工作流程虽然简单,但却是整个双模式存储和同步过程的前提,重要度不言而喻。对于大部分文件操作和数据库操作,在数据解析与打包的工作流程中,参与其中的数据文本文件和数据包必须具备关联关系;在执行同步操作的工作流程中,更是对关联维护有着各种更加细节的要求。如果面临的是孤立的、不具备关联关系的数据文本文件或数据包,无法实现一条数据的双模式存储和同步。也就是说,如果没有特别的说明,本实施例中所提及的数据文本文件和数据包都是一一关联存在的,孤立的个体并不能实现数据的同步(但可能会实现其他一些功能效果,后文会说明时会特别指出)。
注意:一个数据包最多关联到一个数据文本文件。原因在于,在一个数据包已经关联到一个数据文本文件的前提下,执行“将一个数据包关联到另一个数据文本文件”的操作时,新关联的数据文本文件和原有关联的数据文本文件不一致,会导致原有关联的数据文本文件成为孤立的数据文本文件。
2、数据解析与打包
数据解析与打包建立在数据文本文件和数据包之间具备关联关系(存在两种情况:已经关联,或可以在数据解析与打包过程中实现关联)的前提下。如果数据文本文件或者数据包是孤立的,则无法执行数据解析与打包。根据同步系统执行同步过程的方向不同,分为数据解析和数据打包;其中,
数据解析,以数据文本文件中的数据为准、同步到数据包中;示例性地,本实施例提供了一种同步系统执行数据解析过程的方式,流程图如图4所示。具体过程描述如下:
步骤J1:读取数据文本文件中的数据结构唯一标识,判断是否含数据结构唯一标识(即图4中的“结构标识”),若含,则记录该数据结构唯一标识,然后跳转到J2;若不含,直接跳转到J2;
步骤J2:读取数据文本文件中的数据结构信息,并转换数据结构信息为数据格式;
步骤J3:读取数据文本文件中的数据值唯一标识,判断是否含数据值唯一标识(即图4中的“值标识”),若含,则记录数据值唯一标识,然后跳转到J4;若不含,直接跳转到J4;
步骤J4:读取数据文本文件中的数据值,并转换数据值为数据行;
步骤J5:将数据结构唯一标识作为数据格式唯一标识、将数据值唯一标识作为数据行唯一标识,按照数据包的形式组织数据格式唯一标识、数据格式、数据行唯一标识及数据行,得到解析后的数据包。
需要说明的是,在数据解析过程中,数据结构唯一标识和数据值唯一标识可能为空,此时其对应的数据格式唯一标识、数据行唯一标识也为空。
数据打包,以数据包中的数据为准、同步到数据文本文件中;示例性地,本实施例还提供了一种数据打包的方式,示意图如图5。具体过程描述如下:
步骤D1:读取数据包,顺次提取并记录数据格式唯一标识、数据格式信息、数据行唯一标识及数据行;
步骤D2:将数据格式唯一标识作为数据结构唯一标识、将数据行唯一标识作为数据值唯一标识,将数据格式转换为数据结构、数据行转换为数据值,按照数据文本文件的形式组织数据结构唯一标识、数据结构、数据值唯一标识及数据值,得到打包后的数据文本文件。
同样,在数据打包过程中,数据格式唯一标识和数据行唯一标识可能为空,此时其对应的数据结构唯一标识、数据值唯一标识也为空。
3、同步操作
同步操作是指,在同步系统中,云文件系统对数据文本文件进行文件操作时,同步系统会为这些文件操作同步触发对应表单系统中对数据包的数据操作,从而达到数据同步的效果;反之,表单系统对数据包的数据操作也同样会反过来触发云文件系统对数据文本文件进行文件操作。由此可知,云文件系统中的文件操作、表单系统中数据操作均可能触发于用户请求或者同步系统。
需要说明的是,执行云文件系统中的文件操作时,经由同步操作,可能会联动触发表单系统中的数据操作。反之,执行表单系统中的数据操作时,经由同步操作,可能会联动触发云文件系统中的文件操作。从而造成循环调用。因此,为了避免间接引发造成的调用循环,本实施例提出了以下解决方式:
在所述双模式存储及同步系统中,表单系统、云文件系统及同步系统配合实现数据同步:
数据操作指令的接收方除执行数据操作指令中的数据操作外,还判断数据操作是否触发于用户请求,若是,还触发同步系统执行同步操作:同步触发数据操作指令的同步方执行同步于该数据操作的数据操作;
其中,数据操作指令的接收方为云文件系统和表单系统中的一方,数据操作指令的同步方为云文件系统和表单系统中的另一方。这里,云文件系统中执行的数据操作为文件操作,表单系统中执行的数据操作为数据库操作。
需要说明的是,在上述数据同步过程中,若数据操作触发于用户请求,数据操作指令的接收方、同步方都先执行内存层面的数据操作,只有当双方的数据操作均完成后,才会在磁盘上执行实际的数据调整。从而保证云同步系统和表单系统中存储的数据之间的同步。
在具体实施过程中,考虑到表单系统侧的数据操作更为简单、直接,因此,为保证云文件系统与表单系统的数据同步,也为提升双模式存储及同步系统的运行效率;优选以下执行顺序:
若数据操作指令的接收方为云文件系统,则先执行用户请求判断、然后执行相应的文件操作;若数据操作指令的接收方为表单系统,则先执行相应的数据库操作,然后执行相应的用户请求判断;具体地:
云文件系统在执行文件操作时,首先需要判断文件操作触发于用户请求还是触发于同步系统,当文件操作触发于用户请求时,云文件系统根据所述用户请求执行相应的文件操作;并由同步系统执行同步操作:同步触发表单系统对数据包执行相应的数据库操作;当所述文件操作触发于同步系统时,云文件系统直接执行相应的文件操作。
在表单系统在执行数据库操作时,先执行相应的数据库操作,再判断该数据库操作触发于用户请求还是触发于同步系统,当该数据库操作触发于用户请求时,由同步系统执行同步操作:同步触发云文件系统对数据文本文件执行相应的文件操作;当该数据库操作触发于同步系统时,表单系统直接保存相应的数据库操作。
图6为同步操作过程中文件系统、同步系统及表单系统之间的交互示意图。其中,第一幅图为联动中对相互触发操作的检查示意图,第二、三幅图为实际执行效果图。
同步系统的同步操作涉及前面介绍的关联维护、数据解析及数据打包。这些同步操作将通过下列流程图一一说明。
(1)云文件系统-新建数据文本文件
在云文件系统中新建数据文本文件的同步过程如图7所示;具体过程描述如下:
步骤YX1:云文件系统接收文件新建指令,判断所述文件新建指令是否来自用户请求,
若是,根据文件新建指令新建数据文本文件、并存储在云文件系统中;(这里的文件新建存在外部复制、人工填写两种情况,前面已做说明,此处不再赘述);跳转到步骤YX2;
若否,直接根据文件新建指令新建数据文本文件、并存储在云文件系统中,新建数据文本文件完成;(这里的文件新建触发于同步系统);
步骤YX2:同步系统监控到云文件系统中新建的数据文本文件,同步操作开始:
步骤YX21:控制表单系统创建一个空数据包,并将该空数据包关联到该新建的数据文本文件;(关联过程参见关联维护);
步骤YX22:将该新建的数据文本文件解析为数据包,并将该数据包发送至表单系统;(解析过程参见数据解析);
步骤YX3:表单系统处理该数据包,根据数据包包含的内容执行相应的数据库操作,得到数据库操作结果;数据库操作结果为删除数据包,或,数据包已更新到表单系统;
具体的执行过程描述为:
步骤YX31:基于该数据包填充创建的空数据包,得到解析后的数据包;
步骤YX32:读取解析后的数据包中的数据格式唯一标识和数据格式信息,获得相应的表单模板;具体地,
判断数据包中是否包含数据格式唯一标识(即图6中的“格式标识”),若包含,接着判断表单系统中是否存储有与数据包的数据格式一致的表单模板,
若没有,则使用数据包中的数据格式唯一标识、数据格式创建新的表单模板;并跳转到步骤YX33;
若有,查询返回表单模板(已有格式标识),执行步骤YX33;
若不包含,则生成新的数据格式唯一标识,并使用新的数据格式唯一标识、数据包中的数据格式创建表单模板;并跳转到步骤YX33;
步骤YX33:获得表单模板后,判断表单模板是否匹配于数据包中的数据格式,若匹配,接着读取数据包中的数据行唯一标识和数据行信息,在表单模板中执行数据插入或数据更新;若不匹配,删除数据包;并跳转到步骤YX6;
当表单模板匹配于数据包中的数据格式时,具体地,执行:
判断数据包中是否包含数据行唯一标识(即图6中的“数据行标识”),若包含,接着判断表单系统中是否有匹配的数据行,
若没有,则使用给定的数据行唯一标识、数据包中的数据行信息,插入一条新的数据;此时,执行更新一条数据后,数据包已更新到表单系统;
若有,查询返回表单数据行(已有数据行标识),更新一条数据;此时,数据包已更新到表单系统;
若不包含,则生成新的数据行唯一标识,并使用新的数据行唯一标识、数据包中的数据行信息,插入一条新的数据;此时,执行更新一条数据后,数据包已更新到表单系统;
步骤YX4:同步系统监控到数据包已更新到表单系统后,将更新后的数据包打包为数据文本文件后发送至云文件系统;
步骤YX5:云文件系统基于接收到的数据文本文件填充新建的数据文本文件,此时,该新建的数据文本文件为关联状态文件;新建数据文本文件完成;
步骤YX6:同步系统监控到删除数据包后,向云文件系统反馈数据不兼容报错;
步骤YX7:云文件系统接收到数据不兼容报错后,将新建的数据文本文件作为孤立文本存储在云文件系统中;新建数据文本文件完成。
由图7可见,云文件系统中,“新建数据文本文件”的过程中,经由同步操作,可能会联动触发表单系统中的“创建新的表单模版”、“插入一条新数据”和“更新一条数据”操作。同样,“新建数据文本文件”过程可能是用户直接请求,也可能是表单系统中其他操作进行时,由同步系统执行同步操作时间接引发的。为了避免间接引发造成的调用循环,文件新建的一开始,首先要判断当前指令是否来自用户请求;如果不是,执行相应的文件操作即可。该分析过程间接印证了前面中进行用户请求判断的重要性。
需要强调的是,新建的数据文本文件中必须包含数据结构,数据值可以为空,也可以填写完整。如果数据值为空,那同步得到一个数据行为空的表单模板。
为便于本领域技术人员更好地理解本实施例中的方案,现做如下说明:在图7-图13的云文件系统和表单系统中,深色背景的方块才会执行“保存到磁盘”或“落实数据写入数据库”的动作;白色背景方块可以都理解为内存操作。此外,在图7-图13中的同步系统中,深色背景的方块执行的操作与图3-图5中的相应内容保持一致。
(2)云文件系统-编辑数据文本文件
在云文件系统中编辑数据文本文件的同步过程如图8所示;具体过程描述如下:
步骤YB1:云文件系统接收文件编辑指令,判断所述文件编辑指令是否来自用户请求,
若是,编辑数据文本文件执行;跳转到步骤YB2;
若否,直接根据文件编辑指令编辑数据文本文件、并存储在云文件系统中,编辑数据文本文件完成;(这里的文件编辑触发于同步系统);
步骤YB2:同步系统监控到编辑数据文本文件执行时,同步操作开始:
判断待编辑的数据文本文件是否孤立,
若孤立,由云文件系统任意编辑文件数据,得到编辑后的数据文本文件并存储在云文件系统中,该数据文本文件为孤立文件;编辑数据文本文件完成;
若不孤立,同步系统从表单系统中获取关联于该数据文本文件的数据包,打包数据包为数据文本文件后发送至云文件系统;(通过获取关联的数据包,能够保证云文件系统中执行文件编辑的数据为表单系统中存储的最新的数据,以保证二者处理数据的统一性)。
步骤YB3:云文件系统基于接收到的数据文本文件生成待编辑的数据文本文件的副本,有限编辑数据文本文件副本数据,并将编辑后的数据文本文件存储在云文件系统中;
步骤YB4:同步系统将原数据包关联到编辑后的数据文本文件(关联后处于关联状态);解析编辑后的数据文本文件为数据包,并将该数据包发送给表单系统;
步骤YB5:表单系统根据接收到的数据包重新填充关联的数据包的数据行信息,查询返回表单数据行,根据已有数据行唯一标识及数据包的数据行信息,更新一条数据;此时,数据包已更新到表单系统;
步骤YB6:同步系统监控到数据包已更新到表单系统后,向云文件系统反馈同步操作完成;
步骤YB7:云文件系统收到同步操作完成后,编辑后的数据文本文件为关联状态文件,编辑数据文本文件完成。
在图8的流程中需要特别说明两点:
1、数据文本文件(非孤立情况,孤立情况编辑不会联动表单系统)的编辑,实际上是保持原数据文本文件不变,生成一个新的数据文本文件副本,在新的数据文本文件副本中执行数据修改、保存,然后重新将数据包关联到该副本的一个过程。这样的处理方式,在“将原数据包关联到新的数据文本文件副本”过程之后,实际上会产生一个孤立文件——即编辑之前的原始“数据文本文件”。这个文件孤立后不再参与同步系统的同步,但可以很好的留下数据变更的一条历史记录(文件的历史版本),在特殊场合很有用。关于文件的历史版本,描述如下:(1)具有相同结构标识、值标识的所有数据文本文件,构成同一个数据包的历史版本记录;(2)只有与当前数据库中数据包关联的数据文本文件,才是所有历史版本记录中最新的一个;其他的根据文件的最后修改时间排序为不同版本。
2、“有限编辑数据文本文件数据”,其中,“有限编辑”是指用户编辑数据文本文件过程中,只能修改限定格式下的数据内容(即“数据值”)——就是说,该编辑操作不允许改动数据结构,也不能改动结构标识、数据值标识。因为是这样有限的编辑操作,所以表单系统在相应更新数据表单内容时,无需再判断格式标识、格式匹配情况等信息,数据值标识也一定是存在的,所有的变化都集中在使用数据包中的“数据值”信息来对表单系统“更新一条数据”即可。
在本实施例中,对数据文本文件的编辑的有限约束,也是云文件系统针对此类型文件的一个特殊功能——如果脱离云文件系统,数据文本文件在外界可能经由任意的改动,然后再存回本云文件系统,那时候就不会是“文件编辑”的概念,而是再度执行“文件新建”的过程了。
(3)云文件系统-删除数据文本文件
在云文件系统中删除数据文本文件的同步过程如图9所示;具体过程描述如下:
步骤YS1:云文件系统接收文件删除指令,判断所述文件删除指令是否来自用户请求,
若是,删除数据文本文件执行;
若否,直接从云文件系统中删除该数据文本文件,删除数据文本文件完成;
步骤YS2:同步系统监控到删除数据文本文件执行时,同步操作开始:
判断待删除的数据文本文件是否孤立,
若孤立,同步操作完成;跳转到步骤YS4;
若不孤立,同步系统控制表单系统获取关联于该数据文本文件的数据包;
步骤YS3:表单系统查询返回表单数据行,根据已有数据行标识删除一条数据;同步操作完成;
步骤YS4:同步系统向云文件系统反馈同步操作完成;
步骤YS5:云文件系统接收到云文件系统反馈同步操作完成后,删除待删除的数据文本文件,删除数据文本文件完成。
在云文件系统中,有时可能出现一些特殊的文件操作的情况:
1、通过外部数据源拷贝一个数据文本文件到云文件系统中时,新文件与一个已有数据文本文件会可能会出现文件重名现象。在这种情况下强制进行拷贝,会先执行“删除现存在云文件系统中的文件”,然后再执行一次“新建数据文本文件”的过程。
2、通过外部数据源拷贝一个数据文本文件到云文件系统中时,新文件与一个已有数据文本文件会可能会出现数据重复现象:即新数据文本文件内容与现存的数据文本文件记录的数据,具有相同数据结构、数据值标识的情况。在这种情况下,仍然是会按照“新建数据文本文件”的流程执行,但执行的效果,类似于“编辑数据文本文件”——执行后,新文件取代原有数据文本文件,与该标识的数据包建立关联;原有数据文本文件成为孤立文件存储在云文件系统中,作为新数据文本文件的一个历史版本。
(4)表单系统——插入一条新数据
在表单系统中插入一条新数据的同步过程如图10所示;具体过程描述如下:
步骤BC1:在表单系统中插入一条新数据;具体地,
步骤BC11:获取插入数据的目标表单的表单模板及数据格式唯一标识(即图10中的“数据格式标识”);
步骤BC12:在对应表单模板下新建一数据空行及数据行唯一标识(即图10中的“数据行标识”);
步骤BC13:在新建的数据空行中填写数据;
步骤BC2:判断插入新数据的指令是否来自用户请求,
若是,将新建的数据记录为数据包;
若否,保存插入的新数据,完成;
步骤BC3:同步系统监控到该数据包后,同步操作开始:
步骤BC31:控制云文件系统创建一个空内存数据文本文件;
步骤BC32:将数据包关联到空内存数据文本文件;
步骤BC33:数据包打包为数据文本文件,并将该数据文本文件发送给云文件系统;
步骤BC4:云文件系统基于数据文本文件内容填充空内存数据文本文件,完成新建数据文本文件;
步骤BC5:同步系统监控到新建数据文本文件完成后,向表单系统反馈同步操作完成;
步骤BC6:表单系统收到同步操作完成后,保存插入的新数据,完成。
这里,创建表格是隐含在插入新数据过程中的。这样操作会极大的简化用户的使用感受,使创建表格的过程变得更自然:如果是已有格式数据,找到已有对应表格插入;如果是新格式数据,创建表格后插入,这样更顺滑。
(5)表单系统——更新一条数据
在表单系统中更新一条数据的同步过程如图11所示;具体过程描述如下:
步骤BG1:在表单系统中更新一条数据;具体地,
步骤BG11:根据数据格式唯一标记及数据行唯一标识(对应图11中的“数据标识”)获取要更新的数据行;
步骤BG12:根据新的数据更新获取到的数据行;
步骤BG2:判断更新数据的指令是否来自用户请求,
若是,将更新的数据记录为数据包;
若否,保存更新的数据,完成;
步骤BG3:同步系统监控到该数据包后,同步操作开始:
步骤BG31:控制云文件系统创建一个空内存数据文本文件;
步骤BG32:将数据包关联到空内存数据文本文件;
步骤BG33:数据包打包为数据文本文件,并将该数据文本文件发送给云文件系统;
步骤BG4:云文件系统基于数据文本文件内容填充空内存数据文本文件,完成新建数据文本文件;
步骤BG5:同步系统监控到新建数据文本文件完成后,向表单系统反馈同步操作完成;
步骤BC6:表单系统收到同步操作完成后,保存更新的数据,完成。
由图11可见,表单系统中“更新一条数据”的过程中,经由同步操作,可能会联动触发云文件系统中的“新建数据文本文件”操作。还可以看到,在指令是否来自用户直接请求判断成功后,表单更新一条数据后,经由同步系统在云文件系统中联动操作,实际上与“插入一条新数据”的处理完全相同——也就是说,无论是插入新数据还是更新原有数据,在云文件系统中,事实上都是新建了一条与插入或更新后数据一致关联的数据文本文件。参考图8有关云文件系统中编辑数据文本文件的过程可以看到,这与此处过程的处理方式是一致的。
(6)表单系统——删除一条数据
在表单系统中删除一条数据的同步过程如图12所示;具体过程描述如下:
步骤BS1:根据数据格式唯一标记及数据行唯一标识(对应图12中的“数据标识”),获取要删除的数据行,并从表单系统中删除该数据行;
步骤BS2:判断删除数据的指令是否来自用户请求,
若是,将获取到的数据记录为数据包;
若否,删除该数据,完成;
步骤BS3:同步系统监控到该数据包后,同步操作开始:
判断数据包是否孤立,
若孤立,同步操作完成;跳转到步骤BS5;
若不孤立,同步系统控制云文件系统获取与该数据包关联的数据文本文件并删除;同步操作完成;
步骤BS4:同步系统向表单系统反馈同步操作完成;
步骤BS5;表单系统接收到同步操作完成后,删除该数据,完成。
图12描述了表单系统开始的“删除一条数据”的过程,如果该操作用户直接请求开始的,会经由同步系统获取到将要删除的数据包所关联到的数据文本文件,在云文件系统中执行“删除数据文本文件”的操作,然后完成表单系统中对应数据的实际删除。
(7)云文件系统和表单系统同步操作的共性
前面描述的同步操作,有的来自于云文件系统(表示通过文件操作的方式使用双模式数据),有的来自于表单系统(表示通过数据库操作方式使用双模式数据)。由于同步系统的存在,任意方式操作数据,均会引发另一种方式的自动同步过程。共性工作模式如图13所示。
当同步系统的同步操作触发后,同步操作可能成功,也可能失败。不论成败,在同步操作完成后,回到启动同步系统的系统中的操作,该操作有两种可能:
如果同步操作失败,则自身操作也应该放弃执行。
即便同步操作失败(当然,同步操作成功更好),也需要完成自身操作。
特别声明:对于数据的编辑操作,在数据以文本文件模式存储的情景下,始终不直接修改原始数据文本文件,而是以创建新的文件副本记录最新修改数据,保持与数据库模式下存储的数据一致,称之为“增量文件存储”——将这这种方式保存的历史版本数据,作为常规数据库系统中某一条数据的历史追溯依据的方法。如图14所示,数据A所在的表单系统仅记录数据的最新版本,数据库自身不能进行一条数据的多历史版本追溯;但是,可间接通过其关联的数据A的文本文件的功能,实现历史版本追溯;即,数据A存储的文本文件,存储在同一云文本系统中,具有相同的文件特征,可供进行修改时间、修改人等方面的历史检索。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (6)

1.一种数据的双模式存储及同步系统,其特征在于,包括:
基于数据库的表单系统,用于以数据库模式存储数据;
云文件系统,用于以文件模式存储数据;
同步系统,用于实现文件模式与数据库模式存储的数据之间的同步;
在云文件系统中,一条数据存储为一个独立的数据文本文件,所述数据文本文件包括数据结构、数据结构唯一标识、匹配于数据结构的一条数据值及数据值唯一标识;其中,
数据结构,用于以文本形式描述所述数据中的关键字段;
数据结构唯一标识,用于唯一标识所述数据结构;
数据值,用于以文本形式描述所述数据中关键字段的取值;
数据值唯一标识,用于唯一标识所述数据值;
表单系统中的表单模板由数据格式和若干条数据行组成;表单模板中的一条数据唯一对应一个数据包,数据包包括数据格式、数据格式唯一标识、匹配于数据格式的一条数据行、以及数据行唯一标识;其中,
数据格式,用于以表格形式描述所述数据中的关键字段;
数据格式唯一标识,用于唯一标识所述数据格式;
数据行,用于以表格形式描述所述数据中关键字段的取值;
数据行唯一标识,用于唯一标识所述数据行;
在所述双模式存储及同步系统中,表单系统、云文件系统及同步系统配合实现数据同步:
数据操作指令的接收方除执行数据操作指令中的数据操作外,还判断数据操作是否触发于用户请求,若是,还触发同步系统执行同步操作:同步触发数据操作指令的同步方执行同步于该数据操作的数据操作;
其中,数据操作指令的接收方为云文件系统和表单系统中的一方,数据操作指令的同步方为云文件系统和表单系统中的另一方;
云文件系统中执行的数据操作为文件操作,所述文件操作包括:文件新建、文件编辑及文件删除;
表单系统中执行的数据操作为数据库操作,包括:创建表单、插入数据、更新数据及删除数据;
当所述数据操作指令为文件新建指令时,执行:
步骤YX1:云文件系统接收文件新建指令,判断所述文件新建指令是否来自用户请求,
若是,根据文件新建指令新建数据文本文件、并存储在云文件系统中;跳转到步骤YX2;
若否,直接根据文件新建指令新建数据文本文件、并存储在云文件系统中,新建数据文本文件完成;
步骤YX2:同步系统监控到云文件系统中新建的数据文本文件,同步操作开始:
步骤YX21:控制表单系统创建一个空数据包,并将该空数据包关联到该新建的数据文本文件;
步骤YX22:将该新建的数据文本文件解析为数据包,并将该数据包发送至表单系统;
步骤YX3:表单系统处理该数据包,根据数据包包含的内容执行相应的数据库操作,得到数据库操作结果;数据库操作结果为删除数据包,或,数据包已更新到表单系统;
步骤YX31:基于该数据包填充创建的空数据包,得到解析后的数据包;
步骤YX32:读取解析后的数据包中的数据格式唯一标识和数据格式信息,获得相应的表单模板;
判断数据包中是否包含数据格式唯一标识,
若包含,接着判断表单系统中是否存储有与数据包的数据格式一致的表单模板,
若没有,则使用数据包中的数据格式唯一标识、数据格式创建新的表单模板;并跳转到步骤YX33;
若有,查询返回表单模板,执行步骤YX33;
若不包含,则生成新的数据格式唯一标识,并使用新的数据格式唯一标识、数据包中的数据格式创建表单模板;并跳转到步骤YX33;
步骤YX33:获得表单模板后,判断表单模板是否匹配于数据包中的数据格式,若匹配,接着读取数据包中的数据行唯一标识和数据行信息,在表单模板中执行数据插入或数据更新;若不匹配,删除数据包;并跳转到步骤YX6;
当表单模板匹配于数据包中的数据格式时,执行:
判断数据包中是否包含数据行唯一标识,
若包含,接着判断表单系统中是否有匹配的数据行,
若没有,则使用给定的数据行唯一标识、数据包中的数据行信息,插入一条新的数据;此时,执行更新一条数据后,数据包已更新到表单系统;
若有,查询返回表单数据行,更新一条数据;此时,数据包已更新到表单系统;
若不包含,则生成新的数据行唯一标识,并使用新的数据行唯一标识、数据包中的数据行信息,插入一条新的数据;此时,执行更新一条数据后,数据包已更新到表单系统;
步骤YX4:同步系统监控到数据包已更新到表单系统后,将更新后的数据包打包为数据文本文件后发送至云文件系统;
步骤YX5:云文件系统基于接收到的数据文本文件填充新建的数据文本文件,此时,该新建的数据文本文件为关联状态文件;新建数据文本文件完成;
步骤YX6:同步系统监控到删除数据包后,向云文件系统反馈数据不兼容报错;
步骤YX7:云文件系统接收到数据不兼容报错后,将新建的数据文本文件作为孤立文本存储在云文件系统中;新建数据文本文件完成。
2.根据权利要求1所述的数据的双模式存储及同步系统,其特征在于,所述同步系统执行同步于该数据操作的数据操时,执行以下一种或多种操作:
关联维护,包括三个元操作:判断一个数据包是否是孤立,一个数据文本文件是否孤立,将一个数据包关联到一个数据文本文件;
数据解析,以数据文本文件中的数据为准、同步到数据包中;
数据打包,以数据包中的数据为准、同步到数据文本文件中。
3.根据权利要求2所述的数据的双模式存储及同步系统,其特征在于,数据解析的过程为:
步骤J1:读取数据文本文件中的数据结构唯一标识,判断是否含数据结构唯一标识,若含,则记录该数据结构唯一标识,然后跳转到J2;若不含,直接跳转到J2;
步骤J2:读取数据文本文件中的数据结构信息,并转换数据结构信息为数据格式;
步骤J3:读取数据文本文件中的数据值唯一标识,判断是否含数据值唯一标识,若含,则记录数据值唯一标识,然后跳转到J4;若不含,直接跳转到J4;
步骤J4:读取数据文本文件中的数据值,并转换数据值为数据行;
步骤J5:将数据结构唯一标识作为数据格式唯一标识、将数据值唯一标识作为数据行唯一标识,按照数据包的形式组织数据格式唯一标识、数据格式、数据行唯一标识及数据行,得到解析后的数据包。
4.根据权利要求3所述的数据的双模式存储及同步系统,其特征在于,数据打包的过程为:
读取数据包,顺次提取并记录数据格式唯一标识、数据格式信息、数据行唯一标识及数据行;
将数据格式唯一标识作为数据结构唯一标识、将数据行唯一标识作为数据值唯一标识,将数据格式转换为数据结构、数据行转换为数据值,按照数据文本文件的形式组织数据结构唯一标识、数据结构、数据值唯一标识及数据值,得到打包后的数据文本文件。
5.根据权利要求1-4中任一项所述的数据的双模式存储及同步系统,其特征在于,在实现数据同步的过程中,表单系统中的最新数据仅关联于云文件系统中对应的数据文本文件的最新版本,该数据文本文件的历史版本仍存储在云文件系统中。
6.根据权利要求1所述的数据的双模式存储及同步系统,其特征在于,
所述云文件系统具备权限管理功能,所述同步系统在实现文件模式与数据库模式存储的数据之间的同步时,受限于所述云文件系统的权限管理功能。
CN202111436329.9A 2021-11-29 2021-11-29 一种数据的双模式存储及同步系统 Active CN114153659B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111436329.9A CN114153659B (zh) 2021-11-29 2021-11-29 一种数据的双模式存储及同步系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111436329.9A CN114153659B (zh) 2021-11-29 2021-11-29 一种数据的双模式存储及同步系统

Publications (2)

Publication Number Publication Date
CN114153659A CN114153659A (zh) 2022-03-08
CN114153659B true CN114153659B (zh) 2022-09-20

Family

ID=80784388

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111436329.9A Active CN114153659B (zh) 2021-11-29 2021-11-29 一种数据的双模式存储及同步系统

Country Status (1)

Country Link
CN (1) CN114153659B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136231A (zh) * 2011-11-25 2013-06-05 中国移动通信集团江苏有限公司 一种异构数据库间的数据同步方法及系统
CN106161517A (zh) * 2015-03-31 2016-11-23 阿里巴巴集团控股有限公司 通过云文件系统实现云存储接入的方法和装置
CN112632167A (zh) * 2020-12-24 2021-04-09 山东中创软件工程股份有限公司 一种结构化数据的数据转化方法、数据转化系统及相关装置
CN113239070A (zh) * 2021-06-18 2021-08-10 广州小鹏汽车科技有限公司 数据查询方法、装置及电子设备
CN113254535A (zh) * 2021-06-08 2021-08-13 成都新潮传媒集团有限公司 一种mongodb到mysql的数据同步方法、装置及计算机可读存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9805056B2 (en) * 2014-06-24 2017-10-31 Panzura, Inc. Synchronizing file updates between two cloud controllers of a distributed filesystem
CN106407214A (zh) * 2015-08-02 2017-02-15 郑建锋 分布式存储方法与系统
CN105808775A (zh) * 2016-03-30 2016-07-27 北京奎牛科技有限公司 版式文件信息同步入数据库方法与装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136231A (zh) * 2011-11-25 2013-06-05 中国移动通信集团江苏有限公司 一种异构数据库间的数据同步方法及系统
CN106161517A (zh) * 2015-03-31 2016-11-23 阿里巴巴集团控股有限公司 通过云文件系统实现云存储接入的方法和装置
CN112632167A (zh) * 2020-12-24 2021-04-09 山东中创软件工程股份有限公司 一种结构化数据的数据转化方法、数据转化系统及相关装置
CN113254535A (zh) * 2021-06-08 2021-08-13 成都新潮传媒集团有限公司 一种mongodb到mysql的数据同步方法、装置及计算机可读存储介质
CN113239070A (zh) * 2021-06-18 2021-08-10 广州小鹏汽车科技有限公司 数据查询方法、装置及电子设备

Also Published As

Publication number Publication date
CN114153659A (zh) 2022-03-08

Similar Documents

Publication Publication Date Title
US10635658B2 (en) Asynchronous shared application upgrade
US8112396B2 (en) Backup and recovery of integrated linked databases
US7546533B2 (en) Storage and utilization of slide presentation slides
US7107527B2 (en) Method and system for management of structured document and medium having processing program therefor
US7590939B2 (en) Storage and utilization of slide presentation slides
CN104657382B (zh) 用于MySQL主从服务器数据一致性检测的方法和装置
CA2526593C (en) Management and use of data in a computer-generated document
US5687367A (en) Facility for the storage and management of connection (connection server)
US7523141B2 (en) Synchronization operations involving entity identifiers
KR20060095448A (ko) 데이터베이스 내부에 표현된 파일 시스템
CN110287192B (zh) 搜索应用数据处理方法、装置、计算机设备和存储介质
JPH01126736A (ja) データ処理システム
US7519620B2 (en) Replication system, method and program for replicating a plurality of databases into a replica database
CN109726192A (zh) 基于大数据环境实现主数据模型版本与字段分开管理功能的系统及方法
JP2001306372A (ja) 文書管理方法およびその方法を実施するためのプログラムを記憶した記憶媒体
CN114153659B (zh) 一种数据的双模式存储及同步系统
CN114048178B (zh) 一种数据的双模式存储及同步方法
Nestor Toward a persistent object base
CN103180848B (zh) 一种用于复制数据的系统和方法
Leone et al. Concept and architecture of an pervasive document editing and managing system
CN106354704B (zh) 一种基于语块的文档项目编辑系统
CN116450609B (zh) 基于统一语法在异构数据源上建模的方法及设备
Curtis Efficient control of assets in a modern production pipeline
Eder et al. Maintaining temporal warehouse models
Pruckler et al. Achieving physical data independence in hypermedia databases

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant