发明内容
为克服上述缺陷,本发明提供了一种电力***协同计算中的桌面虚拟化及应用展示平台,采用了现今较为流行的桌面虚拟化技术结合Web2.0技术和Ajax技术,将电力***的仿真计算***搭建到该虚拟桌面***上,实现一种灵活的,无需安装和部署的,跨平台的,能够灵活计费的虚拟桌面***。
为实现上述目的,本发明提供一种电力***协同计算中的桌面虚拟化及应用展示平台,其包括:客户端、第三方应用服务器端和虚拟桌面***;所述客户端通过所述虚拟桌面***与所述服务器进行交互;其特征在于,所述虚拟桌面***包括:前台显示单元、后台支撑单元、安全单元和监控单元;所述监控单元、所述前台显示单元、所述安全单元和所述后台支撑单元之间依次进行通信;所述后台支撑单元分别与所述前台显示单元和所述监控单元进行通信。
本发明提供的优选技术方案中,所述前台显示单元将所述后台支撑单元的数据进行显示;所述后台支撑单元对所述前台显示单元的请求进行响应;所述安全单元对客户端的请求进行加密和验证;所述监控单元监控内部应用的使用状态并将报警信息传给所述前台显示单元。
本发明提供的第二优选技术方案中,所述前台显示单元包括:依次设置的前台显示组件框架、应用图标模块、***设置模块、以及登录和***加载模块。
本发明提供的第三优选技术方案中,所述前台显示组件框架分为窗口类框架和挂件类框架,包括:最大化按钮、最小化按钮和关闭按钮,所述按钮承载iframe元素和flash元素。
本发明提供的第四优选技术方案中,所述应用图标模块为每一个应用提供一个在虚拟桌面***上显示的图标。
本发明提供的第五优选技术方案中,所述***设置模块提供一个***设置页面,包括用户的个性化显示,页面风格以及是否需要快速启动某项应用。
本发明提供的第六优选技术方案中,当***初始化时或者应用启动时,所述登录和***加载模块弹出***登陆页面;当用户初始化时,所述登录和***加载模块动态加载个人的个性化应用。
本发明提供的第七优选技术方案中,所述后台支撑单元,包括:事件处理模块、用户管理模块、地址管理模块和应用管理模块;所述事件处理模块将所述安全单元传递的数据进行处理后分别传输到所述用户管理模块和所述地址管理模块;所述地址管理模块向所述应用管理模块传递数据。
本发明提供的第八优选技术方案中,所述用户管理模块对用户做如下操作:用户的增加、删除,权限修改,用户的应用管理和用户的行为统计。
本发明提供的第九优选技术方案中,所述地址管理模块将各个第三方应用服务器的地址映射到相应的应用上去,并且用户可以对这些地址进行增加,删除和修改。
本发明提供的第十优选技术方案中,所述应用管理模块将增加、删除、修改虚拟桌面***搭载的各项应用,所述应用管理模块给各个应用提供一个编号和访问地址和图标,各个用户根据需要自助添加应用。
本发明提供的较优选技术方案中,所述事件处理模块对客户端的操作进行相应处理。
本发明提供的第二较优选技术方案中,所述安全单元包括:加密模块、密钥管理模块和数据签名模块;所述加密模块接收所述前台显示单元传输的数据,并分别与所述密钥管理模块和所述数据签名模块通信,所述加密模块采用RSA加密算法对数据进行加密和签名。
本发明提供的第三较优选技术方案中,所述密钥管理模块用于增加,删除和修改一组公私密钥,该组密钥的公钥交给第三方,而私钥由平台保留,当第三方应用调用虚拟桌面***提供的公共API时,将请求中的核心部分使用公钥进行签名运算并在请求尾部附上签名,当平台收到该密文时,会用私钥对该请求也进行一次签名计算,然后与尾部的签名进行比较,如果一致则可以同意该请求,产生一次安全的会话,否则认为该请求是非法请求,不提供数据给请求方。
本发明提供的第四较优选技术方案中,所述数据签名模块将待签名的数据进行签名运算,所述数据签名模块设置在一***立的服务器中。
本发明提供的第五较优选技术方案中,所述监控单元包括:并列设置的应用监控模块和用户行为监控模块;所述应用监控模块和所述用户行为监控模块分别和所述后台支持单元进行通信。
本发明提供的第六较优选技术方案中,所述应用监控模块在15到30秒内向服务器发送一定格式的数据包,当后台支持单元收到该数据包时,回复一个相应格式的数据包,该格式与监控模块发出的包格式相同,只是包头的标志位于监控模块发出的包不同的数据包,以表示该服务器能够正常运行,当所述应用监控模块不能收到回复达到5到10次时,通知应用管理模块停止该应用的使用并通知用户。
本发明提供的第七较优选技术方案中,所述用户行为监控模块对各个用户在虚拟桌面平台上的行为进行监控,并将获取的数据保存到用户行为数据库中,所述用户行为数据库设置在监控模块中。
本发明提供的第八较优选技术方案中,在一定格式的数据包中:该格式为包头加长度值加内容,其中包头为标志位和应用编号,长度描述除包头和本身以外的数据长度,内容为该包序号和时间戳。
本发明提供的第九较优选技术方案中,用户在虚拟桌面平台上的行为包括:使用某个应用的次数和时间。
与现有技术比,本发明提供的一种电力***协同计算中的桌面虚拟化及应用展示平台,能够将原有的单机版电力***协同计算或者是分布式的电力***协同计算难于安装配置,数据难于还原保护,程序维护成本高以及计费和用户数据挖掘无法实现等问题给出了一种简单易行的解决方案,通过虚拟桌面技术,能将所有的电力计算应用归纳到一个入口,用户甚至只需要一个智能终端或者一台瘦客户端连接因特网,即可使用电力***协同计算等多种应用,从计算资源提供者的角度,资源提供者无须考虑用户本地的操作***差别和环境设置,只需将使用地址交给虚拟桌面的应用管理端,当计算资源发生变更或者升级时,可以实现无缝迁移和升级,同时可以通过虚拟桌面获得用户对该资源的使用频率和使用方式,以便提升自身应用的服务和质量,同时灵活的计费方式能够实现计算资源的更优化配置。
具体实施方式
专业术语解释:
电力***仿真:通过计算机来模拟电力***运行过程。
分布式平台:将大量计算任务分布到不同的计算机进行计算,并将结果汇总的软件***。
桌面虚拟化技术:支持企业级实现桌面***的远程动态访问与数据中心统一托管的技术。
本发明所要解决的技术问题
本发明是要搭建一套电力***协同计算软件管理和展示平台,通过互联网技术和桌面虚拟化技术,使用户感觉无论在任何地方任何终端上都在使用自己专属的电力***计算操作平台,而从软件发布者和开发者的角度,该***提供了一个软件使用和发布平台,同时该平台能够将用户的使用习惯和软件的使用频度提供给软件发布和开发方,同时具备一定的计费功能。
该***要实现的三个目标是:整合所有电力***协同计算的软件在一个虚拟桌面平台上,用户可以通过网络使用任何终端进行在线访问,使用所有的协同计算应用,二是能够对用户和平台上搭载的计算应用进行管理,三是具备一定的用户使用习惯和数据挖掘功能,实现简单的计费功能。
本发明技术方案的详细阐述
虚拟桌面***的构建
桌面虚拟化技术是近年来比较流行的计算机技术,简单的来说,桌面虚拟化是指:支持企业级实现桌面***的远程动态访问与数据中心统一托管的技术。一个形象的类比,就是今天,我们可以通过任何设备、在任何地点,任何时间访问在网络上的我们的邮件***,或者网盘;而未来我们可以通过任何设备,在任何地点,任何时间访问在网络上的属于我们个人的桌面***。按照时间顺序,桌面虚拟化大概经历了一下几个阶段:
远程桌面
远程桌面技术,几乎所有从事IT技术的人都使用过。内置在Windows XP中的远程桌面使用了RDP(Remote Desktop Protocol)协议,使得用户可以从其他的电脑上远程登录、访问与使用目标桌面。RDP 协议最早微软用于Windows Server上的Terminal Service(终端服务)的访问协议,实现了Windows Server上的多用户模式,使得用户能够在本地并不安装任何应用的条件下,远程使用服务器上的各种应用。这种技术是将目标机上运行界面传输到用户实际的操作机屏幕上,并将键盘,鼠标等一系列的外设输入,传输到目标机,实现交互。终端服务与远程桌面的不同是,前者只操作应用,而后者将拥有整个桌面的控制权。
不管名称如何叫,但可以看出桌面虚拟化技术的前身——远程桌面,是与现在的应用虚拟化技术具有相同渊源的。这也是今天桌面虚拟化技术的核心部分,正是有了这种技术,使得我们远程访问自己的桌面成为可能,也将用户使用与后台管理两个以前难以协调的矛盾进行了有机的分离,解决了目前用户使用灵活性与IT统一安全管理的冲突。
第一代桌面虚拟化技术,真正意义上将远程桌面的远程访问能力与虚拟操作***结合了起来,使得桌面虚拟化的企业应用也成为可能。
首先,服务器虚拟化技术的成熟,以及服务器计算能力的增强,使得服务器可以提供多台桌面操作***的计算能力,以当前4核双CPU的志强处理器16G内存服务器举例,如果用户的xp***分配256M内存,平均水平下,一台服务器可以支撑50-60个桌面运行,则可以看到,如果将桌面集中使用虚拟桌面提供,那么50-60台的桌面采购成本将高于服务器的成本,而管理成本,安全因素,还未被计算在内,所以服务器虚拟化技术的出现,使得桌面虚拟化技术的企业大规模应用成为可能。
当然,如果只是把台式机上运行操作***转变成为服务器上运行的虚拟机,而用户无法访问,当然是不会被任何人接受的。所以虚拟桌面的核心与关键,不是后台服务器虚拟化技术讲桌面虚拟,而是让用户能够通过各种手段,任何时间,任何地点,通过任何可联网设备都能够访问到自己的桌面,即远程网络访问的能力。而这又转回到和应用虚拟化的共同点,即远程访问协议的高效性上。
目前,提供桌面虚拟化解决方案的主要厂商包括微软、VMware、Citrix,而使用得远程访问协议主要利用三种协议:早期由Citrix开发的,后来被微软购买并集成在Windows中的RDP协议,这种协议被微软桌面虚拟化产品使用,而基于Vmware的Sun Ray等硬件产品,也都是使用RDP协议;第二种就是Citrix自己开发的目前独有的ICA协议,Citrix将这种协议使用到其应用虚拟化产品与桌面虚拟化产品中。第三种是近年来VMware推出了其自有的PCoIP协议,用于提供高质量的虚拟桌面用户体验。
第二代虚拟桌面技术,纵观IT技术应用历史,从最早主机-亚终端集中模式,到PC分布模式,到今天的虚拟桌面模式,其实是一个计算使用权与管理权的博弈发展。开始主机模式,集中管理,但是应用困难,必须到机房去使用;PC时代来临,所有计算都在PC上发生,但是IT的管理也变成分布式的,这也是为什么IT部门的桌面管理员压力最大,需要分布式的管理所有用户的PC,管理的成本也大幅度上升。桌面虚拟化将用户操作环境与***实际运行环境拆分,不必同时在一个位置,这样即满足了用户的灵活使用,同时帮助IT部门实现了集中的控制,从而解决了这一问题。但是如果只是将1000个员工的pc变成1000个虚拟机,那么IT管理员的管理压力可能并没有降低,反而上升了,只不过是不用四处乱跑了而已。为了提高管理性,第二代桌面虚拟化技术进一步将桌面***的运行环境与安装环境拆分、应用与桌面的拆分、配置文件的拆分,从而大大降低了管理复杂度与成本,提高了管理效率。
综合以上几代的虚拟桌面发展的趋势,结合电力***计算应用的特点,我们采用了第二代虚拟桌面技术,但并没有采用上述实时桌面视频截取数据传递协议,而是将虚拟桌面技术与目前流行的桌面虚拟化技术相结合,用Web技术模拟用户真实的***桌面(目前模拟的WinXP***的桌面风格),而且每个用户都会有相应的权限去设置自己的虚拟桌面***,同时,应用的提供者也可以将自己的应用添加到***中,由用户自主选择是否使用该应用。
电力***协同计算虚拟桌面平台架构
本虚拟桌面***采用B/S体系架构,所有的应用都运行在浏览器中,与本地操作***无关,在***上运行的各种应用可以运行在本***自身的服务器中,也可以运行在提供服务的第三方服务器中。根据应用所在的位置分为两种,一种为***本身自带的应用,称为基本应用,该应用是所有用户都具有的应用,一般为办公和SNS软件,另外一种外部应用,比如电力***的***计算应用,该应用的服务端在其他服务器中,用户在虚拟桌面***中访问实际是在与该服务器端交互,计算部分被放到了该服务器中,虚拟桌面只是对计算结果和数据做出显示。
由客户端发出请求服务的消息,通过HTTP协议向虚拟桌面提出请求,虚拟桌面接到请求后通过自身的安全逻辑和相关应用编号向第三方应用服务端发送请求,应用服务端接到请求后根据自身的情况通过HTTP协议以IFRAME的方式将用户的请求计算的结果发送给请求方,完成一次计算应用的交互,从用户的角度上看,该计算操作发生在本地,而从虚拟桌面的角度上看,该计算服务发生在计算应用服务器中,本地和虚拟桌面不参与任何计算。
如图2,虚拟桌面***具体可以划分为以下几个模块:可以分成如上图所示的4个单元:前台显示单元,后台支撑单元,安全单元,监控单元。
前台显示单元负责将后台支撑模块的数据进行显示,也是用户请求的发起端,后台支撑单元负责对前台请求进行相应,也负责管理内部应用及对用户行为的统计,安全单元负责对用户的请求进行加密和验证,监控单元负责监控内部应用的使用状态以及将报警信息等传给前台显示单元。
前台显示单元分为以下几个子模块,如图3所示:
前台显示单元应该提供一个桌面的WEB页面,该页面应该可以支持用户自助更换背景,该页面可以嵌入应用显示图标,支持iframe;
前台显示组件框架
前台显示组件框架分为窗口类框架和挂件类框架,该框架具备最大化,最小化,关闭按钮,能够承载iframe元素和flash元素,支持该框架在桌面的自助拖动。
应用图标
为每一个应用提供一个能够在桌面上显示的图标,点击图标后能打开一个应用;
***设置
前台显示模块能够提供一个***设置页面,包含用户的个性化显示等选择项。
登陆和动态加载
当***初始化时或者是一个应用启动时需要要弹出的***登陆页面,当个人用户初始化时,可以根据后台数据库动态加载个人的个性化应用。
后台支撑单元
后台支撑单元主要是负责虚拟桌面的后台数据和用户管理,应用管理以及应用的地址映射管理,如图4所示,分为以下几个子模块:
用户管理模块
在后台支撑模块中,用户管理子模块是核心模块,主要功能包括:用户的增加,删除,权限修改,用户的应用管理,用户的行为统计等。
地址管理模块
地址管理模块负责将第三方应用的地址映射到本地服务器的地址上。该模块同样支持对应用地址的增加,删除,修改功能。
应用管理模块
应用管理模块负责将增加删除修改虚拟桌面搭载的各项应用,应用管理模块负责给每个应用提供一个编号和访问地址和图标,一个用户可以根据自己的需要自助添加自己需要的应用。
事件处理模块
事件处理模块负责每个用户在虚拟桌面平台上发生一个操作时,后台应该给予的相应处理,比如用户开关机时,后台事件处理模块应该动态加载和保存用户的个性化数据。
安全单元
安全单元主要是负责第三方应用能够通过一种安全的模式访问虚拟桌面的用户信息和群组信息,如图5所示,主要分为以下两个子模块:
密钥管理模块
密钥管理模块可以增加,删除和修改一组公私密钥,该组密钥的公钥交给第三方应用方,而私钥由虚拟桌面平台保留,当第三方应用需要调用虚拟桌面提供的公共API时,将请求中的核心部分使用公钥进行签名运算并在请求尾部附上签名,当平台方收到该密文时,会用私钥对该请求也进行一次签名计算,然后与尾部的签名进行比较,如果一致则可以同意该请求,产生一次安全的会话,否则将认为该请求是非法请求,无法将数据提供给请求方。
数据签名模块
该模块负责将待签名的数据进行签名运算,该模块应部署与一***立的服务器中,该服务器只具备单一功能,同时只能被后台服务器访问,以增加整个***的可靠性和安全性。
监控单元
监控单元主要是负责与其他第三方应用服务器和用户的行为进行监控,我们将虚拟桌面本身以外的其他应用(比如专业的协同计算应用等)统称为第三方应用,为了防止由于第三方服务器的故障导致应用不能正常运行,能够在第一时间通知用户第三方应用的可用性,监控模块同时能够监控各个用户的行为,防止一个用户恶意使用和占有***资源,同时能够统计和分析用户的行为,统计应用的使用频度。如图6所示,主要分为2个子模块:
应用监控模块
该模块负责在一段时间内向第三方服务器发送一定格式的数据包,该包格式跟第三方应用提前沟通完毕,当第三方应用收到该数据包时,要立即回复一个相应格式的数据包,以表示该服务器能够正常运行,当该模块不能收到回复达到一定的次数时,表示该应用出现问题,会通知应用管理模块停止该应用的使用并通知用户。
用户行为监控模块
该模块负责对每个用户在虚拟桌面平台上的行为进行监控,比如使用某个应用次数,时间等等信息,获取数据保存到用户行为数据库中,可以分析用户的使用行为,以更好的改善平台和应用的可用性。
如前所述,也可以采用现成的国外大公司的解决方案,提供桌面虚拟化解决方案的主要厂商包括微软、VMware、Citrix,而这些成熟产品必须使用得远程访问协议主要包括利用三种协议:早期由Citrix开发的,后来被微软购买并集成在Windows中的RDP协议,这种协议被微软桌面虚拟化产品使用,而基于Vmware的Sun Ray等硬件产品,也都是使用RDP协议;第二种就是Citrix自己开发的目前独有的ICA协议,Citrix将这种协议使用到其应用虚拟化产品与桌面虚拟化产品中。第三种是近年来VMware推出了其自有的PCoIP协议,用于提供高质量的虚拟桌面用户体验。但是使用这些厂商的技术,势必会提高虚拟桌面的使用成本,而且这些成熟产品很难能够完全满足我们电力***自身的需求,而且使用这些外部厂商的协议,存在数据安全问题,而且对于这些远程交付协议,对于网络带宽要求很高,很难在国内如此复杂的网络环境中保证运行的速度和用户请求的响应时间,所以使用其他替代方案并不可取。
桌面虚拟化及应用展示平台,为采用Web技术和桌面虚拟化技术搭建一套电力***协同计算应用管理的平台,将计算资源统一管理,统一使用,方便计算资源提供方在线升级部署,用户无需复杂的安装和配置,能够轻松使用计算资源,不用担心软件安全问题,灵活的计费方式。
传统的桌面虚拟化技术,往往需要管理端对虚拟桌面的模板进行统一管理,由于用户人数与模板数量之间差距,一个用户往往只能使用几个专门的应用,而且由于传统的桌面虚拟化需要远程视频交付协议,导致对网络带宽要求较高,而且会产生对用户响应延迟问题,大大影响用户的使用体验。而且一旦采用了一些厂商的远程视频交付协议,就意味着所有的客户必须采用相同的软件配置和环境配置,影响了用户的使用灵活性,也意味着无法跨平台跨终端去使用,而我的这项发明克服了传统桌面虚拟化技术的这些弊端,用户无需单独安装任何视频交付协议,对网络带宽要求不大,通过http协议进行交互,是无状态交互,不会对用户的使用体验产生影响,对比传统桌面虚拟化技术需要维护大量的模板,而且对用户的使用应用有所限制,该虚拟化桌面技术能够允许终端用户自助添加各种自己喜欢的应用,服务端无需为每个人保留***模板,大大减轻了服务端的工作量和资源消耗。个人应用可以灵活加载,无需重新配置个人***模板,无需任何特殊的通信协议,数据通过http协议交互,能够实现了跨平台和跨***,用户只需一台安装有浏览器的智能终端(比如智能手机,平板电脑等)或者一台瘦客户端,连接相应的网络(可以是内部局域网,取决于虚拟桌面的位置),就能实现免安装,免配置使用各种相应的电力计算应用。本虚拟桌面还能对用户的使用情况加以监控,统计用户对各个应用的使用频度,能够提供给应用提供者,提供数据挖掘和用户使用习惯等第一手资料,有利于应用提供者能根据实际情况调整服务质量和计算能力。
需要声明的是,本发明内容及具体实施方式意在证明本发明所提供技术方案的实际应用,不应解释为对本发明保护范围的限定。本领域技术人员在本发明的精神和原理启发下,可作各种修改、等同替换、或改进。但这些变更或修改均在申请待批的保护范围内。