发明内容
本发明的主要目的为提供一种可靠性高、读写效率高的兼容程序版本参数配置方法和装置。
本发明提出一种兼容程序版本参数配置方法,包括步骤:
在配置文件队列中,将更新时间最晚且数据完整的配置文件中所有参数加载至缓存中;
在待写入参数或待填充参数的参数格式与所述缓存中对应参数的参数格式相匹配时,直接进行读写操作;
在待写入参数或待填充参数的参数格式与所述缓存中对应参数的参数格式不匹配时,调整所述缓存中对应参数的参数格式后,再进行读写操作。
优选地,所述参数格式包括参数长度,所述在待写入参数或待填充参数的参数格式与所述缓存中对应参数的参数格式相匹配时,直接进行读写操作的步骤具体包括:
在所述待写入参数的参数长度等于或小于所述缓存中对应参数的参数长度时,将所述待写入参数的数据内容更新至所述缓存的对应参数中;
在所述待填充参数的参数长度等于或大于所述缓存中对应参数的参数长度时,输出所述缓存中对应参数的数据内容至所述待填充参数中。
优选地,所述在待写入参数或待填充参数的参数格式与所述缓存中对应参数的参数格式不匹配时,调整所述缓存中对应参数的参数格式后,再进行读写操作的步骤具体包括:
在所述待写入参数的参数长度大于所述缓存中对应参数的参数长度时,根据所述待写入参数的参数长度,增加所述缓存中对应参数的参数长度,并将所述待写入参数的数据内容更新至所述缓存的对应参数中;
在所述待填充参数的参数长度小于所述缓存中对应参数的参数长度时,根据所述待填充参数的参数长度,输出所述缓存中对应参数的数据内容至所述待填充参数中。
优选地,所述参数格式包括参数ID,所述在待写入参数或待填充参数的参数格式与所述缓存中对应参数的参数格式不匹配时,调整所述缓存中对应参数的参数格式后,再进行读写操作的步骤具体还包括:
当所述缓存中没有对应于所述待写入参数的参数ID时,将所述待写入参数的参数ID和数据内容加载至所述缓存中;
当所述缓存中没有对应于所述待填充参数的参数ID时,输出空数据至所述待填充参数中。
优选地,所述兼容程序版本参数配置方法,还包括步骤:
当所述缓存中的参数有更新时,根据预设的刷新时间,将所述缓存中的所有参数加载至更新时间最早的配置文件中。
本发明还提出一种兼容程序版本参数配置装置,包括:
缓存加载模块,用于在配置文件队列中,将更新时间最晚且数据完整的配置文件中所有参数加载至缓存中;
参数匹配模块,用于在待写入参数或待填充参数的参数格式与所述缓存中对应参数的参数格式相匹配时,直接进行读写操作;
参数调整模块,用于在待写入参数或待填充参数的参数格式与所述缓存中对应参数的参数格式不匹配时,调整所述缓存中对应参数的参数格式后,再进行读写操作。
优选地,所述参数格式包括参数长度,所述参数匹配模块具体包括:
写参数匹配单元,用于在所述待写入参数的参数长度等于或小于所述缓存中对应参数的参数长度时,将所述待写入参数的数据内容更新至所述缓存的对应参数中;
读参数匹配单元,用于在所述待填充参数的参数长度等于或大于所述缓存中对应参数的参数长度时,输出所述缓存中对应参数的数据内容至所述待填充参数中。
优选地,所述参数调整模块具体包括:
写参数调整单元,用于在所述待写入参数的参数长度大于所述缓存中对应参数的参数长度时,根据所述待写入参数的参数长度,增加所述缓存中对应参数的参数长度,并将所述待写入参数的数据内容更新至所述缓存的对应参数中;
读参数调整单元,用于在所述待填充参数的参数长度小于所述缓存中对应参数的参数长度时,根据所述待填充参数的参数长度,输出所述缓存中对应参数的数据内容至所述待填充参数中。
优选地,所述参数格式包括参数ID,
所述写参数调整单元还用于,当所述缓存中没有对应于所述待写入参数的参数ID时,将所述待写入参数的参数ID和数据内容加载至所述缓存中;
所述读参数调整单元还用于,当所述缓存中没有对应于所述待填充参数的参数ID时,输出空数据至所述待填充参数中。
优选地,所述兼容程序版本参数配置装置,还包括刷新模块,用于当所述缓存中的参数有更新时,根据预设的刷新时间,将所述缓存中的所有参数加载至更新时间最早的配置文件中。
本发明通过多个配置文件交替读写的方式,有效提高配置文件中配置参数的可靠性,并根据不同版本的参数格式要求,动态自适应的调整配置参数的参数格式,实现对不同版本程序的兼容。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1为本发明一实施例中兼容程序版本参数配置方法的流程图,该实施例提到的兼容程序版本参数配置方法,包括:
步骤S10,在配置文件队列中,将更新时间最晚且数据完整的配置文件中所有参数加载至缓存中;
本实施例的配置文件队列中包括多个配置文件,通过多个配置文件交替读写的方式,在对其中一个配置文件进行读写的过程中,当发生系统断电或掉线造成配置文件数据损坏时,在系统下次启动并进行读写操作时,选取数据未损坏的其他配置文件,以有效提高配置文件中配置参数的可靠性。其中,更新时间最晚的配置文件即为设备中配置参数版本最高的配置文件,该版本的配置参数最接近于已更新的程序版本,进一步确保参数配置的顺利进行。
步骤S20,判断待写入参数或待填充参数的参数格式与缓存中对应参数的参数格式是否匹配,如果是,则执行步骤S30;如果否,则执行步骤S40;
本实施例中,当系统需要对某一配置参数进行读写时,为了避免读写出错,需要事先判断缓存中对应参数的参数格式能够满足当前系统运行程序版本的要求,即判断缓存中对应参数的参数格式与当前系统运行程序版本的参数格式要求是否匹配。
步骤S30,直接进行读写操作;
通常情况下,在当前运行程序的版本与配置参数的版本一致时,其参数格式是相匹配的;在写参数过程中,如果当前运行程序的版本低于配置参数的版本,由于较高的版本通常能够兼容较低的版本,因此配置参数的参数格式也能够满足当前运行程序的参数格式要求,其参数格式也是相匹配的;在读参数过程中,如果当前运行程序的版本高于配置参数的版本,由于较高的版本通常能够兼容较低的版本,因此配置参数的参数格式也能够满足当前运行程序的参数格式要求,其参数格式也是相匹配的。
步骤S40,调整缓存中对应参数的参数格式后,再进行读写操作。
在写参数过程中,如果当前运行程序的版本高于配置参数的版本时,由于较高版本的运行程序中新增加了一些功能,则较低版本的配置参数中找不到这些新增功能对应的参数;此外,当较高版本的运行程序中某些功能被升级后,其对应参数的参数格式随之发生变化,虽然在设备已有的配置参数中能够找到与上述功能对应的参数,但其参数格式却无法满足较高版本程序的参数格式要求,造成两个版本的配置参数无法兼容,系统无法正常写配置参数。在读参数过程中,则恰好相反。
本实施例中对参数格式是否匹配的判断方法,可通过对参数ID的一致性进行判断,例如,当版本相同时,各参数ID一一对应,参数ID数量相同;当运行程序版本低于设备已存在的配置参数版本时,运行程序中各参数ID均能够在设备配置文件中找到,运行程序的参数ID数量小于设备配置参数ID数量;当运行程序版本高于设备已存在的配置参数版本时,设备配置文件中无法找到运行程序中某些新增功能对应的参数ID,运行程序的参数ID数量大于设备配置参数ID数量。或通过对参数长度的一致性进行判断,例如,当版本相同时,参数长度也相同;当运行程序版本低于设备已存在的配置参数版本时,运行程序要求的参数长度小于设备配置参数长度;当运行程序版本高于设备已存在的配置参数版本时,运行程序要求的参数长度大于设备配置参数长度。或预先在配置参数中设置版本识别标识符,每一个版本识别标识符对应一个版本,通过对版本识别标识符进行版本高低的判断。
如图2所示,图2为本发明一实施例的兼容程序版本参数配置方法中加载配置文件参数的步骤流程图,步骤S10具体包括:
步骤S11,获取配置文件队列中所有配置文件的文件头信息,文件头信息包括更新序号G和校验码;
本实施例中,更新序号G对应于配置文件的更新时间,例如,按照更新时间的先后顺序从小到大依次排列。校验码表示配置文件中数据的完整性,当系统断电或掉线造成配置文件数据损坏时,该配置文件中会出现无效的校验码,不可对该配置文件中的数据进行读写,以避免系统运行错误,有效提高配置文件中参数数据的可靠性。
步骤S12,比较更新序号G,获取最大更新序号G(i)对应的配置文件的校验码;
本实施例中,更新序号最大,即更新时间最晚,由于更新时间最晚的配置文件中配置参数的版本最高,最接近于当前程序版本,因此可进一步确保参数配置的顺利进行。
步骤S13,验证校验码是否有效,如果否,则执行14;如果是,则执行15;
步骤S14,获取G(i+1)对应的配置文件的校验码,执行步骤S13;
步骤S15,将该配置文件中所有参数加载至缓存中。
本实施例为避免缓存加载已损坏的配置文件参数数据,通过有效的验证码识别参数数据的完整性,选取数据未损坏的配置文件进行加载,以有效提高配置文件中配置参数的可靠性。
如图3所示,图3为本发明一实施例一实施方案的兼容程序版本参数配置方法中写参数的步骤流程图,其中,参数格式包括参数长度L。
步骤S20具体包括:
步骤S21,判断待写入参数的参数长度L1是否小于或等于缓存中对应参数的参数长度L2,如果是,则执行步骤S31;如果否,则执行步骤S41;
步骤S30具体包括:
步骤S31,将待写入参数的数据内容更新至缓存的对应参数中;
步骤S40具体包括:
步骤S41,根据待写入参数的参数长度,增加缓存中对应参数的参数长度,并将待写入参数的数据内容更新至缓存的对应参数中。
本实施例在写参数操作过程中对参数长度的一致性进行判断。当版本相同时,参数长度也相同,待写入参数的数据内容可直接写入缓存的对应参数中。当运行程序版本低于设备已存在的配置参数版本时,运行程序中待写入参数的参数长度小于设备配置参数长度,即设备配置参数有足够的空间存储待写入参数的数据内容,因此,较高的版本通常能够兼容较低的版本,待写入参数的数据内容也可直接写入缓存的对应参数中。当运行程序版本高于设备已存在的配置参数版本时,运行程序中待写入参数的参数长度大于设备配置参数长度,此时,如果将待写入参数的数据内容直接写入缓存的对应参数,则会造成待写入参数的部分数据丢失,因此需要将缓存中对应参数的参数长度增加到与待写入参数的参数长度一致,通过动态自适应的调整配置参数的参数格式,实现对不同版本程序的兼容。
如图4所示,图4为本发明一实施例另一实施方案的兼容程序版本参数配置方法中写参数的步骤流程图,其中,参数格式还包括参数ID;
步骤S20具体还包括:
步骤S22,判断缓存中是否存在对应于待写入参数的参数ID,如果是,则执行步骤S21;如果否,则执行步骤S42;
步骤S40具体还包括:
步骤S42,将待写入参数的参数ID和数据内容加载至缓存中。
本实施例在写参数操作过程中对参数ID的一致性进行判断。当运行程序版本高于设备已存在的配置参数版本时,由于当前程序新增加了一些功能,缓存中无法找到对应于这些新增功能的参数ID,则无法完成正常的写参数操作。因此,需将待写入参数的参数ID和数据内容加载至缓存中,以完成对设备配置参数的参数格式动态自适应调整,实现对不同版本程序的写操作兼容性。
如图5所示,图5为本发明一实施例一实施方案的兼容程序版本参数配置方法中读参数的步骤流程图,其中,参数格式包括参数长度。
步骤S20具体包括:
步骤S23,判断待写入参数的参数长度L3是否大于或等于缓存中对应参数的参数长度L2,如果是,则执行步骤S33;如果否,则执行步骤S43;
步骤S30具体包括:
步骤S33,输出缓存中对应参数的数据内容至待填充参数中;
步骤S40具体包括:
步骤S43,根据待填充参数的参数长度,输出缓存中对应参数的数据内容至待填充参数中。
本实施例在读参数操作过程中对参数长度的一致性进行判断。当版本相同时,参数长度也相同,可直接读取缓存中对应参数中的数据内容填充至待填充参数中。当运行程序版本高于设备已存在的配置参数版本时,运行程序中待填充参数的参数长度大于设备配置参数长度,即待填充参数有足够的空间存储设备配置参数的数据内容,因此,较高的版本通常能够兼容较低的版本,也可直接读取缓存中对应参数的数据内容填充至待填充参数中,待填充参数中多余的部分可采用默认数据进行填充。当运行程序版本低于设备已存在的配置参数版本时,运行程序中待填充参数的参数长度小于设备配置参数长度,此时,如果直接读取缓存中对应参数的数据内容填充至待填充参数中,则会超出待填充参数的存储空间,造成参数读取错误,此时,只需要将缓存中对应参数的前半部分数据内容填充至待填充参数中即可,以完成对设备配置参数的参数格式动态自适应调整,实现对不同版本程序的写操作兼容性。
如图6所示,图6为本发明一实施例另一实施方案的兼容程序版本参数配置方法中读参数的步骤流程图,其中,参数格式还包括参数ID。
步骤S20具体还包括:
步骤S24,判断缓存中是否存在对应于待填充参数的参数ID,如果是,则执行步骤S23;如果否,则执行步骤S44;
步骤S40具体还包括:
步骤S44,输出空数据至待填充参数中。
本实施例在读参数操作过程中对参数ID的一致性进行判断。当运行程序版本高于设备已存在的配置参数版本时,由于当前程序新增加了一些功能,缓存中无法找到对应于这些新增功能的参数ID,即缓存中没有这些新增功能参数ID的相关数据,因此,向待填充参数返回空数据,例如全0数据,作为提示信息。
如图7所示,图7为本发明另一实施例中兼容程序版本参数配置方法的流程图,该实施例的兼容程序版本参数配置方法还包括:
步骤S50,当缓存中的参数有更新时,根据预设的刷新时间,将缓存中的所有参数加载至更新时间最早的配置文件中。
本实施例通过定时刷新的方式更新配置文件,即类似于定时备份操作,减少了备份次数,提高了读写效率。同时,本实施例并未新增加备份文件,而是直接将缓存中的参数加载到配置文件队列中已存在的配置文件中,有效减少了系统存储空间。
如图8所示,图8为本发明一实施例中兼容程序版本参数配置装置的结构示意图,该实施例提到兼容程序版本参数配置装置,包括:
缓存加载模块10,用于在配置文件队列中,将更新时间最晚且数据完整的配置文件中所有参数的数据内容加载至缓存中;
参数匹配模块20,用于在待写入参数或待填充参数的参数格式与缓存中对应参数的参数格式相匹配时,直接进行读写操作;
参数调整模块30,用于在待写入参数或待填充参数的参数格式与缓存中对应参数的参数格式不匹配时,调整缓存中对应参数的参数格式后,再进行读写操作。
本实施例的配置文件队列中包括多个配置文件,通过多个配置文件交替读写的方式,在对其中一个配置文件进行读写的过程中,当发生系统断电或掉线造成配置文件数据损坏时,在系统下次启动并进行读写操作时,缓存加载模块10选取数据未损坏的其他配置文件,以有效提高配置文件中配置参数的可靠性。其中,更新时间最晚的配置文件即为设备中配置参数版本最高的配置文件,该版本的配置参数最接近于已更新的程序版本,进一步确保参数配置的顺利进行。
当系统需要对某一配置参数进行读写时,为了避免读写出错,需要事先判断缓存中对应参数的参数格式能够满足当前系统运行程序版本的要求,即判断缓存中对应参数的参数格式与当前系统运行程序版本的参数格式要求是否匹配。通常情况下,在当前运行程序的版本与配置参数的版本一致时,其参数格式是相匹配的;在写参数过程中,如果当前运行程序的版本低于配置参数的版本,由于较高的版本通常能够兼容较低的版本,因此配置参数的参数格式也能够满足当前运行程序的参数格式要求,其参数格式也是相匹配的;在读参数过程中,如果当前运行程序的版本高于配置参数的版本,由于较高的版本通常能够兼容较低的版本,因此配置参数的参数格式也能够满足当前运行程序的参数格式要求,其参数格式也是相匹配的。上述情况可以直接通过参数匹配模块20进行读写参数操作。在写参数过程中,如果当前运行程序的版本高于配置参数的版本时,由于较高版本的运行程序中新增加了一些功能,则较低版本的配置参数中找不到这些新增功能对应的参数;此外,当较高版本的运行程序中某些功能被升级后,其对应参数的参数格式随之发生变化,虽然在设备已有的配置参数中能够找到与上述功能对应的参数,但其参数格式却无法满足较高版本程序的参数格式要求,造成两个版本的配置参数无法兼容,系统无法正常写配置参数。在读参数过程中,则恰好相反。此时,需要通过参数调整模块30对缓存中参数的格式进行调整,使其能够兼容程序版本的需求。
本实施例中对参数格式是否匹配的判断方法,可通过对参数ID的一致性进行判断,例如,当版本相同时,各参数ID一一对应,参数ID数量相同;当运行程序版本低于设备已存在的配置参数版本时,运行程序中各参数ID均能够在设备配置文件中找到,运行程序的参数ID数量小于设备配置参数ID数量;当运行程序版本高于设备已存在的配置参数版本时,设备配置文件中无法找到运行程序中某些新增功能对应的参数ID,运行程序的参数ID数量大于设备配置参数ID数量。或通过对参数长度的一致性进行判断,例如,当版本相同时,参数长度也相同;当运行程序版本低于设备已存在的配置参数版本时,运行程序要求的参数长度小于设备配置参数长度;当运行程序版本高于设备已存在的配置参数版本时,运行程序要求的参数长度大于设备配置参数长度。或预先在配置参数中设置版本识别标识符,每一个版本识别标识符对应一个版本,通过对版本识别标识符进行版本高低的判断。
如图9所示,图9为本发明一实施例的兼容程序版本参数配置装置中缓存加载模块的步骤流程图,缓存加载模块10具体包括:
头信息获取单元11,用于获取配置文件队列中配置文件的文件头信息,文件头信息包括更新序号G和校验码;
校验码验证单元12,用于验证最大更新序号G(i)对应的配置文件的校验码是否有效,并输出验证结果;根据校验码无效的验证结果,重新验证G(i+1)对应的配置文件的校验码是否有效,并输出验证结果;
缓存加载单元13,用于根据校验码有效的验证结果,将该配置文件中所有参数加载至缓存中。
本实施例中,头信息获取单元11获取的更新序号G对应于配置文件的更新时间,例如,按照更新时间的先后顺序从小到大依次排列。更新序号最大,即更新时间最晚,由于更新时间最晚的配置文件中配置参数的版本最高,最接近于当前程序版本,可确保参数配置的顺利进行。此外,文件头信息包括的校验码表示配置文件中数据的完整性,当系统断电或掉线造成配置文件数据损坏时,该配置文件中包含无效的校验码,不可对该配置文件中的数据进行读写。为避免缓存加载已损坏的配置文件参数数据,通过校验码验证单元12验证验证码的有效性,以判断参数数据的完整性,缓存加载单元13选取数据未损坏的配置文件进行加载,可有效提高配置文件中配置参数的可靠性。
如图10所示,图10为本发明一实施例的兼容程序版本参数配置装置中参数匹配模块的结构示意图,参数格式包括参数长度,参数匹配模块20具体包括:
写参数匹配单元21,用于在待写入参数的参数长度等于或小于缓存中对应参数的参数长度时,将待写入参数的数据内容更新至缓存的对应参数中;
读参数匹配单元22,用于在待填充参数的参数长度等于或大于缓存中对应参数的参数长度时,输出缓存中对应参数的数据内容至待填充参数中。
本实施例在写参数操作过程中,当版本相同时,参数长度也相同,写参数匹配单元21将待写入参数的数据内容直接写入缓存的对应参数中。当运行程序版本低于设备已存在的配置参数版本时,运行程序中待写入参数的参数长度小于设备配置参数长度,即设备配置参数有足够的空间存储待写入参数的数据内容,因此,较高的版本通常能够兼容较低的版本,写参数匹配单元21也可将待写入参数的数据内容直接写入缓存的对应参数中。在读参数操作过程中,当版本相同时,参数长度也相同,读参数匹配单元22可直接读取缓存中对应参数中的数据内容填充至待填充参数中。当运行程序版本高于设备已存在的配置参数版本时,运行程序中待填充参数的参数长度大于设备配置参数长度,即待填充参数有足够的空间存储设备配置参数的数据内容,因此,较高的版本通常能够兼容较低的版本,读参数匹配单元22也可直接读取缓存中对应参数的数据内容填充至待填充参数中,待填充参数中多余的部分可采用默认数据进行填充。
如图11所示,图11为本发明一实施例的兼容程序版本参数配置装置中参数调整模块的结构示意图,参数格式包括参数长度,参数调整模块30具体包括:
写参数调整单元31,用于在待写入参数的参数长度大于缓存中对应参数的参数长度时,根据待写入参数的参数格式,调整缓存中对应参数的参数格式,并将待写入参数的数据内容更新至缓存的对应参数中;
读参数调整单元32,用于在待填充参数的参数长度小于缓存中对应参数的参数长度时,根据待填充参数的参数长度,输出缓存中对应参数的数据内容至待填充参数中。
本实施例在写参数操作过程中,当运行程序版本高于设备已存在的配置参数版本时,运行程序中待写入参数的参数长度大于设备配置参数长度,此时,如果将待写入参数的数据内容直接写入缓存的对应参数,则会造成待写入参数的部分数据丢失,因此写参数调整单元31需要将缓存中对应参数的参数长度增加到与待写入参数的参数长度一致,通过动态自适应的调整配置参数的参数格式,实现对不同版本程序的兼容。在读参数操作过程中,当运行程序版本低于设备已存在的配置参数版本时,运行程序中待填充参数的参数长度小于设备配置参数长度,此时,如果直接读取缓存中对应参数的数据内容填充至待填充参数中,则会超出待填充参数的存储空间,造成参数读取错误,此时,读参数调整单元32只需要将缓存中对应参数的前半部分数据内容填充至待填充参数中即可,以完成对设备配置参数的参数格式动态自适应调整,实现对不同版本程序的写操作兼容性。
本发明实施例中,参数格式还包括参数ID。
写参数调整单元31还用于,当缓存中没有对应于待写入参数的参数ID时,将待写入参数的数据内容加载至缓存中;
读参数调整单元32还用于,当缓存中没有对应于待填充参数的参数ID时,输出空数据至待填充参数中。
本实施例在写参数操作过程中,当运行程序版本高于设备已存在的配置参数版本时,由于当前程序新增加了一些功能,缓存中无法找到对应于这些新增功能的参数ID,则无法完成正常的写参数操作。因此,写参数调整单元31需将待写入参数的参数ID和数据内容加载至缓存中,以完成对设备配置参数的参数格式动态自适应调整,实现对不同版本程序的写操作兼容性。在读参数操作过程中,当运行程序版本高于设备已存在的配置参数版本时,由于当前程序新增加了一些功能,缓存中无法找到对应于这些新增功能的参数ID,即缓存中没有这些新增功能参数ID的相关数据,因此,读参数调整单元32向待填充参数返回空数据,例如全0数据,作为提示信息。
如图12所示,图12为本发明另一实施例中兼容程序版本参数配置装置的结构示意图,该实施例的兼容程序版本参数配置装置还包括:
刷新模块40,用于当缓存中的参数有更新时,根据预设的刷新时间,将缓存中的所有参数加载至更新时间最早的配置文件中。
本实施例通过刷新模块40定时刷新的方式更新配置文件,即类似于定时备份操作,减少了备份次数,提高了读写效率。同时,本实施例并未新增加备份文件,而是直接将缓存中的参数加载到配置文件队列中已存在的配置文件中,有效减少了系统存储空间。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。