CN117369845A - 基于区块链的sdk更新方法、装置及计算机设备 - Google Patents

基于区块链的sdk更新方法、装置及计算机设备 Download PDF

Info

Publication number
CN117369845A
CN117369845A CN202311154286.4A CN202311154286A CN117369845A CN 117369845 A CN117369845 A CN 117369845A CN 202311154286 A CN202311154286 A CN 202311154286A CN 117369845 A CN117369845 A CN 117369845A
Authority
CN
China
Prior art keywords
sdk
software development
development kit
change
updated
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
Application number
CN202311154286.4A
Other languages
English (en)
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.)
Bank of China Ltd
Original Assignee
Bank of China 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 Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN202311154286.4A priority Critical patent/CN117369845A/zh
Publication of CN117369845A publication Critical patent/CN117369845A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • 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/2365Ensuring data consistency and integrity
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及互联网技术领域,特别是涉及一种基于区块链的SDK更新方法、装置、计算机设备、存储介质和计算机程序产品。服务器通过获取SDK生成时的描述信息,将描述信息存储至区块链,并在监测到SDK发生变更时,确定SDK的变更信息,将变更信息存储至区块链,同时还可以向SDK的客户端发送变更通知信息,以指示客户端对本地的SDK进行更新。由于服务器通过主动监测的方式发现SDK的变更,并在监测到SDK变更时,主动向该SDK的客户端发送变更通知信息,不仅整个过程无需人力介入,而且不会存在变更通知遗漏的情况。

Description

基于区块链的SDK更新方法、装置及计算机设备
技术领域
本申请涉及互联网技术领域,特别是涉及一种基于区块链的SDK更新方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着互联网技术的发展,各种应用(如银行的微服务)层出不穷。在开发时,通常将应用的功能模块的代码逻辑封装为一个软件开发工具包(Software Development Kit,简称SDK)。因此,应用的功能受SDK版本的影响,不同版本SDK的业务逻辑可能不同。
然而,在日新月异的新需求下,应用经常发生变更,SDK提供方需要及时将变更后的接口程序包通知消费方。在整个过程中,需要大量人力介入,包括变更信息的提取、消费方的筛选、通知的发出等。而且一个接口往往有很多消费方,存在变更通知遗漏的情况,导致相关系统接口调用失败的问题。
发明内容
基于此,有必要针对上述变更通知遗漏而导致接口调用失败的技术问题,提供一种能够有效通知变更的基于区块链的SDK更新方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种基于区块链的SDK更新方法,所述方法包括:
获取软件开发工具包SDK生成时的描述信息,将所述描述信息存储至区块链,所述描述信息包括所述软件开发工具包SDK的名称、初始版本标识、生成时间以及所述软件开发工具包SDK的初始哈希值;
当监测到所述软件开发工具包SDK发生变更时,确定所述软件开发工具包SDK的变更信息,将所述变更信息存储至所述区块链;所述变更信息包括所述软件开发工具包SDK的名称、变更后的版本标识、变更时间以及变更后的所述软件开发工具包SDK的更新哈希值;
向所述软件开发工具包SDK的客户端发送变更通知信息,所述变更通知信息携带有所述软件开发工具包SDK的变更信息;所述变更通知信息用于指示所述客户端对所述软件开发工具包SDK进行更新。
在其中一个实施例中,所述方法还包括:
接收所述客户端发送的对所述软件开发工具包SDK的更新请求,所述更新请求中包括待更新的软件开发工具包SDK的名称和目标版本标识;
根据所述更新请求向所述客户端下发所述待更新的软件开发工具包SDK,以指示所述客户端根据所述待更新的软件开发工具包SDK在本地部署。
在其中一个实施例中,所述向所述软件开发工具包SDK的客户端发送变更通知信息,包括:
通过5G消息机制向所述软件开发工具包SDK的客户端发送变更通知信息;或者,
通过Kafka消息机制向所述软件开发工具包SDK的客户端发送变更通知信息。
第二方面,本申请提供了一种基于区块链的SDK更新方法,所述方法包括:
获取针对软件开发工具包SDK的变更通知信息,所述变更通知信息是服务器在监测到所述软件开发工具包SDK发生变更时发出的,所述变更通知信息携带有所述软件开发工具包SDK的变更信息,所述变更信息包括所述软件开发工具包SDK的名称、变更后的版本标识、变更时间以及变更后的所述软件开发工具包SDK的更新哈希值;
根据所述变更通知信息以及所述软件开发工具包SDK的本地描述信息,确定是否需要对本地的所述软件开发工具包SDK进行更新;
当确定需要对本地的所述软件开发工具包SDK进行更新时,获取待更新的软件开发工具包SDK并在本地部署。
在其中一个实施例中,所述当确定需要对本地的所述软件开发工具包SDK进行更新时,获取待更新的软件开发工具包SDK并在本地部署,包括:
当确定需要对本地的所述软件开发工具包SDK进行更新时,向所述服务器发送更新请求,所述更新请求中包括待更新的软件开发工具包SDK的名称和目标版本标识;
接收所述服务器根据所述更新请求返回的所述待更新的软件开发工具包SDK;
根据所述待更新的软件开发工具包SDK在本地部署。
在其中一个实施例中,所述方法还包括:
获取对目标软件开发工具包SDK的变更查询请求,所述变更查询请求中包括所述目标软件开发工具包SDK的名称;
根据所述目标软件开发工具包SDK的名称在区块链查询,得到所述目标软件开发工具包SDK的历史变更记录,所述历史变更记录包括所述目标软件开发工具包SDK的历史版本标识、与所述历史版本标识对应的时间和历史哈希值;所述区块链中存储有所述软件开发工具包SDK生成时的描述信息以及所述软件开发工具包SDK发生变更时的变更信息。
第三方面,本申请提供了一种基于区块链的SDK更新装置,所述装置包括:
存储模块,用于获取软件开发工具包SDK生成时的描述信息,将所述描述信息存储至区块链,所述描述信息包括所述软件开发工具包SDK的名称、初始版本标识、生成时间以及所述软件开发工具包SDK的初始哈希值;
监测模块,用于当监测到所述软件开发工具包SDK发生变更时,确定所述软件开发工具包SDK的变更信息,将所述变更信息存储至所述区块链;所述变更信息包括所述软件开发工具包SDK的名称、变更后的版本标识、变更时间以及变更后的所述软件开发工具包SDK的更新哈希值;
通知发送模块,用于向所述软件开发工具包SDK的客户端发送变更通知信息,所述变更通知信息携带有所述软件开发工具包SDK的变更信息;所述变更通知信息用于指示所述客户端对所述软件开发工具包SDK进行更新。
第四方面,本申请提供了一种基于区块链的SDK更新装置,所述装置包括:
通知获取模块,用于获取针对软件开发工具包SDK的变更通知信息,所述变更通知信息是服务器在监测到所述软件开发工具包SDK发生变更时发出的,所述变更通知信息携带有所述软件开发工具包SDK的变更信息,所述变更信息包括所述软件开发工具包SDK的名称、变更后的版本标识、变更时间以及变更后的所述软件开发工具包SDK的更新哈希值;
更新判断模块,用于根据所述变更通知信息以及所述软件开发工具包SDK的本地描述信息,确定是否需要对本地的所述软件开发工具包SDK进行更新;
更新模块,用于当确定需要对本发的所述软件开发工具包SDK进行更新时,获取待更新的软件开发工具包SDK并在本地部署。
第五方面,本申请提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
第六方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
第七方面,本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法的步骤。
上述基于区块链的SDK更新方法方法、装置、计算机设备、存储介质和计算机程序产品,服务器通过获取SDK生成时的描述信息,将描述信息存储至区块链,并在监测到SDK发生变更时,确定SDK的变更信息,将变更信息存储至区块链,同时还可以向SDK的客户端发送变更通知信息,以指示客户端对本地的SDK进行更新。由于服务器通过主动监测的方式发现SDK的变更,并在监测到SDK变更时,主动向该SDK的客户端发送变更通知信息,不仅整个过程无需人力介入,而且不会存在变更通知遗漏的情况。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中基于区块链的SDK更新方法的应用环境图;
图2为一个实施例中基于区块链的SDK更新方法的流程示意图;
图3为一个实施例中SDK更新步骤的流程示意图;
图4为另一个实施例中基于区块链的SDK更新方法的流程示意图;
图5为另一个实施例中SDK更新步骤的流程示意图;
图6为一个实施例中SDK查询步骤的流程示意图;
图7为一个实施例中基于区块链的SDK更新装置的结构框图;
图8为另一个实施例中基于区块链的SDK更新装置的结构框图;
图9为一个实施例中计算机设备的内部结构图;
图10为另一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的基于区块链的SDK更新方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。区块链106可以存储服务器104需要处理的数据。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。区块链106就是一个又一个区块组成的链条,每一个区块中保存了一定的信息,它们按照各自产生的时间顺序连接成链条。
在一个示例性的实施例中,如图2所示,提供了一种基于区块链的SDK更新方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤202至步骤206。其中:
步骤202,获取SDK生成时的描述信息,将描述信息存储至区块链。
其中,描述信息可以包括生成的SDK的名称、初始版本标识、生成时间以及SDK的初始哈希值。具体地,名称可以是用于区分不同SDK的唯一记号,版本标识则是指SDK的版本标志,用于区分同一SDK的不同版本。通常,随着SDK的不断迭代更新,同一SDK可能存在多个版本,不同的版本标识则对应SDK的不同版本。初始版本标识则是指首次上线或发布的SDK所对应的版本标志。生成时间也即SDK首次上线或发布时所对应的时间信息,其具体可以是时间戳。SDK的初始哈希值则是对首次上线或发布的SDK的内容进行哈希计算后得到的值。
在本实施例中,当某一SDK上线或发布时,服务器则可以获取到该SDK的描述信息,并将描述信息存储至区块链。
步骤204,当监测到SDK发生变更时,确定SDK的变更信息,将变更信息存储至区块链。
其中,SDK发生变更可以是SDK的功能或代码逻辑发生变更。变更信息则可以包括对应SDK的名称、变更后的版本标识、变更时间以及变更后的SDK的更新哈希值。具体地,变更后的版本标识则是指当前监测的已发生变更的SDK当前所对应的版本标志。变更时间也即当前监测到SDK发生变更的时间,其也可以是时间戳。SDK的更新哈希值则是对当前已更新的SDK的内容进行哈希计算后得到的值。
在本实施例中,当服务器监测到某一SDK发生变更时,则可以确定该SDK的变更信息,并将变更信息存储至区块链。
步骤206,向SDK的客户端发送变更通知信息。
其中,客户端可以是加载有对应SDK的客户端。变更通知信息携带有SDK的变更信息。具体地,变更通知信息用于指示客户端对本地的SDK进行更新。
上述基于区块链的SDK更新方法中,服务器通过获取SDK生成时的描述信息,将描述信息存储至区块链,并在监测到SDK发生变更时,确定SDK的变更信息,将变更信息存储至区块链,同时还可以向SDK的客户端发送变更通知信息,以指示客户端对本地的SDK进行更新。由于服务器通过主动监测的方式发现SDK的变更,并在监测到SDK变更时,主动向该SDK的客户端发送变更通知信息,不仅整个过程无需人力介入,而且不会存在变更通知遗漏的情况。
在一种场景下,在步骤206中,向SDK的客户端发送变更通知信息,具体可以包括:通过5G消息机制向SDK的客户端发送变更通知信息。其中,5G,即第5代移动通信技术(5thgeneration mobile networks或5th generation wireless systems、5th-Generation,简称5G或5G技术)是最新一代蜂窝移动通信技术,也是继4G(LTE-A、WiMax)、3G(UMTS、LTE)和2G(GMS)系统之后的延伸。5G的性能目标是高数据速率、减少延迟、节省能源、降低成本、提高系统容量和大规模设备连接。5G消息也是短信业务的升级,是运营商的一种基础电信服务,其基于IP(Internet Protocol,网际互连协议)技术实现业务体验的飞跃,支持的媒体格式更多,表现形式更丰富。在本实施例中,通过5G消息机制向SDK的客户端发送变更通知信息,从而能够进一步提高变更通知的效率。
在一种场景下,在步骤206中,向SDK的客户端发送变更通知信息,具体还可以包括:通过Kafka消息机制向SDK的客户端发送变更通知信息。其中,Kafka是由Apache(一款网页服务器)软件基金会开发的一个开源流处理平台,其是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。对于像Hadoop(分布式系统基础架构)一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。在本实施例中,通过Kafka消息机制向SDK的客户端发送变更通知信息,从而实现变更通知的实时性。
在一个示例性的实施例中,如图3所示,在步骤206中,向SDK的客户端发送变更通知信息之后,上述方法还可以包括如下步骤:
步骤302,接收客户端发送的对SDK的更新请求。
其中,更新请求中包括待更新的SDK的名称和目标版本标识。具体地,目标版本标识可以是客户端所希望更新的版本的版本标志。待更新的SDK可以是客户端所希望更新的SDK。
在本实施例中,服务器在向SDK的客户端发送变更通知信息后,客户端则可以基于该变更通知信息确定是否需要对该SDK进行更新,当确定需要对该SDK进行更新时,则可以向服务器发送对该SDK的更新请求,服务器则可以接收到对SDK的更新请求,并基于后续步骤进行处理。
步骤304,根据更新请求向客户端下发待更新的SDK。
其中,待更新的SDK可以是上述客户端请求的希望更新的SDK。具体地,服务器根据上述步骤中客户端的更新请求而向客户端下发待更新的SDK,以指示客户端根据待更新的SDK在本地部署,即使得客户端可以根据待更新的SDK对本地对应的SDK进行更新,从而实现SDK的更新,避免遗漏更新的问题。
在一个示例性的实施例中,如图4所示,本申请还提供了一种基于区块链的SDK更新方法,以该方法应用于图1中终端的客户端为例进行说明,包括以下步骤402至步骤406。其中:
步骤402,获取针对SDK的变更通知信息。
其中,变更通知信息是服务器在监测到SDK发生变更时发出的。变更通知信息携带有SDK的变更信息,变更信息则包括SDK的名称、变更后的版本标识、变更时间以及变更后的SDK的更新哈希值。具体地,变更后的版本标识则是指已发生变更的SDK当前所对应的版本标志。变更时间也即SDK发生变更的时间,其也可以是时间戳。变更后的SDK的更新哈希值则是对已更新的SDK的内容进行哈希计算后得到的值。
在本实施例中,当服务器监测到SDK发生变更时,则可以向对应客户端发送变更通知信息,客户端则可以获取到针对SDK的变更通知信息。
步骤404,根据变更通知信息以及SDK的本地描述信息,确定是否需要对本地的SDK进行更新。
其中,本地描述信息可以是客户端本地SDK的相关描述信息,例如,可以包括该本地SDK的名称、当前版本标识、当前版本的生成时间以及当前版本的SDK哈希值。又由于变更通知信息中包括当前变更的SDK的名称、变更后的版本标识、变更时间以及变更后的SDK的更新哈希值。因此,客户端可以根据变更通知信息以及SDK的本地描述信息,确定是否需要对本地的SDK进行更新。
具体地,客户端可以根据变更通知信息中当前变更的SDK的名称,而确定本地相同名称的SDK,进而可以比较本地SDK的当前版本标识与变更通知信息中变更后的版本标识是否一致,如果两者一致,则表示本地的SDK已为最新版本,因此无需对本地的SDK进行更新。如果两者不一致,则表示本地的SDK不为最新版本,因此需要对本地的SDK进行更新。
在一种场景下,客户端还可以根据变更通知信息中当前变更的SDK的名称,而确定本地相同名称的SDK,进而可以比较本地SDK当前版本的SDK哈希值与变更通知信息中变更后的SDK的更新哈希值是否一致,如果两者一致,则表示本地的SDK已为最新版本,因此无需对本地的SDK进行更新。如果两者不一致,则表示本地的SDK不为最新版本,因此需要对本地的SDK进行更新。
步骤406,当确定需要对本地的SDK进行更新时,获取待更新的SDK并在本地部署。
其中,待更新的SDK可以是本地需要更新的SDK的最新版本。具体地,当客户端经过上述步骤确定需要对本地的SDK进行更新时,则可以获取待更新的SDK并在本地部署。
上述基于区块链的SDK更新方法中,客户端通过获取针对SDK的变更通知信息,并根据变更通知信息以及SDK的本地描述信息,确定是否需要对本地的SDK进行更新,当确定需要对本地的SDK进行更新时,获取待更新的SDK并在本地部署。由于服务器通过主动监测的方式发现SDK的变更,并在监测到SDK变更时,主动向该SDK的客户端发送变更通知信息,使得客户端不会遗漏SDK的变更通知,此外,客户端还可以根据变更通知信息自行决定是否需要对本地SDK进行更新,并在确定需要更新时,获取待更新的SDK并在本地部署,从而使得客户端的更新更加灵活,且其整个过程无需人力介入。
在一个示例性的实施例中,如图5所示,在步骤406中,当确定需要对本地的SDK进行更新时,获取待更新的SDK并在本地部署,具体还可以包括:
步骤502,当确定需要对本地的SDK进行更新时,向服务器发送更新请求。
其中,更新请求中包括待更新的SDK的名称和目标版本标识。具体地,待更新的SDK可以是客户端想要更新的SDK,目标版本标识则是客户端想要更新的版本的版本标识。在本实施例中,当客户端通过上述步骤确定需要对本地的SDK进行更新时,则可以向服务器发送更新请求,并在更新请求中携带待更新的SDK的名称和目标版本标识。
步骤504,接收服务器根据更新请求返回的待更新的SDK。
其中,待更新的SDK可以是上述客户端请求的希望更新的SDK。具体地,服务器可以根据上述步骤中客户端的更新请求而向客户端下发待更新的SDK,客户端则可以接收到该待更新的SDK,并通过后续步骤进行更新。
步骤506,根据待更新的SDK在本地部署。
具体地,客户端根据接收的待更新的SDK在本地部署,即使得客户端可以根据待更新的SDK对本地对应的SDK进行更新,从而实现SDK的更新,避免遗漏更新的问题。
在一个示例性的实施例中,如图6所示,上述基于区块链的SDK更新方法还可以包括如下步骤:
步骤602,获取对目标SDK的变更查询请求。
其中,变更查询请求可以是用于查询目标SDK变更情况的请求或命令。变更查询请求中包括目标SDK的名称,目标SDK则是当前请求查询的SDK。在本实施例中,当用户需要查询某一SDK的变更情况时,则可以向客户端发起变更查询请求,例如,可以向客户端输入想要查询的目标SDK的名称。客户端则可以获取到对目标SDK的变更查询请求。
步骤604,根据目标SDK的名称在区块链查询,得到目标SDK的历史变更记录。
其中,区块链中存储有所有SDK生成时的描述信息以及SDK发生变更时的变更信息。具体地,描述信息可以包括生成的SDK的名称、初始版本标识、生成时间以及SDK的初始哈希值。变更信息可以包括对应SDK的名称、变更后的版本标识、变更时间以及变更后的SDK的更新哈希值。而历史变更记录则可以包括目标SDK的历史版本标识、与历史版本标识对应的时间和历史哈希值。
在本实施例中,客户端可以根据变更查询请求中目标SDK的名称在区块链查询,从而得到目标SDK的历史变更记录,即得到该目标SDK生成时的初始版本标识、生成时间以及初始哈希值,若该SDK发生过变更,则还可以得到该SDK每次变更时记录的变更后的版本标识、变更时间以及变更后的SDK的更新哈希值。
由于SDK生成时的描述信息以及SDK发生变更时的变更信息都记录在区块链,又由于区块链具有不可篡改、全程留痕的特性,因此,基于区块链的记录可以实现SDK历史变更记录的回溯,能够提高SDK的可追溯性。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的基于区块链的SDK更新方法的基于区块链的SDK更新装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个基于区块链的SDK更新装置实施例中的具体限定可以参见上文中对于基于区块链的SDK更新方法的限定,在此不再赘述。
在一个示例性的实施例中,如图7所示,提供了一种基于区块链的SDK更新装置,包括:存储模块702、监测模块704和通知发送模块706,其中:
存储模块702,用于获取软件开发工具包SDK生成时的描述信息,将所述描述信息存储至区块链,所述描述信息包括所述软件开发工具包SDK的名称、初始版本标识、生成时间以及所述软件开发工具包SDK的初始哈希值;
监测模块704,用于当监测到所述软件开发工具包SDK发生变更时,确定所述软件开发工具包SDK的变更信息,将所述变更信息存储至所述区块链;所述变更信息包括所述软件开发工具包SDK的名称、变更后的版本标识、变更时间以及变更后的所述软件开发工具包SDK的更新哈希值;
通知发送模块706,用于向所述软件开发工具包SDK的客户端发送变更通知信息,所述变更通知信息携带有所述软件开发工具包SDK的变更信息;所述变更通知信息用于指示所述客户端对所述软件开发工具包SDK进行更新。
在一个示例性的实施例中,上述装置还可以包括:请求接收模块,用于接收所述客户端发送的对所述软件开发工具包SDK的更新请求,所述更新请求中包括待更新的软件开发工具包SDK的名称和目标版本标识;SDK发送模块,用于根据所述更新请求向所述客户端下发所述待更新的软件开发工具包SDK,以指示所述客户端根据所述待更新的软件开发工具包SDK在本地部署。
在一个示例性的实施例中,通知发送模块还用于:通过5G消息机制向所述软件开发工具包SDK的客户端发送变更通知信息;或者,通过Kafka消息机制向所述软件开发工具包SDK的客户端发送变更通知信息。
在一个示例性的实施例中,如图8所示,提供了一种基于区块链的SDK更新装置,包括:通知获取模块802、更新判断模块804和更新模块806,其中:
通知获取模块802,用于获取针对软件开发工具包SDK的变更通知信息,所述变更通知信息是服务器在监测到所述软件开发工具包SDK发生变更时发出的,所述变更通知信息携带有所述软件开发工具包SDK的变更信息,所述变更信息包括所述软件开发工具包SDK的名称、变更后的版本标识、变更时间以及变更后的所述软件开发工具包SDK的更新哈希值;
更新判断模块804,用于根据所述变更通知信息以及所述软件开发工具包SDK的本地描述信息,确定是否需要对本地的所述软件开发工具包SDK进行更新;
更新模块806,用于当确定需要对本发的所述软件开发工具包SDK进行更新时,获取待更新的软件开发工具包SDK并在本地部署。
在一个示例性的实施例中,更新模块具体用于:当确定需要对本地的所述软件开发工具包SDK进行更新时,向所述服务器发送更新请求,所述更新请求中包括待更新的软件开发工具包SDK的名称和目标版本标识;接收所述服务器根据所述更新请求返回的所述待更新的软件开发工具包SDK;根据所述待更新的软件开发工具包SDK在本地部署。
在一个示例性的实施例中,所述装置还包括:请求获取模块,用于获取对目标软件开发工具包SDK的变更查询请求,所述变更查询请求中包括所述目标软件开发工具包SDK的名称;查询模块,用于根据所述目标软件开发工具包SDK的名称在区块链查询,得到所述目标软件开发工具包SDK的历史变更记录,所述历史变更记录包括所述目标软件开发工具包SDK的历史版本标识、与所述历史版本标识对应的时间和历史哈希值;所述区块链中存储有所述软件开发工具包SDK生成时的描述信息以及所述软件开发工具包SDK发生变更时的变更信息。
上述基于区块链的SDK更新装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个示例性的实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储SDK的相关数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于区块链的SDK更新方法。
在一个示例性的实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图10所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种基于区块链的SDK更新方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图9和图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个示例性的实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现如上方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上方法的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上方法的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要符合相关规定。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于区块链的SDK更新方法,其特征在于,所述方法包括:
获取软件开发工具包SDK生成时的描述信息,将所述描述信息存储至区块链,所述描述信息包括所述软件开发工具包SDK的名称、初始版本标识、生成时间以及所述软件开发工具包SDK的初始哈希值;
当监测到所述软件开发工具包SDK发生变更时,确定所述软件开发工具包SDK的变更信息,将所述变更信息存储至所述区块链;所述变更信息包括所述软件开发工具包SDK的名称、变更后的版本标识、变更时间以及变更后的所述软件开发工具包SDK的更新哈希值;
向所述软件开发工具包SDK的客户端发送变更通知信息,所述变更通知信息携带有所述软件开发工具包SDK的变更信息;所述变更通知信息用于指示所述客户端对所述软件开发工具包SDK进行更新。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的对所述软件开发工具包SDK的更新请求,所述更新请求中包括待更新的软件开发工具包SDK的名称和目标版本标识;
根据所述更新请求向所述客户端下发所述待更新的软件开发工具包SDK,以指示所述客户端根据所述待更新的软件开发工具包SDK在本地部署。
3.根据权利要求1或2所述的方法,其特征在于,所述向所述软件开发工具包SDK的客户端发送变更通知信息,包括:
通过5G消息机制向所述软件开发工具包SDK的客户端发送变更通知信息;或者,
通过Kafka消息机制向所述软件开发工具包SDK的客户端发送变更通知信息。
4.一种基于区块链的SDK更新方法,其特征在于,所述方法包括:
获取针对软件开发工具包SDK的变更通知信息,所述变更通知信息是服务器在监测到所述软件开发工具包SDK发生变更时发出的,所述变更通知信息携带有所述软件开发工具包SDK的变更信息,所述变更信息包括所述软件开发工具包SDK的名称、变更后的版本标识、变更时间以及变更后的所述软件开发工具包SDK的更新哈希值;
根据所述变更通知信息以及所述软件开发工具包SDK的本地描述信息,确定是否需要对本地的所述软件开发工具包SDK进行更新;
当确定需要对本地的所述软件开发工具包SDK进行更新时,获取待更新的软件开发工具包SDK并在本地部署。
5.根据权利要求4所述的方法,其特征在于,所述当确定需要对本地的所述软件开发工具包SDK进行更新时,获取待更新的软件开发工具包SDK并在本地部署,包括:
当确定需要对本地的所述软件开发工具包SDK进行更新时,向所述服务器发送更新请求,所述更新请求中包括待更新的软件开发工具包SDK的名称和目标版本标识;
接收所述服务器根据所述更新请求返回的所述待更新的软件开发工具包SDK;
根据所述待更新的软件开发工具包SDK在本地部署。
6.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:
获取对目标软件开发工具包SDK的变更查询请求,所述变更查询请求中包括所述目标软件开发工具包SDK的名称;
根据所述目标软件开发工具包SDK的名称在区块链查询,得到所述目标软件开发工具包SDK的历史变更记录,所述历史变更记录包括所述目标软件开发工具包SDK的历史版本标识、与所述历史版本标识对应的时间和历史哈希值;所述区块链中存储有所述软件开发工具包SDK生成时的描述信息以及所述软件开发工具包SDK发生变更时的变更信息。
7.一种基于区块链的SDK更新装置,其特征在于,所述装置包括:
存储模块,用于获取软件开发工具包SDK生成时的描述信息,将所述描述信息存储至区块链,所述描述信息包括所述软件开发工具包SDK的名称、初始版本标识、生成时间以及所述软件开发工具包SDK的初始哈希值;
监测模块,用于当监测到所述软件开发工具包SDK发生变更时,确定所述软件开发工具包SDK的变更信息,将所述变更信息存储至所述区块链;所述变更信息包括所述软件开发工具包SDK的名称、变更后的版本标识、变更时间以及变更后的所述软件开发工具包SDK的更新哈希值;
通知发送模块,用于向所述软件开发工具包SDK的客户端发送变更通知信息,所述变更通知信息携带有所述软件开发工具包SDK的变更信息;所述变更通知信息用于指示所述客户端对所述软件开发工具包SDK进行更新。
8.一种基于区块链的SDK更新装置,其特征在于,所述装置包括:
通知获取模块,用于获取针对软件开发工具包SDK的变更通知信息,所述变更通知信息是服务器在监测到所述软件开发工具包SDK发生变更时发出的,所述变更通知信息携带有所述软件开发工具包SDK的变更信息,所述变更信息包括所述软件开发工具包SDK的名称、变更后的版本标识、变更时间以及变更后的所述软件开发工具包SDK的更新哈希值;
更新判断模块,用于根据所述变更通知信息以及所述软件开发工具包SDK的本地描述信息,确定是否需要对本地的所述软件开发工具包SDK进行更新;
更新模块,用于当确定需要对本发的所述软件开发工具包SDK进行更新时,获取待更新的软件开发工具包SDK并在本地部署。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN202311154286.4A 2023-09-07 2023-09-07 基于区块链的sdk更新方法、装置及计算机设备 Pending CN117369845A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311154286.4A CN117369845A (zh) 2023-09-07 2023-09-07 基于区块链的sdk更新方法、装置及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311154286.4A CN117369845A (zh) 2023-09-07 2023-09-07 基于区块链的sdk更新方法、装置及计算机设备

Publications (1)

Publication Number Publication Date
CN117369845A true CN117369845A (zh) 2024-01-09

Family

ID=89388191

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311154286.4A Pending CN117369845A (zh) 2023-09-07 2023-09-07 基于区块链的sdk更新方法、装置及计算机设备

Country Status (1)

Country Link
CN (1) CN117369845A (zh)

Similar Documents

Publication Publication Date Title
CN112910945B (zh) 请求链路跟踪方法和业务请求处理方法
CN111800443B (zh) 数据处理系统和方法、装置以及电子设备
CN105653425A (zh) 基于复杂事件处理引擎的监控系统
US20210081263A1 (en) System for offline object based storage and mocking of rest responses
CN115248826B (zh) 一种大规模分布式图数据库集群运维管理的方法和系统
CN113127732A (zh) 业务数据的获取方法、装置、计算机设备和存储介质
CN113535668A (zh) 日志数据处理方法及装置
CN110677443A (zh) 数据发送和接收方法、发送端、接收端、系统及存储介质
CN116594834A (zh) 一种用于多协议服务器的运维数据处理方法及装置
CN117369845A (zh) 基于区块链的sdk更新方法、装置及计算机设备
CN116127219A (zh) 小程序中页面的展示方法、装置和计算机设备
CN115604667B (zh) 消息发送方法、装置、计算机设备和存储介质
CN116032619B (zh) 智能安全联网设备的状态巡检方法及装置
CN117193959A (zh) 任务调度方法、装置、计算机设备和存储介质
CN116541145A (zh) 数据调用方法、装置、计算机设备和计算机存储介质
CN113821276B (zh) 一种定制服务的管理方法以及相关装置
CN116700566A (zh) 交互方法、装置、计算机设备、存储介质和程序产品
CN117749817A (zh) 数据同步方法、装置、计算机设备和存储介质
CN116909684A (zh) 低代码应用的部署方法、装置、计算机设备和存储介质
CN116708245A (zh) 一种接口控制方法、装置、计算机设备
CN115866003A (zh) 设备控制方法、装置、计算机设备和存储介质
CN116881318A (zh) 维护期条目生成方法、装置、计算机设备及存储介质
CN118051344A (zh) 硬件资源的分配方法、装置、硬件资源管理系统
CN117493142A (zh) 埋点处理方法、装置、计算机设备和存储介质
CN117557276A (zh) 电网报装方法、装置、计算机设备、存储介质和程序产品

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