外围装置通信的制作方法

文档序号:37500173发布日期:2024-04-01 14:07阅读:13来源:国知局
外围装置通信的制作方法

本发明涉及一种用于提供软件容器元件的方法和计算装置,所述软件容器元件被配置成能访问与特定类相关联的预定外围装置集中的每个外围装置,而不管在稍后执行或连接所述容器元件时是否连接预定外围装置。具体地但不限于,本发明涉及一种方法,其中装置插件软件容器将其资源通告为可连接到自助服务终端或销售点终端的一类外围装置。该类与预定义外围装置集相关联。然后,通过将指示该类的每个外围装置的装置路径的外围装置连接数据与软件容器相关联,可以在能访问该类中的所有外围装置的终端上提供所述软件容器。


背景技术:

1、众所周知,自助服务终端(sst)和/或销售点(pos)终端不时地在零售行业中使用。sst终端和pos终端通常用于使客户能与零售机构进行交易。任何零售机构中的每个sst或pos终端都可以连接到不同的外围装置。每个sst或pos终端还可以执行不同的软件,例如具有不同的底层操作系统(linux、windows等)和不同的软件应用程序。这通常取决于使用sst或pos终端的零售机构,以及零售机构中sst或pos终端的预期用途。不时地,sst或pos终端上执行的软件也可能被升级,或者连接的外围装置可能会改变。

2、由于终端与终端之间经常存在差异,软件开发人员已经开始使用包含需要在sst或pos终端上执行的软件的软件容器。软件容器隔离运行中的软件,由此帮助避免复杂的平台依赖关系。也就是说,所述软件容器能独立于终端的计算环境在所述终端的一个或多个处理器上执行。这是因为软件容器包含其需要在任何计算环境中可执行的所有软件(应用程序代码以及任何软件依赖项)。此外,当这些容器在它们自己的独立计算环境中运行时(除了与软件容器之外的其它软件/硬件(例如,访问特定文件、特定端口)的某些预定义通信路径之外),这也使它们特别安全。因此,软件容器是打包和分发用于sst终端和pos终端的软件的有效方式。当在终端上执行软件或硬件升级时,可以在考虑这些升级的终端上执行新的软件容器。此外,由于可以预先构建容器,这可以帮助避免每个终端上的复杂建构。需要注意的是,软件容器与虚拟机不同,因为它们不需要在计算装置上安装管理程序。软件容器通常也比虚拟机更轻便,且运行速度更快。此外,虽然虚拟机使整个计算机系统虚拟化,但软件容器使操作系统虚拟化。软件容器还共享单个操作系统,但每个虚拟机具有其自身的操作系统。

3、当部署软件容器时,利用容器引擎(例如,docker、rkt、cri-o和lxd等)。容器引擎可以接受来自容器编排器(例如kubernetes、swarm、mesos等)的api服务器的用户请求或请求,从注册表拉取图像文件(呈特定图像格式),准备容器安装点,准备执行软件容器所需的元数据,并且调用容器运行时。容器运行时是容器引擎的一部分。容器运行时(例如,runc、containerd、crun、railcar、katacontainers等)使用由容器引擎提供的安装点和元数据,并与在计算装置上运行的(主机os的)内核通信,以执行容器图像文件,并且从而创建软件容器。

4、当在多个计算装置上实施多个容器时,通常会使用软件容器编排器平台。这些平台能跨多个计算装置(例如,sst或pos终端)调度容器工作负荷,并且还能提供标准化的应用程序定义文件(例如,kube yaml、docker compose等)。kubernetes是容器编排平台的示例。

5、kubernetes容器编排平台是单元集群,包含名为kubernetes主节点的管理集群的控制单元和运行工作负荷(容器)的至少一个节点(或工作节点)。kubernetes编排器平台的一部分是kubelet。kubelet是在作为kubernetes系统的一部分的每个工作节点上运行的代理。在操作期间,kubelet(从kubernetes主节点上的api服务器)接收命令,所述命令通知kubelet应在计算装置上运行何种容器。在kubernetes中,这些容器设置在‘豆荚(pod)’内。通常,单个豆荚包含单个容器,但也可以在豆荚内包含多个容器。kubelet将关于在计算装置上应运行何种容器的信息传递到容器引擎(例如,经由容器运行时接口(cri)),以便经由容器引擎内的容器运行时执行软件容器。

6、当容器运行时执行可执行容器图像文件时,创建软件容器。因此,软件容器基本上是相关联的可执行容器图像文件的运行时实例。在这个意义上,可执行容器图像文件是具有至少作为软件容器元件可执行所需的所有软件的图像文件。更详细地,容器图像文件通常是二进制文件,所述二进制文件除了包含描述软件容器的需求和能力的任何元数据之外,还包含用于运行软件容器的所有必要要求。容器图像文件本身由若干层组成,这些层定义运行软件容器所需的可执行指令。例如,容器图像文件可以包含定义软件应用程序可执行代码的若干层、定义软件应用程序所依赖的任何软件依赖项的代码的若干层,以及定义用于任何所需配置设置的代码的若干层。容器图像文件通常存储在容器图像注册表中。每个容器图像文件以特定容器图像格式存储,所述特定容器图像格式定义容器图像文件内的层和元数据。例如,开源容器倡议(oci)图像格式将图像文件定义为每个层的tar文件和呈json格式的清单文件,所述清单文件指定与图像文件相关联的元数据。

7、当在sst和pos终端上部署软件容器时,希望在容器内运行装置驱动程序/处理软件,因为这意味着装置驱动程序及其相关软件的分发、管理和维护方式可与容器内所有其它软件相同。然而,这种方法通常要求容器具有特权,这意味着容器具有底层主机计算装置的大部分或全部根功能,因此允许访问在非特权容器中不可用的资源。因此,为软件容器提供特权访问是一种安全风险,并且违反了部署最佳实践。考虑到sst和pos终端需要具有稳定的安全性,这一点在零售业尤为重要。

8、为了避免特权操作,当前技术通常要求容器确切地知道其需要提前访问的装置集。也就是说,当执行容器时,为容器提供只指示其在操作期间将需要访问的外围装置的数据。为了使此方法成功,应注意,在首次执行容器时还需要存在那些装置。如果装置不存在(例如,装置未插入),则容器将无法在装置可用时(例如,一旦装置插入)与这些装置通信。应理解,此方法因此阻碍了装置即插即用或拔下重新插入的情况。


技术实现思路

1、本发明旨在至少部分地缓解一个或多个上文提及的问题。

2、本发明的某些实施例旨在有助于提供可与可连接到sst或pos终端的任何预定义外围装置通信的软件容器,而不必事先指定将实际连接哪些装置。

3、本发明的某些实施例旨在有助于避免需要提供符合不同终端上不同硬件设置(例如,不同外围装置)的自定义容器规格(例如,kubernetes豆荚规格)。

4、本发明的某些实施例旨在有助于提供无需适应终端上不同硬件设置或执行软件容器时特定装置的存在或不存在的容器规格。

5、本发明的某些实施例旨在有助于提供执行软件容器的sst或pos终端,所述软件容器可与在软件容器初始执行后插入或在软件容器初始执行后拔下并重新插入的外围装置通信。

6、本发明的某些实施例旨在有助于维持软件容器与外围装置之间的通信,即使固件更新导致装置被检测到暂时消失,然后再次出现。

7、本发明的某些实施例旨在有助于提供包含装置驱动程序软件的软件容器,其中容器不需要特权访问,并且可以在不损害安全性的情况下进行分布和管理。

8、本发明的某些实施例旨在有助于提供具有热插拔功能的软件容器,其中在容器启动时无需装置存在,并且如果稍后添加或删除装置,则系统会进行适配。

9、根据本发明的第一方面,提供一种用于提供与外围装置连接数据相关联的软件容器元件的计算机实施的方法,所述外围装置连接数据使所述软件容器元件能够访问多个预定外围装置中的每个外围装置并与其通信,所述方法包括以下步骤:从包括可在计算装置的一个或多个处理器上执行的第一可执行软件的模块接收指示可连接到所述计算装置的至少一类外围装置的第一数据,其中每一类与多个预定外围装置相关联;以及提供包含可在所述计算装置的所述一个或多个处理器上执行的第二可执行软件的软件容器元件,其中所述软件容器元件与外围装置连接数据相关联,所述外围装置连接数据使所述软件容器元件能够访问与每一类相关联的所述多个预定外围装置中的每个外围装置并与其通信。

10、适当地,所述方法进一步包括:接收所述第一数据作为指示可连接到所述计算装置的单一类外围装置的数据,其中所述单一类与可连接到自助服务终端或销售点终端的多个预定外围装置相关联。

11、适当地,所述方法进一步包括:响应于新外围装置连接到所述计算装置或外围装置被断开并重新连接到所述计算装置,由所述软件容器元件确定所述新外围装置或重新连接的外围装置连接到所述计算装置。

12、适当地,所述方法进一步包括:将指示与每一类相关联的所述多个预定外围装置的第二数据存储在所述计算装置可访问的存储器中。

13、适当地,所述方法进一步包括:在接收所述第一数据之前,向所述模块发送查询,查询哪些外围装置连接到所述计算装置。

14、适当地,所述方法进一步包括:在负责管理所述计算装置上的软件容器元件的软件应用程序处接收所述第一数据。

15、适当地,所述方法进一步包括:将所述模块提供为被配置成与连接的外围装置通信的模块。

16、适当地,所述方法进一步包括:将所述模块提供为包含所述第一可执行软件的软件容器元件,其中任选地,所述模块是装置插件模块。

17、适当地,所述方法进一步包括:响应于接收到所述第一数据,向所述模块发送至少一个命令,命令所述模块准备与每一类相关联的所述多个预定外围装置中的每一个以用于分配到所述软件容器元件。

18、适当地,所述方法进一步包括:从所述模块接收指示与每一类相关联的所述多个预定外围装置中的每一个的至少相应外围装置路径的第三数据。

19、适当地,所述方法进一步包括:将所述外围装置连接数据提供为表示与每一类相关联的所述多个预定外围装置中的每一个的至少相应外围装置路径的数据。

20、适当地,所述方法进一步包括:将所述外围装置连接数据存储在与所述软件容器元件相关联的控制组中。

21、适当地,所述方法进一步包括:在执行所述第二可执行指令时,由所述软件容器元件确定与每一类相关联的所述多个预定外围装置中的哪些外围装置连接到所述计算装置。

22、适当地,所述方法进一步包括:响应于确定,由所述软件容器元件初始化连接到所述计算装置的每个外围装置。

23、适当地,所述方法进一步包括:响应于初始化,由所述软件容器元件向所述连接的外围装置中的至少一个发送一个或多个命令。

24、适当地,所述方法进一步包括:将所述第一可执行软件和所述第二可执行软件提供为可独立于计算环境执行的软件。

25、适当地,所述方法进一步包括:分别经由所述模块和所述软件容器元件,在隔离计算环境中执行所述第一可执行软件和所述第二可执行软件。

26、根据本发明的第二方面,提供一种计算装置,其包括一个或多个处理器,所述一个或多个处理器被配置成执行负责管理所述计算装置上的软件容器元件的软件应用程序,其中所述软件应用程序在被执行时被配置成:从包括可在计算装置的一个或多个处理器上执行的第一可执行软件的模块接收指示可连接到所述计算装置的至少一类外围装置的第一数据,其中每一类与多个预定外围装置相关联;以及提供包含可在所述计算装置的所述一个或多个处理器上执行的第二可执行软件的软件容器元件,其中所述软件容器元件与外围装置连接数据相关联,所述外围装置连接数据使所述软件容器元件能够访问与每一类相关联的所述多个预定外围装置中的每个外围装置并与其通信。

27、适当地,所述计算装置是销售点终端或自助服务终端。

28、根据本发明的第三方面,提供一种计算机程序,其包括指令,所述指令在由计算装置执行时使所述计算装置执行根据本发明的第一方面所定义的方法的步骤。

29、本发明的某些实施例有助于提供用于向软件容器元件提供外围装置连接数据的方法,所述外围装置连接数据使软件容器元件能够与可能连接到终端的预定义外围装置集中的任一外围装置进行通信。

30、本发明的某些实施例有助于提供通告可连接到sst或pos终端的一类外围装置的装置插件容器,所述终端执行能访问这一类中所有装置的软件容器。

31、本发明的某些实施例旨在有助于提供软件容器,所述软件容器包含表示允许其访问的一系列虚拟装置节点的数据。为特定类外围装置中的所有当前和未来装置创建虚拟装置节点。连接的外围装置可在所述虚拟装置节点中的一个装置节点处访问,并且软件容器负责确定哪个节点正在使用以及哪个装置被连接。

32、本发明的某些实施例旨在有助于提供一种计算装置,所述计算装置执行软件容器并且具有即插即用和拔下重新插入的功能。

33、本发明的某些实施例旨在有助于提供软件容器,所述软件容器被配置成能访问与零售装置类相关联的所有外围装置。

34、本发明的某些实施例旨在有助于为容器引擎提供其执行软件容器所需的必要数据,所述软件容器被配置成能访问外围装置连接或可能连接的一系列装置路径。

35、本发明的某些实施例旨在有助于提供能访问抽象外围装置集的软件容器。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1