CN109155782B - 容器之间的进程间通信 - Google Patents
容器之间的进程间通信 Download PDFInfo
- Publication number
- CN109155782B CN109155782B CN201780030869.2A CN201780030869A CN109155782B CN 109155782 B CN109155782 B CN 109155782B CN 201780030869 A CN201780030869 A CN 201780030869A CN 109155782 B CN109155782 B CN 109155782B
- Authority
- CN
- China
- Prior art keywords
- container
- request process
- device file
- containers
- target
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Abstract
本公开提供处理不在同一容器中运行的两个进程之间的通信的系统、方法和计算机可读介质。接收来自在第一容器中运行的请求进程的与第一容器外的一个或多个目标进程通信的请求,并创建第一容器可访问的设备文件。然后通过创建的设备文件,将容器间通信从请求进程路由到目标进程。
Description
交叉申请
本申请案要求于2016年5月27日提交的、发明名称为“容器之间的进程间通信(Inter-Process Communication Between Containers)”的美国专利申请案第15/167,566号的优先权,其全部内容以引用的方式并入本文中。
技术领域
本公开大体上涉及容器,更具体地说,涉及处理容器之间的进程间通信的技术。
背景技术
操作系统层虚拟化方法是一种在“主机”计算系统上运行独立的用户空间实例的方法,用户空间实例有时称为容器。特定主机计算系统可以在任何指定时间运行多个容器。每个容器分配有相应数量的计算资源,包含处理器周期和内存等,以模仿运行特定操作系统并用于执行特定软件集合的特定硬件集合。
容器可以运行任何合适数量的进程,包含计算机程序、脚本和业务。在使用期间,主机计算系统对容器的用户透明。在某些实例中,请求进程可能希望与目标进程通信。如果两个进程在同一容器中,该容器运行的操作系统可以用任何合适的传统方式处理通信。但是,如果请求进程和目标进程在不同容器中,必须主机计算系统处理通信。虽然主机计算系统可以使用某些现有技术,如使用套接字和管道,但是由于容器内通信和容器间通信组合,这些技术存在很大的安全漏洞。
因此,需要一种提高安全性的处理容器间通信的方法。
发明内容
本公开提供处理不在同一容器中运行的两个进程之间的通信的系统、方法和计算机可读介质。接收来自在第一容器中运行的请求进程的与所述第一容器外的一个或多个目标进程通信的请求,并创建所述第一容器可访问的设备文件。然后通过创建的设备文件,将容器间通信从所述请求进程路由到所述目标进程。
根据广义方面,提供一种进程间通信的方法,包括:接收来自在第一容器中运行的请求进程的与所述第一容器外的至少一个目标进程通信的请求,且所述请求进程使用第一设备文件;创建所述第一容器可访问的第二设备文件;以及通过所述第二设备文件将通信从所述请求进程路由到所述容器外的所述至少一个目标进程。
在前述实施例的任一项中,所述方法还包括:修改与所述第二设备文件相关联的访问控制数据库的入口。
在前述实施例的任一项中,所述方法还包括:将至少一个安全策略与所述第二设备文件关联。
在前述实施例的任一项中,所述至少一个目标进程可访问所述第二设备文件。
在前述实施例的任一项中,所述至少一个目标进程在根容器和主操作系统中的一个中运行。
在前述实施例的任一项中,所述第一容器外的所述至少一个目标进程包括多个目标过程,且路由包括通过所述第二设备文件将通信路由到所述多个目标进程。
在前述实施例的任一项中,所述多个目标进程在第二容器中运行。
在前述实施例的任一项中,所述多个目标进程中至少第一目标进程在第二容器中运行,且所述多个目标进程中至少第二目标进程在第三容器中运行。
在前述实施例的任一项中,所述第一容器是属于一容器族的多个容器中的一个,且属于所述容器族的所述多个容器可访问所述第二设备文件。
在前述实施例的任一项中,所述方法还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
根据另一广义方面,提供一种进程间通信的系统。所述系统包括处理单元和非瞬时性存储器,所述非瞬时性存储器通信耦合至所述处理单元并包括计算机可读程序指令。所述程序指令可由所述处理单元执行用于:接收来自在第一容器中运行的请求进程的请求,其请求与所述第一容器外的至少一个目标进程通信,且所述请求进程使用第一设备文件;创建所述第一容器可访问的第二设备文件;以及通过所述第二设备文件将通信从所述请求进程路由到所述容器外的所述至少一个目标进程。
在前述实施例的任一项中,所述程序指令还可执行用于:修改与所述第二设备文件相关联的访问控制数据库的入口。
在前述实施例的任一项中,所述程序指令还可执行用于:将至少一个安全策略与所述第二设备文件关联。
在前述实施例的任一项中,所述至少一个目标进程可访问所述第二设备文件。
在前述实施例的任一项中,所述至少一个目标进程在根容器和主操作系统中的一个中运行。
在前述实施例的任一项中,所述第一容器外的所述至少一个目标进程包括多个目标过程,且路由包括通过所述第二设备文件将通信路由到所述多个目标进程。
在前述实施例的任一项中,所述多个目标进程在第二容器中运行。
在前述实施例的任一项中,所述多个目标进程中至少第一目标进程在第二容器中运行,且所述多个目标进程中至少第二目标进程在第三容器中运行。
在前述实施例的任一项中,所述第一容器是属于一容器族的多个容器中的一个,且属于所述容器族的所述多个容器可访问所述第二设备文件。
在前述实施例的任一项中,所述程序指令还可执行用于:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
本文中所描述的系统、设备和方法的特征可以各种组合使用,还可以各种组合用于所述系统和计算机可读存储介质。
附图说明
本文所述实施例的其它特征和优势可以通过以下结合附图的详细描述变得显而易见,其中:
图1是实例容器管理系统的框图。
图2是实施图1系统的实例计算系统的框图。
图3是根据一实施例确定进程间通信的路由路径的方法的流程图。
图4是根据一实施例的路由进程间通信的方法的流程图。
图5A-5C、图6A-6B、图7A-7B和图8是执行图4方法之后的图1实例容器管理系统的框图。
应注意,在整个附图中,相同的特征通过相同的附图标记来标识。
具体实施方式
进程间通信(inter-process communication)或IPC是指不同进程之间的消息交互。在容器场景中,不同容器中的进程可以交互IPC。但是,使用与在一个容器内交互IPC所用的资源接口相同的资源接口来跨容器交互IPC可能带来安全漏洞。因此,本公开提出在跨容器交互IPC时使用单独的资源接口。
参考图1,实例容器管理系统50包含实施根容器10的操作系统核心20。根容器10用于运行使用设备文件14的至少一个进程12,例如主进程。根容器10还用于例如通过主进程12实例化并运行附加容器,包含第一容器100和第二容器120。在一些实施例中,主进程12是在操作系统核心20上运行的主机操作系统。在其它实施例中,主机操作系统在根容器10外的操作系统核心20上运行,并且主进程12独立于主机操作系统管理容器。第一容器100用于运行使用设备文件104的进程102和使用设备文件108的进程106。第二容器120用于运行使用设备文件124的进程122。一般来说,第一容器100和第二容器120分别用于运行至少一个进程102、106和122。
参考图2,容器管理系统50可以在任何合适的计算设备200上实施,包含大型主机、服务器、桌上型计算机、膝上型计算机、超便携计算机、平板电脑、平板手机、智能手机、个人数字助理等任何其它合适的移动设备。实施容器管理系统50的计算设备具有适于运行包含操作系统核心20、容器管理系统50和一个或多个容器等多种程序的硬件。计算设备200的硬件包含一个或多个处理器220以及存储由处理器220执行的多个应用2301-230N的一个或多个存储器210,并且可以包含一个或多个设备和/或外围设备(未示出)。应用2301-230N中的一个或多个用于实施容器管理系统50。
继续参考图1,在一些实施例中,容器管理系统50在操作系统核心20层实施。在一些实施例中,容器管理系统50在智能手机、功能型手机、平板手机、平板电脑、可穿戴设备以及其它运行移动操作系统的移动电子设备上实施。例如,容器管理系统50实施为AndroidTM移动操作系统的一部分,并使用Binder IPC框架。
操作系统核心20可以为适于作为容器的硬件和容器上运行的应用之间接口的任何核心程序,这些应用包含根容器10、主机操作系统以及第一容器100和第二容器120。操作系统核心20用于基于多种因素向容器10、100和120分配计算资源,多种因素包含容器10、100和120的资源可用性和资源需求。操作系统核心20还用于接收IPC以及将IPC从一个进程路由到另一个进程,下文将论述其中一些方面。或者,主进程12用于向容器100和120分配计算资源,以及用于接收和路由IPC。
进程12、102、106和122可以为用于包含计算机程序、脚本以及业务等任何类型的软件应用的进程。每个进程12、102、106和122在运行期间使用各自的设备文件14、104、108和124。设备文件提供接口,用于进程访问分配给该进程正在其中执行的容器的计算资源。在一些情况下,多个进程共享公共的设备文件,例如当多个进程正使用类似或相同的计算资源集合时。在其它情况下,每个进程分配有不与任何目标进程共享的各自的设备文件。在一些实施例中,设备文件14、104、108和124是基于硬件的设备文件。在其它实施例中,设备文件14、104、108和124是虚拟设备文件。不管是基于硬件的还是虚拟的设备文件14、104、108和124,对进程12、102、106和122呈现相同,因此进程12、102、106和122无法区别基于硬件的设备文件和虚拟设备文件。
根容器10或主机操作系统充当父容器,容器100和120等子容器在父容器中实例化并运行。在一些实施例中,根容器10用于运行进程,例如主进程12。在其它实施例中,根容器10不运行进程。根容器10或主机操作系统用于:接收例如来自操作系统核心20的指令,实例化附加容器,向容器分配和重新分配计算资源,以及暂停、恢复或去除容器。在一些实施例中,作为容器管理系统50在其上实施的设备初始化或启动进程的一部分,实例化容器和分配资源。因此容器100和120分配有对应的计算机资源,并用于执行进程,例如使用设备文件104、108和124的进程102、106和122。在一些实施例中,指定进程使用一个以上设备文件。
任何指定进程,例如进程102,可以在某些时候或基于某些情况输出IPC请求,以与指定目标进程通信,例如进程106或进程122。该请求可以使用任何合适的协议以任何合适的格式提供。在一些实施例中,IPC请求从请求进程102发送至请求进程102在其中运行的容器100的控制器(未示出)。在其它实施例中,IPC请求通过设备文件104发送至操作系统核心20,或发送至其通信仲裁器(未示出)。在另外的实施例中,IPC请求从请求进程102发送至根容器10,或发送至主机操作系统。参考图3,请求的接收方实施确定如何处理IPC的方法300。在步骤302,从请求进程102接收IPC请求。可以由进程102在其中运行的容器100、操作系统核心20或容器管理系统50的任何其它合适的元素接收请求。
在步骤304,请求的接收方确定目标进程是否处于与请求进程相同的容器中。为了确定目标进程,接收方可以检测请求来比较例如该请求起源的容器的标识符与目的地进程的容器的标识符。如果标识符匹配,接收方确定目标进程处于与请求进程相同的容器中,该方法执行步骤306。如果标识符不匹配,接收方确定目标进程处于请求进程不同的容器中,该方法执行步骤308。也可以用其它方式确定目标进程是否处于与请求进程相同的容器中。
当该方法执行步骤306时,例如如果目标进程是进程106,则使用设备文件104将IPC从请求进程102路由到目标进程106。因为请求进程102和目标进程106在相同容器100中,该通信称为容器内IPC。
当该方法执行步骤308时,例如如果目标进程是进程122,则使用单独的设备文件将IPC从请求进程102路由到目标进程122。因为请求进程102和目标进程122在不同容器100和120中,该通信称为容器间IPC。
参考图4,图4示出实施容器间IPC的方法400。在步骤402,从在第一容器中运行的请求进程接收请求,其请求与第一容器外的至少一个目标进程通信,例如在容器120中运行的进程122。请求进程,例如进程102,使用第一设备文件104并发送IPC请求。请求可以用任何合适的格式提供,且可以包含用于路由IPC的任何合适的信息。例如,请求含有请求进程102的标识符、设备文件104和/或请求起源的容器100、目标进程122的标识符、目标进程122使用的设备文件124以及目标进程122在其中运行的容器120等。在一些实施例中,请求也含有待从请求进程102路由到目标进程122的消息或通信。
在步骤404,创建第一容器可访问的第二设备文件。参考图5A,图5A示出步骤404完成之后的容器管理系统50,其中已经创建第二设备文件114。在一些实施例中,第二设备文件114类似于第一设备文件104。第一容器100可访问第二设备文件114。在一些实施例中,匹配请求进程112在第一容器100中执行,且匹配请求进程112使用第二设备文件114。匹配请求进程112可以类似于请求进程102,或者也可以呈任何合适的方式不同于请求进程102。因此,在一些实施例中,匹配请求进程112和第二设备文件114充当请求进程102和第一设备文件104的复本。参考图5B,在其它实施例中,请求进程102使用第二设备文件114,且不创建匹配请求进程112。
使用合适的设备文件创建方法创建第二设备文件114。在一些实施例中,容器100或其控制器(未绘示)创建第二设备文件114。在其它实施例中,根容器10、主机操作系统或操作系统核心20创建第二设备文件114。在另外的实施例中,由另一个合适的实体创建第二设备文件114。在一些实施例中,响应于步骤402中接收到请求来创建第二设备文件114。在其它实施例中,一旦容器100实例化就创建第二设备文件114,或者响应于另一个合适的事件或触发来创建第二设备文件114。因此,在一些实施例中,在容器100中运行的任何进程之前,例如在进程102之前创建第一设备文件104和第二设备文件114。
在一些实施例中,一个或多个安全措施控管IPC传输,可选地,方法400包括将至少一个安全策略与第二设备文件关联的步骤406。例如,操作系统核心20可以具有限制IPC的访问控制数据库和/或一个或多个安全策略。因此,可以修改与第二设备文件114相关联的访问控制数据库的入口,向操作系统核心20指示允许第二设备文件114发送容器间IPC。或者,将安全策略与第二设备文件关联,向操作系统核心20指示允许第二设备文件114发送容器间IPC。在一些实施例中,安全措施是强制的并且应用于每个进程;在其它实施例中,安全措施是自行决定的。例如,访问控制数据库已存储待应用安全措施的应用列表,且安全措施应用于列表中出现的应用。例如,可以基于请求进程102的进程ID或其它标识符应用安全措施。
在步骤408,通过第二设备文件114将IPC从请求进程102路由到目标进程122。根容器10、主机操作系统和/或操作系统核心20、或容器管理系统50的任何其它元素可以处理路由。参考图5C,在一些实施例中,目标进程122使用的设备文件124不用于容器间IPC。因此,第二设备文件114可用于由目标进程122使用,用于将IPC从请求进程102路由到目标进程122。
在一些实施例中,IPC请求指示请求进程102请求与第一容器100外的多个目标进程通信。在本实施例中,在步骤408,通过第二设备文件114将IPC路由到第一容器100外的多个目标进程中的每一个。参考图6A-6B,如果第一容器外的目标进程是多个目标进程122和126,如图6A所示,第二设备文件114可用于由多个目标进程122和126使用,如图6B所示。
在步骤404创建的第二设备文件114独立于第一设备文件104,并用于路由容器间IPC。因此,请求进程102的IPC路由是分离的:通过第一设备文件104路由容器内IPC,通过第二设备文件114路由容器间IPC。
参考图7A,在一些实施例中,第一容器外的至少一个目标进程包含使用设备文件124的第二容器120中的进程122和使用设备文件144的第三容器140中的进程142。在本实施例中,如图7B所示,第二设备文件114用于由容器120中的目标进程122和容器140中的目标进程142使用。在步骤408,通过第二设备文件114将IPC路由到第二容器120以及第三容器140。
参考图8,在一些实施例中,第一容器100属于一个或多个附加容器所属的容器族。例如容器100和120属于共同族,但是容器140不属于。在一些此类实施例中,根据目标进程使用不同的设备文件用于容器间IPC。例如,进程102可以使用设备文件114用于一般的容器间IPC,设备文件116可以用于在属于与容器100相同族的容器中运行的进程的容器间IPC。因此,进程102可以根据目标进程在其中运行的容器使用多个设备文件中的一个用于容器间IPC。例如,如果进程102输出与在属于与容器100相同族的容器中运行的进程之间的IPC请求,则通过设备文件116路由IPC。任何数量的容器可以属于指定容器族,根容器10和/或主机操作系统可用于向特定容器族分配指定容器。
本文所描述的容器管理系统50和/或方法400可以实施于高级程序设计或面向对象的程序设计或脚本语言,或其组合中,与例如计算设备200的计算机系统进行通信或帮助其操作。或者,容器管理系统50和/或方法400可以实施于汇编语言或机器语言中。语言可为编译型语言或解释型语言。实施容器管理系统50和/或方法400的程序代码可以存储于存储介质或设备上,例如ROM、磁盘、光碟、闪存盘或任何其它合适的存储介质或设备。当计算机读取存储介质或设备来执行本文中所描述的程序时,通用或专用可编程计算机可读取程序代码用于配置和运行该计算机。容器管理系统50和/或方法400的实施例也可以考虑通过存储有计算机程序的非瞬时性计算机可读存储介质实施。计算机程序可以包括计算机可读指令,该计算机可读指令使得计算机,或更具体地说,使得计算机的至少一个处理单元以特定和预定义方式运行,从而执行本文中所描述的功能。
计算机可执行指令可以采用多种形式,包含由一个或多个计算机或其它设备执行的程序模块。一般而言,程序模块包含执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常,在各种实施例中,可以按需要组合或分布程序模块的功能性。
本文所揭示的容器管理系统50的各种方面可以单独使用、组合使用或以前文所述实施例中未具体描述的各种布置使用,因此其应用不限于前文描述或附图描述中所阐述的组件的细节和布置。例如,在一个实施例中描述的方面可以按任何方式与其它实施例中描述的方面组合。虽然已经展示和描述具体实施例,但所属领域的技术人员显而易见,在更广义方面不脱离本发明的情况下可以作出变化与修改。所附权利要求书的范围不应受实例中所阐述的优选实施例的限制,而应该给出与说明书整体一致的最广泛合理的解释。
Claims (60)
1.一种进程间通信的方法,其特征在于,包括:
接收来自在第一容器中运行的请求进程的与所述第一容器外的至少一个目标进程通信的请求,所述请求进程使用第一设备文件;
创建所述第一容器可访问的第二设备文件;以及
通过所述第二设备文件将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程;
将至少一个安全策略与所述第二设备文件关联;
所述至少一个目标进程可访问所述第二设备文件。
2.根据权利要求1所述的方法,其特征在于,还包括:修改与所述第二设备文件相关联的访问控制数据库的入口。
3.根据权利要求1所述的方法,其特征在于,所述至少一个目标进程在根容器和主机操作系统中的一个中运行。
4.根据权利要求2所述的方法,其特征在于,所述至少一个目标进程在根容器和主机操作系统中的一个中运行。
5.根据权利要求1所述的方法,其特征在于,所述第一容器外的所述至少一个目标进程包括多个目标进程,且其中路由包括通过所述第二设备文件将所述通信路由到所述多个目标进程。
6.根据权利要求2所述的方法,其特征在于,所述第一容器外的所述至少一个目标进程包括多个目标进程,且其中路由包括通过所述第二设备文件将所述通信路由到所述多个目标进程。
7.根据权利要求3所述的方法,其特征在于,所述第一容器外的所述至少一个目标进程包括多个目标进程,且其中路由包括通过所述第二设备文件将所述通信路由到所述多个目标进程。
8.根据权利要求4所述的方法,其特征在于,所述第一容器外的所述至少一个目标进程包括多个目标进程,且其中路由包括通过所述第二设备文件将所述通信路由到所述多个目标进程。
9.根据权利要求5-8任一项所述的方法,其特征在于,所述多个目标进程在第二容器中运行。
10.根据权利要求5-8任一项所述的方法,其特征在于,所述多个目标进程中至少第一目标进程在第二容器中运行,且所述多个目标进程中至少第二目标进程在第三容器中运行。
11.根据权利要求1所述的方法,其特征在于,所述第一容器是属于一容器族的多个容器中的一个,且属于所述容器族的所述多个容器可访问所述第二设备文件。
12.根据权利要求2所述的方法,其特征在于,所述第一容器是属于一容器族的多个容器中的一个,且属于所述容器族的所述多个容器可访问所述第二设备文件。
13.根据权利要求3所述的方法,其特征在于,所述第一容器是属于一容器族的多个容器中的一个,且属于所述容器族的所述多个容器可访问所述第二设备文件。
14.根据权利要求4所述的方法,其特征在于,所述第一容器是属于一容器族的多个容器中的一个,且属于所述容器族的所述多个容器可访问所述第二设备文件。
15.根据权利要求5所述的方法,其特征在于,所述第一容器是属于一容器族的多个容器中的一个,且属于所述容器族的所述多个容器可访问所述第二设备文件。
16.根据权利要求6-8任一项所述的方法,其特征在于,所述第一容器是属于一容器族的多个容器中的一个,且属于所述容器族的所述多个容器可访问所述第二设备文件。
17.根据权利要求9所述的方法,其特征在于,所述第一容器是属于一容器族的多个容器中的一个,且属于所述容器族的所述多个容器可访问所述第二设备文件。
18.根据权利要求10所述的方法,其特征在于,所述第一容器是属于一容器族的多个容器中的一个,且属于所述容器族的所述多个容器可访问所述第二设备文件。
19.根据权利要求1所述的方法,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
20.根据权利要求2所述的方法,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
21.根据权利要求3所述的方法,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
22.根据权利要求4所述的方法,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
23.根据权利要求5所述的方法,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
24.根据权利要求6-8中任一项所述的方法,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
25.根据权利要求9所述的方法,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
26.根据权利要求10所述的方法,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
27.根据权利要求11所述的方法,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
28.根据权利要求12-15任一项所述的方法,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
29.根据权利要求16所述的方法,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
30.根据权利要求17或18所述的方法,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
31.一种进程间通信的系统,其特征在于,包括:
处理单元;以及
非瞬时性存储器,通信耦合至所述处理单元并存储计算机可读程序指令,所述计算机可读程序指令可由所述处理单元执行用于:
接收来自在第一容器中运行的请求进程的与所述第一容器外的至少一个目标进程通信的请求,所述请求进程使用第一设备文件;
创建所述第一容器可访问的第二设备文件;以及
通过所述第二设备文件将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程;
将至少一个安全策略与所述第二设备文件关联;
所述至少一个目标进程可访问所述第二设备文件。
32.根据权利要求31所述的系统,其特征在于,所述程序指令还可用于:修改与所述第二设备文件相关联的访问控制数据库的入口。
33.根据权利要求31所述的系统,其特征在于,所述至少一个目标进程在根容器和主机操作系统中的一个中运行。
34.根据权利要求32所述的系统,其特征在于,所述至少一个目标进程在根容器和主机操作系统中的一个中运行。
35.根据权利要求31所述的系统,其特征在于,所述第一容器外的所述至少一个目标进程包括多个目标进程,且其中路由包括通过所述第二设备文件将所述通信路由到所述多个目标进程。
36.根据权利要求32所述的系统,其特征在于,所述第一容器外的所述至少一个目标进程包括多个目标进程,且其中路由包括通过所述第二设备文件将所述通信路由到所述多个目标进程。
37.根据权利要求33所述的系统,其特征在于,所述第一容器外的所述至少一个目标进程包括多个目标进程,且其中路由包括通过所述第二设备文件将所述通信路由到所述多个目标进程。
38.根据权利要求34所述的系统,其特征在于,所述第一容器外的所述至少一个目标进程包括多个目标进程,且其中路由包括通过所述第二设备文件将所述通信路由到所述多个目标进程。
39.根据权利要求35-38任一项所述的系统,其特征在于,所述多个目标进程在第二容器中运行。
40.根据权利要求35-38任一项所述的系统,其特征在于,所述多个目标进程中至少第一目标进程在第二容器中运行,且所述多个目标进程中至少第二目标进程在第三容器中运行。
41.根据权利要求31所述的系统,其特征在于,所述第一容器是属于一容器族的多个容器中的一个,且属于所述容器族的所述多个容器可访问所述第二设备文件。
42.根据权利要求32所述的系统,其特征在于,所述第一容器是属于一容器族的多个容器中的一个,且属于所述容器族的所述多个容器可访问所述第二设备文件。
43.根据权利要求33所述的系统,其特征在于,所述第一容器是属于一容器族的多个容器中的一个,且属于所述容器族的所述多个容器可访问所述第二设备文件。
44.根据权利要求34所述的系统,其特征在于,所述第一容器是属于一容器族的多个容器中的一个,且属于所述容器族的所述多个容器可访问所述第二设备文件。
45.根据权利要求35所述的系统,其特征在于,所述第一容器是属于一容器族的多个容器中的一个,且属于所述容器族的所述多个容器可访问所述第二设备文件。
46.根据权利要求36-38中任一项所述的系统,其特征在于,所述第一容器是属于一容器族的多个容器中的一个,且属于所述容器族的所述多个容器可访问所述第二设备文件。
47.根据权利要求39所述的系统,其特征在于,所述第一容器是属于一容器族的多个容器中的一个,且属于所述容器族的所述多个容器可访问所述第二设备文件。
48.根据权利要求40所述的系统,其特征在于,所述第一容器是属于一容器族的多个容器中的一个,且属于所述容器族的所述多个容器可访问所述第二设备文件。
49.根据权利要求31所述的系统,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
50.根据权利要求32所述的系统,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
51.根据权利要求33所述的系统,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
52.根据权利要求34所述的系统,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
53.根据权利要求35所述的系统,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
54.根据权利要求36-38中任一项所述的系统,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
55.根据权利要求39所述的系统,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
56.根据权利要求40所述的系统,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
57.根据权利要求41所述的系统,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
58.根据权利要求42-45任一项所述的系统,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
59.根据权利要求46所述的系统,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
60.根据权利要求47或48所述的系统,其特征在于,还包括:在所述第一容器中创建与所述请求进程相关联的匹配请求进程,所述匹配请求进程使用所述第二设备文件,其中将通信从所述请求进程路由到所述第一容器外的所述至少一个目标进程包括通过所述匹配请求进程路由所述通信。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/167,566 US9733992B1 (en) | 2016-05-27 | 2016-05-27 | Inter-process communication between containers |
US15/167,566 | 2016-05-27 | ||
PCT/CN2017/085910 WO2017202364A1 (en) | 2016-05-27 | 2017-05-25 | Inter-process communication between containers |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109155782A CN109155782A (zh) | 2019-01-04 |
CN109155782B true CN109155782B (zh) | 2021-06-01 |
Family
ID=59562574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780030869.2A Active CN109155782B (zh) | 2016-05-27 | 2017-05-25 | 容器之间的进程间通信 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9733992B1 (zh) |
CN (1) | CN109155782B (zh) |
WO (1) | WO2017202364A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10762204B2 (en) * | 2013-11-28 | 2020-09-01 | Blackberry Limited | Managing containerized applications |
US10824945B2 (en) * | 2016-04-15 | 2020-11-03 | Agreeya Mobility Inc. | Machine-learning system and method thereof to manage shuffling of input training datasets |
US11947489B2 (en) | 2017-09-05 | 2024-04-02 | Robin Systems, Inc. | Creating snapshots of a storage volume in a distributed storage system |
US11582168B2 (en) | 2018-01-11 | 2023-02-14 | Robin Systems, Inc. | Fenced clone applications |
US11392363B2 (en) | 2018-01-11 | 2022-07-19 | Robin Systems, Inc. | Implementing application entrypoints with containers of a bundled application |
US11748203B2 (en) * | 2018-01-11 | 2023-09-05 | Robin Systems, Inc. | Multi-role application orchestration in a distributed storage system |
US11416274B2 (en) | 2018-12-07 | 2022-08-16 | International Business Machines Corporation | Bridging a connection to a service by way of a container to virtually provide the service |
US11256434B2 (en) | 2019-04-17 | 2022-02-22 | Robin Systems, Inc. | Data de-duplication |
US11249851B2 (en) | 2019-09-05 | 2022-02-15 | Robin Systems, Inc. | Creating snapshots of a storage volume in a distributed storage system |
US11520650B2 (en) | 2019-09-05 | 2022-12-06 | Robin Systems, Inc. | Performing root cause analysis in a multi-role application |
US11347684B2 (en) | 2019-10-04 | 2022-05-31 | Robin Systems, Inc. | Rolling back KUBERNETES applications including custom resources |
US11403188B2 (en) | 2019-12-04 | 2022-08-02 | Robin Systems, Inc. | Operation-level consistency points and rollback |
CN111339541B (zh) * | 2020-02-20 | 2022-08-02 | Oppo广东移动通信有限公司 | 基于binder驱动的进程间通信IPC机制的复用方法及装置 |
US11528186B2 (en) | 2020-06-16 | 2022-12-13 | Robin Systems, Inc. | Automated initialization of bare metal servers |
US11740980B2 (en) | 2020-09-22 | 2023-08-29 | Robin Systems, Inc. | Managing snapshot metadata following backup |
US11743188B2 (en) | 2020-10-01 | 2023-08-29 | Robin Systems, Inc. | Check-in monitoring for workflows |
US11456914B2 (en) | 2020-10-07 | 2022-09-27 | Robin Systems, Inc. | Implementing affinity and anti-affinity with KUBERNETES |
US11271895B1 (en) | 2020-10-07 | 2022-03-08 | Robin Systems, Inc. | Implementing advanced networking capabilities using helm charts |
US11750451B2 (en) | 2020-11-04 | 2023-09-05 | Robin Systems, Inc. | Batch manager for complex workflows |
US11556361B2 (en) | 2020-12-09 | 2023-01-17 | Robin Systems, Inc. | Monitoring and managing of complex multi-role applications |
CN116455770A (zh) * | 2023-06-16 | 2023-07-18 | 北京智芯微电子科技有限公司 | 网络切片接入方法、通信实体、通信系统及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593225A (zh) * | 2013-10-30 | 2014-02-19 | 浙江大学 | 移动虚拟化场景中多Android系统复用Binder IPC机制的方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9397856B2 (en) * | 2005-12-02 | 2016-07-19 | Ca, Inc. | Virtual tunnel network router |
US7577686B1 (en) * | 2006-02-10 | 2009-08-18 | Ringcube Technologies, Inc. | Dynamic table configuration in a virtual machine |
US8650579B1 (en) * | 2007-01-31 | 2014-02-11 | Hewlett-Packard Development Company, L.P. | Containment for computer-software update installation processes |
EP2820792B1 (en) * | 2012-02-29 | 2019-06-12 | BlackBerry Limited | Method of operating a computing device, computing device and computer program |
EP2820585B1 (en) * | 2012-02-29 | 2019-04-10 | BlackBerry Limited | Method of operating a computing device, computing device and computer program |
US8831002B2 (en) * | 2012-06-29 | 2014-09-09 | Avaya Inc. | System and method for reducing headers |
US9773107B2 (en) * | 2013-01-07 | 2017-09-26 | Optio Labs, Inc. | Systems and methods for enforcing security in mobile computing |
US20160205082A1 (en) * | 2013-08-12 | 2016-07-14 | Graphite Software Corporation | Secure authentication and switching to encrypted domains |
US20150074684A1 (en) | 2013-09-11 | 2015-03-12 | Cellrox, Ltd. | Techniques for enabling inter-process communication (ipc) among multiple personas in a mobile technology platform |
US9361163B2 (en) * | 2013-11-28 | 2016-06-07 | Good Technology Corporation | Managing containerized applications on a mobile device while bypassing operating system implemented inter process communication |
WO2015138931A1 (en) * | 2014-03-13 | 2015-09-17 | Optio Labs, Inc. | Systems and methods for enforcing security in mobile computing |
CN104573507A (zh) * | 2015-02-05 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种安全容器及其设计方法 |
JP6394455B2 (ja) * | 2015-03-24 | 2018-09-26 | 富士通株式会社 | 情報処理システム、管理装置およびプログラム |
KR102426633B1 (ko) * | 2015-07-27 | 2022-07-29 | 삼성전자주식회사 | 운영체제 관리 방법 및 이를 지원하는 전자 장치 |
CN105069353B (zh) * | 2015-08-11 | 2017-10-24 | 武汉大学 | 一种基于Docker的可信容器安全加固方法 |
CN105389243B (zh) * | 2015-10-26 | 2018-06-05 | 华为技术有限公司 | 一种容器监控方法和装置 |
CN105279036B (zh) * | 2015-12-04 | 2019-10-25 | 上海斐讯数据通信技术有限公司 | 进程间通信方法、装置及电子设备 |
CN105591820B (zh) * | 2015-12-31 | 2020-05-08 | 北京轻元科技有限公司 | 一种高可扩展的容器网络管理系统和方法 |
-
2016
- 2016-05-27 US US15/167,566 patent/US9733992B1/en active Active
-
2017
- 2017-05-25 CN CN201780030869.2A patent/CN109155782B/zh active Active
- 2017-05-25 WO PCT/CN2017/085910 patent/WO2017202364A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593225A (zh) * | 2013-10-30 | 2014-02-19 | 浙江大学 | 移动虚拟化场景中多Android系统复用Binder IPC机制的方法 |
Non-Patent Citations (1)
Title |
---|
container之间建立连接;high蓝;《https://blog.csdn.net/ronggangzhao/article/details/43983031》;20150228;第1-8页 * |
Also Published As
Publication number | Publication date |
---|---|
US9733992B1 (en) | 2017-08-15 |
WO2017202364A1 (en) | 2017-11-30 |
CN109155782A (zh) | 2019-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109155782B (zh) | 容器之间的进程间通信 | |
US11625257B2 (en) | Provisioning executable managed objects of a virtualized computing environment from non-executable managed objects | |
US9189619B2 (en) | Runtime based application security and regulatory compliance in cloud environment | |
EP3313023A1 (en) | Life cycle management method and apparatus | |
US9195294B2 (en) | Cooperatively managing enforcement of energy related policies between virtual machine and application runtime | |
US8484639B2 (en) | Fine-grained cloud management control using nested virtualization | |
US11263058B2 (en) | Methods and apparatus for limiting data transferred over the network by interpreting part of the data as a metaproperty | |
US20110219373A1 (en) | Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform | |
US9003094B2 (en) | Optimistic interrupt affinity for devices | |
CN113986515B (zh) | 为插件运行创建沙箱环境的方法和装置以及计算设备 | |
US9460009B1 (en) | Logical unit creation in data storage system | |
US9678984B2 (en) | File access for applications deployed in a cloud environment | |
US20220405385A1 (en) | Secure container construction device and method executable by android application, and computer-readable recording medium on which program thereof is recorded | |
US20140109189A1 (en) | Managing access to class objects in a system utilizing a role-based access control framework | |
US20130054861A1 (en) | Pessimistic interrupt affinity for devices | |
CN111213127B (zh) | 用于直接分配的设备的虚拟化操作 | |
US20160321116A1 (en) | Translating operating system processes | |
CN113391881B (zh) | 中断的管理方法、装置、电子设备及计算机存储介质 | |
CN113360893A (zh) | 基于容器的智能合约执行方法、装置及存储介质 | |
US9246778B2 (en) | System to enhance performance, throughput and reliability of an existing cloud offering | |
CN106708619B (zh) | 资源管理方法及装置 | |
US10796008B2 (en) | Executing privileged code in a process | |
US8631480B2 (en) | Systems and methods for implementing security services | |
US11429412B2 (en) | Guest protection from application code execution in kernel mode | |
CN111240800A (zh) | 硬件加速设备挂载方法及云平台 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |