基于远程显示协议的动态虚拟通道的创建和应用方法

文档序号:7756241阅读:481来源:国知局
专利名称:基于远程显示协议的动态虚拟通道的创建和应用方法
基于远程显示协议的动态虚拟通道的创建和应用方法
技术领域
本发明涉及一种基于远程显示协议的动态虚拟通道的创建和应用方法。背景技术
RDP (Remote Display Protocol,远程显示协议)虚拟通道是在RDP协议中实现的 用于RDP服务器程序与RDP客户端程序通讯的数据通道。特别是在集群服务器环境中可以 很好的解决服务器与当前登入用户间的数据通讯问题。但是,RDP协议规定了虚拟通道只 能在RDP连接中静态创建,并且规定了虚拟通道的上限为每条RDP链接只能支持28条虚拟 通道,这在很大程度上限制了 RDP虚拟通道的扩展。如在RDP6以前(包含RDP6)的RDP协 议中,开发人员要在RDP连接上创建数据传输链路时,只能用静态虚拟通道的模式,这在一 定程度上限制了开发人员在使用RDP虚拟通道时的灵活性。

发明内容本发明要解决的技术问题,在于提供一种基于RDP6. 0协议的建立动态虚拟通道 的方法,对虚拟通道数据包的数据封装,实现将一条静态的虚拟通道动态扩展为多条虚拟 通道,并支持动态创建。本发明是这样实现的一种基于远程显示协议(RDP6. 0)的动态虚拟通道的创建 和应用方法,其特征在于在服务器端安装虚拟通道数据转发服务程序,并在客户端安装虚 拟通道插件;所述虚拟通道数据转发服务程序创建一条用于与客户端程序进行通信的静态 虚拟通道;服务器端的服务器应用程序调用相应的应用程序编程接口注册动态虚拟通道以 及处理数据收发操作。在注册动态虚拟通道时,具体包括如下步骤步骤10、首先由服务器应用程序提出申请,发送该服务器应用程序的PID (运行进 程ID)、登录用户的SessionID以及通道处理数据类型码给所述虚拟通道数据转发服务程 序;步骤20、所述虚拟通道数据转发服务程序受理申请后,判断所述登录用户的 SessionID是否存在,若不存在则结束,若存在则判断所述通道处理数据类型码以及所述服务器应用程序的PID是否存在,如果存 在则进入数据正常交互阶段,如果不存在则通知客户端创建相应服务线程,并生成相应动 态虚拟通道ID ;步骤30、客户端的虚拟通道插件收到通知后,根据接收到的通道处理数据类型码 判断该通道处理数据类型码是否支持相应服务,若不支持则结束,若支持则根据该通道处 理数据类型码创建相应的服务线程并生成相应动态虚拟通道ID ;步骤40、虚拟通道插件一方面记录动态虚拟通道ID对应的服务线程;另一方面通 知客户端的实际操作线程,由客户端的实际操作线程创建并运行相应服务,同时根据生成 的动态虚拟通道ID收发数据;再一方面将动态虚拟通道ID返回至虚拟通道数据转发服务程序,由所述虚拟通道数据转发服务程序在服务器端本地列表中增加动态虚拟通道的匹配 信息,并返回动态虚拟通道ID至服务器应用程序,最后由服务器应用程序进入数据正常交 互阶段。所述数据正常交互阶段为服务器端发送时,首先封装服务器程序发送给客户端的数据,形成数据包,再对 每个数据包增加动态虚拟通道标识,并通过静态虚拟通道发送给客户端;接收时,首先接收 来自静态虚拟通道的数据,并解析数据包,根据动态虚拟通道标识,将数据包发送给对应的 服务器程序;客户端发送时,首先封装客户端应用线程发送给服务器端的数据,形成数据包, 再对每个数据包增加动态虚拟通道标识,并通过静态虚拟通道发送给服务器端;接收时,首 先接收来自静态虚拟通道的数据,并解析数据包,根据动态虚拟通道标识,将数据包发送给 对应的应用线程。本发明具有如下优点解决了 RDP连接下无法动态创建虚拟通道的问题;打破了 RDP虚拟通道28条连接的限制;提供了较好的数据操作接口,简化虚拟通道数据操作过程。

下面参照附图结合实施例对本发明作进一步的说明。图1为本发明方法中注册动态虚拟通道的流程框图。图2为本发明方法服务器端与客户端数据流向示意图。图3为本发明方法动态虚拟通道数据封装结构示意图。
具体实施方式本发明方法是一种基于远程显示协议的动态虚拟通道的创建和应用方法,其是在 服务器端安装虚拟通道数据转发服务程序,并在客户端安装虚拟通道插件;所述虚拟通道 数据转发服务程序创建一条用于与客户端程序进行通信的静态虚拟通道;服务器端的服务 器应用程序调用相应的应用程序编程接口注册动态虚拟通道以及处理数据收发操作。其中,Windows服务程序是Windows系统下的应用程序的一种,他通过向系统注册 服务程序基本信息后,可由系统在启动时以System用户启动的应用程序。而虚拟通道插件实际上就是RDP插件,它本质是一个DLUDynamic link Library),可以通过在注册表分支 HKEY CURRENT USER\Software\Microsoft\Terminal Server Client\Default\AddIns中添加相应的项实现注册RDP插件的目的,具体方法可以 在微软MSDN文档中查到。RDP插件在注册成功后,RDP客户端程序mstsc. exe在运行时就 会自动加载该DLL,并且调用DLL中相应的导出函数实现静态虚拟通道的注册和数据收发。如图1所示,在注册动态虚拟通道时,具体包括如下步骤步骤10、首先由服务器应用程序提出申请,发送该服务器应用程序的PID、登录用 户的SessionID以及通道处理数据类型码给所述虚拟通道数据转发服务程序;步骤20、所述虚拟通道数据转发服务程序受理申请后,判断所述登录用户的 SessionID是否存在,若所述登录用户的SessionID不存在说明登录用户非远程登录,则结 束此过程,若所述登录用户的SessionID存在则说明登录用户为远程登录,则判断所述通
4道处理数据类型码以及所述服务器应用程序的PID是否存在,如果所述通道处理数据类型 码以及所述服务器应用程序的PID存在则进入数据正常交互阶段,如果不存在则通知客户 端创建相应服务线程,并生成相应动态虚拟通道ID ;步骤30、客户端收到通知后,客户端的虚拟通道插件根据接收到的通道处理数据 类型码判断该通道处理数据类型码是否支持相应服务,若不支持则结束,若支持则根据该 通道处理数据类型码创建相应的服务线程并生成相应动态虚拟通道ID ;步骤40、虚拟通道插件一方面记录动态虚拟通道ID对应的服务线程;另一方面通 知客户端的实际操作线程,由客户端的实际操作线程创建并运行相应服务,同时根据生成 的动态虚拟通道ID收发数据;再一方面将动态虚拟通道ID返回至虚拟通道数据转发服务 程序,由所述虚拟通道数据转发服务程序在服务器端本地列表中增加动态虚拟通道的匹配 信息,并返回动态虚拟通道ID至服务器应用程序,最后由服务器应用程序进入数据正常交 互阶段。如图2所示,所述数据正常交互阶段为服务器端发送时,首先封装服务器程序发送给客户端的数据,再对每个数据包 增加动态虚拟通道标识,形成如图3所示的数据包结构,并通过静态虚拟通道发送给客户 端,通过所述动态虚拟通道标识即可告诉客户端该数据包具体来自哪个服务器程序以及需 具体发送给客户端的哪个线程;接收时,首先接收来自静态虚拟通道的数据,并解析数据 包,根据动态虚拟通道标识判断数据的来向,将数据包发送给对应的服务器程序;如接收 到客户端应用线程A的数据包,在解析数据包时可获得对应该数据包的动态虚拟通道标识 UUID,即发给服务器程序A使用,如接收到客户端应用线程B的数据包,即发给服务器程序 B使用,如此类推,而不会出错。客户端同理,发送时,首先封装客户端应用线程发送给服务器端的数据,形成数 据包,再对每个数据包增加动态虚拟通道标识,并通过静态虚拟通道发送给服务器端;接收 时,首先接收来自静态虚拟通道的数据,并解析数据包,根据动态虚拟通道标识,将数据包 发送给对应的应用线程。
权利要求
一种基于远程显示协议的动态虚拟通道的创建和应用方法,其特征在于在服务器端安装虚拟通道数据转发服务程序,并在客户端安装虚拟通道插件;所述虚拟通道数据转发服务程序创建一条用于与客户端程序进行通信的静态虚拟通道;服务器端的服务器应用程序调用相应的应用程序编程接口注册动态虚拟通道以及处理数据收发操作。
2.根据权利要求1所述的基于远程显示协议的动态虚拟通道的创建和应用方法,其特 征在于在注册动态虚拟通道时,具体包括如下步骤步骤10、首先由服务器应用程序提出申请,发送该服务器应用程序的PID、登录用户的 SessionID以及通道处理数据类型码给所述虚拟通道数据转发服务程序;步骤20、所述虚拟通道数据转发服务程序受理申请后,判断所述登录用户的 SessionID是否存在,若不存在则结束,若存在则判断所述通道处理数据类型码以及所述服务器应用程序的PID是否存在,如果存在则 进入数据正常交互阶段,如果不存在则通知客户端创建相应服务线程,并生成相应动态虚 拟通道ID ;步骤30、客户端的虚拟通道插件收到通知后,根据接收到的通道处理数据类型码判断 该通道处理数据类型码是否支持相应服务,若不支持则结束,若支持则根据该通道处理数 据类型码创建相应的服务线程并生成相应动态虚拟通道ID ;步骤40、虚拟通道插件一方面记录动态虚拟通道ID对应的服务线程;另一方面通知客 户端的实际操作线程,由客户端的实际操作线程创建并运行相应服务,同时根据生成的动 态虚拟通道ID收发数据;再一方面将动态虚拟通道ID返回至虚拟通道数据转发服务程序, 由所述虚拟通道数据转发服务程序在服务器端本地列表中增加动态虚拟通道的匹配信息, 并返回动态虚拟通道ID至服务器应用程序,最后由服务器应用程序进入数据正常交互阶 段。
3.根据权利要求2所述的基于远程显示协议的动态虚拟通道的创建和应用方法,其特 征在于所述数据正常交互阶段为服务器端发送时,首先封装服务器程序发送给客户端的数据,形成数据包,再对每个 数据包增加动态虚拟通道标识,并通过静态虚拟通道发送给客户端;接收时,首先接收来自 静态虚拟通道的数据,并解析数据包,根据动态虚拟通道标识,将数据包发送给对应的服务 器程序;客户端发送时,首先封装客户端应用线程发送给服务器端的数据,形成数据包,再对 每个数据包增加动态虚拟通道标识,并通过静态虚拟通道发送给服务器端;接收时,首先接 收来自静态虚拟通道的数据,并解析数据包,根据动态虚拟通道标识,将数据包发送给对应 的应用线程。
全文摘要
本发明提供一种基于远程显示协议的动态虚拟通道的创建和应用方法,在服务器端安装虚拟通道数据转发服务程序,并在客户端安装虚拟通道插件;所述虚拟通道数据转发服务程序创建一条用于与客户端程序进行通信的静态虚拟通道;服务器端的服务器应用程序调用相应的应用程序编程接口注册动态虚拟通道以及处理数据收发操作。本发明方法是对虚拟通道数据包的数据封装,实现将一条静态的虚拟通道动态扩展为多条虚拟通道,并支持动态创建。
文档编号H04L29/06GK101909061SQ20101024724
公开日2010年12月8日 申请日期2010年8月6日 优先权日2010年8月6日
发明者张辉 申请人:福建升腾资讯有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1