发明内容
本申请实施例提供一种云桌面部署方法及云桌面系统,用于实现通过云桌面系统为用户提供复杂应用程序并获得良好的用户体验。
第一方面,本申请实施例提供一种云桌面系统,包括:服务器、应用服务器和客户端;
所述客户端用于模拟Windows操作界面,提供虚拟开始菜单和虚拟工具栏,并提供第一类应用的应用程序接口和第二类应用的应用程序接口;
所述应用服务器上安装有第一类应用程序,所述应用服务器在接收到通过所述第一类应用的应用程序接口发送的打开第一类应用程序的请求后,根据所述请求运行相应的第一类应用程序,并通过所述应用程序接口在所述客户端显示所述第一类应用程序的运行界面;
所述虚拟化服务器中部署有用户的虚拟机,所述虚拟机中安装有第二类应用程序,所述虚拟机在接收到通过所述第二类应用的应用程序接口发送的打开第二类应用程序的请求后,根据所述请求运行相应的第二类应用程序,并通过所述应用程序接口在所述客户端显示所述第二类应用程序的运行界面。
在一种可能的实现方式中,所述应用服务器具体用于:在接收到打开第一类应用程序的请求后,通过所述应用程序接口与发送所述请求的客户端建立会话;
所述客户端通过所述会话将所述用户的虚拟机的数据盘映射到所述应用服务器上;
所述应用服务器通过所述会话在所述客户端显示所述第一类应用程序的运行界面。
在一种可能的实现方式中,所述应用服务器为所述客户端的用户创建用户目录,所述用户目录包括所述会话的配置信息。
在一种可能的实现方式中,所述打开第一类应用程序的请求中包括发送所述请求的客户端对应的用户信息;
所述应用服务器在接收到打开第一类应用程序的请求之后,还用于:根据所述用户信息确定所述用户是否为授权用户。
在一种可能的实现方式中,所述应用服务器安装有RemoteAppUtil软件,通过所述RemoteAppUtil软件提供第一类应用的应用程序接口。
在一种可能的实现方式中,所述客户端通过所述第二类应用的应用程序接口访问用户虚拟机的磁盘。
第二方面,本申请实施例提供一种云桌面部署方法,包括:
云桌面系统中的客户端接收第一请求,所述第一请求为来自用户的打开第一类应用的请求;所述客户端通过第一类应用的应用程序接口向所述云桌面系统中的应用服务器发送第二请求,所述第二请求用于请求打开第一类应用程序;所述应用服务器根据所述第二请求运行相应的第一类应用程序,并通过所述应用程序接口在所述客户端显示所述第一类应用程序的运行界面;
云桌面系统中的客户端接收第三请求,所述第三请求为来自用户的打开第二类应用的请求;所述客户端通过第二类应用的应用程序接口向所述用户的虚拟机发送第四请求,所述第四请求用于请求打开第二类应用程序;所述虚拟机根据所述第四请求运行相应的的第二类应用程序,并通过所述应用程序接口在所述客户端显示所述第二类应用程序的运行界面。
在一种可能的实现方式中,所述应用服务器根据所述第二请求运行第一类应用程序,并通过所述应用程序接口在所述客户端显示所述第一类应用程序的运行界面,包括:
通过所述应用程序接口与发送所述第二请求的客户端建立会话;
所述客户端通过所述会话将所述用户的虚拟机的数据盘映射到所述应用服务器上;
所述应用服务器通过所述会话在所述客户端显示所述第一类应用程序的运行界面。
在一种可能的实现方式中,还包括:
所述应用服务器为所述客户端的用户创建用户目录,所述用户目录包括所述会话的配置信息。
在一种可能的实现方式中,所述第二类应用程序包括用于访问所述用户虚拟机磁盘的应用程序。
在本申请上述实施例中,对于复杂的、运行时对计算资源、显卡资源要求较高的第一类应用程序,可以将其安装在应用服务器中,并在客户端中设置有对应的应用程序接口,用户可以通过该应用程序接口运行访问应用服务器从而实现使用第一类应用程序,避免将第一类应用程序直接安装于虚拟机上可能造成卡顿的现象;对于其他应用程序,可以将其安装在虚拟机中,也可以通过在客户端设置相应的应用程序接口以方便用户使用。且客户端模拟Windows操作界面,提供虚拟开始菜单和虚拟工具栏,使得用户在使用本申请实施例提供的云桌面系统时,与直接访问虚拟机的操作体验无异,用户对于远程访问应用服务器使用第一类应用程序无感知,增强了用户体验。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将对本申请的技术方案进行详细的描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本申请所保护的范围。
云桌面(Virtual Device Interface,VDI)系统通常由服务器、云管平台和终端设备组成,其中,服务器承担了IT系统的主要计算任务。目前,市场上主要的云桌面系统,如vmware\ctrix\Microsoft等VDI产品,通常向用户提供客户端软件,可直接安装到个人计算机(Personal Computer,PC)上,通过运行客户端登录云桌面,或者,使用浏览器访问用户的虚拟机。其中,服务器承担了主要计算任务。
然而,对于复杂的、运行时对计算资源、显卡资源要求较高的应用程序,如三维设计软件程序等,常常会出现卡顿、画面不流畅等现象。若通过上述架构解决卡顿问题,需要投入大量财力、物力提高服务器的软硬件配置。
为了解决上述问题,本申请实施例提供了一种云桌面系统,用于实现通过云桌面系统为用户提供复杂应用程序并获得良好的用户体验。
参见图1,为本申请实施例提供的一种云桌面系统的示意图,如图所示,该系统可以包括:虚拟化服务器101、应用服务器102和客户端103。
其中,客户端103用于模拟Windows操作界面,提供虚拟开始菜单和虚拟工具栏,并提供第一类应用的应用程序接口和第二类应用程序接口。具体的,用户可以将云桌面系统发布的客户端软件安装在个人计算机上,然后在个人计算机上运行该客户端软件后,便可登录用户的云桌面。
现有技术中用户登录云桌面,即,客户端显示虚拟机的运行界面;而本申请中,客户端并不直接显示虚拟机的运行界面,而是客户端模拟Windows操作界面,提供虚拟开始菜单和虚拟工具栏,并提供第一类应用的应用程序接口和第二类应用的应用程序接口使用第一类应用或第二类应用,以使用户能够通过应用程序接口使用相应的应用,从而使得用户与直接访问虚拟机的操作无异。
上述第一类应用程序安装于应用服务器102中,应用服务器102向客户端103提供第一类应用的应用程序接口,应用服务器102在接收到通过应用程序接口发送的打开第一类应用程序的请求后,根据该请求运行相应的第一类应用程序,并通过该应用程序接口在客户端显示第一类应用程序的运行界面。
第一类应用程序可以为对计算资源、显卡资源要求较高的应用程序,如三维设计软件程序等。
用户的虚拟机部署在虚拟化服务器101中。上述第二类应用程序安装于用户的虚拟机中,虚拟机向客户端103提供第二类应用程序接口,虚拟机在介绍到通过第二类应用的应用程序接口发送的打开第二类应用程序的请求后,根据该请求运行相应的第二类应用程序,并通过该接口在客户端显示第二类应用程序的运行界面。
在上述实施例中,虚拟机中不必安装有第一类应用程序,避免直接在虚拟机中安装第一类应用程序可能导致的卡顿等问题,避免对服务器配置要求较高需要付出较高成本提高服务器性能。
本申请实施例中,可以通过解析远程桌面协议(RDP),利用开源软件实现在win7、win10、windows server 2016系统上发布RemoteAPP,自主开发了RemoteAppUtil软件,为云管平台(比如WiseOS)提供远程应用管理接口,构成一个应用发布、删除、授权的管理中心。云管平台通过RemoteAppUtil的远程应用程序接口实现应用服务器上的应用发布和用户授权,调度用户应用请求,平衡服务器负载。
客户端可以根据Windows桌面交互习惯为用户提供前端体验,将第一类应用的应用程序接口可以以图标的形式展示给用户,授权的应用可以显示在类似于“开始菜单”的“程序组”的界面上,或者在状态栏中显示,或者,用户还可以根据使用习惯创建快捷方式,如图2所示。用户可以通过双击或右击应用图标与其交互,而不必关心这个应用是运行在自己的虚拟机中的还是运行在远程的应用服务器上。用户无需在云桌面客户端和远程调用软件之间进行切换,提高了用户体验。
对于第二类应用程序,如对于对计算资源、显卡资源要求较低的应用程序,仍可以将其安装在虚拟机中。虚拟机在通过第二类应用的应用程序接口接收到打开第二类应用程序的请求后,由虚拟机运行第二类应用程序,充分利用虚拟化服务器的资源,避免部署更多的应用服务器。
可选的,用户在需要访问其虚拟机的存储磁盘时,也可以通过应用程序接口的方式进行访问,例如,在客户端中显示“计算机”图标,该图标对应为访问虚拟机磁盘的应用程序接口。或者,用户也可以通过其他应用程序访问虚拟机的存储数据,例如,用户在需要打开虚拟机中存储的Word文件时,可以先通过客户端提供的Word应用程序接口使虚拟机运行Word应用程序,然后在客户端所显示的Word应用程序运行界面中打开存储在虚拟机中的Word文件。
多个用户在同时使用同一第一类应用程序时,为了实现用户间的隔离,可选地,应用服务器在接收到打开第一类应用程序的请求后,可以通过应用程序接口与发送请求的客户端建立会话,应用服务器通过会话对不同的用户进行隔离。客户端通过会话将该用户的虚拟机的数据盘映射到应用服务器上,如图2所示,避免发生文件访问路径错误;此外,即使多个登用户陆到同一应用个服务器,互相之间看不到别人的映射盘,保证了文件私密性。应用服务器通过会话在客户端显示第一类应用程序的运行界面。
进一步的,应用服务器可以为访问的用户创建用户目录,该用户目录包括会话的配置信息,此后该用户再次访问需要创建会话时,应用服务器可以根据用户目录中的配置信息建立会话。
上述实施例提供的云桌面系统可以应用于企业云系统,应用服务器由企业提供。用户在注册云系统桌面时,云管平台可以根据用户信息,确定用户是否有权限访问企业应用服务器提供的第一应用程序,若有权限,则可以为其客户端配置的相应的第一应用程序的应用程序接口。用户使用该应用程序接口使用第一应用程序时,客户端通过该应用程序接口向企业应用服务器发送的打开第一类应用程序的请求中包含有用户信息,企业应用服务器在接收都请求后,根据用户信息对用户进行验证,验证其是否为授权用户,若已授权则允许其使用。而上述过程中,无需用户输入身份验证信息,与使用直接安装在虚拟机上的应用程序的操作无异。
在一个具体实施例中,可以按照如图3所示的流程图部署上述云桌面系统。为企业应用服务器安装操作系统,例如安装基于Windows的操作系统,然后安装应用,如第一类应用程序。并在企业应用服务器上安装RemoteAppUtil软件,以便后续提供应用程序接口。云管平台发起第一类应用发布流程,具体的:定义第一类应用程序的名称、确定应用服务器、选择应用路径,在获取授权用户信息后,即可调用RemoteAppUtil软件完成应用程序接口的发布。用户在登录客户端后,可以在“开始菜单”中选择“企业应用中心”,从“企业应用中心”中选择所需的应用,并双击其应用图标,云管平台根据个应用服务器的使用率,将用户的访问调度至资源充足的应用服务器。客户端将用户的虚拟机的数据盘映射挂载至应用服务器,即可实现远程应用启动,将用户的文件加载至虚拟机,待用户关闭程序时断开与应用服务器的连接。
在本申请上述实施例中,对于复杂的、运行时对计算资源、显卡资源要求较高的第一类应用程序,可以将其安装在应用服务器中,并在客户端中设置有对应的应用程序接口,用户可以通过该应用程序接口运行访问应用服务器从而实现使用第一类应用程序,避免将第一类应用程序直接安装于虚拟机上可能造成卡顿的现象;对于其他应用程序,可以将其安装在虚拟机中,也可以通过在客户端设置相应的应用程序接口以方便用户使用。且客户端模拟Windows操作界面,提供虚拟开始菜单和虚拟工具栏,使得用户在使用本申请实施例提供的云桌面系统时,与直接访问虚拟机的操作体验无异,用户对于远程访问应用服务器使用第一类应用程序无感知,增强了用户体验。
基于相同的技术构思,本申请实施例还提供了一种云桌面部署方法,该方法包括:
云桌面系统中的客户端接收第一请求,所述第一请求为来自用户的打开第一类应用的请求;所述客户端通过第一类应用的应用程序接口向所述云桌面系统中的应用服务器发送第二请求,所述第二请求用于请求打开第一类应用程序;所述应用服务器根据所述第二请求运行相应的第一类应用程序,并通过所述应用程序接口在所述客户端显示所述第一类应用程序的运行界面;
云桌面系统中的客户端接收第三请求,所述第三请求为来自用户的打开第二类应用的请求;所述客户端通过第二类应用的应用程序接口向所述用户的虚拟机发送第四请求,所述第四请求用于请求打开第二类应用程序;所述虚拟机根据所述第四请求运行相应的第二类应用程序,并通过所述应用程序接口在所述客户端显示所述第二类应用程序的运行界面。
在一种可能的实现方式中,所述应用服务器根据所述第二请求运行第一类应用程序,并通过所述应用程序接口在所述客户端显示所述第一类应用程序的运行界面,包括:
通过所述应用程序接口与发送所述第二请求的客户端建立会话;
所述客户端通过所述会话将所述用户的虚拟机的数据盘映射到所述应用服务器上;
所述应用服务器通过所述会话在所述客户端显示所述第一类应用程序的运行界面。
在一种可能的实现方式中,还包括:
所述应用服务器为所述客户端的用户创建用户目录,所述用户目录包括所述会话的配置信息。
在一种可能的实现方式中,所述第二类应用程序包括用于访问所述用户虚拟机磁盘的应用程序。
在本申请上述实施例中,对于复杂的、运行时对计算资源、显卡资源要求较高的第一类应用程序,可以将其安装在应用服务器中,并在客户端中设置有对应的应用程序接口,用户可以通过该应用程序接口运行访问应用服务器从而实现使用第一类应用程序,避免将第一类应用程序直接安装于虚拟机上可能造成卡顿的现象;对于其他应用程序,可以将其安装在虚拟机中,也可以通过在客户端设置相应的应用程序接口以方便用户使用。且客户端模拟Windows操作界面,提供虚拟开始菜单和虚拟工具栏,使得用户在使用本申请实施例提供的云桌面系统时,与直接访问虚拟机的操作体验无异,用户对于远程访问应用服务器使用第一类应用程序无感知,增强了用户体验。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其同等技术的范围之内,则本发明也意图包含这些改动和变型在内。