一种桌面虚拟化方法、相关设备及计算机存储介质与流程

文档序号:18213311发布日期:2019-07-19 22:27阅读:144来源:国知局
一种桌面虚拟化方法、相关设备及计算机存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种提供虚拟桌面的方法、相关设备及计算机存储介质。



背景技术:

虚拟桌面基础设施(virtualdesktopinfrastructure,vdi)主要是基于windows、linux等电脑端操作系统的远程桌面,在当前移动设备大规模应用的背景下,移动操作系统如安卓(android)系统的桌面虚拟化有着越来越多的市场需求。当前实现移动操作系统桌面虚拟化的方法包括在服务端的虚拟机(virtualmachine,vm)环境中运行移动操作系统,或者采用基于linux容器(linuxcontainer,lxc)的容器技术运行移动操作系统,从而实现为用户提供虚拟桌面服务。

但是,上述两种桌面虚拟化方法中,服务端均是以操作系统为粒度提供服务,这样会造成应用升级更新的不便,虚拟桌面的可扩展性较低,同时以操作系统为粒度会造成底层系统服务的冗余,导致资源利用率低。



技术实现要素:

本发明实施例公开了一种提供虚拟桌面的方法,通过将虚拟桌面的系统服务以及应用程序分别封装成容器,并且服务器的虚拟桌面可以共享部分系统服务,从而能够提高虚拟桌面的可扩展性,减少服务器的资源开销,提高资源利用率。

第一方面,本申请实施例提供一种提供虚拟桌面的方法,所述方法包括:

服务端运行多个共享服务容器,每个共享服务容器用于运行共享系统服务,且所述多个共享服务容器中的至少一个共享服务容器运行的共享系统服务供至少两个虚拟桌面共同使用;

所述服务端接收用户终端发送的目标应用标识id,根据所述目标应用id创建用户容器组,所述用户容器组内运行用户容器;

所述服务端接收所述用户终端发送的虚拟桌面接入请求,通过所述用户容器组内运行的用户容器和一部分或全部共享服务容器向所述用户终端提供所述虚拟桌面。

在一可能的实施例中,所述目标应用id包括应用程序id,所述用户容器组内运行的至少一个用户容器运行所述应用程序id对应的应用程序;和/或

所述目标应用id包括专属系统服务id,所述用户容器组内运行的至少一个用户容器运行所述专属系统服务id对应的专属系统服务。

在一可能的实施例中,所述服务端存储所述用户标识和所述用户容器组内每个用户容器的对应关系;

所述方法还包括:

所述服务端接收所述用户终端发送的虚拟桌面操作请求;

所述服务端根据所述虚拟桌面操作请求通过所述用户容器组内运行的第一用户容器调用所述用户容器组内的第二用户容器。

在一可能的实施例中,所述服务端为所述用户容器组分配有用户数据卷,所述用户数据卷用于存储所述用户容器组对应的用户数据。

本申请实施例提供的桌面虚拟化方法,通过将多个用户可以共同使用的系统服务封装成共享服务容器以供虚拟桌面服务端的所有虚拟桌面共同使用,并将每个用户单独使用的专属系统服务以及应用程序均封装成相互隔离的容器,从而能够提高系统的可维护性以及可扩展性,克服以操作系统为粒度实现桌面虚拟化时的底层系统服务的冗余,减少服务端的资源开销,提高资源利用率。

第二方面,本申请实施例提供一种提供虚拟桌面的装置,所述装置包括:

处理单元,用于运行多个共享服务容器,每个共享服务容器用于运行共享系统服务,且所述多个共享服务容器中的至少一个共享服务容器运行的共享系统服务供至少两个虚拟桌面共同使用;

通信单元,用于接收用户终端发送的目标应用标识id,根据所述目标应用id创建用户容器组,所述用户容器组内运行用户容器;

所述通信单元,还用于接收所述用户终端发送的虚拟桌面接入请求;

所述处理单元,还用于在接收到所述虚拟桌面接入请求之后,运行所述用户容器组内的用户容器和一部分或全部共享服务容器向所述用户终端提供所述虚拟桌面。

在一可能的实施例中,所述目标应用id包括应用程序id,所述用户容器组内运行的至少一个用户容器运行所述应用程序id对应的应用程序;和/或

所述目标应用id包括专属系统服务id,所述用户容器组内运行的至少一个用户容器运行所述专属系统服务id对应的专属系统服务。

在一可能的实施例中,所述装置还包括存储单元,所述存储单元用于存储所述用户标识和所述用户容器组内每个用户容器的对应关系;

所述通信单元,还用于所述服务端接收所述用户终端发送的虚拟桌面操作请求;

所述处理单元,还用于根据所述虚拟桌面操作请求通过所述用户容器组内运行的第一用户容器调用所述用户容器组内的第二用户容器。

在一可能的实施例中,所述装置还包括用户数据卷,所述用户数据卷用于存储所述用户容器组对应的用户数据。

第三方面,本申请实施例提供一种网络设备,包括处理器、输入输出设备以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,所述输入输出设备用于在所述处理器的控制下与其他设备进行通信;其中,所述处理器执行所述指令时执行如第一方面所述的方法。

第四方面,本申请实施例提供一种非瞬态计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的方法。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种基于虚拟机技术部署虚拟桌面的示意图;

图2是本申请实施例提供的一种基于容器技术部署虚拟桌面的示意图;

图3是本申请实施例提供的一种桌面虚拟化方法的流程示意图;

图4是本申请实施例提供的一种采用容器化技术实现虚拟桌面的容器部署示意图;

图5是本申请实施例提供的一种桌面虚拟化装置的结构示意图;

图6是本申请实施例提供的一种网络设备的结构示意图;

图7是本申请实施例提供的一种虚拟桌面服务系统的示意图。

具体实施方式

虚拟桌面基础设施(virtualdesktopinfrastructure,vdi)是指通过虚拟桌面服务器运行桌面系统的虚拟机,通过将用户的桌面进行虚拟化,使得用户可以通过任意客户端与虚拟桌面服务器建立连接以访问自己的桌面系统。

虚拟化技术能够满足用户数据的集中管理和对数据安全的需求。在当前移动设备大规模应用的背景下,移动操作系统(例如安卓系统)的虚拟化有着越来越多的市场需求,同时也伴随着基于移动操作系统虚拟化技术的移动桌面虚拟化的需求,相对于传统的vdi,移动操作系统桌面虚拟化是指虚拟移动基础设施(virtualmobileinfrastructure,vmi),给用户交付整个移动操作系统的桌面。本申请实施例以移动操作系统为安卓(android)操作系统为例,对本申请实施例中的桌面虚拟化方法进行介绍。可以理解,所述移动操作系统还可以是塞班(symbian)系统、ios系统、blackberry系统等。当前实现android桌面虚拟化的方法包括以下两种:

第一种是在服务器的虚拟机环境中实现android虚拟桌面。其中,虚拟机(virtualmachine,vm)是指通过软件模拟具有完整硬件系统功能的、运行在一个完全隔离环境中的完整的虚拟计算机系统。如图1所示,虚拟化技术可以在服务器的操作系统之上增加一层管理程序(hypervisor)层,hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可以虚拟化硬件资源,例如中央处理器(centralprocessingunit,cpu)、硬盘、内存资源等,然后在虚拟出来的资源上安装用户所需要的目标操作系统,从而通过虚拟化技术在虚拟机中生成所述目标操作系统的完整虚拟镜像。所述目标操作系统具有真实操作系统完全相同的功能,可以在虚拟机中独立安装运行软件,保存数据等,不会对安装虚拟机的服务器的操作系统产生任何影响,即虚拟机是一个完整的虚拟化服务器,虚拟机中具有自己的操作系统、设备驱动程序、应用程序以及配置文件等,通过hypervisor层,在一个服务器中可以创建多个不同的虚拟机。

如图1所示,图1是本申请实施例提供的一种基于虚拟机技术部署android虚拟桌面的示意图,用户在通过注册认证获取用户账号和用户密码之后,服务器会创建一个与该用户账号对应的虚拟机,所述虚拟机中安装有android操作系统,所述用户可以选择需要使用的应用程序,服务器将所述用户选择使用的应用程序安装在该用户对应的虚拟机中,所述用户可以在任何用户终端中登录自己的用户账号,向所述服务器发送虚拟桌面接入请求,所述服务器在接收到所述虚拟桌面接入请求之后,启动所述用户账号对应的虚拟机,并通过远程通信协议实现android虚拟桌面在用户终端上的显示以及用户输入的重定向。

但是,上述基于虚拟机技术实现android虚拟桌面的方法中,每一个虚拟机只能供一个用户使用,而每一个虚拟机中具有一套完整的android操作系统、设备驱动程序、应用程序以及配置文件等。例如,若图1中n=20,即在liunx服务器上部署有20个用户对应的虚拟桌面,则在liunx服务器上需要创建20个虚拟机,需要使用cpu和内存资源运行21个linux实例,其中1个linux实例是服务器中运行的linux系统,20个linux实例是虚拟机中运行的linux系统,liunx服务器需要给每个虚拟机分配物理资源,比如给虚拟机1分配2个cpu、8千兆字节(gigabyte,gb)内存、500gb磁盘,给虚拟机2分配4个cpu、16gb内存、100gb磁盘等。因此一个拥有完整操作系统等资源的虚拟机占用空间大,一般都会超过1gb,若采用虚拟机技术实现android虚拟桌面,在大规模部署时资源开销大。

第二种方式是采用容器技术,例如linux容器(linuxcontainer,lxc),实现android虚拟桌面,如图2所示,图2是本申请实施例提供的一种基于容器技术部署android虚拟桌面的示意图。在采用容器技术实现android虚拟桌面时,由于服务器的所有容器可以共享服务器操作系统内核、驱动程序和配置文件等,例如,图1中n=20,即在liunx服务器上部署有20个用户对应的虚拟桌面,则在liunx服务器上需要创建20个容器,虽然该服务器上有20个容器,但该服务器上只需要一个linux内核和一组共享库,所述共享库中包括所述服务器和所述20个容器共享的驱动程序以及配置文件等,比如每个容器可以与服务器共享音频驱动、图形处理驱动等,而每个容器中只包括应用以及运行应用所需的全部类库、配置文件等,因此,相对于上述图1中的虚拟机,图2中每个容器占用的空间相对于虚拟机占用的空间更小,一个容器一般只会占用数十兆字节的空间。

但是,上述第一种方式和第二种方式中,服务器均是以android操作系统为粒度提供虚拟桌面服务,这样会造成应用升级更新的不便,同时以操作系统为粒度会造成底层系统服务的冗余,资源利用率低。

针对上述问题,本申请实施例提供一种桌面虚拟化方法,在对本申请实施例提供的桌面虚拟化方法进行介绍之前,首先对本申请实施例中涉及到的系统服务以及应用程序等进行介绍,其中,本申请实施例中的系统服务以及应用程序均运行在服务端的容器中,以向用户提供虚拟桌面服务。所述服务端可以包括一个或者多个服务器,每个服务器中运行有一个或者多个虚拟桌面,每个虚拟桌面所包括的容器均运行在同一个服务器中。

本申请实施例中,应用程序是指需要用户主动触发启动后在服务端运行,并在启动后预定时长内不使用的情况下会退出运行的程序,所述应用程序不会在用户没用触发的情况下在服务端运行。所述应用程序通常由应用商店发布,在用户选择使用后安装在服务器中,例如视频播放软件、音频播放软件以及即时通信软件等。

系统服务是指执行指定系统功能的程序或进程,是能够提供具体功能的应用程序编程接口(applicationprogramminginterface,api),并且被纳入到servicemanager中管理,运行在systemserver中的进程。例如窗口管理服务、蓝牙管理服务、存储管理服务、电池管理服务、定位服务、网络服务等。所述系统服务能够在用户登录所述虚拟桌面之后在所述服务端长时间运行,或者被所述应用程序调用并启动后在所述服务端长时间运行,即使启动所述系统服务的应用程序被注销,所述系统服务仍然会在所述服务器运行。

本申请实施例中,所述系统服务被划分为专属系统服务与共享系统服务。其中,所述共享系统服务是在运行或者在被应用程序调用时不涉及用户个人数据的系统服务。例如时间服务、窗口管理服务、cpu调度服务以及电池管理服务等。以时间服务为例,时间服务给不同用户终端提供的均是当前时间,并不会涉及到用户的个人数据;又例如android系统的窗口管理服务,在不同的用户终端中窗口管理服务均是用来完成各自的窗口管理,比如视图(view)的增加、删除以及更新等。因此所述共享系统服务可以为多个用户共同使用。

所述专属系统服务是指在运行或者在被应用程序调用时涉及用户个人数据的系统服务。例如定位服务、摄像头服务、电话服务以及闹钟服务等,以定位服务为例,当用户需要在一个应用程序中使用定位服务时,该应用程序会向所述定位服务发送定位请求,所述定位服务在确定所述用户的位置信息之后,会向该应用程序返回所述位置信息,因此所述定位服务中包括用户的个人隐私数据。为了防止用户的隐私泄露,每个用户需要对应一组专属系统服务,每个专属系统服务只能被对应用户使用的应用程序调用,不能被多个用户共同使用。

如图3所示,图3是本申请提供的一种桌面虚拟化方法的流程示意图,所述方法包括:

s102、服务端运行多个共享服务容器。

其中,每个共享服务容器用于运行共享系统服务,且所述多个共享服务容器中的至少一个共享服务容器运行的共享系统服务供至少两个虚拟桌面共同使用。

本申请实施例中,如图4所示,图4是本申请实施例提供的一种采用容器化技术提供虚拟桌面的容器部署示意图,所述服务端创建并运行多个共享服务容器,所述多个共享服务容器中的每个共享服务容器中运行一个共享系统服务,所述共享服务容器是所述多个共享服务容器所在的服务器中的所有虚拟桌面均可以使用的容器,即所述服务器无论部署多少个虚拟桌面,所述服务器中部署的所有虚拟桌面均使用这多个共享服务容器中的共享系统服务。

s104、所述服务端接收用户终端发送的目标应用标识,根据所述目标应用标识创建用户容器组。

本申请实施例中,用户在使用虚拟桌面之前,需要通过用户终端向所述服务端发送注册请求,所述注册请求用于向所述服务端请求使用虚拟桌面服务,所述注册请求包括用户账号以及用户密码。所述服务端在通过所述注册请求之后,用户可以通过任一用户终端登录所述用户账号,选择需要使用的应用程序和/或专属系统服务,并向所述服务端发送虚拟桌面创建请求,所述虚拟桌面创建请求包括所述目标应用标识(identification,id),可选的,该虚拟桌面创建请求还可以携带用户标识。其中,所述用户标识可以为所述用户账号。所述服务端根据所述目标应用id创建与所述用户标识对应的用户容器组,所述用户容器组中包括一个或者多个用户容器。

本申请实施例中,所述目标应用id包括应用程序id和/或专属系统服务id,所述服务端根据所述应用程序id在容器镜像资源池中查找所述应用程序id对应的应用程序,并在所述服务端创建运行应用程序的用户容器,和/或根据所述专属系统服务id在容器镜像资源池中查找所述专属系统服务id对应的专属系统服务,并在所述服务器创建运行专属系统服务的用户容器。所述专属系统服务属于android操作系统的系统服务,相对于所述共享系统服务,所述专属系统服务在运行或者提供服务时会涉及到用户的个人数据,例如摄像头服务,当用户在任意一个应用程序中请求开启摄像头时,所述摄像头会拍摄到用户或者用户周围环境,为了防止用户个人信息的泄露,所述服务端的每个虚拟桌面需要一个摄像头服务。因此所述服务端的每个虚拟桌面需要一组专属系统容器封装专属系统服务以供每个用户单独使用。

如图4所示,所述用户容器组中的一个或者多个用户容器包括应用容器,每个所述应用容器中封装有用户选择使用的一个或者多个应用程序。其中,所述应用程序在用户登录虚拟桌面之后,需要用户主动开启运行,在用户不需要使用该应用程序时,用户可以选择退出该应用程序,则该应用程序结束运行且不在系统后台运行。举例来讲,音乐播放器属于应用程序,若用户选择的目标应用中包括所述音乐播放器,则所述服务端可以将所述音乐播放器封装成一个应用容器,所述用户在使用用户终端登录虚拟桌面之后,所述音乐播放器的应用图标会显示在所述用户终端的显示界面上。若所述用户想要欣赏歌曲,可以点击所述应用图标打开所述音乐播放器选择想要欣赏的歌曲,所述服务端在接收到用户的点击后,根据重定向技术确定用户点击的是音乐播放器,则所述服务端运行所述音乐播放器对应的应用容器。若所述用户不想再欣赏歌曲,则所述用户需要选择退出所述音乐播放器,所述服务端结束所述音乐播放器对应的应用容器的运行,结束音乐播放器这个应用程序的运行。

如图4所示,所述用户容器组中的一个或者多个用户容器还可以包括专属服务容器(exclusiveservicescontainer),每个所述专属服务容器中封装有用户选择使用的一个或者多个专属系统服务。本申请实施例中,所述专属系统服务可以由用户选择是否安装使用,若用户不选择使用某项系统服务,则该用户的虚拟桌面中不具备该系统服务功能,该用户对应的用户容器组中不创建该专属系统服务对应的专属服务容器。举例来讲,在使用闹钟服务的用户中,每个用户的闹钟时间设置各不相同,因此在本申请实施例中,所述闹钟服务属于专属系统服务。在当前使用android操作系统的终端中,系统服务中均包括闹钟服务,但是由于有用户没有设置闹钟的需要,则可以不选择闹钟服务,则所述服务端不会在该用户对应的用户容器组中创建闹钟服务对应的专属服务容器,从而能够减少所述服务端资源的开销。

本申请实施例中,所述用户标识对应的虚拟桌面包括所述用户容器组以及所述多个共享服务容器,即所述服务端的每个服务器中只有一组共享服务容器,一个用户标识对应的虚拟桌面包括用户容器组以及所述多个共享服务容器,所述多个共享服务容器与所述用户容器组中的一个或者多个用户容器的交互以及所述用户容器与所述专属系统服务容器的交互均是基于binder机制实现,由android的服务管理机制servicemanager进行管理。

在一种可能的实施方式中,如图4所示,所述一个或者多个用户容器中的每个用户容器只封装一个用户选择使用的应用程序或专属系统服务,即每个应用容器中只封装用户选择使用的一个应用程序,每个专属服务容器中只封装一个专属系统服务,将每个系统服务以及每个应用程序均封装成单独的容器,从而使虚拟桌面服务完全微服务化,能够使应用升级更新更加方便,提高系统的可维护性以及可扩展性。

s106、所述服务端接收所述用户终端发送的虚拟桌面接入请求,通过所述用户容器组内运行的用户容器和一部分或全部共享服务容器向所述用户终端提供所述虚拟桌面。

所述服务端在创建所述多个共享服务容器以及根据所述目标应用id创建所述用户容器组之后,即构建成功所述用户标识对应的虚拟桌面,即所述用户标识对应的虚拟桌面包括所述多个共享系统容器以及所述用户标识对应的用户容器组。

本申请实施例中,用户在需要使用虚拟桌面时,可以在任一用户终端上打开客户端的虚拟桌面服务功能,在所述用户终端上显示虚拟桌面连接界面,所述虚拟桌面连接界面包括用户信息输入窗口,所述用户在所述用户信息输入窗口输入用户账号以及用户密码,即可向所述服务端发送所述虚拟桌面接入请求,所述服务端在接收到所述虚拟桌面接入请求之后,根据所述虚拟桌面接入请求中的用户标识(即用户账号),启动部分或者全部共享服务容器以及与所述用户标识对应的用户容器组中的用户容器,所述用户终端与所述服务端之间通过远程通信协议完成所述虚拟桌面在所述用户终端上的显示。所述用户可以对所述用户终端上显示的应用程序进行操作,所述用户终端通过所述远程通信协议将所述用户的操作发送给所述服务端,所述服务端对接收到的用户输入的操作进行重定向以在所述服务端中对对应的容器进行操作,并将执行操作的结果返回到所述用户终端。其中,所述远程通信协议可以是独立计算环境简单协议(simpleprotocolforindependentcomputingenvironment,spice),可以是远程显示协议(remotedisplayprotocol,rdp),还可以是虚拟网络控制台(virtualnetworkconsole,vnc)协议,本申请实施例不做具体限定。

本申请实施例提供的桌面虚拟化方法,通过将多个虚拟桌面可以共同使用的系统服务封装成共享服务容器以供每个服务器中的所有虚拟桌面共同使用,并将每个用户单独使用的专属系统服务以及应用程序均封装成相互隔离的容器,从而能够提高系统的可维护性以及可扩展性,减少以操作系统为粒度实现桌面虚拟化时的底层系统服务的冗余,减少服务端的资源开销,提高资源利用率。进一步的,可以将移动操作系统的每个系统服务以及每个应用程序均封装成单独的容器,从而使虚拟桌面服务完全微服务化,能够使应用升级更新更加方便,进一步提高系统的可维护性以及可扩展性。

本申请实施例中,服务端构成虚拟桌面的所有的系统服务(包括共享系统服务以及专属系统服务)以及应用程序都封装在容器中进行部署,不同的用户容器组属于不同的用户,因此不同用户容器组之间需要进行隔离,以使所述服务端能够识别出不同进程所属的容器组。具体的,所述服务端在创建用户容器组时,所述服务端会为所述用户容器组配置唯一的容器组标识,即为同一个用户容器组中的每个用户容器配置相同的容器组标识,具有相同容器组标识的用户容器属于同一个用户容器组。例如,服务端接收到用户标识为abc的用户发送的虚拟桌面创建请求之后,服务端会为该用户标识对应的用户容器组中的每个用户容器配置容器组标识group_i,若服务端共创建有n个用户容器组,则这n个用户容器组的容器组标识可以分别为group_0~group_n。因此,可以在所述服务端的每个进程的进程描述符的task_struct结构体中添加容器组标识,以使所述服务端根据每个进程中task_struct结构体承载的容器组标识确定每个进程所属的用户容器组,并根据进程标识(processidentifier,pid)以及命名空间(namespace)确定每个进程对应的用户容器组中的目标容器,进而将对应的资源以及数据分配给所述目标容器。

本申请实施例中,所述服务端存储有用户标识与所述容器组标识的对应关系,即用户标识与用户容器组内每个用户容器的对应关系。所述服务端在接收到用户终端发送的虚拟桌面操作请求之后,可以根据所述虚拟桌面操作请求中的用户标识确定所述虚拟桌面操作请求对应的用户容器组,进而对对应的用户容器组中的容器执行所述虚拟桌面操作请求对应的操作。例如,所述虚拟桌面操作请求为启动音乐播放器,所述服务器接收到所述虚拟桌面操作请求之后,根据所述虚拟桌面操作请求中的用户标识确定所述虚拟桌面操作请求对应的用户容器组,并在所述用户容器组中启动所述音乐播放器对应的应用容器。

本申请实施例中,虚拟桌面操作请求可能是应用程序a需要调用另一个应用程序b或者专属系统服务c,则所述服务端在接收到所述虚拟桌面操作请求之后,需要通过应用程序a对应的第一用户容器调用所述用户容器组内的第二用户容器。为了防止不同用户容器组中的容器之间直接通信,所述第二用户容器需要验证所述第一用户容器发送的所述虚拟桌面操作请求中的第一容器组标识与所述第二用户容器的第二容器组标识是否一致。因此,所述服务端的用户容器需要具有容器组标识识别机制。具体的,容器间的通信是基于binder机制实现的,为了确保不同容器组中的容器不能直接通信,需要为binder的客户端与服务端添加容器组标识识别功能,即为每个容器配置容器组标识识别功能,其中,binder的客户端与服务端是指基于binder机制进行交互的两个容器。

举例来讲,用户在用户终端上打开相册应用,所述用户终端向服务端发送第一操作请求,所述服务端根据所述第一操作请求中的用户标识确定所述相册应用对应所述服务端的用户容器组group_0中的第一用户容器,则所述服务端启动group_0中的所述第一用户容器。若用户需要在所述相册应用中将一张照片通过即时通信应用分享给好友,则所述用户需要通过所述相册应用调用所述即时通信应用,所述相册应用对应的第一用户容器会向所述即时通信应用对应的第二用户容器发送调用请求,具体的,所述服务端首先根据所述调用请求中携带的所述第一用户容器的第一容器组标识确定发送所述调用请求的第一用户容器所属的用户容器组,然后根据所述第一容器组标识将该调用请求发送给相同用户容器组中的所述第二用户容器。所述第二用户容器在接收到所述调用请求后,首先识别所述调用请求中的第一容器组标识是否与所述第二用户容器的第二容器组标识一致,若一致,则所述第二用户容器启动,打开所述即时通信应用,并在所述用户终端显示所述即时通信应用的用户界面,以使所述用户选择好友。又例如,在应用程序a中使用定位功能,则所述应用程序a对应的容器a需要向封装有定位服务的容器b发送定位请求,所述定位请求包括所述容器a的容器组标识,所述容器b在接收到所述定位请求之后,识别所述定位请求中的容器组标识,若所述定位请求中的所述容器组标识与所述容器b所在的容器组的容器组标识相同,则所述容器b执行定位功能,并将定位结果返回给容器a,若不同,则所述容器b不响应所述定位请求。

可以理解,由于系统服务中的专属系统服务属于每个虚拟桌面独享的服务,共享系统服务是所有桌面系统共同使用的服务,因此所述服务端在对系统服务进行容器化之前,需要确定系统服务属于共享系统服务还是专属系统服务,对于一个专属系统服务,所述服务端在将所述专属系统服务容器化时,将封装该专属系统服务的容器的标识配置为与该专属系统服务所属的用户容器组的容器组标识相同;对于一个共享系统服务,将封装该共享系统服务的容器的标识配置为空。

本申请实施例中,不同虚拟桌面的数据(即不同用户的数据)需要有不同的数据存储区域,由于每个用户的android虚拟桌面是通过用户容器组的方式部署在服务端,因此必须为每个用户容器组配置一块独立的存储区域,以保证不同用户间的数据隔离。具体的,将主机的根文件系统rootfs复制一份,并以此作为共享的数据卷,逐一挂载到用户容器组中的各个容器上,从而实现多容器间的文件系统共享。然后对不同的用户容器组分别创建不同的数据卷,并挂载到对应的用户容器组,从而为每个用户容器组(即虚拟桌面)分配不同的数据存储区域,实现用户容器组间的数据存储隔离。

本申请实施例中,根据所述用户标识创建所述用户标识对应的用户容器组之前,所述服务端还会创建容器镜像资源池,所述容器镜像资源池中包括应用容器集以及专属服务容器集,所述应用容器集包括多个应用容器,所述专属服务容器集包括多个专属服务容器。所述服务端首先将所述容器镜像资源池封装成应用市场视图发送给所述用户终端,以供所述用户从所述应用市场中选取需要使用的应用程序和/或专属系统服务;然后所述用户终端将用户选择的应用程序标识和/或专属系统服务标识以及所述用户的用户标识发送给所述服务端。

请参见图5,图5为本申请实施例提供的一种桌面虚拟化装置的结构示意图,如图5所示,所述网络设备200至少包括:处理单元210和通信单元220。其中,

处理单元210,用于运行多个共享服务容器,每个共享服务容器用于运行共享系统服务,且所述多个共享服务容器中的至少一个共享服务容器运行的共享系统服务供至少两个虚拟桌面共同使用;

通信单元220,用于接收用户终端发送的目标应用标识id;

所述处理单元210,还用于根据所述目标应用id创建用户容器组,所述用户容器组内运行用户容器;

所述接通信单元220,还用于接收所述用户终端发送的虚拟桌面接入请求;

所述处理单元210,还用于在接收到所述虚拟桌面接入请求之后,运行所述用户容器组内的用户容器和一部分或全部共享服务容器向所述用户终端提供所述虚拟桌面。

所述装置还包括存储单元230,所述存储单元用于存储所述用户标识和所述用户容器组内每个用户容器的对应关系;

所述通信单元,还用于所述服务端接收所述用户终端发送的虚拟桌面操作请求;

所述处理单元,还用于根据所述虚拟桌面操作请求通过所述用户容器组内运行的第一用户容器调用所述用户容器组内的第二用户容器或所述多个共享服务容器内的第一共享服务容器。

本申请实施例中,所述通信单元220用于所述桌面虚拟化装置与用户终端进行交互,例如上述s104中在创建用户对应的虚拟桌面之前接收所述用户终端发送的注册请求以及接收所述用户终端的虚拟桌面创建请求;或者如s106中在创建虚拟桌面之后,将虚拟桌面发送给对应的用户终端,或者在接收到用户通过用户终端发送的操作指令之后,将所述操作指令请求的服务发送给所述用户终端等。所述处理单元210用于在所述桌面虚拟化装置中创建所述用户标识对应的虚拟桌面以及实现上述方法实施例中描述的以服务端为执行主体的其他操作。

请参见6,图6为本申请实施例提供的一种网络设备的结构示意图,所述网络设备300至少包括:处理器310、通信接口320以及存储器330,所述处理器310、输入输出设备320以及存储器330通过总线340相互连接,其中,

所述处理器310可以是中央处理器(centralprocessingunit,cpu),或者cpu和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specificintegratedcircuit,asic),可编程逻辑器件(programmablelogicdevice,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld),现场可编程逻辑门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。

所述通信接口320可以为有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他模块或设备进行通信。例如上述s104中在创建用户对应的虚拟桌面之前接收所述用户终端发送的注册请求以及接收所述用户终端的虚拟桌面创建请求;或者如s106中在创建虚拟桌面之后,将虚拟桌面发送给对应的用户终端,或者在接收到用户通过用户终端发送的操作指令之后,将所述操作指令请求的服务发送给所述用户终端等。

所述存储器330包括但不限于是随机存取存储器(randomaccessmemory,ram)、只读存储器(read-onlymemory,rom)或可擦除可编程只读存储器(erasableprogrammableread-onlymemory,eprom)或者快闪存储器,该存储器330用于存储程序代码及数据,并可以将存储的数据传输给处理器310。

所述总线340可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。所述总线340可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

所述网络设备300中的处理器310用于读取存储器330中的相关指令执行以下操作:

处理器310运行多个共享服务容器,每个共享服务容器用于运行共享系统服务,且所述多个共享服务容器中的至少一个共享服务容器运行的共享系统服务供至少两个虚拟桌面共同使用;

处理器310控制通信接口320接收用户终端发送的目标应用标识id;

处理器310还用于根据所述目标应用id创建用户容器组,所述用户容器组内运行用户容器;

处理器310控制通信接口320接收所述用户终端发送的虚拟桌面接入请求;

所述处理单元310,还用于在接收到所述虚拟桌面接入请求之后,运行所述用户容器组内的用户容器和一部分或全部共享服务容器向所述用户终端提供所述虚拟桌面。

所述网络设备通过上述步骤,可以在所述网络设备中创建如图4所示的一组共享服务容器以及一个或者多个用户容器组,以向多个用户提供虚拟桌面服务,如图7所示,该网络设备应用在如图7所示的虚拟桌面服务系统中,图7所示的系统包括多个用户终端组成的用户终端集群以及多个服务器组成的服务器集群,图7的服务器集群可以向用户提供基于云服务的虚拟桌面服务。所述服务器集群中的任意一个服务器在接收到用户终端的虚拟桌面创建请求之后,会根据用户终端发送的用户标识以及目标应用标识在该服务器创建所述用户标识对应的用户容器组,所述用户容器组与该服务器中创建的多个共享服务容器共同组成所述用户标识对应的虚拟桌面,该服务器与用户终端之间通过远程通信协议进行通信连接,以向用户提供虚拟桌面服务。

具体地,上述网络设备300执行的各种操作的具体实现可参照上述方法实施例的具体操作,在此不再赘述。

本申请实施例还提供一种非瞬态计算机存储介质,所述非瞬态计算机存储介质中存储有指令,当其在处理器上运行时,执行图3中上述s102、s104、s106和/或用于执行本申请方法实施例中所述服务端所执行的其它步骤。

在上述实施例中,可以全部或部分地通过软件、硬件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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