CN117632221A - 软件供应链管理方法、装置、介质及设备 - Google Patents
软件供应链管理方法、装置、介质及设备 Download PDFInfo
- Publication number
- CN117632221A CN117632221A CN202210958303.9A CN202210958303A CN117632221A CN 117632221 A CN117632221 A CN 117632221A CN 202210958303 A CN202210958303 A CN 202210958303A CN 117632221 A CN117632221 A CN 117632221A
- Authority
- CN
- China
- Prior art keywords
- software
- management
- transaction
- intelligent contract
- version
- 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 70
- 238000007726 management method Methods 0.000 claims abstract description 578
- 230000008569 process Effects 0.000 claims abstract description 23
- 238000012384 transportation and delivery Methods 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 16
- 238000012790 confirmation Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 11
- 238000013068 supply chain management Methods 0.000 claims description 4
- 230000007547 defect Effects 0.000 abstract description 4
- 238000011144 upstream manufacturing Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 7
- 101100298412 Arabidopsis thaliana PCMP-H73 gene Proteins 0.000 description 6
- 101100293724 Haloferax volcanii (strain ATCC 29605 / DSM 3757 / JCM 8879 / NBRC 14742 / NCIMB 2012 / VKM B-1768 / DS2) ncsA gene Proteins 0.000 description 6
- 101100118632 Mus musculus Etnk2 gene Proteins 0.000 description 6
- 101150001705 NCS6 gene Proteins 0.000 description 6
- 101150096366 pep7 gene Proteins 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请的实施例揭示了一种软件供应链管理方法、装置、介质及设备。该方法包括:根据软件供应链终端发起的注册管理请求对版本管理智能合约进行部署,并根据软件供应链终端发起的针对版本管理智能合约的版本信息管理请求对交易管理智能合约进行部署,以根据注册管理智能合约、版本管理智能合约和交易管理智能合约,对软件的供应链进行管理。通过对各个软件分别设置注册管理智能合约、版本管理智能合约以及交易管理智能合约的方式,以将软件所有的相关信息通过智能合约永久记录在分布式账本中,得到软件安全事件和追踪软件供应链中上下游影响的主要依据,为软件开发过程中避免和消除软件的安全缺陷,保证了软件供应链的安全。
Description
技术领域
本申请涉及区块链技术领域,具体而言,涉及一种软件供应链管理方法、装置、计算机可读存储介质及电子设备。
背景技术
随着信息技术的飞速发展和互联网的普及,人类社会对软件的依赖逐渐增加,软件已经成为人们生活、工作、学习中不可或缺的一部分。软件供应链是指软件从软件供应商到达用户手中并被用户使用的整个过程中相关环节的连接,从软件设计开始,到代码编写与软件生成,再到软件分发与用户下载,并最终由用户使用的一个软件供应商与软件用户之间所组成的链状结构。
相比传统开发的软件,软件供应链开发的软件因其攻击面更广阔更立体等特征,面临的安全风险更高,遭受破坏而引发的网络安全事件数量更多。因此,如何对软件供应链进行管理以提高软件供应链的安全性,是亟待解决的问题。
发明内容
为解决上述技术问题,本申请的实施例提供了一种软件供应链管理方法、装置、计算机可读存储介质及电子设备,以提高软件供应链的安全性。
根据本申请实施例的一个方面,提供了一种软件供应链管理方法,区块链网络中部署有用于限定软件对应的注册管理规则的注册管理智能合约,方法包括:根据软件供应链终端针对注册管理智能合约发起的注册管理请求,对注册管理请求对应的软件进行注册处理,并确认用于限定软件对应的版本信息管理规则的版本管理智能合约;对版本管理智能合约进行部署,并将版本管理智能合约的地址添加到注册管理智能合约中;根据软件供应链终端发起的针对版本管理智能合约的版本信息管理请求,对软件进行版本信息管理,并确认用于限定软件对应的交易信息管理规则的交易管理智能合约;对交易管理智能合约进行部署,并将交易管理智能合约的地址添加到版本管理智能合约中;根据软件对应的注册管理智能合约、版本管理智能合约和交易管理智能合约,对软件的供应链进行管理。
在一些实施例中,注册管理请求中包括软件对应的软件信息;根据软件供应链终端针对注册管理智能合约发起的注册管理请求,对注册管理请求对应的软件进行注册处理,包括:根据注册管理请求获取当前公开的注册管理智能合约的地址;根据注册管理智能合约的地址得到注册管理智能合约;调用注册管理智能合约中的软件信息注册函数,以将软件信息添加到注册管理智能合约中。
在一些实施例中,版本信息管理请求中包括软件对应的版本信息和软件标识,软件对应的软件信息中包括软件对应的软件标识;根据软件供应链终端发起的针对版本管理智能合约的版本信息管理请求,对软件进行版本信息管理,包括:根据软件标识查询注册管理智能合约,以得到软件对应的版本管理智能合约的地址;根据软件对应的版本管理智能合约的地址得到版本管理智能合约;调用版本管理智能合约中的版本信息添加函数,以将版本信息添加到版本管理智能合约中。
在一些实施例中,在对交易管理智能合约进行部署,并将交易管理智能合约的地址添加到版本管理智能合约中之后,方法还包括:接收针对交易管理智能合约的交易信息管理请求,交易信息管理请求中包括软件对应的交易信息;根据交易信息管理请求获取软件对应的交易管理智能合约的地址;根据软件对应的交易管理智能合约的地址得到交易管理智能合约;调用交易管理智能合约中的交易信息添加函数,以将交易信息添加到交易管理智能合约中。
在一些实施例中,注册管理智能合约中软件对应的软件标识和版本管理智能合约的地址对应存储,版本管理智能合约中软件对应的版本信息和交易管理智能合约的地址对应存储,交易信息管理请求中还包括软件对应的软件标识和版本信息;根据交易信息管理请求获取软件对应的交易管理智能合约的地址,包括:根据软件标识查询注册管理智能合约,以得到软件对应的版本管理智能合约的地址;根据软件对应的版本管理智能合约的地址得到版本管理智能合约;根据版本信息查询版本管理智能合约,以得到软件对应的交易管理智能合约的地址。
在一些实施例中,软件供应链终端包括需求方终端和供应方终端;获取针对交易管理智能合约的交易信息管理请求,包括:在运行交易管理智能合约的过程中,响应于需求方终端针对软件发起的交易请求,将交易请求转发给供应方终端;响应于供应方终端针对交易请求发送的交易交付信息,将交易交付信息转发给需求方终端;响应于需求方终端针对交易交付信息发送的交易确认信息,生成交易请求、交易交付信息和交易确认信息对应的交易信息;根据交易信息,生成交易信息管理请求。
在一些实施例中,根据软件对应的注册管理智能合约、版本管理智能合约和交易管理智能合约,对软件的供应链进行管理,包括:接收用户终端发起的软件溯源请求,软件溯源请求中携带有待溯源软件的软件标识;根据待溯源软件的软件标识查询待溯源软件对应的注册管理智能合约、版本管理智能合约和交易管理智能合约,得到查询结果;根据查询结果对软件溯源请求进行响应。
根据本申请实施例的一个方面,提供了一种软件供应链管理装置,区块链网络中部署有用于限定软件对应的注册管理规则的注册管理智能合约,装置包括:注册处理模块,配置为根据软件供应链终端针对注册管理智能合约发起的注册管理请求,对注册管理请求对应的软件进行注册处理,并确认用于限定软件对应的版本信息管理规则的版本管理智能合约;第一合约部署模块,配置为对版本管理智能合约进行部署,并将版本管理智能合约的地址添加到注册管理智能合约中;版本信息管理模块,配置为根据软件供应链终端发起的针对版本管理智能合约的版本信息管理请求,对软件进行版本信息管理,并确认用于限定软件对应的交易信息管理规则的交易管理智能合约;第二合约部署模块,配置为对交易管理智能合约进行部署,并将交易管理智能合约的地址添加到版本管理智能合约中;供应链管理模块,配置为根据软件对应的注册管理智能合约、版本管理智能合约和交易管理智能合约,对软件的供应链进行管理。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上的软件供应链管理方法。
根据本申请实施例的一个方面,提供了一种电子设备,包括一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被电子设备执行时,使得电子设备实现如上的软件供应链管理方法。
在本申请的实施例提供的技术方案中,通过对各个软件分别设置注册管理智能合约、版本管理智能合约以及交易管理智能合约的方式,以对软件的各类信息进行分别管理,优化软件供应链的管理逻辑,且将如软件组件或者软件产品所有的相关信息通过智能合约永久记录在分布式账本中,以对软件供应链进行管理,得到软件安全事件和追踪软件供应链中上下游影响的主要依据,并根据区块链具有的开放性、不可篡改性、可溯源性以及可问责性,为软件开发过程中避免和消除软件的安全缺陷,保证了软件供应链的安全。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是可以应用本申请实施例的技术方案的示例性应用环境的示意图;
图2是本申请的一示例性实施例示出的软件供应链管理方法的流程图;
图3是本申请的一示例性实施例示出的版本信息管理规则输入界面示意图;
图4是本申请的另一示例性实施例示出的软件供应链管理方法的流程图;
图5是本申请的一示例性实施例示出的需求方终端和供应方终端进行软件交易的示意图;
图6是本申请的一示例性实施例示出的软件供应链的示意图;
图7是本申请的一示例性实施例示出的一具体应用场景中软件供应链管理方法的流程图;
图8是本申请的一示例性实施例示出的软件供应链管理装置的框图;
图9是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相同的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相同的装置和方法的例子。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用应用程序形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
需要说明的是,在本申请中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
可选地,在本实施例中,上述软件供应链管理方法可以应用于如图1所示的环境中。如图1所示,该环境包括区块链网络10和软件供应链终端20。软件供应链终端20可以接入该区块链网络10,并可以与区块链网络10中的节点11进行通信,例如,向区块链网络10中的任意节点11发起注册管理请求,以使区块链网络10中的节点11对该注册管理请求进行处理。
其中,区块链网络10是指用于进行节点与节点之间数据共享的网络,区块链网络中可以包括多个节点11,每个节点11可以接收到输入信息,并基于接收到的输入信息维护区块链网络内的共享数据。为了保证区块链网络内的信息互通,每个节点11之间可以存在信息连接,任意两个节点11之间可以实现点对点(Peer To Peer,P2P)通信,具体可以通过有线通信链路或无线通信链路进行P2P通信。例如,当区块链网络中的任意节点接收到输入信息时,其他节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得区块链网络中全部节点上存储的数据均一致。
区块链网络10中的节点11可以为服务器,也可以为终端设备,本申请对此不进行限定。
软件供应链终端20可以为服务器,也可以为终端设备,本申请对此不进行限定。
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备可以包括智能手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备(例如智能手表、智能手环等)等终端。
需要说明的是,图1中所示的节点11的数目以及软件供应链终端20的数目仅仅是示意性的,根据实际需要,可以部署任意数目的节点11,并与任意数目的软件供应链终端20进行通信。
请参阅图2,图2是本申请的一个实施例示出的软件供应链管理方法的流程图,该软件供应链管理方法由区块链网络执行。如图2所示,软件供应链管理方法至少包括步骤S210至步骤S240,详细介绍如下:
步骤S210,根据软件供应链终端针对注册管理智能合约发起的注册管理请求,对注册管理请求对应的软件进行注册处理,并确认用于限定软件对应的版本信息管理规则的版本管理智能合约。
区块链网络中部署有用于限定软件对应的注册管理规则的注册管理智能合约,软件供应链终端可以在注册管理智能合约中对软件进行注册,以记录该软件的相关信息。
其中,软件是指计算机系统中的程序及其文档,本申请中的软件可以是软件组件,软件组件用于构造完整的软件产品,则注册管理请求用于请求对软件组件进行注册处理;本申请中的软件还可以是完整的软件产品,则注册管理请求用于请求对软件产品进行注册处理。为了便于理解,本申请以软件的类型包括软件组件以及软件产品为例进行说明,但是可以理解的是,软件还可以是除软件组件和软件产品之外的其它类型,本申请对此不进行限定。
智能合约可以是指计算机化的协议,用于执行某个合约的条款,是一套以数字形式定义、传播、验证或执行的约定,包括合约参与方可以在上面执行这些约定的协议,其允许在没有第三方的情况下进行可信交易,这些交易可跟踪且不可逆转。
接收到软件供应链终端发起的注册管理请求后,确认该注册管理请求对应的软件的版本管理智能合约。
示例性地,确认该注册管理请求对应的软件的版本管理智能合约的过程可以包括:根据软件供应链终端发起的注册管理请求向该软件供应链终端反馈版本信息管理规则获取指令,以使该软件供应链终端根据该版本信息管理规则获取指令反馈版本信息管理规则;然后根据该版本信息管理规则生成对应的逻辑代码,以根据该逻辑代码得到该软件的版本管理智能合约。
例如,请参照图3,图3示出了软件供应链终端提供的版本信息管理规则输入界面,软件供应链终端接收到版本信息管理规则获取指令后,向用户展示该版本信息管理规则输入界面,以获取版本信息管理规则。该版本信息管理规则输入界面可以包括用于输入版本信息管理规则的输入控件、版本信息管理规则的添加控件以及提交控件,相应的,用户可以通过该版本信息管理规则的输入控件输入版本信息管理规则,比如版本信息的字段类型、版本信息的字段长度等,且可以通过点击版本信息管理规则的添加控件以创建多条版本信息管理规则。然后,在检测到提交控件被触发后,再由软件供应链终端向区块链网络反馈对应的版本信息管理规则。
然后,区块链网络可以从版本信息管理规则中获取版本管理规则参数信息,对该版本管理规则参数信息进行代码转换,得到该版本信息管理规则对应的逻辑代码。
例如,区块链网络中存储有各个类别的版本管理规则参数信息分别对应的代码模板,对版本管理规则参数信息进行分类,然后根据分类结果为各个版本管理规则参数信息匹配对应的代码模板,以根据代码模板将版本管理规则参数信息转换为逻辑代码。其中,每个代码模板均可以包括参数变量,对于不同类别的代码模板可以配置不同的参数变量,通过将版本管理规则参数信息赋值给代码模板中的参数变量,进而可以将包含版本管理规则参数信息的版本信息管理规则自动转换为逻辑代码。
进一步的,根据逻辑代码得到版本管理智能合约。例如,区块链网络根据预设的合约生成规则对逻辑代码进行处理,以得到版本管理智能合约,如根据每个逻辑代码之间的关联关系,对逻辑代码进行组合,得到对应的版本管理智能合约。
在一些实施方式中,版本管理智能合约也可以是区块链网络中预先存储的,则区块链网络接收到软件供应链终端针对注册管理智能合约发起的注册管理请求后,直接将预先存储的版本管理智能合约作为该注册管理请求对应的版本管理智能合约。因此,版本管理智能合约的确认方式可以根据实际情况进行灵活选择,本申请对此不进行限定。
步骤S220,对版本管理智能合约进行部署,并将版本管理智能合约的地址添加到注册管理智能合约中。
将版本管理智能合约下发至区块链网络中的各个节点,以使节点将版本管理智能合约的合约信息存储至本地。
例如,查询发起注册管理请求的软件供应链终端对应的目标节点标识,向区块链网络中与目标节点标识匹配的各个节点下发版本管理智能合约的合约信息,以使这些节点将版本管理智能合约的合约信息存储至本地,以运行该版本管理智能合约。
进一步的,生成版本管理智能合约的地址,并将该地址添加至注册管理智能合约中,以通过注册管理智能合约可以查询到各个软件对应的版本管理智能合约。
步骤S230,根据软件供应链终端发起的针对版本管理智能合约的版本信息管理请求,对软件进行版本信息管理,并确认用于限定软件对应的交易信息管理规则的交易管理智能合约。
接收到软件供应链终端发起的版本信息管理请求,对该版本信息管理请求对应的软件的版本信息进行管理,同时确认该注册管理请求对应的软件的交易管理智能合约。其中,该版本信息管理请求对应的软件和上述注册管理请求对应的软件可以为同一软件,也可以为不同软件,在本实施例中,为了便于理解,默认版本信息管理请求对应的软件和注册管理请求对应的软件为同一软件。
示例性地,确认该版本信息管理请求对应的软件的交易管理智能合约的过程可以包括:根据软件供应链终端发起的版本信息管理请求向该软件供应链终端反馈交易管理规则获取指令,以使该软件供应链终端根据该交易管理规则获取指令反馈交易管理规则;然后根据该交易管理规则生成对应的逻辑代码,以根据该逻辑代码得到该软件的交易管理智能合约。
例如,软件供应链终端接收到交易管理规则获取指令后,向用户展示该交易管理规则输入界面,以获取交易管理规则。该交易管理规则输入界面可以包括用于输入交易管理规则的输入控件、交易信息管理规则的添加控件以及提交控件,相应的,用户可以通过该交易管理规则的输入控件输入交易信息管理规则,比如交易信息的字段类型、交易信息的字段长度等,且可以通过点击交易管理规则的添加控件以创建多条交易管理规则。然后,在检测到提交控件被触发后,再由软件供应链终端向区块链网络反馈对应的交易管理规则。
然后,区块链网络可以从交易管理规则中获取交易管理规则参数信息,对该交易管理规则参数信息进行代码转换,得到该交易管理规则对应的逻辑代码。
进一步的,根据逻辑代码得到交易管理智能合约。例如,区块链网络根据预设的合约生成规则对逻辑代码进行处理,以得到交易管理智能合约,如根据每个逻辑代码之间的关联关系,对逻辑代码进行组合,得到对应的交易管理智能合约。
在一些实施方式中,交易管理智能合约也可以是区块链网络中预先存储的,则区块链网络接收到软件供应链终端针对版本管理智能合约发起的版本信息管理请求后,直接将预先存储的交易管理智能合约作为该版本信息管理请求对应的交易管理智能合约。因此,交易管理智能合约的确认方式可以根据实际情况进行灵活选择,本申请对此不进行限定。
步骤S240,对交易管理智能合约进行部署,并将交易管理智能合约的地址添加到版本管理智能合约中。
将交易管理智能合约下发至区块链网络中的各个节点,以使节点将交易管理智能合约的合约信息存储至本地。
例如,查询发起版本信息管理请求的软件供应链终端对应的目标节点标识,向区块链网络中与目标节点标识匹配的各个节点下发交易管理智能合约的合约信息,以使这些节点将交易管理智能合约的合约信息存储至本地,以运行该交易管理智能合约。
进一步的,生成交易管理智能合约的地址,并将该地址添加至版本管理智能合约中,以通过版本管理智能合约可以查询到各个软件对应的交易管理智能合约。
步骤S250,根据软件对应的注册管理智能合约、版本管理智能合约和交易管理智能合约,对软件的供应链进行管理。
通过注册管理智能合约对软件的注册信息进行管理,通过版本管理智能合约对软件的版本信息进行管理,通过交易管理智能合约对软件的交易信息进行管理,且在注册管理智能合约中记录有各个软件对应的版本管理智能合约的地址,版本管理智能合约中记录有各个软件对应的交易管理智能合约的地址,以便于对软件供应链对应的信息进行管理。
本申请通过对各个软件分别设置注册管理智能合约、版本管理智能合约以及交易管理智能合约的方式,以对软件的各类信息进行分别管理,优化软件供应链的管理逻辑,且将如软件组件或者软件产品所有的相关信息通过智能合约永久记录在分布式账本中,以对软件供应链进行管理,得到软件安全事件和追踪软件供应链中上下游影响的主要依据,并根据区块链具有的开放性、不可篡改性、可溯源性以及可问责性,为软件开发过程中避免和消除软件的安全缺陷,保证了软件供应链的安全。
在一些实施方式中,注册管理请求中包括软件对应的软件信息;步骤S210包括:根据注册管理请求获取当前公开的注册管理智能合约的地址;根据注册管理智能合约的地址得到注册管理智能合约;调用注册管理智能合约中的软件信息注册函数,以将软件信息添加到注册管理智能合约中。
软件信息是指软件组件或者由软件组件构建的软件产品对应的相关信息,软件信息中包括多个参数项,这些参数项可以是软件标识、软件名称、软件厂商、软件散列值等。
其中,软件为由软件组件构建的软件产品时,则软件信息中的参数项还可以包括组件清单,以通过组件清单记录构建该软件产品的软件组件。
注册管理智能合约可以是有管理员在区块链网络中预先进行部署的,并在对注册管理智能合约进行部署后,公开该注册管理智能合约的地址。
区块链网络接收到注册管理请求后,查询当前公开的注册管理智能合约的地址,以根据注册管理智能合约的地址得到对应的注册管理智能合约,进而将注册管理请求中含有的软件信息添加至该注册管理智能合约中,完成对软件的注册。例如,调用注册管理智能合约PRC的Register()函数,以将软件信息注册到合约PRC中。
进一步的,确认用于限定该软件对应的版本信息管理规则的版本管理智能合约,在对版本管理智能合约进行部署后,在注册管理智能合约中将该版本管理智能合约的地址与该软件对应的软件信息进行对应存储。
示例性地,请参见表1,表1为通过注册管理智能合约对多个软件产品进行注册后,得到的软件产品注册管理信息表示:
软件标识 | 软件名称 | 软件厂商 | 软件散列值 | 组件清单 | VAC合约地址 |
S-1 | SN-1 | SF-1 | c88181... | S-p-1/S-p-2... | 0xaaa77... |
S-2 | SN-2 | SF-2 | 45d9f1... | S-p-3/S-p-4... | 0x23c42... |
S-3 | SN-3 | SF-3 | 781b36... | S-p-1/S-p-3... | 0x09A7A... |
S-4 | SN-4 | SF-4 | bb9255... | S-p-5/S-p-7... | 0x3b1a6.. |
S-5 | SN-5 | SF-5 | d66e3a... | S-p-2/S-p-6... | 4da8043... |
表1
其中,VAC合约地址是指版本管理智能合约的地址,通过表1可以获知如软件名称为“SN-1”的软件由软件组件“S-p-1”和软件组件“S-p-2”组成,以及软件“SN-1”对应的版本管理智能合约的地址为“0xaaa77...”,进而可以根据地址“0xaaa77...”,查询得到软件“SN-1”对应的版本管理智能合约。
进一步地,还可以通过表1中的组件清单获取软件组件对应的软件信息以及版本管理智能合约的地址。
可选地,软件组件和由软件组件构建的软件产品分别对应不同的注册管理智能合约,即软件组件对应软件组件注册管理智能合约,软件产品对应软件产品注册管理智能合约,以对不同类型的软件分别进行管理。
在一些实施方式中,版本信息管理请求中包括软件对应的版本信息和软件标识,软件对应的软件信息中包括软件对应的软件标识,步骤S230包括:根据软件标识查询注册管理智能合约,以得到软件对应的版本管理智能合约的地址;根据软件对应的版本管理智能合约的地址得到版本管理智能合约;调用版本管理智能合约中的版本信息添加函数,以将版本信息添加到版本管理智能合约中。
由于软件组件或者软件产品等在生命周期中常常需要进行变更,从而同一软件会存在多个版本。如第一版本的软件组件在运行一段时间后,为了满足当前用户的使用要求需要对第一版本的软件组件进行更新,得到第二版本的软件组件,其中,第一版本的软件组件和第二版本的软件组件均对应相同的软件信息。
区块链网络接收到版本信息管理请求后,根据软件标识获取版本管理智能合约的地址,以基于版本管理智能合约的地址对版本信息管理请求中携带的版本信息进行处理。例如,调用版本管理智能合约VAC的AddBatch()函数,以将软件对应的版本信息添加到合约VAC中。
进一步的,确认用于限定该软件对应的交易信息管理规则的交易管理智能合约,在对交易管理智能合约进行部署后,在版本管理智能合约中将该交易管理智能合约的地址与该软件对应的版本信息进行对应存储。
示例性地,请参见表2,表2为通过版本管理智能合约对表1中名称为“SN-1”的软件产品进行版本信息添加后,得到的该软件产品对应的版本管理信息表示:
版本编号 | 组件清单及其版本号 | 时间戳 | TUC合约地址 |
3.8.0 | S-p-4(4.5.3)/S-p-2(2.1.1)... | 1656665355 | 0x906c4... |
3.7.0 | S-p-1(1.2.17)/S-p-3(1.5.1)... | 1651344320 | 0x23c46... |
3.6.3 | S-p-1(1.2.17)/S-p-2(2.1.3)... | 1647736181 | 0x16f59... |
3.6.2 | S-p-1(1.2.17)/S-p-2(2.1.3)... | 1645693699 | 0xb186n.. |
3.5.8 | S-p-1(1.2.17)/S-p-2(2.1.1)... | 1642645150 | 0xa8043... |
表2
其中,TUC合约地址是指交易管理智能合约的地址,通过表2可以获知如软件名称为“SN-1”的软件对应的版本信息、每个版本对应的软件组件及其版本编号、时间戳,以及每个版本对应的交易管理智能合约的地址,进而可以根据交易管理智能合约的地址查询得到每个版本对应的交易管理智能合约。
在一些实施方式中,请参阅图4,图4是本申请的另一个实施例示出的软件供应链管理方法的流程图。如图4所示,在步骤S240之后,还包括步骤S410至步骤S440:
步骤S410,接收针对交易管理智能合约的交易信息管理请求,交易信息管理请求中包括软件对应的交易信息。
交易信息管理请求用于请求对软件的交易信息进行管理,交易信息管理请求中包括软件对应的交易信息,交易信息是指软件组件或者由软件组件构建的软件产品在交易过程中对应的相关信息,交易信息中包括多个参数项,这些参数项可以是当前交易散列值、交易发送方地址、交易接收方地址、上一笔交易散列值、时间戳等。
其中,该交易信息管理请求对应的软件和上述版本信息管理请求对应的软件可以为同一软件,也可以为不同软件,在本实施例中,为了便于理解,默认交易信息管理请求对应的软件和版本信息管理请求对应的软件为同一软件。
步骤S420,根据交易信息管理请求获取软件对应的交易管理智能合约的地址。
区块链网络接收到交易信息管理请求后,获取交易信息管理智能合约的地址。
示例性地,注册管理智能合约中软件对应的软件标识和版本管理智能合约的地址对应存储,版本管理智能合约中软件对应的版本信息和交易管理智能合约的地址对应存储,交易信息管理请求中还包括软件对应的软件标识和版本信息;根据交易信息管理请求获取软件对应的交易管理智能合约的地址,包括:根据软件标识查询注册管理智能合约,以得到软件对应的版本管理智能合约的地址;根据软件对应的版本管理智能合约的地址得到版本管理智能合约;根据版本信息查询版本管理智能合约,以得到软件对应的交易管理智能合约的地址。
例如,交易信息管理请求中包括软件对应的软件标识为“S-1”,通过查询注册管理智能合约对应的表1,得到版本管理智能合约的地址为“Oxaaa77...”,然后根据地址“0xaaa77...”得到版本管理智能合约对应的表2。交易信息管理请求中包括软件对应的版本信息为“3.8.0”,因此根据版本信息查询版本管理智能合约对应的表2,以得到软件对应的交易管理智能合约的地址为“0x906c4...”。
步骤S430,根据软件对应的交易管理智能合约的地址得到交易管理智能合约。
基于交易信息管理智能合约的地址得到交易管理智能合约,以基于交易管理智能合约对交易信息管理请求中携带的交易信息进行处理。
步骤S440,调用交易管理智能合约中的交易信息添加函数,以将交易信息添加到交易管理智能合约中。
例如,调用交易管理智能合约TUC的AddTransaction()函数,以将软件对应的交易信息添加到合约TUC中。
示例性地,请参见表3,表3为通过交易管理智能合约对表2中版本信息为“3.8.0”的软件产品“SN-1”进行交易信息添加后,得到的该软件产品对应的交易管理信息表示:
当前交易散列值 | 交易发送方地址 | 交易接收方地址 | 上一笔交易散列值 | 时间戳 |
411881816c... | 0x05660738EF... | 0x06c9046F... | 33b241816c... | 1647665355 |
6e6f94dt51... | 0x05660738EF... | Ox83c642zM... | 18816e6f51... | 1647344320 |
5082163786... | 0x05660738EF... | 0x2f615959... | 4c6a1b3786... | 1649736181 |
2a33b25b95... | 0x05660738EF... | 0x1b186n94.. | 2f94da5b95... | 1646959369 |
524c6aed63... | 0x05660738EF... | 0x604a83ae... | 8d625052e3... | 1645341550 |
表3
通过表3可以获知软件产品“SN-1”针对“3.8.0”版本的所有交易信息,如在时间戳“1649736181”下该软件产品执行了一次交易,交易发送方地址为“0x05660738EF...”,交易接收方地址为“0x2f615959...”,进而可以通过查询交易管理智能合约得到每个软件的相关交易信息,便于后续对软件进行溯源。
在一些实施方式中,软件供应链终端包括需求方终端和供应方终端;获取针对交易管理智能合约的交易信息管理请求,包括:在运行交易管理智能合约的过程中,响应于需求方终端针对软件发起的交易请求,将交易请求转发给供应方终端;响应于供应方终端针对交易请求发送的交易交付信息,将交易交付信息转发给需求方终端;响应于需求方终端针对交易交付信息发送的交易确认信息,生成交易请求、交易交付信息和交易确认信息对应的交易信息;根据交易信息,生成交易信息管理请求。
通过交易管理智能合约对软件的交易过程的相关信息进行记录,例如,区块链网络通过事件响应机制对交易过程进行记录,以得到交易信息。
示例性地,请参阅图5,图5为需求方终端和供应方终端进行软件交易的示意图。如图5所示,需求方终端向区块链网络发起交易请求,触发事件BuyEvent(),该BuyEvent()中包括需求方终端的以太坊地址EA_1和供应方终端的以太坊地址EA_2,请求进行交易的软件标识Cid_1,需求方终端的以太坊账户公钥EPK_1及电子签名Sig_1。
然后,区块链网络将交易请求转发给供应方终端,以使供应方终端对交易请求进行响应。例如,供应方终端可以通过设置自己的以太坊地址EA_2为索引参数,以便通过该索引参数查询与自己相关的交易请求并及时响应,供应方终端监听到包含自己的以太坊地址的交易请求后,对交易请求进行验证,如果验证通过,则触发事件ResponseEvent()以响应买方的请求。
供应方终端向区块链发送交易交付信息,该交易交付信息用于表明供应方终端对交易请求对应的软件已经进行交付,则触发事件SendEvent(),该SendEvent()中包括需求方终端的以太坊地址EA_1和供应方终端的以太坊地址EA_2,请求进行交易的软件标识Cid_1,请求进行交易的软件版本编号Vid_1,供应方终端以太坊账户公钥EPK_2及电子签名Sig_2。
进一步的,区块链网络接收到需求方终端发送的交易确认信息,该交易确认信息用于表明需求方终端确认收到交易请求对应的软件,则触发事件ReceivedEvent(),该ReceivedEvent()中包括需求方终端的以太坊地址EA_1和供应方终端的以太坊地址EA_2,请求进行交易的软件标识Cid_1,请求进行交易的软件版本编号Vid_1,供应方终端以太坊账户公钥EPK_2及电子签名Sig_2。
最后,若区块链网络接收到需求方终端发送的交易确认信息,则表明需求方终端和供应方终端之间完成了整个交易过程,因此,生成该交易过程中的交易请求、交易交付信息和交易确认信息对应的交易信息,以根据交易信息生成交易信息管理请求。
例如,根据区块链网络接收到交易请求对应的时间,得到该交易过程对应的时间戳信息;提取需求方终端的以太坊地址EA_1和供应方终端的以太坊地址EA_2,得到交易发送方地址和交易接收方地址;根据软件标识Cid_1、软件版本编号Vid_1和交易请求对应的时间,得到当前交易散列值等信息。
在一些实施方式中,根据软件对应的注册管理智能合约、版本管理智能合约和交易管理智能合约,对软件的供应链进行管理,包括:接收用户终端发起的软件溯源请求,软件溯源请求中携带有待溯源软件的软件标识;根据待溯源软件的软件标识查询待溯源软件对应的注册管理智能合约、版本管理智能合约和交易管理智能合约,得到查询结果;根据查询结果对软件溯源请求进行响应。
其中,用户终端可以为使用软件的相关用户,也可以是对软件供应链进行管理的监管方,本申请对此不进行限定。
例如,请参阅图6,图6是本申请实施例提供的一种软件供应链的示意图。如图6所示,软件供应链中包括软件供应商、软件制造商、软件分发渠道、软件用户和监管平台。其中,软件供应商向下游软件制造商提供软件组件,软件制造商根据上游软件供应商提供的软件组件构建软件产品,软件分发渠道将软件制造商生产的软件产品转移给软件用户,软件用户是最终购买以及使用软件产品的实体,监管平台检测软件的动态,识别软件供应链中的安全问题。
其中,图6中的软件供应商、软件制造商、软件分发渠道、软件用户可以作为软件供应链终端,以通过注册管理智能合约、版本管理智能合约和交易管理智能合约对这些软件供应链终端产生的软件相关信息进行记录,软件供应商、软件制造商、软件分发渠道、软件用户和监管平台还可以作为用户终端对这些软件供应链终端产生的软件相关信息进行查询、溯源等,以实现软件供应链的开放性、不可篡改性、可溯源性以及可问责性,保证了软件供应链的安全。
例如,用户终端发起的软件溯源请求,该软件溯源请求中携带有待溯源软件的软件标识“S-1”,通过查询注册管理智能合约,得到该待溯源软件的软件信息以及版本管理智能合约的地址。然后,根据版本管理智能合约的地址查询该待溯源软件的版本管理智能合约,得到该待溯源软件的版本信息以及交易管理智能合约的地址,以通过查询交易管理智能合约得到该待溯源软件的相关交易信息,最终结合待溯源软件的软件信息、版本信息和交易信息的带查询结果,并向用户终端反馈该查询结果。
示例性地,用户终端发起的软件溯源请求还包括溯源限定信息,如软件溯源请求中包括待查询的交易信息的时间范围,则根据该时间范围对该待溯源软件对应的交易信息进行筛选;如软件溯源请求中包括待查询的待溯源软件的版本信息,则直接查询该版本信息对对应的交易信息。
以下对本申请实施例的一个具体应用场景进行详细说明:
请参阅图7,步骤1,系统管理员在区块链网络中部署注册管理智能合约PRC;步骤2,软件供应商针对PRC合约发起软件组件的注册管理请求;步骤3,区块链网络确认软件组件的版本管理智能合约VAC1,并对软件组件的VAC1合约进行部署;步骤4,软件组件的VAC1合约部署成功后区块链网络获取软件组件的VAC1的地址,以基于软件组件的VAC1地址对注册管理请求对应的软件组件进行注册处理;步骤5,区块链网络向软件供应商反馈注册完成;步骤6,软件供应商向区块链网络中软件组件的VAC1合约对应的节点发送软件组件版本信息管理请求;步骤7,区块链网络确认软件组件的交易管理智能合约TUC1,并对软件组件的TUC1合约进行部署;步骤8,软件组件的TUC1合约部署成功后,区块链网络获取软件组件的TUC1合约的地址,以基于软件组件的TUC1合约的地址对版本管理请求对应的软件组件进行版本信息管理;步骤9,区块链网络向软件供应商反馈版本信息管理完成;步骤10,软件供应商在链下与软件制造商进行软件组件交付;步骤11,软件供应商将软件组件的相关交易信息添加至该软件组件对应的TUC1合约;步骤12,软件制造商针对注册管理智能合约发起软件产品的注册管理请求;步骤13,区块链网络确认软件产品的版本管理智能合约VAC2,并对软件产品的VAC2合约进行部署;步骤14,软件产品的VAC2合约部署成功后区块链网络获取该软件产品的VAC2合约的地址,以基于软件产品的VAC2合约的地址对注册管理请求对应的软件产品进行注册处理;步骤15,区块链网络向软件制造商反馈注册完成;步骤16,软件制造商向区块链网络中软件产品的版本管理智能合约对应的节点发送软件产品版本信息管理请求;步骤17,区块链网络确认软件产品的交易管理智能合约,并对软件产品的交易管理智能合约进行部署;步骤18,软件产品的交易管理智能合约部署成功后,区块链网络获取软件产品的交易管理智能合约的地址,以基于软件产品的交易管理智能合约的地址对版本管理请求对应的软件产品进行版本信息管理;步骤19,区块链网络向软件制造商反馈版本信息管理完成;步骤20,软件制造商在链下与软件分发渠道进行软件产品交付;步骤21,软件制造商将软件产品的相关交易信息添加至该软件产品对应的交易管理智能合约中;步骤22,软件分发渠道在链下与软件用户进行软件产品交付;步骤23,软件分发渠道将软件产品的相关交易信息添加至该软件产品对应的交易管理智能合约中;步骤24,软件用户向区块链网络查询软件产品的相关信息。
本申请根据软件供应链终端针对注册管理智能合约发起的注册管理请求,对版本管理智能合约进行部署,并将版本管理智能合约的地址添加到注册管理智能合约中,并根据软件供应链终端发起的针对版本管理智能合约的版本信息管理请求,对交易管理智能合约进行部署,并将交易管理智能合约的地址添加到所述版本管理智能合约中,以根据注册管理智能合约、版本管理智能合约和交易管理智能合约,对软件的供应链进行管理。通过对各个软件分别设置注册管理智能合约、版本管理智能合约以及交易管理智能合约的方式,以对软件的各类信息进行分别管理,优化软件供应链的管理逻辑,且将如软件组件或者软件产品所有的相关信息通过智能合约永久记录在分布式账本中,以对软件供应链进行管理,得到软件安全事件和追踪软件供应链中上下游影响的主要依据,并根据区块链具有的开放性、不可篡改性、可溯源性以及可问责性,为软件开发过程中避免和消除软件的安全缺陷,保证了软件供应链的安全。
图8是本申请的一个实施例示出的软件供应链管理装置的框图,其中,区块链网络中部署有用于限定软件对应的注册管理规则的注册管理智能合约,如图8所示,该装置包括:
注册处理模块810,配置为根据软件供应链终端针对注册管理智能合约发起的注册管理请求,对注册管理请求对应的软件进行注册处理,并确认用于限定软件对应的版本信息管理规则的版本管理智能合约;
第一合约部署模块820,配置为对版本管理智能合约进行部署,并将版本管理智能合约的地址添加到注册管理智能合约中;
版本信息管理模块830,配置为根据软件供应链终端发起的针对版本管理智能合约的版本信息管理请求,对软件进行版本信息管理,并确认用于限定软件对应的交易信息管理规则的交易管理智能合约;
第二合约部署模块840,配置为对交易管理智能合约进行部署,并将交易管理智能合约的地址添加到版本管理智能合约中;
供应链管理模块850,配置为根据软件对应的注册管理智能合约、版本管理智能合约和交易管理智能合约,对软件的供应链进行管理。
在本申请的一个实施例中,注册管理请求中包括软件对应的软件信息;注册处理模块810可以包括:
注册管理智能合约地址获取单元,配置为根据注册管理请求获取当前公开的注册管理智能合约的地址;
注册管理智能合约获取单元,配置为根据注册管理智能合约的地址得到注册管理智能合约;
软件信息添加单元,配置为调用注册管理智能合约中的软件信息注册函数,以将软件信息添加到注册管理智能合约中。
在本申请的一个实施例中,版本信息管理请求中包括软件对应的版本信息和软件标识,软件对应的软件信息中包括软件对应的软件标识;版本信息管理模块830可以包括:
版本管理智能合约地址获取单元,配置为根据软件标识查询注册管理智能合约,以得到软件对应的版本管理智能合约的地址;
版本管理智能合约获取单元,配置为根据软件对应的版本管理智能合约的地址得到版本管理智能合约;
版本信息添加单元,配置为调用版本管理智能合约中的版本信息添加函数,以将版本信息添加到版本管理智能合约中。
在本申请的一个实施例中,软件供应链管理装置还可以包括:
交易信息请求获取单元,配置为获取针对交易管理智能合约的交易信息管理请求,交易信息管理请求中包括软件对应的交易信息;
交易管理智能合约地址获取单元,配置为根据交易信息管理请求获取软件对应的交易管理智能合约的地址;
交易管理智能合约获取单元,配置为根据软件对应的交易管理智能合约的地址得到交易管理智能合约;
交易信息添加单元,配置为调用交易管理智能合约中的交易信息添加函数,以将交易信息添加到交易管理智能合约中。
在本申请的一个实施例中,注册管理智能合约中软件对应的软件标识和版本管理智能合约的地址对应存储,版本管理智能合约中软件对应的版本信息和交易管理智能合约的地址对应存储,交易信息管理请求中还包括软件对应的软件标识和版本信息;交易管理智能合约地址获取单元可以包括:
第一地址获取单元,配置为根据软件标识查询注册管理智能合约,以得到软件对应的版本管理智能合约的地址;
合约获取单元,配置为根据软件对应的版本管理智能合约的地址得到版本管理智能合约;
第二地址获取单元,配置为根据版本信息查询版本管理智能合约,以得到软件对应的交易管理智能合约的地址。
在本申请的一个实施例中,软件供应链终端包括需求方终端和供应方终端;交易信息请求获取单元可以包括:
第一请求转发单元,配置为在运行交易管理智能合约的过程中,响应于需求方终端针对软件发起的交易请求,将交易请求转发给供应方终端;
第二请求转发单元,配置为响应于供应方终端针对交易请求发送的交易交付信息,将交易交付信息转发给需求方终端;
交易信息生成单元,配置为响应于需求方终端针对交易交付信息发送的交易确认信息,生成交易请求、交易交付信息和交易确认信息对应的交易信息;
交易信息管理请求生成单元,配置为根据交易信息,生成交易信息管理请求。
在本申请的一个实施例中,供应链管理模块850可以包括:
软件溯源请求接收单元,配置为接收用户终端发起的软件溯源请求,软件溯源请求中携带有待溯源软件的软件标识;
查询单元,配置为根据待溯源软件的软件标识查询待溯源软件对应的注册管理智能合约、版本管理智能合约和交易管理智能合约,得到查询结果;
响应单元,配置为根据查询结果对软件溯源请求进行响应。
需要说明的是,上述实施例所提供的软件供应链管理装置与上述实施例所提供的软件供应链管理方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。上述实施例所提供的软件供应链管理装置在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处也不对此进行限制。
图9示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图9示出的电子设备的计算机系统900仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图9所示,电子设备900以通用计算设备的形式表现。电子设备900的组件可以包括但不限于:上述至少一个处理单元910、上述至少一个存储单元920、连接不同系统组件(包括存储单元920和处理单元910)的总线930、显示单元940。
其中,存储单元存储有程序代码,程序代码可以被处理单元910执行,使得处理单元910执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。
存储单元920可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)921和/或高速缓存存储单元922,还可以进一步包括只读存储单元(ROM)923。
存储单元920还可以包括具有一组(至少一个)程序模块925的程序/实用工具924,这样的程序模块925包括但不限于:操作系统、一个或者多个应用程序、其它程序模块和程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线930可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备900也可以与一个或多个外部设备970(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备900交互的设备通信,和/或与使得该电子设备900能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口950进行。并且,电子设备900还可以通过网络适配器960与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器960通过总线930与电子设备900的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备900使用其它硬件和/或应用程序模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器和数据备份存储系统等。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机应用程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在该计算机程序被处理单元910执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发起、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
描述于本申请实施例中所涉及到的单元可以通过应用程序的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前的软件供应链管理方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的软件供应链管理方法。
上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术人员根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。
Claims (10)
1.一种软件供应链管理方法,其特征在于,区块链网络中部署有用于限定软件对应的注册管理规则的注册管理智能合约,所述方法包括:
根据软件供应链终端针对注册管理智能合约发起的注册管理请求,对所述注册管理请求对应的软件进行注册处理,并确认用于限定所述软件对应的版本信息管理规则的版本管理智能合约;
对所述版本管理智能合约进行部署,并将所述版本管理智能合约的地址添加到所述注册管理智能合约中;
根据所述软件供应链终端发起的针对所述版本管理智能合约的版本信息管理请求,对所述软件进行版本信息管理,并确认用于限定所述软件对应的交易信息管理规则的交易管理智能合约;
对所述交易管理智能合约进行部署,并将所述交易管理智能合约的地址添加到所述版本管理智能合约中;
根据所述软件对应的注册管理智能合约、版本管理智能合约和交易管理智能合约,对所述软件的供应链进行管理。
2.根据权利要求1所述的方法,其特征在于,所述注册管理请求中包括所述软件对应的软件信息;所述根据软件供应链终端针对注册管理智能合约发起的注册管理请求,对所述注册管理请求对应的软件进行注册处理,包括:
根据所述注册管理请求获取当前公开的注册管理智能合约的地址;
根据所述注册管理智能合约的地址得到注册管理智能合约;
调用所述注册管理智能合约中的软件信息注册函数,以将所述软件信息添加到所述注册管理智能合约中。
3.根据权利要求2所述的方法,其特征在于,所述版本信息管理请求中包括所述软件对应的版本信息和软件标识,所述软件对应的软件信息中包括所述软件对应的软件标识;所述根据所述软件供应链终端发起的针对所述版本管理智能合约的版本信息管理请求,对所述软件进行版本信息管理,包括:
根据所述软件标识查询所述注册管理智能合约,以得到所述软件对应的版本管理智能合约的地址;
根据所述软件对应的版本管理智能合约的地址得到版本管理智能合约;
调用所述版本管理智能合约中的版本信息添加函数,以将所述版本信息添加到所述版本管理智能合约中。
4.根据权利要求1所述的方法,其特征在于,在所述对所述交易管理智能合约进行部署,并将所述交易管理智能合约的地址添加到所述版本管理智能合约中之后,所述方法还包括:
获取针对所述交易管理智能合约的交易信息管理请求,所述交易信息管理请求中包括所述软件对应的交易信息;
根据所述交易信息管理请求获取所述软件对应的交易管理智能合约的地址;
根据所述软件对应的交易管理智能合约的地址得到交易管理智能合约;
调用所述交易管理智能合约中的交易信息添加函数,以将所述交易信息添加到所述交易管理智能合约中。
5.根据权利要求4所述的方法,其特征在于,所述注册管理智能合约中所述软件对应的软件标识和版本管理智能合约的地址对应存储,所述版本管理智能合约中所述软件对应的版本信息和交易管理智能合约的地址对应存储,所述交易信息管理请求中还包括所述软件对应的软件标识和版本信息;所述根据所述交易信息管理请求获取所述软件对应的交易管理智能合约的地址,包括:
根据所述软件标识查询所述注册管理智能合约,以得到所述软件对应的版本管理智能合约的地址;
根据所述软件对应的版本管理智能合约的地址得到版本管理智能合约;
根据所述版本信息查询所述版本管理智能合约,以得到所述软件对应的交易管理智能合约的地址。
6.根据权利要求4所述的方法,其特征在于,所述软件供应链终端包括需求方终端和供应方终端;所述获取针对所述交易管理智能合约的交易信息管理请求,包括:
在运行所述交易管理智能合约的过程中,响应于所述需求方终端针对所述软件发起的交易请求,将所述交易请求转发给所述供应方终端;
响应于所述供应方终端针对所述交易请求发送的交易交付信息,将所述交易交付信息转发给所述需求方终端;
响应于所述需求方终端针对所述交易交付信息发送的交易确认信息,生成所述交易请求、交易交付信息和交易确认信息对应的交易信息;
根据所述交易信息,生成交易信息管理请求。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述根据所述软件对应的注册管理智能合约、版本管理智能合约和交易管理智能合约,对所述软件的供应链进行管理,包括:
接收用户终端发起的软件溯源请求,所述软件溯源请求中携带有待溯源软件的软件标识;
根据所述待溯源软件的软件标识查询所述待溯源软件对应的注册管理智能合约、版本管理智能合约和交易管理智能合约,得到查询结果;
根据所述查询结果对所述软件溯源请求进行响应。
8.一种软件供应链管理装置,其特征在于,区块链网络中部署有用于限定软件对应的注册管理规则的注册管理智能合约,所述装置包括:
注册处理模块,配置为根据软件供应链终端针对注册管理智能合约发起的注册管理请求,对所述注册管理请求对应的软件进行注册处理,并确认用于限定软件对应的版本信息管理规则的版本管理智能合约;
第一合约部署模块,配置为对所述版本管理智能合约进行部署,并将所述版本管理智能合约的地址添加到所述注册管理智能合约中;
版本信息管理模块,配置为根据所述软件供应链终端发起的针对所述版本管理智能合约的版本信息管理请求,对所述软件进行版本信息管理,并确认用于限定所述软件对应的交易信息管理规则的交易管理智能合约;
第二合约部署模块,配置为对所述交易管理智能合约进行部署,并将所述交易管理智能合约的地址添加到所述版本管理智能合约中;
供应链管理模块,配置为根据所述软件对应的注册管理智能合约、版本管理智能合约和交易管理智能合约,对所述软件的供应链进行管理。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至7中任一项所述的软件供应链管理方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7中任一项所述的软件供应链管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210958303.9A CN117632221A (zh) | 2022-08-10 | 2022-08-10 | 软件供应链管理方法、装置、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210958303.9A CN117632221A (zh) | 2022-08-10 | 2022-08-10 | 软件供应链管理方法、装置、介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117632221A true CN117632221A (zh) | 2024-03-01 |
Family
ID=90036334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210958303.9A Pending CN117632221A (zh) | 2022-08-10 | 2022-08-10 | 软件供应链管理方法、装置、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117632221A (zh) |
-
2022
- 2022-08-10 CN CN202210958303.9A patent/CN117632221A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109325854B (zh) | 区块链网络、部署方法及存储介质 | |
CN109218079B (zh) | 一种区块链网络、部署方法及存储介质 | |
CN109325855B (zh) | 区块链网络、部署方法及存储介质 | |
CN109003078B (zh) | 基于区块链的智能合约调用方法及装置、电子设备 | |
CN110163755B (zh) | 基于区块链的数据压缩、查询方法及装置和电子设备 | |
CN113421088A (zh) | 基于区块链的数据处理方法及装置和电子设备 | |
WO2021208762A1 (zh) | 数据存储、查询 | |
CN107220376B (zh) | 一种数据查询方法和装置 | |
CN110910143A (zh) | 身份标识生成方法、装置、相关节点及介质 | |
CN108388623A (zh) | Er关系生成方法、装置、计算机设备及存储介质 | |
CN110865806B (zh) | 代码处理方法、装置、服务器及存储介质 | |
CN113902392A (zh) | 创意项目管理方法、装置、终端及存储介质 | |
CN112102099B (zh) | 保单数据处理方法、装置、电子设备及存储介质 | |
CN113726758A (zh) | 基于区块链的数据隐私计算方法及系统 | |
CN101311933B (zh) | 接收动态访问数据的方法和系统 | |
US11120513B2 (en) | Capital chain information traceability method, system, server and readable storage medium | |
CN110119430B (zh) | 一种智能合约管理方法、服务器及计算机可读存储介质 | |
CN114978686B (zh) | 数字资产上链方法及装置 | |
CN117632221A (zh) | 软件供应链管理方法、装置、介质及设备 | |
CN109697569A (zh) | 一种定义工作流的方法及系统 | |
Salehi | Integration of blockchain technologie in case of systems engineering and software engineering in an industrial context | |
CN113326059A (zh) | 一种资源更新方法、装置及存储介质 | |
KR102432066B1 (ko) | 표준화된 bom에 관한 매칭 테이블을 이용하여 고객 호환성을 갖는 웹 서비스를 제공하는 방법 및 서버 | |
CN109471790A (zh) | 送核参数比对方法及装置、计算机装置及可读存储介质 | |
CN110060128B (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 |