CN111480142A - 在运行期间对软件密集型***的无缝和安全升级 - Google Patents
在运行期间对软件密集型***的无缝和安全升级 Download PDFInfo
- Publication number
- CN111480142A CN111480142A CN201880082918.1A CN201880082918A CN111480142A CN 111480142 A CN111480142 A CN 111480142A CN 201880082918 A CN201880082918 A CN 201880082918A CN 111480142 A CN111480142 A CN 111480142A
- Authority
- CN
- China
- Prior art keywords
- service
- module
- data
- actuator
- computer
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 34
- 238000012360 testing method Methods 0.000 claims description 56
- 239000000523 sample Substances 0.000 claims description 42
- 239000003795 chemical substances by application Substances 0.000 claims description 40
- 239000012190 activator Substances 0.000 claims description 12
- 230000001276 controlling effect Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 5
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 claims description 2
- 230000003213 activating effect Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 claims description 2
- 230000004044 response Effects 0.000 claims description 2
- 230000009471 action Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000009533 lab test Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/27—Built-in tests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
在运行期间对软件密集型***的升级。公开的是用于在***中对服务或微服务进行升级的方法和***,其中在***中采用更新版本的服务而无需立即允许服务承担对***的最终输出的控制。
Description
技术和软件密集型***向用户(人类或其他***)提供服务,并且服务需要在***的生命周期期间被更新或升级。
在软件开发中,存在更频繁地更新和升级***的、以较短的周期提供服务(也称为微服务)的较小部分的趋势。
如果***由越来越多的单独地可更新/升级部件组成,则升级数量增大。
对于每次更新/升级,必须验证它是否可以在现场有结果地使用(被部署用于生产使用)。以下问题是相关的:
难以确定新开发版本的服务(更新/升级)是否足够好以被接受或比当前服务更好并且应该代替已经实现的服务而被使用。问题在于,实验室测试可能不能在充分接近现实世界运行条件的情况下执行,或者时间不够长而不能获得所需要的信赖度。
关键***太频繁或在太长时间段内停止运行是不可接受的或太昂贵的。
对于需要安全运行的***,***中的任何变化均需要在现场验证,以确保在其预期的环境中的安全运行。
在执行升级/更新之后,现场可能会发生未预料到的问题,然后逆转到升级前的状态(回滚)是合期望的。然而,在许多情况下,这可能不可能以快速且不复杂的方式实现,或者可能涉及***的附加的停机时间。
以前,上述问题已经通过以下方法被解决:
第一种方法是在升级***所需要的时间段内使***停止服务。这种方法导致在升级时间段期间***的不可用。
第二种方法是依靠辅助***在升级时间段内提供服务。这种方法是昂贵的,因为必须提供并且维护仅在升级时间段期间使用并且在其他时间不使用的辅助***。如果在正常运行期间并行使用辅助***以增大***可用性,则在升级期间没有冗余***可用。
第三种方法涉及安全相关***。对于安全相关***,通常通过在开发(实验室/模拟)环境中进行大量的测试以及通过执行变化影响分析来进行验证和证实方面,以获得***在升级之后仍将安全地提供其服务的信赖度。然而,该方法并不总是提供新服务用于其预期目的的适用性的信赖度,因为开发环境中的测试结果可能不会转移到运行环境,在运行环境中,在开发环境中不能被模拟的因素(使用/应用场景)可能是相关的。
为了解决在升级/更新之后的可能的问题,进一步的可能性是实现进一步的停机时间,在所述进一步的停机时间期间能够重建升级之前的状态。如果在升级期间已经使用辅助***,则具有以下缺点:在执行回滚期间,需要在比以前计划的更长的时间内使用辅助***。
发明内容
公开的是一种计算机实现的方法,其用于对在技术***(200)上执行的多个服务中的至少一个服务进行升级,该技术***(200)包括至少一个致动器(210),其中多个服务被适配用以响应于至***(200)的输入(202)来提供控制所述至少一个致动器(210)的输出(209),其中,计算机实现的方法被适配用以:
a. 在***(200)上部署至少一个更新版本的至少一个服务(211),同时在***(200)上维护先前版本的服务(204),其中,防止更新版本的至少一个服务(211)控制至少一个致动器(210),并且在技术***(200)上部署用于测试至少一个更新版本的至少一个服务(211)的性能的测试探针模块(311b,602),
b. 运行技术***(200)上的测试探针模块(311b,602),用以相对于预定标准来测试技术***(200)上的至少一个更新版本的至少一个服务(211)的性能,
c. 确定至少一个更新版本的至少一个服务(211)的性能符合预定标准,
d. 禁用先前服务(204)对至少一个致动器(210)的控制,以及
e. 启用部署的更新版本(212)对至少一个致动器(210)的控制。
该方法具有如下优点:能够在现场测试更新版本的服务,同时防止更新版本将对物理世界造成任何影响。
还公开了在技术***(200)中维护先前版本的服务(204)作为后备。
这具有如下优点:在启用更新版本的服务并且在稍后的时间点遇到关于更新版本的服务的任何问题之后,能够容易地使***回滚到先前版本的服务。
还公开了:步骤d进一步包括确定执行步骤e和f是否符合技术***(200)的运行限制。
因此,该方法具有如下优点:该方法还允许识别从第一版本的服务切换到第二更新版本的服务之间的最佳时间点,从而使例如***的停机时间最小化。
公开了:确定执行步骤e和f是否符合技术***(200)的运行限制包括确定***(200)停机时间的预定时间限制、对可用性的可接受影响或/和可接受的故障风险。
该步骤具有如下优点:能够使用特定标准来优化切换时间。
公开的还是:采用至少两个更新版本的服务,并且在步骤d)中确定至少两个版本中的哪个版本最符合预定标准,并且在步骤f)中启用对至少两个部署的更新版本中的最符合预定标准的部署的更新版本的输出的控制。
因此,该方法具有如下进一步的优点:能够在现场并行测试若干版本的更新服务。
公开的还是:该方法包括:在部署的至少一个更新版本的服务不符合第二组预定标准时,禁用部署的至少一个更新版本的服务对至少一个致动器(210)的控制,并且启用先前版本的服务对至少一个致动器(210)的控制。
因此,该方法还允许在确定了更新版本的服务在现场尚未准确工作时,快速切换回到先前版本的服务。
公开的还是:在部署的至少一个更新版本的服务符合第二组预定标准时,从技术***(200)移除先前版本的服务。
以这种方式,可以更高效地使用***、***的容量。
公开的还是:第二组标准涉及在由部署的更新版本的服务程序控制时***(200)的性能。
这允许在启用第二版本的服务之后为***指定具体标准。
还公开了测试探针模块(311b,602)能够提供和/或操纵输入数据,从服务的传感器代理、控制逻辑和致动器(210)代理模块接收数据。
这些特征指定测试探针模块的有利配置。
公开的还是:一种数据载体,其含有当在计算机***(200)上运行时用以执行如以上所限定的方法的指令。
公开的还是:一种计算机实现的***(200),其包括用于执行多个服务的处理器,其中,服务将输入数据处理为输出数据,输出数据控制至少一个致动器(210)的动作,其中服务中的每个被配置为包括:
a. 传感器代理模块(601),用于接收输入数据;
b. 控制逻辑模块(603),用于将输入数据处理为输出数据;
c. 致动器代理模块(604),用于输出数据以控制至少一个致动器(210);
d. 测试探针模块(311b,602),可操作地连接至数据传感器(705),并且数据传感器(705)将来自传感器代理模块(601)、控制逻辑模块(603)和致动器代理模块(604)的数据提供至测试探针模块(311b,602),测试探针模块(311b,602)被配置为操纵、检查和监测传感器代理模块(601)、控制逻辑模块(603)、致动器代理模块(604)的数据;
e. 权限确定模块(1006),用于确定第一服务的性能水平,并且被配置为接收由测试探针模块(311b,602)提供的以及由***(200)的第二服务的权限确定模块提供的输入,第二服务是第一服务的不同版本;
f. 主激活器模块(1007),用于计算从第一服务到第二服务的移交时间点并且用于激活第二服务,以及可操作地连接至权限确定模块和测试探针模块(311b,602),并且被配置为从***(200)的第二版本的服务的主激活器模块(1007a)接收输入。
本公开提供了在其上能够实现以上限定的有利方法的***的细节。
公开的还是:传感器代理模块(601)、控制逻辑模块(603)和致动器代理模块(604)在功能上彼此连接的第一版本的服务。
本公开指定了第一版本的服务的配置。
公开的还是:传感器代理模块(701)和控制逻辑模块(703)在功能上彼此连接并且控制逻辑模块(703)和致动器代理模块(704)在功能上没有彼此连接的第二版本的服务。
本公开指定了第二版本的服务的配置。
还公开了测试探针模块(311b,602)包括数据命令器模块(803)、探针数据模块(804)、数据区域(805)和服务数据模块(806)。
本公开限定了如何配置有利的测试探针模块。
附图说明
图1图示在***升级之前提供服务的***。
图2图示其中已经在***中实现了升级的服务但是防止更新版本的服务的输出控制致动器的动作的***。
图3图示更新的服务还含有测试程序。
图4图示其中已经禁用先前的服务的输出对至少一个致动器的控制、同时已经启用更新的服务的输出对至少一个致动器的控制的***。
图5图示其中先前的服务已经从***中移除的***。
图6和7图示内置在服务中的测试探针与服务的交互点。
图8图示内置在服务中的测试如何控制测试探针。
图9图示权限确定如何协商控制功能。
图10图示主激活器如何在服务之间执行无缝移交。
具体实施方式
在详细解释本发明的任何实施例之前,要理解的是,本发明在其应用方面不限于在以下描述中阐述或在以下附图中图示的组件的布置和构造的细节。本发明能够具有其他实施例,并且能够以各种方式实践或实施。
而且,要理解的是,本文中使用的措词和术语是出于描述的目的,并且不应被认为是限制性的。本文中“包含”、“包括”或“具有”及其变体的使用意在涵盖其后列出的项及其等同物以及附加项。术语“连接”和“耦合”被宽泛地使用,并且涵盖直接的和间接的连接和耦合两者。而且,可以使用包含有线连接、无线连接等的任何已知的手段来执行电子通信和通知。
还应该注意的是,可以利用多个基于硬件和软件的装置以及多个不同的结构组件来实现本发明。另外,应该理解的是,本发明的实施例可以包含硬件、软件以及电子组件或模块,出于讨论的目的,电子组件或模块可以被图示和描述为好像大多数组件仅以硬件实现一样。然而,本领域的普通技术人员、并且基于对该详细描述的阅读将认识到在至少一个实施例中,本发明的基于电子的方面可以以可由一个或多个处理器执行的软件(例如,存储在非暂时性计算机可读介质上)实现。这样,应该注意的是,可以利用多个基于硬件和软件的装置以及多个不同的结构组件来实现本发明。例如,说明书中描述的“控制单元”和“控制器”可以包含一个或多个处理器、包含非暂时性计算机可读介质的一个或多个存储器模块、一个或多个输入/输出接口以及连接组件的各种连接件(例如,***总线)。
应用或应用程序能够被构造成服务,也称为微服务,并且在本文中可互换地用于术语服务,并且因此能够将服务视为在应用程序内形成模块。服务因其模块化特性而可以独立部署且易于更换。通常,服务是细粒度的并且其协议重量轻。
图1示出接收输入102(例如,从传感器接收的参数的值)的***100(例如,控制***),该输入102可以由比如传感器101的装置或提供输出的其他***输出。***100经由在***100上执行服务103、104、105(又名“微服务”)来处理该输入102。服务103、104、105中的每一个均具有模块化结构,并且执行单独的任务并提供相应的输出106、107、108,其对***100的公共输出109作贡献。服务103、104、105也可以直接提供公共输出109。输出109能够用于控制致动器110,或者输出109可以由另一***使用作为输入。
图2示出在针对服务204采用更新版本的服务211之后的***200。在所公开的方法的该阶段,防止更新版本的服务211的输出212控制或影响致动器的动作,但是其的确已经接收到***200的其他服务203、204、205接收的输入202。第一版本(先前版本)的服务和第二版本(更新版本)的服务本质上在***内执行相同的功能,但是含有可能会影响其在***内的效率的对服务的修改。
图3示出更新的服务311a(图2中的211)设置有形成单元311的测试探针模块311b。下面更详细地解释测试探针模块311b的功能。测试探针模块311b能够监测服务311b如何处理数据,并且因此设置有用于服务311b的各种模块的数据传感器(例如,用于传感器代理、控制逻辑和致动器代理模块的数据传感器)。测试探针模块311b还能够通过将错误注入到服务311b中来操纵输入到服务311b中的数据,并且监测服务311b如何处理该操纵的数据。因此,该方法具有如下优点:能够在没有相对于未更新的服务204和在整个***上运行的其他服务的副作用的情况下在现场执行测试。
如图4所图示的,在确定更新的服务211、311a、411成功通过测试之后,能够禁用先前版本的服务404以免其对公共输出409作贡献,并且因此,禁用先前服务的输出409对至少一个致动器的控制。同时,例如,能够经由将单独的输出412在功能上耦合到公共输出9来启用更新的服务211、311a、411以对公共输出409作贡献。因此,无缝地执行先前版本的服务404和更新版本的服务411之间的切换。
在执行该切换之前,能够确定切换的时间点是否将符合技术***的运行限制,并且因此确定用于执行切换的特别合适的时间点。可以基于***停机时间的预定时间限制、对可用性的可接受影响或/和可接受的故障风险来确定技术***的运行限制。
如果确定更新的服务211、311a、411没有成功通过测试,则可以执行进一步的测试或/和可以移除更新的服务211、311a、411(未示出)。
假设能够如图4所图示的那样启用更新的服务211、311a、411,则测试程序可以进一步监测启用的更新的服务211、311a、411的动作,或者能够使用进一步的监测动作来监测启用的更新的服务211、311a、411的动作。
如果对启用的更新的服务211、311a、411、511建立了充分的信赖度,则能够从***中移除先前版本的服务,如图5所图示的那样。
然而,如果进一步的测试表明启用的更新的服务211、311a、411、511不满足预设要求,则能够执行无缝回滚,即能够再次启用先前版本的服务并且禁用更新版本,这将导致与图2所图示的***200相同的配置。随后,更新版本的服务可以被提交用以进行进一步测试或可以被移除。
图6和7图示根据本公开的并且对于执行以上描述的方法有用的测试探针602、603。图6和图7的配置的不同之处在于,图6涉及先前版本的服务600,并且图7涉及更新版本的服务700。服务600包括传感器代理模块601、控制逻辑模块603和致动器代理模块604。服务700包括传感器代理模块701、控制逻辑模块703和致动器代理模块704。如在图7中能够看出,由控制逻辑模块703提供的输出没有可操作地连接至致动器代理模块704,这与先前版本的服务600的配置不同,在先前版本的服务600的配置中,控制逻辑模块603可操作地连接至致动器代理604。因此,按照该配置的更新版本的服务700将不会在物理世界有任何影响或者将不会对***的服务的公共输出作贡献。测试探针能够内置到任何服务中。测试探针602、702具有数据传感器605/705,数据传感器605/705能够在功能上连接至传感器代理601、701、控制逻辑603、703以及致动器代理604、704。数据传感器605、705提供由服务提供的数据,该数据例如是封装的服务数据。测试探针602、702能够在相应服务的运行时间之前和期间是可编程的,能够监测、操纵和检查服务数据(例如封装的服务数据),并且利用服务资源的固定资源(例如执行时间、存储器或/和带宽)进行工作。
图8图示内置在服务中的测试如何控制测试探针以及测试探针及其协作者的组件。服务内部的测试(程序)801由测试解释器802转换为用于指示数据命令器803的一系列数据监测和操纵命令。测试解释器802还断言监测数据的属性。数据命令器804安装或卸载监测和操纵命令,检查它们的触发条件,触发命令,并且将监测数据递送给测试解释器802。探针数据模块804读取和写入由数据命令器802提供的且未被服务注意到的输入、输出和内部信息。在数据区域805中,保存由探针数据模块数据804读取和写入的数据。数据区域805在一个区域(命名为“原始单元805b”)中含有未改变的数据,并且在进一步的区域(命名为“覆盖单元805a”)中含有由测试探针操纵的数据。服务数据模块读取和写入服务数据(例如输入、输出和/或内部信息),而不会注意测试探针是否操纵或监测由服务逻辑807获得的数据。
图9和图10图示服务内的权限确定模块如何协商哪个服务具有主要控制(功能),并且示出图6和图7所图示的服务的进一步的细节。
先前服务和更新服务(以及因此在本公开中考虑的每个服务)可以包括测试探针902、902a、传感器代理模块901、901a、致动器代理模块904、904a以及权限确定模块910、910a。
经由传感器代理模块901、901a,数据被转发并且由控制逻辑模块903、903a处理,并且被转发给致动器代理模块904、904a,其中在尚未启用更新的服务以控制致动器或/和对***的服务的公共输出作贡献的情况下,省略最后的步骤。测试探针模块902、902a在功能上连接至数据传感器905,数据传感器905能够在功能上连接至传感器代理模块901、901a、控制逻辑模块903、903a和致动器代理模块904、904a。数据传感器905提供由服务提供的数据,该数据例如是封装的服务数据。
权限确定模块910、910a基于从测试探针模块获得的数据和/或结论来计算相应版本(即,版本号)的相应服务的性能水平。一个版本的服务的权限确定模块910与另一版本的服务的对等权限确定模块910a协商主要角色。因此,对等权限确定模块910/910a能够比较对等服务的性能,并且基于该比较来确定哪个服务应该是主要的,即,被启用,例如用以控制至少一个致动器。
为了实现服务之间的无缝移交,服务还能够含有主激活器模块1007、1007a,如图10所图示的那样。图10所图示的服务含有与参考图9所描述的服务相同并且具有相同功能的模块,但是另外含有主激活器模块1007、1007a。
主激活器模块1007、1007a使用测试探针1002、1002a监测和接收数据,并且一个版本的服务1000(先前版本)的主激活器模块1007与另一版本的服务1000a(更新版本,或者反之亦然)的对等主激活器模块1007a交换数据。主激活器模块1007、1007a还从权限确定模块1006、1006a接收关于哪个版本的服务应该接管权限的信息。主激活器模块1007、1007a基于从其自身服务的模块提供的数据和从对等服务的模块提供的数据来计算从服务1000到服务1000a的移交的时间点。在计算出的时间点,它将当前禁用的服务激活作为新的主要服务,并且将当前的主要服务置于(热)备用模式。
应该理解的是,以上描述的服务的配置可以应用于任何版本的服务,并且因此例如取决于新的编程测试程序,从更新版本的服务到先前版本的服务的切换也可以使用以上描述的服务的配置来实现。
Claims (16)
1.计算机实现的方法,其用于对在技术***(200)上执行的多个服务中的至少一个服务进行升级,所述技术***(200)包括至少一个致动器(210),其中,所述多个服务被适配用以:响应于至***(200)的输入(202)来提供控制所述至少一个致动器(210)的输出(209),其中,所述计算机实现的方法被适配用以:
a. 在所述***(200)上部署至少一个更新版本的所述至少一个服务(211),同时在所述***(200)上维护先前版本的服务(204),其中,防止所述更新版本的所述至少一个服务(211)控制所述至少一个致动器(210),并且在所述技术***(200)上部署用于测试所述至少一个更新版本的所述至少一个服务(211)的性能的测试探针模块(311b,602),
b. 运行所述技术***(200)上的所述测试探针模块(311b,602),用以相对于预定标准来测试所述技术***(200)上的所述至少一个更新版本的所述至少一个服务(211)的性能,
c. 确定所述至少一个更新版本的所述至少一个服务(211)的性能符合预定标准,
d. 禁用先前服务(204)对所述至少一个致动器(210)的控制,以及
e. 启用部署的更新版本(212)对所述至少一个致动器(210)的控制。
2.根据权利要求1所述的计算机实现的方法,其中,在所述技术***(200)中维护所述先前服务(204)作为后备。
3.根据前述权利要求中的任一项所述的计算机实现的方法,其中,步骤d进一步包括确定执行步骤e和f是否符合所述技术***(200)的运行限制。
4.根据权利要求3所述的计算机实现的方法,其中,确定执行步骤e和f是否符合所述技术***(200)的运行限制包括确定***(200)停机时间的预定时间限制、对可用性的可接受影响或/和可接受的故障风险。
5.根据权利要求4所述的计算机实现的方法,其中,基于权利要求3和4所述的确定来确定用于执行步骤e和f的时间点。
6.根据前述权利要求中的任一项所述的计算机实现的方法,其中,采用至少两个更新版本的服务,并且在步骤d)中确定所述至少两个版本中的哪个版本最符合所述预定标准,并且在步骤f)中启用至少两个部署的更新版本中的最符合所述预定标准的部署的更新版本的输出的控制。
7.根据前述权利要求中的任一项所述的计算机实现的方法,还包括:在部署的所述至少一个更新版本的服务不符合第二组预定标准时,禁用部署的所述至少一个更新版本的服务对所述至少一个致动器(210)的控制,并且启用所述先前版本的服务对所述至少一个致动器(210)的控制。
8.根据权利要求1至7中的任一项所述的计算机实现的方法,还包括:在部署的所述至少一个更新版本的服务符合第二组预定标准时,从所述技术***(200)移除所述先前版本的服务。
9.根据权利要求7所述的计算机实现的方法,其中,所述第二组标准涉及在由部署的更新版本的服务程序控制时***(200)的性能。
10.根据前述权利要求中的任一项所述的计算机实现的方法,其中,所述测试探针模块(311b,602)能够提供和/或操纵输入数据,从所述服务的传感器代理、控制逻辑和致动器(210)代理模块接收数据。
11.数据载体,其含有当在计算机***(200)上运行时用以执行根据权利要求1至10中任一项所限定的方法的指令。
12.计算机实现的***(200),包括用于执行多个服务的处理器,其中,所述服务将输入数据处理为输出数据,所述输出数据控制至少一个致动器(210)的动作,其中所述服务中的每一个被配置为包括:
a. 传感器代理模块(601),用于接收输入数据;
b. 控制逻辑模块(603),用于将输入数据处理为输出数据;
c. 致动器代理模块(604),用于输出数据以控制所述至少一个致动器(210);
d. 测试探针模块(311b,602),可操作地连接至数据传感器(705),并且所述数据传感器(705)将来自传感器代理模块(601)、控制逻辑模块(603)和致动器代理模块(604)的数据提供至所述测试探针模块(311b,602),所述测试探针模块(311b,602)被配置为操纵、检查和监测所述传感器代理模块(601)、控制逻辑模块(603)、致动器代理模块(604)的数据;
e. 权限确定模块(1006),用于确定第一服务的性能水平,并且被配置为接收由所述测试探针模块(311b,602)提供的以及由所述***(200)的第二服务的权限确定模块提供的输入,所述第二服务是所述第一服务的不同版本;
f. 主激活器模块(1007),用于计算从所述第一服务到所述第二服务的移交时间点并且用于激活所述第二服务,以及可操作地连接至所述权限确定模块和所述测试探针模块(311b,602),并且被配置为从所述***(200)的第二版本的服务的主激活器模块(1007a)接收输入。
13.根据权利要求12所述的计算机实现的***(200),其中在第一版本的服务中,所述传感器代理模块(601)、所述控制逻辑模块(603)和所述致动器代理模块(604)在功能上彼此连接。
14.根据权利要求12或13所述的计算机实现的***(200),其中,在所述第二版本的服务中,所述传感器代理模块(701)和所述控制逻辑模块(703)在功能上彼此连接,并且所述控制逻辑模块(703)和所述致动器代理模块(704)在功能上没有彼此连接。
15.根据权利要求12至14中任一项所述的计算机实现的***(200),其中,所述测试探针模块(311b,602)包括数据命令器模块(803)、探针数据模块(804)、数据区域(805)以及服务数据模块(806)。
16.根据权利要求12至15所述的计算机实现的***(200),被配置为执行根据权利要求1至10所限定的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP17210279.0 | 2017-12-22 | ||
EP17210279.0A EP3502875A1 (en) | 2017-12-22 | 2017-12-22 | Seamless and safe upgrade of software intensive systems during operation |
PCT/EP2018/085207 WO2019121516A1 (en) | 2017-12-22 | 2018-12-17 | Seamless and safe upgrade of software intensive systems during operation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111480142A true CN111480142A (zh) | 2020-07-31 |
Family
ID=60811885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880082918.1A Pending CN111480142A (zh) | 2017-12-22 | 2018-12-17 | 在运行期间对软件密集型***的无缝和安全升级 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210165650A1 (zh) |
EP (1) | EP3502875A1 (zh) |
CN (1) | CN111480142A (zh) |
WO (1) | WO2019121516A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10430179B1 (en) * | 2019-03-07 | 2019-10-01 | Capital One Services, Llc | Methods and systems for managing application configurations |
EP4040243A1 (en) | 2021-02-09 | 2022-08-10 | Siemens Aktiengesellschaft | Plc-based support for zero-downtime upgrades of control functions |
EP4224314A1 (de) | 2022-02-07 | 2023-08-09 | Siemens Aktiengesellschaft | Sicheres upgrade von automatisierungsfunktionen mit kubernetes |
EP4303723A1 (en) | 2022-07-07 | 2024-01-10 | Siemens Aktiengesellschaft | System and computer-implemented method for upgrading and/or updating at least one service of a plurality of services |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1585926A (zh) * | 2001-09-17 | 2005-02-23 | 索马网络公司 | 软件更新方法、设备和*** |
US7613743B1 (en) * | 2005-06-10 | 2009-11-03 | Apple Inc. | Methods and apparatuses for data protection |
GB201302713D0 (en) * | 2013-02-15 | 2013-04-03 | Zynstra Ltd | Server system supporting remotely managed IT services |
CN103401713A (zh) * | 2013-07-31 | 2013-11-20 | 北京山海树科技有限公司 | 一种软件发布的***和方法 |
US20140101648A1 (en) * | 2012-10-05 | 2014-04-10 | Microsoft Corporation | Application version gatekeeping during upgrade |
CN105100227A (zh) * | 2015-07-08 | 2015-11-25 | 阔地教育科技有限公司 | 一种基于教育资源公共服务平台的软件升级方法及*** |
WO2015180932A1 (de) * | 2014-05-26 | 2015-12-03 | Siemens Aktiengesellschaft | Verfahren zum rechnergestützten testen eines technischen systems |
CN105324752A (zh) * | 2013-05-21 | 2016-02-10 | 谷歌公司 | 用于管理服务升级的***、方法和计算机程序产品 |
CN106648718A (zh) * | 2015-11-02 | 2017-05-10 | 天脉聚源(北京)科技有限公司 | 一种服务器代码部署的方法和*** |
CN106713379A (zh) * | 2015-08-10 | 2017-05-24 | 广州西麦信息科技有限公司 | 一种云计算自动部署***及其方法 |
-
2017
- 2017-12-22 EP EP17210279.0A patent/EP3502875A1/en not_active Withdrawn
-
2018
- 2018-12-17 WO PCT/EP2018/085207 patent/WO2019121516A1/en active Application Filing
- 2018-12-17 CN CN201880082918.1A patent/CN111480142A/zh active Pending
- 2018-12-17 US US16/954,086 patent/US20210165650A1/en not_active Abandoned
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1585926A (zh) * | 2001-09-17 | 2005-02-23 | 索马网络公司 | 软件更新方法、设备和*** |
US7613743B1 (en) * | 2005-06-10 | 2009-11-03 | Apple Inc. | Methods and apparatuses for data protection |
US20140101648A1 (en) * | 2012-10-05 | 2014-04-10 | Microsoft Corporation | Application version gatekeeping during upgrade |
GB201302713D0 (en) * | 2013-02-15 | 2013-04-03 | Zynstra Ltd | Server system supporting remotely managed IT services |
CN105324752A (zh) * | 2013-05-21 | 2016-02-10 | 谷歌公司 | 用于管理服务升级的***、方法和计算机程序产品 |
CN103401713A (zh) * | 2013-07-31 | 2013-11-20 | 北京山海树科技有限公司 | 一种软件发布的***和方法 |
WO2015180932A1 (de) * | 2014-05-26 | 2015-12-03 | Siemens Aktiengesellschaft | Verfahren zum rechnergestützten testen eines technischen systems |
CN105100227A (zh) * | 2015-07-08 | 2015-11-25 | 阔地教育科技有限公司 | 一种基于教育资源公共服务平台的软件升级方法及*** |
CN106713379A (zh) * | 2015-08-10 | 2017-05-24 | 广州西麦信息科技有限公司 | 一种云计算自动部署***及其方法 |
CN106648718A (zh) * | 2015-11-02 | 2017-05-10 | 天脉聚源(北京)科技有限公司 | 一种服务器代码部署的方法和*** |
Non-Patent Citations (4)
Title |
---|
VIKTOR FARCIC: "the devOps 2.0 toolkit", 《HTTP://WWW.DOC88.COM/P-8156976724975.HTML》 * |
佚名: "软件升级- 私有部署应用程序升级策略", 《HTTPS://BLOG.CSDN.NET/CHEVIKO/ARTICLE/DETAILS/18400965》 * |
张焱等: "动态升级技术在组件***中的应用研究", 《计算机与数字工程》 * |
贺晓春: "基于C/S模式的客户端软件自动升级设计与实现", 《自动化与仪器仪表》 * |
Also Published As
Publication number | Publication date |
---|---|
WO2019121516A1 (en) | 2019-06-27 |
EP3502875A1 (en) | 2019-06-26 |
US20210165650A1 (en) | 2021-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111480142A (zh) | 在运行期间对软件密集型***的无缝和安全升级 | |
US9152544B2 (en) | Method and system for upgrading a firmware of a chip and baseboard management controller by waiting until an idle state of a connected system to finish upgrade | |
US9170573B2 (en) | Method and system for updating tuning parameters of a controller | |
US9128913B2 (en) | Method and device for testing input/output interfaces of avionic modules of IMA type | |
KR102358470B1 (ko) | 부트 로더 업데이트 펌웨어, 및 부트 로더 업데이트 방법 | |
US20030051235A1 (en) | Method and apparatus for verifying and analyzing computer software installation | |
CN102087524B (zh) | 现场总线*** | |
KR20100041447A (ko) | 테스트 자동화 장치 및 테스트 자동화 방법 | |
CN105209925A (zh) | 在用于编译自动化半导体器件测试的测试计划的开发环境内实施编辑并更新功能性 | |
US8910145B2 (en) | Method and device for installing/uninstalling software modules, with centralized resolution of constraints, in aircraft equipment items | |
US20200050167A1 (en) | Resilient failover of industrial programmable logic controllers | |
WO2010097514A1 (en) | A method for secure remote reconfiguration of the programmable low-cost fpga hardware | |
US20100070260A1 (en) | Verification device, verifying apparatus and verification system | |
JP3915808B2 (ja) | プログラマブルコントローラおよびプログラマブルコントローラシステムならびにcpuユニット | |
CN108920171A (zh) | 固件更新方法及装置、电子设备 | |
CN106909382B (zh) | 输出不同类型***启动信息的方法及装置 | |
Agirre et al. | UP2DATE: Safe and secure over-the-air software updates on high-performance mixed-criticality systems | |
US7302562B1 (en) | Transmitting configuration data to a target programmable device after updating an intermediate programmable device | |
CN103026339A (zh) | 对微控制器中的软件参数重新配置的方法以及微控制器和控制设备 | |
Neukirchner et al. | A software update service with self-protection capabilities | |
CN113722212B (zh) | 一种cpld升级测试方法、装置、设备及介质 | |
JP2016024798A (ja) | 冗長化コントローラシステム、その待機系コントローラ | |
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 | |
CN116848476A (zh) | 针对控制功能的零停机时间升级的基于plc的支持 | |
JP2010231809A (ja) | 制御装置及びコンピュータプログラム |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200731 |