当前位置: 首页 > 专利查询>索纳泰公司专利>正文

用于控制软件开发的软件风险的方法和系统技术方案

技术编号:18467189 阅读:30 留言:0更新日期:2018-07-18 16:38
计算机系统、方法或计算机可读介质对旨在用于软件存储库(227)的可能不可接受的软件组件(215,231)进行控制。与存储库或应用相关联的预定义的应用或存储库策略(223,225A,225B)对风险以及针对每种风险要采取的动作进行预定义(217,219)。动作可以是通过动作或没通过动作,这些动作是也定义在策略中的预定义编程步骤。当组件(215)对于存储库(227)或应用来说不是新的时,使组件经过,以便进行通常处理。如果组件(231)是新的,则确定与该软件组件(231)匹配的风险;对于相匹配的风险,采取在预定义的策略(223,225A,225B)中定义的动作。通过动作可以包括将该软件组件(231)添加到软件存储库(227)。对于作为可能不可接受的软件组件而没通过的组件,遵循没通过动作。

Method and system for controlling software risk in software development

Computer systems, methods, or computer-readable media control the potentially unacceptable software components (215231) designed for software repositories (227). Predefined application or repository policy (223225A, 225B) associated with a repository or application is predefined for risks and actions to be taken for each risk (217219). Actions can be done by actions or without actions. These actions are predefined programming steps that are also defined in strategy. When the component (215) is not new to the repository (227) or the application, the component passes through for general processing. If the component (231) is new, the risk of matching the software component (231) is determined; for the matched risk, the action defined in the predefined strategy (223225A, 225B) is taken. By action, the software component (231) can be added to the software repository (227). For components that fail to pass as potentially unacceptable software components, follow through actions.

【技术实现步骤摘要】
【国外来华专利技术】用于控制软件开发的软件风险的方法和系统

总体涉及软件开发,并且更具体地涉及在基于组件的软件开发中使用的软件组件存储库。
技术介绍
大约15年前,软件开发人员使用很少的开源软件,反倒倾向于自己编写软件自身的大部分或全部内容。相比之下,今天,包括应用在内的大部分软件组件是由他人编写的。在当今的软件开发领域,与以往相比,他人创建的软件组件被用得多得多,而且这种趋势正在增加。因此,实际上,今天的开发人员已经将质量责任委托给开源社区。关于开源软件组件的一种流行观点是:软件组件必然是好的,因为众多开发人员都在关注它。然而,这是一个错误的假设。有时候开源软件有很多问题。此外,开发人员对他们正在使用的开源软件组件几乎没有可见性和理解。可用的软件开发工具使得使用开源变得容易,但这些工具并不能使得开源及其可能存在的问题变得容易理解。由于缺乏可见性和理解,造成了来自开源领域的软件往往依赖于其它开源元素这一事实。软件存储库是用以为开发人员提供重用的和可重用的软件组件(无论是开源还是其它形式)的便利集合的已知技术。换言之,软件存储库提供了对软件开发人员将使用的组件的存储。常规的存储库管理器可被用作为软件组件使用服务的存储和交换中心点。例如,常规的存储库管理器提供代理远程存储库并且将组件高速缓存到本地存储库的能力,以节省从远程存储库反复取回软件组件所需的带宽和时间。托管本地存储库的能力为组织提供了该组织所使用的软件组件的便利集合。尽管如此,软件组件的可见性和理解的问题仍然存在。
技术实现思路
因此,一个或多个实施例提供了一种计算机。所述计算机包括操作用于与软件存储库通信的I/O接口;以及与I/O接口协同操作的处理器。处理器被配置为执行以下项。一种控制旨在用于包括软件存储库在内的存储库环境的可能不可接受的软件组件的方法。在策略存储器中,提供了与存储库环境相关联的预定义的存储库策略。预定义的存储库策略定义风险以及针对每种风险定义针对风险要采取的动作,其中针对风险要采取的动作是至少从通过动作和没通过动作中选择的,其中所述动作是预定义的编程步骤。响应于接收到对软件组件的请求,确定所请求的软件组件对于软件存储库来说是否是新的。当确定了软件组件对于软件存储库来说不是新的时:使软件组件通过。当确定了所述软件组件对于所述软件存储库来说是新的时:从风险匹配单元确定与软件组件匹配的风险。评价被确定为与所述软件组件相匹配的风险,以确定在所述预定义的存储库策略中定义的、针对被确定为与所述软件组件匹配的风险要采取的动作。在所述软件组件的风险被评价为通过所述预定义的存储库策略的情况下,遵循在所述预定义的存储库策略中定义的针对被确定为通过的组件的通过动作,其中所述通过动作包括将所述软件组件添加到所述软件存储库。在所述软件组件的风险被评价为没通过所述预定义的存储库策略的情况下,遵循在所述预定义的存储库策略中定义的针对作为可能的不可接受软件组件而被确定为没通过的组件的没通过动作。在另一实施例中,预定义的存储库策略还包括针对部分匹配的软件组件要采取的预定义动作。当确定软件组件对于软件存储库来说是新的时,并且当确定了软件组件与风险匹配单元已知的任何组件不匹配时,递归地执行在软件组件内部的下一层处的内部软件组件的深度检查,直到确定与风险匹配单元已知的已知组件相匹配的内部软件组件为止;针对与已知软件组件匹配的内部软件组件,执行确定风险的步骤。针对与已知软件组件匹配的内部软件组件的风险,执行评价风险的步骤。结合遵循预定义的针对部分匹配的软件组件要采取的动作,执行遵循在所述预定义的存储库策略中定义的针对与已知组件匹配的内部组件的风险的动作的步骤。在又一实施例中,提供了隔离用户访问的隔离区存储器以及隔离区存储器中的组件的日志。通过将被确定为可能不可接受的软件组件的软件组件存储在所述隔离区存储器中而不是存储在所述软件存储库中,来将所述软件组件隔离;以及存储所述软件组件被隔离的事实。响应于接收到对软件组件的请求,确定所请求的软件组件是否在隔离区存储器中,并且提供关于确定了软件组件被隔离而不在软件存储库中的隔离通知。在又一实施例中,当确定了软件组件被隔离时,由系统确定被隔离组件的不同版本,其中已知所述不同版本通过了预定义的存储库策略,并且隔离通知还指示隔离组件的通过了预定义的存储库策略的所述不同版本。在又一实施例中,当组件已被隔离时,引导用户确定所述隔离组件是否应该因为豁免而被接受到软件存储库中,然后将被豁免的隔离组件(尽管没通过存储库策略)从隔离区移动到软件存储库中。在另一实施例中,确定风险包括:基于软件组件的元数据来准备风险查找密钥;以及基于来自所述软件组件的风险查找密钥来取回指示所述软件组件的风险的信息。在又一实施例中,在针对软件组件的预定义的存储库策略中定义的风险包括:所述软件组件受制于的许可证以及所述软件组件的安全漏洞。确定风险包括:基于来自所述软件组件的元数据准备对所述软件组件来说是唯一的许可证查找密钥和安全漏洞查找密钥;基于针对所述软件组件的许可证查找密钥从许可证查找信息提供器取回指示所述软件组件的许可证的信息;以及基于针对所述软件组件的安全漏洞查找密钥从安全漏洞信息提供器取回指示所述软件组件的安全漏洞的信息。在又一实施例中,当所述软件组件被确定为对所述软件存储库来说是新的以及所述软件组件的风险全部被评价为无错误地通过所述预定义的存储库策略时要采取的动作包括以下项中的一个或多个:将被添加到所述软件存储库的软件组件记录到日志中;以及由所述处理器经由电子邮件通知新组件。在不同的实施例中,对旨在用于包括软件存储库在内的存储库环境的可能的不可接受的软件组件进行控制。策略存储器提供与存储库环境和应用两者相关联的预定义的应用策略,预定义的应用策略不同于与存储库相关联的策略,并且预定义的应用策略可以不同于与其它应用相关联的策略。预定义的应用策略定义风险以及针对每种风险定义针对风险要采取的动作,其中针对风险要采取的动作是至少从通过动作和没通过动作中选择的,其中所述动作是预定义的编程步骤。响应于针对包括所述软件组件的应用的提交资产动作或构建动作,针对每个软件组件,确定所请求的软件组件对于所述应用来说是否是新的。当确定了所述软件组件对于所述应用来说不是新的时:使软件组件通过。当确定了软件组件对于应用来说是新的时,从风险匹配单元确定与软件组件匹配的风险。评价被确定为与所述软件组件相匹配的风险,以确定在所述预定义的应用策略中定义的、针对被确定为与所述软件组件匹配的风险要采取的动作。在所述软件组件的风险被评价为通过所述预定义的应用策略的情况下,遵循在所述预定义的应用策略中定义的针对被确定为通过的组件的通过动作,其中所述通过动作包括将所述软件组件添加到所述软件存储库。在所述软件组件的风险被评价为没通过所述预定义的应用策略的情况下,遵循在所述预定义的存储库策略中定义的针对作为可能的不可接受软件组件而被确定为没通过的组件的没通过动作。根据一个或多个上述实施例,另一实施例是一种计算机实现的方法。又一实施例是一种包括供计算机执行的指令的非暂时性计算机可读介质,所述指令包括如上的计算机实现的方法,所述指令用于在处理器中实现所述方法。以上实施例中的一个实施例或多于一个的实施例的组合或全部实本文档来自技高网...

【技术保护点】
1.一种控制旨在用于包括软件存储库在内的存储库环境的可能不可接受的软件组件的计算机实现的方法,包括:在策略存储器中提供与所述存储库环境相关联的预定义的存储库策略,所述预定义的存储库策略定义风险以及针对每种风险定义针对风险要采取的动作,其中针对风险要采取的动作是至少从通过动作和没通过动作中选择的,其中所述动作是预定义的编程步骤;由处理器响应于接收到针对软件组件的请求来确定所请求的软件组件对于所述软件存储库来说是否是新的;当确定了所述软件组件对于所述软件存储库来说不是新的时:由所述处理器使所述软件组件通过;当确定了所述软件组件对于所述软件存储库来说是新的时:由所述处理器根据风险匹配单元确定与所述软件组件匹配的风险;由所述处理器评价被确定为与所述软件组件相匹配的风险,以确定在所述预定义的存储库策略中定义的、针对被确定为与所述软件组件相匹配的风险要采取的动作;在所述软件组件的风险被评价为通过所述预定义的存储库策略的情况下,由所述处理器针对被确定为通过的组件遵循在所述预定义的存储库策略中定义的通过动作,其中所述通过动作包括将所述软件组件添加到所述软件存储库;在所述软件组件的风险被评价为没通过所述预定义的存储库策略的情况下,由所述处理器针对作为可能的不可接受软件组件被确定为没通过的组件遵循在所述预定义的存储库策略中定义的没通过动作。...

【技术特征摘要】
【国外来华专利技术】2015.11.25 US 14/951,9231.一种控制旨在用于包括软件存储库在内的存储库环境的可能不可接受的软件组件的计算机实现的方法,包括:在策略存储器中提供与所述存储库环境相关联的预定义的存储库策略,所述预定义的存储库策略定义风险以及针对每种风险定义针对风险要采取的动作,其中针对风险要采取的动作是至少从通过动作和没通过动作中选择的,其中所述动作是预定义的编程步骤;由处理器响应于接收到针对软件组件的请求来确定所请求的软件组件对于所述软件存储库来说是否是新的;当确定了所述软件组件对于所述软件存储库来说不是新的时:由所述处理器使所述软件组件通过;当确定了所述软件组件对于所述软件存储库来说是新的时:由所述处理器根据风险匹配单元确定与所述软件组件匹配的风险;由所述处理器评价被确定为与所述软件组件相匹配的风险,以确定在所述预定义的存储库策略中定义的、针对被确定为与所述软件组件相匹配的风险要采取的动作;在所述软件组件的风险被评价为通过所述预定义的存储库策略的情况下,由所述处理器针对被确定为通过的组件遵循在所述预定义的存储库策略中定义的通过动作,其中所述通过动作包括将所述软件组件添加到所述软件存储库;在所述软件组件的风险被评价为没通过所述预定义的存储库策略的情况下,由所述处理器针对作为可能的不可接受软件组件被确定为没通过的组件遵循在所述预定义的存储库策略中定义的没通过动作。2.根据权利要求1所述的方法,其中,所述预定义的存储库策略还包括预定义的针对部分匹配的软件组件要采取的动作,当确定了所述软件组件对于所述软件存储库来说是新的时,还包括:当确定了所述软件组件与风险匹配单元已知的任何组件不匹配时,由所述处理器递归地对所述软件组件内部的下一层处的内部软件组件进行深度检查,直到确定出与所述风险匹配单元已知的已知组件匹配的内部软件组件为止;针对与已知软件组件匹配的内部软件组件,执行确定风险的步骤;针对与已知软件组件匹配的内部软件组件的风险,执行评价风险的步骤;结合遵循预定义的针对部分匹配的软件组件要采取的动作,执行遵循在所述预定义的存储库策略中定义的针对与已知组件匹配的内部组件的风险的动作的步骤。3.根据权利要求1所述的方法,还包括:隔离用户访问的隔离区存储器和所述隔离区存储器中的组件的日志,还包括:由所述处理器,通过将被确定为可能不可接受的软件组件的软件组件存储在所述隔离区存储器中而不是存储在所述软件存储库中,来将所述软件组件隔离;以及存储所述软件组件被隔离的事实;以及响应于接收到对所述软件组件的请求,通过所述处理器进一步确定所请求的软件组件是否在所述隔离区存储器中,并且提供关于确定所述软件组件被确定为被隔离且不在所述软件存储库中的隔离通知。4.根据权利要求3所述的方法,还包括:当所述软件组件被确定为被隔离时,由所述处理器确定被隔离的组件的不同版本,其中所述不同版本通过所述预定义的存储库策略,所述隔离通知指示被隔离的组件的通过所述预定义的存储库策略的不同版本。5.根据权利要求3所述的方法,还包括:针对所述被隔离的组件,由所述处理器引导用户确定所述隔离的组件是否应该因为豁免而被接受到所述软件储存库中,然后将被豁免的所述隔离组件从所述隔离区移动到所述软件存储库。6.根据权利要求1所述的方法,其中,所述确定风险包括:由所述处理器基于所述软件组件的元数据来准备风险查找密钥;以及由所述处理器基于来自所述软件组件的风险查找密钥来取回指示所述软件组件的风险的信息。7.根据权利要求1所述的方法,其中:在针对软件组件的所述预定义的存储库策略中定义的风险包括:所述软件组件受制于的许可证以及所述软件组件的安全漏洞,所述风险的确定包括:由所述处理器基于来自所述软件组件的元数据准备对所述软件组件来说是唯一的许可证查找密钥和安全漏洞查找密钥;由所述处理器基于针对所述软件组件的许可证查找密钥从许可证查找信息提供器取回指示所述软件组件的许可证的信息;以及由所述处理器基于针对所述软件组件的安全漏洞查找密钥从安全漏洞信息提供器取回指示所述软件组件的安全漏洞的信息。8.根据权利要求1所述的方法,其中,当所述软件组件被确定为对所述软件存储库来说是新的以及所述软件组件的风险全部被评价为无错误地通过所述预定义的存储库策略时要采取的动作包括以下项中的一个或多个:由所述处理器将被添加到所述软件存储库的软件组件记录到日志中,由所述处理器经由电子邮件通知新组件。9.一种计算机,包括:操作用于与软件存储库通信的I/O接口;以及处理器,与所述I/O接口协同操作,并且被配置为执行根据权利要求1所述的方法。10.一种非暂时性计算机可读介质,包括用于执行根据权利要求1所述的方法的可执行指令。11.一种控制旨在用于包括软件存储库在内的存储库环境的可能不可接受的软件组件的计算机实现的方法,包括:在策...

【专利技术属性】
技术研发人员:韦恩·杰克逊迈克尔·汉森布莱恩·福克斯杰米·怀特豪斯杰森·狄龙
申请(专利权)人:索纳泰公司
类型:发明
国别省市:美国,US

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1