CN104317817B - 一种组态文件的版本兼容方法及装置 - Google Patents
一种组态文件的版本兼容方法及装置 Download PDFInfo
- Publication number
- CN104317817B CN104317817B CN201410504267.4A CN201410504267A CN104317817B CN 104317817 B CN104317817 B CN 104317817B CN 201410504267 A CN201410504267 A CN 201410504267A CN 104317817 B CN104317817 B CN 104317817B
- Authority
- CN
- China
- Prior art keywords
- data
- configuration file
- segment
- file
- configuration
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种组态文件的版本兼容方法,所述组态文件包括至少一个段数据,所述段数据中的数据内容以BSON的规则进行数据存储;所述方法包括:当采用第一组态文件的格式解读第二组态文件时,若所述第二组态文件中存在所述第一组态文件不涉及的第一数据内容,则所述第一组态文件忽略所述不涉及的第一数据内容,并从所述第二组态文件的每个段数据中解析出自身支持的数据内容;其中,所述第一组态文件与所述第二组态文件为不同版本的组态文件。本发明还公开了一种组态文件的版本兼容装置。
Description
技术领域
本发明涉及工业自动化技术领域,尤其涉及一种组态文件的版本兼容方法及装置。
背景技术
工业自动化组态中的格式文件体系多种多样,根据具体应用场景不同及各系列软件产品的区别存在各类文件格式,常用的有二进制文档、二进制复合文档、文本文档、ini(Initial,初始化)配置文件、XML(Extensible Markup Language,可扩展标记语言)文件等。其中,常用作为大量数据及配置信息存储的主要是二进制文档、二进制复合文档及XML文件。
相对来说,考虑到数据格式及组态的保密性,不同公司的软件产品大部分都是采用二进制文档及二进制复合文档进行组态的记录,然而这两种格式对于软件升级所带来的文件格式变动的兼容性比较差。相对出色一点的软件产品会在升级文件格式时,考虑到对以前版本的一定兼容性,但是工业现场往往存在多个工段、多套装置,同一套工业自动化解决方案历时也会比较久,跨度可能达到好几年,中间会分好几个阶段投产使用,在这些情况中,现场可能会同时使用到不同版本的软件产品,并且会存在一些组态交互使用的情况,遇到这类情况,常规的处理方式是将所有软件产品升级到最新的版本,并对出现兼容性问题的地方进行人工组态修正,但是,这种做法不仅耗时耗力,同时对已经投产的现场会带来很大的扰动,存在一定的安全隐患,并且,部分软件产品由于格式上难以做到兼容,会导致一些组态需要重新配置,这类情况所带来的工作成本尤为庞大。
发明内容
有鉴于此,本发明实施例的主要目的在于提供一种组态文件的版本兼容方法及装置,以实现兼容不同版本组态文件的目的。
为实现上述目的,本发明实施例提供了一种组态文件的版本兼容方法,所述组态文件包括至少一个段数据,所述段数据中的数据内容以BSON的规则进行数据存储;所述方法包括:
当采用第一组态文件的格式解读第二组态文件时,若所述第二组态文件中存在所述第一组态文件不涉及的第一数据内容,则所述第一组态文件忽略所述不涉及的第一数据内容,并从所述第二组态文件的每个段数据中解析出自身支持的数据内容;其中,所述第一组态文件与所述第二组态文件为不同版本的组态文件。
优选地,当采用第一组态文件的格式解读第二组态文件时,若所述第一组态文件中存在所述第二组态文件不涉及的第二数据内容,则所述第一组态文件从所述第二组态文件的每个段数据中解析出自身支持的数据内容,并将所述不涉及的第二数据内容设置为默认值。
优选地,所述组态文件还包括文件头、与每个段数据一一对应的段描述;
所述文件头包括:文件标志、文件标志位、段数量、头部数据大小、文件的最后修改时间、文件类型、文件版本标识、第一预留区域;
所述段描述包括:与段数据对应的段名称、段数据的校验数据、段数据偏移量、段数据的标志位、第一数据段大小、压缩算法标识、加密算法标识、第二预留区域。
优选地,若所述段数据的标志位指示所述段数据被压缩,则当采用第一组态文件解读第二组态文件时,所述第一组态文件利用所述压缩算法标识指示的解压算法解压从所述第二组态文件中解析出的数据内容。
优选地,若所述段数据的标志位指示所述段数据被加密,则当采用第一组态文件解读第二组态文件时,所述第一组态文件利用所述加密算法标识指示的解密算法解密从所述第二组态文件中解析出的数据内容。
优选地,所述段数据包括第二数据段大小和数据内容;
所述第二数据段大小为实际的段数据大小,所述第一数据段大小为压缩前的段数据大小。
本发明实施例还提供了一种组态文件的版本兼容装置,所述组态文件包括至少一个段数据,所述段数据中的数据内容以BSON的规则进行数据存储;所述装置包括:
第一兼容单元,用于当采用第一组态文件的格式解读第二组态文件时,若所述第二组态文件中存在所述第一组态文件不涉及的第一数据内容,则所述第一组态文件忽略所述不涉及的第一数据内容,并从所述第二组态文件的每个段数据中解析出自身支持的数据内容;其中,所述第一组态文件与所述第二组态文件为不同版本的组态文件。
优选地,所述装置还包括:
第二兼容单元,用于当采用第一组态文件的格式解读第二组态文件时,若所述第一组态文件中存在所述第二组态文件不涉及的第二数据内容,则所述第一组态文件从所述第二组态文件的每个段数据中解析出自身支持的数据内容,并将所述不涉及的第二数据内容设置为默认值。
优选地,所述组态文件还包括文件头、与每个段数据一一对应的段描述;
所述文件头包括:文件标志、文件标志位、段数量、头部数据大小、文件的最后修改时间、文件类型、文件版本标识、第一预留区域;
所述段描述包括:与段数据对应的段名称、段数据的校验数据、段数据偏移量、段数据的标志位、第一数据段大小、压缩算法标识、加密算法标识、第二预留区域;
若所述段数据的标志位指示所述段数据被压缩,则当所述第一兼容单元或所述第二兼容单元采用第一组态文件解读第二组态文件时,所述第一组态文件利用所述压缩算法标识指示的解压算法解压从所述第二组态文件中解析出的数据内容;
若所述段数据的标志位指示所述段数据被加密,则当所述第一兼容单元或所述第二兼容单元采用第一组态文件解读第二组态文件时,所述第一组态文件利用所述加密算法标识指示的解密算法解密从所述第二组态文件中解析出的数据内容。
优选地,所述段数据包括第二数据段大小和数据内容;
所述第二数据段大小为实际的段数据大小,所述第一数据段大小为压缩前的段数据大小。
本发明实施例提供的组态文件的版本兼容方法及装置,可以达到识别当前版本数据、只丢弃高版本新增数据的目的,方便于不同版本软件的识别,由于高、低版本软件在理解一份组态文件时可以得到各自支持的信息,甚至于不同软件的不同功能,由此解决了不同版本组态的兼容性问题,包括高版本对低版本的兼容、低版本对高版本的兼容、以及平行版本的兼容。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例组态文件格式示意图;
图2为本发明实施例组态文件的版本兼容方法的流程示意图;
图3为本发明实施例组态文件的版本兼容装置的组成示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,组态通常泛指工业自动化领域中对自动化控制***软硬件及工程信息的配置行为,亦指通过这种配置行为产生的文件和数据集合,本发明中的组态特指通过这种配置行为产生的文件和数据集合。
在介绍本发明实施例中组态文件的版本兼容方法之前,首先介绍所述组态文件的组成:
在本发明实施例中,将所述组态文件分为若干个段(与复合文档不同,这里没有Strorage的概念),即所述组态文件由三个部分组成:一个文件头、至少一个段数据、以及与每个段数据一一对应的段描述,也就是说,每个组态文件有一个文件头,每个段数据都各自对应有一个段描述。
所述文件头包括:文件标志、文件标志位、段数量、头部数据大小、文件的最后修改时间、文件类型、文件版本标识、第一预留区域;
所述段描述包括:与段数据对应的段名称、段数据的校验数据、段数据偏移量、段数据的标志位、第一数据段大小、压缩算法标识、加密算法标识、第二预留区域。
所述段数据包括第二数据段大小和数据内容。
其中,所述段数据中的第二数据段大小为实际的段数据大小,所述段描述中的第一数据段大小为压缩前的段数据大小。
参见图1所示的组态文件格式示意图,其中,文件头大小为64字节,其结构如下:
0~3:文件标志,即组态文件的标志,比如“SDFF(Supcon Data File Format,中控数据文件格式)”;
4~7:文件标志位,一个32bit的Flags,目前未使用;
8~11:段数量,32bit整型数据,用以表示在该SDFF文件中有多少段(段描述或段数据的数量);
12~15:头部数据大小,可选的头部数据大小optional header size,该数据紧接在SDFF文件头之后,通常为0;
16~23:文件的最后修改时间,FILETIME;
24~39:文件类型,使用一个UUID(Universally Unique Identifier,通用唯一识别码)表示;
40~43:文件版本标识,即SDFF文件内部版本标识,用于SDFF文件格式本身的前后兼容;
44~63:第一预留区域,未使用,保留。
在文件头之后,紧接着的就是段数据的描述数据即所述段描述(如果optionalheader size大于0,则在文件头之后还会有其指定大小的附加数据,通常没有这部分数据)。每个段数据的描述数据大小为128字节,所有的段数据的描述数据依次紧密排列,每个段数据的描述数据结构如下:
0~63:与某个段数据对应的段名称,数据类型为wchar_t[32];
64~79:该段数据的校验数据,为段数据的MD5(Message Digest Algorithm MD5,消息摘要算法第五版)值;
80~87;段数据偏移量,指示该段数据在文件中的偏移,无符号64bit;
88~95;该段数据的标志位Flags,用于指示该段是否压缩、是否加密、是否校验等特征;
96~99:第一数据段大小,即该段数据的数据大小,指示该段用户数据的大小(压缩前的大小);
100~103:压缩算法标识,由文件创建者定义,用于指示解压数据所用的算法;
104~107:加密算法标识,由文件创建者定义,用于指示解密数据所用的算法;
108~127:第二预留区域,未使用,保留。
在所有的段描述之后,保存的是各个段的具体数据(即所述至少一个段数据),考虑到IO性能问题,第一个段数据未必紧跟在最后一个段描述的后边。各个段数据的排列顺序也未必和段描述的排列顺序一致。其中,每个段数据的前4个字节表示该段数据的大小(即所述第二数据段大小),这个数据大小不包含这4个字节本身,这个数据大小和相应的段描述中的第一数据段大小可能相同,也可能不同,这个数据的具体大小取决于段数据中的数据内容是否进行了压缩、加密、字节对齐等因素,但无论如何,它代表了该段数据在文件中的实际大小。
以SUPCON的VisualField软件为例,其流程图组态软件运用了上述SDFF作为其文件格式,并通过SDFF的使用作为其组态应用的解决方案。下表为对应文件数据实例:
表1
如上表1描述内容可知:
文件的头4字节固定写“SDFF”;后面4字节未使用;跟着是段数量,表中为“0x5”,表示文件中存在5个段落(即5个段描述和5个段数据);接着是头部数据大小,流程图未使用,为“0”;接下来是文件最后修改时间"2013-7-2513:00:00.500"和文件类型的UUID;其后是SDFF本身的版本号,当前是第一个版本,为“0x1”;后面又是一段保留数据,未使用。
从第64字节开始,就是第一段的段描述信息。首先是64字节的宽字符段名;接着是MD5值,因没有使用到MD5校验,所以这里是“0”;MD5之后是段数据偏移,表中是“0x1000”,换算下来,表示从4096字节开始就是这一段的实际数据;接着的Falgs,第一位表示是否压缩、第二位表示是否加密、第三位表示是否校验,这里只使用了压缩功能,所以为“0x1”;然后是段数据大小,这个大小是压缩前的段数据中的数据内容大小,表中为0x20,即32个字节;跟着是压缩算法标识和加密算法标识,这两项是使用者定义的,这里的压缩算法标识为“0x1”,表示使用了zip压缩算法;没有使用加密,所以加密算法标识为“0”;段描述的最后面是20字节保留数据,未使用。
组态文件中有5个段描述信息,紧挨在一起。随后根据段描述信息中的偏移,可以找到实际的与每个段描述对应的段数据,比如之前的144~151字节的段落偏移是“0x1000”,所以在4096字节的地方能找到真实存储的段数据内容。从第4096字节开始,段落中头4字节表示该段数据中数据内容的实际大小,这里是“0x23”,表示35个字节,需要注意的是,这里的35个字节大小的数据内容是经过压缩的,反而比前面提及的压缩前32个字节要大,这是因为压缩算法是包含一些额外信息的,当压缩数据本身非常小时,可能不会压缩的更小,另外,这里的35个字节不包含表示实际数据内容大小的那4字节,即仅仅表示后面4100字节~4134字节的实际存储数据的大小。
基于上述内容,参见图2,为本发明实施例提供的组态文件的版本兼容方法的流程示意图,所述组态文件包括至少一个段数据,所述段数据中的数据内容以BSON的规则进行数据存储;所述方法包括:
步骤201:采用第一组态文件的格式解读第二组态文件,其中,所述第一组态文件与所述第二组态文件为不同版本的组态文件。
步骤202:当采用第一组态文件的格式解读第二组态文件时,若所述第二组态文件中存在所述第一组态文件不涉及的第一数据内容,则所述第一组态文件忽略所述不涉及的第一数据内容,并从所述第二组态文件的每个段数据中解析出自身支持的数据内容。
步骤203:当采用第一组态文件的格式解读第二组态文件时,若所述第一组态文件中存在所述第二组态文件不涉及的第二数据内容,则所述第一组态文件从所述第二组态文件的每个段数据中解析出自身支持的数据内容,并将所述不涉及的第二数据内容设置为默认值。
首先,对BSON进行介绍,BSON(Binary Serialized Document Format)是BinaryJSON的缩写,一种基于JSON改进的存储格式,它和JSON一样,支持内嵌的文档对象和数组对象。BSON有自己标准的数据类型,具体定义如下:
BSON的解析都是从document开始的,一段BSON的格式,可以看作是一个document,document里面是一个element的列表,每个element可以是不同的数据类型,比如double、string,甚至于document也可以作为一个element存在。 所有的数据类型都是有长度定义的或者明确记录了数据长度的,因此,对于数据列表的快速遍历是可以实现的,这也是实现文档结构兼容性的基础。
在本发明实施例中,每个段数据中的数据内容以BSON的规则进行数据存取,依托BSON的高度自由、可扩展性定义数据存储。籍由BSON对数据的理解,将数据分为string、double、int32、int64、string、binary、document等基本类型,通过对复杂组态的分解,化为基本数据,使用基本数据构架对象关系。图1中,段数据中的数据内容的存取完全按照BSON的方式进行,实际上也是实现了与BSON规格的一种兼容。
段数据中的数据内容是按照BSON标准的,在BSON的理解中数据是以结构化的方式理解的,每个数据都有key、type、value,并能根据类型知道长度,依靠BSON的良好构架,可以做到数据的前后兼容。例如,在表1中,假设版本1中的“DocInfo”段数据存在属性A、B,版本2中的“DocInfo”段数据存在属性A、B、C,则版本1的软件在解读版本2的文件时,依托BSON对存储数据的结构化解析,能够理解A、B属性,并跳过C属性,达到向后兼容的效果。
为了更方便的了解本发明实施例,下面举例说明:
对于BSON在流程图中的应用,以实际的流程图文件为例,拿矩形来说,一个矩形图形可以由left(左)、top(上)、right(右)、bottom(下)进行位置和大小描述,并且矩形有自己的名字name。根据BSON的规则,这里将流程图中的每个图形都作为document进行数据管理,那么一个矩形的数据集合抽象成如下:
这描述的是一个名为rect1的矩形实例,它由五个元素组成,包括一个string类型的数据(name)和四个int32类型的数据(left、top、right、bottom),这是版本V1.0的矩形格式。
在下一个软件版本V2.0中,对上述矩形实例进行了调整,增加了表示颜色的color属性,那么只需要增加一个元素即可,如下:
这里的"color"也是一个int32的值。基于BSON良好的可遍历特性,V1.0版本程序在解读V2.0的文件格式时能够解析出支持的属性元素,并且能跳过"color"元素,即当V1.0对应于第一组态文件、V2.0对应于第二组态文件时,实现了上述步骤202的功能;而V2.0的程序在解读V1.0的文件格式时,则因为不存在"color"获取不到颜色属性而使用默认的颜色设置,即当V2.0对应于第一组态文件、V1.0对应于第二组态文件时,实现了上述步骤203的功能。通过这种处理方式,对于图形对象做到了向前、向后的兼容。
文件格式的改进过程并不只是一味的新增属性元素,随着功能的变化,可能存在属性的减少。比如在下个版本V3.0中,又去掉了"color"属性,如下:
此时,版本V3.0与版本V1.0相同,V3.0版本程序在解读V1.0的文件格式时能够解析出支持的属性元素,V3.0的程序在解读V2.0的文件格式时,则因为不存在"color"获取不到颜色属性而使用默认的颜色设置。可见,BSON的应用解决了属性变化后的识别问题,但是图形对象的属性,事先还是要做好初始值的准备的。
除了属性的增加、减少,属性的使用意义以及数据类型也可能存在一定的变化,比如V4.0的格式如下:
在V4.0中,将矩形的颜色分为前景色、背景色,为了实现对以前版本的兼容,现在将"color"定义为前景色,然后新增"colorBG"作为背景色,这样V2.0还是能够识别"color"的。同时,现在的矩形位置使用string类型存储,现在新增了"leftStr"、"rightStr"、"topStr"、"bottomStr"四个属性,同时出于兼容性考虑,又保留了"left"、"right"、"top"、"bottom"四个属性,便于以前版本的理解。
实际的图形对象格式设计中还会存在一些比较复杂的情况,BSON在这里只是作为一个数据构架存在,由于无法精确预测未来组态文件版本的变化趋势,当前程序的容错性就显得异常重要,可见,BSON良好的数据构架和优异的容错理念实现了本发明的版本兼容性。
可见,本发明实施例提供的组态文件的版本兼容方法,可以达到识别当前版本数据、只丢弃高版本新增数据的目的,方便于不同版本软件的识别,由于高、低版本软件在理解一份组态文件时可以得到各自支持的信息,甚至于不同软件的不同功能,由此解决了不同版本组态的兼容性问题,包括高版本对低版本的兼容、低版本对高版本的兼容、以及平行版本的兼容。
此外,在现有技术中,同一***软件中可能有两个具体软件产品,这些软件在一些应用场景之下又需要使用某些共通的组态,但这些组态又会存在部分差异,现有的二进制文档、二进制复合文档就很难做到这个要求,由于两个软件往往是有各自的组态,所以需要通过一些中间文件进行转储,不仅耗费时间、资源,而且使用起来及不方便。然而,本发明实施例中的组态文件既可以作为转储文件使用,也可以直接替代原文件格式,在两个软件产品的共识上使用同一份组态文件,本发明实施例中的组态文件,其良好的构架和可扩展性,足以支持相同数据段和不同数据段的同时使用。
另外,在现有技术中,XML文件在兼容性上相对比较自由,但是相较于一般的文件较大,比较浪费资源占用,同时XML对部分特定字符有较高的转义要求,除此之外,工业自动化行业的部分组态,存在一定的保密性要求,XML也难以满足。由于在工业现场的组态中,部分组态涉及商业机密,需要得到加密保护,部分信息又需要开放进行沟通,现有常规的做法一般是以文件为单位进行加密,所以在实际使用时是一个复杂的文件集合,包括加密文件、非加密文件等,这类做法不仅将信息进行了分割,同时在组态传输的便利性上带来不便,各套软件产品需要各自不同的文件以做处理,多产品集合使用的情况下对于文件体系管理要求也较高。
基于上述现有技术缺点,在本发明实施例中的组态文件中,每个段数据可以单独进行压缩、加密,即可以同时存在压缩段落、非压缩段落以及加密段落、非加密段落。
压缩算法可以采用通用的无损数据压缩算法(如zip等),文件创建者也可以根据需要自定义压缩算法,即针对不同段数据,支持不同压缩算法及支持自定义压缩算法,从而解决了工业现场组态文件过于庞大的问题。
SDFF文件支持DES(Data Encryption Standard,数据加密算法)等对称加密算法,经过对称加密的文件在打开时需要操作者提供相应的密钥;文件创建者也可以提供自定义的加解密算法,即,针对不同的段数据,允许采用不同的加密方式及允许使用自定义加密算法。通过只对需要加密的段数据进行加密,有利于***息和保密信息的区别,使得组态信息可以在实现保密的基础上做到部分信息公开化。也就是说,本发明实施例中的组态文件通过分段管理以及加密层级的区分实现了公共信息、密级信息分开管理的功能。
压缩和加密的特征通常是针对一个段数据的,一个段数据可以仅被压缩而不加密,也可以仅被加密而不被压缩;但当一个段数据既被压缩又被加密时,需要先解压缩,然后再进行解密,当然,在创建段数据时相应的需要先加密再压缩存储。基于上述内容,本发明实施例还包括:
若所述段数据的标志位指示所述段数据被压缩,则当采用第一组态文件解读第二组态文件时,所述第一组态文件利用所述压缩算法标识指示的解压算法解压从所述第二组态文件中解析出的数据内容。
若所述段数据的标志位指示所述段数据被加密,则当采用第一组态文件解读第二组态文件时,所述第一组态文件利用所述加密算法标识指示的解密算法解密从所述第二组态文件中解析出的数据内容。
需要说明的是,以上实施例为流程图使用SDFF作为组态应用的解决方案,相应的,对于工业组态应用来说,报警的组态、趋势的组态、位号的组态等,都能以SDFF为基础 ,形成对应的解决方案,实现分段管理、加密压缩、前后兼容等功能。
参见图3,为本发明实施例提供的组态文件的版本兼容装置的组成示意图,所述组态文件包括至少一个段数据,所述段数据中的数据内容以BSON的规则进行数据存储;所述装置包括:
文件解读单元301,用于采用第一组态文件的格式解读第二组态文件,其中,所述第一组态文件与所述第二组态文件为不同版本的组态文件。
第一兼容单元302,用于当采用第一组态文件解的格式读第二组态文件时,若所述第二组态文件中存在所述第一组态文件不涉及的第一数据内容,则所述第一组态文件忽略所述不涉及的第一数据内容,并从所述第二组态文件的每个段数据中解析出自身支持的数据内容。
所述装置还包括:
第二兼容单元303,用于当采用第一组态文件的格式解读第二组态文件时,若所述第一组态文件中存在所述第二组态文件不涉及的第二数据内容,则所述第一组态文件从所述第二组态文件的每个段数据中解析出自身支持的数据内容,并将所述不涉及的第二数据内容设置为默认值。
其中,所述组态文件还包括文件头、与每个段数据一一对应的段描述;
所述文件头包括:文件标志、文件标志位、段数量、头部数据大小、文件的最后修改时间、文件类型、文件版本标识、第一预留区域;
所述段描述包括:与段数据对应的段名称、段数据的校验数据、段数据偏移量、段数据的标志位、第一数据段大小、压缩算法标识、加密算法标识、第二预留区域;
若所述段数据的标志位指示所述段数据被压缩,则当所述第一兼容单元302或所述第二兼容单元303采用第一组态文件解读第二组态文件时,所述第一组态文件利用所述压缩算法标识指示的解压算法解压从所述第二组态文件中解析出的数据内容;
若所述段数据的标志位指示所述段数据被加密,则当所述第一兼容单元302或所述第二兼容单元303采用第一组态文件解读第二组态文件时,所述第一组态文件利用所述加密算法标识指示的解密算法解密从所述第二组态文件中解析出的数据内容。
其中,所述段数据包括第二数据段大小和数据内容;
所述第二数据段大小为实际的段数据大小,所述第一数据段大小为压缩前的段数据大小。
本发明实施例提供的组态文件的版本兼容装置,可以达到识别当前版本数据、只丢弃高版本新增数据的目的,方便于不同版本软件的识别,由于高、低版本软件在理解一份组态文件时可以得到各自支持的信息,甚至于不同软件的不同功能,由此解决了不同版本组态的兼容性问题,包括高版本对低版本的兼容、低版本对高版本的兼容、以及平行版本的兼容。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本发明各个实施例或者实施例的某些部分所述的方法。
需要说明的是,对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种组态文件的版本兼容方法,其特征在于,所述组态文件包括至少一个段数据,所述段数据中的数据内容以BSON的规则进行数据存储;所述方法包括:
当采用第一组态文件的格式解读第二组态文件时,若所述第二组态文件中存在所述第一组态文件不涉及的第一数据内容,则所述第一组态文件忽略所述不涉及的第一数据内容,并从所述第二组态文件的每个段数据中解析出自身支持的数据内容;其中,所述第一组态文件与所述第二组态文件为不同版本的组态文件;
当采用第一组态文件的格式解读第二组态文件时,若所述第一组态文件中存在所述第二组态文件不涉及的第二数据内容,则所述第一组态文件从所述第二组态文件的每个段数据中解析出自身支持的数据内容,并将所述不涉及的第二数据内容设置为默认值。
2.根据权利要求1所述的方法,其特征在于,所述组态文件还包括文件头、与每个段数据一一对应的段描述;
所述文件头包括:文件标志、文件标志位、段数量、头部数据大小、文件的最后修改时间、文件类型、文件版本标识、第一预留区域;
所述段描述包括:与段数据对应的段名称、段数据的校验数据、段数据偏移量、段数据的标志位、第一数据段大小、压缩算法标识、加密算法标识、第二预留区域。
3.根据权利要求2所述的方法,其特征在于,
若所述段数据的标志位指示所述段数据被压缩,则当采用第一组态文件解读第二组态文件时,所述第一组态文件利用所述压缩算法标识指示的解压算法解压从所述第二组态文件中解析出的数据内容。
4.根据权利要求2所述的方法,其特征在于,
若所述段数据的标志位指示所述段数据被加密,则当采用第一组态文件解读第二组态文件时,所述第一组态文件利用所述加密算法标识指示的解密算法解密从所述第二组态文件中解析出的数据内容。
5.根据权利要求2所述的方法,其特征在于,所述段数据包括第二数据段大小和数据内容;
所述第二数据段大小为实际的段数据大小,所述第一数据段大小为压缩前的段数据大小。
6.一种组态文件的版本兼容装置,其特征在于,所述组态文件包括至少一个段数据,所述段数据中的数据内容以BSON的规则进行数据存储;所述装置包括:
第一兼容单元,用于当采用第一组态文件的格式解读第二组态文件时,若所述第二组态文件中存在所述第一组态文件不涉及的第一数据内容,则所述第一组态文件忽略所述不涉及的第一数据内容,并从所述第二组态文件的每个段数据中解析出自身支持的数据内容;其中,所述第一组态文件与所述第二组态文件为不同版本的组态文件;
第二兼容单元,用于当采用第一组态文件的格式解读第二组态文件时,若所述第一组态文件中存在所述第二组态文件不涉及的第二数据内容,则所述第一组态文件从所述第二组态文件的每个段数据中解析出自身支持的数据内容,并将所述不涉及的第二数据内容设置为默认值。
7.根据权利要求6所述的装置,其特征在于,所述组态文件还包括文件头、与每个段数据一一对应的段描述;
所述文件头包括:文件标志、文件标志位、段数量、头部数据大小、文件的最后修改时间、文件类型、文件版本标识、第一预留区域;
所述段描述包括:与段数据对应的段名称、段数据的校验数据、段数据偏移量、段数据的标志位、第一数据段大小、压缩算法标识、加密算法标识、第二预留区域;
若所述段数据的标志位指示所述段数据被压缩,则当所述第一兼容单元或所述第二兼容单元采用第一组态文件解读第二组态文件时,所述第一组态文件利用所述压缩算法标识指示的解压算法解压从所述第二组态文件中解析出的数据内容;
若所述段数据的标志位指示所述段数据被加密,则当所述第一兼容单元或所述第二兼容单元采用第一组态文件解读第二组态文件时,所述第一组态文件利用所述加密算法标识指示的解密算法解密从所述第二组态文件中解析出的数据内容。
8.根据权利要求7所述的装置,其特征在于,所述段数据包括第二数据段大小和数据内容;
所述第二数据段大小为实际的段数据大小,所述第一数据段大小为压缩前的段数据大小。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410504267.4A CN104317817B (zh) | 2014-09-26 | 2014-09-26 | 一种组态文件的版本兼容方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410504267.4A CN104317817B (zh) | 2014-09-26 | 2014-09-26 | 一种组态文件的版本兼容方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104317817A CN104317817A (zh) | 2015-01-28 |
CN104317817B true CN104317817B (zh) | 2018-05-18 |
Family
ID=52373049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410504267.4A Active CN104317817B (zh) | 2014-09-26 | 2014-09-26 | 一种组态文件的版本兼容方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104317817B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108241578B (zh) * | 2016-12-27 | 2021-05-07 | 上海汽车集团股份有限公司 | 汽车电控单元软件兼容性检查方法及装置 |
CN107832356A (zh) * | 2017-10-23 | 2018-03-23 | 成都佳发安泰科技股份有限公司 | 一种数据文件***、生成及显示试题文件的方法 |
CN110362335B (zh) * | 2019-07-22 | 2020-10-30 | 珠海格力电器股份有限公司 | 处理组态项目的方法、服务器和*** |
CN111240716A (zh) * | 2020-01-08 | 2020-06-05 | 福建升腾资讯有限公司 | 一种快捷的文件打包方法、***、设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101008894A (zh) * | 2007-01-26 | 2007-08-01 | 华为技术有限公司 | 实现***新旧版本兼容的方法及装置 |
CN101286881A (zh) * | 2008-05-16 | 2008-10-15 | 中兴通讯股份有限公司 | 一种实现基站软件配置数据多版本兼容的装置及应用 |
CN102426518A (zh) * | 2011-04-20 | 2012-04-25 | 重庆新世杰电气股份有限公司 | 一种实现软件版本兼容的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7337311B2 (en) * | 2003-11-18 | 2008-02-26 | Giga-Byte Technology Co., Ltd. | Method for controlling upgrade of firmware |
-
2014
- 2014-09-26 CN CN201410504267.4A patent/CN104317817B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101008894A (zh) * | 2007-01-26 | 2007-08-01 | 华为技术有限公司 | 实现***新旧版本兼容的方法及装置 |
CN101286881A (zh) * | 2008-05-16 | 2008-10-15 | 中兴通讯股份有限公司 | 一种实现基站软件配置数据多版本兼容的装置及应用 |
CN102426518A (zh) * | 2011-04-20 | 2012-04-25 | 重庆新世杰电气股份有限公司 | 一种实现软件版本兼容的方法 |
Non-Patent Citations (1)
Title |
---|
文档格式兼容性和可扩展性;Paul Lorimer 等;《北京信息科技大学学报》;20101215;第25卷(第S2期);16-22 * |
Also Published As
Publication number | Publication date |
---|---|
CN104317817A (zh) | 2015-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI709059B (zh) | 檔案打包、檔案包解包方法、裝置及網路設備 | |
CN101646995B (zh) | 用于存储管理器的数据流过滤器和插件 | |
CN104317817B (zh) | 一种组态文件的版本兼容方法及装置 | |
KR100859162B1 (ko) | 암호화된 칼럼을 포함하는 데이터베이스에서의 쿼리의 암호화 변조를 통한 사용자 쿼리 처리 장치 및 방법 | |
CN103400064B (zh) | 用于文件加密和解密的方法和设备 | |
CN103577762B (zh) | 一种安卓应用分发体系内的渠道标记***及方法 | |
CN104166936B (zh) | 一种电子合同存储和验证方法 | |
CN101826112B (zh) | 表单数据存储与读取方法、装置及*** | |
WO2007065353A1 (fr) | Systeme et procede de traitement de documents | |
CN101164069A (zh) | 用于检测元数据的篡改的方法和装置 | |
CN1979511B (zh) | 一种文档数据安全管理***和方法 | |
CN106067874B (zh) | 一种将数据记录至服务器端的方法、终端和服务器 | |
CN1941691B (zh) | 生成用于检测在处理期间加密数据的虚假改造的数据的设备及方法 | |
WO2007065357A1 (fr) | Système et procédé de traitement de documents | |
CN102047239A (zh) | 定义、分发以及呈现设备体验 | |
CN110598193B (zh) | 一种审计离线文档管理*** | |
CN105656889A (zh) | WebApp的发布方法、服务器及客户端 | |
CN102682072A (zh) | 多媒体文档的数据处理方法及*** | |
CN109376119A (zh) | 一种创建磁盘镜像文件加密快照、使用的方法及存储介质 | |
CN111901105B (zh) | 一种基于UEFI架构EDK2支持Openssl算法的方法与设备 | |
CN105760202A (zh) | 服务器、计算设备、软件压缩包处理装置及方法 | |
CN112988740B (zh) | 一种基于多个数据源的配电网数据收纳方法 | |
CN111414341B (zh) | 一种物联网环境下的数据归一化描述方法 | |
US20180019977A1 (en) | Multi-layered data security | |
CN111130788B (zh) | 数据处理方法和***、数据读取方法和iSCSI服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |