多节点智能网络应用服务系统中的应用管理子系统及方法
技术领域
本发明涉及网络应用服务领域,特别涉及到多节点智能网络应用服务系统中的应用管理。
背景技术
随着互联网和移动通信技术的发展和成熟,人们对于移动办公和娱乐的需求在不断增加,网络上的资源不断丰富,网络已经成为人们在工作、生活、娱乐和学习中获取信息和进行交互的主要途径,对远程节点上的应用服务的访问和使用十分普遍。目前的网络应用服务中,访问和使用远程服务节点的应用服务有下面几种方法:
1)基于浏览器的方式(Brower-based computing),该方式能够提供信息服务、邮件服务等应用服务,但是客户端采用标准的HTML语言界面,限制了客户端的应用范围,并且对复杂的GUI界面支持有限,交互能力比较差。
2)分布式组件方式,如Corba、Enterprise JavaBeans、COM、DCOM等方式,该方式更适合建立新的分布式应用程序,而在提供传统的桌面图形交互式应用服务时,需要对相应的代码进行修改和封装,才能用在网络环境中。
3)基于服务器的方式(server-based computing),该方式支持远程访问传统的桌面图形交互式应用程序,不需要任何修改,所有的应用程序都在服务器端安装和维护,客户端使用简单的终端设备通过网络访问服务器上提供的各种应用程序。现有的基于服务器方式的协议有Citrix ICA,Microsoft RDP,Sun Ray,VNC等,但在这些协议中,应用服务是通过整个桌面环境来提供的,也就是要将一个远程服务器上的整个远程桌面送到用户面前,用户只能使用所登录的服务节点所提供的应用程序。从用户使用角度看,现有技术具有以下不足:
a、终端用户的计算环境局限在一个服务节点上,当用户需要访问其他服务节点上的应用程序时,需要多次登录,手工地在不同的服务节点间切换,不能同时透明地管理和控制多个节点上的应用,给用户操作带来很多不便,用户体验较差;
b、用户登录服务节点后,用户使用的计算环境中的应用程序是有限的,不能根据用户的需求来进行动态增加或者减少,当用户需要新的应用程序时,只能终止当前会话,然后通知服务器管理者安装新的应用程序,新的应用程序安装成功后,用户重新登录,启动该应用程序,这样做很难满足用户的各种需求。
在针对传统的桌面图形交互式应用服务方面,基于服务器方式较基于浏览器的方式和分布式组件方式有较大的优越性,可以充分利用已有的大量的软件设施,而且符合用户已有的访问习惯。但是基于服务器方式也存在着上述不足,不利于对网络中的多个远程节点上的交互式应用服务的无缝访问和充分利用。
多节点智能网络应用服务系统主要提供传统的桌面交互式应用服务,是由终端设备和服务节点构成的分布式网络系统,系统中的各个服务节点是对等的,用户能够透明地访问分布在多个服务节点上的应用程序,并可动态调整用户计算环境中包含的应用程序集合。采用现有的基于服务器方式实现对多节点上的应用程序的使用和访问显然不能够满足多节点智能网络应用服务系统的要求。
发明内容
本发明的一个目的是提供一种多节点智能网络应用服务系统中的应用管理子系统,将用户计算环境扩展到多个节点之上,一次登录即可实现对不同节点上的桌面图形交互式应用程序的访问。
本发明的另一个目的是提供一种多节点智能网络应用服务系统中的应用管理方法,该方法弥补了现有的基于服务器方式的不足,给用户提供了更强大的计算环境和良好的用户体验。
为了实现上述目的,本发明提供一种多节点智能网络应用服务系统中的应用管理子系统,该子系统包括多节点智能网络应用服务系统中安装有应用程序的各个服务节点,服务节点上有记录多节点智能网络应用服务系统的应用服务信息的应用注册列表,服务节点上还有记录本地节点应用服务配置信息的应用发布配置文件,在每个服务节点上还包括:
应用发布模块,用于读取本地节点的应用发布配置文件,向系统中的其他服务节点发布本地节点的应用服务消息;
应用注册模块,用于接收来自其他服务节点的应用服务消息,更新所在服务节点上的应用注册列表;
应用控制模块,用于实现对应用程序的访问和控制,该模块根据功能分为三个单元,包括:
进程管理单元,用于实现对用户会话进程、窗口管理进程和用户会话代理进程的创建与撤消;
应用程序更新单元,用于读取节点的应用注册列表,根据应用注册列表的内容更新用户图形交互界面上的应用程序菜单;
应用程序控制单元,用于控制分布在多个节点上属于一个用户会话进程的应用程序的执行过程。
上述技术方案中,所述的应用服务消息包含应用程序在节点上的唯一标识,节点的地址信息,应用程序的名称,应用程序的访问参数以及应用可执行文件所在的路径。
一种适用于多节点智能网络应用服务系统的应用管理方法,该方法包括:
1)应用发布步骤:读取服务节点的应用发布配置文件,周期性向系统的其他节点发布应用服务消息;
2)应用注册步骤:侦听并接收来自系统其他节点的应用服务消息,将应用服务信息登记到本节点维护的应用注册列表;
3)用户登录步骤:用户登录服务节点,在服务节点上创建对应的用户会话进程和窗口管理进程,为用户分配一虚拟桌面;
4)应用程序更新步骤:根据本地节点维护的应用注册列表,更新虚拟桌面上的应用程序菜单;
5)用户启动应用程序步骤:用户通过菜单启动应用程序,用户会话进程读取应用程序访问控制信息,实现与应用程序所在节点的连接,并发送应用控制消息到应用程序所在节点;
6)用户会话代理进程创建步骤:应用程序所在节点根据应用控制消息判断本地节点是否有会话代理,若没有,创建用户会话代理进程,节点将应用控制消息转发给用户会话代理进程;
7)用户会话代理进程启动应用程序步骤:用户会话代理进程启动接收到的应用控制消息所请求的应用程序,并将应用窗口传送到为用户分配的虚拟桌面上;
8)用户结束会话步骤:用户结束会话,用户会话所在节点发送应用控制消息到系统中的其他节点,其他节点终止与该用户会话相关的本地应用程序的执行,同时撤消节点上的用户会话代理进程
上述技术方案中,所述的用户会话进程对用户唯一,用来管理用户计算环境中的来自多个节点的应用程序。
上述技术方案中,所述的窗口管理进程为用户分配一个虚拟桌面,用户通过虚拟桌面来访问多节点上的应用程序。
上述技术方案中,所述的应用程序访问控制信息中包含了应用程序所在节点的节点标识和地址。
上述技术方案中,所述的应用控制消息包括用户会话信息、应用程序信息以及控制信息;用户会话信息包含用户会话进程所在节点的标识、用户标识、用户会话进程的标识;应用程序信息包含应用程序标识和应用程序名称;控制信息包含对所请求的应用程序的操作信息。
上述技术方案中,所述的应用发布步骤中,可周期性地读取服务节点应用发布配置文件,可在应用发布配置文件变化后读取应用发布配置文件,也可将应用发布配置文件变化后读取和周期性读取相结合。
本发明的优点在于:
1、本发明采用了基于应用的服务提供方式,将用户的计算环境扩展到多个服务节点上,用户只需要一次登录就可实现对多个节点的访问,并无缝地访问和使用分布在多个节点上执行的传统桌面图形交互式应用服务,给用户提供了更强大的计算环境和良好的用户体验。
2、用户计算环境中包含的应用服务可动态调整,既提高网络中共享的应用服务资源的利用效率,又可以满足用户个性化的需求。
附图说明
图1为本发明的智能网络应用服务系统的应用管理子系统的结构图;
图2为本发明的智能网络应用服务系统的应用管理子系统的工作流程图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步说明。
本发明的多节点智能网络应用服务系统中的应用管理子系统用于实现对多节点智能网络应用服务系统中的应用程序的管理,如图1所示,该子系统包括多节点智能网络中的各个服务节点,服务节点上有记录本地节点应用服务配置信息的应用发布配置文件和记录多节点智能网络应用服务系统的应用服务信息的应用注册列表,在每个服务节点上还包括:
应用发布模块,用于读取本地节点的应用发布配置文件,向其他服务节点发布所在节点的应用服务消息;
应用注册模块,用于接收来自其他服务节点的应用服务消息,更新所在服务节点的应用注册列表;
应用控制模块用于实现对应用程序的访问和控制,该模块可进一步划分成多个单元,包括:进程管理单元、应用程序更新单元、应用程序控制单元。进程管理单元用于实现对用户会话进程、窗口管理进程和用户会话代理进程的创建与撤消;应用程序更新单元用于读取节点的应用注册列表,定时更新用户图形交互界面上的应用程序菜单;应用进程控制单元用于控制分布在多个节点上属于一个用户会话进程的应用程序的执行过程。
在应用管理子系统中,如图2所示,上述模块的工作流程如下:
应用发布步骤:应用发布步骤的目的是将各个服务节点所包含的应用程序的名称、种类、存储位置等信息通过网络告知其他节点。服务节点本身包含一应用发布配置文件,该文件记载了本地节点所包含的应用服务的配置信息。多节点智能网络上的各个服务节点有不同的应用程序,因此各个服务节点的应用发布配置文件也各不相同。应用发布的实现过程为:当应用发布配置文件发生变化或者相隔一定的时间,服务节点中的应用发布模块读取本节点的应用发布配置文件,并向网络中的其他节点发布应用服务消息。应用服务消息中包含应用程序在节点上的唯一标识,节点的地址信息,应用程序的名称,应用程序的访问参数以及应用可执行文件所在的路径。
应用注册步骤:服务节点中的应用注册模块侦听和接收来自其他节点的应用服务消息,并将应用服务消息中包含的节点的应用程序信息登记到本节点维护的应用注册列表。
用户登录步骤:用户由终端登录服务节点,应用控制模块中的进程管理单元为用户创建用户会话进程和窗口管理进程。用户会话进程对每个用户是唯一,用来管理用户会话环境中的来自多个节点的应用程序;窗口管理进程向用户终端提供交互图形界面服务,为用户分配一个虚拟桌面,用户通过虚拟桌面来访问多节点上的应用程序。
应用程序定时更新步骤:应用控制模块中的应用程序更新单元定期读取本节点的应用注册列表中的内容,根据列表中的内容更新虚拟桌面上的应用程序菜单。
用户启动应用程序步骤:用户在会话中通过桌面菜单启动远程应用程序,用户会话进程读取应用注册列表中的对应程序的应用程序访问控制信息,应用程序访问控制消息中包含了应用程序所在节点的节点标识和地址,利用应用程序访问控制信息与应用程序所在的节点建立连接,然后发送应用控制消息到应用程序所在节点的应用控制模块中的应用程序控制单元。其中,应用控制消息包括用户会话信息、应用程序信息以及控制信息。用户会话信息包含用户会话进程所在节点的标识、用户标识、用户会话进程的标识。应用程序信息包含应用程序标识和应用程序名称。控制信息包含对所请求的应用程序的操作信息,如启动或关闭等。
用户会话代理进程创建步骤:应用程序所在服务节点上的应用控制模块中的应用程序控制单元根据应用控制消息中的用户会话信息,判断本节点是否已经有该用户的会话代理进程,如果没有,则调用进程管理单元创建该用户会话代理进程;服务节点中包含有用户会话代理进程后,应用程序控制单元将应用控制消息转发给用户会话代理进程。
用户会话代理进程启动应用程序步骤:用户会话代理进程启动接收到的应用控制消息所请求的应用程序,并将应用窗口传送到用户会话进程所在节点的图形界面上。
用户结束会话步骤:当用户结束会话时,用户会话所在节点上的应用控制模块中的应用程序控制单元发送应用控制消息到其他节点上的应用控制模块,由其他节点上的应用程序控制单元终止与该用户会话相关的本地应用程序的执行,并调用进程管理单元撤消节点上的用户会话代理进程。
在上述工作流程中,应用管理子系统实现了对远程多个服务节点中的图形交互式应用程序的透明使用和访问,当所要访问的应用程序在用户所登录的节点上,对应用程序的访问相对简单,在现有技术中即可实现,在此不再详细说明。
本发明的应用管理子系统针对远程访问多个服务节点上的传统桌面交互式应用服务,有效地克服了现有技术所存在的缺陷。
针对现有技术中,用户一次只能登录一个服务节点,不能同时访问不同节点上的应用程序的缺陷,本发明的应用控制模块和用户会话进程互相配合,可实现对不同节点上应用的访问。
当用户在一个节点上登录后,在该节点上创建该用户的会话进程,用户会话进程与用户一一对应,当用户要启动其他节点上的应用程序时,用户会话进程只需读取应用注册列表中的对应程序的应用程序访问控制信息,利用应用程序访问控制信息与应用程序所在的节点建立连接,然后发送应用控制消息到应用程序所在节点的应用控制模块。应用程序所在服务节点上的应用控制模块中的进程管理单元根据应用控制消息中的用户会话信息,创建用户会话代理进程,由用户会话代理进程启动相应的应用程序。当用户启动其他节点上的应用程序时,实现过程大致相同,与所要启动的应用程序在哪个节点上无关。
对于现有技术的另一个缺陷,用户登录服务节点后,在用户的计算环境中不能增加或减少应用程序。本发明的应用管理子系统通过应用控制、发布和注册模块的相互配合,解决了上述缺陷。
智能网络应用服务系统中的某个节点通过修改该节点的应用发布配置文件,来增加或减少本节点所发布的应用程序,该节点的应用发布模块周期性读取应用发布配置文件,向系统中其他节点发布应用服务消息,系统中其他节点的应用注册模块接收到应用服务消息后,更新本地的应用注册列表,应用控制模块定期读取本节点的应用注册列表中的内容,根据列表中的内容更新虚拟桌面上的应用程序菜单,从而将系统中应用服务的变化体现给用户,通过这种方式能够动态调整用户计算环境中包含的应用程序而无需中断现在的用户会话,弥补了现有基于服务器方式的不足。