一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种混源软件中开源成分检测的方法和系统与流程

2021-12-01 01:31:00 来源:中国专利 TAG:


1.本技术公开的实施例主要涉及开源治理相关技术领域以及具体涉及软件成分分析(sca)安全测试细分技术领域,且更具体地,涉及一种混源软件中开源成分检测的方法和系统。


背景技术:

2.近年来,软件开发中开源成分使用比例越来越高。开源成分的引入,能够大大提高软件开发的效率。如今,几乎所有的软件开发者实体都会选择使用开源框架、开源库、开源组件等,以简化开发过程、缩短开发周期。然而引入开源成分,不免可能引入一些漏洞,造成安全问题,以及知识产权合规问题。特别是直接拷贝开源代码文件复用或仅做简单修改即引入,都不免因为开源内容被广泛、频繁地公开使用而成为攻击者优先攻击的目标。
3.目前,虽然已经有很多sca工具支持开源成分的分析,但是这些工具大都是基于项目的特征文件来分析项目的开源成分,而基于代码的开源成分分析则很少,主要是因为基于海量的开源代码进行开源成分的分析难度大,检测效率不能达到预期。


技术实现要素:

4.根据本技术公开的实施例,提供了一种混源软件中开源成分检测的方法和系统,以实现代码粒度的开源成分检测,并且能够在保证检测效率的前提下取得在广义的代码粒度上的、可接受的开源成分检测结果。
5.在本公开的第一方面中,提供了一种混源软件中开源成分检测的方法。该方法包括:获取目标混源软件中的源码文件,作为第一源码文件;根据所述第一源码文件的大小分别对所述第一源码文件执行相应的同源分析;其中,对于所述第一源码文件中大小超过第一阈值的源码文件,基于simhash算法对其进行同源分析;而对于所述第一源码文件中大小不超过第一阈值的源码文件,基于minhash算法对其进行同源分析;而具体地,上述的基于simhash算法的同源分析,可以是包括:定义一个simhash函数h1,基于待检测的大小超过第一阈值的第一源码文件的代码生成所述第一源码文件的第一simhash值,以及将所述第一simhash值与指纹库中的第二simhash值逐一进行匹配分析,确定所述第一源码文件是否与指纹库中的第二simhash值所对应的源码文件同源;而上述的第二simhash值,则是指根据源码库中的第二源码文件的代码基于simhash函数h1分别生成并存储于指纹库的simhash值;上述的基于minhash算法的同源分析,可以是包括:获取源码库中的第三源码文件;以及根据待检测的大小不超过第一阈值的第一源码文件和获取的第三源码文件的代码,分别生成所述第一源码文件、第三源码文件对应的签名集合,并据此构建所述签名集合的特征矩阵;并且定义一个minhash函数h2,基于所述特征矩阵和minhash函数h2估算所述第一源码文件与第三源码文件的签名集合间的jaccard相似度,确定所述第一源码文件是否与第三源码文件中的某个或某几个同源;其中,上述的源码库,是指收集源码文件、并分类存储所述收集的源码文件而生成的源代码仓库;其中的第二源码文件,是指源码库中大小超过第一
阈值的源码文件;第三源码文件,是指源码库中大小不超过第一阈值的源码文件;而同源分析涉及的simhash函数h1、minhash函数h2,则可以是指任一的simhash函数、minhash函数。
6.在本公开的第二方面中,提供了一种混源软件中开源成分检测的系统。该系统包括:解析器、分类器、simhash识别器、minhash识别器;其中,解析器,用于解析目标混源软件、及从中获取第一源码文件;分类器,用于对解析器得到的第一源码文件进行分类、及并分配给相应的识别器进行同源分析;simhash识别器,用于对所述第一源码文件中大小超过第一阈值的源码文件执行基于simhash算法的同源分析;minhash识别器,则用于对所述第一源码文件中大小不超过第一阈值的源码文件执行基于minhash算法的同源分析;具体来说,上述的解析器,能够对目标混源软件的软件包进行解析,从中解析得到目标混源软件的源码文件,即所述第一源码文件;上述的分类器,则能够根据所述第一源码文件的大小对其进行分类,以及进而为所述第一源码文件分配识别器;其中,对于大小超过第一阈值的第一源码文件,分配给simhash识别器进行同源分析;对于大小不超过第一阈值的第一源码文件,分配给minhash识别器进行同源分析;上述的simhash识别器,被配置得能够通过一个simhash函数h1对分类器分配的大小超过第一阈值的第一源码文件的代码进行哈希处理生成所述第一源码文件的第一simhash值、以及将所述第一simhash值与第二simhash值逐一进行匹配分析来确定所述第一源码文件是否与第二simhash值所对应的源码文件同源;而上述的第二simhash值,则是指源码库中的第二源码文件的代码基于simhash函数h1分别生成的simhash值;上述的minhash识别器,被配置得能够获取源码库中第三源码文件、以及基于所述第一源码文件与第三源码文件的签名集合特征矩阵和一个minhash函数h2估算所述第一源码文件与第三源码文件的签名集合间的jaccard相似度来确定所述第一源码文件是否与第三源码文件中某个或某几个同源;而上述的签名集合特征矩阵,则是根据所述第一源码文件、第三源码文件的签名集合构建的;所述第一源码文件、第三源码文件的签名集合,则是分别根据所述第一源码文件、第三源码文件的代码生成的;其中,上述的源码库,是指收集源码文件、并分类存储所述收集的源码文件而生成的源代码仓库;其中的第二源码文件,是指源码库中大小超过第一阈值的源码文件;第三源码文件,是指源码库中大小不超过第一阈值的源码文件;而同源分析涉及的simhash函数h1、minhash函数h2,则可以是指任一的simhash函数、minhash函数。
7.在本公开的第三方面中,提供了一种混源软件中开源成分检测的系统。该系统包括:至少一个处理器,和至少一个处理器耦合的存储器,以及存储在存储器中的计算机程序;其中的处理器执行所述计算机程序,能够实现第一方面述及的混源软件中开源成分检测的方法。
8.在本公开的第四方面中,提供了一种计算机可读存储介质。该介质上存储有软件开源成分检测相关的计算机指令;该计算机指令在被计算机处理器执行时能够实现第一方面述及的混源软件中开源成分检测的方法。
9.在本公开的第五方面中,提供了一种计算机程序产品。该程序产品包括计算机程序,该计算机程序在被计算机处理器执行时能够实现第一方面述及的混源软件中开源成分检测的方法。
10.应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理
解。
附图说明
11.结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:图1示出了根据本公开的实施例的混源软件中开源成分检测的过程的示意图;图2示出了根据本公开内容示例性实现的一种用于混源软件中开源成分检测的系统的框图;图3示出了能够实施本公开的多个实施例的计算设备的框图。
具体实施方式
12.下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
13.在本公开的实施例的描述中术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
14.在本公开的实施例的描述中技术术语“目标混源软件”,是指任一的作为待检测对象的混源软件。在本公开的实施例的具体实现过程中,待检测的“目标混源软件”,一般是以软件包形态作为检测对象,被提交给本公开实施例的方案涉及的方法、系统等进行开源检测分析的。
15.为了最大限度的发挥软件开发效能,对于软件开发者实体而言,利用第三方资源,特别是利用开源的第三方库,以从简化设计、减少编码量等多维度提高每个在研软件项目的开发效率,无疑是提升软件开发效能的必由之路。现实中,几乎所有的软件开发者实体都选择使用第三方库,特别是开源的第三方资源。这种构件化复用的趋势,具体到从框架、组件到涉及某一特定功能的代码片段等的复用,变得越来越明显。据gartner统计,近年来软件使用第三方库的代码量已经占到了总代码量的80%以上,自研的代码比例越来越低。然而,引入开源成分的同时,也会引入开源成分可能潜藏的漏洞;对于攻击者而言,寻找零日漏洞是困难的,因此利用已知漏洞对软件系统进行攻击往往是其常用方式,开源资源被公开地、频繁地复用,无疑加剧了这方面的风险。而每一份开源代码都附有其遵循的开源许可证信息,开源许可证中不仅规定了使用者的义务,而且不同的开源许可证间还可能存在着彼此冲突的风险。因此,盲目引入开源成分,很可能因为疏忽或引入许可证彼此冲突的开源代码而带来知识产权风险。
16.根据本公开的实施例,提出了一种混源软件中开源成分检测的方案。在该方案中,获取目标混源软件中的源码文件,即第一源码文件,和根据所述第一源码文件的大小分别对所述第一源码文件执行相应的同源分析:对于其中大小超过第一阈值的源码文件,基于simhash算法对其进行同源分析;而对于其中大小不超过第一阈值的源码文件,则基于
minhash算法对其进行同源分析。本公开的方案,不仅能够均衡混源软件开源成分检测的效率需求和精确性间的矛盾,更是能够在保证检测效率的前提下获得可接受的开源成分检测结果。
17.以下将参照附图来具体描述本公开的实施例。图1示出了根据本公开的实施例的混源软件中开源成分检测的过程100的示意图。如图1所示,混源软件中开源成分检测的过程100,主要包括:在框101,解析目标混源软件的待检测包,获取其中全部的源码文件,作为第一源码文件;以及在框102,根据解析获得的第一源码文件的大小分别对每个第一源码文件执行相应的同源分析;其中,在框102a,对于第一源码文件中大小超过第一阈值的源码文件,采用simhash算法对其进行处理,以及将处理结果与指纹库匹配,来实现对其的同源分析;对于第一源码文件中大小不超过第一阈值的源码文件,采用minhash算法估算其与第三源码文件的代码间的相似度,来实现对其的同源分析。具体来说,在一些实施例中,在框102a,基于simhash算法和指纹库匹配的同源分析,可以是:选择一个确定的simhash函数(所述simhash函数,可以是任一的simhash函数),基于该simhash函数对源码库中的大小超过第一阈值的的源码文件(即第二源码文件)的全部代码进行处理,计算其哈希值,得到第二simhash值,并存储于指纹库,以在相关开源成分检测调用到simhash算法的同源分析时提供比对匹配之用;对于待检测的大小超过第一阈值的第一源码文件,基于同一个simhash函数对其全部代码进行处理,计算其哈希值,即第一simhash值;将第一simhash值与指纹库中的第二simhash值逐一比对,进行匹配分析,最终确定所述第一源码文件是否与指纹库中的第二simhash值所对应的源码文件同源。而在框102b,基于minhash算法的同源分析,其过程则可以是:获取源码库中的大小不超过第一阈值的源码文件(即第三源码文件),并将待检测的大小不超过第一阈值的第一源码文件与上述的第三源码文件一起处理,以判断它们之间的相似性,进而实现同源分析;得到第三源码文件(一般地,一个源码库中通常有很多个第三源码文件)后,根据所述第一源码文件、第三源码文件的代码分别生成所述第一源码文件及每个第三源码文件对应的签名集合,并利用各个签名集合组成一个特征矩阵;一般地,所述签名集合的特征矩阵,通常以每个源码文件的签名结合为一列;选择一个确定的minhash函数(所述minhash函数,可以是任一的minhash函数),对所述特征矩阵进行处理,例如对于前面示例中具体描述的特征矩阵,执行行打乱处理,并在(每次)行打乱处理后利用选定的minhash函数计算各列的最小哈希值,进而基于此估算所述第一源码文件与第三源码文件的签名集合间的jaccard相似度,确定所述第一源码文件是否与各个第三源码文件同源。此外,在一些实施例中,对其中的各源码文件的代码进行各种哈希计算时,还可以是:在哈希计算前,对源码文件的代码文本进行分词处理,生成例如上述签名集合的形式,以提高识别效率和精确度。
18.在一些实施例中,在框102a,基于simhash算法和指纹库匹配的同源分析,更具体地,可以是:在对第一simhash值与指纹库中的第二simhash值逐一比对、匹配分析时,分别计算所述第一simhash值与指纹库中的各个第二simhash值之间的海明距离,根据计算得到的海明距离判断二者的相似程度。例如,设定一个海明距离阈值,并将低于该海明距离阈值的,判定为二者对应的源码文件同源。
19.在一些实施例中,在框102b,基于签名集合特征矩阵和选定minhash函数估算相似度进而实现同源分析的过程,具体地,可以是:对所述特征矩阵进行相应的打乱处理(例如,
若所述特征矩阵如前面示例中描述的根据惯常设定生成的特征矩阵——以签名集合为列,则所述打乱处理,可以是指行打乱处理;其他情形,则适应性地采用相应的打乱处理(如以签名集合为行,则作列打乱处理)),经过多次(随机)打乱处理和基于选定minhash函数计算各次处理的最小哈希值,得到第一源码文件与第三源码文件的最小哈希签名矩阵;基于所述最小哈希签名矩阵,分别估算第一源码文件与特征矩阵中其他各个第三源码文件的签名集合间的jaccard相似度,来分别确定所述第一源码文件是否与各个第三源码文件中同源。以上的基于签名集合特征矩阵和选定minhash函数估算相似度进而实现同源分析的过程,具体地,还可以是:对所述特征矩阵进行相应的打乱处理(同上,例如所述特征矩阵以签名集合为列时的,针对性的行打乱),经过多次(随机)打乱处理和相应地基于选定minhash函数计算第一源码文件、第三源码文件的签名集合的最小哈希值,生成最小哈希签名矩阵;基于所述最小哈希签名矩阵,采用lsh算法确保仅对高度相似的进行处理:即直接忽略不是候选对的签名集合,而仅筛选出相似度可能很高的一些候选对,进而通过候选对比较等方式快速找出其签名集合与第一源码文件的签名集合的jaccard相似度超过第二阈值的第三源码文件;其中,若确有其签名集合与第一源码文件的签名集合的jaccard相似度超过第二阈值的第三源码文件,则应视为所述第三源码文件与第一源码文件的代码相似,应判定所述第三源码文件与第一源码文件同源;若无其签名集合与第一源码文件的签名集合的jaccard相似度超过第二阈值的第三源码文件,则应判定源码库中无与所述第一源码文件同源的第三源码文件。
20.在一些实施例中,在框102b,在基于minhash算法实现同源分析的过程中,在生成第一源码文件、第三源码文件的签名集合时,还可以是:根据编程经验设定关键词词典,基于关键词词典对所述第一源码文件、第三源码文件的代码进行处理,以获得高效且精确分词的第一源码文件、第三源码文件的签名集合。
21.在一些实施例中,对于源码库中的第三源码文件,为提高(基于minhash算法的)同步分析效率,将所述的第三源码文件单独管理,生成第三源码文件库,用于存储和管理所述的第三源码文件;以便使在框102b中执行基于minhash算法的同源分析时,可以直接从第三源码文件库获取所述第三源码文件,而非海量的源码库中查找获取,以大幅提高第三源码文件获取效率。
22.基于如上面所述的方式,无疑将对混源软件中的源码文件根据其文件自身特点实现有针对性的开源成分检测,更是较之现有技术中基于源码文件摘要信息的检测方式来说,实现了对源码文件在代码粒度的开源成分分析,同时充分考虑了各种检测技术的优劣,形成了一套兼具效率与精准度的均衡的开源成分检测方案。
23.图2示出了根据本公开实施例的用于混源软件中开源成分检测的系统200的框图。如图2所示,系统200,包括:解析器210、分类器220、simhash识别器230和minhash识别器240;其中,解析器210,用于解析目标混源软件、及从中获取第一源码文件;分类器220,用于对解析器得到的第一源码文件进行分类、及并分配给相应的识别器进行同源分析;simhash识别器230,用于对所述第一源码文件中大小超过第一阈值的源码文件执行基于simhash算法的同源分析;minhash识别器240,则用于对所述第一源码文件中大小不超过第一阈值的源码文件执行基于minhash算法的同源分析。在一些实施例中,解析器210可以是:对(例如通过上传提交检测的)对目标混源软件软件包进行解析,从中解析得到目标混源软件中全
部的源码文件,这些源码文件也就是第一源码文件。分类器220,可以是:根据解析器210得到的每个第一源码文件的大小对其进行分类,并据此为所述第一源码文件分配相应的识别器。具体地,对于其中大小超过第一阈值的第一源码文件,分配给simhash识别器230进行同源分析;对于其中大小不超过第一阈值的第一源码文件,分配给minhash识别器240进行同源分析。simhash识别器230,可以是:被配置得能够通过一个确定的simhash函数(可以是任一的simhash函数)对分类器220分配的大小超过第一阈值的第一源码文件的代码进行哈希处理,计算得到所述第一源码文件的第一simhash值、以及将所述第一simhash值与各个第二simhash值逐一进行匹配分析来确定所述第一源码文件是否与第二simhash值所对应的源码文件同源;其中,上述各个第二simhash值,则是根据源码库中的各个第二源码文件的代码基于同一确定的simhash函数分别处理并计算得到的simhash值(应对源码库中的全部的第二源码文件生成对应的第二simhash值)。minhash识别器240,可以是:被配置得能够获取源码库中第三源码文件、以及基于所述第一源码文件与第三源码文件的签名集合特征矩阵和一个确定的minhash函数(可以是任一的minhash函数)估算所述第一源码文件与第三源码文件的签名集合间的jaccard相似度来确定所述第一源码文件是否与各个第三源码文件中某个或某几个存在同源;其中,上述的签名集合特征矩阵,则是根据所述第一源码文件、第三源码文件的签名集合构建的;所述第一源码文件、第三源码文件的签名集合,则是分别根据所述第一源码文件、各个第三源码文件的代码对应生成的。此外,在一些实施例中,对其中的各源码文件的代码进行各种哈希计算时,还可以是:使各识别器在哈希计算前,对源码文件的代码文本进行分词处理,生成例如上述签名集合的形式,以提高识别效率和精确度。
24.在一些实施例中,simhash识别器230,在基于所述第一simhash值与第二simhash值的匹配对所述第一源码文件进行同源分析时,具体可以被配置得包括:分别计算所述第一simhash值与各个所述第二simhash值之间的海明距离,来判断所述第一源码文件与所述第二simhash值对应的源码文件之间的相似程度,并据此判断二者是否同源。其中,更具体地,例如设定一个海明距离阈值,并设定所述第一源码文件的海明距离低于与所述阈值的第二simhash值对应的源码文件,为所述第一源码文件的同源文件。
25.在一些实施例中,minhash识别器240在基于所述签名集合特征矩阵和minhash函数对所述第一源码文件进行同源分析时,可以被配置得使所述基于所述第一源码文件与第三源码文件的签名集合特征矩阵和minhash函数估算所述第一源码文件与第三源码文件的签名集合间的jaccard相似度来实现同源分析的过程,包括:对所述特征矩阵进行相应的打乱处理(一般是行打乱,详细请参考前面章节相关描述),经过多次(随机)打乱处理和基于选定minhash函数计算各次处理的最小哈希值,得到第一源码文件与第三源码文件的最小哈希签名矩阵;基于所述最小哈希签名矩阵,分别估算第一源码文件与特征矩阵中其他各个第三源码文件的签名集合间的jaccard相似度,来分别确定所述第一源码文件是否与各个第三源码文件中同源。或者,以上的基于所述签名集合特征矩阵和minhash函数估算相似度进而实现同源分析的过程,还可以是更高效的方式,包括:对所述特征矩阵进行相应的打乱处理(同上,一般是行打乱,详细请参考前面章节相关描述)经过多次(随机)打乱处理和相应地基于选定minhash函数计算第一源码文件、第三源码文件的签名集合的最小哈希值,生成最小哈希签名矩阵;基于所述最小哈希签名矩阵,采用lsh算法确保仅对高度相似的进
行处理:即直接忽略不是候选对的签名集合,而仅筛选出相似度可能很高的一些候选对,进而通过候选对比较等方式快速找出其签名集合与第一源码文件的签名集合的jaccard相似度超过第二阈值的第三源码文件;其中,若确有其签名集合与第一源码文件的签名集合的jaccard相似度超过第二阈值的第三源码文件,则应视为所述第三源码文件与第一源码文件的代码相似,应判定所述第三源码文件与第一源码文件同源;若无其签名集合与第一源码文件的签名集合的jaccard相似度超过第二阈值的第三源码文件,则应判定源码库中无与所述第一源码文件同源的第三源码文件。
26.在一些实施例中,所述系统还包括设置关键词词典(一般地,根据编程检验设置);并使minhash识别器240,在对所述第一源码文件执行基于minhash算法的同源分析的过程中,在具体执行到生成所述第一源码文件、第三源码文件的签名集合时,被配置得根据所述关键词词典对所述第一源码文件、第三源码文件的代码进行处理,以获得高效且精确分词的第一源码文件、第三源码文件的签名集合。
27.在一些实施例中,所述系统,还包括:指纹库。所述指纹库,用于存储所述第二simhash值。基于同一simhash函数对源码库中的全部第二源码文件的代码进行哈希处理分别生成相应的第二simhash值存储于所述指纹库,并提供给simhash识别器230在进行同源分析执行到相关比对匹配时查询之用。
28.在一些实施例中,所述系统,还包括:第三源码文件库。所述的第三源码文件库,专用于存储和管理所述第三源码文件。具体地,可以是,收集第三源码文件,并生成第三源码文件库,对所述源码文件单独管理;并配置得使minhash识别器240在执行基于minhash算法的同源分析时,直接从第三源码文件库获取所述第三源码文件。
29.根据本公开的一些实施例,还提出了一种混源软件中开源成分检测的系统。所述系统,具体地,可以是通过计算设备实施。图3示出了上述实施例的可以用来实施本公开的一些实施例的计算设备300的框图。如图3所示,计算设备300,包括中央处理器(cpu)301,其能够根据存储在只读存储器(rom)302的计算机程序指令或从存储单元308加载到随机访问存储器(ram)303中的计算机程序指令,来执行各种适当的操作和处理,在(ram)303中,还可以存储计算设备300操作所需的各种程序代码、数据。cpu301、rom302、ram303通过总线304彼此相连,且输入/输出(i/o)接口305也与总线304相连。计算设备300的一些部件通过i/o接口305接入,包括:输入单元306,如键鼠等;输出单元307,如显示器等;存储单元308,如磁盘、光盘、固态硬盘(ssd)等,以及通信单元309,如网卡、调制解调器等。通信单元309能够使计算设备300通过计算机网络与其他设备交换信息/数据。cpu301能够执行上述实施例中描述的各种方法和处理过程,例如过程100。在一些实施例中,过程100,可以被实现为计算机软件程序,其被例如存储单元308等的计算机可读介质。在一些实施例中,计算机程序的部分或全部被载入或安装到计算设备300。当计算机程序被加载到ram303被cpu301执行时,能够执行过程100的部分或者全部操作。
30.本文中以上描述的功能都可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)等等。
31.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来
编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
32.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd

rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
33.此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以独立地或以任何合适的子组合的方式实现在多个实现中。
34.尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献