CN109314726A - 操作***容器之间通讯的***和方法 - Google Patents
操作***容器之间通讯的***和方法 Download PDFInfo
- Publication number
- CN109314726A CN109314726A CN201780036272.9A CN201780036272A CN109314726A CN 109314726 A CN109314726 A CN 109314726A CN 201780036272 A CN201780036272 A CN 201780036272A CN 109314726 A CN109314726 A CN 109314726A
- Authority
- CN
- China
- Prior art keywords
- message
- agent
- format
- business
- user
- 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.)
- Granted
Links
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
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/12—Accounting
- G06Q40/123—Tax preparation or submission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/214—Monitoring or handling of messages using selective forwarding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/56—Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0272—Virtual private networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0485—Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
一种操作***容器之间通讯的方法,包括:第一用户空间容器中的第一代理接收来自所述第一用户空间容器中的第一业务的第一消息,其中所述第一消息使用第一消息机制发送至所述第一代理;所述第一代理向第二用户空间容器中的第二代理转发所述第一消息,其中所述第一消息使用不同于所述第一消息机制的第二消息机制发送至所述第二代理;以及所述第二代理将所述第一消息下发至所述第二用户空间容器中的第二业务。
Description
交叉申请
本申请要求于2016年6月20日提交的、发明名称为“操作***容器之间通讯的***和方法(System and Method for Messaging Between Operating System Containers)”的美国专利申请第15/187,443号的优先权,其全部内容以引用的方式并入本文中。
技术领域
本发明大体上涉及操作***,在特定实施例中,涉及操作***容器之间通讯的***和方法。
背景技术
通常,虚拟***在操作***级别有若干虚拟化的用户空间实例。如今智能手机、平板电脑和云计算***等很多设备都被虚拟化为包括若干用户空间实例,这实现了更大的粒度且允许在设备上控制软件。尽管典型的操作***包括一个内核空间和一个用户空间,但虚拟化***可以包括一个内核空间和若干用户空间实例(有时称为“容器”)。虚拟化***允许隔离每个容器,但是容器之间可能仍然需要一些通信。
发明内容
根据一实施例,一种方法包括:第一用户空间容器中的第一代理接收来自所述第一用户空间容器中的第一业务的第一消息,其中所述第一消息使用第一消息机制发送至所述第一代理;所述第一代理向第二用户空间容器中的第二代理转发所述第一消息,其中所述第一消息使用不同于所述第一消息机制的第二消息机制发送至所述第二代理;以及所述第二代理将所述第一消息下发至所述第二用户空间容器中的第二业务。
可选地,在前述实施例的任一项中,向所述第二代理转发所述第一消息包括将所述第一消息从所述第一代理直接发送至所述第二代理。
可选地,在前述实施例的任一项中,向所述第二代理转发所述第一消息包括:所述第一代理将所述第一消息发送至路由器,其中所述第一消息使用所述第二消息机制发送至所述路由器;以及所述路由器使用所述第二消息机制向所述第二代理转发所述第一消息。
可选地,在前述实施例的任一项中,将所述第一消息下发至所述第二业务包括:所述第二代理使用所述第一消息机制将所述第一消息发送至所述第二业务。
可选地,在前述实施例的任一项中,将所述第一消息下发至所述第二业务包括:所述第二代理使用与所述第一消息机制不同的第三消息机制将所述第一消息发送至所述第二业务。
可选地,在前述实施例的任一项中,所述第一代理以第一格式接收所述第一消息,并且将所述第一消息以不同于所述第一格式的第二格式发送至所述第二代理。
可选地,在前述实施例的任一项中,将所述第一消息以不同于所述第一格式和所述第二格式的第三格式下发至所述第二业务。
可选地,在前述实施例的任一项中,将所述第一消息以第三格式下发至所述第二业务,其中所述第三格式与所述第一格式相同。
可选地,在前述实施例的任一项中,所述方法还包括:第三用户空间容器中的第三代理接收来自所述第一用户空间容器中的所述第一业务的第二消息;以及所述第三代理将所述第二消息下发至所述第三用户空间容器中的第三业务,其中所述第二消息使用所述第一消息机制或第三消息机制中的一个发送至所述第三业务。
可选地,在前述实施例的任一项中,所述第一代理以第一格式接收所述第一消息,将所述第一消息以不同于所述第一格式的第二格式发送至所述第二代理,以及将所述第二消息以所述第一格式或不同于所述第一格式和所述第二格式的第三格式中的一个下发至所述第三业务。
可选地,在前述实施例的任一项中,所述第一消息是所述第二业务将执行的操作的描述。
可选地,在前述实施例的任一项中,所述第一代理向所述第二代理转发所述第一消息包括:所述第一代理将所述第一消息串行化以生成串行化消息;所述第一代理向所述串行化消息附加标识符;以及所述第一代理使用所述第二消息机制将所述串行化消息发送至所述第二代理。
可选地,在前述实施例的任一项中,所述第二代理将所述第一消息下发至所述第二业务包括:所述第二代理根据所述标识符识别所述第二业务;所述第二代理将所述串行化消息反串行化以生成所述第一消息;以及所述第二代理将所述第一消息发送至所述第二业务。
根据另一实施例,一种操作***包括第一用户空间容器,其包括第一组多个进程;以及第一消息代理,用于使用第一消息机制接收来自所述第一组多个进程中的一个的第一消息。第二用户空间容器与所述第一用户空间容器分离。所述第二用户空间容器包括:第二消息代理,用于使用不同于所述第一消息机制的第二消息机制接收来自所述第一消息代理的所述第一消息;以及第二组多个进程。所述第二组多个进程中的一个用于接收来自所述第二消息代理的所述第一消息。
可选地,在前述实施例的任一项中,所述操作***还包括包括设备驱动程序的内核,所述第二组多个进程中的所述一个用于根据从所述第一组多个进程中的所述一个接收的所述第一消息访问所述设备驱动程序。
可选地,在前述实施例的任一项中,所述操作***还包括消息路由器,用于使用所述第二消息机制接收来自所述第一消息代理的所述第一消息,以及使用所述第二消息机制向所述第二消息代理转发所述第一消息。
可选地,在前述实施例的任一项中,所述第一消息代理用于使用所述第二消息机制将所述第一消息直接下发至所述第二消息代理。
可选地,在前述实施例的任一项中,所述第一消息机制是本地进程间通信机制,所述第二消息机制是全局进程间通信机制。
可选地,在前述实施例的任一项中,所述第二组多个进程中的所述一个用于使用所述第一消息机制接收来自所述第二消息代理的所述第一消息。
可选地,在前述实施例的任一项中,所述第二组多个进程中的所述一个用于使用第三消息机制制接收来自所述第二消息代理的所述第一消息。
可选地,在前述实施例的任一项中,所述第一消息代理以第一消息格式接收所述第一消息,所述第二消息代理以不同于所述第一消息格式的第二消息格式接收所述第一消息。
可选地,在前述实施例的任一项中,所述第二组多个进程中的所述一个以第三消息格式接收所述第一消息,所述第二消息代理将所述第一消息转换成所述第三消息格式。
可选地,在前述实施例的任一项中,所述第二组多个进程中的所述一个以所述第一消息格式接收所述第一消息。
可选地,在前述实施例的任一项中,所述第一消息代理还用于将所述第一消息串行化并进行标识,以生成第二消息,所述第二消息代理还用于将所述第二消息反串行化以生成所述第一消息。
根据另一实施例,一种设备包括处理器和包括程序的计算机可读介质。所述程序包括用于以下操作的指令:第一用户空间容器中的第一代理接收来自所述第一用户空间容器中的第一业务的第一消息,其中所述第一消息使用第一消息机制发送至所述第一代理;所述第一代理向第二用户空间容器中的第二代理转发所述第一消息,其中所述第一消息使用不同于所述第一消息机制的第二消息机制发送至所述第二代理;以及所述第二代理使用所述第一消息机制将所述第一消息下发至所述第二用户空间容器中的第二业务。
本发明实施例的优点在于操作***容器内的本地通讯可以与容器间通讯解耦。在操作***中,必须授予容器本地进程全局通讯特权才能进行容器间通讯。将本地通讯和全局通讯解耦可以减少操作***中执行的特权进程的数量。另外,将本地通讯和全局通讯解耦提供了一种集中消息机制,实现了操作***中更大程度的访问控制。由此可以提高操作***和容器的安全性和稳定性。
附图说明
为了更完整地理解本发明及其优点,现在参考下文结合附图进行的描述,其中:
图1是用户设备上具有虚拟化容器的操作***的框图;
图2是通讯方法的流程图;以及
图3是处理***的示意图。
具体实施方式
图1是用户设备上具有虚拟化容器的操作***100的框图。操作***100使用操作***级虚拟化,因此操作***100包括一个内核110和多个用户空间容器120、130和140。可选地,操作***100包括消息路由器150。操作***100可以为用户设备上的生态***,例如Android、Windows或iOS。
内核110包括内核空间组件,例如设备驱动程序112。在一些实施例中,内核110是类Unix内核,例如Linux。在内核110是Linux的实施例中,操作***100可以是Android。设备驱动程序112访问或控制用户设备上的硬件特征,例如输入/输出(input/output,I/O)设备、电话接口、***设备接口和网络接口等。在设备驱动程序112用于I/O设备的实施例中,设备驱动程序112可以是音频、视频或触摸屏设备驱动程序。在设备驱动程序112用于电话设备的实施例中,设备驱动程序112可以是调制解调器设备驱动程序。设备驱动程序112可以是可加载的内核模块,或者与内核110静态连接。尽管以下参照使用Linux内核的Android移动操作***描述了各实施例,但应了解,根据实施例所述的虚拟化***和方法可以使用多种操作***和内核实现。
容器120、130和140是内核110上运行的用户空间容器。容器120、130和140共享内核110,但是用户空间分离。因此,容器120、130和140之一中的进程看不到其它容器中的其它进程或资源。在内核110是Linux内核的实施例中,容器120、130和140可以运行不同的Linux发行版,例如Ubuntu、Red Hat和Debian等。在操作***100是移动操作***的实施例中,容器120、130和140可以运行使用Linux内核的任何移动操作***,例如Ubuntu、Tizen和/或Android的不同版本。在此类实施例中,可以使用Linux容器(Linux Containers,LXC)来提供容器120、130和140。在内核110是BSD或XNU内核的实施例中,容器120、130和140可以为不同的监牢。容器120、130和140分别包括进程122、132和142以及消息代理124、134和144。尽管图1中示出了三个用户空间容器,但是应了解,操作***100可以包括任何数量的容器。
进程122、132和142分别在容器120、130和140中执行不同线程或任务,并可以执行不同功能。进程122、132和142可以是用户操作的软件,也可以是操作***100中的业务。在所示实施例中,容器120中的进程122与设备驱动程序112交互,容器130和140中的进程132和142执行其它应用。例如,在设备驱动程序112是音频驱动程序的实施例中,进程122可以是向设备驱动程序112发送命令或数据的音频业务。在此类实施例中,容器130和140中的进程132和142可能需要访问设备驱动程序112。在一些实施例中,其中一个容器中的进程可能需要将该进程将执行的操作通知给其它容器中的进程。例如,在操作***100是Android操作***的实施例中,一个进程可能需要向其它容器中的进程发送Intent对象。
根据实施例所述的通讯技术允许不同容器120、130和140中的进程122、132和142互相通信。容器间通讯(Inter-container messaging,ICM)可以允许进程132和142以受限和受控的方式访问设备驱动程序112。在一些实施例中,使用操作***100支持的现有消息机制实施ICM。为了互相直接通信,可以授予进程122、132和142中的每一个在操作***100中的通讯特权,且进程122、132和142可以使用容器120、130和140公共的机制进行通信。然而,如上所述,容器120、130和140可以运行不同的Linux发行版或用户空间环境。在运行不同的发行版和/或用户空间环境时,容器120、130和140可能无法使用公共消息机制进行通信。另外,增加作为特权进程运行的进程122、132和142的数量可能影响***安全性和稳定性。减少特权进程的数量可以减少操作***100的攻击面。
进程122、132和142使用消息代理124、134和144跨容器120、130和140互相通信。容器120、130和140分别包括消息代理124、134和144。消息代理124、134和144中的每一个充当对应的容器120、130和140中的进程122、132和142的集中ICM网关。消息代理124、134和144将消息从其对应容器中的源进程转发至具有目标接收方进程的容器。接收方容器中的消息代理将消息转发至接收方进程。在一些实施例中,消息代理124、134和144本身可以为用于跨容器120、130和140代理消息的进程或业务。在一些实施例中,消息代理124、134和144以点对点的方式互相直接通信。在一些实施例中,消息代理124、134和144以广播方式与多个接收方进程通信。
消息代理124、134和144使用各种数据结构和消息机制与进程122、132和142通信。在一些实施例中,进程122、132和142使用消息队列、共享内存和命名管道等进程间通信(inter-process communication,IPC)机制与消息代理124、134和144通信。在一些实施例中,进程122、132和142用来与消息代理124、134和144通信的IPC机制只包括用于容器内(有时称为“本地”)通讯的IPC机制。进程122、132和142可以使用特定于对应容器120、130和140的用户空间环境的数据结构或格式与消息代理124、134和144通信。例如,进程132可以使用第一数据结构和第一IPC机制与消息代理134通信,进程142可以使用第二数据结构和第二IPC机制与消息代理144通信。消息代理124、134和144使用用于容器间(有时称为“全局”)通讯的IPC机制进行通信。将进程122、132和142限制为通过容器内IPC和本地通讯格式与消息代理124、134和144通信可使进程122、132和142与***特定ICM解耦。这样可以提高灵活性并减少操作***100的攻击面。
在进程跨两个以上容器120、130和140进行通信的实施例中,操作***100可以包括消息路由器150。在容器120、130和140以广播方式进行通信的实施例中,容器120、130和140可以使用消息路由器150交互消息。在此类实施例中,消息代理124、134和144中的每一个使用公共数据结构和消息机制与消息路由器150通信。消息路由器150将消息从源消息代理转发至接收方消息代理。可以使用2016年5月27日提交的同在申请中的美国专利申请第15/167,676号(代理人案号HW85045731US01)中描述的通信机制实现消息路由器150,其以引用的方式并入本文中。在进程跨两个容器通信的实施例中,消息代理可以直接通信,在此类实施例中,不需要消息路由器150。在一些实施例中,容器120、130和140使用其它通信机制通信,例如,无需消息路由器150。尽管消息路由器150描述为在容器120、130和140外部,但是应了解,消息路由器150可以位于任何容器中,例如可以位于容器130或容器140中。
图2是通讯方法200的流程图。通讯方法200可以指示具有多个用户空间的操作***中发生的操作,例如操作***100中。在步骤202中,源进程创建针对接收方进程的消息,并将消息发送至源通讯代理(步骤202)。源进程和源通讯代理处于源容器中,接收方进程处于接收方容器中。源进程和源通讯代理可以使用例如本地IPC机制的第一IPC机制以第一通讯格式进行通信。在操作***是Android的实施例中,本地IPC机制例如可以是Binder。
如果操作***准许源通讯代理和源进程跨容器通信(步骤204),将消息转换为全局消息格式(步骤206)。转换可以包括串行化消息以及向消息中添加标识头。在一些实施例中,消息串行化为文本或二进制格式。标识头标识目的地进程。在一些实施例中,头标识是容器和进程标识符,例如为整数或字符串值。在一些实施例中,可以使用操作***中的标识注册框架标识目的地进程。如果不准许源通讯代理跨容器通信,通讯方法200结束。
将串行化消息从源通讯代理发送至接收方通讯代理(步骤208)。使用消息中的标识头标识接收方通讯代理。可以使用例如Unix域套接字的全局IPC机制将消息发送至接收方通讯代理。
如果接收方容器中的接收方进程可用(步骤210),则接收方通讯代理将消息转换为用于接收方容器的本地消息格式(步骤212)。在一些实施例中,也可以执行访问控制校验来确定是否准许接收方进程和/或接收方容器接收来自其它容器的通信。转换可以包括从消息中去除标识头和反串行化消息。如果接收方进程不可用,通讯方法200结束。将反串行化消息从接收方通讯代理发送至接收方业务(步骤214)。接收方通讯代理和接收方进程可以使用第一IPC机制以第一通讯格式通信,也可以使用第二IPC机制以第二通讯格式通信。当接收方通讯代理和接收方进程以第二通讯格式通信时,转换可以包括将消息转换为第二通讯格式。可以使用本地IPC机制将消息发送至接收方容器,例如在操作***是Android的实施例中使用Binder。
图3是用于执行本文所述方法的实施例的处理***300的框图,处理***300可以安装在主机设备中。如图所示,处理***300包括处理器302、存储器304以及接口306、308和310,可以(或可以不)如图3中所示的布置。处理器302可以是用于执行计算和/或其它与处理相关的任务的任何组件或组件集合,且存储器304可以是用于存储程序和/或供处理器302执行的指令的任何组件或组件集合。在实施例中,存储器304包括非瞬时性计算机可读介质。接口306、308和310可以是允许处理***300与其它设备/组件和/或用户通信的任何组件或组件集合。例如,接口306、308和310中的一个或多个可以用于将数据、控制或管理信息从处理器302传送至安装在主机设备和/或远端设备上的应用程序。在另一示例中,接口306、308和310中的一个或多个可以用于允许用户或用户设备(例如个人电脑(personalcomputer,PC))与处理***300互动/通信。处理***300可以包括图3中未描绘的额外组件,例如,长期存储设备(例如,非易失性存储器等)。
在一些实施例中,处理***300包括在接入电信网络或另外作为电信网络的部件的网络设备中。在一个示例中,处理***300处于无线或有线电信网络中的网络侧设备中,例如基站、中继站、调度器、控制器、网关、路由器、应用程序服务器,或电信网络中的任何其它设备。在其它实施例中,处理***300处于接入无线或有线电信网络的用户侧设备中,例如移动台、用户设备(user equipment,UE)、个人计算机(personal computer,PC)、平板计算机、可穿戴通信设备(例如,智能手表等),或用于接入电信网络的任何其它设备。
应了解,本文所提供的实施例方法的一个或多个步骤可由对应单元或模块执行。步骤可以由转发单元/模块、接收单元/模块、分发单元/模块、串行化单元/模块、附加单元/模块、识别单元/模块、反串行化单元/模块和/或发送单元/模块执行。对应的单元/模块可以是硬件、软件或其组合。例如,一个或多个单元/模块可以是集成电路,例如现场可编程门阵列(field programmable gate array,FPGA)或专用集成电路(application-specificintegrated circuit,ASIC)。
尽管已参考说明性实施例描述了本发明,但此描述并不意图限制本发明。所属领域的技术人员在参考该描述后,将会明白说明性实施例的各种修改和组合,以及本发明其他实施例。因此,所附权利要求书意图涵盖任何此类修改或实施例。
Claims (25)
1.一种方法,其特征在于,包括:
第一用户空间容器中的第一代理接收来自所述第一用户空间容器中的第一业务的第一消息,其中所述第一消息使用第一消息机制发送至所述第一代理;
所述第一代理向第二用户空间容器中的第二代理转发所述第一消息,其中所述第一消息使用不同于所述第一消息机制的第二消息机制发送至所述第二代理;以及
所述第二代理将所述第一消息下发至所述第二用户空间容器中的第二业务。
2.根据权利要求1所述的方法,其特征在于,向所述第二代理转发所述第一消息包括将所述第一消息从所述第一代理直接发送至所述第二代理。
3.根据权利要求1或2中任一项所述的方法,其特征在于,向所述第二代理转发所述第一消息包括:
所述第一代理将所述第一消息发送至路由器,其中所述第一消息使用所述第二消息机制发送至所述路由器;以及
所述路由器使用所述第二消息机制向所述第二代理转发所述第一消息。
4.根据权利要求1至3中任一项所述的方法,其特征在于,将所述第一消息下发至所述第二业务包括:
所述第二代理使用所述第一消息机制将所述第一消息发送至所述第二业务。
5.根据权利要求1至4中任一项所述的方法,其特征在于,将所述第一消息下发至所述第二业务包括:
所述第二代理使用与所述第一消息机制不同的第三消息机制将所述第一消息发送至所述第二业务。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述第一代理以第一格式接收所述第一消息,并且将所述第一消息以不同于所述第一格式的第二格式发送至所述第二代理。
7.根据权利要求6所述的方法,其特征在于,将所述第一消息以不同于所述第一格式和所述第二格式的第三格式下发至所述第二业务。
8.根据权利要求6所述的方法,其特征在于,将所述第一消息以第三格式下发至所述第二业务,其中所述第三格式与所述第一格式相同。
9.根据权利要求1至8中任一项所述的方法,其特征在于,还包括:
第三用户空间容器中的第三代理接收来自所述第一用户空间容器中的所述第一业务的第二消息;以及
所述第三代理将所述第二消息下发至所述第三用户空间容器中的第三业务,其中所述第二消息使用所述第一消息机制或第三消息机制中的一个发送至所述第三业务。
10.根据权利要求9所述的方法,其特征在于,所述第一代理以第一格式接收所述第一消息,将所述第一消息以不同于所述第一格式的第二格式发送至所述第二代理,以及将所述第二消息以所述第一格式或不同于所述第一格式和所述第二格式的第三格式中的一个下发至所述第三业务。
11.根据权利要求1至10中任一项所述的方法,其特征在于,所述第一消息是所述第二业务将执行的操作的描述。
12.根据权利要求1至11中任一项所述的方法,其特征在于,所述第一代理向所述第二代理转发所述第一消息包括:
所述第一代理将所述第一消息串行化以生成串行化消息;
所述第一代理向所述串行化消息附加标识符;以及
所述第一代理使用所述第二消息机制将所述串行化消息发送至所述第二代理。
13.根据权利要求12所述的方法,其特征在于,所述第二代理将所述第一消息下发至所述第二业务包括:
所述第二代理根据所述标识符识别所述第二业务;
所述第二代理将所述串行化消息反串行化以生成所述第一消息;以及
所述第二代理将所述第一消息发送至所述第二业务。
14.一种操作***,其特征在于,包括:
第一用户空间容器,包括:
第一组多个进程;以及
第一消息代理,用于使用第一消息机制接收来自所述第一组多个进程中的一个的第一消息;以及
与所述第一用户空间容器分离的第二用户空间容器,其中所述第二用户空间容器包括:
第二消息代理,用于使用不同于所述第一消息机制的第二消息机制接收来自所述第一消息代理的所述第一消息;以及
第二组多个进程,其中所述第二组多个进程中的一个用于接收来自所述第二消息代理的所述第一消息。
15.根据权利要求14所述的操作***,其特征在于,还包括:
包括设备驱动程序的内核,其中所述第二组多个进程中的所述一个用于根据从所述第一组多个进程中的所述一个接收的所述第一消息访问所述设备驱动程序。
16.根据权利要求14至15中任一项所述的操作***,其特征在于,还包括:
消息路由器,用于使用所述第二消息机制接收来自所述第一消息代理的所述第一消息,以及使用所述第二消息机制向所述第二消息代理转发所述第一消息。
17.根据权利要求14至16中任一项所述的操作***,其特征在于,所述第一消息代理用于使用所述第二消息机制将所述第一消息直接下发至所述第二消息代理。
18.根据权利要求14至17中任一项所述的操作***,其特征在于,所述第一消息机制是本地进程间通信机制,所述第二消息机制是全局进程间通信机制。
19.根据权利要求14至18中任一项所述的操作***,其特征在于,所述第二组多个进程中的所述一个用于使用所述第一消息机制接收来自所述第二消息代理的所述第一消息。
20.根据权利要求14至19中任一项所述的操作***,其特征在于,所述第二组多个进程中的所述一个用于使用第三消息机制接收来自所述第二消息代理的所述第一消息。
21.根据权利要求20所述的操作***,其特征在于,所述第一消息代理以第一消息格式接收所述第一消息,所述第二消息代理以不同于所述第一消息格式的第二消息格式接收所述第一消息。
22.根据权利要求21所述的操作***,其特征在于,所述第二组多个进程中的所述一个以第三消息格式接收所述第一消息,所述第二消息代理将所述第一消息转换为所述第三消息格式。
23.根据权利要求21所述的操作***,其特征在于,所述第二组多个进程中的所述一个以所述第一消息格式接收所述第一消息。
24.根据权利要求14至23中任一项所述的操作***,其特征在于,所述第一消息代理还用于将所述第一消息串行化并进行标识,以生成第二消息,所述第二消息代理还用于将所述第二消息反串行化以生成所述第一消息。
25.一种设备,其特征在于,包括:
处理器;以及
包括程序的计算机可读介质,所述程序包括用于以下操作的指令:
第一用户空间容器中的第一代理接收来自所述第一用户空间容器中的第一业务的第一消息,其中所述第一消息使用第一消息机制发送至所述第一代理;
所述第一代理向第二用户空间容器中的第二代理转发所述第一消息,其中所述第一消息使用不同于所述第一消息机制的第二消息机制发送至所述第二代理;以及
所述第二代理使用所述第一消息机制将所述第一消息下发至所述第二用户空间容器中的第二业务。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/187,443 US10305834B2 (en) | 2016-06-20 | 2016-06-20 | System and method for messaging between operating system containers |
US15/187,443 | 2016-06-20 | ||
PCT/CN2017/088984 WO2017219941A1 (en) | 2016-06-20 | 2017-06-19 | System and method for messaging between operating system containers |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109314726A true CN109314726A (zh) | 2019-02-05 |
CN109314726B CN109314726B (zh) | 2021-07-09 |
Family
ID=60659936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780036272.9A Active CN109314726B (zh) | 2016-06-20 | 2017-06-19 | 操作***容器之间通讯的***和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10305834B2 (zh) |
EP (1) | EP3459229B1 (zh) |
CN (1) | CN109314726B (zh) |
WO (1) | WO2017219941A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110971708A (zh) * | 2019-12-19 | 2020-04-07 | 吉林大学 | 安卓与Ubuntu***信息传输方法及***、设备、介质 |
WO2020192443A1 (zh) * | 2019-03-28 | 2020-10-01 | 比亚迪股份有限公司 | 基于异构操作***的消息传输***、方法和车辆 |
CN112181687A (zh) * | 2020-09-28 | 2021-01-05 | 湖南德羽航天装备科技有限公司 | 基于数据加密的信息存储方法及相关装置 |
CN113691624A (zh) * | 2021-08-24 | 2021-11-23 | 湖北亿咖通科技有限公司 | 基于容器的数据传输方法及设备 |
CN115242898A (zh) * | 2022-06-06 | 2022-10-25 | 浪潮通信技术有限公司 | 协议栈与物理层进程间的通信方法及装置 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10372516B2 (en) * | 2017-07-25 | 2019-08-06 | International Business Machines Corporation | Message processing |
US12058160B1 (en) | 2017-11-22 | 2024-08-06 | Lacework, Inc. | Generating computer code for remediating detected events |
US11973784B1 (en) | 2017-11-27 | 2024-04-30 | Lacework, Inc. | Natural language interface for an anomaly detection framework |
US11785104B2 (en) | 2017-11-27 | 2023-10-10 | Lacework, Inc. | Learning from similar cloud deployments |
US11770398B1 (en) | 2017-11-27 | 2023-09-26 | Lacework, Inc. | Guided anomaly detection framework |
US11979422B1 (en) | 2017-11-27 | 2024-05-07 | Lacework, Inc. | Elastic privileges in a secure access service edge |
US10498845B1 (en) | 2017-11-27 | 2019-12-03 | Lacework Inc. | Using agents in a data center to monitor network connections |
US11792284B1 (en) | 2017-11-27 | 2023-10-17 | Lacework, Inc. | Using data transformations for monitoring a cloud compute environment |
US20220232025A1 (en) | 2017-11-27 | 2022-07-21 | Lacework, Inc. | Detecting anomalous behavior of a device |
US11818156B1 (en) | 2017-11-27 | 2023-11-14 | Lacework, Inc. | Data lake-enabled security platform |
US11765249B2 (en) | 2017-11-27 | 2023-09-19 | Lacework, Inc. | Facilitating developer efficiency and application quality |
US11741238B2 (en) | 2017-11-27 | 2023-08-29 | Lacework, Inc. | Dynamically generating monitoring tools for software applications |
US20220232024A1 (en) | 2017-11-27 | 2022-07-21 | Lacework, Inc. | Detecting deviations from typical user behavior |
US11849000B2 (en) | 2017-11-27 | 2023-12-19 | Lacework, Inc. | Using real-time monitoring to inform static analysis |
US11894984B2 (en) | 2017-11-27 | 2024-02-06 | Lacework, Inc. | Configuring cloud deployments based on learnings obtained by monitoring other cloud deployments |
US12034754B2 (en) | 2017-11-27 | 2024-07-09 | Lacework, Inc. | Using static analysis for vulnerability detection |
CN108390810B (zh) * | 2018-01-05 | 2021-07-30 | 郑州信大捷安信息技术股份有限公司 | 一种基于单Linux内核多Android***网络虚拟化方法 |
US11188386B2 (en) * | 2019-11-01 | 2021-11-30 | Sap Portals Israel Ltd. | Lightweight remote process execution |
US10972407B1 (en) * | 2019-11-12 | 2021-04-06 | Facebook Technologies, Llc | Systems and methods for network stack |
US11256759B1 (en) | 2019-12-23 | 2022-02-22 | Lacework Inc. | Hierarchical graph analysis |
US11188571B1 (en) | 2019-12-23 | 2021-11-30 | Lacework Inc. | Pod communication graph |
US11201955B1 (en) | 2019-12-23 | 2021-12-14 | Lacework Inc. | Agent networking in a containerized environment |
US11805188B2 (en) * | 2021-07-16 | 2023-10-31 | Itron, Inc. | Hub and spoke publish-subscribe |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7152231B1 (en) * | 1999-11-01 | 2006-12-19 | Harris-Exigent, Inc. | High speed interprocess communication |
CN101477474A (zh) * | 2009-01-04 | 2009-07-08 | 中国科学院计算技术研究所 | 一种联合模拟***及其工作方法 |
CN101626348A (zh) * | 2008-07-10 | 2010-01-13 | 中兴通讯股份有限公司 | 一种实现企业融合通讯的业务支撑***及其方法 |
US20100241729A1 (en) * | 2005-09-21 | 2010-09-23 | Sap Ag | Web Services Message Processing Runtime Framework |
CN102103526A (zh) * | 2011-02-14 | 2011-06-22 | 博视联(苏州)信息科技有限公司 | 服务端和客户端间通过服务管理进行进程间通信的方法及*** |
CN102469035A (zh) * | 2010-11-05 | 2012-05-23 | 腾讯科技(深圳)有限公司 | 跨进程通信的方法和装置 |
US8719840B2 (en) * | 2005-02-17 | 2014-05-06 | Koninklijke Philips N.V. | Device for secure interprocess communication |
US20150242622A1 (en) * | 2014-02-21 | 2015-08-27 | Samsung Electronics Co., Ltd. | Method and apparatus to sandbox run-time android applications with lightweight container |
US9274861B1 (en) * | 2014-11-10 | 2016-03-01 | Amazon Technologies, Inc. | Systems and methods for inter-process messaging |
CN105573825A (zh) * | 2014-10-11 | 2016-05-11 | 华为技术有限公司 | 一种跨操作***的任务间同步的方法及装置 |
CN105591820A (zh) * | 2015-12-31 | 2016-05-18 | 北京轻元科技有限公司 | 一种高可扩展的容器网络管理***和方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2149476A1 (en) | 1994-06-21 | 1995-12-22 | James Michael Magee | Capability engine method and apparatus for a microkernel data processing system |
US7417987B2 (en) | 2002-06-04 | 2008-08-26 | Lucent Technologies Inc. | Distribution of forwarding information in a network node |
US8856953B2 (en) | 2010-09-01 | 2014-10-07 | Red Hat, Inc. | Access policy for package update processes |
US9183028B1 (en) | 2010-09-30 | 2015-11-10 | Amazon Technologies, Inc. | Managing virtual computing nodes |
US20120278878A1 (en) * | 2011-04-27 | 2012-11-01 | International Business Machines Corporation | Systems and methods for establishing secure virtual private network communications using non-privileged vpn client |
US9621495B1 (en) * | 2012-12-10 | 2017-04-11 | Jeffrey Brian Shumate | Anonymous messaging proxy |
CN103259735B (zh) | 2013-05-15 | 2016-05-11 | 重庆邮电大学 | 一种基于NetFPGA的可编程虚拟化路由器的通信方法 |
CN105491123B (zh) | 2015-12-04 | 2019-02-22 | 北京航空航天大学 | 容器间通信方法及装置 |
-
2016
- 2016-06-20 US US15/187,443 patent/US10305834B2/en active Active
-
2017
- 2017-06-19 EP EP17814679.1A patent/EP3459229B1/en active Active
- 2017-06-19 CN CN201780036272.9A patent/CN109314726B/zh active Active
- 2017-06-19 WO PCT/CN2017/088984 patent/WO2017219941A1/en unknown
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7152231B1 (en) * | 1999-11-01 | 2006-12-19 | Harris-Exigent, Inc. | High speed interprocess communication |
US8719840B2 (en) * | 2005-02-17 | 2014-05-06 | Koninklijke Philips N.V. | Device for secure interprocess communication |
US20100241729A1 (en) * | 2005-09-21 | 2010-09-23 | Sap Ag | Web Services Message Processing Runtime Framework |
CN101626348A (zh) * | 2008-07-10 | 2010-01-13 | 中兴通讯股份有限公司 | 一种实现企业融合通讯的业务支撑***及其方法 |
CN101477474A (zh) * | 2009-01-04 | 2009-07-08 | 中国科学院计算技术研究所 | 一种联合模拟***及其工作方法 |
CN102469035A (zh) * | 2010-11-05 | 2012-05-23 | 腾讯科技(深圳)有限公司 | 跨进程通信的方法和装置 |
CN102103526A (zh) * | 2011-02-14 | 2011-06-22 | 博视联(苏州)信息科技有限公司 | 服务端和客户端间通过服务管理进行进程间通信的方法及*** |
US20150242622A1 (en) * | 2014-02-21 | 2015-08-27 | Samsung Electronics Co., Ltd. | Method and apparatus to sandbox run-time android applications with lightweight container |
CN105573825A (zh) * | 2014-10-11 | 2016-05-11 | 华为技术有限公司 | 一种跨操作***的任务间同步的方法及装置 |
US9274861B1 (en) * | 2014-11-10 | 2016-03-01 | Amazon Technologies, Inc. | Systems and methods for inter-process messaging |
CN105591820A (zh) * | 2015-12-31 | 2016-05-18 | 北京轻元科技有限公司 | 一种高可扩展的容器网络管理***和方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020192443A1 (zh) * | 2019-03-28 | 2020-10-01 | 比亚迪股份有限公司 | 基于异构操作***的消息传输***、方法和车辆 |
CN111756782A (zh) * | 2019-03-28 | 2020-10-09 | 比亚迪股份有限公司 | 基于异构操作***的消息传输***、方法和车辆 |
CN111756782B (zh) * | 2019-03-28 | 2023-03-14 | 比亚迪股份有限公司 | 基于异构操作***的消息传输***、方法和车辆 |
CN110971708A (zh) * | 2019-12-19 | 2020-04-07 | 吉林大学 | 安卓与Ubuntu***信息传输方法及***、设备、介质 |
CN110971708B (zh) * | 2019-12-19 | 2021-11-30 | 吉林大学 | 安卓与Ubuntu***信息传输方法及***、设备、介质 |
CN112181687A (zh) * | 2020-09-28 | 2021-01-05 | 湖南德羽航天装备科技有限公司 | 基于数据加密的信息存储方法及相关装置 |
CN112181687B (zh) * | 2020-09-28 | 2024-06-21 | 湖南羽扬科技有限公司 | 基于数据加密的信息存储方法及相关装置 |
CN113691624A (zh) * | 2021-08-24 | 2021-11-23 | 湖北亿咖通科技有限公司 | 基于容器的数据传输方法及设备 |
CN115242898A (zh) * | 2022-06-06 | 2022-10-25 | 浪潮通信技术有限公司 | 协议栈与物理层进程间的通信方法及装置 |
CN115242898B (zh) * | 2022-06-06 | 2024-04-19 | 浪潮通信技术有限公司 | 协议栈与物理层进程间的通信方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2017219941A1 (en) | 2017-12-28 |
CN109314726B (zh) | 2021-07-09 |
US10305834B2 (en) | 2019-05-28 |
EP3459229A4 (en) | 2019-05-01 |
US20170366492A1 (en) | 2017-12-21 |
EP3459229A1 (en) | 2019-03-27 |
EP3459229B1 (en) | 2020-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109314726A (zh) | 操作***容器之间通讯的***和方法 | |
US10884814B2 (en) | Mobile edge-cloud security infrastructure | |
US20210182088A1 (en) | System and Method for Network Function Virtualization Resource Management | |
US11799952B2 (en) | Computing resource discovery and allocation | |
US8898665B2 (en) | System, method and computer program product for inviting other virtual machine to access a memory space allocated to a virtual machine | |
CN102609298B (zh) | 基于硬件队列扩展的网卡虚拟化***及其方法 | |
US9083611B2 (en) | Method and system for virtual network interface cards (VNICs) over aggregation spanning multiple switches | |
US11095716B2 (en) | Data replication for a virtual networking system | |
US20220182456A1 (en) | Methods and systems for managing applications of a multi-access edge computing environment | |
CN109313569A (zh) | 用于虚拟硬件控制的***和方法 | |
US20220053079A1 (en) | System and method for supporting movable object application development | |
US20210234861A1 (en) | SECURED METADATA SHARING AMONG VNFs | |
CN115484042A (zh) | 机器学习辅助的网络设备 | |
US20220217582A1 (en) | User plane replicator | |
CN102546166A (zh) | 一种身份认证方法、***及装置 | |
WO2015094366A1 (en) | Execution offloading | |
CN115022408A (zh) | 基于服务网格的数据传输方法及装置、电子设备 | |
US20190013963A1 (en) | Systems and methods for sharing network interfaces between containers in an embedded computing device | |
CN102752412B (zh) | Wan环境下端口映射方法及*** | |
CN106851535B (zh) | 多***共享蓝牙的方法及装置 | |
DE102022119581A1 (de) | Bewegungsdaten zur ausfallerkennung | |
Iliev et al. | A critical view of the NFV dataplane implementations for 5G networks | |
US20230188341A1 (en) | Cryptographic operations in edge computing networks | |
KR102266051B1 (ko) | 대용량 데이터 처리 및 고성능 nfv 시스템 구축 방법 | |
US11900127B2 (en) | Automated recovery of far edge computing infrastructure in a 5G network |
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 |