CN117407047A - 一种基于图数据库的linux生态依赖关系图谱构建方法及应用 - Google Patents
一种基于图数据库的linux生态依赖关系图谱构建方法及应用 Download PDFInfo
- Publication number
- CN117407047A CN117407047A CN202311707110.7A CN202311707110A CN117407047A CN 117407047 A CN117407047 A CN 117407047A CN 202311707110 A CN202311707110 A CN 202311707110A CN 117407047 A CN117407047 A CN 117407047A
- Authority
- CN
- China
- Prior art keywords
- node
- application
- ecological
- dependency
- nodes
- 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.)
- Granted
Links
- 238000010276 construction Methods 0.000 title claims abstract description 19
- 230000001419 dependent effect Effects 0.000 claims abstract description 35
- 238000000034 method Methods 0.000 claims abstract description 20
- 238000011156 evaluation Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 238000007689 inspection Methods 0.000 claims description 2
- 238000012216 screening Methods 0.000 claims description 2
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000004807 localization Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013031 physical testing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于图数据库的linux生态依赖关系图谱构建方法及应用,获取操作系统全部库包信息、仓库源中全部库包信息、应用软件源全部的应用信息;以节点形式存入图数据库中,若节点已经存在,向节点增加属性和标签;遍历图数据库中的所有节点,获取每一个节点的‘依赖’属性,并在图数据库中查询是否存在与‘依赖’属性值相同的节点名称;在两个节点之间创建关系,存储完成所有版本及所有架构的操作系统信息,构建完成linux生态依赖关系图谱。本发明将Linux完整的生态依赖关系构建在一张图中,可以快速、高效地评估应用的兼容性。
Description
技术领域
本发明属于linux技术领域,特别是涉及到一种基于图数据库的linux生态依赖关系图谱构建方法及应用。
背景技术
随着国产化系统的迅速发展和国产化应用生态的快速扩充,应用版本的迭代更新速度也在加快。然而,面对大量的应用,需要快速评估应用在新版系统中的兼容性问题,以确保应用能够在新版系统中正常运行。传统的应用兼容性评估方法通常需要安装测试环境并运行自动化测试工具或人工执行测试用例进行验证,耗费大量的时间和人力物力资源,无法满足快速评估的需求。
目前在Linux系统中,可以使用apt、apt-rdepends等工具来构建单个应用的依赖树。然而,这些工具只能生成单个应用的依赖关系树,无法在一张图中同时构建多种操作系统版本和多种架构版本的生态依赖关系。
现有的应用兼容性评估方法需要依赖系统环境进行评估,无法脱离系统环境的依赖,且这种方式无法进行持续性评估,并且会占用大量资源。
发明内容
本发明的目的在于提出一种基于图数据库的linux生态依赖关系图谱构建方法及应用,将Linux完整的生态依赖关系构建在一张图中,可以快速、高效地评估应用的兼容性。
为了实现上述目的,本发明的技术方案是这样实现的:
一种基于图数据库的linux生态依赖关系图谱构建方法,包括:
S1、获取操作系统全部库包信息以节点形式存入图数据库中,若节点已经存在,向节点增加所述操作系统的属性和标签;属性包含‘依赖’属性;
S2、获取仓库源中全部库包信息以节点形式存入图数据库中,若节点已经存在,向节点增加所述仓库源的属性和标签;属性包含‘依赖’属性;
S3、获取应用软件源全部的应用信息以节点形式存入图数据库中,若节点已经存在,向节点增加所述应用信息的属性和标签;属性包含‘依赖’属性;
S4、遍历图数据库中的所有节点,获取每一个节点的‘依赖’属性,并在图数据库中查询是否存在与‘依赖’属性值相同的节点名称;
若是,在两个节点之间创建关系,并在关系中增加属性和标签;
若否,创建一个与‘依赖’属性值相同名称的节点并为其增加属性和标签;然后在两个节点之间创建关系,并在关系中增加属性和标签;
S5、重复执行步骤S1-S4,直至存储完成所有版本及所有架构的操作系统信息,构建完成linux生态依赖关系图谱。
进一步的,步骤S3中还包括:若节点已经存在,判断节点对应的应用版本是否小于图数据库中已经存在的应用版本:若是,不作处理;若否,向节点增加指定应用的属性和标签。
进一步的,步骤S4中,所述在两个节点之间创建关系,关系方向由被遍历的节点指向与节点‘依赖’属性值相同名称的节点。
本发明还提出了基于linux生态依赖关系图谱的应用兼容性评估方法;所述linux生态依赖关系图谱根据上述任一项所述基于图数据库的linux生态依赖关系图谱构建方法构建而成;包括:
S10、在所述linux生态依赖关系图谱中查询应用节点的所有直接或间接的依赖关系,作为应用的依赖树;所述应用节点是存入图数据库的应用信息对应的节点;
S11、依次对所述依赖树的每一段关系进行操作系统库包、仓库源库包的存在性和版本符合性检查;
S12、根据检查结果得到应用兼容性评估结果。
本发明还提出了基于linux生态依赖关系图谱的生态影响域评估方法;所述linux生态依赖关系图谱根据上述任一项所述基于图数据库的linux生态依赖关系图谱构建方法构建而成;包括:
S21、在所述linux生态依赖关系图谱中存入多个版本的系统信息;
S22、通过查询节点的标签中所包含的系统名称进行筛选,筛选出对应不同版本系统的新增或删除的节点,并分别标记为新增或删除;
S23、当节点标签中同时包含多个版本的系统名称时,判断节点属性的系统版本号是否相等;若是,将节点标记为未改动;若否,将节点标记为变动;
S24、遍历被标记为删除和变动的库包,查询出所有被直接或间接依赖的应用节点名称,作为系统库包变动而产生的生态影响域;所述应用节点是存入图数据库的应用信息对应的节点;
S25、在所述linux生态依赖关系图谱中查询所述生态影响域中的应用节点的所有直接或间接的依赖关系,作为应用的依赖树;依次对所述依赖树的每一段关系进行操作系统库包、仓库源库包的存在性和版本符合性检查;根据检查结果得到评估结果。
本发明另一方面还提出了一种基于图数据库的linux生态依赖关系图谱构建系统,包括:
系统节点单元:获取操作系统全部库包信息以节点形式存入图数据库中,若节点已经存在,向节点增加所述操作系统的属性和标签;属性包含‘依赖’属性;
仓库源节点单元:获取仓库源中全部库包信息以节点形式存入图数据库中,若节点已经存在,向节点增加所述仓库源的属性和标签;属性包含‘依赖’属性;
应用节点单元:获取应用软件源全部的应用信息以节点形式存入图数据库中,若节点已经存在,向节点增加所述应用信息的属性和标签;属性包含‘依赖’属性;
关系创建单元:遍历图数据库中的所有节点,获取每一个节点的‘依赖’属性,并在图数据库中查询是否存在与‘依赖’属性值相同的节点名称;若是,在两个节点之间创建关系,并在关系中增加属性和标签;若否,创建一个与‘依赖’属性值相同名称的节点并为其增加属性和标签;然后在两个节点之间创建关系,并在关系中增加属性和标签;
图谱单元:通过系统节点单元、仓库源节点单元、应用节点单元、关系创建单元存储完成所有版本及所有架构的操作系统信息,构建完成linux生态依赖关系图谱。
进一步的,应用节点单元中还包括:
版本判断模块:若节点已经存在,判断节点对应的应用版本是否小于图数据库中已经存在的应用版本:若是,不作处理;若否,向节点增加指定应用的属性和标签。
进一步的,关系创建单元中,所述在两个节点之间创建关系,关系方向由被遍历的节点指向与节点‘依赖’属性值相同名称的节点。
本发明还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述的基于图数据库的linux生态依赖关系图谱构建方法。
与现有技术相比,本发明具有如下的有益效果:
1.本发明通过节点、关系的标签和属性,能够在同一张生态依赖关系图谱中准确区分多个版本和多个架构的Linux操作系统生态依赖关系;有助于更全面地了解不同版本和架构之间的依赖关系,便于进行快速的横向对比和差异分析,从而更好地管理和评估系统的兼容性。
2.本发明将多个版本和多个架构的Linux操作系统生态依赖图谱存储在同一个图数据库中,并采用基于生态依赖关系图谱的评估方法,能够节省在物理测试环境中进行测试所需的时间,同时摆脱了物理环境的限制,大幅度节省了资源的占用时间。
3. 本发明可以在一个新版系统库包或应用发生变动时,使用基于生态依赖关系图谱的应用兼容性评估方法或生态影响域评估方法,通过分析变动在依赖关系图谱中的传播路径,可以迅速确定变动的范围和影响程度。这有助于更好地管理和控制变动对生态系统的影响,确保系统的稳定性和可持续性。
附图说明
图1是本发明实施例一的基于图数据库的linux生态依赖关系图谱构建方法流程示意图;
图2是本发明实施例一的构建完成的部分生态依赖关系示意图;
图3是本发明实施例二的应用兼容性评估方法流程示意图;
图4是本发明实施例三的生态影响域评估方法流程示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本发明的设计思想是通过neo4j图数据库存储生态依赖关系图谱存储linux生态依赖关系图谱;图数据库中的数据由节点(node)和关系(relationship)组成,节点和关系都可以包含多个标签和多个属性;当图数据库中存在多种linux系统版本和多种架构的生态依赖关系时,通过使用特定的标签和属性进行区分。
下面将参考附图并结合实施例来详细说明本发明。
实施例一:
本发明实施例一提供了基于图数据库的linux生态依赖关系图谱构建方法,具体如图1所示,包括:
S101.从系统镜像文件中获取全部库包信息,包括名称,版本,源码包名称以及依赖关系(name, version, source,depends),depends中的内容为依赖库包名称与依赖版本要求的组合,例如:[libc6 (>= 2.29), libgcc-s1 (>= 3.4)];
S102.遍历系统库包信息,使用查询语句判断系统库包名称是否在图数据库中已经存在:
若是,在图数据库的同名库包节点中追加指定系统的xxx_system_version,xxx_depends属性和xxx_system、xxx_arch、Depends标签;其中xxx_system_version为系统版本属性,xxx_depends为依赖属性;xxx_system为系统名称标签,xxx_arch为架构标签,Depends为依赖标签;
若否,将该库包信息以节点的形式存入图数据库中,为该节点增加指定系统的名称name,xxx_system_version,xxx_depends属性和xxx_system、xxx_arch、Depends标签;
S103.从仓库源Packages文件中获取仓库源中全部的库包信息,包括名称,版本,依赖关系,类别等(name, version,depends, section等);
S104.遍历仓库源库包信息,使用查询语句判断仓库源库包名称是否在图数据库中已经存在:
若是,在图数据库的同名库包节点中追加指定仓库源的xxx_source_version,xxx_depends属性和xxx_source、xxx_arch、Depends标签;其中xxx_source_version为仓库源版本,xxx_source为仓库源标签;
若否,将该库包信息以节点的形式存入图数据库中,为其增加指定仓库源的名称name,xxx_source_version,xxx_depends属性和xxx_source、xxx_arch、Depends标签;
S105.从软件源Packages获取应用软件源全部的应用信息,包括名称,版本,依赖关系,类别等(name, version,depends, section等);
S106.遍历应用信息,使用查询语句判断应用名称是否在图数据库中已经存在:
若已存在,则再判断该应用的版本是否小于图数据库中已经存在的应用版本;若是,不作处理;若否,将已经存在的节点的version,depends属性更新为最新版应用version,depends属性;
若不存在,将该应用以节点的形式存入图数据库中,为其增加指定的应用名称name,版本xxx_version,依赖xxx_depends属性和Software标签;
S107.遍历图数据库中的所有节点,获取节点的depends属性值,并在图数据库中查询是否存在与depends属性值相同的库包节点名称:
若是,在两个节点创建一条依赖关系,该关系方向由库包节点指向其depends属性值中库包名称的节点,并在关系中增加指定的depends_type,xxx_depends_version属性和标签;
若否,用其depends属性值中的库包名称创建一个节点,并为其增加指定的name属性和Depends标签,在两个节点中创建关系,并在关系中增加指定的depends_type,xxx_depends_version属性和标签;
S108.重复执行上述步骤,进行其他系统版本及其他架构的生态依赖关系存储;将xxx内容替换成指定版本或指定架构的名称即可,最终构建完成的图谱结构的部分内容如图2所示。
通过实施例一的技术方案,能够在同一张生态依赖关系图谱中准确区分多个版本和多个架构的Linux操作系统生态依赖关系;有助于更全面地了解不同版本和架构之间的依赖关系,便于进行快速的横向对比和差异分析。
实施例二:
本发明实施例二是在实施例一的基础上提供了基于生态关系依赖图谱的应用兼容性评估方法;如图3所示,具体包括以下步骤:
S201.首先通过查询语句查询出应用依赖的所有库包节点(包含直接依赖和间接依赖)及关系;
S202.对每段关系中被依赖的节点,进行系统、仓库源内的库包存在性和版本符合性检查:
系统存在性检查:检查节点是否包含指定的标签xxx_system;
仓库源存在性检查:检查节点是否包含指定的标签xxx_source;
系统版本符合性检查:检查库包节点(node)的xxx_system_version属性值是否满足关系(relationship)中xxx_depends_version属性值的要求,例如xxx_system_version属性值为1.0,xxx_depends_version属性值为>=1.0,1.0满足>=1.0的要求;
仓库源版本符合性检查:检查库包节点(node)的xxx_source_version属性值是否满足关系(relationship)中xxx_depends_version属性值的要求,例如xxx_source_version属性值为1.0,xxx_depends_version属性值为>=1.1,1.0不满足>=1.1的要求;
S203.根据步骤S202的检查结果进行判断:
当库包节点在系统或仓库源中存在,且在系统或仓库源中满足要求时:若是,应用无兼容性问题;若否,应用存在兼容性问题。
实施例三:
本发明实施例三是在实施例一和实施例二的基础上提供了基于生态关系依赖图谱的生态影响域评估方法;如图4所示,以某系统1及其新版系统2为例,具体包括以下步骤:
S301.使用生态依赖关系图谱构建方法将系统1及新版系统2的生态依赖关系图谱存入图数据库中;
S302.查询只包含系统1_system标签的节点名称,标记为系统2中删除的库包;
S303.查询只包含系统2_system标签的节点名称,标记为系统2中新增的库包;
S304.查询同时包含系统1_system和系统2_system标签的节点名称,并依次判断系统1_version的属性值与系统2_version的属性值是否相等:
若是,将该节点标记为系统2中未改动的库包;
若否,将该节点标记为系统2中变动的库包;
S305.遍历被标记为删除和变动的库包,查询出所有被直接或间接依赖的应用名称,输出名称列表,该列表即为系统2库包变动而产生的生态影响域;
S306.使用基于生态关系依赖图谱的应用兼容性评估方法对生态影响域中的应用进行评估,输出评估结果。
实施例四:
本发明实施例四提供了一种基于图数据库的linux生态依赖关系图谱构建系统,具体包括:
系统节点单元:获取操作系统全部库包信息以节点形式存入图数据库中,若节点已经存在,向节点增加所述操作系统的属性和标签;属性包含‘依赖’属性;
仓库源节点单元:获取仓库源中全部库包信息以节点形式存入图数据库中,若节点已经存在,向节点增加所述仓库源的属性和标签;属性包含‘依赖’属性;
应用节点单元:获取应用软件源全部的应用信息以节点形式存入图数据库中,若节点已经存在,则再通过版本判断模块判断节点对应的应用版本是否小于图数据库中已经存在的应用版本;若是,不作处理;若否,向节点增加指定应用的属性和标签;属性包含‘依赖’属性;
关系创建单元:遍历图数据库中的所有节点,获取每一个节点的‘依赖’属性,并在图数据库中查询是否存在与‘依赖’属性值相同的节点名称;若是,在两个节点之间创建关系,关系方向由被遍历的节点指向与节点‘依赖’属性值相同名称的节点;并在关系中增加属性和标签;若否,创建一个与‘依赖’属性值相同名称的节点并为其增加属性和标签;然后在两个节点之间创建关系,关系方向由被遍历的节点指向与节点‘依赖’属性值相同名称的节点;并在关系中增加属性和标签;
图谱单元:通过系统节点单元、仓库源节点单元、应用节点单元、关系创建单元存储完成所有版本及所有架构的操作系统信息,构建完成linux生态依赖关系图谱。
本发明实施例四所提供的基于图数据库的linux生态依赖关系图谱构建系统,可执行本发明实施例一所提供的方法,具备执行方法相应的功能模块和有益效果。
实施例五:
本发明实施例五还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如上述实施例一至实施例三提供的任一所述方法。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上述实施例仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于图数据库的linux生态依赖关系图谱构建方法,其特征在于,包括:
S1、获取操作系统全部库包信息以节点形式存入图数据库中,若节点已经存在,向节点增加所述操作系统的属性和标签;属性包含‘依赖’属性;
S2、获取仓库源中全部库包信息以节点形式存入图数据库中,若节点已经存在,向节点增加所述仓库源的属性和标签;属性包含‘依赖’属性;
S3、获取应用软件源全部的应用信息以节点形式存入图数据库中,若节点已经存在,向节点增加所述应用信息的属性和标签;属性包含‘依赖’属性;
S4、遍历图数据库中的所有节点,获取每一个节点的‘依赖’属性,并在图数据库中查询是否存在与‘依赖’属性值相同的节点名称;
若是,在两个节点之间创建关系,并在关系中增加属性和标签;
若否,创建一个与‘依赖’属性值相同名称的节点并为其增加属性和标签;然后在两个节点之间创建关系,并在关系中增加属性和标签;
S5、重复执行步骤S1-S4,直至存储完成所有版本及所有架构的操作系统信息,构建完成linux生态依赖关系图谱。
2.根据权利要求1所述的基于图数据库的linux生态依赖关系图谱构建方法,其特征在于,步骤S3中还包括:若节点已经存在,判断节点对应的应用版本是否小于图数据库中已经存在的应用版本:若是,不作处理;若否,向节点增加指定应用的属性和标签。
3.根据权利要求1所述的基于图数据库的linux生态依赖关系图谱构建方法,其特征在于,步骤S4中,所述在两个节点之间创建关系,关系方向由被遍历的节点指向与节点‘依赖’属性值相同名称的节点。
4.一种基于linux生态依赖关系图谱的应用兼容性评估方法;其特征在于,所述linux生态依赖关系图谱应用权利要求1-3任一项所述方法构建而成;包括:
S10、在所述linux生态依赖关系图谱中查询应用节点的所有直接或间接的依赖关系,作为应用的依赖树;所述应用节点是存入图数据库的应用信息对应的节点;
S11、依次对所述依赖树的每一段关系进行操作系统库包、仓库源库包的存在性和版本符合性检查;
S12、根据检查结果得到应用兼容性评估结果。
5.一种基于linux生态依赖关系图谱的生态影响域评估方法;其特征在于,所述linux生态依赖关系图谱应用权利要求1-3任一项所述方法构建而成;包括:
S21、在所述linux生态依赖关系图谱中存入多个版本的系统信息;
S22、通过查询节点的标签中所包含的系统名称进行筛选,筛选出对应不同版本系统的新增或删除的节点,并分别标记为新增或删除;
S23、当节点标签中同时包含多个版本的系统名称时,判断节点属性的系统版本号是否相等;若是,将节点标记为未改动;若否,将节点标记为变动;
S24、遍历被标记为删除和变动的库包,查询出所有被直接或间接依赖的应用节点名称,作为系统库包变动而产生的生态影响域;所述应用节点是存入图数据库的应用信息对应的节点;
S25、在所述linux生态依赖关系图谱中查询所述生态影响域中的应用节点的所有直接或间接的依赖关系,作为应用的依赖树;依次对所述依赖树的每一段关系进行操作系统库包、仓库源库包的存在性和版本符合性检查;根据检查结果得到评估结果。
6.一种基于图数据库的linux生态依赖关系图谱构建系统,其特征在于,包括:
系统节点单元:获取操作系统全部库包信息以节点形式存入图数据库中,若节点已经存在,向节点增加所述操作系统的属性和标签;属性包含‘依赖’属性;
仓库源节点单元:获取仓库源中全部库包信息以节点形式存入图数据库中,若节点已经存在,向节点增加所述仓库源的属性和标签;属性包含‘依赖’属性;
应用节点单元:获取应用软件源全部的应用信息以节点形式存入图数据库中,若节点已经存在,向节点增加所述应用信息的属性和标签;属性包含‘依赖’属性;
关系创建单元:遍历图数据库中的所有节点,获取每一个节点的‘依赖’属性,并在图数据库中查询是否存在与‘依赖’属性值相同的节点名称;若是,在两个节点之间创建关系,并在关系中增加属性和标签;若否,创建一个与‘依赖’属性值相同名称的节点并为其增加属性和标签;然后在两个节点之间创建关系,并在关系中增加属性和标签;
图谱单元:通过系统节点单元、仓库源节点单元、应用节点单元、关系创建单元存储完成所有版本及所有架构的操作系统信息,构建完成linux生态依赖关系图谱。
7.根据权利要求6所述的基于图数据库的linux生态依赖关系图谱构建系统,其特征在于,应用节点单元中还包括:
版本判断模块:若节点已经存在,判断节点对应的应用版本是否小于图数据库中已经存在的应用版本:若是,不作处理;若否,向节点增加指定应用的属性和标签。
8.根据权利要求6所述的基于图数据库的linux生态依赖关系图谱构建系统,其特征在于,关系创建单元中,所述在两个节点之间创建关系,关系方向由被遍历的节点指向与节点‘依赖’属性值相同名称的节点。
9.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行如权利要求1-3任一项所述的基于图数据库的linux生态依赖关系图谱构建方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311707110.7A CN117407047B (zh) | 2023-12-13 | 2023-12-13 | 一种基于图数据库的linux生态依赖关系图谱构建方法及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311707110.7A CN117407047B (zh) | 2023-12-13 | 2023-12-13 | 一种基于图数据库的linux生态依赖关系图谱构建方法及应用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117407047A true CN117407047A (zh) | 2024-01-16 |
CN117407047B CN117407047B (zh) | 2024-04-05 |
Family
ID=89489312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311707110.7A Active CN117407047B (zh) | 2023-12-13 | 2023-12-13 | 一种基于图数据库的linux生态依赖关系图谱构建方法及应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117407047B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117707985B (zh) * | 2024-02-01 | 2024-06-07 | 麒麟软件有限公司 | 软件兼容性信息获取方法、装置及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716873A (zh) * | 2019-09-24 | 2020-01-21 | 北京计算机技术及应用研究所 | 一种硬件兼容性知识库构建方法 |
CN112230976A (zh) * | 2020-09-01 | 2021-01-15 | 麒麟软件有限公司 | 同时支持两种软件包管理器并支持软件包相互依赖及冲突检测的方法 |
CN113986395A (zh) * | 2021-11-08 | 2022-01-28 | 麒麟软件有限公司 | 一种linux系统下应用依赖自包含技术的打包方法 |
CN114510267A (zh) * | 2022-04-20 | 2022-05-17 | 麒麟软件有限公司 | 基于Linux系统的程序ABI接口兼容性计算方法 |
CN115039045A (zh) * | 2019-11-25 | 2022-09-09 | 强力物联网投资组合2016有限公司 | 用于工业环境的智能振动数字孪生系统和方法 |
CN115543294A (zh) * | 2022-12-06 | 2022-12-30 | 麒麟软件有限公司 | 一种Linux系统上动态链接库可视化依赖树的生成方法 |
CN117195233A (zh) * | 2023-09-18 | 2023-12-08 | 中国科学院软件研究所 | 面向开源软件供应链的物料清单sbom+分析方法及装置 |
-
2023
- 2023-12-13 CN CN202311707110.7A patent/CN117407047B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716873A (zh) * | 2019-09-24 | 2020-01-21 | 北京计算机技术及应用研究所 | 一种硬件兼容性知识库构建方法 |
CN115039045A (zh) * | 2019-11-25 | 2022-09-09 | 强力物联网投资组合2016有限公司 | 用于工业环境的智能振动数字孪生系统和方法 |
CN112230976A (zh) * | 2020-09-01 | 2021-01-15 | 麒麟软件有限公司 | 同时支持两种软件包管理器并支持软件包相互依赖及冲突检测的方法 |
CN113986395A (zh) * | 2021-11-08 | 2022-01-28 | 麒麟软件有限公司 | 一种linux系统下应用依赖自包含技术的打包方法 |
CN114510267A (zh) * | 2022-04-20 | 2022-05-17 | 麒麟软件有限公司 | 基于Linux系统的程序ABI接口兼容性计算方法 |
CN115543294A (zh) * | 2022-12-06 | 2022-12-30 | 麒麟软件有限公司 | 一种Linux系统上动态链接库可视化依赖树的生成方法 |
CN117195233A (zh) * | 2023-09-18 | 2023-12-08 | 中国科学院软件研究所 | 面向开源软件供应链的物料清单sbom+分析方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117707985B (zh) * | 2024-02-01 | 2024-06-07 | 麒麟软件有限公司 | 软件兼容性信息获取方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117407047B (zh) | 2024-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107615239B (zh) | 用于托管和发布软件包的基础架构 | |
KR101841751B1 (ko) | 콜경로 파인더 | |
US9552348B2 (en) | System and method for operating a computer application with spreadsheet functionality | |
CN113901083B (zh) | 基于多解析器的异构数据源操作资源解析定位方法和设备 | |
US20180150495A1 (en) | Augmenting relational databases via database structure graph | |
CN108920566B (zh) | 一种对SQLite数据库的操作方法、装置及设备 | |
TW201235943A (en) | Unchanged object management | |
US20210026756A1 (en) | Deriving software application dependency trees for white-box testing | |
CN117407047B (zh) | 一种基于图数据库的linux生态依赖关系图谱构建方法及应用 | |
US20140359258A1 (en) | Declarative Configuration Elements | |
CN111240987A (zh) | 移植程序检测方法、装置、电子设备及计算机可读存储介质 | |
CN115951916A (zh) | 一种组件的处理方法、装置、电子设备及存储介质 | |
CN112527302A (zh) | 错误检测的方法及装置、终端和存储介质 | |
CN113138767B (zh) | 代码语言转换方法、装置、电子设备及存储介质 | |
CN113126998B (zh) | 一种增量源码获取方法、装置、电子设备及存储介质 | |
CN110716946B (zh) | 特征规则匹配库的更新方法、装置、存储介质及电子设备 | |
CN114691197A (zh) | 代码分析方法、装置、电子设备和存储介质 | |
CN114115908A (zh) | 一种指令集生成、程序解析方法装置、设备以及存储介质 | |
CN115729797A (zh) | 代码相似函数检测方法、装置、电子设备及存储介质 | |
US11068468B2 (en) | Extensible validation framework | |
JP7111967B2 (ja) | プログラム検証プログラム、プログラム検証方法およびプログラム検証装置 | |
US8572594B2 (en) | Invasion analysis to identify open types | |
US20150082443A1 (en) | System to automate compliance with licenses of software third-party content | |
CN114780109B (zh) | Python项目第三方库依赖自动化解析与安装方法 | |
CN116755684B (zh) | OAS Schema的生成方法、装置、设备及介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |