CN112905227A - 开源软件版本登记方法及装置 - Google Patents

开源软件版本登记方法及装置 Download PDF

Info

Publication number
CN112905227A
CN112905227A CN202110174966.7A CN202110174966A CN112905227A CN 112905227 A CN112905227 A CN 112905227A CN 202110174966 A CN202110174966 A CN 202110174966A CN 112905227 A CN112905227 A CN 112905227A
Authority
CN
China
Prior art keywords
source software
open source
open
git
software 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
Application number
CN202110174966.7A
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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202110174966.7A priority Critical patent/CN112905227A/zh
Publication of CN112905227A publication Critical patent/CN112905227A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

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

开源软件版本登记方法及装置
技术领域
本申请涉及信息安全技术领域,具体涉及一种开源软件版本登记方法及装置。
背景技术
目前金融行业和互联网企业对开源软件的使用成爆发式的增长,各大企业在引入开源软件时通常会关注其可用性和功能实现,而忽略了或者并未有效的去管理各企业、各应用对开源软件使用情况的掌握。即目前缺少一种能够自动实时登记各应用系统的方法,以对开源软件的使用信息并清晰掌握企业各应用(系统)对开源软件的使用情况,这就造成企业应用对其部署生产环境上的开源软件使用情况“失控”。在企业应用开源软件升级过程、问题定位、风险排查方面会极为被动同时也带来了大量的人力耗费和风险隐患。
在现有技术中,对于企业使用开源软件传统的记录方式是通过产品信息管理系统让用户在手工登记各产品所使用的开源软件,这种模式在一定程度上能够为企业内部开源软件管理提供一定的方法和帮助,但是在目前互联网飞速发展的今天。版本迭代速率是以小时级别的速度更新,传统的效率已经无法满足实际要求,且存在漏登记的风险。
发明内容
本发明属于信息安全技术领域,本发明克服了金融和通讯领等域中的互联网企业对开源软件的使用和管控方面的困难,例如:人力耗费严重、依赖操作人员的职业素质高、易漏登记造成风险。通过自动对开源软件使用信息进行登记,大大减少了企业的成本投入及极大的提升了企业在开源软件使用方面的风险管控和合规自查。
为解决上述技术问题,本发明提供以下技术方案:
获取系统中当前版本的开源软件所对应的特征值;
在预设的开源软件版本数据库中轮询所述特征值,以生成轮询结果;
根据所述轮询结果登记开源软件版本。
一实施例中,所述获取系统中当前版本的开源软件源码所对应的特征值包括:
构建当前版本的开源软件所对应的git库以及git分支库;
根据所述git库以及git分支库获取所述开源软件的源码;
计算所述源码的特征值。
一实施例中,所述构建当前版本的开源软件所对应的git库以及git分支库包括:
响应于接收到用户信息,确定所述信息的角色以及权限;
根据系统中所有开源软件的目录信息生成ssh串;
根据所述目录信息中定义的上下文信息、所述ssh串、所述角色以及所述权限构建所述git库以及git分支库。
一实施例中,根据所述轮询结果登记开源软件版本包括:
如果所述轮询结果为所述开源软件版本数据库中不能匹配所述特征值时,登记所述开源软件版本。
第二方面,本发明提供一种开源软件版本登记装置,该装置包括:
特征值获取单元,用于获取系统中当前版本的开源软件所对应的特征值;
轮询结果生成单元,用于在预设的开源软件版本数据库中轮询所述特征值,以生成轮询结果;
软件版本登记单元,用于根据所述轮询结果登记开源软件版本。
一实施例中,所述特征值获取单元包括:
git库构建模块,用于构建当前版本的开源软件所对应的git库以及git分支库;
源码获取模块,用于根据所述git库以及git分支库获取所述开源软件的源码;
特征值计算模块,用于计算所述源码的特征值。
一实施例中,所述git库构建模块包括:
权限确定模块,用于响应于接收到用户信息,确定所述信息的角色以及权限;
ssh串生成模块,用于根据系统中所有开源软件的目录信息生成ssh串;
git库构建子模块,用于根据所述目录信息中定义的上下文信息、所述ssh串、所述角色以及所述权限构建所述git库以及git分支库。
一实施例中,软件版本登记单元具体用于如果所述轮询结果为所述开源软件版本数据库中不能匹配所述特征值时,登记所述开源软件版本。
第三方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现开源软件版本登记方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现开源软件版本登记方法的步骤。
从上述描述可知,本发明实施例提供一种开源软件版本登记方法及装置,首先获取系统中当前版本的开源软件所对应的特征值;接着,在预设的开源软件版本数据库中轮询特征值,以生成轮询结果;最后根据轮询结果登记开源软件版本。本发明实施例所提供的开源软件版本登记方法及装置,克服了互联网行业、金融行业、通讯行业普遍存在开源软件“使用泛滥”无法有效管理的痛点,实现了自动登记企业内部各应用对开源软件使用情况,为企业在开源软件使用和管理方面提供基础数据,同时有效提升企业对开源软件资产管理、版本升级、风险管控、合规等方面的管控效能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中开源软件版本登记方法的流程示意图;
图2为本发明实施例中步骤100的流程示意图;
图3为本发明实施例中步骤101的流程示意图;
图4为本发明实施例中步骤300的流程示意图;
图5为本发明实施例中步骤103的流程示意图;
图6为本发明具体应用实例中的开源软件版本登记方法的流程示意图;
图7为本发明的实施例中开源软件版本登记装置的结构示意图;
图8为本发明的实施例中特征值获取单元10的结构示意图;
图9为本发明的实施例中git库构建模块101的结构示意图;
图10为本发明的实施例中的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的实施例提供一种开源软件版本登记方法的具体实施方式,参见图1,其具体包括如下内容:
步骤100:获取系统中当前版本的开源软件所对应的特征值。
开源软件(open-source)是指其源码可以被公众使用的软件,此软件的使用、修改、分发不受许可证的限制。开源软件被散布在全世界的编程者队伍所开发,同时也会有一些大学、政府机构承包商、协会和商业公司在开发。源代码的开发是信息技术发展引发网络革命所带来的面向未来以开放创新、共同创新为特点、以人为本的创新模式。开源软件因其友好的协议和开放式的协作开发模式,使其自身数量成指数的增长,各行各业尤其是互联网技术行业对其使用及依赖更为凸出。
可以理解的是,步骤100中的开源软件(需要说明的是,这里的开源软件特指其某个版本,同一个开源软件的不同版本之间也对应着不同的特征值)与其对应的特征值为一一对应的关系,具体地,可以先建立系统中多个开源软件与其特征值(注意也是多个)之间的映射,根据该映射可以准确、快速的查找系统中的每个开源软件以及其开源软件版本。。
步骤200:在预设的开源软件版本数据库中轮询所述特征值,以生成轮询结果;
具体地,在开源软件版本数据库中查找特征值,生成的轮询结果分别为特征值有匹配以及特征值无匹配,另外,该预设的开源软件版本数据库包括系统中所使用的各种开源软件以及其对应的版本号,例如国际制品管理中心(已纳管的各种应用与开源软件使用登记关系)。
步骤300:根据所述轮询结果登记开源软件版本;
具体地,当轮询结果为开源软件版本数据库中匹配到开源软件时,则略过该版本的开源软件,当轮询结果为开源软件版本数据库中无法匹配到该开源软件时,则对该版本的开源软件进行登记。
从上述描述可知,本发明实施例提供一种开源软件版本登记方法,首先获取系统中当前版本的开源软件所对应的特征值;接着,在预设的开源软件版本数据库中轮询特征值,以生成轮询结果;最后根据轮询结果登记开源软件版本。本发明实施例所提供的开源软件版本登记方法及装置,克服了互联网行业、金融行业、通讯行业普遍存在开源软件“使用泛滥”无法有效管理的痛点,实现了自动登记企业内部各应用对开源软件使用情况,为企业在开源软件使用和管理方面提供基础数据,同时有效提升企业对开源软件资产管理、版本升级、风险管控、合规等方面的管控效能。
一实施例中,参见图2,步骤100进一步包括:
步骤101:构建当前版本的开源软件所对应的git库以及git分支库;
可以理解的是,git库是一个开源的分布式版本控制系统,其可以有效、高速地处理从很小到非常大的项目版本管理。分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的git仓库。从一般开发者的角度来看,git有以下功能:
1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
2、在自己的机器上根据不同的开发目的,创建分支,修改代码。
3、在单机上自己创建的分支上提交代码。
4、在单机上合并分支。
5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
6、生成补丁(patch),把补丁发送给主开发者。
7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
8、一般开发者之间解决冲突的方法,开发者之间可以使用pull命令解决冲突,解决完冲突之后再向主开发者提交补丁。
从主开发者的角度(假设主开发者不用开发代码)看,git库有以下功能:
1、查看邮件或者通过其它方式查看一般开发者的提交状态。
2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
3、向公共服务器提交结果,然后通知所有开发人员。
优点:适合分布式开发,强调个体;公共服务器压力和数据量都不会太大;速度快、灵活。任意两个开发者之间可以很容易的解决冲突。
步骤102:根据所述git库以及git分支库获取所述开源软件的源码;
具体地,获取git库以及git分支库各自的目录,然后依据该目录下载对应的源码到工具本地磁盘的指定目录下。
步骤103:计算所述源码的特征值。
可以理解的是,步骤103中的源码与其对应的特征值为一一对应的关系,可以先建立系统中多个代码文件与其特征值(注意也是多个)之间的映射,根据该映射可以准确、快速的查找系统中的每个源码的特征值。
一实施例中,参见图3,步骤101进一步包括:
步骤1011:响应于接收到用户信息,确定所述信息的角色以及权限;
步骤1012:根据系统中所有开源软件的目录信息生成ssh串;
步骤1013:根据所述目录信息中定义的上下文信息、所述ssh串、所述角色以及所述权限构建所述git库以及git分支库。
具体地,在步骤1011至步骤1013中,首先导入对应的用户信息,并指定该用户的角色,以及设置不同角色在git库中不同的权限;接着,根据每个角色对应的权限创建目录信息,并在此技术上生成ssh串,最后根据项目信息中定义的上下文信息,生成配置信息和任务,并根据配置信息、任务以及ssh串生成述git库以及git分支库。
另外,步骤1012中的ssh是git库中的一种秘钥,用于对不同的git库以及git分支库进行加密。
一实施例中,参见图4,步骤300包括:
步骤301:如果所述轮询结果为所述开源软件版本数据库中不能匹配所述特征值时,登记所述开源软件版本;
可以理解的是,轮询结果的另一种情况是,开源软件版本数据库中可以匹配所述特征值时,代表该特征值对应的开源软件已经进行了登记,无需对其进行处理。
一实施例中,参见图5,步骤103包括:
步骤1031:利用MD5算法计算所述源码所对应的散列值。
MD5算法的全称为Message-Digest Algorithm 5,即消息摘要算法第五版,是当前计算机领域用于确保信息传输完整一致而广泛使用的散列算法之一。MD5算法的功能是将数据运算变为另一固定长度值,其基础原理是散列算法。
具体地,MD5算法的原理主要分为以下步骤:
填充:首先将输入信息的长度(bit)进行填充,使得对512求余的结果等于448。填充的方法是填充一个1和n个0。
记录信息长度:用64位来存储填充前信息长度。这64位加在第一步结果的后面,这样信息长度就变为N×512+448+64=(N+1)×512位。
装入标准的幻数:标准的幻数是(A=(01234567)16,B=(89ABCDEF)16,C=(FEDCBA98)16,D=(76543210)16)。如果在程序中定义应该是(A=0X67452301L,B=0XEFCDAB89L,C=0X98BADCFEL,D=0X10325476L)。
四轮循环运算:循环的次数是分组的个数(N+1)。
MD5算法的优点主要包括以下几点:
1、防止被篡改,比如提供文件下载,为了防止不法分子在安装程序中添加木马,可以在网站上公布由安装文件得到的MD5输出结果。
2、防止直接看到明文,现在很多网站在数据库存储用户的密码的时候都是存储用户密码的MD5值。在这种情况下,不法分子得到数据库的用户密码的MD5值,从而也无法知道用户的密码。
3、防止抵赖(数字签名),例如A写了一个文件,认证机构对此文件用MD5算法产生摘要信息并做好记录。这样可以防止出现以后A不承认此事而带来的麻烦。
本发明实施例提供一种开源软件版本登记方法,克服了金融和通讯领域等互联网企业对开源软件的使用和管理方面的困难,减少了人力耗费严重、以及依赖操作人员的职业素质高、易漏登记所造成的风险。通过自动对使用信息进行登记,大大减少了企业的成本投入及极大的提升了企业在开源软件使用方面的风险管控和合规自查。
为进一步地说明本方案,本发明提供开源软件版本登记定方法的具体应用实例,参见图6。
S1:首先读取制品管理中心中已纳管的应用与开源软件使用登记关系,并同步到工具自身的数据表中(该步骤的必要性是避免装置频繁与制品管理中心交互,增加制品管理中的负荷);
S2:通过接口形式读取研发团队当天构建的所有git库信息、git分支信息,将这些信息同步到工具本地的数据表中;
S3:轮询步骤S2中构建的git库及对应的分支;
S4:获取git库分支后下载对应的源码到工具本地磁盘的指定目录下;
S5:对目录下的以.jar为后缀的文件用信息-摘要算法5进行指纹码计算;
S6:将计算出的指纹码与从制品管理中心同步回来的指纹码进行匹配;
S7:如果发现能够与企业中部门一的应用A的开源软件使用登记记录匹配则自动轮下下一个.jar文件,如果无法匹配到则自动登记一条使用信息记录;
S8:轮询完当前分支下面所有的.jar包之后进行下一应用分支的轮询处理;
S9:将比对结果、自动补登记录结果、无法匹配指纹码信息上送TCMB(企业数据仓库)共制品管理中心进行分析;
S10:轮询完成所有当次从构建工具同步回来的git库、git分之后,当期制品自动登记工作结束。
从上述描述可知,本发明具体应用实例所提供一种开源软件版本登记方法,无需人工的介入,通过分析在版本制品构建过程中使用到的开源软件Jar包的指纹码与开源软件制品仓库中的指纹码进行匹配,从而实现自动登记注册各应用使用的开源软件信息。支持企业级应用海量开源软件使用登记、支持构建过程中进行比对登记、支持对构建无侵入的工作模式。
另一方面,基于制品管理的开源软件使用信息自动登记工具,采用底层采用Message-Digest Algorithm5信息-摘要算法5为主要识别算法,来作为自动登记工具对比的凭据。通过比对应用在版本制品构建过程中使用开源软件的MD5值来与开源软件制品仓库中管理的开源软件MD5来识别、登记各应用使用的开源软件,形成二维管理数据,为企业在内部资产管理、版本升级、风险管控、合规自查方面提供基础数据。具体地,本发明具有以下有益效果:
1.操作简单:工具部署后实现全流程自动化操作,无需人工介入,设定扫描周期后会定期将扫描结果以定制的报表形式推送到企业决策部门。
2.效率高:相比人力登记,该工具能够以人力数十倍的效率来完成开源软件使用登记操作。
3.成本低:无需使用人员具备专业的技术能力,仅需部署在普通PC机上即可。
4.产出高:无需专业技术人员进行系统登记,无需识别开源软名称及版本号,系统通过指纹码的比对自动登记。
5.正确性高:避免人工去识别开源软件及使用版本,避免人为判断错误对系统数据的准确性造成影响。
基于同一发明构思,本申请实施例还提供了一种开源软件版本登记装置,可以用于实现上述实施例所描述的方法,如下面的实施例。由于开源软件版本登记装置解决问题的原理与开源软件版本登记方法相似,因此开源软件版本登记装置的实施可以参见开源软件版本登记方法实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本发明的实施例提供一种能够实现开源软件版本登记方法的开源软件版本登记装置的具体实施方式,参见图7,开源软件版本登记装置具体包括如下内容:
特征值获取单元10,用于获取系统中当前版本的开源软件所对应的特征值;
轮询结果生成单元20,用于在预设的开源软件版本数据库中轮询所述特征值,以生成轮询结果;
软件版本登记单元30,用于根据所述轮询结果登记开源软件版本。
一实施例中,参见图8,所述特征值获取单元10包括:
git库构建模块101,用于构建当前版本的开源软件所对应的git库以及git分支库;
源码获取模块102,用于根据所述git库以及git分支库获取所述开源软件的源码;
特征值计算模块103,用于计算所述源码的特征值。
一实施例中,参见图9,所述git库构建模块101包括:
权限确定模块1011,用于响应于接收到用户信息,确定所述信息的角色以及权限;
ssh串生成模块1012,用于根据系统中所有开源软件的目录信息生成ssh串;
git库构建子模块1013,用于根据所述目录信息中定义的上下文信息、所述ssh串、所述角色以及所述权限构建所述git库以及git分支库。
一实施例中,软件版本登记单元30具体用于如果所述轮询结果为所述开源软件版本数据库中不能匹配所述特征值时,登记所述开源软件版本。
所述特征值计算模块103具体用于利用MD5算法计算所述源码所对应的散列值。
从上述描述可知,本发明实施例提供一种开源软件版本登记装置,首先获取系统中当前版本的开源软件所对应的特征值;接着,在预设的开源软件版本数据库中轮询特征值,以生成轮询结果;最后根据轮询结果登记开源软件版本。本发明实施例所提供的开源软件版本登记方法及装置,克服了互联网行业、金融行业、通讯行业普遍存在开源软件“使用泛滥”无法有效管理的痛点,实现了自动登记企业内部各应用对开源软件使用情况,为企业在开源软件使用和管理方面提供基础数据,同时有效提升企业对开源软件资产管理、版本升级、风险管控、合规等方面的管控效能。
本申请的实施例还提供能够实现上述实施例中的开源软件版本登记方法中全部步骤的一种电子设备的具体实施方式,参见图10,电子设备具体包括如下内容:
处理器(processor)1201、存储器(memory)1202、通信接口(CommunicationsInterface)1203和总线1204;
其中,处理器1201、存储器1202、通信接口1203通过总线1204完成相互间的通信;通信接口1203用于实现服务器端设备以及客户端设备等相关设备之间的信息传输;
处理器1201用于调用存储器1202中的计算机程序,处理器执行计算机程序时实现上述实施例中的开源软件版本登记方法中的全部步骤,例如,处理器执行计算机程序时实现下述步骤:
步骤100:获取系统中当前版本的开源软件所对应的特征值;
步骤200:在预设的开源软件版本数据库中轮询所述特征值,以生成轮询结果;
步骤300:根据所述轮询结果登记开源软件版本。
本申请的实施例还提供能够实现上述实施例中的开源软件版本登记方法中全部步骤的一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的开源软件版本登记方法的全部步骤,例如,处理器执行计算机程序时实现下述步骤:
步骤100:获取系统中当前版本的开源软件所对应的特征值;
步骤200:在预设的开源软件版本数据库中轮询所述特征值,以生成轮询结果;
步骤300:根据所述轮询结果登记开源软件版本。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
虽然本申请提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。

Claims (10)

1.一种开源软件版本登记方法,其特征在于,包括:
获取系统中当前版本的开源软件所对应的特征值;
在预设的开源软件版本数据库中轮询所述特征值,以生成轮询结果;
根据所述轮询结果登记开源软件版本。
2.如权利要求1所述的开源软件版本登记方法,其特征在于,所述获取系统中当前版本的开源软件源码所对应的特征值包括:
构建当前版本的开源软件所对应的git库以及git分支库;
根据所述git库以及git分支库获取所述开源软件的源码;
计算所述源码的特征值。
3.如权利要求2所述的开源软件版本登记方法,其特征在于,所述构建当前版本的开源软件所对应的git库以及git分支库包括:
响应于接收到用户信息,确定所述信息的角色以及权限;
根据系统中所有开源软件的目录信息生成ssh串;
根据所述目录信息中定义的上下文信息、所述ssh串、所述角色以及所述权限构建所述git库以及git分支库。
4.如权利要求2所述的开源软件版本登记方法,其特征在于,根据所述轮询结果登记开源软件版本包括:
如果所述轮询结果为所述开源软件版本数据库中不能匹配所述特征值时,登记所述开源软件版本。
5.一种开源软件版本登记装置,其特征在于,包括:
特征值获取单元,用于获取系统中当前版本的开源软件所对应的特征值;
轮询结果生成单元,用于在预设的开源软件版本数据库中轮询所述特征值,以生成轮询结果;
软件版本登记单元,用于根据所述轮询结果登记开源软件版本。
6.如权利要求5所述的开源软件版本登记装置,其特征在于,所述特征值获取单元包括:
git库构建模块,用于构建当前版本的开源软件所对应的git库以及git分支库;
源码获取模块,用于根据所述git库以及git分支库获取所述开源软件的源码;
特征值计算模块,用于计算所述源码的特征值。
7.如权利要求6所述的开源软件版本登记装置,其特征在于,所述git库构建模块包括:
权限确定模块,用于响应于接收到用户信息,确定所述信息的角色以及权限;
ssh串生成模块,用于根据系统中所有开源软件的目录信息生成ssh串;
git库构建子模块,用于根据所述目录信息中定义的上下文信息、所述ssh串、所述角色以及所述权限构建所述git库以及git分支库。
8.如权利要求6所述的开源软件版本登记装置,其特征在于,
软件版本登记单元具体用于如果所述轮询结果为所述开源软件版本数据库中不能匹配所述特征值时,登记所述开源软件版本。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至4任一项所述开源软件版本登记方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至4任一项所述开源软件版本登记方法的步骤。
CN202110174966.7A 2021-02-09 2021-02-09 开源软件版本登记方法及装置 Pending CN112905227A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110174966.7A CN112905227A (zh) 2021-02-09 2021-02-09 开源软件版本登记方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110174966.7A CN112905227A (zh) 2021-02-09 2021-02-09 开源软件版本登记方法及装置

Publications (1)

Publication Number Publication Date
CN112905227A true CN112905227A (zh) 2021-06-04

Family

ID=76122831

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110174966.7A Pending CN112905227A (zh) 2021-02-09 2021-02-09 开源软件版本登记方法及装置

Country Status (1)

Country Link
CN (1) CN112905227A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113836541A (zh) * 2021-09-29 2021-12-24 天翼物联科技有限公司 基于依赖关系的软件安全检查方法、装置、计算机设备及存储介质
CN113849185A (zh) * 2021-09-26 2021-12-28 中国工商银行股份有限公司 程序管控方法、程序管控装置、电子设备以及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461743A (zh) * 2014-12-17 2015-03-25 用友软件股份有限公司 资源和配置的自动生成装置和方法
CN104573525A (zh) * 2014-12-19 2015-04-29 中国航天科工集团第二研究院七〇六所 一种基于白名单的专用信息服务软件漏洞修复系统
CN107992325A (zh) * 2017-11-09 2018-05-04 北京航空航天大学 一种通过特征码检验比对文件信息的方法
CN109299050A (zh) * 2018-11-20 2019-02-01 四川长虹电器股份有限公司 基于git的企业级文档中心实现方法
CN109828780A (zh) * 2018-12-28 2019-05-31 北京奇安信科技有限公司 一种开源软件的识别方法及装置
CN111427611A (zh) * 2020-04-02 2020-07-17 四川航天系统工程研究所 一种利用指纹码实现的嵌入式软件版本状态管控方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461743A (zh) * 2014-12-17 2015-03-25 用友软件股份有限公司 资源和配置的自动生成装置和方法
CN104573525A (zh) * 2014-12-19 2015-04-29 中国航天科工集团第二研究院七〇六所 一种基于白名单的专用信息服务软件漏洞修复系统
CN107992325A (zh) * 2017-11-09 2018-05-04 北京航空航天大学 一种通过特征码检验比对文件信息的方法
CN109299050A (zh) * 2018-11-20 2019-02-01 四川长虹电器股份有限公司 基于git的企业级文档中心实现方法
CN109828780A (zh) * 2018-12-28 2019-05-31 北京奇安信科技有限公司 一种开源软件的识别方法及装置
CN111427611A (zh) * 2020-04-02 2020-07-17 四川航天系统工程研究所 一种利用指纹码实现的嵌入式软件版本状态管控方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113849185A (zh) * 2021-09-26 2021-12-28 中国工商银行股份有限公司 程序管控方法、程序管控装置、电子设备以及存储介质
CN113836541A (zh) * 2021-09-29 2021-12-24 天翼物联科技有限公司 基于依赖关系的软件安全检查方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
CN111052120B (zh) 使用分布式账本的数字资产可追溯性和保证
CN109997126B (zh) 事件驱动提取、变换、加载(etl)处理
US11106458B2 (en) System and method for distributed ledger-based software supply chain management
CN110870253A (zh) 使用分布式分类账管理公共软件组件生态系统的系统和方法
CN114297174A (zh) 区块链实现的数据迁移审计轨迹
US11755461B2 (en) Asynchronous consumer-driven contract testing in micro service architecture
CN113254534B (zh) 数据同步方法、装置及计算机存储介质
US11947505B2 (en) Systems and methods for tracking data lineage and record lifecycle using distributed ledgers
US11055454B1 (en) Configuring and deploying Monte Carlo simulation pipelines
CN112905227A (zh) 开源软件版本登记方法及装置
CN112417178B (zh) 基于文档模板定义的链上合约处理方法、装置和电子设备
CN111061733A (zh) 数据处理方法、装置、电子设备和计算机可读存储介质
Deelman et al. Managing large-scale scientific workflows in distributed environments: Experiences and challenges
CN114641782A (zh) 基于区块链的施工文档管理混合系统及其方法
Khan et al. Rapid development of a data visualization service in an emergency response
CN110442647B (zh) 数据一致性同步方法、装置及计算机可读存储介质
Karls et al. The OpenKIM processing pipeline: A cloud-based automatic material property computation engine
CN110766375A (zh) 工作平台任务构建系统及构建方法
CN112905720A (zh) 一种基于源数据管理模型的运营数据处理方法和装置
Tilmes et al. Distinguishing provenance equivalence of earth science data
Ye et al. Developing Windows-based and Web-enabled Information Systems
Patil A Conceptual Framework for Distributed Software Quality Network
CN113449035B (zh) 数据同步方法、装置、计算机设备及可读存储介质
Härer Executable Models and Instance Tracking for Decentralized Applications on Blockchains and Cloud Platforms--Metamodel and Implementation
US20210303547A1 (en) Automated data integration, reconciliation, and self healing using machine learning

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