CN112579129A - 基于服务器的软件更新方法、装置、设备及存储介质 - Google Patents
基于服务器的软件更新方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112579129A CN112579129A CN202011554741.6A CN202011554741A CN112579129A CN 112579129 A CN112579129 A CN 112579129A CN 202011554741 A CN202011554741 A CN 202011554741A CN 112579129 A CN112579129 A CN 112579129A
- Authority
- CN
- China
- Prior art keywords
- target
- information
- software
- preset
- software package
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000013507 mapping Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 14
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及互联网技术领域,公开了一种基于服务器的软件更新方法、装置、设备及存储介质,所述方法包括:获取预设存储空间内的目标软件包信息,并根据目标软件包信息确定目标类信息及目标索引信息,判断目标类信息是否满足预设新增类条件,在满足预设新增类条件时,根据目标类信息确定待更新软件,并根据目标索引信息对待更新软件的索引信息进行更新。相较于现有技术,需要重新打包编译整个软件工程,导致软件发布流程较为复杂,而本发明中获取软件包信息的目标类信息及目标索引信息,之后根据目标类信息确定待更新软件,最后根据目标索引信息对待更新软件的索引信息进行更新,实现了提高软件的更新效率,进而简化了软件的发布流程。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种基于服务器的软件更新方法、装置、设备及存储介质。
背景技术
web服务器(webserver)是运行在终端上的后台服务程序,可以通过手机或者电脑等前端网页可以远程控制终端设备,之后可以用应用程序接口(Application ProgrammingInterface,API)的方式管理设备。当webserver服务端需要增加开发或者更新接口时,现有技术中,需要将所有接口写死在应用程序App里,每次增加接口都需要重新编译打包发布,从而导致软件的更新效率低下,软件的发布流程较为复杂。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供了一种基于服务器的软件更新方法、装置、设备及存储介质,旨在解决如何提高软件的更新效率的技术问题。
为实现上述目的,本发明提供了一种基于服务器的软件更新方法,所述基于服务器的软件更新方法包括:
获取预设存储空间内的目标软件包信息,并根据所述目标软件包信息确定目标类信息及目标索引信息;
判断所述目标类信息是否满足预设新增类条件;
在满足所述预设新增类条件时,根据所述目标类信息确定待更新软件,并根据所述目标索引信息对所述待更新软件的索引信息进行更新。
可选地,所述获取预设存储空间内的目标软件包信息的步骤,包括:
获取预设存储空间内的扫描标识,并根据所述扫描标识确定预设扫描规则;
根据所述预设扫描规则获取所述预设存储空间内的目标软件包信息。
可选地,所述根据所述预设扫描规则获取所述预设存储空间内的目标软件包信息的步骤,包括:
根据所述预设扫描规则获取所述预设存储空间内的待处理软件包信息;
获取所述待处理软件包信息对应的数据标识数量;
判断所述数据标识数量是否满足预设标识数量条件;
在所述数据标识数量满足所述预设标识数量条件时,根据所述待处理软件包信息确定所述预设存储空间内的目标软件包信息。
可选地,所述根据所述待处理软件包信息确定所述预设存储空间内的目标软件包信息的步骤,包括:
获取所述目标软件包信息的预设固定数据标识;
根据所述预设固定数据标识和所述待处理软件包信息确定所述预设存储空间内的目标软件包信息。
可选地,所述根据所述待处理软件包信息确定所述预设存储空间内的目标软件包信息的步骤之前,还包括:
获取所述待处理软件包信息中各软件文件对应的存储大小;
判断所述存储大小是否大于预设存储大小阈值;
在所述储存大小大于所述预设存储大小阈值时,执行所述根据所述待处理软件包信息确定所述预设存储空间内的目标软件包信息的步骤。
可选地,所述判断所述数据标识数量是否满足预设标识数量条件的步骤之后,还包括:
在所述数据标识数量不满足预设标识数量条件时,根据所述数据标识数量和所述预设标识数量条件确定缺失数据标识;
根据所述缺失数据标识获取缺失软件包信息;
根据所述待处理软件包信息和所述缺失软件包信息确定所述预设存储空间内的目标软件包信息。
可选地,所述根据所述数据标识数量和所述预设标识数量条件确定缺失数据标识的步骤,包括:
根据所述数据标识数量和所述预设标识数量条件确定缺失数据标识数量;
根据所述缺失数据标识数量和所述待处理软件包信息确定缺失数据标识。
可选地,所述根据所述缺失数据标识确定缺失软件包信息的步骤,包括:
根据所述缺失数据标识确定预设缺失扫描规则;
根据所述预设缺失扫描规则获取缺失软件包信息。
可选地,所述判断所述目标类信息是否满足预设新增类条件的步骤之后,还包括:
在所述目标类信息不满足所述预设新增类条件时,根据所述目标软件包信息确定待更新软件;
获取所述目标软件包信息的目标MD5码,并根据所述待更新软确定历史MD5码;
根据所述目标MD5码与所述历史MD5码确定所述待更新软件的更新结果。
可选地,所述根据所述目标MD5码与所述历史MD5码确定所述待更新软件的更新结果的步骤,包括:
判断所述目标MD5码与所述历史MD5码是否一致;
在所述目标MD5码与所述历史MD5码不一致时,根据所述目标索引信息生成软件更新信息,并将所述软件更新信息作为所述待更新软件的更新结果。
可选地,所述判断所述目标MD5码与所述历史MD5码是否一致的步骤之后,还包括:
在所述目标MD5码与所述历史MD5码一致时,根据所述目标
索引信息生成软件运行信息,并将所述软件运行信息作为所述待更新软件的更新结果。
可选地,所述根据所述目标索引信息对所述待更新软件的索引信息进行更新的步骤之后,包括:
接收新增接口请求,并根据所述新增接口请求确定新增接口标识;
根据所述新增接口标识从预设检索映射表中查找对应的目标接口信息;
根据所述目标接口信息获取所述目标索引信息对应的软件文件。
此外,为实现上述目的,本发明还提出一种基于服务器的软件更新装置,所述基于服务器的软件更新装置包括:
获取模块,用于获取预设存储空间内的目标软件包信息,并根据所述目标软件包信息确定目标类信息及目标索引信息;
判断模块,用于判断所述目标类信息是否满足预设新增类条件;
更新模块,用于在满足所述预设新增类条件时,根据所述目标类信息确定待更新软件,并根据所述目标索引信息对所述待更新软件的索引信息进行更新。
可选地,所述获取模块,还用于获取预设存储空间内的扫描标识,并根据所述扫描标识确定预设扫描规则;
所述获取模块,还用于根据所述预设扫描规则获取所述预设存储空间内的目标软件包信息。
可选地,所述获取模块,还用于根据所述预设扫描规则获取所述预设存储空间内的待处理软件包信息;
所述获取模块,还用于获取所述待处理软件包信息对应的数据标识数量;
所述获取模块,还用于判断所述数据标识数量是否满足预设标识数量条件;
所述获取模块,还用于在所述数据标识数量满足所述预设标识数量条件时,根据所述待处理软件包信息确定所述预设存储空间内的目标软件包信息。
可选地,所述获取模块,还用于获取所述目标软件包信息的预设固定数据标识;
所述获取模块,还用于根据所述预设固定数据标识和所述待处理软件包信息确定所述预设存储空间内的目标软件包信息。
可选地,所述获取模块,还用于获取所述待处理软件包信息中各软件文件对应的存储大小;
所述获取模块,还用于判断所述存储大小是否大于预设存储大小阈值;
所述获取模块,还用于在所述储存大小大于所述预设存储大小阈值时,执行所述根据所述待处理软件包信息确定所述预设存储空间内的目标软件包信息的操作。
可选地,所述获取模块,还用于在所述数据标识数量不满足预设标识数量条件时,根据所述数据标识数量和所述预设标识数量条件确定缺失数据标识;
所述获取模块,还用于根据所述缺失数据标识获取缺失软件包信息;
所述获取模块,还用于根据所述待处理软件包信息和所述缺失软件包信息确定所述预设存储空间内的目标软件包信息。
此外,为实现上述目的,本发明还提出一种基于服务器的软件更新设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于服务器的软件更新程序,所述基于服务器的软件更新程序配置为实现如上文所述的基于服务器的软件更新方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有基于服务器的软件更新程序,所述基于服务器的软件更新程序被处理器执行时实现如上文所述的基于服务器的软件更新方法的步骤。
本发明首先获取预设存储空间内的目标软件包信息,并根据目标软件包信息确定目标类信息及目标索引信息,判断目标类信息是否满足预设新增类条件,在满足预设新增类条件时,根据目标类信息确定待更新软件,并根据目标索引信息对待更新软件的索引信息进行更新。相较于现有技术,需要重新打包编译整个软件工程,导致软件发布流程较为复杂,而本发明中获取软件包信息的目标类信息及目标索引信息,之后根据目标类信息确定待更新软件,最后根据目标索引信息对待更新软件的索引信息进行更新,实现了提高软件的更新效率,进而简化了软件的发布流程。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的基于服务器的软件更新设备的结构示意图;
图2为本发明基于服务器的软件更新方法第一实施例的流程示意图;
图3为本发明基于服务器的软件更新方法第二实施例的流程示意图;
图4为本发明基于服务器的软件更新装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的基于服务器的软件更新设备结构示意图。
如图1所示,该基于服务器的软件更新设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对基于服务器的软件更新设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及基于服务器的软件更新程序。
在图1所示的基于服务器的软件更新设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明基于服务器的软件更新设备中的处理器1001、存储器1005可以设置在基于服务器的软件更新设备中,所述基于服务器的软件更新设备通过处理器1001调用存储器1005中存储的基于服务器的软件更新程序,并执行本发明实施例提供的基于服务器的软件更新方法。
本发明实施例提供了一种基于服务器的软件更新方法,参照图2,图2为本发明基于服务器的软件更新方法第一实施例的流程示意图。
本实施例中,所述基于服务器的软件更新方法包括以下步骤:
步骤S10:获取预设存储空间内的目标软件包信息,并根据所述目标软件包信息确定目标类信息及目标索引信息。
易于理解的是,本实施例的执行主体可以是具有数据处理、网络通讯和程序运行等功能的基于服务器的软件更新设备,也可以为其他具有相似功能的计算机设备等,本实施例并不加以限制。
可以理解的是,预设存储空间可以为webserver服务程序内的存储空间,webserver服务程序可以安装在用户的终端设备上,运行时,可以获取终端设备上文件系统中的所有软件程序包,其中,软件程序包中存在多个应用软件包即为目标软件包,目标软件包中可以包括软件类信息、软件索引信息及软件程序等,类信息(Class)是面向对象程序设计实现信息封装的基础。类是一种用户定义的引用数据类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。软件索引信息可以为一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容等。
进一步地,为了能够准确获取目标软件包信息,获取预设存储空间内的目标软件包信息的步骤,可以为获取预设存储空间内的扫描标识,并根据扫描标识确定预设扫描规则,根据预设扫描规则获取所述预设存储空间内的目标软件包信息等。
扫描标识可以为用户自定义设置的特殊标识,可以用数字表示,还可以用字符表示等,预设扫描规则也可以为用户自定义设置,可以为区域扫描,还可以整体扫描等,本实施例并不加以限制。
假设获取预设存储空间内的扫描标识为数字标识,之后根据数字标识确定预设扫描规则,预设扫描规则可以为整体扫描,进而获取预设存储空间内的目标软件包信息等。
根据预设扫描规则获取预设存储空间内的目标软件包信息的步骤还可以为,根据预设扫描规则获取预设存储空间内的待处理软件包信息即文件系统中的所有软件包信息,之后获取待处理软件包信息对应的数据标识数量,判断数据标识数量是否满足预设标识数量条件,在数据标识数量满足预设标识数量条件时,根据待处理软件包信息确定预设存储空间内的目标软件包信息等。
数据标识数量可以为待处理软件包对应的数量,可以为3个,还可以为4个等,预设标识数量条件可以为用户自定义设置的需要软件包数量,可以为5个,还可以为4个等,本实施例并不加以限制。
假设获取待处理软件包信息对应的数据标识数量4个,若预设标识数量也为4个,则判定数据标识数量满足预设标识数量条件,可以根据待处理软件包信息确定预设存储空间内的目标软件包信息,其中,可以将待处理软件包信息作为目标软件包信息,还可以从待处理软件包信息中选取软件包信息,并将该软件包信息作为目标软件包信息等。
还需要说明的是,在数据标识数量不满足预设标识数量条件时,根据数据标识数量和预设标识数量条件确定缺失数据标识,之后根据缺失数据标识获取缺失软件包信息,根据待处理软件包信息和所述缺失软件包信息确定预设存储空间内的目标软件包信息等。
根据数据标识数量和预设标识数量条件确定缺失数据标识数量,根据缺失数据标识数量和待处理软件包信息确定缺失数据标识,之后根据缺失数据标识确定预设缺失扫描规则,根据预设缺失扫描规则获取缺失软件包信息,之后根据待处理软件包信息和缺失软件包信息确定预设存储空间内的目标软件包信息等。
假设获取待处理软件包信息对应的数据标识数量4个,若预设标识数量也为5个,则判定数据标识数量不满足预设标识数量条件,获取预设标识数量对应的数据标识,若预设标识数量对应的标识分别为a,b,c,d和e,当前待处理软件包信息对应的数据标识为a,b,c,d,可以确定缺失数据标识数量为1个,缺失数据标识为e,预设缺失扫描规则可以为区域扫描,最后根据预设缺失扫描规则获取缺失软件包信息等。
根据待处理软件包信息确定预设存储空间内的目标软件包信息的步骤,还可以为获取目标软件包信息的预设固定数据标识,根据预设固定数据标识和待处理软件包信息确定预设存储空间内的目标软件包信息等。
预设固定数据标识可以为用户自定义选取,也就是说,每个软件包信息中都可以自带一个数据标识,假设A软件包信息的数据标识为1,B软件包信息的数据标识为2,预设固定数据标识为2,则将B软件包信息作为目标软件包信息,假设A软件包信息的数据标识为1,B软件包信息的数据标识为2,预设固定数据标识为1和2,则将A软件包信息和B软件包信息作为目标软件包信息等。
进一步地,为了能够精准获取有效的目标软件包信息,根据待处理软件包信息确定预设存储空间内的目标软件包信息的步骤之前,获取待处理软件包信息中各软件文件对应的存储大小,判断存储大小是否大于预设存储大小阈值,在储存大小大于预设存储大小阈值时,执行根据待处理软件包信息确定预设存储空间内的目标软件包信息的操作等。
预设存储大小阈值可以为用户自定义设置,可以为1kb,也可以为0kb等,待处理软件包信息中存在多个软件文件,每个软件文件都存储关于该软件的信息,但每个软件文件对应的存储大小都不可能等于0kb,故而,可以将预设存储大小阈值设置为0kb,在各软件文件对应的储存大小都大于预设存储大小阈值时,根据待处理软件信息确定预设存储空间内的目标软件包信息等;在软件文件中存在等于0kb时,需要根据预设扫描规则获取预设存储空间内的待处理软件包信息,最后根据待处理软件包信息确定预设存储空间内的目标软件包信息,根据目标软件包信息确定目标类信息及目标索引信息等。
在具体实现中,后端运行流程可以为webserver服务程序装在终端设备上,启动时创建了Loader加载和Router路由模块对象,之后根据Loader加载模块扫描所有文件系统中现有的包,并通过get.loader获取所有接口集合文件的索引信息和目标类信息等。
步骤S20:判断所述目标类信息是否满足预设新增类条件。
预设新增类条件可以为在原始类信息上新增的类信息,假设目标类信息包括A、B和C,则原始类信息为A和B,则可根据原始类信息为A和B判断目标类信息A、B和C是否满足预设新增类条件等。
步骤S30:在满足所述预设新增类条件时,根据所述目标类信息确定待更新软件,并根据所述目标索引信息对所述待更新软件的索引信息进行更新。
假设目标类信息包括A、B和C,则原始类信息为A和B,可根据原始类信息为A和B判断目标类信息A、B和C是否满足预设新增类条件,在满足预设新增类条件,判定存在新增应用程序,则获取待更新软件,待更新软件可以为历史软件,之后获取历史软件对应的索引信息,根据目标索引信息对待更新软件的索引信息进行更新等。
在目标类信息不满足预设新增类条件时,根据目标软件包信息确定待更新软件,获取目标软件包信息的目标MD5码,并根据待更新软确定历史MD5码,判断目标MD5码与历史MD5码是否一致,在目标MD5码与历史MD5码不一致时,根据目标索引信息生成软件更新信息,并将软件更新信息作为所述待更新软件的更新结果;在目标MD5码与历史MD5码一致时,根据目标索引信息生成软件运行信息,并将软件运行信息作为待更新软件的更新结果等。
假设在目标类信息不满足预设新增类条件时,判定无新增应用程序,根据目标软件包信息确定待更新软件,获取目标软件包信息的目标MD5码,并根据待更新软确定历史MD5码,判断目标MD5码与历史MD5码是否一致,在目标MD5码与历史MD5码不一致时,应用程序有更新,根据目标索引信息生成软件更新信息,并根据目标索引信息对待更新软件的索引信息进行更新;在目标MD5码与历史MD5码一致时,根据目标索引信息生成软件运行信息,判定无新增应用程序,最后监听端口,等待相应前端请求等。
根据目标索引信息对待更新软件的索引信息进行更新的步骤之后,接收新增接口请求,并根据新增接口请求确定新增接口标识,根据新增接口标识从预设检索映射表中查找对应的目标接口信息,根据目标接口信息获取目标索引信息对应的软件文件等。
在具体实现中,前后端运行流程中可以将新增的开发代码编译好打包到dex文件中,放到文件系统中等待webserver服务端程序扫描,webserver服务程序将扫描结果索引存储在.loader索引文件中。前端通过界面调用新增接口功能,发出API请求,webserver服务端程序接收到请求,调用Router,通过URL检索映射表.lodaer找到对应的java接口,ClassLoader加载索引表中对应的dex文件即新增应用程序,从而实现了对新增接口的调用,其中,功能模块新增,原有程序已发布给客户,不方便扩展。本实施例中免去新增接口后终端软件重新编译打包升级发布的流程,可以远程访问设备,将新增接口到设备端,实现动态升级程序,来扩展webserver功能模块。
在本实施例中,首先获取预设存储空间内的目标软件包信息,并根据目标软件包信息确定目标类信息及目标索引信息,判断目标类信息是否满足预设新增类条件,在满足预设新增类条件时,根据目标类信息确定待更新软件,并根据目标索引信息对待更新软件的索引信息进行更新。相较于现有技术,需要重新打包编译整个软件工程,导致软件发布流程较为复杂,而本实施例中获取软件包信息的目标类信息及目标索引信息,之后根据目标类信息确定待更新软件,最后根据目标索引信息对待更新软件的索引信息进行更新,实现了提高软件的更新效率,进而简化了软件的发布流程。
参考图3,图3为本发明基于服务器的软件更新方法第二实施例的流程示意图。
基于上述第一实施例,在本实施例中,所述步骤S10,还包括:
步骤S101:获取预设存储空间内的扫描标识,并根据所述扫描标识确定预设扫描规则。
可以理解的是,预设存储空间可以为webserver服务程序内的存储空间,webserver服务程序可以安装在用户的终端设备上,运行时,可以获取终端设备上文件系统中的所有软件程序包,其中,软件程序包中存在多个应用软件包即为目标软件包,目标软件包中可以包括软件类信息、软件索引信息及软件程序等,类信息(Class)是面向对象程序设计实现信息封装的基础。类是一种用户定义的引用数据类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。软件索引信息可以为一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容等。
扫描标识可以为用户自定义设置的特殊标识,可以用数字表示,还可以用字符表示等,预设扫描规则也可以为用户自定义设置,可以为区域扫描,还可以整体扫描等,本实施例并不加以限制。
假设获取预设存储空间内的扫描标识为数字标识,之后根据数字标识确定预设扫描规则,预设扫描规则可以为整体扫描,进而获取预设存储空间内的目标软件包信息等。
步骤S102:根据所述预设扫描规则获取所述预设存储空间内的目标软件包信息,并根据所述目标软件包信息确定目标类信息及目标索引信息。
根据预设扫描规则获取预设存储空间内的目标软件包信息的步骤还可以为,根据预设扫描规则获取预设存储空间内的待处理软件包信息即文件系统中的所有软件包信息,之后获取待处理软件包信息对应的数据标识数量,判断数据标识数量是否满足预设标识数量条件,在数据标识数量满足预设标识数量条件时,根据待处理软件包信息确定预设存储空间内的目标软件包信息等。
数据标识数量可以为待处理软件包对应的数量,可以为3个,还可以为4个等,预设标识数量条件可以为用户自定义设置的需要软件包数量,可以为5个,还可以为4个等,本实施例并不加以限制。
假设获取待处理软件包信息对应的数据标识数量4个,若预设标识数量也为4个,则判定数据标识数量满足预设标识数量条件,可以根据待处理软件包信息确定预设存储空间内的目标软件包信息,其中,可以将待处理软件包信息作为目标软件包信息,还可以从待处理软件包信息中选取软件包信息,并将该软件包信息作为目标软件包信息等。
还需要说明的是,在数据标识数量不满足预设标识数量条件时,根据数据标识数量和预设标识数量条件确定缺失数据标识,之后根据缺失数据标识获取缺失软件包信息,根据待处理软件包信息和所述缺失软件包信息确定预设存储空间内的目标软件包信息等。
根据数据标识数量和预设标识数量条件确定缺失数据标识数量,根据缺失数据标识数量和待处理软件包信息确定缺失数据标识,之后根据缺失数据标识确定预设缺失扫描规则,根据预设缺失扫描规则获取缺失软件包信息,之后根据待处理软件包信息和缺失软件包信息确定预设存储空间内的目标软件包信息等。
假设获取待处理软件包信息对应的数据标识数量4个,若预设标识数量也为5个,则判定数据标识数量不满足预设标识数量条件,获取预设标识数量对应的数据标识,若预设标识数量对应的标识分别为a,b,c,d和e,当前待处理软件包信息对应的数据标识为a,b,c,d,可以确定缺失数据标识数量为1个,缺失数据标识为e,预设缺失扫描规则可以为区域扫描,最后根据预设缺失扫描规则获取缺失软件包信息等。
根据待处理软件包信息确定预设存储空间内的目标软件包信息的步骤,还可以为获取目标软件包信息的预设固定数据标识,根据预设固定数据标识和待处理软件包信息确定预设存储空间内的目标软件包信息等。
预设固定数据标识可以为用户自定义选取,也就是说,每个软件包信息中都可以自带一个数据标识,假设A软件包信息的数据标识为1,B软件包信息的数据标识为2,预设固定数据标识为2,则将B软件包信息作为目标软件包信息,假设A软件包信息的数据标识为1,B软件包信息的数据标识为2,预设固定数据标识为1和2,则将A软件包信息和B软件包信息作为目标软件包信息等。
进一步地,为了能够精准获取有效的目标软件包信息,根据待处理软件包信息确定预设存储空间内的目标软件包信息的步骤之前,获取待处理软件包信息中各软件文件对应的存储大小,判断存储大小是否大于预设存储大小阈值,在储存大小大于预设存储大小阈值时,执行根据待处理软件包信息确定预设存储空间内的目标软件包信息的操作等。
预设存储大小阈值可以为用户自定义设置,可以为1kb,也可以为0kb等,待处理软件包信息中存在多个软件文件,每个软件文件都存储关于该软件的信息,但每个软件文件对应的存储大小都不可能等于0kb,故而,可以将预设存储大小阈值设置为0kb,在各软件文件对应的储存大小都大于预设存储大小阈值时,根据待处理软件信息确定预设存储空间内的目标软件包信息等;在软件文件中存在等于0kb时,需要根据预设扫描规则获取预设存储空间内的待处理软件包信息,最后根据待处理软件包信息确定预设存储空间内的目标软件包信息,根据目标软件包信息确定目标类信息及目标索引信息等。
在具体实现中,后端运行流程可以为webserver服务程序装在终端设备上,启动时创建了Loader加载和Router路由模块对象,之后根据Loader加载模块扫描所有文件系统中现有的包,并通过get.loader获取所有接口集合文件的索引信息和目标类信息等。
在本实施例中,首先获取预设存储空间内的扫描标识,并根据扫描标识确定预设扫描规则,根据预设扫描规则获取所述预设存储空间内的目标软件包信息,从而可以精准获取目标软件包信息。
参照图4,图4为本发明基于服务器的软件更新装置第一实施例的结构框图。
如图4所示,本发明实施例提出的基于服务器的软件更新装置包括:
获取模块4001,用于获取预设存储空间内的目标软件包信息,并根据所述目标软件包信息确定目标类信息及目标索引信息;
判断模块4002,用于判断所述目标类信息是否满足预设新增类条件;
更新模块4003,用于在满足所述预设新增类条件时,根据所述目标类信息确定待更新软件,并根据所述目标索引信息对所述待更新软件的索引信息进行更新。
在本实施例中,首先获取预设存储空间内的目标软件包信息,并根据目标软件包信息确定目标类信息及目标索引信息,判断目标类信息是否满足预设新增类条件,在满足预设新增类条件时,根据目标类信息确定待更新软件,并根据目标索引信息对待更新软件的索引信息进行更新。相较于现有技术,需要重新打包编译整个软件工程,导致软件发布流程较为复杂,而本实施例中获取软件包信息的目标类信息及目标索引信息,之后根据目标类信息确定待更新软件,最后根据目标索引信息对待更新软件的索引信息进行更新,实现了提高软件的更新效率,进而简化了软件的发布流程。
进一步地,所述获取模块4001,还用于获取预设存储空间内的扫描标识,并根据所述扫描标识确定预设扫描规则;
所述获取模块4001,还用于根据所述预设扫描规则获取所述预设存储空间内的目标软件包信息。
进一步地,所述获取模块4001,还用于根据所述预设扫描规则获取所述预设存储空间内的待处理软件包信息;
所述获取模块4001,还用于获取所述待处理软件包信息对应的数据标识数量;
所述获取模块4001,还用于判断所述数据标识数量是否满足预设标识数量条件;
所述获取模块4001,还用于在所述数据标识数量满足所述预设标识数量条件时,根据所述待处理软件包信息确定所述预设存储空间内的目标软件包信息。
进一步地,所述获取模块4001,还用于获取所述目标软件包信息的预设固定数据标识;
所述获取模块4001,还用于根据所述预设固定数据标识和所述待处理软件包信息确定所述预设存储空间内的目标软件包信息。
进一步地,所述获取模块4001,还用于获取所述待处理软件包信息中各软件文件对应的存储大小;
所述获取模块4001,还用于判断所述存储大小是否大于预设存储大小阈值;
所述获取模块4001,还用于在所述储存大小大于所述预设存储大小阈值时,执行所述根据所述待处理软件包信息确定所述预设存储空间内的目标软件包信息的操作。
进一步地,所述获取模块4001,还用于在所述数据标识数量不满足预设标识数量条件时,根据所述数据标识数量和所述预设标识数量条件确定缺失数据标识;
所述获取模块4001,还用于根据所述缺失数据标识获取缺失软件包信息;
所述获取模块4001,还用于根据所述待处理软件包信息和所述缺失软件包信息确定所述预设存储空间内的目标软件包信息。
进一步地,所述获取模块4001,还用于根据所述数据标识数量和所述预设标识数量条件确定缺失数据标识数量;
所述获取模块4001,还用于根据所述缺失数据标识数量和所述待处理软件包信息确定缺失数据标识。
进一步地,所述获取模块4001,还用于根据所述缺失数据标识确定预设缺失扫描规则;
所述获取模块4001,还用于根据所述预设缺失扫描规则获取缺失软件包信息。
进一步地,所述更新模块4003,还用于在所述目标类信息不满足所述预设新增类条件时,根据所述目标软件包信息确定待更新软件;
所述更新模块4003,还用于获取所述目标软件包信息的目标MD5码,并根据所述待更新软确定历史MD5码;
所述更新模块4003,还用于根据所述目标MD5码与所述历史MD5码确定所述待更新软件的更新结果。
进一步地,所述更新模块4003,还用于判断所述目标MD5码与所述历史MD5码是否一致;
所述更新模块4003,还用于在所述目标MD5码与所述历史MD5码不一致时,根据所述目标索引信息生成软件更新信息,并将所述软件更新信息作为所述待更新软件的更新结果。
进一步地,所述更新模块4003,还用于在所述目标MD5码与所述历史MD5码一致时,根据所述目标索引信息生成软件运行信息,并将所述软件运行信息作为所述待更新软件的更新结果。
进一步地,所述更新模块4003,还用于接收新增接口请求,并根据所述新增接口请求确定新增接口标识;
所述更新模块4003,还用于根据所述新增接口标识从预设检索映射表中查找对应的目标接口信息;
所述更新模块4003,还用于根据所述目标接口信息获取所述目标索引信息对应的软件文件。
本发明基于服务器的软件更新装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
本发明公开了A1、一种基于服务器的软件更新方法,所述基于服务器的软件更新方法包括:
获取预设存储空间内的目标软件包信息,并根据所述目标软件包信息确定目标类信息及目标索引信息;
判断所述目标类信息是否满足预设新增类条件;
在满足所述预设新增类条件时,根据所述目标类信息确定待更新软件,并根据所述目标索引信息对所述待更新软件的索引信息进行更新。
A2、如权利要求A1所述的方法,所述获取预设存储空间内的目标软件包信息的步骤,包括:
获取预设存储空间内的扫描标识,并根据所述扫描标识确定预设扫描规则;
根据所述预设扫描规则获取所述预设存储空间内的目标软件包信息。
A3、如权利要求A2所述的方法,所述根据所述预设扫描规则获取所述预设存储空间内的目标软件包信息的步骤,包括:
根据所述预设扫描规则获取所述预设存储空间内的待处理软件包信息;
获取所述待处理软件包信息对应的数据标识数量;
判断所述数据标识数量是否满足预设标识数量条件;
在所述数据标识数量满足所述预设标识数量条件时,根据所述待处理软件包信息确定所述预设存储空间内的目标软件包信息。
A4、如权利要求A3所述的方法,所述根据所述待处理软件包信息确定所述预设存储空间内的目标软件包信息的步骤,包括:
获取所述目标软件包信息的预设固定数据标识;
根据所述预设固定数据标识和所述待处理软件包信息确定所述预设存储空间内的目标软件包信息。
A5、如权利要求A3所述的方法,所述根据所述待处理软件包信息确定所述预设存储空间内的目标软件包信息的步骤之前,还包括:
获取所述待处理软件包信息中各软件文件对应的存储大小;
判断所述存储大小是否大于预设存储大小阈值;
在所述储存大小大于所述预设存储大小阈值时,执行所述根据所述待处理软件包信息确定所述预设存储空间内的目标软件包信息的步骤。
A6、如权利要求A3所述的方法,所述判断所述数据标识数量是否满足预设标识数量条件的步骤之后,还包括:
在所述数据标识数量不满足预设标识数量条件时,根据所述数据标识数量和所述预设标识数量条件确定缺失数据标识;
根据所述缺失数据标识获取缺失软件包信息;
根据所述待处理软件包信息和所述缺失软件包信息确定所述预设存储空间内的目标软件包信息。
A7、如权利要求A6所述的方法,所述根据所述数据标识数量和所述预设标识数量条件确定缺失数据标识的步骤,包括:
根据所述数据标识数量和所述预设标识数量条件确定缺失数据标识数量;
根据所述缺失数据标识数量和所述待处理软件包信息确定缺失数据标识。
A8、如权利要求A6所述的方法,所述根据所述缺失数据标识确定缺失软件包信息的步骤,包括:
根据所述缺失数据标识确定预设缺失扫描规则;
根据所述预设缺失扫描规则获取缺失软件包信息。
A9、如权利要求A1-A8任一项所述的方法,所述判断所述目标类信息是否满足预设新增类条件的步骤之后,还包括:
在所述目标类信息不满足所述预设新增类条件时,根据所述目标软件包信息确定待更新软件;
获取所述目标软件包信息的目标MD5码,并根据所述待更新软确定历史MD5码;
根据所述目标MD5码与所述历史MD5码确定所述待更新软件的更新结果。
A10、如权利要求A9所述的方法,所述根据所述目标MD5码与所述历史MD5码确定所述待更新软件的更新结果的步骤,包括:
判断所述目标MD5码与所述历史MD5码是否一致;
在所述目标MD5码与所述历史MD5码不一致时,根据所述目标索引信息生成软件更新信息,并将所述软件更新信息作为所述待更新软件的更新结果。
A11、如权利要求A10所述的方法,所述判断所述目标MD5码与所述历史MD5码是否一致的步骤之后,还包括:
在所述目标MD5码与所述历史MD5码一致时,根据所述目标
索引信息生成软件运行信息,并将所述软件运行信息作为所述待更新软件的更新结果。
A12、如权利要求A1所述的方法,所述根据所述目标索引信息对所述待更新软件的索引信息进行更新的步骤之后,包括:
接收新增接口请求,并根据所述新增接口请求确定新增接口标识;
根据所述新增接口标识从预设检索映射表中查找对应的目标接口信息;
根据所述目标接口信息获取所述目标索引信息对应的软件文件。
本发明公开了B13、一种基于服务器的软件更新装置,所述基于服务器的软件更新装置包括:
获取模块,用于获取预设存储空间内的目标软件包信息,并根据所述目标软件包信息确定目标类信息及目标索引信息;
判断模块,用于判断所述目标类信息是否满足预设新增类条件;
更新模块,用于在满足所述预设新增类条件时,根据所述目标类信息确定待更新软件,并根据所述目标索引信息对所述待更新软件的索引信息进行更新。
B14、如权利要求B13所述的装置,所述获取模块,还用于获取预设存储空间内的扫描标识,并根据所述扫描标识确定预设扫描规则;
所述获取模块,还用于根据所述预设扫描规则获取所述预设存储空间内的目标软件包信息。
B15、如权利要求B14所述的装置,所述获取模块,还用于根据所述预设扫描规则获取所述预设存储空间内的待处理软件包信息;
所述获取模块,还用于获取所述待处理软件包信息对应的数据标识数量;
所述获取模块,还用于判断所述数据标识数量是否满足预设标识数量条件;
所述获取模块,还用于在所述数据标识数量满足所述预设标识数量条件时,根据所述待处理软件包信息确定所述预设存储空间内的目标软件包信息。
B16、如权利要求B15所述的装置,所述获取模块,还用于获取所述目标软件包信息的预设固定数据标识;
所述获取模块,还用于根据所述预设固定数据标识和所述待处理软件包信息确定所述预设存储空间内的目标软件包信息。
B17、如权利要求B15所述的装置,所述获取模块,还用于获取所述待处理软件包信息中各软件文件对应的存储大小;
所述获取模块,还用于判断所述存储大小是否大于预设存储大小阈值;
所述获取模块,还用于在所述储存大小大于所述预设存储大小阈值时,执行所述根据所述待处理软件包信息确定所述预设存储空间内的目标软件包信息的操作。
B18、如权利要求B15所述的装置,所述获取模块,还用于在所述数据标识数量不满足预设标识数量条件时,根据所述数据标识数量和所述预设标识数量条件确定缺失数据标识;
所述获取模块,还用于根据所述缺失数据标识获取缺失软件包信息;
所述获取模块,还用于根据所述待处理软件包信息和所述缺失软件包信息确定所述预设存储空间内的目标软件包信息。
本发明公开了C19、一种基于服务器的软件更新设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于服务器的软件更新程序,所述基于服务器的软件更新程序配置为实现如上文所述的基于服务器的软件更新方法的步骤。
本发明公开了D20、一种存储介质,所述存储介质上存储有基于服务器的软件更新程序,所述基于服务器的软件更新程序被处理器执行时实现如上文所述的基于服务器的软件更新方法的步骤。
Claims (10)
1.一种基于服务器的软件更新方法,其特征在于,所述基于服务器的软件更新方法包括:
获取预设存储空间内的目标软件包信息,并根据所述目标软件包信息确定目标类信息及目标索引信息;
判断所述目标类信息是否满足预设新增类条件;
在满足所述预设新增类条件时,根据所述目标类信息确定待更新软件,并根据所述目标索引信息对所述待更新软件的索引信息进行更新。
2.如权利要求1所述的方法,其特征在于,所述获取预设存储空间内的目标软件包信息的步骤,包括:
获取预设存储空间内的扫描标识,并根据所述扫描标识确定预设扫描规则;
根据所述预设扫描规则获取所述预设存储空间内的目标软件包信息。
3.如权利要求2所述的方法,其特征在于,所述根据所述预设扫描规则获取所述预设存储空间内的目标软件包信息的步骤,包括:
根据所述预设扫描规则获取所述预设存储空间内的待处理软件包信息;
获取所述待处理软件包信息对应的数据标识数量;
判断所述数据标识数量是否满足预设标识数量条件;
在所述数据标识数量满足所述预设标识数量条件时,根据所述待处理软件包信息确定所述预设存储空间内的目标软件包信息。
4.如权利要求1-3任一项所述的方法,其特征在于,所述判断所述目标类信息是否满足预设新增类条件的步骤之后,还包括:
在所述目标类信息不满足所述预设新增类条件时,根据所述目标软件包信息确定待更新软件;
获取所述目标软件包信息的目标MD5码,并根据所述待更新软确定历史MD5码;
根据所述目标MD5码与所述历史MD5码确定所述待更新软件的更新结果。
5.如权利要求4所述的方法,其特征在于,所述根据所述目标MD5码与所述历史MD5码确定所述待更新软件的更新结果的步骤,包括:
判断所述目标MD5码与所述历史MD5码是否一致;
在所述目标MD5码与所述历史MD5码不一致时,根据所述目标索引信息生成软件更新信息,并将所述软件更新信息作为所述待更新软件的更新结果。
6.如权利要求5所述的方法,其特征在于,所述判断所述目标MD5码与所述历史MD5码是否一致的步骤之后,还包括:
在所述目标MD5码与所述历史MD5码一致时,根据所述目标
索引信息生成软件运行信息,并将所述软件运行信息作为所述待更新软件的更新结果。
7.如权利要求1所述的方法,其特征在于,所述根据所述目标索引信息对所述待更新软件的索引信息进行更新的步骤之后,包括:
接收新增接口请求,并根据所述新增接口请求确定新增接口标识;
根据所述新增接口标识从预设检索映射表中查找对应的目标接口信息;
根据所述目标接口信息获取所述目标索引信息对应的软件文件。
8.一种基于服务器的软件更新装置,其特征在于,所述基于服务器的软件更新装置包括:
获取模块,用于获取预设存储空间内的目标软件包信息,并根据所述目标软件包信息确定目标类信息及目标索引信息;
判断模块,用于判断所述目标类信息是否满足预设新增类条件;
更新模块,用于在满足所述预设新增类条件时,根据所述目标类信息确定待更新软件,并根据所述目标索引信息对所述待更新软件的索引信息进行更新。
9.一种基于服务器的软件更新设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于服务器的软件更新程序,所述基于服务器的软件更新程序配置为实现如权利要求1至7中任一项所述的基于服务器的软件更新方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有基于服务器的软件更新程序,所述基于服务器的软件更新程序被处理器执行时实现如权利要求1至7任一项所述的基于服务器的软件更新方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011554741.6A CN112579129A (zh) | 2020-12-21 | 2020-12-21 | 基于服务器的软件更新方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011554741.6A CN112579129A (zh) | 2020-12-21 | 2020-12-21 | 基于服务器的软件更新方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112579129A true CN112579129A (zh) | 2021-03-30 |
Family
ID=75139653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011554741.6A Pending CN112579129A (zh) | 2020-12-21 | 2020-12-21 | 基于服务器的软件更新方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112579129A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114594964A (zh) * | 2022-03-10 | 2022-06-07 | 北京熵核科技有限公司 | 软件包的输出常量池的生成方法及装置 |
-
2020
- 2020-12-21 CN CN202011554741.6A patent/CN112579129A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114594964A (zh) * | 2022-03-10 | 2022-06-07 | 北京熵核科技有限公司 | 软件包的输出常量池的生成方法及装置 |
CN114594964B (zh) * | 2022-03-10 | 2022-10-11 | 北京熵核科技有限公司 | 软件包的输出常量池的生成方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107870787B (zh) | 应用程序插件化加载方法及系统 | |
KR100864192B1 (ko) | 사전 내면화된 프로그램 파일들을 생성 및 이용하기 위한 방법 및 디바이스 | |
CN109672580B (zh) | 全链路监控方法、装置、终端设备及存储介质 | |
CN111930382B (zh) | 应用页面的接入方法、装置及设备 | |
CN111068328A (zh) | 游戏广告配置表格的生成方法、终端设备及介质 | |
CN113448756B (zh) | 一种进程间通信系统、方法及计算设备 | |
CN111343181A (zh) | 报文的处理方法,系统以及数据池和计算机可读存储介质 | |
CN113050984A (zh) | 资源调取方法、装置、电子设备及存储介质 | |
JP2006048645A (ja) | ドキュメントにコンテキスト情報を埋め込むための方法およびシステム | |
CN110765394A (zh) | so文件加载方法、装置、存储介质及终端设备 | |
CN111857881A (zh) | 基于repo的manifest仓库加载方法、装置及存储介质 | |
CN112579129A (zh) | 基于服务器的软件更新方法、装置、设备及存储介质 | |
CN112612833B (zh) | 规则包更新方法、装置、设备及存储介质 | |
US20050060378A1 (en) | Method and apparatus for providing language modularization | |
CN111078631A (zh) | 文件的处理方法、终端设备及存储介质 | |
CN115576624A (zh) | 一种编程框架优化方法、系统、终端设备及存储介质 | |
CN111857736B (zh) | 云计算产品的生成方法、装置、设备及存储介质 | |
CN114936368A (zh) | 一种Java内存木马检测方法、终端设备及存储介质 | |
CN112950370A (zh) | 业务处理方法、装置、设备及存储介质 | |
CN113791795A (zh) | 插件的安装方法、装置、系统、设备及存储介质 | |
CN111078571A (zh) | 模拟响应的测试方法、终端设备及计算机可读存储介质 | |
CN114398073B (zh) | 基于rn的应用更新方法及装置 | |
CN116974653B (zh) | 类加载方法及系统 | |
CN112988592B (zh) | 代码检测方法、装置、设备和存储介质 | |
CN117056906B (zh) | 一种指令访问控制方法、系统、存储介质及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210330 |
|
WD01 | Invention patent application deemed withdrawn after publication |