CN115827291A - 软件的持续监视和/或提供 - Google Patents

软件的持续监视和/或提供 Download PDF

Info

Publication number
CN115827291A
CN115827291A CN202211126817.4A CN202211126817A CN115827291A CN 115827291 A CN115827291 A CN 115827291A CN 202211126817 A CN202211126817 A CN 202211126817A CN 115827291 A CN115827291 A CN 115827291A
Authority
CN
China
Prior art keywords
software
configuration
digital
digital twin
monitoring
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
CN202211126817.4A
Other languages
English (en)
Inventor
P·杜普利斯
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN115827291A publication Critical patent/CN115827291A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开的第一方面涉及一种用于为系统持续监视软件配置的计算机实现的方法,包括向系统的多个数字孪生提供输入数据,其中数字孪生具有用于系统的不同软件配置;监视多个数字孪生中至少基于输入数据执行的至少一个数字孪生,其中监视被设计为识别至少一个数字孪生的异常状态;如果在监视至少一个数字孪生时识别出至少一个异常状态,则将至少一个数字孪生的软件配置评估为不允许提供。本公开的第二方面涉及一种用于为系统持续提供软件的计算机实现的方法,包括接收软件的配置;至少基于预定负面清单检查是否不允许提供软件的配置;如果检查是肯定的,则不提供在所述配置下的软件。本公开的其他方面涉及被设计为执行本公开的方法的持续集成和/或提供系统。

Description

软件的持续监视和/或提供
背景技术
数字孪生可以用于在一定程度上以数字方式映射“真实”(物质和/或非物质)系统或系统的子方面。这种映射可以基于模型和/或模拟,特别是当要映射的系统是例如依赖于随时间变化的输入数据的动态系统时。在这种情况下,数字孪生也可以被视为动态系统,它们同样可以依赖于随时间变化的输入数据。所述输入数据例如可以通过一个或多个待映射系统的输入数据给出或依赖于所述输入数据。替代地或附加地,可以综合生成和/或改变数字孪生的输入数据(例如,如果出于数据保护的原因不允许直接使用真实系统的输入数据)。可以从数字孪生的行为中导出真实系统的结论(例如预测和/或评估)。
软件可能特别是从一定的复杂性开始会存在错误,例如当软件包括多个诸如函数、模块、类、例程等子单元时。软件中的错误例如可以用于从外部未经允许地侵入软件并对软件进行操纵。如果所述软件在系统中使用,例如在嵌入式系统中,则该系统的功能通常也取决于所述软件。这里例如也可以通过操纵所述软件来操纵所述系统的功能。
软件从一定的复杂性开始通常由多个软件开发人员开发,并且将责任分布到软件的子单元。然后软件的各个基本上彼此独立开发的子单元可以集成到软件中。子单元集成到软件中的时间点例如可以预先设定,例如在软件开发计划中。替代地或附加地,相应的软件开发人员可以在任何时间点(在软件开发计划的范围中)并且根据需要和/或进展将软件的子单元集成到软件中。这样的过程例如可以通过基于服务器的持续集成系统(英语:continuous integration system,CI)来实施。软件的多个子单元可能导致软件的多个不同配置。
在子单元集成到软件之后通常是提供软件。所述提供也可以在特定时间点进行和/或持续进行——即在任何时间点和/或分别在集成状态更改之后进行——例如通过基于服务器的持续提供系统(英语:continuous deployment/delivery system,CD)。(基于服务器的)持续集成系统和(基于服务器的)持续提供系统可以组合在(基于服务器的)持续集成和提供系统(CI/CD)中。
这种自动提供软件的缺点可能在于:软件也在错误的和/或不安全的配置下提供,甚至可能已经在诸如嵌入式系统的系统中使用。如果已知软件的这种错误的和/或不安全的配置,则可以(并且应当)事后消除这些配置,例如通过软件更新。
发明内容
本公开的第一一般方面涉及一种用于为系统持续监视软件配置的计算机实现的方法。该方法包括向所述系统的多个数字孪生提供输入数据,其中所述数字孪生具有用于所述系统的不同软件配置。该方法还包括监视所述多个数字孪生中至少基于所述输入数据执行的至少一个数字孪生,其中所述监视被设计为识别所述至少一个数字孪生的异常状态。该方法还包括如果在监视所述至少一个数字孪生时识别出至少一个异常状态,则将所述至少一个数字孪生的所述软件配置评估为不允许提供。该方法可以包括如果已经将所述软件配置评估为不允许提供,则将包括所述至少一个数字孪生的所述软件配置的条目添加到预定负面清单中。
本公开的第二一般方面涉及一种用于为系统持续提供软件、特别是为所述系统持续提供(尽可能)无错误和/或安全的软件的计算机实现的方法。该方法包括接收所述软件的配置。该方法还包括至少基于预定负面清单检查是否不允许提供所述软件的配置。该方法还包括如果所述检查是肯定的,则不提供在所述配置下的所述软件。
根据第二一般方面(或其实施方式)为系统持续提供软件的计算机实现的方法中的预定负面清单可以通过根据第一一般方面(或其实施方式)为系统持续监视软件配置的计算机实现的方法产生和/或适配。
本公开的第三一般方面涉及一种计算机系统,特别是一种持续集成和/或提供系统,所述计算机系统被设计为执行根据第一一般方面(或其实施方式)用于为系统持续监视软件配置的计算机实现的方法。
本公开的第四一般方面涉及一种(另外的)计算机系统,特别是一种持续集成和/或提供系统,所述计算机系统被设计为执行根据第二一般方面(或其实施方式)用于为系统持续提供软件的计算机实现的方法。
本公开的第五一般方面涉及一种计算机程序,其被设计为执行根据第一一般方面(或其实施方式)用于为系统连续监视软件配置的计算机实现的方法和/或根据第二一般方面(或其实施方式)用于为系统持续提供软件的计算机实现的方法。
本公开的第六一般方面涉及一种计算机可读介质或信号,其存储和/或包含根据第五一般方面的计算机程序。
本公开的第七一般方面涉及一种计算机系统,其被设计为执行根据第五一般方面的计算机程序。
尽管付出了各种努力,但软件可能会出现错误和/或不安全,特别是从一定的复杂性开始(例如,具有多个子单元和/或子单元的许多子版本)。错误和/或安全漏洞可以(利)用于操纵软件并且通常还操纵相关联系统(例如特别是用于控制、调节和/或监视技术系统的嵌入式系统)。通常,错误和/或安全漏洞在事后才得到确定,即例如当软件已经提供并且甚至可能已经在一个或多个系统中使用时。然而,在某些情况下,可能已经通过有错误/不安全的软件或相关联系统而出现了损坏和/或损伤。如果确定了已经提供和/或使用的软件存在错误或不安全点,则可以(并且应当)至少事后(并且通常有一定的延迟)更新该软件并因此修复该软件。在软件和系统例如已经在车辆中使用并且特别是在车辆领域中使用的情况下,软件的更新可能无法任意快速地进行(例如,在下一次服务时或在车辆使用者同意的下一次车辆停靠时才进行)。
本公开中提出的计算机实现的方法旨在在提供之前就已经检查软件是否存在错误和/或不安全性并及时(即,在提供和/或使用之前)识别错误和/或不安全性。由此可以避免在所提供的和/或使用的软件中的至少一部分错误和/或安全漏洞。由此可以提高软件和相关联系统的可靠性和/或安全性。当软件和/或相关联系统被限制性地设计并且因此软件/系统的功能得到清楚和/或明确的定义时,本公开中提出的方法特别有利。例如,根据规范和/或标准来确定或认证这种软件/系统的功能。与例如具有通用操作系统的多用途计算机不同,嵌入式系统特别是可以被限制性地设计。
软件(在提供之前)的检查可以包括监视至少一个数字孪生以及评估至少一个数字孪生的软件配置是否(不)允许。替代地或附加地,软件(在提供之前)的检查可以包括监视所述多个数字孪生中的每个数字孪生并且评估每个数字孪生的软件的相应配置是否分别(不)允许。多个数字孪生并且特别是数字孪生的数量可能与软件的复杂性(例如子单元的数量、子单元的子版本的数量)相关和/或与软件/系统的限制性成反比。由于多个数字孪生,可以在提供之前就已经对软件的多个配置进行了实际测试。
在本公开中提出的计算机实现的方法可以特别有利地用于软件配置的持续监视和评估和/或用于持续提供/不提供在相应配置下的软件。因此,这些方法例如可以集成在(基于服务器的)持续集成和/或提供系统中。例如,对软件配置的持续监视和评估和/或软件在相应配置下的持续提供/不提供可以延伸到(根据软件开发计划)规定的软件开发时间(或其部分)。
与已经预先例如在软件开发计划中设定用于集成和/或提供软件子单元的时间点的软件开发相比,持续集成和/或持续提供可以减少软件的开发时间。另一方面,通过常见的持续集成和/或提供系统集成和/或提供的软件可能特别容易受到错误和/或安全漏洞的影响,所述错误和/或安全漏洞例如正好由于持续集成和/或提供系统的高度自动化以及检查的阈值相当低而遭到忽略。在这方面,本公开中提出的方法可以被视为这种持续集成和/或提供系统的扩展:由于多个数字孪生,对软件配置的深入和彻底的检查可以自动进行并因此集成到传统的持续集成和/或提供系统中。由此,即使是复杂的软件,特别是与安全相关的应用(例如在车辆中),也可以快速地并且因此尽可能无错误和/或安全地开发、集成和提供。特别地,可以在很大程度上避免已经(例如在车辆领域中)使用的软件和相关联系统中的错误和/或安全漏洞。
在本公开中提出的计算机实现的方法也可以通过服务器提供给第三方,特别是在持续集成和/或提供系统的范围内。通过这种服务可以生成年度经常性收入(英语:annually recurring revenues,ARR)。
附图说明
图1示意性地图示了用于为系统持续监视软件配置的计算机实现的方法。
图2示意性地图示了用于为系统持续提供软件的计算机实现的方法。
图3示出了用于为系统持续提供软件的计算机实现的方法的实施方式。
图4示意性地图示了持续集成和/或提供系统。
具体实施方式
本公开中提出的计算机实现的方法100、200旨在快速且可靠地为系统提供软件。所述方法特别是旨在在提供软件之前并且特别是在使用软件和相关联系统(例如在车辆领域中)之前就已经识别出软件中的错误和/或安全漏洞。由此可以提高软件以及相关联系统的可靠性和/或安全性。
该方法可以特别有利地用于软件配置的持续监视和评估和/或用于持续提供/不提供在相应配置下的软件。软件配置的监视和评估例如可以是持续的,因为软件配置的监视和评估可以(任意频繁和/或在时间段内)重复。替代地或附加地,持续提供/不提供在相应配置下的软件可以是例如持续的,因为提供/不提供在相应配置下的软件可以(任意频繁和/或在时间段内)重复。该时间段例如可以在软件开发时间期间和/或其一部分上延伸。至少一次重复可以例如以预定的时间间隔,特别是以规则的时间间隔进行。替代地或附加地,可以例如面向事件地触发至少一次重复,例如通过软件的新集成状态(在软件开发期间)。替代地或附加地,例如可以通过持续集成和/或提供系统300、400的用户接口请求至少一次重复。这种重复在图1-3中通过返回虚线箭头示意性地示出(例如在图1中:从150到130和/或140,从140(无异常状态)到130和/或140,在图2中:从240到210,从250到210)。
所述系统可以是技术系统。例如,所述系统可以是嵌入式系统。嵌入式系统可以包括诸如电子计算器(计算机)的硬件和(实现的)软件,这两者绑定(“嵌入”)在技术背景中。嵌入式系统可以——通过硬件和/或软件——至少被设计为监视、控制和/或调节另外的技术系统。替代地或附加地,嵌入式系统可以被设计为接收数据和/或信号。替代地或附加地,嵌入式系统可以被设计为处理数据和/或信号。替代地或附加地,嵌入式系统可以被设计为发送数据和/或信号。
(另外的)技术系统可以例如是机电系统。(另外的)技术系统可以例如是车辆或车辆内的技术(子)系统(例如发动机控制器)。替代地或附加地,(另外的)技术系统可以是机器人或机器人内的技术(子)系统。替代地或附加地,(另外的)技术系统可以是工业设施或工业设施内的技术(子)系统。替代地或附加地,(另外的)技术系统可以是联网设备和/或远程可控设备的技术系统,例如智能家居(例如热控制器)。
所述系统和/或其软件例如可以被限制性地设计。例如,所述系统和/或其软件可以受到规范的限制。由此例如可以防止向所述系统的软件添加任意应用、功能和/或接口并且多个数字孪生必须变得任意大。
公开了一种用于为系统持续监视软件配置的计算机实现的方法100。软件配置的持续监视可以例如旨在识别软件的相应配置中的错误。替代地或附加地,软件配置的持续监视可以旨在识别例如可以被用于攻击的安全漏洞。方法100例如可以(例如通过服务器)在持续集成和/或提供系统300、400中实现。软件配置的监视例如可以是持续的,因为该监视可以在软件的软件开发时间的全部或一部分上延伸。
方法100包括向所述系统的多个数字孪生提供130输入数据,其中所述数字孪生具有用于所述系统的不同软件配置。输入数据的提供130也可以是持续的。
软件可以按照(一定的)复杂性结构化。例如,软件可以具有多个子单元,例如>=1、>=2、>=5、>=10、>=20、>=50、>=100、>=1e4个子单元。子单元例如可以是操作系统(内核)。替代地或附加地,子单元例如可以是库。替代地或附加地,子单元可以是运行时组件。替代地或附加地,子单元可以是应用。替代地或附加地,子单元可以是函数。替代地或附加地,子单元可以是模块。替代地或附加地,子单元可以是类。替代地或附加地,子单元可以是例程。软件包括的子单元越多,软件的复杂性就可能越大。子单元通常由不同的软件开发人员开发和/或管理。在任何情况下,软件子单元的每个开发状态都可以通过(子)版本明确地标识。软件因此可以在多个不同的配置下存在,其中如果软件的至少一个子单元的(子)版本在软件的两种配置中是不同的,则软件的所述两种配置可能不同。因此,如果一个数字孪生的软件和另一个数字孪生的软件在至少一个子单元的(子)版本中是不同的,则所述一个数字孪生的软件和所述另一个数字孪生的软件可以具有不同的配置。
所述系统的多个数字孪生例如可以包括>=1、>=2、>=5、>=10、>=20、>=50、>=100、>=1e4个数字孪生。数字孪生的数量可以与软件不同配置的数量相关。但是,对于软件的一种配置仍然也可以给出多个数字孪生,以例如测试不同的输入数据(例如在蒙特卡洛方法中)。
方法100还包括监视140所述多个数字孪生中至少基于输入数据执行的至少一个数字孪生。在执行所述至少一个数字孪生时,特别是可以执行其软件配置。监视140被设计为识别所述至少一个数字孪生的异常状态,即在其执行/运行期间。监视140可以包括异常识别算法。例如,异常识别算法可以是分类算法。该分类算法特别是可以包括(经过训练的)机器学习算法,例如人工神经网络或支持向量机。
方法100还可以包括监视多个数字孪生中的每个数字孪生,其中至少基于输入数据执行每个数字孪生。在这种情况下,监视可以被设计为识别数字孪生在其执行/运行期间的异常状态。
方法100还包括如果在监视140至少一个数字孪生时识别出至少一个异常状态,则将所述至少一个数字孪生的软件配置评估150为不允许提供(例如,在持续集成和/或提供系统300、400中)。方法100在图1中示意性地图示。
方法100还可以包括:如果软件的配置已被评估150为不允许提供,则将包括所述至少一个数字孪生的软件的所述配置的条目添加160到预定负面清单NL中。换言之:通过添加160所述条目,将至少一个数字孪生的软件配置的不允许性检测并存储在预定负面清单NL中。方法100还可以包括:如果软件的配置被评估为允许提供,则不将包括至少一个数字孪生的软件的所述配置的条目添加到预定负面清单NL中。由此,预定负面清单NL可以是列出被评估150为不允许的软件配置的清单。
预定负面清单NL最初(例如在软件开发开始时)可以包括空集。在这种情况下,于是预定负面清单中仍然不包含条目。替代地,可以用至少一个条目(例如,用于仅为测试目的而设计的软件配置)对预定负面清单进行预先配置。在这两种情况下——例如在软件开发过程中——可以例如通过方法100向预定负面清单添加例如分别对应于被评估150为不允许的软件配置的条目。
替代地或附加地,方法100可以包括适配预定负面清单NL。例如,如果与预定负面清单NL的条目相关联的软件配置已被错误地评估150为不允许提供,则所述适配可以包括删除预定负面清单NL的所述条目。通过将条目添加160到预定负面清单NL中或者更一般地通过适配预定负面清单NL,重新产生预定负面清单NL。
预定负面清单NL的条目可以明确标识软件的至少一种(不允许提供的)配置。替代地或附加地,预定负面清单NL的条目可以明确标识多个(不允许提供的)配置。这样的条目例如可以包括逻辑表达式(例如正则表达式)。例如,条目可能包括关于软件子单元的(子)版本的不等式,例如:“子模块A的(子)版本<1.3.2&子模块B的(子)版本<5.3.1”。
此外,预定负面清单NL的条目可以包括元信息。例如,在添加160时,可以将用于报告和/或日志记录的附加信息(例如,评估150的时间点、边界条件等)写入条目,所述附加信息必要时可以通过集成和/或提供系统的用户接口接收。
方法100可以包括执行120所述系统。在多个相同类型系统的情况下,方法100可以替代地或附加地包括执行多个相同类型系统中的每个系统或一部分。例如,如果系统的软件一致或系统仅在软件配置方面有所不同,则系统可以是相同类型的。另一方面,执行120所述系统和/或多个相同类型系统中的系统不必是该方法的一部分。例如,可以独立于方法100来执行/运行所述系统和/或多个相同类型系统中的系统。
替代地或附加地,方法100可以包括执行121至少一个数字孪生。替代地或附加地,方法100可以包括执行多个数字孪生中的每个数字孪生或一部分。
执行120所述系统(或多个系统)和/或执行121至少一个数字孪生(或多个数字孪生)可以例如并且如图1和图3所示那样在向多个数字孪生提供130输入数据之前进行。由此,例如可以在系统的执行/运行期间记录数据,并且还可以在至少一个数字孪生的执行/运行期间提供给至少一个数字孪生。在快速数据传输的情况下,至少一个数字孪生(或多个数字孪生)的监视140可以包括准实时分析。
提供130的输入数据可以包括所述系统(或多个系统)的输入数据和/或从其导出的数据。例如,所述系统(或多个系统)的输入数据可以包括网络流量(英语:traffic)和/或有效载荷数据。例如,可以在方法100期间或在方法100之前执行所述系统(或多个系统)。
提供130的输入数据可以取决于至少一个随机变量。换言之:提供130的输入数据可以包括根据概率分布的随机数。例如,不能完全确定的输入数据可以用随机数代替。替代地或附加地,提供130的输入数据可以基于模糊测试(Fuzzing)。模糊测试是一种用于软件测试的自动化技术,其中提供随机数作为输入数据,以测试软件例如对意外输入的鲁棒性。
至少一个数字孪生的至少一个异常状态可以包括在执行所述至少一个数字孪生时的错误。例如,每个错误都可以由错误值编码。例如,错误可能是覆盖存储在所选择的文件/存储区域中的数据。替代地或附加地,错误例如可能是损坏的存储区域。替代地或附加地,错误例如可能是运行时错误(例如被零除)。替代地或附加地,错误例如可能是崩溃。
替代地或附加地,至少一个数字孪生的至少一个异常状态可以包括与多个数字孪生中的剩余数字孪生的状态的偏差,其中也基于所提供130的输入数据来执行所述剩余数字孪生。替代地或附加地,所述至少一个数字孪生的至少一个异常状态可以包括作为入侵识别系统的结果的入侵所述至少一个数字孪生。
方法100可以包括为系统更新110多个数字孪生。在更新110期间,例如可以通过产生至少一个新的数字孪生来扩展多个数字孪生。替换地或附加地,在更新110期间例如可以通过解构或停用至少一个现有的数字孪生来减少多个数字孪生。替代地或附加地,在更新时例如可以通过适配至少一个现有的数字孪生来改变多个数字孪生。更新110可以至少基于软件的一个集成状态。更新110也可以基于软件的每个集成状态。通过对集成状态的依赖性可以确保系统的多个数字孪生以及因此多个数字孪生中的至少一个数字孪生(或每个数字孪生)的监视140对应于当前的软件开发状态。如图1或图3所示,更新110例如可以发生在步骤120、121和130之前。否则,在更新110之后可以重复步骤120、121和130。
可以根据预定标准触发对系统的多个数字孪生的更新110。所述预定标准可以实现更新策略(英语:update policy/configuration,p)。由此例如当输出/集成软件的新(子)版本和/或软件的子单元时,或者当不再支持软件的特定子单元和/或软件的(子)版本时,可以考虑到这一点。例如,所述预定标准可以被设计为在输出/集成用于软件子单元的新(子)版本(例如更复杂的库)时产生另外的多个数字孪生,向多个数字孪生添加所述另外的多个数字孪生。从而可以使用不同的输入数据和/或随机数(预先)配置所述另外的多个数字孪生。换言之,更新110可以通过预定标准自动进行。这样的自动机制对于持续集成和/或提供系统300可能是有利的。替代地或附加地,可以经由用户接口手动触发更新110。
方法100可以包括接收109软件的至少一个集成状态。接收109可以例如通过调用至少一个集成状态来进行,或者可以由集成和/或提供系统例如在集成步骤完成之后触发。方法100还可以包括接收软件的每个集成状态。如图1或图3所示,接收109软件的至少一个集成状态例如可以在更新110系统的多个数字孪生之前进行。
(预定)负面清单NL和/或其部分(例如,预定负面清单NL的各个条目)可以通过应用接口API(也称为:编程接口,英语:application programming interface)来调用,并且特别是持续地——即在某个时间段中的不同时间点——调用。应用接口API在图4中示意性地示出。替代地或附加地,(预定)负面清单NL和/或其部分可以通过例如持续集成和/或提供系统的用户接口来调用。这样的接口例如可以由软件的软件开发人员在开发中使用。此外,也可以允许第三方(例如供应商、软件测试人员、验证者等)使用这样的接口,特别是在确定软件的作为预定负面清单NL中的条目列出的不允许配置未在系统中使用时。
还公开了一种用于为系统持续提供软件、特别是为系统持续提供(尽可能)无错误和/或安全的软件的计算机实现的方法200。方法200可以在集成和/或提供系统中实现。方法200旨在仅提供允许提供的软件配置并且因此可以在系统中使用这些软件配置。由此可以提高系统及其软件的可靠性和/或安全性。该方法在图2中示意性地示出。
方法200包括接收210软件的配置。可能被证明有利的是,接收根据方法200应当提供的每个软件配置并检查该提供的(不)允许性。
该方法还包括至少基于预定负面清单NL检查230软件的配置是否不允许提供。如果负面清单NL在紧接在检查230之前的时间点可用,则负面清单NL可以是预定的。
该方法还包括如果检查230是肯定的,即如果软件的配置在检查230中被评估为不允许提供,则不提供240在该配置下的软件。
方法200可以包括如果检查230是否定的,即如果软件的配置在检查230中被评估为并非不允许并且因此被评估为允许,则提供250在该配置下的软件。
预定负面清单NL中的一个或多个条目(只要存在)可以分别对应于软件的以下至少一种配置,不允许在所述配置下提供所述软件。
检查230软件的配置是否不允许提供可以包括检查软件的配置是否对应于预定负面清单NL的至少一个条目。如果软件的配置与预定负面清单NL的一个条目相同,则软件的所述配置例如可以对应于该条目。替代地或附加地,如果预定负面清单NL的条目包括由软件的配置满足的预定标准(例如正则表达式),例如“模块A的(子)版本<=5.3.1",则软件的所述配置可以对应于该条目。
方法200可以包括更新220预定负面清单NL,其中重新产生预定负面清单NL。如图2所示,更新220可以在检查230之前进行。步骤210和220的顺序可能无关紧要。更新220可以包括例如从服务器读出预定负面清单NL或预定负面清单NL的增量更新。更新220预定负面清单NL意味着负面清单是当前的。由此可以提高所提供软件的可靠性和/或安全性。
方法200中的预定负面清单NL可以通过用于为系统持续监视软件配置的计算机实现的方法100产生和/或适配。两种方法100、200的这种链接在图3中示意性地示出。由于该链接,在一个集成和/或提供系统中实现两种方法100、200可能是有利的。
还公开了一种持续集成和/或提供系统300,其被设计为执行用于为系统持续监视软件配置的计算机实现的方法100。图4中示意性示出的持续集成和/或提供系统300可以包括服务器。
还公开了一种持续集成和/或提供系统400,其被设计为执行用于为系统持续提供软件的计算机实现的方法200。图4中示意性示出的持续集成和/或提供系统400同样可以包括服务器。持续集成和/或提供系统400可以(但不是必须)对应于持续集成和/或提供系统300。
还公开了一种计算机程序,其被设计为执行用于为系统持续监视软件配置的计算机实现的方法100。替代地或附加地,所述计算机程序(或另外的计算机程序)可以被设计为执行用于为系统持续提供软件的计算机实现的方法200。所述计算机程序(和/或另外的计算机程序)例如可以以可解释的或编译的形式存在。所述计算机程序可以(也部分地)加载到控制设备或计算机的RAM中以用于执行,例如作为位序列或字节序列,其中计算机也可以用作服务器。
还公开了一种计算机可读介质或信号,其存储和/或包含所述计算机程序(和/或所述另外的计算机程序)。所述介质例如可以包括RAM、ROM、EPROM、HDD、SDD……之一,其上/其中存储有所述信号。
还公开了一种计算机系统,其被设计为执行所述计算机程序(和/或所述另外的计算机程序)。所述计算机系统可以是持续集成和/或提供系统300、400。所述计算机系统可以特别是包括至少一个处理器和至少一个工作存储器(例如RAM……)。此外,所述计算机系统可以包括存储器(例如,HDD、SDD……)。所述计算机系统包括网络中的服务器(例如互联网……)。

Claims (17)

1.一种用于为系统持续监视软件配置的计算机实现的方法(100),包括:
-向所述系统的多个数字孪生提供(130)输入数据,其中所述数字孪生具有用于所述系统的不同软件配置;
-监视(140)所述多个数字孪生中至少基于所述输入数据执行的至少一个数字孪生,其中所述监视(140)被设计为识别所述至少一个数字孪生的异常状态;
-如果在监视(140)所述至少一个数字孪生时识别出至少一个异常状态,则将所述至少一个数字孪生的所述软件配置评估(150)为不允许提供。
2.根据权利要求1所述的方法(100),包括:
-如果已经将所述软件配置评估(150)为不允许提供,则将包括所述至少一个数字孪生的所述软件配置的条目添加(160)到预定负面清单(NL)中。
3.根据权利要求1或2所述的方法(100),其中,所提供(130)的输入数据包括所述系统的输入数据和/或从所述输入数据中导出的数据。
4.根据前述权利要求中任一项所述的方法(100),其中,所提供(130)的输入数据取决于至少一个随机变量和/或基于模糊测试。
5.根据前述权利要求中任一项所述的方法(100),其中,所述至少一个数字孪生的所述至少一个异常状态包括:
-在执行所述至少一个数字孪生时的错误;
-与所述多个数字孪生中的剩余数字孪生的状态的偏差;和/或
-作为入侵识别系统的结果的入侵所述至少一个数字孪生。
6.根据前述权利要求中任一项所述的方法(100),包括:
-为所述系统更新(110)所述多个数字孪生,其中在所述更新(110)期间能够通过产生至少一个新的数字孪生来扩展所述多个数字孪生,能够通过解构或停用至少一个现有的数字孪生来减少所述多个数字孪生,和/或能够通过适配至少一个现有的数字孪生来改变所述多个数字孪生,可选地其中所述更新(110)至少基于所述软件的一个集成状态。
7.根据权利要求6所述的方法(100),其中,根据预定标准触发为所述系统更新(110)所述多个数字孪生。
8.根据前述权利要求中任一项所述的方法(100),包括:
-接收(109)所述软件的至少一个集成状态。
9.根据前述权利要求中任一项所述的方法(100),其中,所述预定负面清单和/或其部分能够通过应用接口(API)调用。
10.一种用于为系统持续提供软件的计算机实现的方法(200),包括:
-接收(210)所述软件的配置;
-至少基于预定负面清单(NL)检查(230)是否不允许提供所述软件的配置;
-如果所述检查(230)是肯定的,则不提供(240)在所述配置下的所述软件。
11.根据权利要求10所述的方法(200),其中,所述预定负面清单(NL)中的一个或多个条目分别对应于所述软件的以下至少一种配置,不允许在所述配置下提供所述软件。
12.根据权利要求10或11所述的方法(200),包括:
-更新(220)所述预定负面清单(NL),其中重新产生预定负面清单(NL)。
13.根据权利要求10至12中任一项所述的方法(200),其中,检查(230)是否不允许提供所述软件的配置包括检查所述软件的配置是否对应于所述预定负面清单(NL)的至少一个条目。
14.根据权利要求10至13中任一项所述的方法(200),包括:
-如果所述检查(230)是否定的,则在所述配置下提供(250)所述软件。
15.根据权利要求10至14中任一项所述的方法(200),其中,所述预定负面清单(NL)通过根据权利要求1至9中任一项所述的用于为系统持续监视软件配置的计算机实现的方法(100)产生和/或适配。
16.一种持续集成和/或提供系统(300),被设计为执行根据权利要求1至9中任一项所述的用于为系统持续监视软件配置的计算机实现的方法(100)。
17.一种持续集成和/或提供系统(400),被设计为执行根据权利要求10至15中任一项所述的用于为系统持续提供软件的计算机实现的方法(200)。
CN202211126817.4A 2021-09-17 2022-09-16 软件的持续监视和/或提供 Pending CN115827291A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102021210327.8 2021-09-17
DE102021210327.8A DE102021210327A1 (de) 2021-09-17 2021-09-17 Kontinuierliche überwachung und/oder bereitstellung von software

Publications (1)

Publication Number Publication Date
CN115827291A true CN115827291A (zh) 2023-03-21

Family

ID=85383654

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211126817.4A Pending CN115827291A (zh) 2021-09-17 2022-09-16 软件的持续监视和/或提供

Country Status (3)

Country Link
US (1) US20230091293A1 (zh)
CN (1) CN115827291A (zh)
DE (1) DE102021210327A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117149935B (zh) * 2023-10-30 2024-01-19 北京江云智能科技有限公司 一种基于数字孪生的水网数据监管系统及方法

Also Published As

Publication number Publication date
DE102021210327A1 (de) 2023-03-23
US20230091293A1 (en) 2023-03-23

Similar Documents

Publication Publication Date Title
US20180232523A1 (en) Method, system and product for using a predictive model to predict if inputs reach a vulnerability of a program
EP3987424A1 (en) Systems and methods for assessing risk in networked vehicle components
CN112286828B (zh) 一种区块链智能合约的测试方法和系统
US20080234999A1 (en) Implementing performance-dependent transfer or execution decisions from service emulation indications
Moukahal et al. Vulnerability-oriented fuzz testing for connected autonomous vehicle systems
Glas et al. Automotive safety and security integration challenges
US20210342249A1 (en) Method for detecting safety-relevant data streams
US11580009B2 (en) Systems and methods for program code defect and acceptability for use determination
CN101369141B (zh) 用于可编程数据处理设备的保护单元
US20080235001A1 (en) Implementing emulation decisions in response to software evaluations or the like
CN107430659B (zh) 用于在功能安全的电气、电子和/或可编程电子系统中处理和传递数据的方法和设备
CN115827291A (zh) 软件的持续监视和/或提供
KR101337216B1 (ko) 컴퓨터 시스템 및 시그니처검증서버
US9558019B2 (en) Coordinating instances of a thread or other service in emulation
CN106484945B (zh) 用于分析逻辑电路的方法
US20080235000A1 (en) Implementing security control practice omission decisions from service emulation indications
Rinaldo et al. Integrated analysis of safety and security hazards in automotive systems
US11899561B2 (en) Method for operating a control unit when testing software of the control unit, and method for operating a test computer when testing software of a control unit
US20220066403A1 (en) Controlling an operation of a technical system automatically
US10437656B2 (en) Method for automatically determining causes of the malfunction of a system made up of a plurality of hardware or software components
EP3661149A1 (en) Test system and method for data analytics
Moukahal et al. Towards a secure software lifecycle for autonomous vehicles
Kurachi et al. Proposal of hils-based in-vehicle network security verification environment
Harel et al. Mitigating Unknown Cybersecurity Threats in Performance Constrained Electronic Control Units
Pitchford The ‘Shift Left’Principle

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication