运行自动化系统的方法和根据方法工作的自动化系统

文档序号:1661751 发布日期:2019-12-27 浏览:5次 >En<

阅读说明:本技术 运行自动化系统的方法和根据方法工作的自动化系统 (Method for operating an automation system and automation system operating according to the method ) 是由 格拉尔德·克费尔 本杰明·科勒 于 2018-02-16 设计创作,主要内容包括:本发明涉及一种用于运行自动化系统的方法和根据该方法工作的自动化系统,其中,以在容器(14)中封装的形式提供在该自动化系统上运行的应用(16),并且其中,在在容器(14)中封装的应用(16)需要内核模式软件(22)的情况下,在该自动化系统上运行的主机扩展器(30)根据由容器(14)包括的元数据(32)从具有内核模式软件(22)的数据库(34)中加载所需要的内核模式软件(22)并且将其在自动化系统上进行本地安装,其中,在识别出自动化系统中的不兼容性的情况下,主机扩展器(30)安装虚拟机(26),在虚拟机(26)中加载有导致不兼容性的容器(14),并且在虚拟机(26)的内核(38)中加载由容器(14)包括的应用(16)所需要的内核模式软件(22)。(The invention relates to a method for operating an automation system and an automation system operating according to the method, wherein an application (16) operating on the automation system is provided in the form of a package in a container (14), and wherein, in the event that the application (16) packaged in the container (14) requires kernel-mode software (22), a host extender (30) operating on the automation system loads the required kernel-mode software (22) from a database (34) with the kernel-mode software (22) on the basis of metadata (32) comprised by the container (14) and installs it locally on the automation system, wherein, in the event that an incompatibility in the automation system is identified, the host extender (30) installs a virtual machine (26), in the virtual machine (26) loads the container (14) which causes the incompatibility, and loading kernel mode software (22) required by the applications (16) included by the container (14) in a kernel (38) of the virtual machine (26).)

运行自动化系统的方法和根据方法工作的自动化系统

技术领域

本发明涉及一种用于运行自动化系统的方法并且总体上用于基本上任意的计算机系统的方法。此外,本发明涉及根据该方法工作的自动化系统或者计算机系统以及执行该方法的计算机程序。

背景技术

所谓的容器技术是用于简单合并(打包)和分配接下来根据通常的语言习惯而简称为应用的软件应用的标准方法。该技术能用于不同的操作系统,例如Windows和Linux。对此有多种的实现方式。例如,在Linux环境中执行作为容器技术的开源软件“Docker”。对于Windows操作系统来说有所谓的“Windows-Container”。

为了在容器中封装应用,其包括完整的用于运行相应的应用所必须的运行时环境(Runtime环境)。相应地,该容器例如包括所有对于运行相应的程序所必须的二进制和配置数据以及库。借助于在容器中的封装,实现了对各种操作系统分布中的区别进行抽象化。

与操作系统虚拟(OS虚拟化)相比,容器技术明显更小并且需要更少的资源。在OS虚拟化中,此时产生的封装包括虚拟机(VM)、完整的相应待虚拟化的操作系统(特别是相应的操作系统内核)和至少一个借助于虚拟机运行的应用。与此相比,在容器技术中所有容器都共享一个共同的操作系统内核。

迄今的应用(软件应用)通常需要用于执行该应用的所谓的驱动(驱动软件)。当容器中的这种应用需要合并和交付的时候,这通常会引起问题,即驱动作为所谓的内核模式软件被集成到了相应的操作系统中。然而,迄今的容器技术仅能够在所谓的沙盒中对所谓的用户模式软件(即在其它的更少面向系统/系统临界的层级上的软件)进行抽象化。上述类型的容器是一个所谓的沙盒,其中,容器包括所有对于运行相应应用来说必需的数据和文件并且因此将该应用与其它的应用和相应的操作系统隔开(沙盒)。

因为所有的容器都共享共同的操作系统内核并且容器不具有在所谓的内核空间中进行更改的权利,所以当前的内核模式软件不能够在容器中进行封装。换言之,迄今为止所使用的是花费更高并且资源密集的传统的OS虚拟化,其被直接安置在超级管理者(Hypervisor)上。为了封装内核模式软件所使用的应用,对此,除了相应应用本身之外,还必须分配包括完整的所谓的操作系统堆栈的虚拟机(VM)。

例如将做好的封装借助于电子数据传输分配给一个或多个接受者,这是高花费和资源密集的。

在2016年IEEE的国际软件网络会议(ICSN)上由Thomas Renner等人的论文“Towards Container-Based Resource Management for the Internet of Things”中公开了支持Docker的内核版本。在此,由Linux命名空间提供隔离的容器。此外,能够直接在内核中实现容器虚拟化。

特别地,在图1中在Duncan Hardie的“How to Get Started Creating OracleSolaris Kernel Zones in Oracle Solaris 11”,URL:http://www.oracle.com/technetwork/articles/serversstorage-admin/howto-create-kernal-zones-sll-2251331.html#6中,公开了多个内核区域的建立。

发明内容

本发明的目的在于,提供一种用于在容器中封装需要内核模式软件的应用的可行性方案以及用于在相应的目标系统上运行这种应用的可行性方案。

根据本发明,该目的借助于具有权利要求1所述的特征的方法来实现。该方法被描述为用于运行自动化系统(即例如设定用于控制和/或监视工艺流程的自动化系统)的方法并且在此基础上来继续进行说明。但是,在此提出的方法基本上能用于任意类型的计算机系统并且就此而言自动化系统仅是示例性的计算机系统。相应地,接下来在每次提到术语“自动化系统”时也同时理解出一般的、并且不设定或不主要设定用于自动化目的的计算机系统。

在此提出的方法中为了运行自动化系统,其中,以在容器中封装的形式提供待在自动化系统中运行的应用,而提出以下步骤:在容器中封装的应用需要内核模式软件的情况下,在自动化系统上运行的并在接下来称为主机扩展器的计算机程序,从具有内核模式软件的数据库中加载所需要的内核模式软件,并且将其本地安装在自动化系统上。在此,内核模式软件的本地安装尤其以将其集成到自动化系统的操作系统的内核中的形式来实现。

在此,基于具有相应应用本身的容器的元数据得出,相应应用需要哪个内核模式软件,并且从数据库中相应地加载并本地安装哪个内核模式软件。元数据以能由主机扩展器自动评估的编码的形式、即例如XML格式或类似的形式而存在。

对于另外的描述来说为了避免不必要的重复而适用的是:结合所要求保护的方法以及可能的设计方案来描述的特征和细节当然在结合并考虑设定用于执行自动化系统的方法时也适用,并且反之亦然,从而该方法也能够借助于单个的或多个的有关由自动化系统运行的方法步骤的方法特征来扩展,并且自动化系统相应地也能够通过用于执行在该方法的范畴中运行的方法步骤来扩展。相应地,结合所要求保护的方法以及可能的设计方案来描述的特征和细节显然也在结合和考虑设定用于执行自动化系统的方法时适用,并且反之亦然,从而能够关于对本发明的各个方面的公开,始终相互参考。

上述目的也借助于一种根据在此和接下来描述的方法来工作的自动化系统来实现,并且其包括用于执行该方法的构件。该方法以计算机程序的形式来实现自动运行,并且因此,本发明一方面也是具有能通过计算机运行的程序代码指令的计算机程序并且另一方面是具有这样的计算机程序、即具有程序代码件的计算机程序产品的存储介质,以及最后也是具有微处理器和存储器形式或类型的处理单元的自动化系统,在该存储器中能够加载或加载有作为用于执行该方法及其设计方案的构件的这种计算机程序。

当在下面描述方法步骤或方法步骤顺序时,涉及基于计算机程序或在计算机程序的控制下实现的动作。在此,术语“自动化”的每次引用都专门意旨,基于计算机程序或在计算机程序的控制下进行所涉及的动作。

替代具有各个计算机代码指令,也能够以固件的形式实现对在此和接下来描述的方法的实施。对于本领域技术人员来说已知的是,替代以软件方式来实现方法,也始终能够以固件或以固件和软件的方式来实现。因此对于在此提交的说明书应当适用的是,术语“软件”和“计算机程序”也包括其它的可行实现方案,即尤其是以固件或以固件和软件的方式实现。

在此提出的方法的优点在于,对迄今的容器技术进行扩展,使得现在也能够在容器中封装应用所需要的内核模式软件。迄今为止的优点:如应用的简单分配、容器的快速启动、高效的资源利用等等,也随容器技术的扩展一并给出。

本发明的有利的设计方案是从属权利要求的内容。在此,在权利要求间所使用的引用关系指明通过相应的从属权利要求的特征对相关的权利要求的主题做出进一步的改进。这并不应理解为对得到对于从属权利要求的特征或特征组合的独立的、所请求的保护的放弃。此外,在对从属权利要求中的特征进行详细具体化的情况中,在考虑权利要求的布局以及说明书时以此出发:在各个在先权利要求以及具体的方法/具体的自动化系统的一般实施方式中不存在这样的限制。相应地,在没有特别指明的情况下,在对从属权利要求方面的描述中的每次引用也被明确地理解为对可选特征的描述。最后需指出的是,在此给出的方法也能够根据从属的装置权利要求改进并且反之亦然。

在该方法的一个设施方式中,主机扩展器在删除容器时自动检验,是否仍需要与由容器所包括的应用的运行相关地安装的内核模式软件。当在此证实不再需要内核模式软件的时候,主机扩展器自动地或被命令删除内核模式软件。这不仅使内核整洁还减小了其规模。删除不再需要的内核模式软件还有助于避免可能的不兼容性。

在该方法的另一个实施方式中提出,主机扩展器在有多个容器的情况下自动检验各个所需要的内核模式软件的兼容性。基于这种检验能够至少保障,当基于这样的安装方式来考虑不兼容性和相应的功能干扰或功能故障的时候,不将所需要的内核模式软件安装在本地。

在该方法的又一实施方式中提出,在识别出自动化系统中的不兼容性的情况下,主机扩展器安装虚拟机,在该虚拟机中加载导致不兼容性的容器,并且在虚拟机的内核中加载由容器包括的应用所需要的内核模式软件。尽管事先确定有不兼容性,这仍能够实现由起因容器所包括的应用的运行,这是通过在专门生成的虚拟机中运行该容器和应用而实现的。将内核模式软件加载到虚拟机的内核中,不涉及自动化系统的操作系统的内核,并且相应地也不产生不兼容性,而且不必担心功能干扰或功能故障。

附图说明

接下来根据附图详细阐述本发明的实施例。相互对应的内容或元件在所有的附图中以相同的标号标记。

在此示出:

图1是具有在容器中封装的应用的层级模型;

图2是具有在虚拟机中封装的应用的层级模型;

图3是具有在容器中封装的应用和用于对由应用所需要的内核模式软件进行本地安装的计算机程序的层级模型;

图4是用于删除不再需要的已在本地安装的内核模式软件的数据结构;并且

图5是根据图3具有由计算机程序生成的用于在出现兼容性问题的情况下运行在虚拟机中封装的应用的计算机程序的层级模型。

具体实施方式

图1以简化的方式示意性地示出接下来称为服务器10的装置/计算机系统的层级模型,该装置/计算机系统特别用作为用于控制和/或监视(在原则上任意的并且在此未示出的)工艺流程的自动化系统的计算机系统。在服务器10的硬件上安置有相应的操作系统12。该操作系统在接下来有时根据通常的语言习惯也被称为主机OS(主机操作系统)。在操作系统12之上示出了各个容器14。它们各自包括至少一个应用16以及用于运行相应应用16所必须的运行时环境18。在此例如是二进制数据和/或库(Libraries)。接下来称为容器管理器20的计算机程序能够运行在容器14中封装的应用16。

因为借助于之前阐述的和在图1中以简化的方式示意性示出的容器技术,在容器14中封装内核模式软件是不可行的,所以为了封装应用16(该应用为了其运行而需要内核模式软件22(图3)),传统的OS虚拟化通常使用例如所谓的驱动,如这以简化的方式在图2中示意性地所示的。

在图2中,示图也以层级模型为基础,并且在最下面示出相应的目标计算机系统的服务器硬件10以及在该硬件10上运行的操作系统(主机OS)12。所谓的超级监管者24用作操作系统12与一个或多个虚拟机(VM)26之间的接口。每个虚拟机26都包括至少一个设置用于在虚拟机26之中并且借助于虚拟机运行的应用16,以及为了运行应用16所需要的相应访客操作系统(访客OS)28。虚拟机26也包括可能的运行时环境18、特别是二进制文件和/或库,需要使用该运行时环境来运行相应的应用16。

当前实现的容器技术使用了容器管理器20(图1)作为相应的本地系统(目标计算机系统)中的中央组件,来管理相应的容器14和封装在其中的应用16。容器管理器20负责容器14的分配、安装和配置(Deployment)以及启动、停止和删除。

在此提出的方案以将容器管理器20扩展为接下来称为主机扩展器30的容器管理器扩展(图3)为基础。主机扩展器30负责将内核模式软件22集成到相应的本地内核36中,从而将内核模式软件22提供用于运行由容器14包括的应用16。

图3示出了设定用于在相应的目标硬件10上运行或可替换地在虚拟机26中运行的容器14。设定用于运行容器14的相应目标硬件10或者可替换地设定用于运行容器14的虚拟机26被称为主机10/26,因为直接适用于运行容器14的目标硬件10以及在基本上任意的目标硬件10上运行的虚拟机26都被考虑作为用于运行容器14的平台-即“主机”。

在主机10/26上,运行有超级监管者24,其用作用于相应目标硬件10及其操作系统12的接口、或用作用于相应虚拟机26的访客操作系统28的接口。

主机扩展器30处理在容器14之中封装的元数据32,该元数据限定了在容器14中封装的应用16一方面与内核模式软件22(例如一个驱动22或多个驱动22)另一方面之间的对应关系。借助于元数据32,对于容器管理器20来说能自动识别,在启动容器14时是否必须存在有或安装有特定的内核模式软件22。主机扩展器30在此用于将对于运行在容器14中封装的应用16必要的内核模式软件22安装在主机10/26(服务器或虚拟机)上,特别是将其集成到那里的内核36中。

主机扩展器30从数据库34(容器扩展中心)中调取合适的(对于运行相应应用16来说必要的)内核模式软件22,该数据库在本地提供或者能够借助于用于数据传输的常用构件(即例如通过互联网)来访问。数据库34包括内核模式软件22,其由容器14借助于由该容器包括的数据源32来引用,并且在运行时间使用。

主机扩展器30对于内核模式软件22的管理来说具有重要作用。在主机10/26上启动容器14时,例如借助于主机扩展器30自动检验,所需要的驱动22、即所需要的内核模式软件22是否安装在主机10/26中。如果检验出内核模式软件22仍未本地安装在主机10/26中,那么主机扩展器30就安排本地安装,如其在图3中所示那样,这是通过加载来自数据库的内核模式软件22并且将其添加给主机10/26的内核36来实现的。

在主机10/26上启动对于运行由容器包括的应用16需要同样内核模式软件22的该容器14的另外实例时,主机扩展器30自动确定,所需要的内核模式软件22已经安装在内核36中,从而能够直接启动容器14并且运行由该容器包括的应用16。

主机扩展器30也进行如下的管理,例如在链接表或类似的数据结构38中,结合容器14的启动将哪个内核模式软件22集成到内核36中。数据结构38包括例如针对每个在内核36中集成的驱动22(内核模式软件22)的数据集40(图4),并且该数据集又包括对需要相应驱动22的一个或多个容器14的引用。在删除容器14时,由主机扩展器30根据数据结构39自动检验,哪个数据集40或哪些数据集40引用该容器14。在删除容器14时一起删除了引用。当在此产生不再引用容器14的数据集40,这就是说,需要原本为由主机扩展器30管理的数据集40提供的驱动22的容器14不再存在的时候,能够从内核36中删除驱动22本身。主机扩展器30就命令卸载相应的驱动22(从内核36中移除)。

图4以示意性简化的形式示出了这种情形。在删除最左侧示出的容器14时,根据所属的数据集40(即最右侧示出的数据集40)的数据结构并且根据数据集40得出,该容器14使用哪个驱动22(即最左侧示出的驱动22)。因为没有其它的容器14使用该同一个驱动22,所以能够在删除容器14的同时删除(卸载)该驱动22。所描述的删除过程以符号的方式借助于各个叉号在图4中示出。

如果有多个不同的容器14在主机10/26上启动,就借助于主机扩展器可选自动地检验容器14与内核模式软件22以元数据32的形式编码的对应关系的兼容性。如果确定不存在不兼容性,那么就能够在主机10/26上依次安装对于运行容器14必要的内核模式软件22,并且能够在主机10/26上运行容器14。

在借助于主机扩展器30自动识别不兼容性的情况下,在此处提出的新方案的特殊实施方式中提出,主机扩展器30自动并且动态地生成和启动具有容器功能的如下虚拟机26(图5),在该虚拟机中本地(在其内核36中)安装有导致测定出不兼容性的内核模式软件22。随后同样借助于主机扩展器30自动地在该虚拟机26中加载(deployed)并且启动导致测定出不兼容性的容器14。这在图5中示意性简化地示出。

根据需求,在自动地确定出不兼容性的情况下,生成并启动另外的虚拟机26。只要出现与在主机10/26的内核36中加载的内核模式软件22的兼容性,那么就直接地、即无需再次封装的虚拟机的情况下安装该内核模式软件以运行另外的容器14。

虚拟机26或另外的虚拟机的通过并且借助于主机扩展器30的自动生成,例如是以另外的数据库42(VN中心)为基础上来实现的,在该数据库中例如提供有不同的虚拟机26的镜像44(Images)。待运行的容器14(图3、图5)同样能够来自于该数据库42或例如来自于独立的容器数据库46,该容器数据库同样相应地包括容器14的镜像48(Image)。具有虚拟机26的镜像44的数据库42和/或具有容器14的至少一个镜像48的容器数据库46能以基本已知的类型和方式利用传统的数据传输方式、即例如通过互联网来访问,从而能够从相应数据库42、46中加载镜像44、48,并且按照需要进行加载以用于实施在此描述的手段。

尽管本发明在细节上通过实施例进行详细阐述和描述,但本发明并不局限于所公开的实例并且其它的变体方案能够在不脱离本发明的保护范围的情况下由本领域技术人员推导出来。

因此,在此提交的说明书的各个重要方面能够简短地总结为:给出一种用于运行自动化系统的方法和根据该方法工作的自动化系统,其中,以在容器14中封装的形式提供在该自动化系统上运行的应用16。根据在此提出的新方案在此提出,在在容器14中封装的应用16需要内核模式软件22的情况下,在该自动化系统上运行的主机扩展器30从具有内核模式软件22的数据库34中加载所需要的内核模式软件22并且将其在自动化系统上进行本地安装。在此,基于由具有相应应用16自身的容器14所包括的元数据32而得出,相应应用16需要哪个内核模式软件22并且将哪个内核模式软件22相应地从数据库34中加载并且进行本地安装。

接下来复述另外的实施方式:

实施方式1:用于运行自动化系统的方法,

其中,以在容器14中封装的形式提供在自动化系统上运行的应用16,并且

其中,在在容器14中封装的应用16需要内核模式软件22的情况下,在自动化系统上运行的主机扩展器30根据由容器14包括的元数据32从具有内核模式软件22的数据库34中加载所需要的内核模式软件22并且将其在自动化系统上进行本地安装。

实施方式2:根据实施方式1所述的方法,

其中,以将内核模式软件集成到自动化系统的操作系统12的内核36中的形式实现内核模式软件22的本地安装。

实施方式3:根据实施方式1或2所述的方法,

其中,主机扩展器30在删除容器14时自动检验,是否还需要与由容器14包括的应用16的运行相关地安装的内核模式软件22,并且在相应的情况下将其删除。

实施方式4:根据实施方式1、2或3所述的方法,

其中,主机扩展器30在有多个容器14的情况下自动检验各个所需要的内核模式软件22的兼容性。

实施方式5:根据实施方式4所述的方法,

其中,在识别出自动化系统上的不兼容性的情况下,主机扩展器30安装虚拟机26,在虚拟机26中加载导致不兼容性的容器14,并且在虚拟机26的内核38中加载由容器14包括的应用16所需要的内核模式软件22。

实施方式6:计算机程序30,具有程序代码件,用于当在自动化系统上运行计算机程序30的时候执行每个任意前述实施方式的全部步骤。

实施方式7:一种自动化系统,具有处理单元和加载了根据实施方式6所述的计算机程序30的存储器,在运行自动化系统时计算机程序为了集成内核模式软件22而被加载到本地内核36中,其中,需要内核模式软件22来运行在容器14中封装的应用16。

另一个实施方案包括用于运行自动化系统的方法,其中,以在容器14中封装的形式提供在自动化系统上运行的应用16,并且其中,优选在自动化系统上运行的主机扩展器30在识别出在自动化系统上的不兼容性的情况下安装虚拟机26,在虚拟机26中加载导致不兼容性的容器14,并且在虚拟机26的内核38中加载由容器14包括的应用16所需要的内核模式软件22。

该设计方案能够附加地与一个或多个实施方式1至4和6至7相关联。

如果例如在内核模式软件之间存在不兼容性,那么就能够由主机扩展器识别该不兼容性。不兼容性能够经由容器的元数据明确地限定:例如驱动器1和驱动器4不能并列。在该情况下主机扩展器能够相应地经由回退机制做出反应。首先,如果当前没有容器实例使用驱动,主机扩展器就可以从主机卸载不兼容的驱动。如果两个容器分别应用相互不兼容的驱动,那么就动态地启动具有容器功能的虚拟机,在该虚拟机中例如在本地安装有相应的不兼容的驱动。随后能够在虚拟机中使用和/或启动该容器。虚拟机镜像的管理例如能够经由提供Images的虚拟机中心实现。

由此,能够实现对迄今为止不支持的应用的封装。迄今为止的优点、例如应用的简单分配、容器的快速启动、高效的资源利用,随着对容器技术的扩展也一并给出。

承担对内核模式软件模型的管理的所描述的组件能够经由相应的回退机制来解决可能的不兼容性。

尤其地,由此能够在设定用于运行容器的主机上实现将内核模式软件集成到本地内核36中。为了该目的能够为容器生成虚拟机。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于建筑服务的固件空中下载(FOTA)更新

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!