CN109343974A - 基于容器的虚拟桌面的进程间通信方法及装置 - Google Patents
基于容器的虚拟桌面的进程间通信方法及装置 Download PDFInfo
- Publication number
- CN109343974A CN109343974A CN201811072730.7A CN201811072730A CN109343974A CN 109343974 A CN109343974 A CN 109343974A CN 201811072730 A CN201811072730 A CN 201811072730A CN 109343974 A CN109343974 A CN 109343974A
- Authority
- CN
- China
- Prior art keywords
- container
- virtual desktop
- server
- bus
- hardware resource
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 167
- 238000004891 communication Methods 0.000 title claims abstract description 60
- 230000008569 process Effects 0.000 claims abstract description 119
- 238000001914 filtration Methods 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 17
- 238000002955 isolation Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 239000011800 void material Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000032258 transport Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开一种基于容器的虚拟桌面的进程间通信方法,包括:基于容器内将要运行的应用程序创建虚拟桌面进程,并将虚拟桌面进程初始化为至少包含唯一识别所述容器的容器识别码;分别基于各个容器的容器识别码生成以识别多个容器之间以及容器与服务器的操作系统之间通信的特征码;通过总线桥接各个容器以进行容器之间或容器和服务器之间的进程间通信;以及由主控制器基于所述特征码过滤各个容器之间及容器与服务器之间的进程通信事件。本申请还公开了一种对应的基于容器的虚拟桌面的进程间通信装置。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种基于容器(Container)的虚拟桌面的进程间通信方法和装置。
背景技术
操作系统虚拟化通过对真实的计算机硬件设备进行模拟,使得多名用户可以分别通过客户机远程登陆虚拟化后的操作系统而共享使用计算机硬件资源,从而可以高效率地利用计算机硬件资源。同时,由于操作系统虚拟化使得各应用程序及其关联性被隔离,从而每位用户如同在个人计算机上操作独立的操作系统。
例如,作为操作系统虚拟化的典型例子,虚拟机通常运行在诸如服务器等底层硬件的主机设备上,并通过虚拟机管理程序分配内存和CPU等计算机硬件资源到多台虚拟机上。因此,可以根据当前各台虚拟机所请求的计算机硬件资源,动态地进行分配。然而,为了给各位用户提供一个完整独立的应用程序运行环境,虚拟机需要同时包含完整的虚拟硬件堆栈(包括虚拟的网卡、存储器以及CPU等)。这意味着其自身也拥有完整的操作系统,并对计算机硬件资源抽象化而进行硬件隔离和协调进程之间的通信,从而需要将部分由主机设备提供的共享资源占据为自身的专用资源而降低主机设备的总体性能。
相反,作为操作系统虚拟化的另一个例子,容器是一种轻量级的操作系统虚拟化技术。各个容器通过共享主机设备上的系统内核以实现自身的轻量化,并利用进程访问控制隔离技术和进程组管理控制技术等方式隔离各自的用户空间,从而使得多套容器能够并行地运行在同一主机设备上。可是,在现有的技术方案中,由于多个容器之间共享同一套系统内核,所以同一服务器上的容器甚至共享该服务器上的网络命名空间,并没有真正地相互隔离,从而使得容器之间的相互隔离非常薄弱。一方面,不同容器上各自运行的虚拟桌面进程运行时需要共享硬件资源池中的硬件资源而需要;另一方面,在同一服务器上或者在多台服务器上的不同容器上运行的虚拟桌面进程之间进行通信。因此,容器上运行的虚拟桌面进程需要恰当地设置通信机制,以高效和安全地实现虚拟桌面进程之间的隔离和通信。
发明内容
本发明的目的是解决现有技术的不足,提供一种基于容器的虚拟桌面的进程间通信方法和装置,能够获得高效而安全地进行虚拟桌面进程之间通信的效果。
为了实现上述目的,本发明采用以下的技术方案。
首先,本申请提出一种基于容器的虚拟桌面的进程间通信方法。该进程间通信方法适用于在服务器内建立的多个彼此隔离的容器。其中,多个容器中的每一个分别创建一个独立的虚拟桌面实例,并通过每个容器的虚拟桌面实例为对应的容器配置独立的文件管理结构。上述进程间通信方法包括以下步骤:
S100)基于容器内将要运行的应用程序创建虚拟桌面进程,并将虚拟桌面进程初始化为至少包含唯一识别所述容器的容器识别码;
S200)分别基于各个容器的容器识别码生成以识别多个容器之间以及容器与服务器的操作系统之间通信的特征码;
S300)通过总线桥接各个容器以进行容器之间或容器和服务器之间的进程间通信;以及
S400)由主控制器基于所述特征码过滤各个容器之间及容器与服务器之间的进程通信事件。
进一步地,在本申请的上述方法中,分别为各个容器创建独立的网络栈,使得各个容器通过所述网络栈桥接到总线。
再进一步地,在本申请的上述方法中,服务器内的多个容器通过网络栈分配有专用的网络端口进行通信。
进一步地,在本申请的上述方法中,当虚拟桌面进程访问请求服务器的硬件资源时,步骤S400可以包括以下的子步骤:
S401)根据虚拟桌面进程的访问请求,查找相应硬件资源到运行所述虚拟桌面进程的容器;
S402)基于特征码由主控制器过滤所述虚拟桌面进程和服务器访问请求所述硬件资源进程;
S403)通过总线在所述虚拟桌面进程与访问请求相应硬件资源之间传送数据包。
可替代地,在本申请的上述方法中,步骤S400包括以下的子步骤:
S404)通过总线发送用于虚拟桌面进程间通信的数据包;
S405)由主控制器根据所述特征码过滤出对应的虚拟桌面进程,并通过总线将数据包发送到所述虚拟桌面进程。
进一步地,在本申请的上述方法中,虚拟桌面进程由与容器远程连接的客户机启动。
其次,本申请还提出一种基于容器的虚拟桌面的进程间通信装置。该进程间通信装置适用于在服务器内建立的多个彼此隔离的容器。其中,多个容器中的每一个分别创建一个独立的虚拟桌面实例,并通过每个容器的虚拟桌面实例为对应的容器配置独立的文件管理结构。上述进程间通信装置包括以下模块:初始化模块,用于基于容器内将要运行的应用程序创建虚拟桌面进程,并将虚拟桌面进程初始化为至少包含唯一识别所述容器的容器识别码;生成模块,用于分别基于各个容器的容器识别码生成以识别多个容器之间以及容器与服务器的操作系统之间通信的特征码;桥接模块,用于通过总线桥接各个容器以进行容器之间或容器和服务器之间的进程间通信;以及过滤模块,用于由主控制器基于所述特征码过滤各个容器之间及容器与服务器之间的进程通信事件。
进一步地,在本申请的上述装置中,分别为各个容器创建独立的网络栈,使得各个容器通过所述网络栈桥接到总线。
再进一步地,在本申请的上述装置中,服务器内的多个容器通过网络栈分配有专用的网络端口进行通信。
进一步地,在本申请的上述装置中,当虚拟桌面进程访问请求服务器的硬件资源时,过滤模块包括以下的子模块:第一分配模块,用于根据虚拟桌面进程的访问请求,查找相应硬件资源到运行所述虚拟桌面进程的容器;第一过滤模块,用于基于特征码由主控制器过滤所述虚拟桌面进程和服务器访问请求所述硬件资源进程;第一传送模块,用于通过总线在所述虚拟桌面进程与访问请求相应硬件资源之间传送数据包。
可替代地,在本申请的上述装置中,过滤模块包括以下的子模块:第二发送模块,用于通过总线发送用于虚拟桌面进程间通信的数据包;第二过滤模块,用于由主控制器根据所述特征码过滤出对应的虚拟桌面进程,并通过总线将数据包发送到所述虚拟桌面进程。
进一步地,在本申请的上述装置中,虚拟桌面进程由与容器远程连接的客户机启动。
最后,本申请还提出一种计算机可读存储介质,其上存储有计算机指令。该计算机指令所执行方法适用于在服务器内建立的多个彼此隔离的容器。其中,多个容器中的每一个分别创建一个独立的虚拟桌面实例,并通过每个容器的虚拟桌面实例为对应的容器配置独立的文件管理结构。该指令被处理器执行时实现以下方法的步骤:
S100)基于容器内将要运行的应用程序创建虚拟桌面进程,并将虚拟桌面进程初始化为至少包含唯一识别所述容器的容器识别码;
S200)分别基于各个容器的容器识别码生成以识别多个容器之间以及容器与服务器的操作系统之间通信的特征码;
S300)通过总线桥接各个容器以进行容器之间或容器和服务器之间的进程间通信;以及
S400)由主控制器基于所述特征码过滤各个容器之间及容器与服务器之间的进程通信事件。
进一步地,在本申请的上述指令被处理器执行的过程中,分别为各个容器创建独立的网络栈,使得各个容器通过所述网络栈桥接到总线。
再进一步地,在本申请的上述指令被处理器执行的过程中,服务器内的多个容器通过网络栈分配有专用的网络端口进行通信。
进一步地,在本申请的上述指令被处理器执行的过程中,当虚拟桌面进程访问请求服务器的硬件资源时,步骤S400可以包括以下的子步骤:
S401)根据虚拟桌面进程的访问请求,查找相应硬件资源到运行所述虚拟桌面进程的容器;
S402)基于特征码由主控制器过滤所述虚拟桌面进程和服务器访问请求所述硬件资源进程;
S403)通过总线在所述虚拟桌面进程与访问请求相应硬件资源之间传送数据包。
可替代地,在本申请的上述指令被处理器执行的过程中,步骤S400可以包括以下的子步骤:
S404)通过总线发送用于虚拟桌面进程间通信的数据包;
S405)由主控制器根据所述特征码过滤出对应的虚拟桌面进程,并通过总线将数据包发送到所述虚拟桌面进程。
进一步地,在本申请的上述指令被处理器执行的过程中,虚拟桌面进程由与容器远程连接的客户机启动。
本发明的有益效果为:容器通过桥接到总线并由主控制器对事件进行过滤,以高效和安全地控制不同容器上运行的虚拟桌面进程之间的通信。
附图说明
图1所示为现有的虚拟机和容器结构示意图;
图2所示为本申请所公开实施例中基于容器的虚拟桌面的架构示意图;
图3所示为本申请所公开的基于容器的虚拟桌面的进程间通信方法的流程图;
图4所示为本申请所公开第一实施例的容器总线拓扑结构图;
图5所示为本申请所公开第二实施例的虚拟桌面进程通信的子方法流程图;
图6所示为本申请所公开图5所示子方法流程图的服务器拓扑结构示意图;
图7所示为本申请所公开第三实施例的虚拟桌面进程通信的子方法流程图;
图8所示为本申请所公开的基于容器的虚拟桌面的进程间通信装置的结构图。
具体实施方式
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。附图中各处使用的相同的附图标记指示相同或相似的部分。此外,本领域技术人员应理解到,附图中的显示元件的数量和形状仅作为示例性的参考,不作为对本申请的限制。
参考图1所示的现有的虚拟机和容器结构示意图。作为虚拟化技术的两个典型例子,虚拟机和容器包含应用程序及运行该应用程序的所必需的组件(例如系统的二进制文件及库),并分别通过运行在物理计算机上的虚拟机监控器(Hypervisor)和容器引擎(Docker Engine) 申请位于系统底层的计算机硬件资源。对于虚拟机和容器,底层的单个计算机硬件资源(例如服务器、存储设备、中央处理器、I/O端口和网络端口等)由于被虚拟化而可以充当多个可被共享的逻辑资源。同时,主机操作系统(Operation System,OS)亦可以为上述虚拟机监控器和容器引擎与底层计算机硬件资源的交互提供进一步优化。例如,主机OS可支持多个空间上相互隔离的用户通过虚拟机或容器共享底层的计算机硬件资源。其中主机OS的一些示例可以是和然而,正如前文所指出,虚拟机由于其自身操作系统需要专门占用更多的资源并包含更多的处理开销,从而降低了主机设备的总体性能。虽然容器通过共享主机OS的内核而实现自身的轻量化,但是容器之间的并没有实现真正的隔离,从而为用户留下安全隐患。
因此,为了充分利用容器的轻量化优势,并提升容器之间的隔离程度,保证在不同容器上运行的虚拟桌面进程相互之间通信安全性,本申请提出了一种基于容器的虚拟桌面的进程间通信方法。该方法适用于如图2所示的基于容器的虚拟桌面。在该基于容器的虚拟桌面中,服务器内建立的多个彼此隔离的容器。其中,多个容器中的每一个分别创建一个独立的虚拟桌面实例,并通过每个容器的虚拟桌面实例为对应的容器配置独立的文件管理结构。在每个容器内运行的应用程序通过容器引擎从计算机硬件资源池中获取相应的计算机硬件资源。在向对应的容器发出文件操作请求时,应用程序通过虚拟桌面实例调用文件管理结构对该文件操作请求涉及的文件进行操作。对于容器的各位用户,基于容器所提供的虚拟桌面实例就像一个独立的个人操作系统,而不仅仅是从主机操作系统中划分出来的,作为主机操作系统一部分而隔离出来的操作执行环境。进一步地,本地服务器通过容器引擎为每个容器配置相应的系统环境、个人文件以及虚拟界面的配置文件,并利用容器的DockerClient形成虚拟桌面实例。对于容器的各位用户,容器就像一个独立的个人操作系统,而不仅仅是从主机操作系统中划分出来的,作为主机操作系统一部分而隔离出来的操作执行环境。进一步地,上述配置文件可进一步地设置针对主机OS的内核的差异文件,并在各个容器上形成个性化的虚拟操作系统环境,而实现对主机OS的内核重定向。此外,对于容器内的应用程序,其运行时所必需的计算机硬件资源都是通过容器引擎申请。因此,一方面相对于虚拟机所必需占用专用资源以供虚拟机自身的操作系统运行,上述技术方案中的容器更为轻量,从而可以在同一服务器上为更多的用户创建容器;另一方面,由于应用程序需要通过容器引擎共享底层的计算机硬件资源,并且当其发出文件操作请求时,必需通过虚拟桌面实例调用容器的文件管理结构以对所述文件操作请求涉及的文件进行操作,从而保证了容器之间隔离程度,提高了容器的安全水平。进一步地,容器的客户端可以设置在异地。如图3所示,用户的客户端与本地服务器之间设置有交换盒,该交换盒上设置有嵌入式系统以执行相关的图像生成和文件传输协议,从而在用户端上形成相应的图形操作界面。
具体地,参照图3所示的方法流程图,上述基于容器的虚拟桌面的进程间通信方法包括以下步骤:
S100)基于容器内将要运行的应用程序创建虚拟桌面进程,并将虚拟桌面进程初始化为至少包含唯一识别所述容器的容器识别码;
S200)分别基于各个容器的容器识别码生成以识别多个容器之间以及容器与服务器的操作系统之间通信的特征码;
S300)通过总线桥接各个容器以进行容器之间或容器和服务器之间的进程间通信;以及
S400)由主控制器基于所述特征码过滤各个容器之间及容器与服务器之间的进程通信事件。
具体地,当两个容器上运行的虚拟桌面进程需要进行通信时,容器向总线所发出的数据包将包括该容器自身的识别码和目标虚拟桌面进程所在容器的识别码所生成的特征码。主控制器将该数据包过滤出来,然后再次通过总线发送到对应容器上的虚拟桌面进程。由于识别码可以唯一识别各个容器,从而可以保证个虚拟桌面进程之间通信的安全性。本申请对识别码的特征码的生成方式及所包含的信息不予限定。本领域技术人员可以根据具体的实际应用环境设置。
参照图4所示的拓扑结构图,在本申请的一个或多个实施例中,分别为各个容器创建独立的网络栈(例如拥有各自的虚拟网卡),使得各个容器通过所述网络栈桥接到总线。参考图中所示的拓扑结构图,各个容器都拥有独立的网络环境,并通过虚拟以太网(Virtual ETHernet,简称为VETH)桥接到总线。服务器上的各个容器通过各自的网络栈而实现网络隔离,从而实现各容器上运行的虚拟桌面进程的安全隔离。同时,参照图4所示的拓扑结构图,服务器上的各个容器之间的通信以及容器与服务器的外部进程之间的通信都必需经过总线。此时,总线成为了各个容器的虚拟桌面进程间相互通信的虚拟交换机。由于服务器内的各个容器并不共享服务器本身的网络命名空间,从而使得各个容器之间的隔离更为彻底,避免了由于单个容器的崩溃而导致服务器本身的崩溃。
由于在上述一个或多个实施例中,服务器内的各个容器通过虚拟以太网桥接到总线,而服务器再通过以太网(ETHernet,简称为ETH)与外部进行连接。因此,进一步地,为了使得服务器外部的进程(例如在其他服务器的容器上运行的虚拟桌面进程)能够访问并与在该服务器的容器上运行的虚拟桌面进程通信,在本申请的上述一个或多个实施例中,服务器内的各个容器与服务器的一个端口绑定,从而通过iptable的网络地址转换(NetworkAddress Translation,简称为NAT),将服务器上的端口流量转发到容器内的虚拟端口上。
进一步地,参照图5所示的子方法流程图,在本申请的一个或多个实施例中,当虚拟桌面进程访问请求服务器的硬件资源时,步骤S400可以包括以下的子步骤:
S401)根据虚拟桌面进程的访问请求,查找相应硬件资源到运行所述虚拟桌面进程的容器;
S402)基于特征码由主控制器过滤所述虚拟桌面进程和服务器访问请求所述硬件资源进程;
S403)通过总线在所述虚拟桌面进程与访问请求相应硬件资源之间传送数据包。
具体地,参照图6所示的拓扑结构图,当客户机通过在容器上的虚拟桌面进程访问已分配给该容器的硬件资源(例如打印机)时,该硬件资源将先被分配到客户机所连接的容器,然后由主控制器过滤该虚拟桌面进程和该硬件资源的通信,并通过总线传送两者之间的数据包。而对于其他容器而言,除非该容器本身将上述硬件资源共享,否则无法查找到上述硬件资源。这意味着当用户在客户机上切换所登陆的容器后,只能查找到其他容器所共享的硬件资源,而不能查找到虽然连接到当前客户机但是没有分配给该容器的硬件资源。同时,这意味着在任意时刻,不但容器与客户机形式一对一的关系,而且容器通过总线与所分配的硬件资源形成一对一的关系。
可替代地,参照图7所示的子方法流程图,在本申请的一个或多个实施例中,步骤S400 包括以下的子步骤:
S404)通过总线发送用于虚拟桌面进程间通信的数据包;
S405)由主控制器根据所述特征码过滤出对应的虚拟桌面进程,并通过总线将数据包发送到所述虚拟桌面进程。
类似地,参照图6所示的拓扑结构图,主控制器将基于该特征码过滤进行通信的虚拟桌面进程,并通过总线传送两者之间的数据包。
进一步地,在本申请的上述一个或多个实施例中,虚拟桌面进程由与容器远程连接的客户机启动。类似地,再次参照图6所示的拓扑结构图,客户机通过远程连接的方式连接到服务器上的特定容器上,并如同操作个人操作系统一样,在容器中启动虚拟桌面进程。
参照图8所示的装置结构图,本申请所公开的基于容器的虚拟桌面的进程间通信装置可包括以下模块:初始化模块,用于基于容器内将要运行的应用程序创建虚拟桌面进程,并将虚拟桌面进程初始化为至少包含唯一识别所述容器的容器识别码;生成模块,用于分别基于各个容器的容器识别码生成以识别多个容器之间以及容器与服务器的操作系统之间通信的特征码;桥接模块,用于通过总线桥接各个容器以进行容器之间或容器和服务器之间的进程间通信;以及过滤模块,用于由主控制器基于所述特征码过滤各个容器之间及容器与服务器之间的进程通信事件。具体地,当两个容器上运行的虚拟桌面进程需要进行通信时,容器向总线所发出的数据包将包括该容器自身的识别码和目标虚拟桌面进程所在容器的识别码所生成的特征码。主控制器将该数据包过滤出来,然后再次通过总线发送到对应容器上的虚拟桌面进程。由于识别码可以唯一识别各个容器,从而可以保证个虚拟桌面进程之间通信的安全性。本申请对识别码的特征码的生成方式及所包含的信息不予限定。本领域技术人员可以根据具体的实际应用环境设置。
参照图4所示的拓扑结构图,在本申请的一个或多个实施例中,分别为各个容器创建独立的网络栈(例如拥有各自的虚拟网卡),使得各个容器通过所述网络栈桥接到总线。参考图中所示的拓扑结构图,各个容器都拥有独立的网络环境,并通过虚拟以太网桥接到总线。服务器上的各个容器通过各自的网络栈而实现网络隔离,从而实现各容器上运行的虚拟桌面进程的安全隔离。同时,参照图5所示的拓扑结构图,服务器上的各个容器之间的通信以及容器与服务器的外部进程之间的通信都必需经过总线。此时,总线成为了各个容器的虚拟桌面进程间相互通信的虚拟交换机。由于服务器内的各个容器并不共享服务器本身的网络命名空间,从而使得各个容器之间的隔离更为彻底,避免了由于单个容器的崩溃而导致服务器本身的崩溃。
由于在上述一个或多个实施例中,服务器内的各个容器通过虚拟以太网桥接到总线,而服务器再通过以太网与外部进行连接。因此,进一步地,为了使得服务器外部的进程(例如在其他服务器的容器上运行的虚拟桌面进程)能够访问并与在该服务器的容器上运行的虚拟桌面进程通信,在本申请的上述一个或多个实施例中,服务器内的各个容器与服务器的一个端口绑定,从而通过iptable的网络地址转换,将服务器上的端口流量转发到容器内的虚拟端口上。
进一步地,在本申请的一个或多个实施例中,当虚拟桌面进程访问请求服务器的硬件资源时,过滤模块可以包括以下子模块:第一分配模块,用于根据虚拟桌面进程的访问请求,查找相应硬件资源到运行所述虚拟桌面进程的容器;第一过滤模块,用于基于特征码由主控制器过滤所述虚拟桌面进程和服务器访问请求所述硬件资源进程;第一传送模块,用于通过总线在所述虚拟桌面进程与访问请求相应硬件资源之间传送数据包。具体地,参照图7所示的拓扑结构图,当客户机通过在容器上的虚拟桌面进程访问客户机本身所连接的硬件资源(例如打印机)时,该硬件资源将先被分配到客户机所连接的容器,然后由主控制器过滤该虚拟桌面进程和该硬件资源的通信,并通过总线传送两者之间的数据包。
可替代地,在本申请的一个或多个实施例中,过滤模块可以包括以下子模块:第二发送模块,用于通过总线发送用于虚拟桌面进程间通信的数据包;第二过滤模块,用于由主控制器根据所述特征码过滤出对应的虚拟桌面进程,并通过总线将数据包发送到所述虚拟桌面进程。类似地,参照图6所示的拓扑结构图,主控制器将基于该特征码过滤进行通信的虚拟桌面进程,并通过总线传送两者之间的数据包。具体地,当客户机通过在容器上的虚拟桌面进程访问已分配给该容器的硬件资源(例如打印机)时,该硬件资源将先被分配到客户机所连接的容器,然后由主控制器过滤该虚拟桌面进程和该硬件资源的通信,并通过总线传送两者之间的数据包。而对于其他容器而言,除非该容器本身将上述硬件资源共享,否则无法查找到上述硬件资源。这意味着当用户在客户机上切换所登陆的容器后,只能查找到其他容器所共享的硬件资源,而不能查找到虽然连接到当前客户机但是没有分配给该容器的硬件资源。同时,这意味着在任意时刻,不但容器与客户机形式一对一的关系,而且容器通过总线与所分配的硬件资源形成一对一的关系。
进一步地,在本申请的上述一个或多个实施例中,虚拟桌面进程由与容器远程连接的客户机启动。类似地,再次参照图6所示的拓扑结构图,客户机通过远程连接的方式连接到服务器上的特定容器上,并如同操作个人操作系统一样,在容器中启动虚拟桌面进程。
应当认识到,本申请的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。该方法可以使用标准编程技术- 包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作-根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
进一步地,该方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本申请的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文该步骤的指令或程序时,本文所述的申请包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本申请所述的方法和技术编程时,本申请还包括计算机本身。
计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本申请优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
因此,应以说明性意义而不是限制性意义来理解本说明书和附图。然而,将明显的是:在不脱离如权利要求书中阐述的本申请的更宽广精神和范围的情况下,可以对本申请做出各种修改和改变。
其他变型在本申请的精神内。因此,尽管所公开的技术可容许各种修改和替代构造,但在附图中已示出并且在上文中详细描述所示的其某些实施例。然而,应当理解,并不意图将本申请局限于所公开的一种或多种具体形式;相反,其意图涵盖如所附权利要求书中所限定落在本申请的精神和范围内的所有修改、替代构造和等效物。
Claims (10)
1.一种基于容器的虚拟桌面的进程间通信方法,适用于在服务器内建立的多个彼此隔离的容器,其中多个所述容器中的每一个分别创建一个独立的虚拟桌面实例,并通过每个容器的虚拟桌面实例为对应的容器配置独立的文件管理结构,所述方法包括以下步骤:
S100)基于容器内将要运行的应用程序创建虚拟桌面进程,并将虚拟桌面进程初始化为至少包含唯一识别所述容器的容器识别码;
S200)分别基于各个容器的容器识别码生成以识别多个容器之间以及容器与服务器的操作系统之间通信的特征码;
S300)通过总线桥接各个容器以进行容器之间或容器和服务器之间的进程间通信;以及
S400)由主控制器基于所述特征码过滤各个容器之间及容器与服务器之间的进程通信事件。
2.根据权利要求1所述的进程间通信方法,其特征在于,分别为各个容器创建独立的网络栈,使得各个容器通过所述网络栈桥接到总线。
3.根据权利要求2所述的进程间通信方法,其特征在于,服务器内的多个容器通过网络栈分配有专用的网络端口进行通信。
4.根据权利要求1所述的进程间通信方法,其特征在于,当虚拟桌面进程访问请求服务器的硬件资源时,步骤S400包括以下的子步骤:
S401)根据虚拟桌面进程的访问请求,查找相应硬件资源到运行所述虚拟桌面进程的容器;
S402)基于特征码由主控制器过滤所述虚拟桌面进程和服务器访问请求所述硬件资源进程;
S403)通过总线在所述虚拟桌面进程与访问请求相应硬件资源之间传送数据包。
5.根据权利要求1所述的进程间通信方法,其特征在于,步骤S400包括以下的子步骤:
S404)虚拟桌面进程向通过总线发送用于虚拟桌面进程间通信的数据包;
S405)由主控制器根据所述特征码过滤出对应的虚拟桌面进程,并通过总线将数据包发送到所述虚拟桌面进程。
6.根据权利要求1至5中任一所述的进程间通信方法,其特征在于,虚拟桌面进程由与容器远程连接的客户机启动。
7.一种基于容器的虚拟桌面的进程间通信装置,适用于在服务器内建立的多个彼此隔离的容器,其中多个所述容器中的每一个分别创建一个独立的虚拟桌面实例,并通过每个容器的虚拟桌面实例为对应的容器配置独立的文件管理结构,所述装置包括以下模块:
始化模块,用于基于容器内将要运行的应用程序创建虚拟桌面进程,并将虚拟桌面进程初始化为至少包含唯一识别所述容器的容器识别码;
生成模块,用于分别基于各个容器的容器识别码生成以识别多个容器之间以及容器与服务器的操作系统之间通信的特征码;
桥接模块,用于通过总线桥接各个容器以进行容器之间或容器和服务器之间的进程间通信;以及
过滤模块,用于由主控制器基于所述特征码过滤各个容器之间及容器与服务器之间的进程通信事件。
8.根据权利要求7所述的进程间通信装置,其特征在于,分别为各个容器创建独立的网络栈,使得各个容器通过所述网络栈桥接到总线。
9.根据权利要求8所述的进程间通信装置,其特征在于,服务器内的多个容器通过网络栈分配有专用的网络端口进行通信。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于该指令被处理器执行时实现如权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811072730.7A CN109343974A (zh) | 2018-09-14 | 2018-09-14 | 基于容器的虚拟桌面的进程间通信方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811072730.7A CN109343974A (zh) | 2018-09-14 | 2018-09-14 | 基于容器的虚拟桌面的进程间通信方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109343974A true CN109343974A (zh) | 2019-02-15 |
Family
ID=65305176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811072730.7A Pending CN109343974A (zh) | 2018-09-14 | 2018-09-14 | 基于容器的虚拟桌面的进程间通信方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109343974A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111130838A (zh) * | 2019-10-17 | 2020-05-08 | 国电南瑞科技股份有限公司 | 一种进程级服务实例动态扩展及网络带宽限制方法及装置 |
CN112104597A (zh) * | 2020-07-23 | 2020-12-18 | 广西电网有限责任公司电力科学研究院 | 一种一端多网环境的终端数据隔离方法及装置 |
CN113448698A (zh) * | 2020-12-24 | 2021-09-28 | 北京新氧科技有限公司 | 业务模块相互调用的实现方法、装置、设备及存储介质 |
CN116302279A (zh) * | 2023-03-22 | 2023-06-23 | 合芯科技有限公司 | 一种用于容器内gpu加速的虚拟桌面管理系统和服务器 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120101623A1 (en) * | 2010-10-22 | 2012-04-26 | Best Wise International Computing Co., Ltd. | Encryption Method of Digital Data, Decryption Method of Encrypted Digital Data, Manufacturing System of Storage Apparatus and Manufacturing Method Thereof |
WO2015109593A1 (zh) * | 2014-01-27 | 2015-07-30 | 华为技术有限公司 | 虚拟化方法和装置及计算机设备 |
CN105872078A (zh) * | 2016-05-12 | 2016-08-17 | 中国电子科技网络信息安全有限公司 | 混合云桌面系统和管理方法 |
CN106487811A (zh) * | 2016-11-29 | 2017-03-08 | 北京元心科技有限公司 | 多容器间通信的方法及装置 |
CN107071086A (zh) * | 2011-08-17 | 2017-08-18 | Nicira股份有限公司 | 逻辑l3路由 |
CN107273228A (zh) * | 2017-07-13 | 2017-10-20 | 焦点科技股份有限公司 | 基于星型拓扑架构的消息传输方法 |
CN107562472A (zh) * | 2017-08-24 | 2018-01-09 | 四川长虹电器股份有限公司 | 基于docker容器的微服务系统及方法 |
-
2018
- 2018-09-14 CN CN201811072730.7A patent/CN109343974A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120101623A1 (en) * | 2010-10-22 | 2012-04-26 | Best Wise International Computing Co., Ltd. | Encryption Method of Digital Data, Decryption Method of Encrypted Digital Data, Manufacturing System of Storage Apparatus and Manufacturing Method Thereof |
CN107071086A (zh) * | 2011-08-17 | 2017-08-18 | Nicira股份有限公司 | 逻辑l3路由 |
WO2015109593A1 (zh) * | 2014-01-27 | 2015-07-30 | 华为技术有限公司 | 虚拟化方法和装置及计算机设备 |
CN105872078A (zh) * | 2016-05-12 | 2016-08-17 | 中国电子科技网络信息安全有限公司 | 混合云桌面系统和管理方法 |
CN106487811A (zh) * | 2016-11-29 | 2017-03-08 | 北京元心科技有限公司 | 多容器间通信的方法及装置 |
CN107273228A (zh) * | 2017-07-13 | 2017-10-20 | 焦点科技股份有限公司 | 基于星型拓扑架构的消息传输方法 |
CN107562472A (zh) * | 2017-08-24 | 2018-01-09 | 四川长虹电器股份有限公司 | 基于docker容器的微服务系统及方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111130838A (zh) * | 2019-10-17 | 2020-05-08 | 国电南瑞科技股份有限公司 | 一种进程级服务实例动态扩展及网络带宽限制方法及装置 |
CN112104597A (zh) * | 2020-07-23 | 2020-12-18 | 广西电网有限责任公司电力科学研究院 | 一种一端多网环境的终端数据隔离方法及装置 |
CN113448698A (zh) * | 2020-12-24 | 2021-09-28 | 北京新氧科技有限公司 | 业务模块相互调用的实现方法、装置、设备及存储介质 |
CN113448698B (zh) * | 2020-12-24 | 2024-04-02 | 北京新氧科技有限公司 | 业务模块相互调用的实现方法、装置、设备及存储介质 |
CN116302279A (zh) * | 2023-03-22 | 2023-06-23 | 合芯科技有限公司 | 一种用于容器内gpu加速的虚拟桌面管理系统和服务器 |
CN116302279B (zh) * | 2023-03-22 | 2023-09-15 | 合芯科技有限公司 | 一种用于容器内gpu加速的虚拟桌面管理系统和服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11934341B2 (en) | Virtual RDMA switching for containerized | |
CN101430649B (zh) | 基于虚拟机的虚拟计算环境系统 | |
CN109343974A (zh) | 基于容器的虚拟桌面的进程间通信方法及装置 | |
US11294699B2 (en) | Dynamically scaled hyperconverged system establishing minimum supported interoperable communication protocol between clusters in a cluster group | |
CN105979009B (zh) | 一种针对云应用容器的增加负载自动均衡方法 | |
CN102571698B (zh) | 一种虚拟机访问权限的控制方法、系统及装置 | |
CN109582441A (zh) | 用于提供容器服务的系统、方法和装置 | |
CN107977176A (zh) | 打印方法、装置及设备 | |
CN1322427C (zh) | Windows平台下动态管理存储资源的通用方法 | |
EP3206339B1 (en) | Network card configuration method and resource management center | |
JP5784482B2 (ja) | 情報処理装置および通信制御方法 | |
CN111404753B (zh) | 一种扁平网络配置方法、计算机设备及存储介质 | |
CN109213573A (zh) | 基于容器的虚拟桌面的设备隔离方法及装置 | |
CN110088732A (zh) | 一种数据包处理方法、主机和系统 | |
CN109639455A (zh) | 一种容器云平台的网络管理方法及系统 | |
CN102609295A (zh) | 虚拟机作业动态调度系统 | |
CN102707991A (zh) | 多根i/o 虚拟化共享方法和系统 | |
CN105554015A (zh) | 多租户容器云计算系统的管理网络及方法 | |
CN101222497A (zh) | 用于配置对网络的客户接入的系统和方法 | |
CN104038444B (zh) | 一种资源分配的方法、设备及系统 | |
CN112202615B (zh) | 一种多cni协同工作系统与方法 | |
CN104123265A (zh) | 一种众核间通信方法及系统 | |
CN107707622A (zh) | 一种访问桌面云虚拟机的方法、装置及桌面云控制器 | |
CN109587281A (zh) | 容器配置方法和计算节点 | |
CN102790777A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190215 |