CN103810019B - 一种支持进程粒度网络计算的虚拟计算环境系统 - Google Patents
一种支持进程粒度网络计算的虚拟计算环境系统 Download PDFInfo
- Publication number
- CN103810019B CN103810019B CN201410045114.8A CN201410045114A CN103810019B CN 103810019 B CN103810019 B CN 103810019B CN 201410045114 A CN201410045114 A CN 201410045114A CN 103810019 B CN103810019 B CN 103810019B
- Authority
- CN
- China
- Prior art keywords
- application
- desktop
- service
- terminal system
- network
- 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
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种支持进程粒度网络计算的虚拟计算环境系统,属于计算机领域,用户在本地计算机上发起选定应用的执行请求,该系统在本地计算机及网络中的应用程序库服务器上查找符合执行请求要求的应用并在对应的应用程序库服务器上执行,并将应用执行过程的输入请求及输出结果集成于本地计算机的桌面终端系统。该系统包括:桌面终端系统、应用服务中心、应用程序库服务器、以及网络。桌面终端系统负责用户的输入请求和输出结果的处理;应用服务中心主要负责应用注册、查询及应用的动态调度;应用程序库服务器负责执行应用。本发明能够有效拓展用户计算机的计算能力。
Description
技术领域
本发明属于计算机领域,主要涉及如何通过网络计算资源拓展用户计算机的计算能力。
背景技术
目前通过网络计算资源拓展用户的本地计算机的计算能力主要有两类手段,一类是通过远程桌面访问技术并委托远程特定的物理计算机系统执行应用程序,其拓展计算能力有限;另外一类是通过虚拟机技术和远程桌面访问技术在远程的云服务中心中以虚拟机粒度来执行应用程序并通过远程桌面访问,其运行最小单位虚拟机,运行代价过高。
发明内容
本发明目的是解决现有网络计算资源拓展技术运行代价过高的问题,提供一种支持进程粒度网络计算的虚拟计算环境系统,通过网络计算资源并以进程为最小运行单位有效地拓展用户计算机的计算能力。
本发明提供的支持进程粒度网络计算的虚拟计算环境系统,是由用户在本地计算机上发起选定应用的执行请求,该虚拟计算环境系统在本地计算机及网络中的应用程序库服务器上查找符合执行请求要求的应用,在对应的应用程序库服务器上执行,并将应用执行过程的输入请求及输出结果集成于本地计算机的桌面终端系统,从而拓展用户的本地计算机的计算能力;该系统包括“桌面终端系统”装置、至少有一个“应用服务中心”装置、至少有一个“应用程序库服务器”装置、以及“网络”装置,“桌面终端系统”装置、“应用服务中心”装置和“应用程序库服务器”装置三者之间通过“网络”装置采用网络通信方式进行互联;其中:
(1)“桌面终端系统”装置,主要负责用户输入请求和应用程序输出结果的处理,包括桌面图标显示模块、桌面窗口显示模块、桌面应用运行管理模块、桌面应用图标管理模块、桌面应用信息库、本地应用代理、本地应用程序库和本地应用实例库;
“桌面图标显示模块”读取“桌面应用信息库”中在该“桌面终端系统”装置中注册的所有应用的“应用基本元信息”和“应用图标显示位置信息”,并将这些应用的应用图标显示在该“桌面终端系统”装置中的“桌面窗口显示模块”所创建的“图标窗口”中;“桌面窗口显示模块”负责在该“桌面终端系统”装置中创建、显示及销毁所有“应用窗口”和“图标窗口”,“桌面窗口显示模块”依据应用的“应用实例”的请求创建相应的“应用窗口”,“桌面窗口显示模块”依据该“桌面终端系统”装置中注册的所有应用的“应用图标显示位置信息”创建“图标窗口”;“桌面应用图标管理模块”负责管理在该“桌面终端系统”装置中注册新应用、卸载应用、发布本地应用和修改本地已注册应用图标显示位置信息等,并读取和保存在“桌面应用信息库”;“桌面应用信息库”中存储着在该“桌面终端系统”装置中注册的所有应用的“应用基本元信息”和“应用图标显示位置信息”;“本地应用程序库”中存储着可在该“桌面终端系统”装置中运行的应用程序,并包括增加、删除及管理这些应用程序;“本地应用代理”负责在“本地应用程序库”查找指定本地应用程序、创建指定本地应用程序的应用实例、以及与“桌面窗口显示模块”的“会话通道”;“本地应用实例库”为本地“桌面终端系统”装置中正在运行的所有应用实例集合;“桌面应用运行管理模块”负责从“桌面图标显示模块”获取用户待执行的应用请求,并动态发起从“本地应用代理”或者网络上“应用服务中心”装置执行该应用的请求以及“会话通道”信息,并协调应用执行环境的建立;
“本地应用代理”与“桌面窗口显示模块”采用网络通信方式,其它模块之间采用进程间通信或者网络通信方式,其中使用进程间通信机制来通信和协调时可具体包括信号、信号量以及共享内存方式;
(2)“应用服务中心”装置,主要负责应用程序的登记、查找、应用调度和运行服务代理,包括应用登记模块、应用查找模块、应用调度服务、运行服务和应用信息库;
“应用服务中心”装置,主要负责应用程序的登记、查找、应用调度和运行服务代理,包括应用登记模块、应用查找模块、应用调度服务、运行服务和应用信息库;
“应用信息库”负责保存网络上“应用程序库服务器”装置上已发布应用的应用扩展元信息的保存、修改和删除;“应用登记模块”负责注册登记、更新、撤销来自网络上“应用程序库服务器”装置上应用的扩展元信息到“应用信息库”中;“应用查找模块”负责从“应用信息库”查找指定应用的应用扩展元信息;“应用调度服务”负责接收网络上“桌面终端系统”装置发来的应用执行请求,并通过“应用查找模块”在“应用信息库”中查找待执行应用的所在的“应用程序库服务器”装置列表,根据负载等情况等调度策略动态选择一个“应用程序库服务器”装置,并向该“应用程序库服务器”装置中的“应用代理”发起执行该应用的请求;“运行服务”负责为“桌面终端系统”装置与“应用程序库服务器”装置不能建立直接网络连接时的建立“会话通道”中转代理;
“应用服务中心”装置的各模块之间采用进程间通信或者网络通信方式,其中使用进程间通信机制来通信和协调时可具体包括信号、信号量以及共享内存方式;
(3)“应用程序库服务器”装置,主要负责应用程序的执行,包括应用代理、应用程序库和应用实例库;
“应用程序库”中存储着可在该“应用程序库服务器”装置中运行的应用程序,并支持对这些应用的增加、修改和删除管理;“应用代理”负责在该“应用程序库服务器”装置中的“应用程序库”查找指定应用程序、并在该“应用程序库服务器”装置中创建指定应用程序的应用实例、以及与网络上发起该应用执行请求的“桌面终端系统”装置中的“桌面窗口显示模块”的“会话通道”;“应用实例库”为该“应用程序库服务器”装置中正运行的应用实例集合;
“应用程序库服务器”装置的各模块之间采用进程间通信或者网络通信方式,其中使用进程间通信机制来通信和协调时可具体包括信号、信号量以及共享内存方式;
(4)“网络”装置,主要负责网络通信,网络物理层支持有线网络传输协议、无线网络传输协议,网络传输层支持TCP/IP协议。
“桌面终端系统”装置、“应用服务中心”装置和“应用程序库服务器”装置三者之间通过“网络”装置采用网络通信方式进行互联。
一种如权利要求1-4中任意一项所述的支持进程粒度网络计算的虚拟计算环境系统中运行应用程序的方法,所述方法包括具体步骤如下:
第1、启动“应用程序库服务器”装置,“应用程序库服务器”装置准备接收网络发来的应用执行请求、并在该“应用程序库服务器”装置运行该应用程序;
第2、启动“应用服务中心”装置,“应用服务中心”装置准备接收网络上“桌面终端系统”装置发来的应用执行请求、寻找满足应用执行要求的“应用程序库服务器”装置、并转发应用执行请求到该“应用程序库服务器”装置;
第3、用户启动“桌面终端系统”装置,“桌面图标显示模块”显示桌面图标环境;“桌面应用运行管理模块”从本地计算机持久存储空间中读取“应用执行规则”配置文件到内存;
第4、用户选中准备运行的应用程序的图标,并选择执行该应用程序的操作动作;
第5、“桌面图标显示模块”捕捉到用户执行应用程序的操作动作,读取待执行应用程序的“基本元信息”,进一步通知“桌面应用运行管理模块”用户的第4步中应用执行请求;“桌面图标显示模块”继续捕捉用户接下来新的操作动作;
第6、“桌面应用运行管理模块”处于持续接收“桌面图标显示模块”应用执行请求通知的状态;当“桌面应用运行管理模块”收到“桌面图标显示模块”应用执行请求通知时,“桌面应用运行管理模块”依据“应用执行规则”判断第4步中应用执行请求是否为关闭“桌面终端系统”装置,若是则执行第14步,否则执行第7步;
第7、“桌面应用运行管理模块”依据“应用执行规则”判断是否优先在本地“桌面终端系统”装置中查询并执行该应用程序,若优先在本地“桌面终端系统”装置中查询并执行该应用程序,则执行第8步,否则执行第10步;
第8、“桌面应用运行管理模块”发送应用执行请求给“本地应用代理”,“本地应用代理”判断是否该应用存在于“本地应用程序库”,若该应用存在于“本地应用程序库”中,则执行第9步,否则执行第10步:
第9、“桌面应用运行管理模块”发起在本地“桌面终端系统”装置中执行该应用程序的子任务,“桌面应用运行管理模块”跳转到第6步执行;
第10、“桌面应用运行管理模块”通过网络连接“应用服务中心”装置中的“应用调度服务”,并请求“应用调度服务”查找并运行该应用程序;
第11、“应用服务中心”装置中的“应用调度服务”请求“应用查找模块”在“应用信息库”中是否存在该应用的“扩展元信息”,若不存在该应用的“扩展元信息”,则执行第12步,否则执行第13步;
第12、“应用服务中心”装置中的“应用调度服务”通知用户“桌面终端系统”装置中“桌面应用运行管理模块”待执行应用程序不存在,“桌面应用运行管理模块”告知用户待执行应用无法执行,跳转到第6步执行;
第13、“应用服务中心”装置中的“应用调度服务”通知用户“桌面终端系统”装置中“桌面应用运行管理模块”待执行应用程序存在,用户“桌面终端系统”装置中“桌面应用运行管理模块”发起在网络上执行该应用程序的子任务,用户“桌面终端系统”装置中“桌面应用运行管理模块”跳转到第6步执行;
第14、“桌面应用运行管理模块”从“本地应用程序库”加载关闭“桌面终端系统”装置的应用程序,并在本地运行该应用程序,从而关闭用户的本地“桌面终端系统”装置。
按照本发明提供的运行应用程序的方法,所述的第9步中发起在本地计算机“桌面终端系统”装置中执行该应用程序的子任务,具体实现方法如下:
第9-1、“桌面应用运行管理模块”通知“桌面窗口显示模块”建立会话通道和会话密钥;“桌面窗口显示模块”建立会话通道和会话密钥,并将会话通道ID和会话密钥传递给“桌面应用运行管理模块”;
第9-2、“桌面应用运行管理模块”将第9-1步中的会话通道ID和会话密钥传递给“本地应用代理”,“桌面应用运行管理模块”继续等待“桌面图标显示模块”接下来的应用执行请求;“本地应用代理”根据该会话通道ID和会话密钥信息连接“桌面窗口显示模块”会话通道;
第9-3、“本地应用代理”从“本地应用程序库”加载该应用、并在本地创建该应用“执行实例”;
第9-4、“本地应用代理”将该应用执行实例的输入输出重定向到第9-2步中所述的“本地应用代理”与“桌面窗口显示模块”的会话通道中;
第9-5、“桌面窗口显示模块”负责与“本地应用代理”协作完成该应用在本地运行的“执行实例”,“桌面窗口显示模块”建立该应用“执行实例”的输入及输出资源;该应用“执行实例”执行结束后,“桌面窗口显示模块”断开该应用“执行实例”会话通道,“桌面窗口显示模块”清除该应用“执行实例”的输入及输出资源,“本地应用代理”清除该应用“执行实例”在本地计算机上的计算资源;
第9-6、在本地计算机“桌面终端系统”装置中执行该应用程序的任务结束。
按照本发明提供的运行应用程序的方法,所述的第13步中发起在网络上执行该应用程序的子任务,具体实现方法如下:
第13-1、用户端“桌面终端系统”装置中“桌面应用运行管理模块”通知“桌面窗口显示模块”建立会话通道和会话密钥;“桌面窗口显示模块”建立会话通道和会话密钥,并将会话通道ID和会话密钥传递给“桌面应用运行管理模块”;
第13-2、用户端“桌面终端系统”装置中“桌面应用运行管理模块”将第13-1步中的会话通道ID和会话密钥传递给网络上“应用服务中心”装置中的“应用调度服务”,“桌面应用运行管理模块”继续等待“桌面图标显示模块”接下来的应用执行请求;
第13-3、“应用服务中心”装置中的“应用调度服务”从网络上获取第13-1步中的会话通道ID和会话密钥,并将该会话通道ID和该会话密钥作为当前的该会话通道ID和该会话密钥;“应用服务中心”装置中的“应用调度服务”根据该应用的“扩展元信息”,找到该应用所在的“应用程序库服务器”装置列表,根据调度策略选择一个“应用程序库服务器”装置;
第13-4、“应用服务中心”装置中的“应用调度服务”判断第13-3步所选择的“应用程序库服务器”装置相对于第13-1步用户端“桌面终端系统”装置是否为私有“应用程序库服务器”装置,若第13-3步所选择的“应用程序库服务器”装置相对于第13-1步用户端“桌面终端系统”装置是私有“应用程序库服务器”装置,则执行第13-5步,否则执行第13-6步;
第13-5、“应用服务中心”装置中的“应用调度服务”向“应用服务中心”装置中的“运行服务”发送该应用程序的会话通道ID和会话密钥,“运行服务”根据该会话通道ID和会话密钥信息连接用户端“桌面终端系统”装置中“桌面窗口显示模块”的“会话通道”,进一步“运行服务”建立“私有会话通道”和“私有会话密钥”并将该私有会话通道ID和该私有会话密钥发送给“应用调度服务”,“应用服务中心”装置中的“运行服务”负责在上述两个会话通道之间进行信息中转;“应用服务中心”装置中的“应用调度服务”将该私有会话通道ID和该私有会话密钥作为当前的该会话通道ID和该会话密钥;
第13-6、“应用服务中心”装置中的“应用调度服务”向第13-3步所选择的“应用程序库服务器”装置的“应用代理”发送当前的会话通道ID和会话密钥,并请求该“应用代理”运行该应用程序,“应用服务中心”装置中的“应用调度服务”继续等待网络上用户“桌面终端系统”装置接下来应用执行请求;
第13-7、第13-3步中所选择的“应用程序库服务器”装置的“应用代理”根据该会话通道ID和会话密钥信息连接用户端“桌面终端系统”装置中“桌面窗口显示模块”会话通道;
第13-8、在第13-3步中所选择的“应用程序库服务器”装置中,“应用代理”从“应用程序库”加载该应用、并在该“应用程序库服务器”装置中创建该应用“执行实例”;
第13-9、在第13-3步中所选择的“应用程序库服务器”装置中,“应用代理”将该应用执行实例的输入输出重定向到第13-7步中所建立的会话通道中;
第13-10、用户端“桌面终端系统”装置中“桌面窗口显示模块”负责与第13-3步中所选择的“应用程序库服务器”装置中“应用代理”协作完成该应用在第13-3步中所选择的“应用程序库服务器”装置运行的“执行实例”,用户端“桌面终端系统”装置中“桌面窗口显示模块”建立该应用“执行实例”的输入及输出资源;该应用“执行实例”执行结束后,用户端“桌面终端系统”装置中“桌面窗口显示模块”断开该应用“执行实例”会话通道,用户端“桌面终端系统”装置中“桌面窗口显示模块”清除该应用“执行实例”的输入及输出资源,第13-3步中所选择的“应用程序库服务器”装置中“应用代理”清除该应用“执行实例”在第13-3步中所选择的“应用程序库服务器”装置中的计算资源;
第13-11、在网络上执行该应用程序的子任务结束。
按照本发明提供的系统和运行应用程序的方法,所述的,在用户端的“桌面终端系统”装置中的“桌面应用信息库”中存储应用图标显示位置信息,应用图标显示位置信息包括:应用标识符、图标窗口编号和坐标位置;坐标位置包括应用图标在图标窗口中的横坐标和纵坐标。
按照本发明提供的系统和运行应用程序的方法,所述的,在用户端的“桌面终端系统”装置中存储应用的基本元信息,应用的基本元信息包括:应用名称、应用标识符、应用图标和应用功能基本描述;在“应用程序库”和“应用服务中心”装置中,“应用信息库”中存储所有注册的应用扩展元信息,应用扩展元信息包括:应用名称、应用标识符、应用图标、应用指纹、应用功能描述、应用分类标签、应用程序库服务器列表和应用运行参数。
其中,应用的基本元信息和应用扩展元信息中,应用标识符在整个系统中全局唯一,应用标识符由“应用服务中心”装置统一分配;应用功能描述包含应用功能基本描述和应用功能扩展描述,应用功能基本描述为简单的文字描述信息,应用功能扩展描述包含整个系统中统一定义的语义信息;应用指纹为标识该应用程序代码的一个字符串序列,可以采用SHA1,SHA256等哈希算法对应用程序代码进行计算所得出的哈希值字符串。
按照本发明提供的系统和运行应用程序的方法,所述的,应用程序在“桌面终端系统”装置和“应用程序库服务器”装置中的最小运行单位为进程,由“应用代理”动态捕捉该应用程序运行实例进程的图像输出操作、音频输出操作,并将输出操作通过会话通道传递给用户端的“桌面终端系统”装置中“桌面窗口显示模块”,并进一步由用户端的“桌面终端系统”装置中“桌面窗口显示模块”将输出操作在用户端的“桌面终端系统”装置中重新进行音频输出操作,以及在用户端的“桌面终端系统”装置中对应的“应用窗口”中重新进行图像输出操作。
其中,“应用代理”动态捕捉该应用程序运行实例进程的图像输出操作、音频输出操作的方法是:可以通过钩子Hook在用户态捕捉图像输出和音频输出操作函数,也可以在计算机操作系统内核态中对图像和音频驱动添加过滤模块方式捕获图像输出和音频输出操作;“应用代理”针对进程级别的应用程序运行实例进行动态捕获图像输出操作、音频输出操作,而不是捕获所在计算机操作系统上所有进程的图像输出操作、音频输出操作;
“桌面终端系统”装置中“桌面窗口显示模块”将本地或者远程“应用代理”通过会话通道传过来的图像输出和音频输出操作在“桌面终端系统”装置进行重做;“桌面终端系统”装置所进行重做操作支持在该“桌面终端系统”装置中的支持本地执行的兼容HTML5的浏览器应用窗口中重做操作。
按照本发明提供的系统和运行应用程序的方法,所述的,“应用程序库服务器”装置分为私有“应用程序库服务器”装置和共享“应用程序库服务器”装置,私有“应用程序库服务器”装置包含私有应用程序库,共享“应用程序库服务器”装置包含共享“应用程序库”;用户端“桌面终端系统”装置与私有“应用程序库服务器”装置不能直接互通,需要通过“应用服务中心”装置中“运行服务”作为代理实现互通;用户端“桌面终端系统”装置与共享“应用程序库服务器”装置可直接互通。
按照本发明提供的系统和运行应用程序的方法,所述的,“应用执行规则”标明全部或者指定应用程序的查找顺序,“应用执行规则”包含应用名称,查找优先顺序。
按照本发明提供的系统和方法,所述的,会话通道为网络通信链路,可由“桌面终端系统”装置中“桌面窗口显示模块”和“应用服务中心”装置的“运行服务”创建会话通道服务器;会话通道由会话通道ID所标识,会话通道ID包括网络IP地址、网络端口号;“应用程序库服务器”装置的“应用代理”和“应用服务中心”装置的“运行服务”可以作为会话通道的客户端凭借会话密钥来连接会话通道服务器,会话密钥至少包含该会话通道服务器和会话通道客户端的身份信息和会话通道的生存期信息。
按照本发明提供的运行应用程序的方法第13-3步,所述的,当应用存在于多个“应用程序库服务器”装置时,调度策略可以是随机选择任意一个“应用程序库服务器”装置,也可以由“应用服务中心”装置中的“应用调度服务”根据这些“应用程序库服务器”装置的动态负载情况选择负载轻的“应用程序库服务器”装置。
本发明的优点和积极效果:
本发明给出一种支持进程粒度网络计算的虚拟计算环境系统,通过网络计算资源以及以进程为最小运行单位能够有效地拓展用户计算机的计算能力。
本发明积极效果如下:一方面,用户通常无需在本地计算机上安装应用程序及其相关依赖软件包,用户只需在网络中下载应用的基本元信息(即应用名称、应用标识符、应用图标、应用功能基本描述)到用户本地“桌面终端系统”中,用户执行选中的应用时,用户本地计算机上的桌面终端系统装置按照“应用执行规则”自动在网络上定位待执行应用所在的应用程序库服务器装置并在网络上的应用程序库服务器装置中运行并把输入输出重定向到用户本地计算机上的桌面终端系统装置上,从而有效拓展用户本地计算机的计算能力;另一方面,用户也可以将常用的应用程序安装到本地计算机的本地应用程序库中,用户执行选中的应用时,用户本地计算机上的桌面终端系统装置按照“应用执行规则”自动在用户本地计算机和网络上定位待执行应用所在的应用程序库服务器装置,当“应用执行规则”中优先使用本地应用程序库时,待执行应用运行于用户本地计算机中,从而有效利用用户本地计算机的计算能力。
附图说明
图1是本发明中支持进程粒度网络计算的虚拟计算环境系统架构图。
图2是本发明中桌面终端系统、应用服务中心、应用程序库服务器三方协作图。
图3是本发明中应用程序的基本元信息。
图4是本发明中应用程序的扩展元信息。
图5是实施例1系统架构示意图。
图6是实施例1的应用执行规则。
图7是本发明中桌面终端系统中桌面图标显示位置信息。
图8是实施例1的“IE浏览器”应用的图标显示位置信息。
具体实施方式
为能进一步了解本发明的技术内容、特点及功效,兹列举以下应用实例,并配合附图详细说明如下:
实施例1、支持进程粒度网络计算的虚拟计算环境系统
如图1所示支持进程粒度网络计算的虚拟计算环境系统,该系统中用户在本地计算机上发起选定应用的执行请求,该虚拟计算环境系统在本地计算机及网络中的应用程序库服务器上查找符合执行请求要求的应用并在对应的应用程序库服务器上执行,并将应用执行过程的输入请求及输出结果集成于本地计算机的桌面终端系统,从而拓展用户的本地计算机的计算能力,该系统包括“桌面终端系统”装置100、至少有一个“应用服务中心”装置200、至少有一个“应用程序库服务器”装置300或400、以及“网络”装置500,其中:
(1)“桌面终端系统”装置100,主要负责用户输入请求和应用程序输出结果的处理,包括桌面图标显示模块110、桌面窗口显示模块120、桌面应用运行管理模块140、桌面应用图标管理模块130、桌面应用信息库170、本地应用代理150、本地应用程序库160和本地应用实例库180;“桌面图标显示模块”读取“桌面应用信息库”中在该“桌面终端系统”装置中注册的所有应用的“应用基本元信息”和“应用图标显示位置信息”,并将这些应用的应用图标显示在该“桌面终端系统”装置中的“桌面窗口显示模块”所创建的“图标窗口”中;“桌面窗口显示模块”负责在该“桌面终端系统”装置中创建所有“应用窗口”和“图标窗口”,“桌面窗口显示模块”依据应用的“应用实例”的请求创建相应的“应用窗口”,“桌面窗口显示模块”依据该“桌面终端系统”装置中注册的所有应用的“应用图标显示位置信息”创建“图标窗口”;“桌面应用图标管理模块”负责管理在该“桌面终端系统”装置中注册新应用、卸载应用、发布本地应用和修改本地已注册应用图标显示位置信息等,并读取和保存在“桌面应用信息库”;“桌面应用信息库”中存储着在该“桌面终端系统”装置中注册的所有应用的“应用基本元信息”和“应用图标显示位置信息”;“本地应用程序库”中存储着可在该“桌面终端系统”装置中运行的应用程序;“本地应用代理”负责在“本地应用程序库”查找指定本地应用程序、创建指定本地应用程序的应用实例、以及与“桌面窗口显示模块”的“会话通道”;“本地应用实例库”为本地“桌面终端系统”装置中正在运行的所有应用实例集合;“桌面应用运行管理模块”负责从“桌面图标显示模块”获取用户待执行的应用请求,并动态发起从“本地应用代理”或者网络上“应用服务中心”装置执行该应用的请求以及“会话通道”信息;“本地应用代理”与“桌面窗口显示模块”采用网络通信方式,其它模块之间采用进程间通信或者网络通信方式;
(2)“应用服务中心”装置200包括:应用登记模块220、应用查找模块230、应用调度服务240、运行服务250和应用信息库210;
“应用信息库”负责保存网络上“应用程序库服务器”装置上已发布应用的应用扩展元信息的保存、修改和删除;“应用登记模块”负责登记、撤销来自网络上“应用程序库服务器”装置上应用的扩展元信息到“应用信息库”中;“应用查找模块”负责从“应用信息库”查找指定应用的应用扩展元信息;“应用调度服务”负责接收网络上“桌面终端系统”装置发来的应用执行请求,并通过“应用查找模块”在“应用信息库”中查找待执行应用的所在的“应用程序库服务器”装置列表,根据调度策略选择一个“应用程序库服务器”装置,并向该“应用程序库服务器”装置中的“应用代理”发起执行该应用的请求;“运行服务”负责为“桌面终端系统”装置与“应用程序库服务器”装置不能建立直接网络连接的建立“会话通道”中转代理;“应用服务中心”装置的各模块之间采用进程间通信或者网络通信方式;
(3)“应用程序库服务器”装置300,主要负责应用程序的执行,包括应用代理310、应用程序库320和应用实例库330;“应用程序库”中存储着可在该“应用程序库服务器”装置中运行的应用程序;“应用代理”负责在该“应用程序库服务器”装置中的“应用程序库”查找指定应用程序、并在该“应用程序库服务器”装置中创建指定应用程序的应用实例、以及与网络上发起该应用执行请求的“桌面终端系统”装置中的“桌面窗口显示模块”的“会话通道”;“应用实例库”为该“应用程序库服务器”装置中正运行的应用实例集合;“应用程序库服务器”装置的各模块之间采用进程间通信或者网络通信方式;
(4)“网络”装置500,网络物理层支持有线网络传输协议、无线网络传输协议,网络传输层支持TCP/IP协议。
“桌面终端系统”装置100、“应用服务中心”装置200和“应用程序库服务器”装置300或400三者之间通过“网络”装置500采用网络通信方式进行互联。
“桌面终端系统”装置中的实现技术,其中,“桌面窗口显示模块”和“本地应用代理”采用网络通信方式通信,其它内部各模块之间主要采用进程间通信机制来通信和协调,包括信号、信号量、共享内存以及消息队列方式;例如各模块之间通过共享内存或者消息队列进行数据传递,通过信号通知其它模块接收数据,通过信号量实现各模块之间的同步与互斥;
“应用服务中心”装置中的实现技术,内部各模块之间既可以采用进程间通信机制来通信和协调,也可以采用网络通信方式进行通信和协调,方法同“桌面终端系统”装置中对应的实现技术,不赘述;
“应用程序库服务器”装置中的实现技术,内部各模块之间主要采用进程间通信机制来通信和协调,方法同“桌面终端系统”装置中对应的实现技术,不赘述。
按照本发明提供的系统,所述的,在用户端的“桌面终端系统”装置中存储着在该用户端的“桌面终端系统”装置中注册应用的应用基本元信息,如图3所示,应用的基本元信息包括应用名称、应用标识符、应用图标、应用功能基本描述;在“应用程序库”和“应用服务中心”装置中的“应用信息库”中存储所有注册的应用扩展元信息,如图4所示,应用扩展元信息包括应用名称、应用标识符、应用图标、应用哈希指纹、应用功能描述、应用分类标签、应用程序库服务器列表和应用运行参数。
例如,如图5所示的应用“IE浏览器”的基本元信息:{应用名称:“IE浏览器”、应用标识符:“001-MS-IE”、应用图标:“/etc/vc/icon/001-MS-IE.icon”、应用功能基本描述:“浏览器应用”};如图5所示的应用“IE浏览器”的扩展元信息:{应用名称:“IE浏览器”、应用标识符:“001-MS-IE”、应用图标:“/etc/vc/icon/001-MS-IE.icon”、应用指纹:“12a5e5bc2f012f6e61af81c1d65f3b521b5635f0”、应用功能描述:{应用功能基本描述:“浏览器应用”,应用功能扩展描述:“<AppExtDesc><Func>WebBrowser</Func><Corp>Microsoft</Corp></AppExtDesc>”}、应用分类标签:浏览器、应用程序库服务器列表:{10.10.1.100,10.10.3.11}、应用运行参数:www.baidu.com}。
按照本发明提供的系统,所述的,在用户端的“桌面终端系统”装置中存储着在该用户端的“桌面终端系统”装置中注册应用的“应用图标显示位置信息”,如图7所示,“应用图标显示位置信息”包括应用标识符、图标窗口编号和坐标位置;坐标位置包括应用图标在图标窗口中的横坐标和纵坐标。
例如,如图7所示的应用“IE浏览器”的“应用图标显示位置信息”:{应用标识符:“001-MS-IE”,0,(100,200)}。
按照本发明提供的系统,所述的,应用程序在“桌面终端系统”装置和“应用程序库”服务器装置中的最小运行单位为进程,由“应用代理”动态捕捉该应用程序运行实例进程的图像输出操作、音频输出操作,并将输出操作通过会话通道传递给用户端的“桌面终端系统”装置中“桌面窗口显示模块”,并进一步由用户端的“桌面终端系统”装置中“桌面窗口显示模块”将输出操作在用户端的“桌面终端系统”装置中重新进行音频输出操作以及在用户端的“桌面终端系统”装置中对应的“应用窗口”中重新进行图像输出操作。
例如,如图5所示应用Evolution邮件客户端,该应用运行在基于Linux的“应用程序库服务器”装置即应用程序库Linux服务器1上,应用程序库Linux服务器1中的“应用代理”在该应用程序库Linux服务器1上创建了应用Evolution邮件客户端的“执行实例”进程,并且该“应用代理”在Linux内核中动态捕捉该应用Evolution邮件客户端的“执行实例”进程的图像输出操作即创建窗口、移动窗口、销毁窗口、画点、线及区域等操作,并且该“应用代理”将这些图像输出操作通过会话通道传递到网络上用户端的装置中“桌面窗口显示模块”,用户端的装置中“桌面窗口显示模块”创建“Evolution邮件客户端窗口”应用窗口并重做画点、线及区域等操作,从而用户在未将应用Evolution邮件客户端安装到本地计算机“桌面终端系统”装置情况下就可透明使用应用Evolution邮件客户端程序;当用户本地计算机为Windows操作系统时,由于应用Evolution邮件客户端只能运行在Linux操作系统下,无法安装到用户本地计算机中,所以传统的计算环境无法支持用户使用该Evolution邮件客户端,而本发明给出的虚拟计算环境可以支持用户使用该Evolution邮件客户端;当“桌面终端系统”装置中“桌面窗口显示模块”为的支持本地执行的兼容HTML5的浏览器时,可实现在“桌面终端系统”装置中的本地执行的兼容HTML5的浏览器中显示和操纵远程的应用Evolution邮件客户端。
按照本发明提供的系统,所述的,“应用程序库服务器”装置分为私有“应用程序库服务器”装置和共享“应用程序库服务器”装置,私有“应用程序库服务器”装置包含私有应用程序库,共享“应用程序库服务器”装置包含共享“应用程序库”;用户端“桌面终端系统”装置与私有“应用程序库服务器”装置不能直接互通,需要通过“应用服务中心”装置中“运行服务”作为代理实现互通;用户端“桌面终端系统”装置与共享“应用程序库服务器”装置可直接互通。
例如,如图2所示,“应用服务中心”装置中“运行服务”分别与用户端“桌面终端系统”装置、私有“应用程序库服务器”装置建立两个会话通道,并且由“应用服务中心”装置中“运行服务”采用共享内存或者消息队列的方式实现两个会话通道数据的传递,从而实现用户端“桌面终端系统”装置与私有“应用程序库服务器”装置的网络通信。
实施例2、一种如权利要求1-4中任意一项所述的支持进程粒度网络计算的虚拟计算环境系统中运行应用程序的方法
所述方法1包括具体步骤如下:
第1、启动“应用程序库服务器”装置300和400,“应用程序库服务器”装置准备接收网络发来的应用执行请求、并在该“应用程序库服务器”装置运行该应用程序;
第2、启动“应用服务中心”装置200,“应用服务中心”装置准备接收网络上“桌面终端系统”装置发来的应用执行请求、寻找满足应用执行要求的“应用程序库服务器”装置、并转发应用执行请求到该“应用程序库服务器”装置;
第3、用户启动“桌面终端系统”装置100,“桌面图标显示模块”显示桌面图标环境;“桌面应用运行管理模块”从本地计算机持久存储空间中读取“应用执行规则”配置文件到内存;
其中“应用执行规则”标明全部或者指定应用程序的查找优先顺序,例如,如图6所示若干个应用,其中“IE浏览器”优先使用远程网络中“IE浏览器”应用,其次使用本地的“IE浏览器”应用;“Evolution邮件客户端”只使用远程网络中“Evolution邮件客户端”应用。
第4、用户选中准备运行的应用程序的图标,并选择执行该应用程序的操作动作;
第5、“桌面图标显示模块”110捕捉到用户执行应用程序的操作动作,读取待执行应用程序的“基本元信息”,进一步通知“桌面应用运行管理模块”用户的应用执行请求;“桌面图标显示模块”继续捕捉用户接下来新的操作动作;
其中应用的基本元信息如前述实例,在此不赘述。
第6、“桌面应用运行管理模块”140处于持续接收“桌面图标显示模块”110应用执行请求通知的状态;当“桌面应用运行管理模块”140收到“桌面图标显示模块”应用执行请求通知时,“桌面应用运行管理模块”依据“应用执行规则”判断第4步中应用执行请求是否为关闭“桌面终端系统”装置,若是则执行第14步,否则执行第7步;
第7、“桌面应用运行管理模块”140依据“应用执行规则”判断是否优先在本地“桌面终端系统”装置中查询并执行该应用程序,若优先在本地“桌面终端系统”装置中查询并执行该应用程序,则执行第8步,否则执行第10步;
第8、“桌面应用运行管理模块”140发送应用执行请求给“本地应用代理”150,“本地应用代理”判断是否该应用存在于“本地应用程序库”160,若该应用存在于“本地应用程序库”中,则执行第9步,否则执行第10步:
第9、“桌面应用运行管理模块”140发起在本地“桌面终端系统”装置中执行该应用程序的子任务,“桌面应用运行管理模块”跳转到第6步执行;
第10、“桌面应用运行管理模块”通过网络连接“应用服务中心”装置200中的“应用调度服务”240,并请求“应用调度服务”查找并运行该应用程序;
第11、“应用服务中心”装置中的“应用调度服务”请求“应用查找模块”230在“应用信息库”210中是否存在该应用的“扩展元信息”,若不存在该应用的“扩展元信息”,则执行第12步,否则执行第13步;
其中应用的扩展元信息如前述实例,在此不赘述。
第12、“应用服务中心”装置中的“应用调度服务”通知用户“桌面终端系统”装置中“桌面应用运行管理模块”待执行应用程序不存在,“桌面应用运行管理模块”告知用户待执行应用无法执行,跳转到第6步执行;
第13、“应用服务中心”装置中的“应用调度服务”通知用户“桌面终端系统”装置中“桌面应用运行管理模块”待执行应用程序存在,用户“桌面终端系统”装置中“桌面应用运行管理模块”发起在网络上执行该应用程序的子任务,用户“桌面终端系统”装置中“桌面应用运行管理模块”跳转到第6步执行;
第14、“桌面应用运行管理模块”从“本地应用程序库”加载关闭“桌面终端系统”装置的应用程序,并在本地运行该应用程序,从而关闭用户的本地“桌面终端系统”装置。
按照本发明提供的方法1,所述的,第9步中发起在本地计算机“桌面终端系统”装置中执行该应用程序的子任务,具体实现方法如下:
第9-1、“桌面应用运行管理模块”通知“桌面窗口显示模块”120建立会话通道和会话密钥;“桌面窗口显示模块”建立会话通道和会话密钥,并将会话通道ID和会话密钥传递给“桌面应用运行管理模块”;
其中会话通道ID和会话密钥如前述实例,在此不赘述。
第9-2、“桌面应用运行管理模块”将第9-1步中的会话通道ID和会话密钥传递给“本地应用代理”,“桌面应用运行管理模块”继续等待“桌面图标显示模块”接下来的应用执行请求;“本地应用代理”根据该会话通道ID和会话密钥信息连接“桌面窗口显示模块”会话通道;
第9-3、“本地应用代理”从“本地应用程序库”加载该应用、并在本地创建该应用“执行实例”;
第9-4、“本地应用代理”将该应用执行实例的输入输出重定向到第9-2步中所述的“本地应用代理”与“桌面窗口显示模块”的会话通道中;
第9-5、“桌面窗口显示模块”负责与“本地应用代理”协作完成该应用在本地运行的“执行实例”,“桌面窗口显示模块”建立该应用“执行实例”的输入及输出资源;该应用“执行实例”执行结束后,“桌面窗口显示模块”断开该应用“执行实例”会话通道,“桌面窗口显示模块”清除该应用“执行实例”的输入及输出资源,“本地应用代理”清除该应用“执行实例”在本地计算机上的计算资源;
第9-6、在本地计算机“桌面终端系统”装置中执行该应用程序的任务结束。
按照本发明提供的方法1,所述的,第13步中发起在网络上执行该应用程序的子任务,具体实现方法如下:
第13-1、用户端“桌面终端系统”装置中“桌面应用运行管理模块”通知“桌面窗口显示模块”建立会话通道和会话密钥;“桌面窗口显示模块”建立会话通道和会话密钥,并将会话通道ID和会话密钥传递给“桌面应用运行管理模块”;
其中会话通道ID和会话密钥如前述实例,在此不赘述。
第13-2、用户端“桌面终端系统”装置中“桌面应用运行管理模块”将第13-1步中的会话通道ID和会话密钥传递给网络上“应用服务中心”装置中的“应用调度服务”,“桌面应用运行管理模块”继续等待“桌面图标显示模块”接下来的应用执行请求;
第13-3、“应用服务中心”装置中的“应用调度服务”从网络上获取第13-1步中的会话通道ID和会话密钥,并将该会话通道ID和该会话密钥作为当前的该会话通道ID和该会话密钥;“应用服务中心”装置中的“应用调度服务”根据该应用的“扩展元信息”,找到该应用所在的“应用程序库服务器”装置列表,根据调度策略选择一个“应用程序库服务器”装置;
其中应用的扩展元信息如前述实例,在此不赘述。
当应用存在于多个“应用程序库服务器”装置时,调度策略可以是随机选择任意一个“应用程序库服务器”装置,也可以由“应用服务中心”装置中的“应用调度服务”根据这些“应用程序库服务器”装置的动态负载情况选择负载轻的“应用程序库服务器”装置。
第13-4、“应用服务中心”装置中的“应用调度服务”判断第13-3步所选择的“应用程序库服务器”装置相对于第13-1步用户端“桌面终端系统”装置是否为私有“应用程序库服务器”装置,若第13-3步所选择的“应用程序库服务器”装置相对于第13-1步用户端“桌面终端系统”装置是私有“应用程序库服务器”装置,则执行第13-5步,否则执行第13-6步;
第13-5、“应用服务中心”装置中的“应用调度服务”向“应用服务中心”装置中的“运行服务”发送该应用程序的会话通道ID和会话密钥,“运行服务”根据该会话通道ID和会话密钥信息连接用户端“桌面终端系统”装置中“桌面窗口显示模块”的“会话通道”,进一步“运行服务”建立“私有会话通道”和“私有会话密钥”并将该私有会话通道ID和该私有会话密钥发送给“应用调度服务”,“应用服务中心”装置中的“运行服务”负责在上述两个会话通道之间进行信息中转;“应用服务中心”装置中的“应用调度服务”将该私有会话通道ID和该私有会话密钥作为当前的该会话通道ID和该会话密钥;
如图2中线6所示,“应用程序库服务器”装置的“应用代理”直接连接用户端“桌面终端系统”装置中“桌面窗口显示模块”的会话通道。
如图2中线6.1和6.2所示,“应用程序库服务器”装置的“应用代理”通过“应用服务中心”装置中的“运行服务”作为中转间接连接用户端“桌面终端系统”装置中“桌面窗口显示模块”的会话通道。
第13-6、“应用服务中心”装置中的“应用调度服务”向第13-3步所选择的“应用程序库服务器”装置的“应用代理”发送当前的会话通道ID和会话密钥,并请求该“应用代理”运行该应用程序,“应用服务中心”装置中的“应用调度服务”继续等待网络上用户“桌面终端系统”装置接下来应用执行请求;
第13-7、第13-3步中所选择的“应用程序库服务器”装置的“应用代理”根据该会话通道ID和会话密钥信息连接用户端“桌面终端系统”装置中“桌面窗口显示模块”会话通道;
第13-8、在第13-3步中所选择的“应用程序库服务器”装置中,“应用代理”从“应用程序库”加载该应用、并在该“应用程序库服务器”装置中创建该应用“执行实例”;
第13-9、在第13-3步中所选择的“应用程序库服务器”装置中,“应用代理”将该应用执行实例的输入输出重定向到第13-7步中所建立的会话通道中;
如图5所示,IE浏览器、微软Word等两个应用运行于名为“Windows服务器N”的“应用程序库服务器”装置中,而Evolution邮件客户端应用运行于名为“Linux服务器1”的“应用程序库服务器”装置中,但这三个应用通过网络都显示在同一个用户端“桌面终端系统”上,且用户在“桌面终端系统”上针对不同应用窗口的操作分别通过“会话通道”传递给对应的“应用程序库服务器”装置中对应的应用实例中。
其中“应用代理”动态捕获应用“执行实例”的图像及音频输出操作方法如前述实例,在此不赘述。
第13-10、用户端“桌面终端系统”装置中“桌面窗口显示模块”负责与第13-3步中所选择的“应用程序库服务器”装置中“应用代理”协作完成该应用在第13-3步中所选择的“应用程序库服务器”装置运行的“执行实例”,用户端“桌面终端系统”装置中“桌面窗口显示模块”建立该应用“执行实例”的输入及输出资源;该应用“执行实例”执行结束后,用户端“桌面终端系统”装置中“桌面窗口显示模块”断开该应用“执行实例”会话通道,用户端“桌面终端系统”装置中“桌面窗口显示模块”清除该应用“执行实例”的输入及输出资源,第13-3步中所选择的“应用程序库服务器”装置中“应用代理”清除该应用“执行实例”在第13-3步中所选择的“应用程序库服务器”装置中的计算资源;
第13-11、在网络上执行该应用程序的子任务结束。
按照本发明提供的运行应用程序的方法,所述的,会话通道为网络通信链路,可由“桌面终端系统”装置中“桌面窗口显示模块”和“应用服务中心”装置的“运行服务”创建会话通道服务器;会话通道由会话通道ID所标识,会话通道ID包括网络IP地址、网络端口号;“应用程序库服务器”装置的“应用代理”和“应用服务中心”装置的“运行服务”可以作为会话通道的客户端凭借会话密钥来连接会话通道服务器,会话密钥至少包含该会话通道服务器和会话通道客户端的身份信息和会话通道的生存期信息。
例如,如图5所示应用“微软Word”的会话通道,该会话通道ID可为{202.116.11.100,6100},其中202.116.11.100为用户端“桌面终端系统”装置的IP地址;会话密钥可为{202.116.11.100,6100,218.69.200.120,2013.12.20,08:00,120,xxxx},其中218.69.200.120为“应用程序库服务器”装置的IP地址,2013.12.20为该应用执行实例运行起始日期,08:00为该应用执行实例运行起始时间,120为该应用执行实例的最大运行时间,xxxx为会话密钥前6项的数字签名。
考虑到在此公开的对本发明的描述和特例的实施例,本发明的其他实施例对于本领域的技术人员来说是显而意见的。这些说明和实施例仅作为例子来考虑,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种支持进程粒度网络计算的虚拟计算环境系统,其特征在于,该系统由用户在本地计算机上发起选定应用的执行请求,该虚拟计算环境系统在本地计算机及网络中的应用程序库服务器上查找符合执行请求要求的应用,在对应的应用程序库服务器上执行,并将应用执行过程的输入请求及输出结果集成于本地计算机的桌面终端系统,从而拓展用户的本地计算机的计算能力;该系统包括“桌面终端系统”装置、至少有一个“应用服务中心”装置、至少有一个“应用程序库服务器”装置、以及“网络”装置,“桌面终端系统”装置、“应用服务中心”装置和“应用程序库服务器”装置三者之间通过“网络”装置采用网络通信方式进行互联;其中:
“桌面终端系统”装置,主要负责用户输入请求和应用程序输出结果的处理,包括桌面图标显示模块、桌面窗口显示模块、桌面应用运行管理模块、桌面应用图标管理模块、桌面应用信息库、本地应用代理、本地应用程序库和本地应用实例库;“桌面图标显示模块”读取“桌面应用信息库”中在该“桌面终端系统”装置中注册的所有应用的“应用基本元信息”和“应用图标显示位置信息”,并将这些应用的应用图标显示在该“桌面终端系统”装置中的“桌面窗口显示模块”所创建的“图标窗口”中;“桌面窗口显示模块”负责在该“桌面终端系统”装置中创建所有“应用窗口”和“图标窗口”,“桌面窗口显示模块”依据应用的“应用实例”的请求创建相应的“应用窗口”,“桌面窗口显示模块”依据该“桌面终端系统”装置中注册的所有应用的“应用图标显示位置信息”创建“图标窗口”;“桌面应用图标管理模块”负责管理在该“桌面终端系统”装置中注册新应用、卸载应用、发布本地应用和修改本地已注册应用图标显示位置信息,并读取和保存在“桌面应用信息库”;“桌面应用信息库”中存储着在该“桌面终端系统”装置中注册的所有应用的“应用基本元信息”和“应用图标显示位置信息”;“本地应用程序库”中存储着可在该“桌面终端系统”装置中运行的应用程序;“本地应用代理”负责在“本地应用程序库”查找指定本地应用程序、创建指定本地应用程序的应用实例、以及与“桌面窗口显示模块”的“会话通道”;“本地应用实例库”为本地“桌面终端系统”装置中正在运行的所有应用实例集合;“桌面应用运行管理模块”负责从“桌面图标显示模块”获取用户待执行的应用请求,并动态发起从“本地应用代理”或者网络上“应用服务中心”装置执行该应用的请求以及“会话通道”信息;“本地应用代理”与“桌面窗口显示模块”采用网络通信方式,其它模块之间采用进程间通信或者网络通信方式;
“应用服务中心”装置,主要负责应用程序的登记、查找、应用调度和运行服务代理,包括应用登记模块、应用查找模块、应用调度服务、运行服务和应用信息库;“应用信息库”负责保存网络上“应用程序库服务器”装置上已发布应用的应用扩展元信息的保存、修改和删除;“应用登记模块”负责登记、撤销来自网络上“应用程序库服务器”装置上应用的扩展元信息到“应用信息库”中;“应用查找模块”负责从“应用信息库”查找指定应用的应用扩展元信息;“应用调度服务”负责接收网络上“桌面终端系统”装置发来的应用执行请求,并通过“应用查找模块”在“应用信息库”中查找待执行应用的所在的“应用程序库服务器”装置列表,根据调度策略选择一个“应用程序库服务器”装置,并向该“应用程序库服务器”装置中的“应用代理”发起执行该应用的请求;“运行服务”负责为“桌面终端系统”装置与“应用程序库服务器”装置不能建立直接网络连接时建立“会话通道”中转代理;“应用服务中心”装置的各模块之间采用进程间通信或者网络通信方式;
“应用程序库服务器”装置,主要负责应用程序的执行,包括应用代理、应用程序库和应用实例库;“应用程序库”中存储着可在该“应用程序库服务器”装置中运行的应用程序;“应用代理”负责在该“应用程序库服务器”装置中的“应用程序库”查找指定应用程序、并在该“应用程序库服务器”装置中创建指定应用程序的应用实例、以及与网络上发起该应用执行请求的“桌面终端系统”装置中的“桌面窗口显示模块”的“会话通道”;“应用实例库”为该“应用程序库服务器”装置中正运行的应用实例集合;“应用程序库服务器”装置的各模块之间采用进程间通信或者网络通信方式;
“网络”装置,主要负责网络通信,网络物理层支持有线网络传输协议、无线网络传输协议,网络传输层支持TCP/IP协议。
2.根据权利要求1所述的系统,其特征在于,所述的“应用程序库服务器”装置分为私有“应用程序库服务器”装置和共享“应用程序库服务器”装置,私有“应用程序库服务器”装置包含私有应用程序库,共享“应用程序库服务器”装置包含共享“应用程序库”;用户端“桌面终端系统”装置与私有“应用程序库服务器”装置不能直接互通,需要通过“应用服务中心”装置中“运行服务”作为代理实现互通;用户端“桌面终端系统”装置与共享“应用程序库服务器”装置可直接互通。
3.根据权利要求1所述的系统,其特征在于,在用户端的“桌面终端系统”装置中的“桌面应用信息库”中存储应用图标显示位置信息,应用图标显示位置信息包括:应用标识符、图标窗口编号和坐标位置;坐标位置包括应用图标在图标窗口中的横坐标和纵坐标。
4.根据权利要求1所述的系统,其特征在于,在用户端的“桌面终端系统”装置中的“桌面应用信息库”中存储应用的基本元信息,应用的基本元信息包括:应用名称、应用标识符、应用图标和应用功能基本描述;在“桌面终端系统”装置中的“本地应用程序库”、“应用程序库服务器”装置中的“应用程序库”和“应用服务中心”装置中的“应用信息库”中存储所有注册的应用扩展元信息,应用扩展元信息包括:应用名称、应用标识符、应用图标、应用哈希指纹、应用功能描述、应用分类标签、应用程序库服务器列表和应用运行参数。
5.一种如权利要求1-4中任意一项所述的支持进程粒度网络计算的虚拟计算环境系统中运行应用程序的方法,其特征在于,所述方法包括具体步骤如下:
第1、启动“应用程序库服务器”装置,“应用程序库服务器”装置准备接收网络发来的应用执行请求、并在该“应用程序库服务器”装置运行该应用程序;
第2、启动“应用服务中心”装置,“应用服务中心”装置准备接收网络上“桌面终端系统”装置发来的应用执行请求、寻找满足应用执行要求的“应用程序库服务器”装置、并转发应用执行请求到该“应用程序库服务器”装置;
第3、用户启动“桌面终端系统”装置,“桌面图标显示模块”显示桌面图标环境;“桌面应用运行管理模块”从本地计算机持久存储空间中读取“应用执行规则”配置文件到内存;
第4、用户选中准备运行的应用程序的图标,并选择执行该应用程序的操作动作;
第5、“桌面图标显示模块”捕捉到用户执行应用程序的操作动作,读取待执行应用程序的“基本元信息”,进一步通知“桌面应用运行管理模块”用户的第4步中应用执行请求;“桌面图标显示模块”继续捕捉用户接下来新的操作动作;
第6、“桌面应用运行管理模块”处于持续接收“桌面图标显示模块”应用执行请求通知的状态;当“桌面应用运行管理模块”收到“桌面图标显示模块”应用执行请求通知时,“桌面应用运行管理模块”依据“应用执行规则”判断第4步中应用执行请求是否为关闭“桌面终端系统”装置,若是则执行第14步,否则执行第7步;
第7、“桌面应用运行管理模块”依据“应用执行规则”判断是否优先在本地“桌面终端系统”装置中查询并执行该应用程序,若优先在本地“桌面终端系统”装置中查询并执行该应用程序,则执行第8步,否则执行第10步;
第8、“桌面应用运行管理模块”发送应用执行请求给“本地应用代理”,“本地应用代理”判断是否该应用存在于“本地应用程序库”,若该应用存在于“本地应用程序库”中,则执行第9步,否则执行第10步:
第9、“桌面应用运行管理模块”发起在本地“桌面终端系统”装置中执行该应用程序的子任务,“桌面应用运行管理模块”跳转到第6步执行;
第10、“桌面应用运行管理模块”通过网络连接“应用服务中心”装置中的“应用调度服务”,并请求“应用调度服务”查找并运行该应用程序;
第11、“应用服务中心”装置中的“应用调度服务”请求“应用查找模块”在“应用信息库”中是否存在该应用的“扩展元信息”,若不存在该应用的“扩展元信息”,则执行第12步,否则执行第13步;
第12、“应用服务中心”装置中的“应用调度服务”通知用户“桌面终端系统”装置中“桌面应用运行管理模块”待执行应用程序不存在,“桌面应用运行管理模块”告知用户待执行应用无法执行,跳转到第6步执行;
第13、“应用服务中心”装置中的“应用调度服务”通知用户“桌面终端系统”装置中“桌面应用运行管理模块”待执行应用程序存在,用户“桌面终端系统”装置中“桌面应用运行管理模块”发起在网络上执行该应用程序的子任务,用户“桌面终端系统”装置中“桌面应用运行管理模块”跳转到第6步执行;
第14、“桌面应用运行管理模块”从“本地应用程序库”加载关闭“桌面终端系统”装置的应用程序,并在本地运行该应用程序,从而关闭用户的本地“桌面终端系统”装置。
6.根据权利要求5所述的方法,其特征在于,第9步中所述的发起在本地计算机“桌面终端系统”装置中执行该应用程序的子任务,具体方法如下:
第9-1、“桌面应用运行管理模块”通知“桌面窗口显示模块”建立会话通道和会话密钥;“桌面窗口显示模块”建立会话通道和会话密钥,并将会话通道ID和会话密钥传递给“桌面应用运行管理模块”;
第9-2、“桌面应用运行管理模块”将第9-1步中的会话通道ID和会话密钥传递给“本地应用代理”,“桌面应用运行管理模块”继续等待“桌面图标显示模块”接下来的应用执行请求;“本地应用代理”根据该会话通道ID和会话密钥信息连接“桌面窗口显示模块”会话通道;
第9-3、“本地应用代理”从“本地应用程序库”加载该应用、并在本地创建该应用“执行实例”;
第9-4、“本地应用代理”将该应用执行实例的输入输出重定向到第9-2步中所述的“本地应用代理”与“桌面窗口显示模块”的会话通道中;
第9-5、“桌面窗口显示模块”负责与“本地应用代理”协作完成该应用在本地运行的“执行实例”,“桌面窗口显示模块”建立该应用“执行实例”的输入及输出资源;该应用“执行实例”执行结束后,“桌面窗口显示模块”断开该应用“执行实例”会话通道,“桌面窗口显示模块”清除该应用“执行实例”的输入及输出资源,“本地应用代理”清除该应用“执行实例”在本地计算机上的计算资源;
第9-6、在本地计算机“桌面终端系统”装置中执行该应用程序的任务结束。
7.根据权利要求5所述的方法,其特征在于,第13步中所述的发起在网络上执行该应用程序的子任务,具体实现方法如下:
第13-1、用户端“桌面终端系统”装置中“桌面应用运行管理模块”通知“桌面窗口显示模块”建立会话通道和会话密钥;“桌面窗口显示模块”建立会话通道和会话密钥,并将会话通道ID和会话密钥传递给“桌面应用运行管理模块”;
第13-2、用户端“桌面终端系统”装置中“桌面应用运行管理模块”将第13-1步中的会话通道ID和会话密钥传递给网络上“应用服务中心”装置中的“应用调度服务”,“桌面应用运行管理模块”继续等待“桌面图标显示模块”接下来的应用执行请求;
第13-3、“应用服务中心”装置中的“应用调度服务”从网络上获取第13-1步中的会话通道ID和会话密钥,并将该会话通道ID和该会话密钥作为当前的该会话通道ID和该会话密钥;“应用服务中心”装置中的“应用调度服务”根据该应用的“扩展元信息”,找到该应用所在的“应用程序库服务器”装置列表,根据调度策略选择一个“应用程序库服务器”装置;
第13-4、“应用服务中心”装置中的“应用调度服务”判断第13-3步所选择的“应用程序库服务器”装置相对于第13-1步用户端“桌面终端系统”装置是否为私有“应用程序库服务器”装置,若第13-3步所选择的“应用程序库服务器”装置相对于第13-1步用户端“桌面终端系统”装置是私有“应用程序库服务器”装置,则执行第13-5步,否则执行第13-6步;
第13-5、“应用服务中心”装置中的“应用调度服务”向“应用服务中心”装置中的“运行服务”发送该应用程序的会话通道ID和会话密钥,“运行服务”根据该会话通道ID和会话密钥信息连接用户端“桌面终端系统”装置中“桌面窗口显示模块”的“会话通道”,进一步“运行服务”建立“私有会话通道”和“私有会话密钥”并将该私有会话通道ID和该私有会话密钥发送给“应用调度服务”,“应用服务中心”装置中的“运行服务”负责在上述两个会话通道之间进行信息中转;“应用服务中心”装置中的“应用调度服务”将该私有会话通道ID和该私有会话密钥作为当前的该会话通道ID和该会话密钥;
第13-6、“应用服务中心”装置中的“应用调度服务”向第13-3步所选择的“应用程序库服务器”装置的“应用代理”发送当前的会话通道ID和会话密钥,并请求该“应用代理”运行该应用程序,“应用服务中心”装置中的“应用调度服务”继续等待网络上用户“桌面终端系统”装置接下来应用执行请求;
第13-7、第13-3步中所选择的“应用程序库服务器”装置的“应用代理”根据该会话通道ID和会话密钥信息连接用户端“桌面终端系统”装置中“桌面窗口显示模块”会话通道;
第13-8、在第13-3步中所选择的“应用程序库服务器”装置中,“应用代理”从“应用程序库”加载该应用、并在该“应用程序库服务器”装置中创建该应用“执行实例”;
第13-9、在第13-3步中所选择的“应用程序库服务器”装置中,“应用代理”将该应用执行实例的输入输出重定向到第13-7步中所建立的会话通道中;
第13-10、用户端“桌面终端系统”装置中“桌面窗口显示模块”负责与第13-3步中所选择的“应用程序库服务器”装置中“应用代理”协作完成该应用在第13-3步中所选择的“应用程序库服务器”装置运行的“执行实例”,用户端“桌面终端系统”装置中“桌面窗口显示模块”建立该应用“执行实例”的输入及输出资源;该应用“执行实例”执行结束后,用户端“桌面终端系统”装置中“桌面窗口显示模块”断开该应用“执行实例”会话通道,用户端“桌面终端系统”装置中“桌面窗口显示模块”清除该应用“执行实例”的输入及输出资源,第13-3步中所选择的“应用程序库服务器”装置中“应用代理”清除该应用“执行实例”在第13-3步中所选择的“应用程序库服务器”装置中的计算资源;
第13-11、在网络上执行该应用程序的子任务结束。
8.根据权利要求5至7中任一项所述的方法,其特征在于,应用程序在“桌面终端系统”装置和“应用程序库服务器”装置中的最小运行单位为进程,由“应用代理”动态捕捉该应用程序运行实例进程的图像输出操作、音频输出操作,并将输出操作通过会话通道传递给用户端的“桌面终端系统”装置中的“桌面窗口显示模块”,并进一步由用户端的“桌面终端系统”装置中的“桌面窗口显示模块”将输出操作在用户端的“桌面终端系统”装置中重新进行音频输出操作,以及在用户端的“桌面终端系统”装置中对应的“应用窗口”中重新进行图像输出操作。
9.根据权利要求5至7中任一项所述的方法,其特征在于,会话通道为网络通信链路,可由“桌面终端系统”装置中“桌面窗口显示模块”和“应用服务中心”装置的“运行服务”创建会话通道服务器;会话通道由会话通道ID所标识,会话通道ID包括网络IP地址、网络端口号;“应用程序库服务器”装置的“应用代理”和“应用服务中心”装置的“运行服务”可以作为会话通道的客户端凭借会话密钥来连接会话通道服务器,会话密钥至少包含该会话通道服务器和会话通道客户端的身份信息和会话通道的生存期信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410045114.8A CN103810019B (zh) | 2014-02-08 | 2014-02-08 | 一种支持进程粒度网络计算的虚拟计算环境系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410045114.8A CN103810019B (zh) | 2014-02-08 | 2014-02-08 | 一种支持进程粒度网络计算的虚拟计算环境系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103810019A CN103810019A (zh) | 2014-05-21 |
CN103810019B true CN103810019B (zh) | 2017-03-01 |
Family
ID=50706831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410045114.8A Active CN103810019B (zh) | 2014-02-08 | 2014-02-08 | 一种支持进程粒度网络计算的虚拟计算环境系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103810019B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108021425B (zh) * | 2017-12-28 | 2020-11-03 | 南开大学 | 一种集成多个应用图形窗口的虚拟桌面系统及运行方法 |
CN117272284B (zh) * | 2023-09-13 | 2024-04-12 | 河北纬坤电子科技有限公司 | 应用程序的管控系统、方法、应用服务器及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103116612A (zh) * | 2013-01-25 | 2013-05-22 | 南开大学 | 一种面向进程的虚拟文件系统的建立方法 |
CN103136055A (zh) * | 2011-11-25 | 2013-06-05 | 国际商业机器公司 | 用于在数据库服务中控制对计算资源的使用的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7313619B2 (en) * | 2003-03-21 | 2007-12-25 | Intel Corporation | System and method for managing distributed objects as a single representation |
-
2014
- 2014-02-08 CN CN201410045114.8A patent/CN103810019B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136055A (zh) * | 2011-11-25 | 2013-06-05 | 国际商业机器公司 | 用于在数据库服务中控制对计算资源的使用的方法和装置 |
CN103116612A (zh) * | 2013-01-25 | 2013-05-22 | 南开大学 | 一种面向进程的虚拟文件系统的建立方法 |
Non-Patent Citations (1)
Title |
---|
一种面向进程通信的逻辑网络信息平台(NIP)的设计;李旭东 等;《南开大学学报(自然科学)》;20021231;第35卷(第4期);第50-55页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103810019A (zh) | 2014-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111542064B (zh) | 一种用于无线接入网的容器编排管理系统及编排方法 | |
CN103270492B (zh) | 用于网络使能应用的硬件加速图形的方法和系统 | |
US8584136B2 (en) | Context-aware request dispatching in clustered environments | |
US10917294B2 (en) | Network function instance management method and related device | |
CN109582441A (zh) | 用于提供容器服务的系统、方法和装置 | |
US20120166538A1 (en) | Virtual smart home system, server, home gateway based on cloud computing and smart home service method | |
US8813093B2 (en) | Integration of disparate applications on a network | |
CN106953848B (zh) | 一种基于ForCES的软件定义网络实现方法 | |
CN108182111A (zh) | 任务调度系统、方法和装置 | |
CN103336709B (zh) | 一种在集群中实现虚拟化分布式统一管理的方法及系统 | |
CN111416723B (zh) | 一种设备管理方法及相关设备 | |
CN105262837A (zh) | 一种基于云计算的三网融合应用终端接入装置及实现方法 | |
CN114039858B (zh) | 一种算网资源融合方法、装置、设备及存储介质 | |
CN102047226A (zh) | 分布式服务框架 | |
CN111049876A (zh) | 一种轻量电信云边缘计算系统架构 | |
CN103685535A (zh) | 一种大规模分布异构数据处理的云数据库系统接口设计 | |
CN103810019B (zh) | 一种支持进程粒度网络计算的虚拟计算环境系统 | |
CN110351107B (zh) | 配置管理方法及装置 | |
CN113037819B (zh) | 一种边缘算力资源共享方法、装置及设备 | |
CN104166581A (zh) | 一种面向增量制造设备的虚拟化方法 | |
CN115361382B (zh) | 基于数据群组的数据处理方法、装置、设备和存储介质 | |
CN116680035A (zh) | 一种实现kubernetes容器远程调度使用GPU方法和装置 | |
CN103546504B (zh) | 基于应用层隔离的负载均衡设备虚拟化系统及方法 | |
WO2022237255A1 (zh) | 计算节点的管理方法及管理系统 | |
CN108664305A (zh) | 实现页面功能复用的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |