专利名称:自动创建和管理远程终端图形用户接口会话的方法和系统的制作方法
技术领域:
本发明涉及一种用于自动创建和管理远程终端图形用户接口会话的方法,以及涉及一种使用该方法的系统。
背景技术:
远程图形用户接口是指使用者在远程终端上通过远程图形用户接口协议访问宿主计算机上的应用程序的图形用户界面,应用程序在宿主计算机上运行,而应用程序的图形界面显示在远程终端上。图形用户接口会话由一组运行的图形窗口模块、窗口管理器、桌面管理器、应用程序和用户个性化配置构成的,远程终端图形用户接口会话则是把图形用户接口会话中的所有应用程序的界面通过远程图形用户接口协议发送给远程终端。
众所周知,由MIT最早开发的客户/服务器图形窗口模块X,提供了一个允许X应用程序远程显示在X终端上的网络图形用户接口协议。位于宿主计算机上的X应用程序可以使用X协议通过网络和位于X终端上的图形窗口模块X服务器进行通信,X应用程序发出请求,X服务器创建、删除、管理图形窗口模块资源,响应X应用程序的请求。由AT&T剑桥实验室开发的VNC系统通过远程图形用户接口协议RFB提供了一个帧缓冲方式的远程图形用户接口。在VNC系统中,图形窗口模块X服务器位于宿主计算机上,X服务器把X应用程序的请求转换成帧缓冲,并通过RFB协议把帧缓冲发送给远程终端上的RFB客户端。
一般的,用户在宿主计算机上登录后,操作系统可以自动创建图形用户接口会话,包括初始化用户个性化配置,启动图形窗口模块、窗口管理器和桌面管理器。用户可以通过桌面管理器提供的菜单和快捷方式启动X应用程序。用户可以一直和图形用户接口会话进行交互,除非退出登录。
而远程终端图形用户会话则不同,现有的操作系统没有自动创建和远程终端图形用户会话的方法。
用户位于远程终端,和宿主计算机通过网络相连接,网络连接会出现暂时断开。对于X网络图形窗口模块,一旦网络连接断开,用户的图形用户会话就会断开,会话中的所有的应用程序和数据会丢失。对于VNC系统,由于仅仅是在图形窗口模块中增加了远程图形用户接口协议RFB,操作系统没有提供对VNC的用户身份认证的方法。系统管理员必须手工维护VNC系统的身份认证数据,增加了系统管理员的复杂程度。另外VNC服务器只能工作在远程图形用户接口方式,而操作系统目前没有提供创建和管理远程终端图形用户接口会话的功能。因此为了使用远程图形用户接口,系统管理员和用户不得不预先登录到宿主计算机系统,手工启动VNC服务器,此外VNC系统使用独立的用户个性化配置文件,和操作系统的用户个性化配置互不兼容,这些都增加了使用和管理上的复杂程度。另外VNC系统还具有以下不足1.由于预先启动VNC服务器,占用了宿主计算机系统的内存和处理器资源,降低了资源的使用效率。
2.RFB协议是一个面向服务器的协议,不能根据远程终端设备的需要请求VNC服务器满足客户端的要求,例如显示分辨率,颜色深度等等,从而限制了远程终端的显示设备种类。而这一点对于满足远程终端设备的多样性是必需的,因为终端的显示设备多种多样的,有不同规格类型的设备,例如CRT/LCD;而且显示设备有不同的分辨率,1024x768,320x240,甚至是不规则的。
发明内容
为克服上述问题,本发明的目的在于提供一种自动创建和管理远程终端图形用户接口会话的方法,以请求自动创建和管理远程终端图形用户接口会话。
本发明的目的还在于提供一种自动创建和管理远程终端图形用户接口会话的系统,它能够根据请求自动创建和管理远程终端图形用户接口会话。
为实现上述目的,根据本发明的一方面的一种自动创建和管理远程终端图形用户接口会话的方法,用于通过网络相互连接的远程终端与宿主计算机系统的远程会话中,其中所述的远程终端包括一个会话显示模块,所述的宿主计算机系统包括一个会话服务监控模块、一个用户身份认证模块、一个会话管理模块、一个图形窗口模块、一个图形用户接口会话续连模块、一个图形用户接口会话断开模块以及一个图形用户接口会话注销模块,所述的方法包括与宿主计算机建立连接,并远程显示图形用户接口会话的会话显示步骤;管理来自远程终端的远程图形用户接口协议请求的会话服务监控步骤,其中所述的图形用户接口协议中包括显示属性消息、用户身份消息、重新初始化消息;认证远程图形用户接口协议包含的远程终端的用户身份的身份认证步骤;管理宿主计算机系统中的图形窗口模块的会话管理步骤;向远程终端发送图形用户接口,并接受会话管理模块的管理的图形窗口启用步骤;续连会话的会话续连步骤;向会话管理模块发送消息以便断开当前会话的会话断开步骤;向会话管理模块发送消息以便注销当前会话的会话注销步骤。
根据本发明的另一方面的所述会话显示步骤包括a)接收用户输入;b)与宿主计算机系统上的所述会话服务监控模块建立网络连接;c)将用户输入通过远程图形用户接口协议发送给所述会话服务监控模块;d)判断网络连接是否断开;e)在网络连接断开时,则终止运行;f)判断是否收到重新初始化消息;g)在未收到所述消息时,执行步骤i);h)在收到所述消息时,发送重新初始化请求,并执行步骤i);i)使用远程图形用户接口协议从所述图形窗口模块接收图形用户界面数据,发送键盘和鼠标事件;j)重复步骤d)。
根据本发明另一方面,所述的会话显示步骤中的用户输入包括用户身份以及显示属性。
根据本发明另一方面,所述的显示属性包括显示宽度,显示高度,显示颜色深度。
根据本发明另一方面的所述会话服务监控步骤包括a)识别远程图形用户接口协议中的所述会话显示模块的版本号;b)在所述版本号和所述会话服务监控模块的版本号不一致时,则中止与远程终端的连接;c)识别远程图形用户接口协议中包含的显示属性和用户身份;d)根据显示属性向所述会话管理模块请求图形窗口模块;e)从所述会话管理模块接收所述图形窗口模块的数据;f)把和远程终端连接的控制权交给所述图形窗口模块;g)启动所述用户身份认证模块,并把用户身份提交给所述用户身份认证模块进行认证。
根据本发明另一方面,其中步骤e)中所述的数据包括图形窗口模块的显示编号和图形窗口模块监听的端口号。
根据本发明另一方面,其中步骤f)是根据所述的端口号进行的。
根据本发明另一方面,所述用户身份认证步骤包括a)识别从所述会话服务监控模块中传来的用户身份中的用户名和口令;b)对用户名和口令进行加密;c)与宿主计算机系统的用户身份数据库进行匹配;d)在匹配成功时,则进行步骤g);e)在匹配次数超过预定阈值时,则进行步骤g);f)接收用户输入,并重复步骤b);g)启动所述图形用户接口会话续连模块,并且把匹配结果提交给所述图形用户接口会话续连模块。
根据本发明另一方面,所述图形窗口启用步骤包括
a)处理X应用程序的请求;b)检测和远程终端的连接是否处于断开状态;c)在和远程终端的连接处于断开状态时,检测是否有来自其他图形窗口模块移交网络连接的请求;d)在没有来自所述其他图形窗口模块移交网络连接的请求时,则重复步骤a);e)在存在自所述其他图形窗口模块移交网络连接的请求时,则接收网络连接,并且通过所述连接向所述会话显示模块发送重新初始化消息;f)查询来自所述会话管理模块的消息;g)在和远程终端的连接处于连接状态时,则查询来自所述会话管理模块的消息;h)在所述消息为断开时,则终止与远程终端的网络连接,并且重复步骤a);i)在所述消息为注销时,则终止与远程终端的网络连接,并且终止所述图形窗口模块;j)在所述消息为切换会话时,则把和远程终端连接的控制权交给消息中指定的所述图形窗口模块,并且终止所述图形窗口模块;k)在没有收到来自所述会话管理模块的消息时,则检测和远程终端的连接;l)在和远程终端的连接断开时,则向会话管理模块发送断开消息,并且重复步骤a);m)在和远程终端的连接处于连接状态时,则使用远程图形用户接口协议传输图形用户界面,接收键盘和鼠标事件,并重复步骤a)。
根据本发明另一方面,所述自动创建和管理远程终端图形用户接口的方法利用一个数据块,以便存储当前所有所述图形窗口模块的会话属性。
根据本发明另一方面,所述数据块包含显示编号和图形窗口模块状态。
根据本发明另一方面,所述数据块还包括进程号,会话编号,图形窗口模块名称,远程终端IP地址,图形窗口模块端口号,上次断开时间,上次连接时间,宽度,高度,颜色深度。
根据本发明另一方面,所述会话管理步骤包括a)周期性地查询消息;b)在收到所述会话服务监控模块的消息时,则为所述图形窗口模块分配一个所述的数据块,设定数据块中的图形窗口模块状态字段为等待状态,为所述图形窗口模块分配一个显示编号;并以所述显示编号启动所述图形窗口模块;c)在收到来自所述图形窗口模块的消息为断开时,则设定所述数据块的图形窗口模块状态字段为断开状态,并重复步骤a);d)在收到来自除了所述图形窗口会话断开模块之外的断开消息时,则向所述图形窗口发送断开消息,并设定所述数据块中的图形窗口模块状态字段为断开状态,并重复步骤a);e)在收到的消息为就绪时,则设定所述数据块的图形窗口模块状态字段为就绪状态,并且向所述会话服务监控模块发送所述图形窗口模块的显示编号;f)在收到的消息为请求会话列表时,则根据消息中的用户名查询断开会话列表,并向图形用户接口续连模块发送断开会话列表;g)在收到的消息为续连某个会话时,则根据消息中的显示编号设定所述数据块的图形窗口状态字段为就绪,并且向所述图形窗口模块发送切换会话消息;h)在收到的消息为登录失败时,则删除为所述图形窗口模块分配的所述数据块;并且向所述图形窗口发送注销消息;i)在收到的消息为注销时,删除为所述图形窗口模块分配的所述数据块;并且向所述图形窗口发送注销消息,结束会话。
根据本发明另一方面,所述图形用户接口会话续连步骤包括a)在收到来自所述用户身份认证模块的匹配结果为失败时,则向所述会话管理模块发送登录失败消息,并且终止所述图形用户会话续连模块;b)在收到来自所述用户身份认证模块的匹配结果为成功时,则向所述会话管理模块发送请求会话列表消息,并且读取断开会话列表;
c)在断开会话列表为空时,则为当前用户读取个人配置文件,初始化运行环境,并创建会话;d)在断开会话列表不为空时,则显示断开会话列表,接收用于选择会话的用户输入;e)根据用户输入向所述会话管理模块发送续连会话消息,并切换到用户选择的会话;f)终止所述图形用户接口续连会话模块的运行。
根据本发明另一方面,所述图形用户接口会话断开步骤包括向所述会话管理模块发送断开消息,以断开当前会话。
根据本发明另一方面,所述图形用户接口会话注销步骤包括向所述会话管理模块发送注销消息,以注销当前会话。
根据本发明另一方面,一种自动创建和管理远程终端图形用户接口会话的系统,用于远程终端与宿主计算机系统的远程会话中,该系统包括通过网络与宿主计算机系统连接的远程终端,以及宿主计算机系统,其中所述的远程终端包括一个会话显示模块,所述的宿主计算机系统包括一个会话服务监控模块、一个用户身份认证模块、一个会话管理模块、一个图形窗口模块、一个图形用户接口会话续连模块、一个图形用户接口会话断开模块以及一个图形用户接口会话注销模块,其中所述会话显示模块,用于与宿主计算机建立连接,并远程显示图形用户接口会话;所述会话服务监控模块,用于管理来自远程终端的远程图形用户接口协议请求,其中所述的图形用户接口协议中包括显示属性消息、用户身份消息、重新初始化消息;所述用户身份认证模块,用于认证远程图形用户接口协议包含的远程终端的用户身份;所述会话管理模块,用于管理宿主计算机系统中的图形窗口模块;所述图形窗口模块,用于向远程终端发送图形用户接口,并接受会话管理模块的管理;所述图形用户接口会话续连模块,用于续连会话;所述图形用户接口会话断开模块,用于向会话管理模块发送消息以便断开当前会话;所述图形用户接口会话注销模块,用于向会话管理模块发送消息以便注销当前会话。
因此,本发明可以使得远程终端图形用户接口会话通过使用操作系统的用户身份认证机制,自动创建和管理远程终端图形用户接口会话,和宿主操作系统的用户管理机制和用户个性化配置保持兼容,以简化远程终端图形用户接口会话的用户管理;本发明还允许远程终端和宿主计算机系统协商显示能力,包括显示的分辨率和颜色深度,从而解决了远程终端显示设备受到限制的问题,增加了支持的远程终端的种类;另外,本发明解决了远程终端图形用户接口会话的创建问题,当远程终端请求远程终端图形用户接口会话时,自动启动图形窗口模块;而且还允许用户注销远程终端图形用户接口会话,一旦用户发出注销请求,用户使用的图形窗口模块和应用程序所占用的CPU和内存资源就被释放,提高了资源的利用效率。
本发明还解决了网络断开时应用程序和数据丢失的问题,即使网络发生故障,用户的远程终端图形用户接口会话也会保持运行,不会丢失,用户可以从任何远程终端上重新连接到保持的会话,继续进行交互,显著地提高了远程图形用户接口的可用性。
本发明的上述目的及其特征将通过随后参照附图对优选实施例所作的说明而变得更加明显,其中图1是说明根据本发明用于自动创建和管理远程终端图形用户接口会话的系统的原理框图;图2是说明图1中用于远程终端会话显示的流程图;图3是说明图1中用于会话服务监控的流程图;图4是说明图1中用于用户身份认证的流程图;图5是说明图1中用于图形窗口模块接受会话管理的流程图;图6是说明图1中用于会话管理的流程图;图7是说明图1中用于图形用户接口会话续连的流程图;
图8是说明图1中用于图形用户接口会话断开的流程图;图9是说明图1中用于图形用户接口会话注销的流程图;图10是根据已有技术的用于远程终端与宿主计算机系统之间的会话管理的系统的方框图。
具体实施例方式
本发明针对Linux操作系统和RFB协议做了具体实施,下面将结合附图详细描述。
图10是根据已有技术的用于远程终端与宿主计算机系统之间的会话管理的系统1000的方框图。该系统1000包括一个远程终端1021,一个宿主计算机系统1041,远程终端1021通过局域网1031和宿主计算机系统1041相连。该远程终端包括一个会话显示模块1011,该宿主计算机系统1041包括一个操作系统1050,一个图形窗口模块1051,一个用户身份认证模块1052,以及多个X应用程序1053。
图1是说明根据本发明用于自动创建和管理远程终端图形用户接口会话的系统的原理框图,该系统包括通过网络与宿主计算机系统连接的远程终端101,以及宿主计算机系统102。其中,会话服务监控模块120用于完成和会话显示模块110建立连接,进行版本号判断,许可证检查,并在完成初始化之后,向会话管理模块150请求空闲的会话,把和所述会话显示模块110建立的网络连接传递给图形窗口模块140,然后控制权交给用户身份认证模块130;所述用户身份认证模块130识别从所述会话服务监控模块传来的用户身份,完成用户身份的认证;所述会话管理模块150根据来自各个模块的消息对会话进行创建/分配/删除,并且管理会话的状态,其中所述会话管理模块150利用一个数据块,以便存储当前所有所述图形窗口模块的会话属性,该数据块包括显示编号和图形窗口模块状态,进程号,会话编号,图形窗口模块名称,远程终端IP地址,图形窗口模块端口号,上次断开时间,上次连接时间,宽度,高度,颜色深度等;所述图形窗口模块140在从其它模块收到和会话显示模块110的网络连接之后,向会话显示模块110发送应用软件的用户接口,并且处理会话显示模块110发送过来的键盘鼠标事件,以及根据所述会话管理模块150发送的请求,断开和会话显示模块的网络连接,或者终止运行,其中,在所述图形窗口模块140终止时,运行在所述图形窗口模块140上的所有X应用程序都会终止,会话结束;图形用户接口会话续连模块160用于向所述会话管理模块150请求当前用户的断开会话,在用户有多个断开的会话时,图形用户接口会话续连模块160根据用户选择向所述会话管理模块150发送请求,以便用户切换到选择的会话中;图形用户接口会话断开模块170用于向会话管理模块150发送消息,以便通知当前用户要断开会话;图形用户接口会话注销模块180用于向会话管理模块150发送消息,以便通知当前用户要终止会话;所述会话显示模块110用于向所述会话服务监控模块120发送请求,请求通过用户认证,以及和图形窗口模块进行屏幕分辨率/颜色深度的协商,在能力协商以后,向所述图形窗口模块140发送用户的键盘鼠标输入,接收所述图形窗口模块140返回的屏幕更新。
图2是说明图1中的用于会话显示的流程图。在图2中,首先在步骤201接收用户的输入,包括用户名、口令、显示宽度、显示高度、颜色深度等数据,然后通过步骤202和图1中的会话服务监控模块151建立网络连接,把版本号和用户输入通过RFB协议发送给图1中的会话服务监控模块151;在步骤203检查网络连接是否断开,如果网络连接断开,则终止运行;否则在步骤204检查是否收到重新初始化消息,如果没有收到重新初始化消息,则执行步骤206使用远程图形用户接口协议RFB从所述图形窗口模块接收图形用户界面数据,发送键盘和鼠标事件,并且重复步骤203;如果在步骤204检查收到了重新初始化消息,则在步骤205发送重新初始化请求,然后执行步骤206,并重复步骤203。
图3是说明图1中用于会话服务监控的流程图。在图3中,首先在步骤301识别会话显示模块通过RFB协议发送来版本号,在步骤302如果会话服务监控模块和会话显示模块的版本号一致,则执行步骤303识别会话显示模块通过RFB协议发送来的显示属性和用户身份,然后在步骤304向会话管理模块请求合适的图形窗口模块,在步骤305接收请求得到的图形窗口模块数据,包括图形窗口模块的显示编号和图形窗口模块监听的端口号,在步骤306移交网络连接的控制权给图形窗口模块,并且在步骤307启动用户身份认证模块,并且把用户身份传递给用户身份认证模块。如果在步骤302会话服务监控模块和会话显示模块的版本号不一致,则终止。
图4是说明图1中用于用户身份认证的流程图。在图4中,首先在步骤401识别会话服务监控模块传来的用户身份,并且对用户身份中用户名和口令进行加密,然后到步骤402和Linux操作系统的用户身份数据库进行匹配,在步骤403,如果匹配成功,则执行步骤406启动图形用户接口会话续连模块,并且通知图形用户接口会话续连模块匹配成功,否则执行步骤404检查匹配的次数是否超过指定的阈值,如果已经超过了指定的阈值,则执行步骤406启动图形用户接口会话续连模块,并且通知图形用户接口会话续连模块匹配失败;否则执行步骤405接收用户输入,并且重复执行步骤402。
图5是说明图1中用于图形窗口模块接受会话管理的流程图。在图5中,首先在步骤501处理X应用程序的请求,然后在步骤502检测和远程终端的连接断开,如果和远程终端的连接断开,则执行步骤503检查是否有其他图形窗口模块移交网络连接的请求,如果没有其他图形窗口模块移交网络连接的请求,则重复执行步骤501,否则执行步骤504,接收从其他图形窗口模块传递的网络连接,然后执行步骤517向会话显示模块发送重新初始化消息,并且执行步骤505开始监听来自会话管理模块的消息,如果在步骤502检测到和远程终端的连接没有断开,则执行步骤505开始监听来自会话管理模块的消息。随后在步骤506检查是否有消息,如果没有收到来自会话管理模块的消息,则执行步骤513检测和远程终端的连接,如果在步骤514检测到和远程终端的连接断开,则执行步骤515向会话管理模块发送“断开”消息,并重复步骤501,如果在步骤514检测到和远程终端的连接没有断开,则执行步骤516使用RFB协议向会话显示模块发送图形用户会话的用户界面,接收键盘和鼠标事件,并重复步骤501;如果在步骤506检测到了消息,则在步骤507判断消息的类型是否为“断开”,如果消息的类型为“断开”,则执行步骤508,断开和远程终端的网络连接,并重复步骤501;否则在步骤509判断消息的类型是否为“注销”,如果消息的类型为“注销”,则在步骤510断开和远程终端的网络连接并且终止;否则在步骤511判断消息的类型是否为“切换会话”,如果消息的类型为“切换会话”,则在步骤512移交和远程终端的网络连接的控制权并且终止。
图6是说明图1中用于会话管理的流程图,在图6中,首先在步骤601周期性地查询来自宿主计算机系统中的所述会话服务监控模块,所述图形窗口模块,所述图形用户接口会话断开模块,所述图形用户接口会话注销模块,所述图形用户接口会话续连模块的消息,然后在步骤602判断检查是否有消息,如果没有收到消息,则重复步骤601;如果收到了消息,在所述消息是来自所述会话服务监控模块时,为图形窗口模块分配一个所述的数据块,设定数据块中的图形窗口模块状态字段为等待状态,为所述图形窗口模块分配一个显示编号,并以所述显示编号启动所述图形窗口模块;以及在步骤603判断消息的类型是否为“断开”,如果消息的类型为“断开”,则执行步骤604检查消息的来源是否为“图形窗口模块”,如果消息的来源为图形窗口模块,则执行步骤606,设定该图形窗口模块的数据块的图形窗口模块状态字段为“断开”,如果消息的来源不是图形窗口模块,则执行步骤605,向图形窗口模块发送类型为“断开”的消息,然后执行步骤606,并重复执行步骤601。如果在步骤603判断消息的类型不是“断开”,则执行步骤607判断消息的类型是否为“就绪”,如果消息的类型为“就绪”,则执行步骤608,设定该图形窗口模块的数据块的图形窗口模块状态字段为“就绪”,然后执行步骤609,向会话服务监控模块发送“显示编号”,然后重复步骤601;如果在步骤607判断消息的类型不是“就绪”,则执行步骤614判断消息的类型是否为“请求会话列表”,如果消息的类型为“请求会话列表”,则执行步骤610,根据用户名查询断开会话列表,然后执行步骤611,向图形窗口会话续连模块发送“断开会话列表”,然后重复步骤601;如果在步骤614判断消息的类型不是“请求会话列表”,则执行步骤615判断消息的类型是否为“续连会话”,如果消息的类型为“续连会话”,则执行步骤612,设定该图形窗口模块的数据块的图形窗口模块状态字段为“就绪”,然后执行步骤613,向图形窗口模块发送“切换会话”消息,然后重复步骤601;如果在步骤615判断消息的类型不是“续连会话”,则执行步骤616判断消息的类型是否为“登录失败”,如果消息的类型为“登录失败”,则执行步骤618,删除该图形窗口模块的数据块,并且在步骤619向图形窗口模块发送“注销”消息,如果在步骤616判断消息的类型不是“登录失败”,则执行步骤617判断消息的类型是否为“注销”,如果消息的类型为“注销”,则执行步骤618,删除该图形窗口模块的数据块,并且在步骤619向图形窗口模块发送“注销”消息,如果在步骤617判断的消息的类型不是“注销”,则重复步骤601。
图7是说明图1中用于图形用户接口会话续连的流程图,在图7中,首先在步骤701判断来自用户身份认证模块的匹配结果是否为“成功”,如果匹配的结果为“失败”,则向会话管理模块发送发送登录失败消息,并且终止所述图形用户会话续连模块。如果匹配的结果为“成功”,则执行步骤702向会话管理模块发送“请求会话列表消息”,然后执行步骤703,从会话管理模块读取“断开会话列表”,随后在步骤704判断收到的断开会话列表是否为“空”,如果收到的断开会话列表为“空”,则执行步骤707,读取用户个人配置文件初始化运行环境,并且终止,如果收到的断开会话列表不为“空”,则执行步骤705显示断开会话列表,并接收用于选择会话的用户输入,并根据用户输入执行步骤706,向会话管理模块发送“续连会话”消息,切换到用户选择的会话,并终止。
图8是说明图1中用于图形用户接口会话断开的流程图,在图8中,首先在步骤801读取当前会话的显示编号,然后执行步骤802,向会话管理模块发送“断开当前会话”消息,并且终止。
图9是说明图1中用于图形用户接口会话注销的流程图,在图9中,首先在步骤901读取当前会话的显示编号,然后执行步骤902,向会话管理模块发送“注销当前会话”消息,并且终止。
本发明的优先实现和Linux操作系统和RFB协议有关,但是本发明不限定于Linux操作系统,也不限定于RFB协议。技术人员可以对此进行不违背本发明的精神和范围的各种修改,例如技术人员能够意识到本发明不限定于任何特定的远程图形用户接口协议和任何特定的操作系统;还例如,技术人员可以对远程图形用户接口协议进行不违背本发明的精神和范围的修改,例如在协议中增加声音、打印等外部设备的数据。因此,很明显本发明可以按照多种变化形式实现,这些变化并不脱离本发明的精神和实质,所有这些修改对于本领域技术人员都是很明显的,而且将落入所附权利要求的范围内。
权利要求
1.一种自动创建和管理远程终端图形用户接口会话的方法,用于远程终端与宿主计算机系统的远程会话中,所述远程终端与宿主计算机系统通过网络相互连接,其中所述的远程终端包括一个会话显示模块,所述的计算机系统包括一个会话服务监控模块、一个用户身份认证模块、一个会话管理模块、一个图形窗口模块、一个图形用户接口会话续连模块、一个图形用户接口会话断开模块以及一个图形用户接口会话注销模块,所述的方法包括与宿主计算机建立连接,并远程显示图形用户接口会话的会话显示步骤;管理来自远程终端的远程图形用户接口协议请求的会话服务监控步骤,其中所述的图形用户接口协议中包括显示属性消息、用户身份消息、重新初始化消息;认证所述远程图形用户接口协议包含的远程终端的用户身份的身份认证步骤;管理宿主计算机系统中的图形窗口模块的会话管理步骤;向远程终端发送图形用户接口,并接受会话管理模块的管理的图形窗口启用步骤;续连会话的会话续连步骤;向会话管理模块发送消息以便断开当前会话的会话断开步骤;向会话管理模块发送消息以便注销当前会话的会话注销步骤。
2.如权利要求1所述的方法,其特征在于,所述会话显示步骤包括a)接收用户输入;b)与所述会话服务监控模块建立网络连接;c)将用户输入通过远程图形用户接口协议发送给所述会话服务监控模块;d)判断网络连接是否断开;e)在网络连接断开时,则终止运行;f)判断是否收到重新初始化消息;g)在未收到所述消息时,执行步骤i);h)在收到所述消息时,发送重新初始化请求,并执行步骤i);i)使用远程图形用户接口协议从所述图形窗口模块接收图形用户界面数据,发送键盘和鼠标事件;j)重复步骤d)。
3.如权利要求2所述的方法,其特征在于所述步骤a)中的用户输入包括用户身份以及显示属性。
4.如权利要求3所述的方法,其特征在于所述显示属性包括显示宽度,显示高度,显示颜色深度。
5.如权利要求1所述的方法,其特征在于,所述会话服务监控步骤包括a)识别远程图形用户接口协议中的所述会话显示模块的版本号;b)在所述版本号和所述会话服务监控模块的版本号不一致时,则中止与远程终端的连接;c)识别远程图形用户接口协议中包含的显示属性和用户身份;d)根据显示属性向所述会话管理模块请求图形窗口模块;e)从所述会话管理模块接收所述图形窗口模块的数据;f)把和远程终端连接的控制权交给所述图形窗口模块;g)启动所述用户身份认证模块,并把用户身份提交给所述用户身份认证模块进行认证。
6.如权利要求5所述的方法,其特征在于步骤e)中所述的数据包括图形窗口模块的显示编号和图形窗口模块监听的端口号。
7.如权利要求6所述的方法,其特征在于步骤f)是根据所述的端口号进行的。
8.如权利要求1所述的方法,其特征在于,所述用户身份认证步骤包括a)识别从所述会话服务监控模块中传来的用户身份中的用户名和口令;b)对用户名和口令进行加密;c)与宿主计算机系统的用户身份数据库进行匹配;d)在匹配成功时,则进行步骤g);e)在匹配次数超过预定阈值时,则进行步骤g);f)接收用户输入,并重复步骤b);g)启动所述图形用户接口会话续连模块,并且把匹配结果提交给所述图形用户接口会话续连模块。
9.如权利要求1所述的方法,其特征在于,所述图形窗口启用步骤包括a)处理X应用程序的请求;b)检测和远程终端的连接是否处于断开状态;c)在和远程终端的连接处于断开状态时,检测是否有来自其他图形窗口模块移交网络连接的请求;d)在没有来自所述其他图形窗口模块移交网络连接的请求时,则重复步骤a);e)在存在自所述其他图形窗口模块移交网络连接的请求时,则接收网络连接,并且通过所述连接向所述会话显示模块发送重新初始化消息;f)查询来自所述会话管理模块的消息;g)在和远程终端的连接处于连接状态时,则查询来自所述会话管理模块的消息;h)在所述消息为断开时,则终止与远程终端的网络连接,并且重复步骤a);i)在所述消息为注销时,则终止与远程终端的网络连接,并且终止所述图形窗口模块;j)在所述消息为切换会话时,则把和远程终端连接的控制权交给消息中指定的所述图形窗口模块,并且终止所述图形窗口模块;k)在没有收到来自所述会话管理模块的消息时,则检测和远程终端的连接;l)在和远程终端的连接断开时,则向会话管理模块发送断开消息,并且重复步骤a);m)在和远程终端的连接处于连接状态时,则使用远程图形用户接口协议传输图形用户界面,接收键盘和鼠标事件,并重复步骤a)。
10.如权利要求1所述的方法,其特征在于,所述方法利用一个数据块,以便存储当前所有所述图形窗口模块的会话属性。
11.如权利要求10所述的方法,其特征在于,所述数据块包含显示编号和图形窗口模块状态。
12.如权利要求11所述的方法,其特征在于,所述数据块还包括进程号,会话编号,图形窗口模块名称,远程终端IP地址,图形窗口模块端口号,上次断开时间,上次连接时间,宽度,高度,颜色深度。
13.如权利要求11或12所述的方法,其特征在于,所述会话管理步骤包括a)周期性地查询消息;b)在收到所述会话服务监控模块的消息时,则为图形窗口模块分配一个所述的数据块,设定数据块中的图形窗口模块状态字段为等待状态,为所述图形窗口模块分配一个显示编号;并以所述显示编号启动所述图形窗口模块;c)在收到来自所述图形窗口模块的消息为断开时,则设定所述数据块的图形窗口模块状态字段为断开状态,并重复步骤a);d)在收到来自除了所述图形窗口会话断开模块之外的断开消息时,则向所述图形窗口发送断开消息,并设定所述数据块中的图形窗口模块状态字段为断开状态,并重复步骤a);e)在收到的消息为就绪时,则设定所述数据块的图形窗口模块状态字段为就绪状态,并且向所述会话服务监控模块发送所述图形窗口模块的显示编号;f)在收到的消息为请求会话列表时,则根据消息中的用户名查询断开会话列表,并向图形用户接口续连模块发送断开会话列表;g)在收到的消息为续连某个会话时,则根据消息中的显示编号设定所述数据块的图形窗口状态字段为就绪,并且向所述图形窗口模块发送切换会话消息;h)在收到的消息为登录失败时,则删除为所述图形窗口模块分配的所述数据块;并且向所述图形窗口发送注销消息;i)在收到的消息为注销时,删除为所述图形窗口模块分配的所述数据块;并且向所述图形窗口发送注销消息,结束会话。
14.如权利要求1所述的方法,其特征在于,所述图形用户接口会话续连步骤包括a)在收到来自所述用户身份认证模块的匹配结果为失败时,则向所述会话管理模块发送登录失败消息,并且终止所述图形用户会话续连模块;b)在收到来自所述用户身份认证模块的匹配结果为成功时,则向所述会话管理模块发送请求会话列表消息,并且读取断开会话列表;c)在断开会话列表为空时,则为当前用户读取个人配置文件,初始化运行环境,并创建会话;d)在断开会话列表不为空时,则显示断开会话列表,接收用于选择会话的用户输入;e)根据用户输入向所述会话管理模块发送续连会话消息,并切换到用户选择的会话;f)终止所述图形用户接口续连会话模块的运行。
15.如权利要求1所述的方法,其特征在于,所述图形用户接口会话断开步骤包括向所述会话管理模块发送断开消息,以断开当前会话。
16.如权利要求1所述的方法,其特征在于,所述图形用户接口会话注销步骤包括向所述会话管理模块发送注销消息,以注销当前会话。
17.一种自动创建和管理远程终端图形用户接口会话的系统,用于远程终端与宿主计算机系统的远程会话中,该系统包括通过网络与宿主计算机系统连接的远程终端,以及宿主计算机系统,其中所述的远程终端包括一个会话显示模块,所述的宿主计算机系统包括一个会话服务监控模块、一个用户身份认证模块、一个会话管理模块、一个图形窗口模块、一个图形用户接口会话续连模块、一个图形用户接口会话断开模块以及一个图形用户接口会话注销模块,其中所述会话显示模块,用于与宿主计算机建立连接,并远程显示图形用户接口会话;所述会话服务监控模块,用于管理来自远程终端的远程图形用户接口协议请求,其中所述的图形用户接口协议中包括显示属性消息、用户身份消息、重新初始化消息;所述用户身份认证模块,用于认证远程图形用户接口协议包含的远程终端的用户身份;所述会话管理模块,用于管理宿主计算机系统中的图形窗口模块;所述图形窗口模块,用于向远程终端发送图形用户接口,并接受会话管理模块的管理;所述图形用户接口会话续连模块,用于续连会话;所述图形用户接口会话断开模块,用于向会话管理模块发送消息以便断开当前会话;所述图形用户接口会话注销模块,用于向会话管理模块发送消息以便注销当前会话。
全文摘要
自动创建和管理远程终端图形用户接口会话的方法和系统。通过在远程图形用户接口协议中增加显示属性消息、用户身份消息、重新初始化消息,提供会话显示、会话服务监控、用户身份认证、会话管理、图形窗口启用、图形用户接口会话断开、注销和续连,使得和宿主操作系统的用户管理机制和用户个性化配置保持兼容,简化了远程终端图形用户接口会话的管理;提高了宿主计算机系统CPU和内存的利用效率;使得即使网络发生故障,用户的远程终端图形用户接口会话也会保持运行,不会丢失,用户可以从任何远程终端上重新连接到保持的会话,继续进行交互,提高了远程图形用户接口的可用性。
文档编号G06F17/00GK1622077SQ200310116910
公开日2005年6月1日 申请日期2003年11月28日 优先权日2003年11月28日
发明者李文杰, 李明树, 何川, 淮晓永, 刘奎恩, 廖渊, 王保进 申请人:中国科学院软件研究所