促成基于网络过程调用的使用的客户端-服务器通讯系统与方法

文档序号:6496611阅读:114来源:国知局
促成基于网络过程调用的使用的客户端-服务器通讯系统与方法
【专利摘要】本申请公开了一种数据通讯系统与方法。所述方法包括:促成从客户端计算装置接收通用格式的第一信息;根据用于基于网络过程调用介面的存储编码,通过将第一信息编码成与服务器相关的基于网络过程调用介面以产生已编码第一信息;促成传送已编码第一信息给服务器的模块;促成从服务器的模块接收第二信息,所述第二信息是与服务器相关的基于网络过程调用介面编码;根据基于网络过程调用介面的存储编码,通过将第二信息解码成通用格式以产生已解码第二信息;促成传送已解码第二信息给客户端计算装置的模块。
【专利说明】促成基于网络过程调用的使用的客户端-服务器通讯系统
与方法
[0001]相关申请的交叉引用
[0002]本申请主张2011年8月9日提出申请的美国临时专利申请案序号61/521,736,标题为“REMOTE GATEWAY CLIENT PROXY AND SYSTEMS”以及2011年8月4日申请的美国临时专利申请案序号 61/515,277,标题为“METHOD AND APPARATUS FOR REMOTE GATEWAY CLIENTPROXY”的优先权,其全部均据此以其全文并于本文以供参考。
【技术领域】
[0003]本申请涉及远程计算或客户端-服务器计算系统,特别是,举例来说,客户端-服务器的通讯系统与方法,以促成基于网络过程调用的使用。
【背景技术】
[0004]有些专属服务器(例如,执行微软公司的远程桌面协议)被设计用来与执行专属作业系统的客户端(例如微软公司的视窗作业系统)进行沟通,或者具有与特定作业系统中的软件进行沟通的程式码。因此,没有执行特定作业系统的客户端计算装置是无法存取这些服务器、数据、以及存储于其中的软件,对于这类型的客户端计算装置的用户而言是不方便的,而且也降低了用户的体验价值。如同前面所述,亟需一种新的技术方案,用来使专属服务器可以与未必安装有专属作业系统的客户端计算装置沟通。

【发明内容】

[0005]本申请一方面的目的是提供一种數據溝通的方法。所述的方法包括:促成从客户端计算装置接收通用格式的第一信息;根据用于基于网络过程调用介面的存储编码,通过将所述第一信息编码成与服务器相关的基于网络过程调用介面以产生已编码第一信息;促成传送所述已编码第一信息给服务器的模块;促成从所述服务器的模块接收第二信息,所述第二信息是与服务器相关的基于网络过程调用介面编码;根据基于网络过程调用介面的存储编码,通过将所述第二信息解码成通用格式以产生已解码第二信息;以及促成传送已解码第二信息给客户端计算装置的模块。
[0006]本申请其他方面的目的是提供一种非暂时性机器可读取媒介,所述媒介包括存储于其中的指令,所述指令被一个或多个处理器执行,以执行一个或多个操作,包括:用于致使一个或多个处理器促成从客户端计算装置接收通用格式的第一信息的代码;用于致使一个或多个处理器根据用于基于网络过程调用介面的存储编码,通过将所述第一信息编码成与服务器相关的基于网络过程调用介面以产生已编码第一信息的代码;用于致使一个或多个处理器促成传送所述已编码第一信息给服务器的模块的代码;用于致使一个或多个处理器促成从服务器的模块接收第二信息的代码,所述第二信息是与服务器相关的基于网络过程调用介面编码;用于致使一个或多个处理器根据基于网络过程调用介面的存储编码的代码,通过将所述第二信息解码成通用格式以产生已解码第二信息;用于致使一个或多个处理器促成传送所述已解码第二信息给客户端计算装置的模块的代码。
[0007]本申请在一些方面提供了一种设备,该设备包括一个或多个模块,用于促进对于客户端计算装置模块的数据通讯进行认证;该设备包括一个或多个模块,用于促进对于服务器模块的数据通讯进行认证;该设备包括一个或多个模块,对用于服务器的基于网络过程调用介面的编码的进行认证;该设备包括一个或多个模块,促成对传送给客户端计算装置的模块或者服务器的模块的信息的大小是否在信息大小范围内进行验证;该设备包括一个或多个模块,促成对服务器的模块建立隧道,其中隧道用于数据通讯;以及促成在隧道中建立频道,其中频道是用来数据通讯。
[0008]本申请其他方面的目的是提供一种用于设定数据通讯的电脑可执行方法,所述的方法包括:对于数据通讯,促成对客户端计算装置的模块进行认证;对于数据通讯,促成对服务器的模块进行认证;对用于服务器的基于网络过程调用介面的编码的进行认证;将基于网络过程调用介面与用于服务器的网关界面的协议结合;促成对传送给客户端计算装置的模块或者服务器的模块的信息的大小是否在信息大小范围内进行验证;促成对服务器的模块建立隧道,其中隧道用于数据通讯;以及促成在隧道中建立频道,其中频道是用来数据通讯。
[0009]本申请其他方面的目的是提供一种非暂时性的机器可读取媒介,包括存储于其中的指令,指令被一个或多个处理器执行,以执行一个或多个操作,包括:用于致使一个或多个处理器,对于数据通讯,促成对客户端计算装置的模块进行认证的代码;用于致使一个或多个处理器,对于数据通讯,促成对服务器的模块进行认证的代码;用于致使一个或多个处理器,对用于服务器的基于网络过程调用介面的编码的进行认证的代码;用于致使一个或多个处理器,将基于网络过程调用介面与用于服务器的网关界面的协议结合的代码;用于致使一个或多个处理器,促成对传送给客户端计算装置的模块或者服务器的模块的信息的大小是否在信息大小范围内进行验证的代码;用于致使一个或多个处理器,促成对服务器的模块建立隧道,其中隧道用于数据通讯的代码;以及用于致使一个或多个处理器,促成在隧道中建立频道,其中频道是用来数据通讯的代码。
[0010]本申请其他方面的目的是提供一种设备,包括:一个或多个模块,用于对于数据通讯,促成对客户端计算装置的模块进行认证;一个或多个模块,用于数据通讯,促成对服务器的模块进行认证;一个或多个模块,用于对服务器的基于网络过程调用介面的编码的进行认证;一个或多个模块,用于将基于网络过程调用介面与用于服务器的网关界面的协议结合;一个或多个模块,用于促成对传送给客户端计算装置的模块或者服务器的模块的信息的大小是否在信息大小范围内进行验证;一个或多个模块,用于促成对服务器的模块建立隧道,其中隧道用于数据通讯;以及一个或多个模块,用于促成在隧道中建立频道,其中频道是用来数据通讯。
[0011]本领域技术人员可以从本申请所公开的技术方案理解本申请的各种架构,其中各种架构是通过说明进行演示与描述。如同所理解的,在不脱离本申请的概念下,本申请可以有其他不同的架构,而且其他的细节也可以被修改。因此,
【发明内容】
、附图以及详细说明应被视为示例性的说明而非用以限制本申请。
【专利附图】

【附图说明】[0012]图1是具有相容客户端的客户端-服务器计算机系统的实施例;
[0013]图2是根据本申请一方面的具有不相容客户端的客户端-服务器计算机系统的实施例;
[0014]图3是根据本申请一方面的代理装置的实施例;
[0015]图4是根据本申请一方面的翻译模块的实施例;
[0016]图5是说明计算装置实施例的概念方块图;
[0017]图6是网络系统实施例的简化示图;
[0018]图7是根据本申请一方面的促成在代理装置与远程服务器计算装置之间建立隧道与频道的流程的实施例;
[0019]图8是根据本申请一方面的促成在服务不相容客户端以及远程服务器计算装置之间进行通讯的流程的实施例;
[0020]图9是根据本申请一方面的客户端-服务器计算系统的实施例;
[0021]图10是根据本申请一方面的将信息自与传送计算装置相关的格式翻译成与接收计算装置相关的格式的流程的实施例;
[0022]图11是根据本申请一方面的流程,说明以与客户端计算装置格式相关的格式所接收的信息与服务器计算装置相关的格式进行认证;
[0023]图12是根据本申请一方面的流程的实施例,说明以与服务器计算装置相关的格式所接收的信息与客户端计算装置相关的格式进行认证;
[0024]图13A是在代理装置中的翻译模块的操作流程图;
[0025]图13B是一装置的实施例,所述装置用于代理装置中的翻译模块的操作的指令;
[0026]图13C是用于代理装置中翻译模块的操作的具有一个或多个模块的装置的实施例;
[0027]图14A是在代理装置中的设定模块操作的流程图;
[0028]图14B是一装置的实施例,所述装置包括用于代理装置中的设定模块的操作的指令;
[0029]图14C是用于代理装置中操作模块的操作的具有一个或多个模块的装置的实施例。
【具体实施方式】
[0030]以下的详细描述是本申请各种实施例的描述,被非意图说明本申请仅能应用在这些实施例中。所附的附图也引用进来参考,并且构成详细说明的一部分。为了全面性理解本申请,详细说明包括特定的细节。然而,本领域技术人员可以明白不需要这些特定的细节也可以实施本申请的技术方案。在某些情况下,熟知的结构与元件以方块图表示,以避免与本申请的概念混淆。为了促进理解,类似的元件是以相同的元件标号表示。
[0031]在一方面,本申请是关于一种远程过程调用框架和过滤器(RPCFF)主机,促成专有远程服务器(例如,执行微软远程过程调用(Remote Procedure Call?)的微软视窗作业系统的桌上型电脑)与非专有客户计算装置(例如,执行Linux Ubuntu?作业系统的笔记本电脑)进行接口。RPCFF主机可以促成自非用来执行专有远程过程调用协议(例如,微软RPC)的客户端计算装置接收请求,以与用来执行专有远程过程调用协议的远程服务器进行通讯。RPCFF主机促成通过远程过程调用层对客户端计算装置提供网路层认证。在专有远程过程调用协议中,RPCFF主机可以对在没有执行服务器堆栈的远程服务器上的逻辑角色提供数据路径。逻辑角色被配置用来执行专有远程过程调用协议。RPCFF主机可以对于在客户端计算装置与逻辑角色之间的数据路径定义通讯语法。通讯语法可以与专有远程过程调用协议不同。通讯语法可以包括在通用通讯协议(例如,Secure Shell)以及专有远程过程调用协议之间的转议。根据通讯语法,RPCFF主机可以通过在客户端计算装置与逻辑角色之间的数据路径促成数据通讯。
[0032]在一实施例中,本申请关于远程网关客户端代理。在一服务中,客户端代理协助不相容客户端计算装置与远程服务器计算装置以及设备信行通讯,包括基于网络的过程调用界面与网关界面。
[0033]客户端-服务器计算系统通常被用来允许客户端计算装置的用户获取存储于服务器计算装置中的数据,对于客户端计算装置,服务器计算装置为远程设置。然而,客户端-服务器计算系统的一个缺点是如果客户端计算装置没有与服务器计算装置有关的操作系统,特定客户端计算装置可能无法与特定服务器计算装置进行接口。例如,执行特定操作系统的服务器计算装置,例如微软Windows Server2008,仅可以与有执行某些微软作业系统,例如Windows XP或Vista,的客户端计算装置进行互动。执行其他作业系统的客户端计算装置,例如Google Android或Apple 1S作业系统,可能无法完全与服务器计算装置进行互动。如同前面的说明,在本领域需要一种技术方案,以允许执行任意作业系统的客户端计算装置可以完全的与执行特定作业系统的服务器计算装置进行互动。
[0034]已知的客户端-服务器计算系统的缺点包括这些系统重度的依赖与服务器计算装置有关的专有协议。例如,远程过程调用(RPC),是微软专有的协议。僅有由微软提供具有PRC的作業系統可以使用任何的微软任務,例如终端服务网关(TSGW)。這需要大量的代碼。缺点是仅微软提供解决方式、代码体积很大、以及经由此种机制的存取仅限于微软的产品O
[0035]在一方面,本申请提供客户端的解决方案,以与使用微软RPC的远程桌面网关/终端服务网关(RDGW/TSGW)服务存取。因为非微软的客户端并没有微软RPC的功能,因此,理论上,非微软的客户端并不能与微软的TSGW进行存取。因此,本申请一方面的内在本质是在不需要实际具有RPC软件堆栈的情况下连接RPC的要求。这是通过将所有具有数据结构的输入与输出封包进行硬编码来完成。只有数据的有效负载改变。非有效负载信息保持不变。这个在业界中指的是“专门的数据包过滤器”。
[0036]在一实施例中,RPC是用来执行TSGW/RDGW服务存取。此处说明的另一个方案包括专门的数据包过滤器,或者仅有微软的RPC。
[0037]在一方面,本申请的优点与效益包括通过微软环境中的防火墙可以将用于形成数据隧道的RPC与非微软客户端进行接口。而且,在没有RPC堆栈而使用特定数据包过滤器,并藉由RPC的使用来形成数据隧道的能力也是其中一个目的。因此,本申请可以提供一个明显的竞争优势,存取不论客户端在使用标准微软服务或任务,或者传统上需要与服务器计算装置相容的作业系统的装置的服务或任务,都可在企业防火墙中进行存取。
[0038]客户端-服务器计算系统的第一实施例
[0039]图1说明客户端-服务器计算系统100的实施例。如图所示,计算机系统100包括服务相容客户端110、防火墙120、服务125、以及远程服务器计算机装置160。服务125包括结合界面130、基于网络过程调用界面140、以及网关界面150。
[0040]在一方面,服务125是微软服务,基于网络过程调用界面140是远程过程调用(PRC)服务器,网关界面150是终端服务网关(TSGW)或远程桌面网关(RDGW)服务器。服务相容客户端110可能执行微軟视窗作业系统,例如XP或Vista。
[0041]服务相容客户端110可以是笔记本电脑、桌上型电脑、平板电脑、掌上电脑(personal digital assistant)、移动电话、或者任何类似的装置。服务相容客户端110可以执行与服务125相容的作业系统。如图所示,服务相容客户端110与结合界面130越过防火墙120连接,防火墙120的作用是根据一组规则以建立或者拒绝网络的连接。在一方面,服务相容客户端110与服务125之间的通讯是在PRC中执行。
[0042]如图所示,结合界面130包括内存132。内存132包括向内结合模块134以及向外结合模块136。向内结合模块134以及向外结合模块136可以用全软件的方式实施,也可以用全硬件的方式实施,也可以用软件与硬件组合的方式实施。如图所示,向内结合模块134从服务相容客户端110接收输入信息并将这些输入信息传送给基于网络过程调用界面140,所述输入信息是与服务125的基于网络过程调用通讯相关的格式(例如,如果服务125是微软服务器,则为RPC)。向外结合模块136从基于网络过程调用界面140接收信息,并将这些信息提供给服务相容客户端110。在一方面,服务125是微软服务,通过向内结合模块134以及向外结合模块136的信息是RPC格式。
[0043]在一方面,基于网络过程调用界面140是在执行RPC协议的RPC服务器中,以允许来自服务相容客户端110的信息中的命令在远程服务器计算装置160中执行。在一方面,使用网关界面150将来自服务相容客户端110的信息中的命令结合至远程服务器计算装置160的地址空间。在一方面,网关界面150执行微软的终端服务网关(TSGW)、远程桌面网关(RDGff)或者与远程服务器计算装置160的作业系统有关的类似协议。
[0044]在一方面,隧道170是建立在服务相容客户端110与远程服务器计算装置160之间,以促成服务相容客户端110与远程服务器计算装置160之间的通讯。在一方面,隧道170包括频道175,用以连接服务相容客户端110与远程服务器计算装置160。在一方面,多个远程服务器计算装置160使用单一的隧道170以及多个频道175连接到单一的服务相容客户端110。
[0045]客户端-服务器计算系统的第二实施例
[0046]图2是根据本申请一方面所绘制的客户端-服务器计算系统200与服务不相容客户端210。如图所示,计算系统200包括服务不相容客户端210、代理装置220、防火墙120、服务125、以及远程服务器计算装置160。服务125包括结合界面130、基于网络过程调用界面140、以及网关界面150。
[0047]在一方面,服务125是微软的服务,基于网络过程调用界面140是远程过程调用(RPC)服务器,网关界面150是终端服务网关(TSGW)或远程桌面网关(RDGW)。服务不相容客户端210可以执行非微软的作业系统,例如Apple 1S或者Google Android。
[0048]网关界面150可以提供任务服务,以允许授权的远程客户端计算装置连接公司或者私人网络上的网络资源。网络资源可以是已启用远程桌面协议(例如,微软的远程桌面协议)的服务器或电脑。[0049]网关界面150可以在HTTPS上使用远程桌面协议(RDP),以在远程客户端计算装置与内部网络资源之间建立安全的、加密的连接,所述的内部网络资源是远程客户端计算装置企图想要存取的资源。
[0050]网关界面150可以提供客户端计算装置获取所有的网络资源。或者,网关界面150可以提供客户端计算装置仅获取一个或多个客户端计算装置企图获取的网络资源,例如,通过点对点的RDP连接。
[0051]在一方面,远程过程调用可以是进程间通讯,以允许计算机程序产生子程序或程序以在另一个地址空间执行(通常是在一共享网络的另一部电脑),而不需要程序设计者对这个远程相互作用的细节进行明确的编码。例如,客户端计算装置可以产生子程序或程序以在服务器的地址空间中执行。在一实施例中,不论对于执行中的程序而言是本地的或者远程的,程序设计员都可以编写基本上相同的编码。在一个例子中,远程过程调用可以包括远程调用或者远程方法调用。
[0052]在一实施例中,远程过程调用可以由客户端来启动,客户端可以发送一个请求信息给一个已知的远程服务器以执行具有提供的参数的特定程序。远程服务器可以发送回应给客户端,且应用程序继续进行其程序。在一例子中,服务器可以逐次自客户端接收远程过程调用。另一方面,客户端可以发送一个或多个非同步请求给服务器,例如一个或多个XHTTP调用。
[0053]远程过程调用以及本地调用之间的其中一个差异是,在某些情况下,远程过程调用可能会因为非预期的网络问题而失效。在一些实施例中,远程过程调用的调用者可能在不知道远程过程是否真的被启动的情况下面对这些失效。在一些例子中,远程过程调用可以用在仔细编写的低阶子系统。
[0054]在一方面,在一远程过程调用期间,一系列的事件可以是如以下所表示。然而,在一远程过程调用期间的其他系列的事件也可以与本申请的技术方案一起使用。
[0055](I)客户端可以调用客户端存根。所述调用可以是本地过程调用。参数可以被推进到OSI堆栈上。
[0056](2)客户端存根可以将参数(例如,使用信号编集)组成信息,并且使一个系统调用传送这个信息。
[0057](3)客户端的本地作业系统可以自客户端发送信息给服务器。
[0058](4)服務器上的本地作業系統可以將進來的信息包傳送給服務器存根。
[0059](5)最后,服务器存根可以调用服务器程序。跟随的回复,举例来说,可以是依据相反方向的相同步骤进行。
[0060]在一个例子中,存根可以是一段代码,用来在远程过程调用期间转换传递的参数。
[0061]在一个例子中,远程过程调用可以允许客户端在服务器远程的调用程序。客户端与服务器可以使用不同的地址空间。因此,使用于函数调用的参数转换必须要执行以允许使用在远程过程调用期间被传递的参数值。如同内存的指针可以指向客户端与服务器不同的数据。即使是简单的参数(例如整数的大端字节序对小端字节序),客户端与服务器也可以使用不同的数据表示法。存根用来执行参数的转换,因此对服务器而言,从客户端的远程过程调用看起来像一个本地过程调用,反之亦然。
[0062]在一实施例中,存根库可以安装在客户端与服务器端。客户端存根负责用于函数调用的参数转换,以及在函数执行之后,将服务器所传送出来的结果进行逆转换(deconvers1n)。服务器的架构中,服务器端的存根,负责客户端所传送的参数的逆转换,以及在函数执行后,将结果进行转换。
[0063]存根可以用手动方式产生或者自动产生。
[0064]手动方式:在这个方法中,远程过程调用执行者可以提供一组翻译函数,以供程序设计员可以建构存根。
[0065]自动方式:界面描述语言(IDL)可以用来定义客户端与服务器之间的界面。例如,界面定义具有指示资讯,所述的指示资讯用来指出每一引数(argument)是否输入、输出或者两者皆有-只有输入引数需要从客户端复制到服务器,且只有输出引数需要从服务器复制到客户端。
[0066]在一个例子中,在远程过程调用中,客户端与服务器通过网络(例如,英特网、内联网、或者虚拟专用网络)、远程桌面协议(例如微软的远程桌面协议、Citrix独立计算结构(ICA)、或者VMWare VMView)、有线或者无线的方式连接。在一个例子中,基于网络过程调用可以是通过网络(例如英特网)从客户端传送到服务器的远程过程调用。客户端与服务器可以通过网络连接。
[0067]服务不相容客户端210与代理装置220连接,代理装置220与结合界面130通讯。结合界面130用以将专有客户端界面(例如微软)与专有服务器界面(例如微软)结合。例如,结合界面可以结合Windows客户端界面与微软PRC界面。首先,代理装置220是服务不相容客户端210中的组成之一。第二,代理装置220位于服务不相容客户端210之外,但与防火墙120同一侧,如图所示。第三,代理装置220位于防火墙120内。第四,代理装置220是服务125的组成之一。第五,代理装置220与服务125位于防火墙125的同一侧,但不是服务125的组成之一。本领域技术人员可以理解代理装置的位置也可以有其他的变动,但仍与本申请的技术方案一致。
[0068]服务不相容客户端210可以是笔记本电脑、桌上型电脑、平板电脑、掌上电脑(personal digital assistant)、移动电话、或者任何类似的装置。服务不相容客户端210可以执行任何与服务125不相容的作业系统。例如,如果服务125执行微软服务器,服务不相容客户端210可以执行Apple 1S或者Google Android的作业系统。
[0069]如图所示,服务不相容客户端210与代理装置220连接。在一方面,代理装置220位于服务不相容客户端210的内部,而代理装置220与服务不相容客户端210是通过硬接线或者其他内部连接的方式进行连接。在另一方面,代理装置220位于服务不相容客户端210的外部,原生互联网协议(IP)被用来作为服务不相容客户端210与代理装置220之间的连接方式。在一方面,服务不相容客户端210仅可以使用原生IP通讯进行通讯,因此代理装置220处理服务125与服务不相容客户端210之间的通讯。代理装置220也与结合界面130连接。在一方面,服务不相容客户端210使用本地互联网协议技术或者类似的通用格式与代理装置通讯。然而,服务125被设计用来接收基于网络过程调用通讯格式的信息(例如RPC),如果服务125是微软服务器)。代理装置根据服务125的基于网络过程调用格式的编码,将信息由通用格式(例如原生IP通讯)转换成服务器125的基于网络过程调用格式(例如RPC)。代理装置220的操作将配合图3与图4做更详细的说明。
[0070]如图所示,结合界面130,包括内存132。内存132包括向内结合模块134与向外结合模块136。向内结合模块134与向外结合模块136可以全部以软件方式实施,也可以用硬件方式实施,或者软件与硬件组合的方式来实施。如图所示,向内结合模块134自代理装置220接收信息,并且将这些信息传送给基于网络过程调用界面140,所述信息的格式是与服务125的基于网络过程调用通讯有關的格式。向外结合模块136從基于网络过程调用界面140接收信息,并将这些信息提供给代理装置220。代理装置220再将这些信息翻译成通用格式,并且提供給服务不相容客户端210。在一方面,服务125是微软服务,因此通过向内结合模块134与向外结合模块136的信息是RPC格式。
[0071]在一方面,代理装置220使用RPC过滤器以设定网关界面150。一旦网关界面150被建立或设定,网关界面150也可以被用来对RPC的命令进行通讯,包括OPNUM命令。在一方面,基于网络过程调用界面140是执行RPC协议的RPC服务器,以允许来自代理装置220的信息的命令可以在远程服务器计算装置160执行。在一方面,来自代理装置220的信息的命令被结合到远程服务器计算装置160的地址空间。在一方面,网关界面150执行微软的终端服务网关(TSGW)、微软远程桌面网关(RDGW)或者与远程服务器计算装置160的作业系统有关的类似协议。如果网关界面150执行TSGW,网关界面150可以使用OPNUM交换数据,OPNUM是TSGW规格中特定的语法。OPNUM操作会通过特定的RPC信息包过滤器出现。RPC信息可以与使用数据交换的TSGW信息或者其他修正数据内存表示形式的手段的TSGW信息结合。远程服务器计算装置160包括远程桌面协议(RDP)服务器作为目标主机。代理装置220则可以具有RPC信息包过滤器的功能,以允许客户端传送数据给服务器。在一方面,RPC信息使用信号编集以进行与交换数据语言(IDL)有关的数据交换。RPC信息可以使用信号编集或者其他修正数据内存表示形式的手段以与TSGW信息结合。远程服务器计算装置160可以包括远程桌面协议(RDP)服务器以作为目标主机。
[0072]网关界面150可以是任何的网关界面。例如,网关界面150包括共同网关界面、网络服务器网关界面、或者简易共同网关界面。在一个例子中,网关界面150包括两侧,分别是网关界面150的服务器侧以及网关界面150的客户端侧。网关界面150的服务器侧可以调用网关界面150的客户端侧,提供环境资讯与回调函数(给网关界面150的客户端侧使用以传送信息头给网关界面150的服务器侧),以及接收内容(例如,从远程服务器计算装置160)。
[0073]在一方面,信号编集是一种可以将物件的内存表不转换成适于存储或传送的数据格式的技术。当数据必须在计算机程序的不同部分之间、从一个程序到另一个程序、或从一个装置到另一个装置之间传递时(例如,从客户端到服务器或者从服务器到客户端),可以使用信号编集。在一实施例中,信号编集类似于序列化(serializat1n),因而在序例化的物件的例子中,可以使远程物件与另一物件通讯。使用自定义/复杂的物件来进行通讯而不是使用原语(primitives),因此,在一些情况下信号编集可以简化复杂通讯。
[0074]在一方面,RPC信息包过滤器可以被客户端(例如客户端210)使用,这个客户端没有RPC堆栈以建立RPC命令以传送给服务器。客户端可以提供客户端预计要传送给代理装置220的资讯。代理装置220可以将客户端预计传送的资讯语RPC信息头(例如,在开放式系统互连模型的会话层、第五层)结合。因此,开放式系统互连(OSI)的RPC层仍然可以由没有修正或者没有能力修正的客户端通过代理的操作以在RPC传输中填入栏位。在RPC信息包过滤器中的OSI模型的底层可以包括预先填入的RPC信息头数据。RPC信息包过滤器中的OSI模型的上层可以包括客户端数据。代理装置220包括RPC信息包过滤器的功能,以允许客户端传送数据给服务器。
[0075]OSI模型可以用来表示数据通讯与网络。在一方面,OSI模型可包括以下层类型:(I)物理层,(2)数据链路层,(3)网络层,(4)传输层,(5)会话层,(6)表示层,以及(7)应用层。
[0076]物理层(第一层)负责传输介质的规格(例如缆线、有线或无线电)以及进入传输介质的电子讯号。物理层可以包括一个或多个以下的功能:(a)提供电子和物理界面给网络;(b)指定媒介的形式;或((3)指定信号如何在介质中传递。物理层协议的例子包括IEEE802.1U IEEE802.15、蓝芽以及通用串行总线(USB)。
[0077]数据链路层(第二层)可以建立放在传输介质上的实体(entity)(信息包或框架)。数据链路层包括一个或多个以下的功能:(a)控制通讯频道的存取;(b)在通讯频道中控制数据流;(C)将数据组织成逻辑框架;(d)确认网络上的特定电脑;或&)确认通讯错误。数据链路层协议的例子包括巾贞中继(Frame Relay)以及网络交换机(Network Switch)。
[0078]网络层(第三层)负责传输资讯给正确的电脑或正确的网络。网络层包括一个或多个以下的功能:Ca)将资讯移动到正确的地址;(b)组合或拆解信息包或框架;(C)决定地址与程序;或((1)决定最佳路径。网络层的例子包括互联网协议(IP)以及AppleTalk。
[0079]传输层(第四层)负责提供额外的连接服务,包括错误校正。传输层包括一个或多个以下的功能:(a)控制数据流,例如缓存即将溢出就降低传输;(b)将数据分段与重组;(C)确认传输成功;或((1)更正错误传输。传输层的例子包括传输控制协议(TCP)以及用户数据报协议(UDP)。
[0080]会话层(第五层)负责控制设定、终结以及会话(sess1n)的其他机制。在一个例子中,会话包括两个实体(例如模块或装置)间通讯的协定。会话层包括一个或多个以下的功能:(a)建立与维护连接;(b)处理名字识别;(C)藉由在数据流中放置检查点以同步数据传输,如果有中断,传输可以从中断处重新继续;或(d)处理远程过程调用,例如在远程电脑执行程序。会话层的例子包括RPC、网络基本输入/输入系统(NetB1S)、会话通知协议(SAP)、点对点隧道协议(PPTP)以及安全套接层(SOCKS)。
[0081]表示层(第六层)负责提供数据表示的语法与文法规则给应用层(第七层),包括编码、解码以及数据转换。表示层包括一个或多个以下的功能:(a)维护字符集的表示(例如美国信息交换标准编码(ASCII)或万国码(Unicode)) ;(b)对例如通讯连结层的通讯协议进行数据压缩或解压;(c)例如通过数据加密标准(DES)、RSA、以及安全套接层(SSL)的一个或多个以对数据进行加密或解密;(d)执行位序的翻译;(e)执行字节序的翻译;或(0维护文件结构。表示层协议的例子包括有、SSL、传输层安全(TLS)、外部数据表示(XDR)、或多用途英特网邮件扩展协议(MME )。
[0082]应用层(第七层)负责提供网络服务给计算装置(例如客户端或服务器)以及提供计算装置上执行的应用。应用层包括一个或多个以下的功能:Ca)在计算装置的作业系统与网络或者通讯路径之间提供界面;或(10提供网络服务,例如文件传输、邮件服务或者终端仿真。应用层协议的例子包括有超文本传输协议(HTTP)、安全壳(SSH)、文件传输协议(FTP),会话发起协议(SIP)、网络时间协议(NTP)、实时传输协议(RTP)、BitTorrent协议、以及SI3DY。[0083]在一方面,隧道270建立于代理装置220以及远程桌面计算装置160之间,促成代理装置220以及远程桌面计算装置160之间的通讯。在一方面,隧道270包括连接代理装置220与远程服务器计算装置160的频道275。在一方面,有多个远程服务器计算装置160使用单一隧道270以及多个频道275连接到单一代理装置220。
[0084]在一方面,本申请的代理装置220包括下列组成:
[0085](I)网路层认证(NLA),指的是“credssp”,包括 NTLM/Kerberos (NT LAN Manager/Kerberos)。
[0086](2)超文本传输安全协议/安全套接层协议(HTTPS/SSL):基于安全性的加密。
[0087](3) RPC 认证:在 RPC 层提供 NLA。
[0088](4) RPC桥接/过滤器:在没有RPC情况下提供堆栈的增加与减少。
[0089](5)使用RPC桥接/过滤器建立隧道。
[0090](6 )使用RPC桥接/过滤器建立频道。
[0091](7)使用RPC桥接/过滤器建立进行数据交换。
[0092]在一方面,堆栈的增加与减少指的是使用OSI模型中较高的层通过例如隧道(例如隧道170或隧道270)来传输较低层的数据。两个模块(例如,由防火墙(例如防火墙120)分开的代理装置220以及远程服务器计算装置160)可以使用OSI模型中较高的层的通讯协议来运行与OSI模型中较低的层有关的数据。例如,互联网协议(IP)数据(与网络层,第三层相关)可以通过超文本传输协议(HTTP,与应用层,第七层相关)的传输技术来运行。
[0093]在一些OSI堆栈模型的实施例中,较低的层的数据不能在较高的层的协议进行传输。因此,OSI堆栈的增加与减少提供较低的层的数据可能因为矛盾而通过较高的层的协议来传输。因此堆栈的增加与减少的结果,OSI层堆栈可以表示双向的数据流,而非单向的数据流,如同在其他的实施例中。
[0094]在典型OSI模型的操作下(没有堆栈的增加与减少),较低的层可以使用较高的层,但较高的层不能使用较低的层。举例来说,在典型OSI模型的操作,物理层(第一层)会知道哪一个数据链路层(第二层)协议有被使用,但反之并非如此。在堆栈的增加与减少之下,数据链路层(第二层)就可以知道哪一个物理层(第一层)协议有被使用,反之亦然。因此,OSI层堆栈可以标示双向的数据流,而非单向的数据流(仅从较低的层到较高的层)。
[0095]更进一步,如果m与η表示OSI模型堆栈的层数,当m〈n,在堆栈的增加与减少之下,第m层的数据块(较低的层)可以通过第η层(较高的层)的协议运行。每一层的数据块如表1-1所示。
[0096]表 1-1
[0097]
【权利要求】
1.一种电脑执行之数据通讯方法,其特征在于,包括: 促成从客户端计算装置接收通用格式的第一信息; 根据用于基于网络过程调用介面的存储编码,通过将所述第一信息编码成与服务器相关的基于网络过程调用介面以产生已编码第一信息; 促成传送所述已编码第一信息给服务器的模块; 促成从所述服务器的模块接收第二信息,所述第二信息是与服务器相关的基于网络过程调用介面编码; 根据基于网络过程调用介面的存储编码,通过将所述第二信息解码成通用格式以产生已解码第二信息;以及 促成传送已解码第二信息给客户端计算装置的模块。
2.一种非暂时性机器可读取媒介,包括存储于其中的指令,所述指令被一个或多个处理器执行,以执行一个或多个操作,其特征在于,包括: 用于致使一个或多个处理器促成从客户端计算装置接收通用格式的第一信息的代码; 用于致使一个或多个处理器根据用于基于网络过程调用介面的存储编码,通过将所述第一信息编码成与服务器相关的基于网络过程调用介面以产生已编码第一信息的代码;用于致使一个或多个处理器促成传送所述已编码第一信息给服务器的模块的代码;用于致使一个或多个处理器促成从服务器的模块接收第二信息的代码,所述第二信息是与服务器相关的基于网络过程调用介面编码; 用于致使一个或多个处理器根据基于网络过程调用介面的存储编码的代码,通过将所述第二信息解码成通用格式以产生已解码第二信息;以及 用于致使一个或多个处理器促成传送所述已解码第二信息给客户端计算装置的模块的代码。
3.如权利要求2所述的非暂时性机器可读取媒介,其特征在于,其中用于致使一个或多个处理器根据基于网络过程调用介面的存储编码的代码,通过将所述第二信息解码成通用格式以产生已解码第二信息包括: 用于致使一个或多个处理器将用于第二信息的开放式系统互连(OSI)模型堆栈的第一层的数据区块复制到用于已解码第二信息的开放式系统互连(OSI)模型堆栈的第二层的数据区块的代码,其中所述第二层的层数比所述第一层高。
4.如权利要求3所述的非暂时性机器可读取媒介,其特征在于,所述第一层是第五层,为会话层,所述第二层是第七层,为应用层。
5.如权利要求4所述的非暂时性机器可读取媒介,其特征在于,与用于所述第二信息的OSI模型的第一层(即第五层)相关的协议是远程过程调用(RPC),其中与OSI模型的第二层(即第七层)相关的协议是超文本传输协议(HTTP)。
6.如权利要求2所述的非暂时性机器可读取媒介,其特征在于,其中用于致使一个或多个处理器根据用于基于网络过程调用介面的存储编码,通过将所述第一信息编码成与服务器相关的基于网络过程调用介面以产生已编码第一信息的代码包括: 用于致使一个或多个处理器将开放式系统互连(OSI)模型的第一层的信息头以与基于网络过程调用界面相关的信息头取代的代码。
7.如权利要求6所述的非暂时性机器可读取媒介,其特征在于,所述第一层是第5层,是会话层,所述基于网络过程调用界面是RPC。
8.如权利要求2所述的非暂时性机器可读取媒介,其特征在于,所述服务器的操作系统是被配置用来读取所述基于网络过程调用界面的信息;所述客户端计算装置的操作系统不是被配置用来读取所述基于网络过程调用界面的信息。
9.如权利要求2所述的非暂时性机器可读取媒介,其特征在于,所述服务器的操作系统与所述客户端计算装置的作业系统不相容。
10.如权利要求2所述的非暂时性机器可读取媒介,其特征在于,用于致使一个或多个处理器促成传送所述已编码第一信息给服务器的模块的代碼包括: 用于致使一个或多个处理器通过开放式系统互连(OSI)模型的应用层协议,促成传送所述已编码第一信息给服务器的模块的代碼。
11.如权利要求2所述的非暂时性机器可读取媒介,其特征在于,用于致使一个或多个处理器促成传送所述已解码第二信息给客户端计算装置的模块的代碼包括: 用于致使一个或多个处理器通过开放式系统互连(OSI)模型的应用层协议,促成传送所述已解码第二信息给客户端计算装置的模块的代碼。
12.如权利要求2所述的非暂时性机器可读取媒介,其特征在于,用于致使一个或多个处理器促成传送所述已编码第一信息给服务器的模块的代碼包括: 用于致使一个或多个处 理器通过防火墙促成传送所述已编码第一信息给服务器的模块的代碼。
13.如权利要求2所述的非暂时性机器可读取媒介,其特征在于,其中用于致使一个或多个处理器促成传送所述已解码第二信息给客户端计算装置的模块的代碼包括: 用于致使一个或多个处理器通过防火墙促成传送所述已解码第二信息给客户端计算装置的模块的代碼。
14.如权利要求2所述的非暂时性机器可读取媒介,其特征在于,所述通用格式是超文本传输安全协议(HTTPS)。
15.如权利要求2所述的非暂时性机器可读取媒介,其特征在于,所述基于网络过程调用界面是远程过程调用。
16.如权利要求2所述的非暂时性机器可读取媒介,其特征在于,所述一個或多個處理器是設置在客户端计算装置中。
17.如权利要求2所述的非暂时性机器可读取媒介,其特征在于,所述一個或多個處理器是設置在服务器中。
18.如权利要求2所述的非暂时性机器可读取媒介,其特征在于,所述一個或多個處理器是設置在第一装置中,所述第一装置是与所述客户端计算装置和所述服务器不同的装置。
19.如权利要求2所述的非暂时性机器可读取媒介,其特征在于,所述一個或多個處理器是設置在路由器中,所述路由器被设置用来建立接口转发或者通过网关服务建立虚拟专用网络。
20.一种设备,其特征在于,包括: 一个或多个模块,用于促成从客户端计算装置的一个模块接收通用格式的第一信息;一个或多个模块,用于根据基于网络过程调用介面的存储编码,通过将所述第一信息编码成与服务器相关的基于网络过程调用介面以产生第一已编码信息; 一个或多个模块,用于促成传送所述第一已编码信息给服务器的模块; 一个或多个模块,用于促成从服务器的模块接收第二信息,所述第二信息是由与服务器相关的基于网络过程调用介面编码; 一个或多个模块,用于根据基于网络过程调用介面的存储编码,通过所述将第二信息解码成通用格式以产生已解码第二信息;以及 一个或多个模块,用于促成传送所述已解码第二信息给客户端计算装置的模块。
【文档编号】G06F15/16GK104040523SQ201280047164
【公开日】2014年9月10日 申请日期:2012年7月25日 优先权日:2011年8月4日
【发明者】A·T·福塞克 申请人:韦斯技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1