Page 85 - 《软件学报》2020年第10期
P. 85
梁冠宇 等:面向操作系统可靠性保障的开源软件供应链 3061
定义 1(面向操作系统可靠性保障的开源软件供应链). 一个扩展的有限自动机 A=(Q,O,Σ,ρ,q 0 ,F),其中,
• Q={S 1 ,S 2 },表示有限的状态集合,其中,S 1 表示可靠状态,S 2 表示不可靠状态;
• O=O 1 ∪O 2 ∪···∪O n ,表示各 Linux 发行版提供的软件包集合,其中,O n 表示某一种 Linux 发行版;
• Σ={ω i |ω i ∈O j },表示有限的输入集合,其中,ω表示属于发行版 O j 的开源软件包;
• 可靠性管理方法ρ:Σ→{0,1},判断软件包是否可靠;
• 状态转换函数δ:Q×ρ(Σ)→Q,状态转换关系如图 1 所示;
• q 0 =S 1 ,表示初始状态;
• F={S 1 },表示接受状态集合;
• L ()A ={ω|ρ(ω)=1,ω∈O j },表示面向某一 Linux 发行版O j ,可靠的开源软件供应链.
Fig.1 The state diagram of supply chain system of open source software
图 1 开源软件供应链状态图
基于定义 1,本文研究的问题转化为设计一种可靠性管理方法ρ,从软件包集合Σ中筛选出符合输出状态集
合 F 的软件包子集,组成面向 Linux 发行版的可靠的开源软件供应链.为实现这一目标,我们结合传统供应链管
理积累的经验以及知识图谱对数据丰富的表达能力,构建了一套以开源软件图谱为核心的开源软件供应链系
统,整体架构如图 2 所示,各组件职责如下.
• 图形化界面(GUI):直观地展示开源软件供应链系统,方便用户获取丰富的信息,包括开源软件之间的依
赖关系图、开源软件的可靠性分析图表等;
• 应用编程接口(API):以服务接口的形式对外提供开源软件供应链系统的能力,如供应关系获取、开源软
件可靠性分析等;
• 数据源(data source):系统以软件包管理器作为数据源,提取开源软件间的供应关系,同时通过 Github 等
上游仓库抽取开源软件的补充信息,如软件自身的演化信息、作者信息等,以丰富供应链系统中的数据信息;
• 数据源驱动程序(data source driver):为采集不同的数据源的数据,提供不同驱动程序,验证采集到的数据,
并转换为统一的格式方便系统存储和管理;
Fig.2 The architecture of supply chain system of open source software
图 2 开源软件供应链系统架构图