清单定额注册信息的软件更新方法、装置和系统与流程
未命名
07-20
阅读:71
评论:0

1.本发明涉及计算机辅助设计技术领域,尤其是涉及一种清单定额注册信息的软件更新方法、装置和系统。
背景技术:
2.各地区定额站会定期发布新的清单、定额数据以及勘误数据,当有新的数据发布时,且按照政策或招投标要求需要使用新版数据、或者发布的数据发生勘误时,造价员需要下载并安装最新版本的工程造价软件,并对该软件进行编制。
3.在使用过程中,一般是要求必须使用新版数据进行工程编制,因为使用旧软件可能会出现勘误,所以需要用户手动更新到指定版本,或者系统推送补丁包给用户端,提醒用户端更新软件数据,但这种方式依赖用户电脑环境及应用程序运行情况,时效较慢,失败率高。
技术实现要素:
4.本发明主要解决造价员在使用造价软件时,软件版本不能及时同步和更新的技术问题,为了解决该技术问题,本发明实施例公开了如下技术方案:
5.第一方面,本发明实施例公开了一种清单定额注册信息的软件更新方法,所述方法包括:
6.新建工程软件,获取当前云库版本号;
7.根据所述云库版本号匹配缓存路径,并通过本地缓存路径启动云库注册表的加载;
8.若本地缓存路径中未缓存所述云库注册表,则向服务器发送携带有所述当前云库版本号的请求消息,其中,所述当前云库版本号用于查找服务器侧存储的与所述当前云库版本号相匹配的清单定额注册信息;
9.接收所述服务器反馈的所述清单定额注册信息;
10.根据所述清单定额注册信息和本地库注册表对软件数据进行更新。
11.结合第一方面,在第一方面的一种可能的实施方式中,所述新建工程软件,获取当前云库版本号,包括:
12.新建工程软件,向所述服务器请求与当前版本相匹配的云库信息;
13.获取所述服务器查找的相匹配的云库列表;
14.基于所述云库列表检测当前云库版本号是否下载到本地;
15.如果否,则通过调用接口向所述服务器请求云库文件;
16.接收所述服务器发送的所述云库文件,所述云库文件中包括所述当前云库版本号。
17.结合第一方面,在第一方面的另一种可能的实施方式中,所述服务器中包括:数据库管理系统和对象存储服务系统;其中,所述数据库管理系统中包括至少一个数据库实例,
每个所述数据库实例用于记录版本号和所述版本号对应的分库位置;所述对象存储服务系统用于存储文件数据,并且每个地区的每个版本作为一个文件路径存储所述文件数据,每个所述文件数据的命名包括:地区名、云库版本号和补丁号。
18.结合第一方面,在第一方面的又一种可能的实施方式中,所述获取当前云库版本号之后,还包括:检测用户是否登录工程软件系统,如果是,则执行所述根据所述云库版本号匹配缓存路径,并通过本地缓存路径启动云库注册表的加载的步骤。
19.结合第一方面,在第一方面的又一种可能的实施方式中,所述对软件数据进行更新之前,还包括:从本地库中获取本地库注册表,所述本地库注册表中包括原清单定额注册信息。
20.结合第一方面,在第一方面的又一种可能的实施方式中,所述根据所述云库版本号匹配缓存路径之后,还包括:
21.查找加载文件,判断所述加载文件是否存储在所述服务器;
22.如果是,则查看本地缓存中是否存在所述加载文件;
23.如果未存储,则向所述服务器请求所述加载文件,以及根据加载文件的文件名从所述服务器中获取所述加载文件。
24.结合第一方面,在第一方面的又一种可能的实施方式中,所述方法还包括:如果所述加载文件未存储在所述服务器,则从本地库中查找所述加载文件,并获取所述加载文件;
25.所述根据所述清单定额注册信息和本地库注册表对软件数据进行更新,包括:根据所述清单定额注册信息、所述本地库注册表和所述加载文件对所述软件数据进行更新。
26.结合第一方面,在第一方面的又一种可能的实施方式中,所述方法还包括:
27.接收用户的云库切换指令;
28.响应于所述云库切换指令,检查当前云库版本是否下载;
29.如果否,则从所述服务器请求最新的云库列表,并获取所述最新的云库列表;
30.将所述最新的云库列表下载到本地缓存路径中,并通过所述最新的云库列表更新所述当前云库版本号。
31.第二方面,本发明实施例还公开了一种清单定额注册信息的软件更新装置,该装置包括:
32.获取单元,用于新建工程软件,获取当前云库版本号;
33.加载单元,用于根据所述云库版本号匹配缓存路径,并通过本地缓存路径启动云库注册表的加载;
34.发送单元,用于在本地缓存路径中未缓存所述云库注册表的情况下,则向服务器发送携带有所述当前云库版本号的请求消息,其中云库版本号用于查找服务器侧存储的与所述当前云库版本号相匹配的清单定额注册信息;
35.接收单元,用于接收所述服务器反馈的所述清单定额注册信息;
36.更新单元,用于根据所述清单定额注册信息和本地库注册表对软件数据进行更新。
37.第三方面,本发明实施例还公开了一种软件更新系统,所述系统包括客户端和服务器;
38.所述客户端新建工程软件,获取当前云库版本号,根据所述云库版本号匹配缓存
路径,并通过本地缓存路径启动云库注册表的加载;若本地缓存路径中未缓存所述云库注册表,则向服务器发送携带有所述当前云库版本号的请求消息;
39.所述服务器接收所述客户端发送的所述请求消息,查找与所述当前云库版本号相匹配的清单定额注册信息,并将所述清单定额注册信息发送给所述客户端;
40.所述客户端接收所述清单定额注册信息,并根据所述清单定额注册信息和本地库注册表对软件数据进行更新。
41.可选的,在第三方面的一种可能的实施方式中,所述系统还包括打库工具;
42.所述打库工具在软件更新前,制作本地数据库,建立地区名、云库版本号和补丁号之间的绑定关系,并将所述绑定关系通过云数据包格式发送至所述服务器;
43.所述服务器接收所述打库工具上传的云数据包,解析所述云数据包得到所述绑定关系和文件数据,并将所述绑定关系和所述文件数据分别存储在数据库管理系统和对象存储服务系统,并完成软件版本的发布。
44.第四方面,本发明实施例还公开了一种电子设备,包括处理器和存储器,所述存储器与所述处理器耦合;所述存储器上存储有计算机可读程序指令,当所述指令被所述处理器执行时,实现前述第一方面或第一方面任一实现方式所述的清单定额注册信息的软件更新方法。
45.可选的,所述电子设备为一终端设备或客户端;此外,该电子设备还可以是一种网络设备,比如服务器或服务器集群。
46.另外,本发明实施方式还公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如第一方面或第一方面任一实现方式所述的清单定额注册信息的软件更新方法。
47.本实施例提供的一种清单定额注册信息的软件更新方法,将部分数据,比如清单定额注册信息上云,另一部分数据保存在本地,并通过文件路由方式,通过文件索引,如云库版本号等信息确定文件位置,以及在程序安装、启动时自动缓存清单定额注册信息等云端数据,从而解决使用效率低的问题。本方法将部分重要数据上云,存储在服务端,在需要软件更新时从服务器自动获取和加载更新,从而提高了数据应用效率和软件更新效率。
附图说明
48.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
49.图1为本发明实施例提供的一种软件更新的系统结构示意图;
50.图2为本发明实施例提供的一种系统整体架构的示意图;
51.图3为本发明实施例提供的一种云端发布软件和更新的流程图;
52.图4为本发明实施例提供的一种打包发送dpk云包和发布的流程图;
53.图5为本发明实施例提供的一种dpk云包的结构示意图;
54.图6a为本发明实施例提供的另一种定额注册表bqdb_registry的示意图;
55.图6b为本发明实施例提供的一种配置清单定额注册信息是否上云的示意图;
56.图6c为本发明实施例提供的一种清单定额注册表的示意图;
57.图7为本发明实施例提供的一种oss服务器端存储结构的示意图;
58.图8为本发明实施例提供的一种云端服务器存储结构的示意图;
59.图9为本发明实施例提供的另一种云端服务器存储结构的示意图;
60.图10为本发明实施例提供的一种云库boot结构的示意图;
61.图11为本发明实施例提供的一种清单定额注册信息的软件更新方法的流程图;
62.图12为本发明实施例提供的一种加载文件的流程图;
63.图13为本发明实施例提供的一种清单定额注册表获取方法的流程图;
64.图14为本发明实施例提供的一种获取当前云库版本号的流程图;
65.图15为本发明实施例提供的一种云库切换的流程图;
66.图16为本发明实施例提供的一种云库切换配置文件的示意图;
67.图17为本发明实施例提供的一种清单定额注册信息的软件更新装置的结构示意图;
68.图18为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
69.下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
70.本发明专利申请主要针对建筑业工程造价书编制、审核环节的清单定额数据使用;技术方案涉及云端数据缓存、云端与客户端数据混合使用、数据库自由切换等方面,用于提高数据下发的时效性、数据上云的广泛性、用户使用的便捷性等使用体验。
71.本发明应用于各造价阶段的造价文件的编制和软件升级环节,例如图1所示,为本技术实施例应用的一种场景示意图。该场景示意图中包括:客户端100、服务器200和打库工具300,其中,客户端100、打库工具300和服务器200和之间可以通过网络连接。
72.具体地,服务器200可以是独立的服务器,或者是多个服务器组成的服务器集群,还可以是提供云服务/云计算、数据中心、web服务器、网络服务、云通信、内容分发网络(content delivery network,cdn)以及大数据和人工智能平台等基础云计算服务的服务器。
73.客户端100可以是一种终端设备,所述终端设备又可称为用户设备(user equipment,ue),所述终端设备包括但不限于各种个人计算机pc、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备等。如图1所示,客户端100为一台式机或pc。
74.类似的,打库工具300也可以是一种终端设备,比如手机、pc或平板电脑等。
75.此外,服务器200与客户端100之间连接的网络可以包括各种连接类型,例如有线、无线通信链路,如无线局域网(wireless local area network,wlan)或者光纤电缆等。
76.应理解,上述应用场景中还可以包括其他更多或更少的设备或装置,比如交换机等,本实施例对此不做限制。另外,上述客户端100可称为前端设备,服务器200为后端设备,所述前端设备和后端设备可以是针对同一服务器的两个端设备,此时,终端设备作为服务器的一个前端设备,而后端设备为网络服务器或服务器集群。
77.参见图2,为本发明实施例提供的一种系统整体架构的示意图,其中,客户端和服务器均包括以下结构:产品端、软件开发工具包(software development kit,sdk)、应用程序编程接口(application programming interface,api)、缓存层和存储层等。
78.其中,客户端100中的产品端用于存储gccp6(云计价平台6.0产品)业务层,sdk层中用于存储sdk包,比如定额库引擎云版gndbnet、定额库引擎gndb等;存储层用于存储本地库,例如本地库中包括二进制文件,该二进制文件中包括:清单数据、子目数据、材料数据等。另外,本地库中还可以存储一系列功能文件,比如功能文件1~n。
79.另外,对于服务器200,在存储层可以存储云库,例如,通过mysql与oss相结合的方式存储模式。具体地,mysql是一个关系型数据库管理系统,由瑞典mysql ab公司开发。mysql是目前流行的关系型数据库管理系统之一,在web应用方面,mysql是较好的rdbms(relational database management system,关系数据库管理系统)应用软件之一。mysql将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,从而增加了查找速度并提高了灵活性。
80.云对象存储服务(object storage service,简称oss),是阿里云对外提供的海量、安全、低成本、高可靠的云存储服务。通过本文档提供的简单的rest接口,在任何时间、任何地点、任何互联网设备上进行上传和下载数据。基于oss,用户可以搭建出各种多媒体分享网站、网盘、个人和企业数据备份等基于大规模数据的服务。
81.本实施例中,mysql用于存储清单数据、子目数据和材料数据;oss用于存储基础数据,诸如清单.data,子目.data,材料.data,以及功能文件1~n等。
82.另外,在服务器200端还包括至少一个api接口,利用所述至少一个api接口可以获取清单信息、定额信息、材料信息,以及boot数据,文件下载数据等信息。
83.打库工具300用于制作数据库,生成云包,并发送给服务器200,从而为服务器200发布新版本的软件数据或软件包。
84.在一实施例中,如图3所示,提供的一种云端发布软件和更新的流程图。该过程包括以下步骤:流程开始,服务器发布云数据和本地客户端数据,客户端匹配对应本地端版本号,如果匹配成功,则造价员在客户端上下载并安装当前版本的软件包,造价员通过客户端安装造价软件,自动下载云端数据。客户端启动下载的软件后,检测更新的软件是否下载完成,如果未完成,则继续下载;如果已完成,则启动软件,并使用最新版本数据,结束流程。
85.另外,如果服务器对数据做更新,则云端服务器发布新版数据至客户端,客户端选择是否切换云库,如果切换,则自动下载待切换的新版本数据;并使用最新版本数据来完成工程造价方面的任务;如果不需要切换云库数据,则使用当前下载的数据执行任务。本方法中,当数据发生更新或勘误时,客户端使用的计价程序会自动缓存最新版本云端数据,保证数据的及时性。
86.下面对本实施例提供的方法进行详细介绍。
87.参见如图4,为本发明实施例提供的一种打包发送dpk云包和发布的流程图;该方法为软件包更新之前的准备步骤,具体地,该方法包括:
88.在打库工具一侧,首先开始制作数据库,建立本地数据库、地址、云库版本号之间的对应关系,生成至少一个dpk云包,并发送dpk云包至服务器。服务器接收打库工具上传的dpk云包后,拆解该dpk云包,生成sql数据和文件数据;然后将sql数据上传到mysql数据库
的主库中,记录当前云版本号以及对应的分库位置;然后上传文件数据,在oss中新建对应的云版本文件夹,最后将云版本文件夹上传到oss的当前版本文件夹中。
89.进一步地,在打库工具生成dpk云包过程中,如图5所示,可以按照如下格式存储:
90.boot:充当注册表角色,用于存储定额清单注册信息、序列、定额信息等。
91.gndb:p6定额库引擎,用于将清单定额注册信息存储在mysql库中,以及结合txt.格式数据并提供给外部程序使用功能。
92.gnf:实体文件压缩包,与安装后的文件格式存储结构内容相同,并包含索引文件,例如可同时包含nf.index、nf.list、nf.preload三个索引文件,所示索引文件用于为下载数据提供作用。
93.在应用层面上,还会再索引文件以及其他文件,比如文件:清单注册表bqdb_registry.txt、定额注册表normdb_registry.txt、定额序列注册表normseries_registry.txt,在这些表中增加是否在云上的标识,可选的,一种所述标识为:isoncloud。该标识的内容可以是“true”或“false”,其中,true表示是,即以增加标识;false表示否,即未增加标识。
94.例如,如图6a所示,在清单注册表bqdbid中名字name一侧设置isoncloud标识,记录一个清单定额编号为1207号、命名为冶金工业建设工程工程量清单计价规则(2007)的清单定额库,被标记为“false”;类似地,编号为2844,名称为工程量清单项目计量规划(2021-广东)体验版的定额清单库被标记为“true”;即该定额清单库已经上云。
95.应理解,还可以通过其他标识,比如0或1,yes或no来标识当前清单定额数据是否被发送至服务器。
96.当标记为上云后,确定此清单定额、序列可以存储在配置文件中,例如存储在e:\gccnkit1\release\config下的配置文件,用于存储文件夹路径和判断清单定额库是否在云上;例如图6b所示,记录的上云的文件为:cloudnormdb=广东省城市底下综合管廊工程综合定额(2018)/广东省2010序列定额文件。
97.配置完之后,服务器进行云定额发布流程,具体地,一种实施方式是,服务器在云定额sql数据库中修改增加云上清单、定额、序列标识,增加isoncloud.的配置信息,用于指示清单定额是否上云,然后将bqdb_registry.txt、normdb_registry.txt、normseries_registry.txt中的数据发布至mysql数据库中。最后,客户端向服务器发送url(统一资源定位符)请求,该url请求用于请求服务器返回是否在云上的标志,通过修改服务端sql语句即可实现。
98.在服务器端,设计一种gndb设计结构,包含多个关系数据系统(relation data system,rds)实例,从而可以动态扩容,例如图8和图9所示,云清单服务gccn_boot下包含3个dbins,分别是dbins1、dbins2和dbins3;其中,dbins表示阿里云数据库实例。每个dbins中存储一个地区的不同版本的独立数据库,命名规则按照:地区名+云库版本号+补丁号相结合的方式。例如dbins1中存储gndb_beijing_v1/v2以及gndb_hebei_v1/v2等两个地区的不同版本的数据库;dbins2中存储gndb_guangdong_v1/v2和gndb_shenzhen_v1/v2的不同版本的数据库;dbins3中存储gndb_sichuan_v1/v2和gndb_xinjiang_v1/v2等不同版本的数据库。
99.基于mysql数据库与oss数据库存储相结合的方式,如图9所示,设计存储层设计,
基于gndb路由设计为:
100.客户端请求获取数据,通过数据接入模块请求,启动bootservice,string getdatabase location,并通过地区、版本号等信息取得库位置,返回库位置给客户端,客户端接收到来自服务器的库位置之后,根据指示从对应的gndb实例中获取数据,比如从gndb_r2_v1中获取定额清单数据。
101.本实施例提供的打库工具制作数据库dpk云包并上传到服务器的方法,建立版本关联表,比如图10所示,包括主键id、端版本号product_version、云库id(pkg_id)、上云标识isoncloud、是否最新版本isnew标识与云库版本表、定额库信息表install_package之间的映射关系,从而为后续客户端请求定额清单信息、服务器查找定额清单注册表提供依据。
102.下面对本实施例提供的软件更新方法进行详细说明,参见图11,本实施例提供的一种清单定额注册信息的软件更新方法,该方法包括如下步骤:
103.步骤101,客户端新建工程软件,获取当前云库版本号。
104.一种是通过本地软件中获得当前云库版本号,另一种是通过云端服务器获取当前云库版本号;所述云库版本号包括如图10所示的云库id、版本号version、补丁号sp和版本说明remark等。
105.步骤102,根据所述云库版本号匹配缓存路径。一种实施方式是,通过当前云库版本号pkg_id在本地查找相匹配的文件夹路径,判断本地是否存储与该当前云库版本号pkg_id相匹配的文件夹缓存路径。如果是,则执行步骤103。
106.步骤103,通过本地缓存路径启动云库注册表的加载。
107.步骤104,在本地缓存路径中对当前云库版本号对应的云库注册表进行加载,判断本地缓存路径中注册表是否存在。
108.例如,可通过标识isoncloud判断新的清单定额注册信息是否上云,如果存储在云端服务器,则执行步骤105至109。
109.步骤105,如果否,即本地缓存路径中未缓存所述云库注册表,则客户端向服务器发送携带有所述当前云库版本号的请求消息。其中,所述当前云库版本号用于查找服务器侧存储的与所述当前云库版本号相匹配的清单定额注册信息。
110.步骤106,服务器接收客户端发送的请求消息后,调用查找注册表接口,根据该接口匹配当前云库版本号所在的分库。
111.步骤107,服务器从分库中查找对应的清单定额注册信息。
112.所述清单定额注册信息例如图6c所示,为查找的一种清单定额注册表,左侧是表名,比如绑定、bqdb_registry是清单列表,保留栏位和索引。右侧是表内容,包括主键id、云库id(pkg_id)、pqdbid号、表名称等信息。例如主键id为211、云库id为137、pqdbid号为1207、表名称为“冶金工业建筑工程工程量清单计划规划(2007)”的清单列表,类似的,还包括其他清单列表。
113.此外,所述清单定额注册信息中还包括定额注册表(normaldb_registry),所述定额注册表中包括工程量定额清单。另外,还包括定额序列注册表(normseries_registry),该注册表中包括定额与清单序列之间的对应关系。
114.服务器根据当前云库版本号,pkg_id在服务器预先建立的定额库信息表(install_package)如图10所示,查找到目标varchar,然后基于查找到的目标varchar在版
本关联关系表(version_relation)中,确定清单定额注册信息,得到如图6c所示的注册信息。
115.步骤108,服务器将所述清单定额注册信息打包发送给客户端,例如将清单定额注册信息打包成json格式数据包,然后返回给客户端。对应地,客户端接收来自服务器反馈的所述清单定额注册信息。
116.步骤109,客户端将清单定额注册信息缓存到本地库中。
117.因为从云库更新的注册信息最后要缓存到本地进行使用,所以需要对本地缓存进行分析设计。一种缓存结构可以是如图7所示,通过oss存储结构,按地区对不同版本的清单定额注册信息进行存储。
118.例如版本1中存储清单库1、清单库2、定额库1、定额库2、定额序列1、定额序列2、报表、缓存包索引.ini等信息,其中,缓存包索引用于记录各地区需要批量缓存的常用库。一般地,默认配置全部缓存到本地库中,如果有特殊地区的清单数据,可以特殊考虑和配置。
119.另外,在上述步骤104中,如果判断结果为是,则加载已下载的注册表,包括本次存储的清单定额注册表,然后再结合步骤109中获取的服务器的清单定额注册信息,将这些信息加载到本地库注册表中,以便后续在工程造价中,根据所述清单定额注册信息和本地库注册表对软件数据进行更新。
120.本实施例提供的方法,仅将部分数据,比如清单定额注册信息上云,另一部分数据保存在本地,并通过文件路由方式,通过文件索引,如云库版本号等信息确定文件位置,以及在程序安装、启动时自动缓存清单定额注册信息等云端数据,从而解决使用效率低的问题。本方法将部分重要数据上云,存储在服务端,在需要软件更新时从服务器自动获取和加载更新,从而提高了数据应用效率和软件更新效率。
121.可选的,在本实施例的一种实施方式中,上述方法步骤102,根据所述云库版本号匹配缓存路径之后,还包括:查找加载文件,判断所述加载文件是否存储在所述云服务器;如果是,则查看本地缓存中是否存在所述加载文件;如果未存储,则向所述服务器请求所述加载文件,以及根据加载文件的文件名从所述服务器中获取所述加载文件。
122.具体地,如图12所示,方法包括以下步骤:
123.步骤201、客户端记载文件。所述加载文件包括运行软件的一系列文件夹数据,以及工程数据等信息。
124.步骤202、判断所述加载文件是否上云,即所述加载文件是否存储在服务器上。
125.步骤203、如果是,则查看本地缓存中是否存储该加载文件。
126.步骤204、如果未存储,则客户端请求从服务器下载所述加载文件,比如客户端向服务器发送请求,该请求中携带端版本号product_version、版本号version和文件名等信息。
127.步骤205、服务器调用下载接口,拼接下载链接。
128.步骤206、服务器通过所述下载链接转发到oss进行下载,获得文件数据,并将该文件数据发送给客户端。该文件数据包括工程软件功能使用的数据。
129.具体地,服务器先将下载链接转发到oss服务器,oss服务器接收该链接后,根据该链接下载得到文件数据,然后将该文件数据发送给客户端。
130.步骤207、客户端接收服务器发送的文件数据,将该文件数据下载到本地缓存中。
131.步骤208、客户端从本地缓存所述加载的文件数据。
132.可选的,上述步骤202,还包括:
133.步骤209、如果所述加载文件未存储在所述服务器上,则从本地库中查找所述加载文件,并获取所述加载文件。
134.最后,所述根据所述清单定额注册信息和本地库注册表对软件数据进行更新,包括:根据所述清单定额注册信息、所述本地库注册表和所述加载文件对所述软件数据进行更新。
135.本实施例中将加载文件上云存储,从而节约本地数据库存储空间,当需要文件数据时,通过请求,调用api接口从服务器获取加载文件,并结合本地文件数据,以及清单定额注册信息对软件数据做更新和使用。
136.可选的,在另一实施例中,如图13所示,为本技术提供的一种清单定额注册表获取方法的流程图。可由前述客户端或终端设备来实现,具体地,该方法包括:
137.客户端软件启动,收集引导文件boot,该boot中包括序列、清单库、定额库等信息。然后判断客户端是否在线,即判断是否登录到服务器的云管理平台,如果是,则可以从云库(如服务器)获取新清单库内容,具体过程可参见上述图11中的步骤105至步骤109,本实施例此处不再赘述。
138.其中,判断客户端是否在线,一种实施方式是,客户端向服务器发送一条健康检查的请求,并在预设时间(可自定义,比如3秒)内检测是否接收到来自该服务器的反馈响应;如果接收到,则请求成功,确定客户端在线;如果未收到,则请求失败,确定客户端不在线。
139.如果客户端未在线,在本地读取清单定额注册表或.ini信息(或ini文件),其中,ini是initialization file的缩写,即初始化文件;如果本地存储有该注册表,则从本地注册表中获取新的清单定额注册信息;如果检测新的清单定额注册信息存储在ini文件,则从所述ini文件中获取。
140.本实施例提供的方法,在要更新清单定额时,先检测客户端是否在线,然后再从云库中获取新的清单定额注册信息,从而避免了先查找注册表,再从而云库获取,导致软件更新慢,效率低的问题。
141.可选的,在又一实施例中,上述步骤101,客户端在新建工程软件时,获取当前云库版本号的实施方式,如图14所示,具体包括:
142.步骤301、客户端启动,新建工程软件,请求当前版本号相匹配的云库信息;比如客户端向服务器请求与当前版本相匹配的云库信息,客户端发送携带有端版本号的请求消息。
143.步骤302、服务器接收后,调用匹配云库版本函数开始匹配,查找与所述端版本号相匹配数据库。
144.步骤303、服务器从mysql数据库主库中查找与所述端版本号相匹配的云库列表。具体查找过程基于前述图8和图9所示的存储层设计结构查找。
145.步骤304、服务器将所述云库列表发送至客户端。对应地,客户端接收或获取所述服务器查找的相匹配的云库列表。
146.步骤305、检查当前云库列表是否下载到本地,即基于所述云库列表检测当前云库版本号是否下载到本地。
147.步骤306、如果否,则从服务器请求下载,比如通过调用接口向所述服务器请求云库文件,所述请求中包括云库版本号。
148.步骤307、服务器接收该请求后,调用下载接口,通过该下载接口拼接下载链接。
149.步骤308、利用该下载链接转发到oss服务器进行下载。
150.该步骤307和308与前述实施例的步骤205和206相似,本实施例此处不再赘述。
151.步骤309、客户端下载云库文件到本地缓存路径。具体地,客户端接收所述服务器发送的所述云库文件,所述云库文件中包括当前云库版本号。
152.步骤310、客户端获取并记录当前云库版本号,进而完成从云端服务器获取当前云库版本号的过程。
153.另外,在步骤305中,如果检查当前云库列表已经下载至本地,则直接从本地获取当前云库版本号。
154.可选的,在上述实施例中,服务器中包括:数据库管理系统和对象存储服务系统;其中,所述数据库管理系统中包括至少一个数据库实例,每个所述数据库实例用于记录版本号和所述版本号对应的分库位置;所述对象存储服务系统用于存储文件数据,并且每个地区的每个版本作为一个文件路径存储所述文件数据,每个所述文件数据的命名包括:地区名、云库版本号和补丁号。
155.其中,所述数据库管理系统为mysql,所述对象存储服务系统为oss。应理解,所述数据库管理系统和对象存储服务系统还可以是其他系统,本实施例对此不做限制。
156.可选的,在又一实施例中,所述获取当前云库版本号之后,还包括:检测用户是否登录工程软件系统,如图13所示,如果是,则执行所述根据所述云库版本号匹配缓存路径,并通过本地缓存路径启动云库注册表的加载的步骤。具体过程,可参见前述图11所示的步骤102至109。
157.在前述实施例中,客户端对软件数据进行更新之前,还包括:从本地库中获取本地库注册表,所述本地库注册表中包括原清单定额注册信息。然后,根据本地原清单定额信息、从服务器下载的最新清单定额注册信息,以及加载的文件数据对工程造价软件进行更新和工程编辑。
158.可选的,在又一实施例中,本技术还公开了一种客户端云库切换方法,该方法包括:客户端接收用户的云库切换指令,响应于所述云库切换指令,检查当前云库版本是否下载;如果否,则从所述服务器请求最新的云库列表,并获取所述最新的云库列表;以及将所述最新的云库列表下载到本地缓存路径中,并通过该最新的云库列表更新所述当前云库版本号。
159.更具体地,如图15所示,该方法包括如下方法步骤:
160.步骤401、客户端检查当前云库列表是否下载;
161.步骤402、从服务器请求下载所述当前云库列表,所述请求中包括云库版本号;
162.步骤403、服务器调用下载接口,并通过下载接口拼接下载链接;
163.步骤404、服务器将下载链接转发至oss服务器进行下载,从而得到最新的云库列表;
164.步骤405、客户端获取最新云库列表后,将该云库列表下载到本地缓存路径中;
165.步骤406、客户端通过该最新云库列表更新所述当前云库版本号。
166.具体的实施过程与前述方法步骤306至310相同,本实施例对此不再赘述。在一示例中,如图16所示,当前版本号current version为6.1.5.1,补丁号sp为0,通过刷新云库列表,切换云库,更新得到最新版本的清单定额注册信息,比如得到新版本号为6.1.5.1,补丁号sp为0,时间是2022年1月17日,备注:由广东新清单发布的一个定额云库数据清单,并发布该清单,从而实现客户端侧对云库版本号的及时更新,使客户端获得最新的定额清单信息。
167.更进一步地,通过在缓存中记录各地区的regionconfig在该配置文件中记录当前选择的云端版本号,及当前版本匹配的所有云端版本及补丁号,在客户端产品中,显示该配置中默认匹配的所有云库列表,造价人员通过手动切换后,将当前版本及补丁号重写入该配置中。
168.上述云库切换方法还可以包括以下步骤:
169.1、工作台启动;
170.2、获取地区列表,读取本地库配置的ini文件;
171.3、调用服务器api接口获取各个地区标识,比如云库版本号,具体过程参见前述如图11所述的实施例,本实施例此处不再赘述;
172.4、替换配置下各个地区的最新版本号;
173.5、检测各个地区选择的云库版本号是否为空;
174.6、如果否,则判断当前选择的版本是否存储在最新的版本号中;
175.7、如果是,则根据ini更新各个地区版本信息界面;
176.8、生成版本列表,选择当前版本;
177.9、判断是否有新于当前版本的清单定额库;
178.10、如果有,则在客户端通过小红点显示;如果否,则结束流程。
179.本实施例提供的云库切换方法,在服务器端提供多版本云端数据,从而可使客户端自主进行切换、自主选择老版本数据还是新版本数据,避免等待用户自己手动更新,本方法提高了使用的便捷性,避免人工手动切换不及时以及操作繁琐的问题。
180.本发明实施例还公开了一种清单定额注册信息的软件更新装置,该装置用于实现前述图11至图15所示的方法步骤,具体地,参见图17所示,该装置包括:获取单元171、加载单元172、发送单元173、接收单元174和更新单元175。此外,该装置还可以包括其他更多或更少的结构或单元,比如存储单元等,本实施例对此不作限制。
181.其中,获取单元171,用于新建工程软件,获取当前云库版本号;
182.加载单元172,用于根据所述云库版本号匹配缓存路径,并通过本地缓存路径启动云库注册表的加载;
183.发送单元173,用于在本地缓存路径中未缓存所述云库注册表的情况下,则向服务器发送携带有所述当前云库版本号的请求消息,其中云库版本号用于查找服务器侧存储的与所述当前云库版本号相匹配的清单定额注册信息;
184.接收单元174,用于接收所述服务器反馈的所述清单定额注册信息;
185.更新单元175,用于根据所述清单定额注册信息和本地库注册表对软件数据进行更新。
186.可选的,所述装置可以是前述实施例中的一种客户端,或者还可以是一种终端设
备,比如pc、笔记本电脑等。
187.此外,在另一实施例中,该装置还可以用于实现前述服务器的各种功能。
188.另外,本实施例还提供一种软件更新系统,所述系统包括客户端和服务器,其结构如图1所示,另外,在该系统中还可以包括打库工具。
189.其中,客户端新建工程软件,获取当前云库版本号,根据所述云库版本号匹配缓存路径,并通过本地缓存路径启动云库注册表的加载;若本地缓存路径中未缓存所述云库注册表,则向服务器发送携带有所述当前云库版本号的请求消息。
190.所述服务器接收所述客户端发送的所述请求消息,查找与所述当前云库版本号相匹配的清单定额注册信息,并将所述清单定额注册信息发送给所述客户端。
191.所述客户端接收所述清单定额注册信息,并根据所述清单定额注册信息和本地库注册表对软件数据进行更新。
192.进一步地,在该系统中,所述打库工具在软件更新前,制作本地数据库,建立地区名、云库版本号和补丁号之间的绑定关系,并将所述绑定关系通过云数据包格式发送至服务器。
193.所述服务器接收所述打库工具上传的云数据包,解析所述云数据包得到所述绑定关系和文件数据,并将所述绑定关系和所述文件数据分别存储在数据库管理系统和对象存储服务系统,并完成软件版本的发布。
194.本实施例提供的系统,在云端存储采用oss与mysql相结合的数据存储结构,实现分地区按照不同版本存储数据,便于后期查找;另外,对于数据存储模式采用部分上云,部分数据存储在本地,即本地客户端与云端服务器数据混合使用的方式,以及安装软件时缓存云数据的方式,从而能够快速地查找到最新的清单定额注册信息和文件数据,提高软件更新效率。
195.另外,本发明实施例还提供了一种电子设备,如图18所示,该电子设备可以包括处理器110和存储器120,其中处理器110和存储器120可以通过总线或者其他方式连接,图18中以通过总线连接为例。此外,该电子设备中还包括至少一个接口130,该至少一个接口130可以是通信接口或其他接口,本实施例对此不做限制。
196.其中,处理器110可以为中央处理器(central processing unit,cpu)。处理器110还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
197.存储器120作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的视频合成方法对应的程序指令/模块。处理器110通过运行存储在存储器120中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的清单定额注册信息的软件更新方法、云库切换方法等。
198.存储器120可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器110所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存
储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器120可选包括相对于处理器110远程设置的存储器,这些远程存储器可以通过网络连接至处理器110。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
199.另外,至少一个接口130用于电子设备与外部设备的通信,比如与服务器通信等。可选的,至少一个接口130还可以用于连接外设输入、输出设备,比如键盘、显示屏等。
200.所述一个或者多个模块存储在所述存储器120中,当被所述处理器110执行时,执行如图11至图15所示实施例中的清单定额注册信息的软件更新方法、云库切换方法等。
201.本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。
202.虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
技术特征:
1.一种清单定额注册信息的软件更新方法,其特征在于,所述方法包括:新建工程软件,获取当前云库版本号;根据所述云库版本号匹配缓存路径,并通过本地缓存路径启动云库注册表的加载;若本地缓存路径中未缓存所述云库注册表,则向服务器发送携带有所述当前云库版本号的请求消息,其中,所述当前云库版本号用于查找服务器侧存储的与所述当前云库版本号相匹配的清单定额注册信息;接收所述服务器反馈的所述清单定额注册信息;根据所述清单定额注册信息和本地库注册表对软件数据进行更新。2.根据权利要求1所述的方法,其特征在于,所述新建工程软件,获取当前云库版本号,包括:新建工程软件,向所述服务器请求与当前版本相匹配的云库信息;获取所述服务器查找的相匹配的云库列表;基于所述云库列表检测当前云库版本号是否下载到本地;如果否,则通过调用接口向所述服务器请求云库文件;接收所述服务器发送的所述云库文件,所述云库文件中包括所述当前云库版本号。3.根据权利要求2所述的方法,其特征在于,所述服务器中包括:数据库管理系统和对象存储服务系统;其中,所述数据库管理系统中包括至少一个数据库实例,每个所述数据库实例用于记录版本号和所述版本号对应的分库位置;所述对象存储服务系统用于存储文件数据,并且每个地区的每个版本作为一个文件路径存储所述文件数据,每个所述文件数据的命名包括:地区名、云库版本号和补丁号。4.根据权利要求1所述的方法,其特征在于,所述获取当前云库版本号之后,还包括:检测用户是否登录工程软件系统,如果是,则执行所述根据所述云库版本号匹配缓存路径,并通过本地缓存路径启动云库注册表的加载的步骤。5.根据权利要求1所述的方法,其特征在于,所述对软件数据进行更新之前,还包括:从本地库中获取本地库注册表,所述本地库注册表中包括原清单定额注册信息。6.根据权利要求1-5任一项所述的方法,其特征在于,所述根据所述云库版本号匹配缓存路径之后,还包括:查找加载文件,判断所述加载文件是否存储在所述服务器;如果是,则查看本地缓存中是否存在所述加载文件;如果未存储,则向所述服务器请求所述加载文件,以及根据加载文件的文件名从所述服务器中获取所述加载文件。7.根据权利要求6所述的方法,其特征在于,所述方法还包括:如果所述加载文件未存储在所述服务器,则从本地库中查找所述加载文件,并获取所述加载文件;所述根据所述清单定额注册信息和本地库注册表对软件数据进行更新,包括:根据所述清单定额注册信息、所述本地库注册表和所述加载文件对所述软件数据进行更新。8.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
接收用户的云库切换指令;响应于所述云库切换指令,检查当前云库版本是否下载;如果否,则从所述服务器请求最新的云库列表,并获取所述最新的云库列表;将所述最新的云库列表下载到本地缓存路径中,并通过所述最新的云库列表更新所述当前云库版本号。9.一种清单定额注册信息的软件更新装置,其特征在于,所述装置包括:获取单元,用于新建工程软件,获取当前云库版本号;加载单元,用于根据所述云库版本号匹配缓存路径,并通过本地缓存路径启动云库注册表的加载;发送单元,用于在本地缓存路径中未缓存所述云库注册表的情况下,则向服务器发送携带有所述当前云库版本号的请求消息,其中云库版本号用于查找服务器侧存储的与所述当前云库版本号相匹配的清单定额注册信息;接收单元,用于接收所述服务器反馈的所述清单定额注册信息;更新单元,用于根据所述清单定额注册信息和本地库注册表对软件数据进行更新。10.一种电子设备,其特征在于,包括处理器和存储器,所述存储器与所述处理器耦合;所述存储器上存储有计算机可读程序指令,当所述指令被所述处理器执行时,实现如权利要求1至8中任一项所述的清单定额注册信息的软件更新方法。11.一种软件更新系统,其特征在于,所述系统包括客户端和服务器;所述客户端新建工程软件,获取当前云库版本号,根据所述云库版本号匹配缓存路径,并通过本地缓存路径启动云库注册表的加载;若本地缓存路径中未缓存所述云库注册表,则向服务器发送携带有所述当前云库版本号的请求消息;所述服务器接收所述客户端发送的所述请求消息,查找与所述当前云库版本号相匹配的清单定额注册信息,并将所述清单定额注册信息发送给所述客户端;所述客户端接收所述清单定额注册信息,并根据所述清单定额注册信息和本地库注册表对软件数据进行更新。12.根据权利要求11所述的系统,其特征在于,所述系统还包括打库工具;所述打库工具在软件更新前,制作本地数据库,建立地区名、云库版本号和补丁号之间的绑定关系,并将所述绑定关系通过云数据包格式发送至所述服务器;所述服务器接收所述打库工具上传的云数据包,解析所述云数据包得到所述绑定关系和文件数据,并将所述绑定关系和所述文件数据分别存储在数据库管理系统和对象存储服务系统,并完成软件版本的发布。
技术总结
本发明公开了一种清单定额注册信息的软件更新方法,所述方法包括:新建工程软件,获取当前云库版本号;根据所述云库版本号匹配缓存路径,并通过本地缓存路径启动云库注册表的加载;若本地缓存路径中未缓存所述云库注册表,则向服务器发送携带有所述当前云库版本号的请求消息,其中,所述当前云库版本号用于查找服务器侧存储的与所述当前云库版本号相匹配的清单定额注册信息;接收所述服务器反馈的所述清单定额注册信息;根据所述清单定额注册信息和本地库注册表对软件数据进行更新。本方法将部分重要数据上云,存储在服务端,在需要软件更新时从服务器自动获取和加载更新,从而提高了数据应用效率和软件更新效率。高了数据应用效率和软件更新效率。高了数据应用效率和软件更新效率。
技术研发人员:任凯强
受保护的技术使用者:广联达科技股份有限公司
技术研发日:2023.03.06
技术公布日:2023/7/18

版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/