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

适用于容器的电子装置及运行中容器系统的软件更新方法与流程

2023-02-19 10:09:46 来源:中国专利 TAG:


1.本发明涉及一种容器(container)技术,尤其是,还涉及一种适用于容器的电子装置及运行中容器系统的软件更新方法。


背景技术:

2.docker、lxc(linux containers)、solaris containers等平台提供操作系统层级的虚拟化(operating-system-level virtualization)技术,并将应用程序所需的程序代码、函式库及环境配置文件打包成容器。无须在主机(host)操作系统(operating system,os)上安装额外的访客(guest)操作系统,即可使用主机资源并在容器上运行特定应用程序。
3.一般而言,若欲新增或更新容器中的软件功能,则需完成以下步骤:先停止容器,更新容器映像档(image),再重启容器。值得注意的是,这容器映像文件包括所有应用程序的相关元件。即便只有更新单一应用程序,仍需要停止所有应用程序并重新执行容器。由此可知,现有更新机制的效率较差。


技术实现要素:

4.本发明是针对一种适用于容器的电子装置及运行中容器系统的软件更新方法,不用停止或重启容器,即可直接更新容器中的软件功能。
5.根据本发明的实施例,运行中容器系统的软件更新方法适用于更新容器系统内的应用程序。软件更新方法包括(但不仅限于)下列步骤:在主机系统安装第一软件功能安装包(install pack)。第一软件功能安装包包括主机系统所用的执行元件及第二软件功能安装包。执行元件提供第一软件功能安装包的安装作业所需的信息。主机系统基于执行元件将第二软件功能安装包供容器系统存取。在容器系统安装第二软件功能安装包,以更新容器系统内的应用程序。
6.根据本发明的实施例,电子装置适用于更新容器系统内的应用程序。电子装置包括存储器及处理器。存储器用以存储程序代码。处理器耦接存储器。处理器经配置用以加载并执行程序代码以在主机系统安装第一软件功能安装包,在主机系统基于执行元件将第二软件功能安装包供容器系统存取,并在容器系统安装第二软件功能安装包,以更新容器系统内的应用程序。第一软件功能安装包包括主机系统所用的执行元件及第二软件功能安装包。执行元件提供第一软件功能安装包的安装作业所需的信息。
7.基于上述,根据本发明实施例的适用于容器的电子装置及运行中容器系统的软件更新方法,在主机系统的软件功能的安装作业中,将对容器中的应用程序的安装包供容器系统存取。而容器系统执行存取的安装包即可更新一个或更多个应用程序,且无须重启容器。借此,可提升容器中的应用程序的更新效率。
processor,dsp)、可程序化控制器、现场可程序化逻辑门阵列(field programmable gate array,fpga)、特殊应用集成电路(application-specific integrated circuit,asic)或其他类似元件或上述元件的组合。在一实施例中,处理器130用以执行电子装置100的所有或部份作业,且可加载并执行存储器110所存储的程序代码、软件模块、档案及数据。
35.以系统架构而言,处理器130运行主机系统hs。主机系统hs可以是windows、mac os、linux或其他操作系统。在主机系统hs安装并运行容器引擎(engine)ce(或称容器管理器)。容器引擎ce可以是docker、lxc(linux containers)、solaris containers或其他容器引擎/管理器。容器引擎ce可利用一个或更多个映像档创造并运行一个或更多个容器c1~cn。n为正整数。容器c1可运行一个或更多个应用程序(或称服务、程序)app1。依此类推,容器cn可运行一个或更多个应用程序appn。为方便说明,下文中,将任一容器c1~cn与容器引擎ce统称为容器系统cs。然而,容器系统cs的功能可能是由容器c1~cn及容器引擎ce中的一个或更多者实现。
36.下文中,将搭配电子装置100中的各项装置、元件及模块说明本发明实施例所述的方法。本方法的各个流程可依照实施情形而调整,且并不仅限于此。
37.图2是根据本发明一实施例的软件更新方法的流程图。请参照图2,在主机系统hs安装第一软件功能安装包(或称软件功能安装包a)(步骤s210)。具体而言,第一软件功能安装包是在主机系统hs执行并用以执行安装作业的档案。即,符合主机系统hs的原生格式(例如,exe、msi)的安装档。执行安装包可启动安装作业。例如,解压档案到存储媒体(例如,存储器110、或其他硬盘)中,并完成诸如修改登录文件(registry)、修改系统设定、创建快捷方式、验证、发出通知等任务。
38.图3是根据本发明一实施例的软件功能安装包的示意图。请参照图3,第一软件功能安装包ipa包括(但不仅限于)执行元件ee及第二软件功能安装包ipb(或称软件功能安装包b)。执行元件ee是供主机系统hs所用,并提供第一软件功能安装包ipa的安装作业所需的信息。例如,执行元件ee包括说明安装作业中的一个或更多个任务(例如,复制档案至指定存储位置、呼叫特定模块等)的执行方式及顺序的描述文件。而与第一软件功能安装包ipa不同处在于,第二软件功能安装包ipb在容器系统cs执行并用以执行安装作业的档案。即,符合容器系统cs的原生格式的安装档。此外,第二软件功能安装包ipb是用于更新容器系统cs中的一个或更多个应用程序的一个或更多个档案或设定。
39.关于安装包的产生,在一实施例中,电子装置100或其他外部运算装置可将容器系统cs执行所需的相关档案,利用容器系统cs的原生格式包装成第二软件功能安装包ipb。此外,电子装置100或其他外部运算装置可主机系统hs执行所需的相关档案(例如,执行元件ee)以及第二软件功能安装包ipb,利用主机系统hs的原生格式包装成第一软件功能安装包ipa。
40.请参照图2,主机系统hs基于执行元件将第二软件功能安装包供容器系cs统存取(步骤s230)。具体而言,执行元件中的安装作业的描述文件所记录的任务可让容器系统cs存取第二软件功能安装包。也就是说,在第一软件功能安装包的安装作业中,主机系统hs让容器系统cs可存取第二软件功能安装包。另值得注意的是,容器系统cs无须停止或重启(例如,容器c1或容器cn运作中),仍可存取第二软件功能安装包。
41.图4是根据本发明一实施例的更新软件的流程图。请参照图4,在一实施例中,容器
c1(以容器c1为例,且可能是其他容器cn)启动时,处理器130可将主机系统hs中的主机目录/文件夹(例如,/host)挂载到容器系统cs中的容器目录(例如,/docker)。因此,主机目录中的档案可供容器系统cs存取。主机系统hs执行第一软件功能安装包ipa之后,主机系统套件管理模块kmh可自第一软件功能安装包ipa取得第二软件功能安装包ipb(步骤s410)。例如,执行元件ee指示第二软件功能安装包ipb解压缩至特定目录。此外,主机系统hs将第二软件功能安装包ipb存储在主机系统hs中的主机目录(步骤s420)。例如,处理器130自安装作业的解压缩所用的暂存文件夹复制第二软件功能安装包ipb至主机目录。借此,容器系统cs可存取容器目录中的第二软件功能安装包ipb。
42.在另一实施例中,容器系统cs可运行文件服务器(例如,文件传输协议(file transfer protocol,ftp)服务器、或网络档案分享系统(common internet file system,cifs)),且执行元件ee指示第二软件功能安装包ipb经由网络上传至例如是容器c1中的文件服务器。
43.在其他实施例中,主机系统hs及容器系统cs分别执行文件传输程序,并利用文件传输程序将第二软件功能安装包ipb传送至容器系统cs。
44.请参照图2,在容器系统cs安装第二软件功能安装包,以更新容器系统cs内的应用程序(步骤s250)。具体而言,请参照图4,主机系统套件管理模块kmh可呼叫主要容器管理模块cmm(步骤s440)。主要容器管理模块cmm负责管理容器c1~cn,运行在主机系统hs,并作为主机系统hs与容器系统cs之间沟通的桥接程序。在一实施例中,主机系统套件管理模块kmh更验证第一软件功能安装包的正确性或完整性,并根据验证结果呼叫主要容器管理模块cmm。
45.受呼叫之后,主要容器管理模块cmm发送通知讯息给从属容器管理模块cms(步骤s450)。这通知讯息是用于通知容器系统cs执行第二软件功能安装包ipb的安装作业。即,容器系统cs可根据来自主机系统hs的通知讯息启动第二软件安装包ipb的安装作业。另一方面,与主要容器管理模块cmm不同处在于,从属容器管理模块cms运行在容器系统cs。
46.在一实施例中,主要容器管理模块cmm可验证呼叫者的身分信息。例如,主要容器管理模块cmm确认呼叫者的程序识别号是否已在白名单中。若呼叫者已在白名单中,则表示这呼叫者是正确的主要容器管理模块cmm。须说明的是,身分信息还可能是用以识别呼叫者的其他编码或符号,且本发明实施例不加以限制。此外,主要容器管理模块cmm可根据身份信息的验证结果通知容器系统cs(例如,传送通知讯息),以启动第二软件安装包ipb的安装作业。若身分信息的验证结果为失败,则禁能/不启动第二软件安装包ipb的安装作业。例如,不传送通知讯息给容器系统cs。若身分信息的验证结果为成功,则启动第二软件安装包ipb的安装作业。例如,传送通知讯息给容器系统cs。
47.在一实施例中,为了提升信息安全保护,主要容器管理模块cmm与从属容器管理模块cms之间传送的数据需进行加密及解密。例如,主要容器管理模块cmm可加密通知讯息,且从属容器管理模块cms解密来自主机系统hs的通知讯息。若从属容器管理模块cms无法解密通知讯息,则通知讯息可能遭到窜改并据以中断安装作业。
48.针对密钥加密,在一实施例中,相似于超文本传输安全协议(hypertext transfer protocol secure,https)所采用的加密机制,主要容器管理模块cmm建立一组主要公钥及对应的主要私人密钥。受主要私人密钥加密的数据或讯息可通过主要公钥成功解密。此外,
从属容器管理模块cms建立一组从属公钥及对应的从属私人密钥。受从属私人密钥加密的数据或讯息可通过从属公钥成功解密。
49.在传送通知讯息或建立其他数据传输之前,主机系统hs的主要容器管理模块cmm与容器系统cs的从属容器管理模块cms彼此交换公钥的副本。也就是说,主要容器管理模块cmm传送主要公钥的副本给从属容器管理模块cms,且从属容器管理模块cms传送从属公钥的副本给主要容器管理模块cmm。
50.接着,可验证所交换的公钥,以确认是否执行后续数据传输。主要容器管理模块cmm可使用主要私人密钥加密确认讯息,并传送经加密的确认讯息给从属容器管理模块cms。即,确认讯息受主要私人密钥加密。从属容器管理模块cms可使用主要公钥解密来自主要容器管理模块cmm的确认讯息,并根据主要公钥的解密结果响应来自主要容器管理模块cmm的确认讯息。若解密结果是对确认讯息的解密失败,则从属容器管理模块cms禁能/不回应这确认讯息,并据以禁能后续的数据传输(例如,传送通知讯息)。例如,回绝后续的数据传输。而若解密结果是对确认讯息的解密成功,则从属容器管理模块cms可传送响应于确认讯息的响应消息给主要容器管理模块cmm。值得注意的是,从属容器管理模块cms使用从属私人密钥加密这响应消息。即,响应消息受从属私人密钥加密。
51.主要容器管理模块cmm可使用从属公钥解密来自从属容器管理模块cms的响应消息,并根据从属公钥的解密结果启用通知讯息的传送或其他后续数据传输。若解密结果是对响应消息的解密失败,则主要容器管理模块cmm禁能后续的数据传输(例如,传送确认讯息),且更禁能/不启动第二软件安装包ipb的安装作业。例如,删除或锁定第二软件安装包ipb。而若解密结果是对响应消息的解密成功,则主要容器管理模块cmm可启用与从属容器管理模块cms的后续数据传输(例如,传送通知讯息)。
52.针对后续通知讯息及其他数据传输的加密机制,在一实施例中,主要容器管理模块cmm随机或根据特定演算机制产生一组密钥。主要容器管理模块cmm可在前述确认讯息中夹带这密钥。即,确认讯息包括密钥。或者,主要容器管理模块cmm可在验证对方的公钥后,传送经主要私人密钥加密的密钥给从属容器管理模块cms。接着,基于对称式加密机制,主要容器管理模块cmm可使用密钥加密通知讯息或其他数据,且从属容器管理模块cms可使用密钥解密来自主要容器管理模块cmm的通知讯息或其他数据。若对通知讯息的解密失败,则从属容器管理模块cms禁能/不启动第二软件安装包ipb的安装作业。例如,删除或锁定第二软件安装包ipb。而若对通知讯息的解密成功,则从属容器管理模块cms可启用第二软件安装包ipb的安装作业。
53.须说明的是,在一些实施例中,可使用其他固定密钥并基于对称式加密机制加密主要私人密钥及/或从属私人密钥。若需要使用私人密钥,则需要先解密成功。此外,加密方法还可以是数字签名、特定编码或其他加密机制,且本发明实施例不加以限制。借此,可防止他人窜改数据或冒用管理模块。
54.从属容器管理模块cms呼叫在容器系统cs中运行的容器系统套件管理模块kmc(步骤s460),以执行容器系统cs上的安装作业(步骤s430)。例如,执行第二软件安装包ipb可复制档案到特定存储位置,并完成诸如发出指令、修改设定、发出通知等任务。也就是说,更新应用程序是通过容器系统cs中的套件管理服务实现。
55.须说明的是,在安装作业的过程中,第二软件安装包ipb所欲更新的应用程序可能
会停止。然而,容器或容器上的其他应用程序仍可继续运作。
56.在一实施例中,容器系统套件管理模块kmc还验证第二软件安装包ipb。例如,验证第二软件功能安装包ipb的正确性或完整性。容器系统套件管理模块kmc根据第二软件功能安装包ipb的验证结果启动第二软件安装包ipb的安装作业。例如,安装包的验证结果为失败,则中断安装作业或删除容器系统cs内的第二软件功能安装包ipb。
57.在一实施例中,从属容器管理模块cms可将第二软件安装包ipb的安装结果回报给主要容器管理模块cmm。例如,安装成功或失败的讯息。
58.须说明的是,在一些实施例中,可省略主要容器管理模块cmm及从属容器管理模块cms。此外,主机系统hs可通过其他方式通知容器系统cs执行第二软件功能安装包ipb的安装作业。
59.综上所述,在本发明实施例的适用于容器的电子装置及运行中容器系统的软件更新方法中,通过主机系统上的安装作业将容器系统可执行的安装包供容器系统存取,使另一个安装作业可在容器系统执行并更新应用程序。借此,可在容器运行的情况下,仅更新特定应用程序,从而提升安装效率。此外,本发明实施例为主机系统及容器系统之间提供加密通讯,以提升信息安全保护。
60.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献