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

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

Info

Publication number
CN104040523B
CN104040523B CN201280047164.9A CN201280047164A CN104040523B CN 104040523 B CN104040523 B CN 104040523B CN 201280047164 A CN201280047164 A CN 201280047164A CN 104040523 B CN104040523 B CN 104040523B
Authority
CN
China
Prior art keywords
information
server
interface
module
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201280047164.9A
Other languages
English (en)
Other versions
CN104040523A (zh
Inventor
A·T·福塞克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dell Marketing
Original Assignee
Wyse Technology LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wyse Technology LLC filed Critical Wyse Technology LLC
Publication of CN104040523A publication Critical patent/CN104040523A/zh
Application granted granted Critical
Publication of CN104040523B publication Critical patent/CN104040523B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/164Implementing security features at a particular protocol layer at the network layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/321Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/26Special purpose or proprietary protocols or architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/326Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本申请公开了一种数据通讯系统与方法。所述方法包括:促成从客户端计算装置接收通用格式的第一信息;根据用于基于网络过程调用介面的存储编码,通过将第一信息编码成与服务器相关的基于网络过程调用介面以产生已编码第一信息;促成传送已编码第一信息给服务器的模块;促成从服务器的模块接收第二信息,所述第二信息是与服务器相关的基于网络过程调用介面编码;根据基于网络过程调用介面的存储编码,通过将第二信息解码成通用格式以产生已解码第二信息;促成传送已解码第二信息给客户端计算装置的模块。

Description

促成基于网络过程调用的使用的客户端-服务器通讯系统与 方法
相关申请的交叉引用
本申请主张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”的优先权,其全部均据此以其全文并于本文以供参考。
技术领域
本申请涉及远程计算或客户端-服务器计算系统,特别是,举例来说,客户端-服务器的通讯系统与方法,以促成基于网络过程调用的使用。
背景技术
有些专属服务器(例如,执行微软公司的远程桌面协议)被设计用来与执行专属作业系统的客户端(例如微软公司的视窗作业系统)进行沟通,或者具有与特定作业系统中的软件进行沟通的程式码。因此,没有执行特定作业系统的客户端计算装置是无法存取这些服务器、数据、以及存储于其中的软件,对于这类型的客户端计算装置的用户而言是不方便的,而且也降低了用户的体验价值。如同前面所述,亟需一种新的技术方案,用来使专属服务器可以与未必安装有专属作业系统的客户端计算装置沟通。
发明内容
本申请一方面的目的是提供一种數據溝通的方法。所述的方法包括:促成从客户端计算装置接收通用格式的第一信息;根据用于基于网络过程调用介面的存储编码,通过将所述第一信息编码成与服务器相关的基于网络过程调用介面以产生已编码第一信息;促成传送所述已编码第一信息给服务器的模块;促成从所述服务器的模块接收第二信息,所述第二信息是与服务器相关的基于网络过程调用介面编码;根据基于网络过程调用介面的存储编码,通过将所述第二信息解码成通用格式以产生已解码第二信息;以及促成传送已解码第二信息给客户端计算装置的模块。
本申请其他方面的目的是提供一种非暂时性机器可读取媒介,所述媒介包括存储于其中的指令,所述指令被一个或多个处理器执行,以执行一个或多个操作,包括:用于致使一个或多个处理器促成从客户端计算装置接收通用格式的第一信息的代码;用于致使一个或多个处理器根据用于基于网络过程调用介面的存储编码,通过将所述第一信息编码成与服务器相关的基于网络过程调用介面以产生已编码第一信息的代码;用于致使一个或多个处理器促成传送所述已编码第一信息给服务器的模块的代码;用于致使一个或多个处理器促成从服务器的模块接收第二信息的代码,所述第二信息是与服务器相关的基于网络过程调用介面编码;用于致使一个或多个处理器根据基于网络过程调用介面的存储编码的代码,通过将所述第二信息解码成通用格式以产生已解码第二信息;用于致使一个或多个处理器促成传送所述已解码第二信息给客户端计算装置的模块的代码。
本申请在一些方面提供了一种设备,该设备包括一个或多个模块,用于促进对于客户端计算装置模块的数据通讯进行认证;该设备包括一个或多个模块,用于促进对于服务器模块的数据通讯进行认证;该设备包括一个或多个模块,对用于服务器的基于网络过程调用介面的编码的进行认证;该设备包括一个或多个模块,促成对传送给客户端计算装置的模块或者服务器的模块的信息的大小是否在信息大小范围内进行验证;该设备包括一个或多个模块,促成对服务器的模块建立隧道,其中隧道用于数据通讯;以及促成在隧道中建立频道,其中频道是用来数据通讯。
本申请其他方面的目的是提供一种用于设定数据通讯的电脑可执行方法,所述的方法包括:对于数据通讯,促成对客户端计算装置的模块进行认证;对于数据通讯,促成对服务器的模块进行认证;对用于服务器的基于网络过程调用介面的编码的进行认证;将基于网络过程调用介面与用于服务器的网关界面的协议结合;促成对传送给客户端计算装置的模块或者服务器的模块的信息的大小是否在信息大小范围内进行验证;促成对服务器的模块建立隧道,其中隧道用于数据通讯;以及促成在隧道中建立频道,其中频道是用来数据通讯。
本申请其他方面的目的是提供一种非暂时性的机器可读取媒介,包括存储于其中的指令,指令被一个或多个处理器执行,以执行一个或多个操作,包括:用于致使一个或多个处理器,对于数据通讯,促成对客户端计算装置的模块进行认证的代码;用于致使一个或多个处理器,对于数据通讯,促成对服务器的模块进行认证的代码;用于致使一个或多个处理器,对用于服务器的基于网络过程调用介面的编码的进行认证的代码;用于致使一个或多个处理器,将基于网络过程调用介面与用于服务器的网关界面的协议结合的代码;用于致使一个或多个处理器,促成对传送给客户端计算装置的模块或者服务器的模块的信息的大小是否在信息大小范围内进行验证的代码;用于致使一个或多个处理器,促成对服务器的模块建立隧道,其中隧道用于数据通讯的代码;以及用于致使一个或多个处理器,促成在隧道中建立频道,其中频道是用来数据通讯的代码。
本申请其他方面的目的是提供一种设备,包括:一个或多个模块,用于对于数据通讯,促成对客户端计算装置的模块进行认证;一个或多个模块,用于数据通讯,促成对服务器的模块进行认证;一个或多个模块,用于对服务器的基于网络过程调用介面的编码的进行认证;一个或多个模块,用于将基于网络过程调用介面与用于服务器的网关界面的协议结合;一个或多个模块,用于促成对传送给客户端计算装置的模块或者服务器的模块的信息的大小是否在信息大小范围内进行验证;一个或多个模块,用于促成对服务器的模块建立隧道,其中隧道用于数据通讯;以及一个或多个模块,用于促成在隧道中建立频道,其中频道是用来数据通讯。
本领域技术人员可以从本申请所公开的技术方案理解本申请的各种架构,其中各种架构是通过说明进行演示与描述。如同所理解的,在不脱离本申请的概念下,本申请可以有其他不同的架构,而且其他的细节也可以被修改。因此,发明内容、附图以及详细说明应被视为示例性的说明而非用以限制本申请。
附图说明
图1是具有相容客户端的客户端-服务器计算机系统的实施例;
图2是根据本申请一方面的具有不相容客户端的客户端-服务器计算机系统的实施例;
图3是根据本申请一方面的代理装置的实施例;
图4是根据本申请一方面的翻译模块的实施例;
图5是说明计算装置实施例的概念方块图;
图6是网络系统实施例的简化示图;
图7是根据本申请一方面的促成在代理装置与远程服务器计算装置之间建立隧道与频道的流程的实施例;
图8是根据本申请一方面的促成在服务不相容客户端以及远程服务器计算装置之间进行通讯的流程的实施例;
图9是根据本申请一方面的客户端-服务器计算系统的实施例;
图10是根据本申请一方面的将信息自与传送计算装置相关的格式翻译成与接收计算装置相关的格式的流程的实施例;
图11是根据本申请一方面的流程,说明以与客户端计算装置格式相关的格式所接收的信息与服务器计算装置相关的格式进行认证;
图12是根据本申请一方面的流程的实施例,说明以与服务器计算装置相关的格式所接收的信息与客户端计算装置相关的格式进行认证;
图13A是在代理装置中的翻译模块的操作流程图;
图13B是一装置的实施例,所述装置用于代理装置中的翻译模块的操作的指令;
图13C是用于代理装置中翻译模块的操作的具有一个或多个模块的装置的实施例;
图14A是在代理装置中的设定模块操作的流程图;
图14B是一装置的实施例,所述装置包括用于代理装置中的设定模块的操作的指令;
图14C是用于代理装置中操作模块的操作的具有一个或多个模块的装置的实施例。
具体实施方式
以下的详细描述是本申请各种实施例的描述,被非意图说明本申请仅能应用在这些实施例中。所附的附图也引用进来参考,并且构成详细说明的一部分。为了全面性理解本申请,详细说明包括特定的细节。然而,本领域技术人员可以明白不需要这些特定的细节也可以实施本申请的技术方案。在某些情况下,熟知的结构与元件以方块图表示,以避免与本申请的概念混淆。为了促进理解,类似的元件是以相同的元件标号表示。
在一方面,本申请是关于一种远程过程调用框架和过滤器(RPCFF)主机,促成专有远程服务器(例如,执行微软远程过程调用(Remote Procedure)的微软视窗作业系统的桌上型电脑)与非专有客户计算装置(例如,执行Linux作业系统的笔记本电脑)进行接口。RPCFF主机可以促成自非用来执行专有远程过程调用协议(例如,微软RPC)的客户端计算装置接收请求,以与用来执行专有远程过程调用协议的远程服务器进行通讯。RPCFF主机促成通过远程过程调用层对客户端计算装置提供网路层认证。在专有远程过程调用协议中,RPCFF主机可以对在没有执行服务器堆栈的远程服务器上的逻辑角色提供数据路径。逻辑角色被配置用来执行专有远程过程调用协议。RPCFF主机可以对于在客户端计算装置与逻辑角色之间的数据路径定义通讯语法。通讯语法可以与专有远程过程调用协议不同。通讯语法可以包括在通用通讯协议(例如,Secure Shell)以及专有远程过程调用协议之间的转议。根据通讯语法,RPCFF主机可以通过在客户端计算装置与逻辑角色之间的数据路径促成数据通讯。
在一实施例中,本申请关于远程网关客户端代理。在一服务中,客户端代理协助不相容客户端计算装置与远程服务器计算装置以及设备信行通讯,包括基于网络的过程调用界面与网关界面。
客户端-服务器计算系统通常被用来允许客户端计算装置的用户获取存储于服务器计算装置中的数据,对于客户端计算装置,服务器计算装置为远程设置。然而,客户端-服务器计算系统的一个缺点是如果客户端计算装置没有与服务器计算装置有关的操作系统,特定客户端计算装置可能无法与特定服务器计算装置进行接口。例如,执行特定操作系统的服务器计算装置,例如微软Windows Server2008,仅可以与有执行某些微软作业系统,例如Windows XP或Vista,的客户端计算装置进行互动。执行其他作业系统的客户端计算装置,例如Google Android或Apple IOS作业系统,可能无法完全与服务器计算装置进行互动。如同前面的说明,在本领域需要一种技术方案,以允许执行任意作业系统的客户端计算装置可以完全的与执行特定作业系统的服务器计算装置进行互动。
已知的客户端-服务器计算系统的缺点包括这些系统重度的依赖与服务器计算装置有关的专有协议。例如,远程过程调用(RPC),是微软专有的协议。僅有由微软提供具有PRC的作業系統可以使用任何的微软任務,例如终端服务网关(TSGW)。這需要大量的代碼。缺点是仅微软提供解决方式、代码体积很大、以及经由此种机制的存取仅限于微软的产品。
在一方面,本申请提供客户端的解决方案,以与使用微软RPC的远程桌面网关/终端服务网关(RDGW/TSGW)服务存取。因为非微软的客户端并没有微软RPC的功能,因此,理论上,非微软的客户端并不能与微软的TSGW进行存取。因此,本申请一方面的内在本质是在不需要实际具有RPC软件堆栈的情况下连接RPC的要求。这是通过将所有具有数据结构的输入与输出封包进行硬编码来完成。只有数据的有效负载改变。非有效负载信息保持不变。这个在业界中指的是“专门的数据包过滤器”。
在一实施例中,RPC是用来执行TSGW/RDGW服务存取。此处说明的另一个方案包括专门的数据包过滤器,或者仅有微软的RPC。
在一方面,本申请的优点与效益包括通过微软环境中的防火墙可以将用于形成数据隧道的RPC与非微软客户端进行接口。而且,在没有RPC堆栈而使用特定数据包过滤器,并藉由RPC的使用来形成数据隧道的能力也是其中一个目的。因此,本申请可以提供一个明显的竞争优势,存取不论客户端在使用标准微软服务或任务,或者传统上需要与服务器计算装置相容的作业系统的装置的服务或任务,都可在企业防火墙中进行存取。
客户端-服务器计算系统的第一实施例
图1说明客户端-服务器计算系统100的实施例。如图所示,计算机系统100包括服务相容客户端110、防火墙120、服务125、以及远程服务器计算机装置160。服务125包括结合界面130、基于网络过程调用界面140、以及网关界面150。
在一方面,服务125是微软服务,基于网络过程调用界面140是远程过程调用(PRC)服务器,网关界面150是终端服务网关(TSGW)或远程桌面网关(RDGW)服务器。服务相容客户端110可能执行微軟视窗作业系统,例如XP或Vista。
服务相容客户端110可以是笔记本电脑、桌上型电脑、平板电脑、掌上电脑(personal digital assistant)、移动电话、或者任何类似的装置。服务相容客户端110可以执行与服务125相容的作业系统。如图所示,服务相容客户端110与结合界面130越过防火墙120连接,防火墙120的作用是根据一组规则以建立或者拒绝网络的连接。在一方面,服务相容客户端110与服务125之间的通讯是在PRC中执行。
如图所示,结合界面130包括内存132。内存132包括向内结合模块134以及向外结合模块136。向内结合模块134以及向外结合模块136可以用全软件的方式实施,也可以用全硬件的方式实施,也可以用软件与硬件组合的方式实施。如图所示,向内结合模块134从服务相容客户端110接收输入信息并将这些输入信息传送给基于网络过程调用界面140,所述输入信息是与服务125的基于网络过程调用通讯相关的格式(例如,如果服务125是微软服务器,则为RPC)。向外结合模块136从基于网络过程调用界面140接收信息,并将这些信息提供给服务相容客户端110。在一方面,服务125是微软服务,通过向内结合模块134以及向外结合模块136的信息是RPC格式。
在一方面,基于网络过程调用界面140是在执行RPC协议的RPC服务器中,以允许来自服务相容客户端110的信息中的命令在远程服务器计算装置160中执行。在一方面,使用网关界面150将来自服务相容客户端110的信息中的命令结合至远程服务器计算装置160的地址空间。在一方面,网关界面150执行微软的终端服务网关(TSGW)、远程桌面网关(RDGW)或者与远程服务器计算装置160的作业系统有关的类似协议。
在一方面,隧道170是建立在服务相容客户端110与远程服务器计算装置160之间,以促成服务相容客户端110与远程服务器计算装置160之间的通讯。在一方面,隧道170包括频道175,用以连接服务相容客户端110与远程服务器计算装置160。在一方面,多个远程服务器计算装置160使用单一的隧道170以及多个频道175连接到单一的服务相容客户端110。
客户端-服务器计算系统的第二实施例
图2是根据本申请一方面所绘制的客户端-服务器计算系统200与服务不相容客户端210。如图所示,计算系统200包括服务不相容客户端210、代理装置220、防火墙120、服务125、以及远程服务器计算装置160。服务125包括结合界面130、基于网络过程调用界面140、以及网关界面150。
在一方面,服务125是微软的服务,基于网络过程调用界面140是远程过程调用(RPC)服务器,网关界面150是终端服务网关(TSGW)或远程桌面网关(RDGW)。服务不相容客户端210可以执行非微软的作业系统,例如Apple IOS或者Google Android。
网关界面150可以提供任务服务,以允许授权的远程客户端计算装置连接公司或者私人网络上的网络资源。网络资源可以是已启用远程桌面协议(例如,微软的远程桌面协议)的服务器或电脑。
网关界面150可以在HTTPS上使用远程桌面协议(RDP),以在远程客户端计算装置与内部网络资源之间建立安全的、加密的连接,所述的内部网络资源是远程客户端计算装置企图想要存取的资源。
网关界面150可以提供客户端计算装置获取所有的网络资源。或者,网关界面150可以提供客户端计算装置仅获取一个或多个客户端计算装置企图获取的网络资源,例如,通过点对点的RDP连接。
在一方面,远程过程调用可以是进程间通讯,以允许计算机程序产生子程序或程序以在另一个地址空间执行(通常是在一共享网络的另一部电脑),而不需要程序设计者对这个远程相互作用的细节进行明确的编码。例如,客户端计算装置可以产生子程序或程序以在服务器的地址空间中执行。在一实施例中,不论对于执行中的程序而言是本地的或者远程的,程序设计员都可以编写基本上相同的编码。在一个例子中,远程过程调用可以包括远程调用或者远程方法调用。
在一实施例中,远程过程调用可以由客户端来启动,客户端可以发送一个请求信息给一个已知的远程服务器以执行具有提供的参数的特定程序。远程服务器可以发送回应给客户端,且应用程序继续进行其程序。在一例子中,服务器可以逐次自客户端接收远程过程调用。另一方面,客户端可以发送一个或多个非同步请求给服务器,例如一个或多个XHTTP调用。
远程过程调用以及本地调用之间的其中一个差异是,在某些情况下,远程过程调用可能会因为非预期的网络问题而失效。在一些实施例中,远程过程调用的调用者可能在不知道远程过程是否真的被启动的情况下面对这些失效。在一些例子中,远程过程调用可以用在仔细编写的低阶子系统。
在一方面,在一远程过程调用期间,一系列的事件可以是如以下所表示。然而,在一远程过程调用期间的其他系列的事件也可以与本申请的技术方案一起使用。
(1)客户端可以调用客户端存根。所述调用可以是本地过程调用。参数可以被推进到OSI堆栈上。
(2)客户端存根可以将参数(例如,使用信号编集)组成信息,并且使一个系统调用传送这个信息。
(3)客户端的本地作业系统可以自客户端发送信息给服务器。
(4)服務器上的本地作業系統可以將進來的信息包傳送給服務器存根。
(5)最后,服务器存根可以调用服务器程序。跟随的回复,举例来说,可以是依据相反方向的相同步骤进行。
在一个例子中,存根可以是一段代码,用来在远程过程调用期间转换传递的参数。
在一个例子中,远程过程调用可以允许客户端在服务器远程的调用程序。客户端与服务器可以使用不同的地址空间。因此,使用于函数调用的参数转换必须要执行以允许使用在远程过程调用期间被传递的参数值。如同内存的指针可以指向客户端与服务器不同的数据。即使是简单的参数(例如整数的大端字节序对小端字节序),客户端与服务器也可以使用不同的数据表示法。存根用来执行参数的转换,因此对服务器而言,从客户端的远程过程调用看起来像一个本地过程调用,反之亦然。
在一实施例中,存根库可以安装在客户端与服务器端。客户端存根负责用于函数调用的参数转换,以及在函数执行之后,将服务器所传送出来的结果进行逆转换(deconversion)。服务器的架构中,服务器端的存根,负责客户端所传送的参数的逆转换,以及在函数执行后,将结果进行转换。
存根可以用手动方式产生或者自动产生。
手动方式:在这个方法中,远程过程调用执行者可以提供一组翻译函数,以供程序设计员可以建构存根。
自动方式:界面描述语言(IDL)可以用来定义客户端与服务器之间的界面。例如,界面定义具有指示资讯,所述的指示资讯用来指出每一引数(argument)是否输入、输出或者两者皆有-只有输入引数需要从客户端复制到服务器,且只有输出引数需要从服务器复制到客户端。
在一个例子中,在远程过程调用中,客户端与服务器通过网络(例如,英特网、内联网、或者虚拟专用网络)、远程桌面协议(例如微软的远程桌面协议、Citrix独立计算结构(ICA)、或者VMWare VMView)、有线或者无线的方式连接。在一个例子中,基于网络过程调用可以是通过网络(例如英特网)从客户端传送到服务器的远程过程调用。客户端与服务器可以通过网络连接。
服务不相容客户端210与代理装置220连接,代理装置220与结合界面130通讯。结合界面130用以将专有客户端界面(例如微软)与专有服务器界面(例如微软)结合。例如,结合界面可以结合Windows客户端界面与微软PRC界面。首先,代理装置220是服务不相容客户端210中的组成之一。第二,代理装置220位于服务不相容客户端210之外,但与防火墙120同一侧,如图所示。第三,代理装置220位于防火墙120内。第四,代理装置220是服务125的组成之一。第五,代理装置220与服务125位于防火墙125的同一侧,但不是服务125的组成之一。本领域技术人员可以理解代理装置的位置也可以有其他的变动,但仍与本申请的技术方案一致。
服务不相容客户端210可以是笔记本电脑、桌上型电脑、平板电脑、掌上电脑(personal digital assistant)、移动电话、或者任何类似的装置。服务不相容客户端210可以执行任何与服务125不相容的作业系统。例如,如果服务125执行微软服务器,服务不相容客户端210可以执行Apple IOS或者Google Android的作业系统。
如图所示,服务不相容客户端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做更详细的说明。
如图所示,结合界面130,包括内存132。内存132包括向内结合模块134与向外结合模块136。向内结合模块134与向外结合模块136可以全部以软件方式实施,也可以用硬件方式实施,或者软件与硬件组合的方式来实施。如图所示,向内结合模块134自代理装置220接收信息,并且将这些信息传送给基于网络过程调用界面140,所述信息的格式是与服务125的基于网络过程调用通讯有關的格式。向外结合模块136從基于网络过程调用界面140接收信息,并将这些信息提供给代理装置220。代理装置220再将这些信息翻译成通用格式,并且提供給服务不相容客户端210。在一方面,服务125是微软服务,因此通过向内结合模块134与向外结合模块136的信息是RPC格式。
在一方面,代理装置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)服务器以作为目标主机。
网关界面150可以是任何的网关界面。例如,网关界面150包括共同网关界面、网络服务器网关界面、或者简易共同网关界面。在一个例子中,网关界面150包括两侧,分别是网关界面150的服务器侧以及网关界面150的客户端侧。网关界面150的服务器侧可以调用网关界面150的客户端侧,提供环境资讯与回调函数(给网关界面150的客户端侧使用以传送信息头给网关界面150的服务器侧),以及接收内容(例如,从远程服务器计算装置160)。
在一方面,信号编集是一种可以将物件的内存表示转换成适于存储或传送的数据格式的技术。当数据必须在计算机程序的不同部分之间、从一个程序到另一个程序、或从一个装置到另一个装置之间传递时(例如,从客户端到服务器或者从服务器到客户端),可以使用信号编集。在一实施例中,信号编集类似于序列化(serialization),因而在序例化的物件的例子中,可以使远程物件与另一物件通讯。使用自定义/复杂的物件来进行通讯而不是使用原语(primitives),因此,在一些情况下信号编集可以简化复杂通讯。
在一方面,RPC信息包过滤器可以被客户端(例如客户端210)使用,这个客户端没有RPC堆栈以建立RPC命令以传送给服务器。客户端可以提供客户端预计要传送给代理装置220的资讯。代理装置220可以将客户端预计传送的资讯语RPC信息头(例如,在开放式系统互连模型的会话层、第五层)结合。因此,开放式系统互连(OSI)的RPC层仍然可以由没有修正或者没有能力修正的客户端通过代理的操作以在RPC传输中填入栏位。在RPC信息包过滤器中的OSI模型的底层可以包括预先填入的RPC信息头数据。RPC信息包过滤器中的OSI模型的上层可以包括客户端数据。代理装置220包括RPC信息包过滤器的功能,以允许客户端传送数据给服务器。
OSI模型可以用来表示数据通讯与网络。在一方面,OSI模型可包括以下层类型:(1)物理层,(2)数据链路层,(3)网络层,(4)传输层,(5)会话层,(6)表示层,以及(7)应用层。
物理层(第一层)负责传输介质的规格(例如缆线、有线或无线电)以及进入传输介质的电子讯号。物理层可以包括一个或多个以下的功能:(a)提供电子和物理界面给网络;(b)指定媒介的形式;或(c)指定信号如何在介质中传递。物理层协议的例子包括IEEE802.11、IEEE802.15、蓝芽以及通用串行总线(USB)。
数据链路层(第二层)可以建立放在传输介质上的实体(entity)(信息包或框架)。数据链路层包括一个或多个以下的功能:(a)控制通讯频道的存取;(b)在通讯频道中控制数据流;(c)将数据组织成逻辑框架;(d)确认网络上的特定电脑;或(e)确认通讯错误。数据链路层协议的例子包括帧中继(Frame Relay)以及网络交换机(Network Switch)。
网络层(第三层)负责传输资讯给正确的电脑或正确的网络。网络层包括一个或多个以下的功能:(a)将资讯移动到正确的地址;(b)组合或拆解信息包或框架;(c)决定地址与程序;或(d)决定最佳路径。网络层的例子包括互联网协议(IP)以及AppleTalk。
传输层(第四层)负责提供额外的连接服务,包括错误校正。传输层包括一个或多个以下的功能:(a)控制数据流,例如缓存即将溢出就降低传输;(b)将数据分段与重组;(c)确认传输成功;或(d)更正错误传输。传输层的例子包括传输控制协议(TCP)以及用户数据报协议(UDP)。
会话层(第五层)负责控制设定、终结以及会话(session)的其他机制。在一个例子中,会话包括两个实体(例如模块或装置)间通讯的协定。会话层包括一个或多个以下的功能:(a)建立与维护连接;(b)处理名字识别;(c)藉由在数据流中放置检查点以同步数据传输,如果有中断,传输可以从中断处重新继续;或(d)处理远程过程调用,例如在远程电脑执行程序。会话层的例子包括RPC、网络基本输入/输入系统(NetBIOS)、会话通知协议(SAP)、点对点隧道协议(PPTP)以及安全套接层(SOCKS)。
表示层(第六层)负责提供数据表示的语法与文法规则给应用层(第七层),包括编码、解码以及数据转换。表示层包括一个或多个以下的功能:(a)维护字符集的表示(例如美国信息交换标准编码(ASCII)或万国码(Unicode));(b)对例如通讯连结层的通讯协议进行数据压缩或解压;(c)例如通过数据加密标准(DES)、RSA、以及安全套接层(SSL)的一个或多个以对数据进行加密或解密;(d)执行位序的翻译;(e)执行字节序的翻译;或(f)维护文件结构。表示层协议的例子包括有、SSL、传输层安全(TLS)、外部数据表示(XDR)、或多用途英特网邮件扩展协议(MIME)。
应用层(第七层)负责提供网络服务给计算装置(例如客户端或服务器)以及提供计算装置上执行的应用。应用层包括一个或多个以下的功能:(a)在计算装置的作业系统与网络或者通讯路径之间提供界面;或(b)提供网络服务,例如文件传输、邮件服务或者终端仿真。应用层协议的例子包括有超文本传输协议(HTTP)、安全壳(SSH)、文件传输协议(FTP)、会话发起协议(SIP)、网络时间协议(NTP)、实时传输协议(RTP)、BitTorrent协议、以及SPDY。
在一方面,隧道270建立于代理装置220以及远程桌面计算装置160之间,促成代理装置220以及远程桌面计算装置160之间的通讯。在一方面,隧道270包括连接代理装置220与远程服务器计算装置160的频道275。在一方面,有多个远程服务器计算装置160使用单一隧道270以及多个频道275连接到单一代理装置220。
在一方面,本申请的代理装置220包括下列组成:
(1)网路层认证(NLA),指的是“credssp”,包括NTLM/Kerberos(NT LAN Manager/Kerberos)。
(2)超文本传输安全协议/安全套接层协议(HTTPS/SSL):基于安全性的加密。
(3)RPC认证:在RPC层提供NLA。
(4)RPC桥接/过滤器:在没有RPC情况下提供堆栈的增加与减少。
(5)使用RPC桥接/过滤器建立隧道。
(6)使用RPC桥接/过滤器建立频道。
(7)使用RPC桥接/过滤器建立进行数据交换。
在一方面,堆栈的增加与减少指的是使用OSI模型中较高的层通过例如隧道(例如隧道170或隧道270)来传输较低层的数据。两个模块(例如,由防火墙(例如防火墙120)分开的代理装置220以及远程服务器计算装置160)可以使用OSI模型中较高的层的通讯协议来运行与OSI模型中较低的层有关的数据。例如,互联网协议(IP)数据(与网络层,第三层相关)可以通过超文本传输协议(HTTP,与应用层,第七层相关)的传输技术来运行。
在一些OSI堆栈模型的实施例中,较低的层的数据不能在较高的层的协议进行传输。因此,OSI堆栈的增加与减少提供较低的层的数据可能因为矛盾而通过较高的层的协议来传输。因此堆栈的增加与减少的结果,OSI层堆栈可以表示双向的数据流,而非单向的数据流,如同在其他的实施例中。
在典型OSI模型的操作下(没有堆栈的增加与减少),较低的层可以使用较高的层,但较高的层不能使用较低的层。举例来说,在典型OSI模型的操作,物理层(第一层)会知道哪一个数据链路层(第二层)协议有被使用,但反之并非如此。在堆栈的增加与减少之下,数据链路层(第二层)就可以知道哪一个物理层(第一层)协议有被使用,反之亦然。因此,OSI层堆栈可以标示双向的数据流,而非单向的数据流(仅从较低的层到较高的层)。
更进一步,如果m与n表示OSI模型堆栈的层数,当m<n,在堆栈的增加与减少之下,第m层的数据块(较低的层)可以通过第n层(较高的层)的协议运行。每一层的数据块如表1-1所示。
表1-1
一个层的堆栈的增加与减少的数据块的实施例如表1-2所示。
表1-2
如表1-1与表1-2所示,当典型的实现中,第n层的协议包括有层n+1到7的协议ID,随著从第m层到第n层堆栈的增加与减少,当m<n,第n层的数据包括层m+1到7的协议ID。
在本申请的一方面,NLA对用户进行认证以对使用TSGW服务器。HTTPS/SSL可以用来作为基本的传输协议。RPC认证可以是RPC过滤器的组成。根据一方面,需要确保指定的用户被允许存取RCP层。RPC桥接可以是提供数据路径给被称为TSGW的逻辑作用/服务的方法。隧道建立的一个例子是对TSGW的命令集,使用RPC通过防火墙建立一个洞(hole)。频道建立的一个例子是对TSGW的命令集,使用RPC建立对目标主机的逻辑频道。根据一方面,在防火墙中,通过频道将数据传送给目标主机或从目标主机接收。数据交换是使用频道经由TSGW服务器来传送或者接收数据的过程。
在一个例子中,当网络协议(传送协议)囊括了不同的有效负载协议时,可以使用隧道协议(例如,隧道270与频道275的隧道协议)。通过隧道的使用,计算机系统200,举例来说,可以在不相容传递网络中携带有效负载,或者通过非信任网络提供安全路径。
在一个例子中,隧道协议可以和分层协议模型不同,例如OSI或者TCP/IP。传递协议,在某些情况下,可以操作在较有效负载协议模型(例如OSI模型)中的较高阶,或者相同的阶。
隧道协议可以使用数据加密以在公众网络(例如英特网)上传送不安全的有效负载协议,藉以提供例如虚拟专用网络功能。例如,IPsec协议包括点对点传输模式,但也可以通过信任的安全网关而操作在隧道模式。
在一个例子中,安全壳(SSH)隧道可以包括通过SSH协议连接建立的加密隧道。SSH隧道可以用来通过加密频道以在网络上传送非加密的数据。举例来说,微软视窗装置可以使用服务器信息块(SMB)协议,一种非加密协议,来分享文件。在一个实施例中,在通过英特网而远程设置的微软视窗文件系统,在连接上面窃听的窃听者可以看到传送的文件。然而,为了安全的设置视窗文件系统,可以建立将SMB交通通过加密频道传送给远程文件服务器的SSH频道。即使SMB协议本身可以包括非加密,也可以提供安全性给通过加密的SSH频道所传送的SMB协议数据。
在一个例子中,SSH隧道可以通过以下方式建立,即藉由将SSH客户端设置成将一特定本地接转发给远程装置上的接口的方式建立。一旦SSH频道被建立,SSH客户端可以连接特定的本地接口以获取网络服务。本地接口不需要与远程接口具有相同的接口号码。
SSH隧道提供一个绕过防火墙的方式以禁止某些英特网服务-只要网站允许外发连接。举例来说,一机构可能会直接禁止用户存取互联网网页(接口80),而不透过机构的代理过滤器(提供机构一个方式以监视与控制用户通过网络所能看到的信息)。但是用户可能不希望其网络通讯被机构的代理过滤器监视或阻隔。如果用户可以连接到外部的SSH服务器,他们就可以建立一个SSH隧道以将本地装置上的给定接口转发给远程网页服务器的接口80。
一些例子中,SSH客户端支援动态接口转发,以允许建立SOCKS4/5代理。因此,应用程式可以被设置成使用本地SOCKS代理服务器,比起建立一个单一接口给SSH隧道,给予应用程式更多弹性。SOCKS可以使客户端摆脱仅能连接到预定的远程接口与服务器的限制。如果应用程式没有支援SOCLS,可以使用“socksifier”以重新将应用程式导向到本地SOCKS代理服务器。
在一个例子中,隧道可以使防火墙通常会阻挡的协议被包裹在防火墙通常不会阻挡的协议中来“悄悄穿过”防火墙,例如超文本传输协议(HTTP)。如果防火墙政策并没有明确地排除这种包裹,那么这样的包裹就可以绕过预期的防火墙政策。
另一个基于HTTP隧道方法是使用HTTP连接方式。客户端可以发出HTTP连接命令给HTTP代理。然后代理装置将TCP连接到一个特定的服务器接,并且在服务器接口与客户端连接之间传送数据。由于HTTP连接可以建立安全性漏洞,具有连接能力的HTTP代理可以限制连接方式的存取。在一实施例中,代理可以允许在白名单中的特定授权的服务器进行存取。
代理装置的实施例
图3是根据本申请一方面的代理装置220的实施例。如图所示,代理装置220包括处理器305、网络接口卡310、以及与总线(互连)315连接的内存320。
处理器305用以执行从内存320或其他存储地点给予处理器305的指令。网络接口卡310允许代理装置220连接到网络,例如英特网、移动网络、局域网(LAN)或者内联网。内存320存储可以被处理器305执行或修饰的数据与指令。
如图所示,内存320包括设定模块325、翻译模块340、客户端凭据345、以及服务器凭据350。设定模块325用来启动服务不相容客户端210、代理装置220、以及服务125之间的通讯。如图所示,设定模块325包括隧道建立模块330以及频道建立模块335。
隧道建立模块330促成建立代理装置220以及服务器125之间的隧道270。频道建立模块促成隧道270中频道275的建立。虽然图中只有画出一个频道275,在一方面,也可以建立多个频道275。在一方面,频道275连接代理装置220与远程服务器计算装置160。设定模块的操作将在以下的段落配合图7详细描述。
翻译磨块340用于促成信息的翻译,所述信息是用于与服务不相容客户端210通讯的通用格式以及服务125通讯的基于网络过程调用格式(例如RPC)之间。在一实施例中,服务的基于网络过程调用格式是RPC,命令的RPC编码以及数据与翻译模块340一起存储,以允许翻译模块转换通用格式与RPC之间的信息。
如图所示,内存320进一步包括客户端凭据345以及服务端凭据350。在一方面,客户端凭据345包括用户名称、密码、域名、以及主机名称。在一方面,服务凭据350包括服务用户的有效用户名称、与用户名称有关的有效密码、域名、以及主机名称。
代理装置220及/或用以设定代理装置220的模块可以设置(例如内嵌)于路由器以通过网关服务(例如TSGW服务或服务125)建立接口转发或者虚拟专用网络(VPN)。在一些实施例中,没有执行专有(例如非微软)作业系统以及没有代理装置的操作或者没有执行RPC的客户端可能没有RPC代码,或者这些客户端需要大量的代理。因此,在一方面,使用具有内嵌式代理装置的客户端通过网关服务来建立VPN或者接口转发目前并不可能,这是因为在非专有(例如非微软)作业系统并没有所需要的代码量以及RPC代码。应该注意的是TSGW是网关协议的一个例子。任何其他的网关协议(例如专有网关协议)也都可以用在本申请的技术方案中。在其他方面,本申请的技术方案也包括对RPC层所进行的任何修改、增加或省略。
翻译模块的实施例
图4是根据本申请的翻译模块340的实施例。
如图所示,翻译模块340包括来自客户端的通用格式的请求405、要传送给客户端的通用格式数据410、服务125的基于网络过程调用的编码415、要传送给服务的数据的编码420以及从服务所接收的已编码数据425。
在一方面,翻译模块340从服务不相容客户端210接收通用格式的请求405。翻译模块340使用服务的基于网络过程调用的编码415以将请求405以基于网络过程调用通讯格式进行编码,以产生要传送给服务125的数据的编码420。在一方面,翻译模块340促成将编码420传送给服务125。
在一方面,翻译模块340从服务125接收已编码数据425。然后翻译模块340根据服务125的基于网络过程调用的编码415对从服务125所接收的已编码数据425进行解码。结果是通用格式数据410可以被传送到服务不相容客户端210。在一方面,翻译模块340促成将通用格式数据410传送给服务不相容客户端210。
计算装置的实施例
图5是计算装置的一实施例的慨念性方块图。
计算装置500,举例而言,可以是服务相容客户端110、服务不相容客户端210、代理装置220、结合界面130、RPC服务器140、网关界面150或者远程服务器计算装置160。计算装置可以包括一个或多个计算装置。
计算装置500包括处理系统502。处理系统502通过总线504或者其他结构或装置能够接收器506与传送器509进行通讯。应该要明白的是除了总线之外的通讯装置也可以使用于本申请公开的架构中。处理系统502可以产生要提供给传送器509的命令、信息及/或其他形式的数据以进行通讯。此外,命令、信息及/或其他形式的数据可以由接收器506接收,或者由处理系统502处理。
处理系统502可以与一般用途的处理器或者特定用途的处理器一起使用以执行指令,并且更进一步包括机器可读取媒介519,以存储数据及/或用于软件程序的指令。存储于机器可读取媒介510及/或519的指令,可以被处理系统502执行以控制与管理各种网络的存取,以及提供其他的通讯与处理功能。指令也可以包括可由处理系统502执行的指令,以用于各种用户界面装置,例如显示器512以及键盘514。处理系统502可以包括输入接口522以及输出接口524。每一输入接口522以及输出接口524包括一个或多个接口。输入接口522以及输出接口524可以是相同的接口(例如,双向接口)或者不同的接口。
处理系统502可以使用软件的方式实施,也可以使用硬件的方式实施,或者硬件与软件结合的方式实施。一个实施例中,处理系统502可以以一个或多个处理器实施。处理器可以是一般用途的微处理器、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程逻辑门阵列(FPGA)、可编程逻辑器件(PLD)、控制器、状态机、门控逻辑、分立硬件组件、及/或其他任何适合执行信息计算或者操作的装置。本领域技术人员可以知道如何以最佳的方式来实施处理系统502所描述的功能。
软件应该以广泛的角度解释,意指指令、数据或者两者之组合,可能的选择有软件、固件、中间件、微代码、硬件描述语言或者其他的方式。指令包括代码(例如,在源代码格式、二进制编码格式、可执行代码格式、或者任何其他适合的代码格式)。举例来说,指令是可由以下的计算装置执行的,例如,客户端计算装置、HTTP服务器、网页服务器,或者由处理系统执行,例如操作系统、HTTP服务器或者网页服务器。指令,举例来说,可以是包括代码的计算机程序。
机器可读取媒介可以是一个或多个机器可读取媒介。机器可读取媒介(例如510)可以包括作业系统外部的存储装置,例如随机存取存储器(RAM)550、闪存530、唯读存储器(ROM)540、可编程只读存储器(PROM)、可擦除可编程式只读存储器(EPROM)、寄存器、硬盘、可换磁盘、只读光盘、数字多功能光盘、或者其他合适的存储装置。机器可读取媒介519可以具有非永久性存储器和非易失性存储器。非暂时性的机器可读媒介可以包括一个或多个非永久性及/或非易失性存储器。机器可读取媒介519可以包括与处理系统整合的储存器,例如专用集成电路(ASIC)。内存可以是机器可读取媒介(例如510或519),或者其一部分。
根据本申请一方面,机器可读取媒介是一个电脑可读取媒介,编码有或者存储有指令,并且是计算元件,其定义了指令之间的结构与功能间的相互关系,计算装置的其他部分,则实现了指令的功能。在一方面,机器可读取媒介是非暂时性机器可读取媒介、机器可读取存储媒介、或者非暂时性机器可读取存储媒介。
界面516可以是任何形式的界面,并且设置于图5所示的任何元件之间。界面516,举例来说,也可是外部的界面(例如英特网网络界面)。收发模块507可以表示一个或多个收发器,每一收发器可以包括一个接收器506与传送器509。处理系统502中所执行的功能,也可以在接收器506、传送器509、机器可读取媒体510、显示器512、键盘514、或界面516的一部分执行,反之亦然。在一方面,计算装置可包括图5所示的一些或所有的元件。计算装置可以包括没有在图5中的其他元件。计算装置可以包括一个以上相同的元件。
网络系统的实施例
图6是本申请一方面的计算机网络系统的实施例的简化方块图。
计算机网络系统600包括一个或多个客户端计算装置602(例如笔记本电脑、桌上型电脑、平板电脑、掌上电脑、移动电话等等),客户端计算装置602通过网络606与一个或多个服务器计算装置604(例如服务器,例如HTTP服务器、网页服务器、企业服务器等等)通讯。在一方面,服务器计算装置604用来允许远程会话(例如远程桌面会话),其中用户可以藉由从客户端计算装置602登入服务器计算装置604以获取在服务器计算装置604上的应用程式与文件。这种连接可以使用几种已知的技术来建立,例如Windows-based服务器的远程桌面协议(RDP)或者本申请此处公开的用于非Windows-based服务器的技术方案。
在本申请的一方面,客户端计算装置602可以是终端使用者计算装置,例如笔记本电脑或者桌上型电脑。在一方面,服务器计算装置604可以是终端服务网关(TSGW)服务器或者远程桌面网关(RDGW)服务器。
藉由说明但并非限制,客户端计算装置602可以表示电脑、移动电话、客户端计算装置602、移动电话、笔记本电脑、平板电脑、薄型计算装置、掌上型电脑、携带式计算装置、虚拟机器、或者具有处理器的合适装置。在一个实施例中,客户端计算装置602是智能型电话(iPhone、Android电话、Blackberry等等)。在某些架构中,客户端计算装置602可以是音频播放器、游戏机、照相机、摄像录像机、音频装置、视频装置、多媒体装置、或者可以支援远程计算装置的装置。在一个有利的实施例中,客户端计算装置602是可移动的。在另一个有利的实施例中,客户端计算装置602是手持式装置。在另一个例子中,客户端计算装置602可以是固定不动的。在一个例子中,客户端计算装置602可以是具有至少一个处理器与内存的装置,其中客户端计算装置602的内存数量比服务器计算装置604的内存数量还少。在一个有利的实施例中,客户端计算装置602并没有硬盘。在另一个有利的实施例中,客户端计算装置602的显示器比服务器计算装置604所支援的显示器小。
在一方面中,服务器计算装置604可以是电脑、笔记本电脑、计算装置、虚拟装置(例如Virtual Machine)、桌上会话(例如微软终端服务器)、公开的应用程式(例如微软终端服务器)或者具有处理器的合适装置。在一方面,服务器计算装置604可以是固定的。在另一方面,服务器计算装置604可以是移动的。在一些架构中,服务器计算装置604可以是任何可以代表计算装置的装置。在一方面,服务器计算装置604可以包括一个或多个计算装置。
在一个例子中,当第一装置并没有直接连接到第二装置时,第一装置相对于第二装置是远程的。在一实施例中,第一装置可以通过通讯网络连接到第二装置,所述通讯网络例如局域网(LAN)、广域网络(WAN)及/或其他网络。
当客户端计算装置602与服务器计算装置604彼此是远程,客户端计算装置602通过网络606连接到服务器计算装置604,例如通过调制解调器连接、局域网连接、移动网络连接或者其他网络连接,所述局域网连接包括以太网或者宽带广域网,宽带广域网包括DSL、Cable、T1、T3、光纤、或Wi-Fi,所述移动网络包括GSM、GPRS、3G、或WiMax。网络606可以是局域网网络、广域网网络、无线网络、英特网、内联网或者其他网络。网络上的远程装置(例如计算装置)的地址可以由对应的网络地址来给予,例如但并非限定于英特网协议(IP)地址、英特网名称、视窗英特网名称服务(WINS)名称、域名或者其他系统名称。这些例子说明了一个装置相对于另一个装置是如何定义成远程。然而本申请并非限定于这些例子。
促成在代理装置与服务之间建立隧道与频道的程序的实施例
根据本申请的一方面,图7说明了在代理装置220与远程计算装置160之间促成隧道270与频道275建立的程序700的实施例。
在程序705中,代理装置220的设定模块325对服务不相容客户端210进行认证。在一方面,认证是由验证客户端凭据345的方式来完成。客户端凭据345包括用户名称、密码、域名、以及主机名称。本领域技术人员在可以明白其他的技术方案也可以通过设定模块325对服务不相容客户端210进行认证。
在程序710,代理装置220的设定模块325对服务进行认证。在一方面,认证是由验证服务凭据350的方式来完成。服务凭据350包括服务的用户的有效用户名、与用户名相关的有效密码、域名以及主机名称。
在程序715中,代理装置220的设定模块325对用于服务125的基于网络过程调用界面的编码415进行认证,所述编码415是存储于代理装置220的翻译模块340中。在一方面,服务125执行微软服务器以及服务125的基于网络过程调用是微软的PRC。
在程序720中,代理装置220的设定模块325促成服务125的基于网络过程调用数据与网关界面150的协议的结合。在一方面,网关服务器的协议是TSGW或RDGW。
在程序725中,代理装置220的设定模块325促成要传输给服务不相容客户端210以及服务125的信息大小的验证。在一方面,传送给服务不相容客户端的信息是通用格式。在一方面,信号编集是用来确保从代理装置220到服务125的信息是合适的信息大小。
在程序730,在代理装置220的设定模块325的隧道建立模块330促成在代理装置220与远程服务器计算装置160之间建立隧道270。在一方面,隧道270使用服务125的基于网络过程调用通讯以促成代理装置220与远程服务器计算装置160之间的通讯。
在程序735,在代理装置220的设定模块325的频道建立模块335促成在代理装置220与远程服务器计算装置160之间建立频道275。在一方面,可以有多个远程服务器计算装置160以及建立多个频道275。
促成客户端与服务之间的通讯的程序的实施例
根据本申请的一方面,图8是说明促成服务不相容客户端210以及远程服务器计算装置160之间的通讯的程序800的实施例。
在程序805,代理装置220中的翻译模块340从服务不相容客户端210接收通用格式的数据。在一方面,数据是来自服务不相容客户端210的请求405。在一方面,请求405是由代理装置220在原生IP连接所接收。
在程序810,根据用于服务125的基于网络过程调用界面的编码415,代理装置220的翻译模块340将数据编码成与服务125相关的基于网络过程调用界面。在一方面,结果是要传送给服务的数据420编码。在一方面,服务125的基于网络过程调用通讯的格式是RPC。编码415包括RPC命令集与数据。在一方面,编码415包括命令集以及在服务125的基于网络过程调用界面的数据。
在程序815中,代理装置220的翻译模块340促成数据420传送给与服务125相关的基于网络过程调用界面。在一方面,数据420是在隧道270中传送给服务125。
在程序820中,代理装置220的翻译模块340接收来自服务的回应,包括以与服务125相关的基于网络过程调用界面编码的回应数据425。在一方面,回应数据425是回应数据420,数据420是要被提交给服务125。在一方面,回应数据425是通过隧道270被接收。
在程序825中,根据用于服务的基于网络过程调用界面的编码415,代理装置220的翻译模块340将回应数据解码成通用格式。在一方面,解码的结果是将通用格式的数据410传送到服务不相容客户端210。
在程序830,代理装置220的翻译模块340促成通用格式的数据410传送到服务不相容客户端210。在一方面,通用格式的数据410是通过原生IP连接传送到服务不相容客户端210。
在一实施例中,本申请的程序描述如下:
设置(入境)
(1)经SSL通过HTTP认证NTLM
(2)经SSL和HTTP通过RPC认证NTLM
(3)HTTP至RPC结合
设置(出境)
(4)经SSL通过HTTP认证NTLM
(5)经SSL和HTTP通过RPC认证NTLM
(6)HTTP至RPC结合
设置(RPC)
(7)RPC至TSGW结合.
(8)RPC编集大小(32bit)
TSGW通过RPC
(9)操作1-9(OPNUM)
前述程序的一个功能是入境网页服务认证HTTP频道的设定以及认证RPC入境访问的设定。程序也可以提供出境网页服务认证HTTP频道的设定以及出境认证RPC访问的设定。程序也可以提供将RPC与TSGW服务结合的设定以及RPC信号编集数据大小(32位元的栏位)的设定。OPNUM的使用可以提供隧道建立、隧道认证、频道建立以及频道结合。在一个例子中,所有的OPNUM的操作可以藉由特定RPC信息包过滤器的使用而出现。假如服务125执行微软作业系统,例如微软服务器,那么这些步骤需要符合微软的要求,以获取TSGW的服务以提供本服务。
在一方面,建立独特的HTTP连接以提供给入境数据与出境数据。这些是逻辑地结合(藉由RPC协议的使用)以建立单一逻辑连接给RPC服务。通过固定的过滤器机制并使用RPC协议,这些会与TSGW结合。结果是可以使用OPNUM来交换数据。OPNUM根据TSGW规范所描述的特定语法。在一方面,需要使用外部的防火墙的RPC频道。一旦频道被建立,隧道与频道就会被建立起来,以从客户端传送数据给目标服务器,例如RDP服务器。所达到的结果是一个经由防火墙120到微软TSGW服务的隧道以及自/到远程服务器计算装置160的目标主机的频道(数据路径)。
在一方面,执行多个RPC命令(例如OPNUM)的命令是通过参数的功能性传递(当被包含在代理装置220的服务相同客户端110中)或通过协议语法被接收。本申请可以通过功能的命令或者协议语法的命令与代理装置220的功能进行互动。
远程网关客户端代理的实施例
图9说明客户端-服务器计算系统900的实施例。如图所示,计算系统900包括客户端计算装置910、防火墙920、结合服务器930、远程过程调用(RPC)服务器940、网关服务器950、以及远程服务器计算装置960。
客户端计算装置910可以是笔记本电脑、桌上型电脑、平板电脑、掌上电脑、移动电话、或者任何类似的装置。客户端计算装置可以执行基本上任何具有超文本传输安全协议(HTTPS)通讯能力的作业系统。如图所示,客户端计算装置910通过防火墙920与结合服务器930连接,防火墙920的功能是根据一组规则以允许或拒绝网络连接。在一方面,建立独特的HTTPS连接以提供给入境数据(直接给远程服务器计算装置960)与出境数据(直接给客户端计算装置910)。
如图所示,结合服务器930包括内存932。内存932包括向内结合模块934以及向外结合模块936。向内结合模块934以及向外结合模块936可以用全软件的方式实施,也可以用全硬件的方式实施,也可以用软件与硬件组合的方式实施。如图所示,向内结合模块934从服务相容客户端910接收信息,所述信息的格式是与客户端计算装置的格式相关,例如HTTPS,并将所述信息翻译成与远程服务器计算装置960相关的格式,例如与远程服务器计算装置960的作业系统相关的格式。向外结合模块936从服务器计算装置960接收信息,并将信息翻译成与客户端计算装置910相关的格式。
如图所示,向外结合模块936的输出是传送给RPC服务器940。向内结合模块934的输入是来自RPC服务器940。在一方面,RPC服务器940。执行RPC协议以允许来自客户端计算装置910的信息中的命令在远程服务器计算装置960上被执行。在一方面,使用网关服务器950,将来自客户端计算装置910的信息中的命令被结合至远程服务器计算装置960的地址空间。在一方面,网关服务器950执行微软终端服务网关(TSGW)、微软远程桌面网关(RDGW)、或者与远程服务器计算装置960的作业系统有关的类似协议。如果网关服务器950执行TSGW,那么网关服务器950可以使用OPNUM来交换数据,OPNUM是一个描述于TSGW规范的特定语法。在OPNUM的执行中,隧道与频道可以被建立以从客户端计算装置910传送数据给远程服务器计算装置960。OPNUM操作通过专门的RPC信息包过滤器而出现。RPC信息可以使用信息编集或其他修正数据的内存表示的手段以结合到TSGW信息中。远程服务器计算装置960可以包括远程桌面协议(RDP)服务器,以作为目标主机。
总结来说,根据一方面,客户端计算装置910与结合服务器930之间在防火墙920上的通讯是在受认证的HTTPS频道上执行,所述的受认证的HTTPS频道是独立于任何的作业系统。结合服务器930与RPC服务器940之间的通讯是使用RPC协议。RPC服务器940与网关服务器950之间的通讯是RPC或者远程服务器计算装置960作业系统的特定协议,例如OPNUM,如果网关服务器950执行微软的TSGW。
在一方面,本申请可以包括下列组成:
(1)网路层认证(NLA),指的是“credssp”,包括NTLM/Kerberos(NT LAN Manager/Kerberos)。
(2)超文本传输安全协议/安全套接层协议(HTTPS/SSL):基于安全的加密。
(3)RPC认证:在RPC层提供NLA。
(4)RPC桥接/过滤器:在没有RPC情况下提供堆栈的增加与减少。
(5)使用RPC桥接/过滤器建立隧道。
(6)使用RPC桥接/过滤器建立频道。
(7)使用RPC桥接/过滤器建立进行数据交换。
在本申请的一方面,NLA可以认证用户使访问TSGE服务器。HTTPS/SSL可以作为基本的传输协议。RPC认证可以是RPC过滤器的组成。根据一方面,需要确保指定的用户被允许存取RCP层。RPC桥接可以是提供数据路径给被称为TSGW的逻辑作用/服务的方法。隧道建立的一个例子是对TSGW的命令集,使用RPC通过防火墙建立一个洞(hole)。频道建立的一个例子是对TSGW的命令集,使用RPC建立对目标主机的逻辑频道。根据一方面,在防火墙中,通过频道将数据传送给目标主机或从目标主机接收。数据交换是使用频道经由TSGW服务器来传送或者接收数据的过程。
根据本申请一方面,图10说明了将信息从与传送端计算装置相关的格式翻译成接收端计算装置可以理解的格式。
如同所理解的,与传送端计算装置相关的格式可以是HTTPS,接收端计算装置可以理解的格式可以是RPC。另一方面,与传送端计算装置相关的格式可以是RPC,接收端计算装置可以理解的格式可以是HTTPS。
在程序1010中,向外结合模块936自传送端计算装置接收信息,例如远程服务器计算装置960,所述的信息的格式无法被接收端计算装置理解,例如RPC。在程序1020中,向外结合模块936对来自远程服务器计算装置960的信息进行认证并传送给客户端计算装置910。
在程序1030中,向外结合模块936将信息翻译成接收端的客户端计算装置910可理解的格式,例如HTTPS。在一方面,执行信号编集以进行翻译。在程序1040中,向外结合模块936将信息传送给接收端的客户端计算装置910。
在另一方面,向内结合模块自传送端的客户端计算装置910接收HTTPS或者类似格式的信息,并使用类似于前面所描述程序以将所述信息翻译成接收端的服务器计算装置960可以理解的格式,例如RPC。
根据本申请一方面,图11是信息认证流程的一个例子,说明以与客户端计算装置910相关的格式所接收的信息与服务器计算装置960相关的格式进行认证。
在程序1110中,向内结合模块934接收信息,所述信息的格式是与客户端计算装置910的格式相关。在一实施例中,信息是由客户端计算装置910接收。
在程序1120中,向内结合模块934经由在安全层(例如执行于防火墙920的安全套接层(SSL))上的通讯协议(例如HTTPS)对来自客户端计算装置910的信息进行认证。在一方面,认证可以通过使用NT LAN管理器(NTLM)来完成。
在程序1130中,向内结合模块934经由在通讯协议(例如HTTPS)上的安全层(例如SSL)上的远程过程调用对信息进行认证。
在程序1140中,对于格式与客户端计算装置910的格式相关的信息,向内结合模块934将通讯协议(例如HTTPS)与远程过程调用(例如RPC)结合。
在程序1150中,向内结合模块934将远程过程调用与远程服务器计算装置960相关的格式结合,例如终端服务网关(TSGW),如果远程服务器计算装置960执行微软视窗服务器。
在程序1160中,向内结合模块934提供与远程服务器计算装置960的格式相关的信息,例如TSGW格式,如果远程服务器计算装置960执行微软视窗服务器。信号编集可以用来改变信号的格式。
根据本申请的一方面,图12认证程序的实施例,说明以与服务器计算装置960相关的格式所接收的信息与客户端计算装置910相关的格式进行认证。
在程序1210中,向外结合模块936接收信息,所述信息的格式与远程服务器计算装置960的格式相关。在一实施例中,信息自远程服务器计算装置960接收。
在程序1220中,向外结合模块936经由在安全层(例如SSL)上的通讯协议(例如HTTPS)对来自远程服务器计算装置960的信息进行认证。
在程序1230中,向外结合模块936经由在安全层(例如SSL)上的通讯协议(例如HTTPS)对信息进行认证。
在程序1240中,对于格式与服务器计算装置960的格式相关的信息,向外结合模块936将通讯协议(例如HTTPS)与远程过程调用(例如RPC)结合。
在程序1250中,向外结合模块936将远程过程调用与客户端计算装置910相关的格式结合。
在程序1260中,向外结合模块936提供与客户端计算装置910的格式相关的信息,例如HTTPS格式。信号编集可以用来改变信号的格式。
在一实施例中,本申请的程序可以描述如下。
设置(入境)
(1)经SSL通过HTTP认证NTLM
(2)经SSL和HTTP通过RPC认证NTLM
(3)HTTP至RPC结合
设置(出境)
(4)经SSL通过HTTP认证NTLM
(5)经SSL和HTTP通过RPC认证NTLM
(6)HTTP至RPC结合
设置(RPC)
(7)RPC至TSGW结合.
(8)RPC编集大小(32bit)
TSGW通过RPC
(9)操作1-9(OPNUM)
前述程序的一个功能是入境网页服务认证HTTP频道的设定以及认证RPC入境访问的设定。程序也可以提供出境网页服务认证HTTP频道的设定以及出境认证RPC访问的设定。程序也可以提供将RPC与TSGW服务结合的设定以及RPC信号编集数据大小(32位元的栏位)的设定。OPNUM的使用可以提供隧道建立、隧道认证、频道建立以及频道结合。在一个例子中,所有的OPNUM的操作可以藉由特定RPC信息包过滤器的使用而出现。这些步骤需要符合微软的要求,以获取TSGW的服务以提供本服务。
在一方面,建立独特的HTTP连接以提供给入境数据与出境数据。这些是逻辑地结合(藉由RPC协议的使用)以建立单一逻辑连接给RPC服务。通过固定的过滤器机制并使用RPC协议,这些会与TSGW结合。结果是可以使用OPNUM来交换数据。OPNUM根据TSGW规范所描述的特定语法。在一方面,需要使用外部的防火墙的RPC频道。一旦频道被建立,隧道与频道就会被建立起来,以从客户端传送数据给目标服务器,例如RDP服务器。所达到的结果是一个经由防火墙920到微软TSGW服务的隧道以及自/到远程服务器计算装置960的目标主机的频道(数据路径)。
代理装置中的翻译模块的操作的实施例
图13A是程序1300A的流程图,说明代理装置中的通讯模块的操作。
代理装置可以装设在客户端计算装置中或者服务器中。另一方面,代理装置可以是与客户端计算装置不同以及与服务器不同的设备。代理装置可以装设在第一装置中,其中第一装置与客户端计算装置不同以及与服务器不同。
程序1300A由操作1310A开始,其中代理装置(例如代理装置220,通过翻译模块340的操作)自客户端计算装置(例如服务不相容客户端210,然而,在某些方面,客户端计算装置可以是服务相容客户端)的模块促成接收通用格式(例如SSH或HTTPS)的第一信息。服务器的作业系统可以与客户端计算装置的作业系统不相容。例如,服务器可以执行Apple OSX Lion Server,而客户端计算装置可以执行Google Chrome。另一方面,服务器的作业系统可以与与客户端计算装置的作业系统相容。例如,服务器可以执行Apple OS X LionServer,而客户端计算装置可以执行Apple OS X Lion。第一信息可以通过防火接收。第一信息可以与开放式系统互连(OSI)模型的应用层协议相关,例如SSH或HTTP。
在操作1320A中,代理装置通过将第一信息编码成与服务器相关的基于网络过程调用介面(例如PRC)以产生已编码第一信息。在一方面,代理装置根据用于基于网络过程调用介面的存储编码以产生已编码第一信息。在一实施例中,与服务器(例如微软服务器)有关的作业系统可以设置用来在基于网络过r程调用介面中读取信息。客户端计算装置(例如Linux Ubuntu)的作业系统不用设置用来在基于网络过程调用介面中读取信息。另一方面,客户端计算装置的作业系统(例如微软Windows7)可以设置用来在基于网络过程调用介面中读取信息。
在一实施例中,已编码第一信息可以通过取代的方式产生,亦即将在第一信息的OSI模型堆栈中的会话层(第五层)信息头以相应于基于网络过程调用介面(例如RPC)的信息头取代。如表2所说明。
表2
在操作1330A中,代理装置促成传送已编码第一信息给服务器的模块。已编码第一信息可以通过防火墙传送。已编码第一信息可以通过开放式系统互连(OSI)模型的应用层协议传送。
在操作1340A中,代理装置促成从服务器的模块接收第二信息,所述第二信息是与服务器相关的基于网络过程调用介面编码。第二信息可以通过防火墙接收。第二信息可以通过开放式系统互连(OSI)模型的应用层协议来接收。
在操作1350A中,代理装置通过将第二信息解码成通用格式以产生已解码第二信息。在一方面,代理装置根据基于网络过程调用介面的存储编码产生已解码第二信息。在一实施例中,已解码第二信息可以是HTTP信息,第二信息可以是RPC信息。可以通过应用堆栈的增加与减少从OSI模型第五层(对应于RPC)到OSI模型第七层(对应HTTP)建立已解码第二信息。表3说明了对应于第二信息的OSI模型第五层与第七层的数据。表4说明对应于已解码第二信息的OSI模型第七层的数据。
表3
表4
在一实施例中,表3的[第6层协议ID]与表4的[第7层协议ID]是相同的。表3第一列与第二列的[数据有效载荷]与表4第一列与第二列的[数据有效载荷]也是相同的。
在操作1360A中,代理装置促成传送已解码第二信息给客户端计算装置的模块。已解码第二信息可以通过防火墙传送。已解码第二信息可以通过开放式系统互连(OSI)模型的应用层协议来传送。在操作1360A后,程序1300A结束。
用于代理装置翻译模块的操作的指令的实施例
图13B是装置1300B的实施例,所述的装置1300B包括代理装置翻译模块的操作的指令。
装置1300B可以包括指令1310B以自客户端计算装置的模块促成接收通用格式的第一信息。
装置1300B可以包括指令1320B,用于根据用于基于网络过程调用介面的存储编码,通过将第一信息编码成与服务器相关的基于网络过程调用介面以产生已编码第一信息。
装置1300B可以包括指令1330B,用于促成传送已编码第一信息给服务器的模块。
装置1300B可以包括指令1340B,用以促成从服务器的模块接收第二信息,所述第二信息是与服务器相关的基于网络过程调用介面编码。
装置1300B可以包括指令1350B,用于根据基于网络过程调用介面的存储编码,通过将第二信息解码成通用格式以产生已解码第二信息。
装置1300B可以包括指令1360B,用于促成传送已解码第二信息给客户端计算装置的模块。
用于代理装置翻译模块操作的一个或多个模块
图13C是装置1300C的实施例,所述的装置1300C包括用于代理装置翻译模块操作的一个或多个模块。
装置1300C可以包括模块1310C以自客户端计算装置的模块促成接收通用格式的第一信息。
装置1300C可以包括模块1320C,用于根据用于基于网络过程调用介面的存储编码,通过将第一信息编码成与服务器相关的基于网络过程调用介面以产生已编码第一信息。
装置1300C可以包括模块1330C,用于促成传送已编码第一信息给服务器的模块。
装置1300C可以包括模块1340C,用于促成从服务器的模块接收第二信息,所述第二信息是与服务器相关的基于网络过程调用介面编码。
装置1300C可以包括模块1350C,用于根据基于网络过程调用介面的存储编码,通过将第二信息解码成通用格式以产生已解码第二信息。
装置1300C可以包括模块1360C,用于促成传送已解码第二信息给客户端计算装置的模块。
代理装置设定模块的操作的实施例
图14A是程序1400的实施例的流程图,说明代理装置设定模块的操作。
代理装置可以装设在客户端计算装置中或者服务器中。另一方面,代理装置可以是与客户端计算装置不同以及与服务器不同的设备。代理装置可以装设在第一装置中,其中第一装置与客户端计算装置不同以及与服务器不同。
程序1400A由操作1410A开始,其中代理装置(例如代理装置220,通过设定模块325的操作)促成客户端计算装置的模块(或者客户端计算装置本身)对数据通讯进行认证。举例来说,代理装置可以验证客户端计算装置的凭据(例如一个或多个登入识别、密码、cookie或token等等)。在一方面,代理装置可以验证客户端计算装置本身的凭据。
在一方面,代理装置可以使用网络层认证以对客户端计算装置的模块进行认证。在会话建立之前,藉由对客户端进行认证以连接到远程桌面,网路层认证可以在远程桌面会话使用。在一实施例中,在提供登入画面给客户端计算装置的远程桌面会话之前,网络层对客户端计算装置进行认证。举例而言,网络层认证可以通过将客户端计算装置的IP地址以及所存储的一组信任的IP地址进行比对,以验证客户端计算装置的IP地址是受信任的IP地址。(IP是网络层、第三层、或这OIS模型中的协议的一个例子)。因此,远程桌面服务器可以阻止恶意的客户端计算装置(具有未验证的IP地址,所述的未验证的IP地址没有存储于受信任的IP地址中)。
在一个例子中,对客户端计算装置的模块所进行的网络层认证可以通过认证协议来完成,所述的认证协议例如NT局域管理器(NTLM)或Kerberos。NT局域网(LAN)管理器可以用来远程地对客户端计算装置信行认证,所述客户端计算装置是在一个根据IP地址的以英特网为基础的连接上,或者如果防火墙限制了Kerberos验证所需要的接口,那么所述客户端计算装置是在一个根据客户端计算装置的其他网络层资讯所建立的连接上。NT局域管理器可以用来对在执行微软远程桌面协议的服务器上的入境连接进行认证。
在操作1420A中,代理装置促成服务器模块(或者服务器本身)的认证以用于数据通讯。举例来说,代理装置可以对服务器的模块的凭据(例如一个或多个服务识别、cookie或token等等)进行验证。在一方面,代理装置可以验证服务器本身的凭据。服务器的作业系统会与客户端计算装置的作业系统不相容。另一方面,服务器的作业系统会与客户端计算装置的作业系统相容。
在操作1430A中,代理装置对用于服务器的基于网络过程调用介面(例如RPC)的编码进行认证。
在操作1440A中,代理装置将基于网络过程调用介面与服务器的网关介面(例如TSGW)的协议进行连结。基于网络过程调用介面与网关介面的协议的结合可以根据结合的尺寸或者代理装置的处理速度实时产生,例如小于1小时、30分钟、5分钟、1分钟或者10秒钟。在一个例子中,在对每一或者客户端计算装置模块、服务器模块以及用于服务器的基于网络过程调用的编码中的至少一个认证后,代理装置将基于网络过程调用介面与网关介面协议结合。
在操作1450A中,代理装置促成传送给客户端计算装置的模块或者服务器的模块的信息的大小是否在信息大小范围内进行验证(例如目前最小的信息大小以及目前最大的信息大小之间的信息的范围)。
在操作1460A中,代理装置促成对服务器的模块建立隧道,隧道用于数据通讯。隧道(例如隧道270)可以从代理装置(例如代理装置220)延伸到服务器(例如远程服务器计算装置160)模块。代理装置可以通讯地与客户端计算装置(例如服务不相容客户端210,然而在一些例子中,客户端计算装置可以是服务相容客户端)的模块相耦接。信息大小的范围与隧道有关。
在操作1470A中,代理装置促成在隧道中建立频道,其中频道是用来数据通讯。频道可以从代理装置延伸到服务器模块。在操作1470A之后,程序1400A停止。
用于代理装置的设定模块的操作的指令的实施例
图14B是装置1400B的实施例,装置1400B具有用于代理装置的设定模块的操作的指令。
装置1400B包括指令1410B,用于对数据通讯而言促成客户端计算装置的模块的验证。
装置1400B包括指令1420B,用于对数据通讯而言促成服务器模块的验证。
装置1400B包括指令1430B,用于对用于服务器的基于网络过程调用介面的编码的进行认证。
装置1400B包括指令1440B,用于将基于网络过程调用介面与服务器的网关界面结合。
装置1400B包括指令1450B,用于促成传送给客户端计算装置的模块或者服务器的模块的信息的大小是否在信息大小范围内进行验证。
装置1400B包括指令1460B,用于促成对服务器的模块建立隧道,隧道用于数据通讯。
装置1400B包括指令1470B,用于促成在隧道中建立频道,其中频道是用来数据通讯。
用于代理装置设定模块的操作的一个或多个模块的实施例
图14C装置1400C的实施例,装置1400C包括一个或多个模块,用于代理装置设定模块的操作。
装置1400C包括装置1410C,用于对数据通讯而言促成客户端计算装置的模块的验证。
装置1400C包括装置1420C,用于对数据通讯而言促成服务器模块的验证。
装置1400C包括装置1430C,用于对用于服务器的基于网络过程调用介面的编码的进行认证。
装置1400C包括装置1440C,用于将基于网络过程调用介面与服务器的网关界面结合。
装置1400C包括装置1450C,用于促成传送给客户端计算装置的模块或者服务器的模块的信息的大小是否在信息大小范围内进行验证。
装置1400C包括装置1460C,用于促成对服务器的模块建立隧道,隧道用于数据通讯。
装置1400C包括装置1470C,用于促成在隧道中建立频道,其中频道是用来数据通讯。
本申请说明条款
本申请各方面的实施例,为了方便起见,将以以编码的条款来进行说明。这些描述是示例性说明,并非限制本申请的技术方案。以下的图式识别以及参考标号仅为了示例性说明,所有的条款并受这些图式限制。
1.一种用于数据通讯的计算机的可执行方法,所述方法包括:
促成从客户端计算装置接收通用格式的第一信息;
根据用于基于网络过程调用介面的存储编码,通过将第一信息编码成与服务器相关的基于网络过程调用介面以产生已编码第一信息;
促成传送已编码第一信息给服务器的模块;
促成从服务器的模块接收第二信息,所述第二信息是与服务器相关的基于网络过程调用介面编码;
根据基于网络过程调用介面的存储编码,通过将第二信息解码成通用格式以产生已解码第二信息;以及
促成传送已解码第二信息给客户端计算装置的模块。
2.如第1条所述的方法,其中根据基于网络过程调用介面的存储编码,通过将第二信息解码成通用格式以产生已解码第二信息包括:
将用于第二信息的开放式系统互连(OSI)模型堆栈的第一层的数据区块复制到用于已解码第二信息的开放式系统互连(OSI)模型堆栈的第二层的数据区块,其中第二层的层数比第一层高。
3.如第2条所述的方法,其中第一层是第五层,为会话层,第二层是第七层,为应用层。
4.如第3条所述的方法,其中与用于第二信息的OSI模型的第一层(第五层)相关的协议是远程过程调用(RPC),其中与OSI模型的第二层(第七层)相关的协议是超文本传输协议(HTTP)。
5.如第1条所述的方法,其中根据用于基于网络过程调用介面的存储编码,通过将第一信息编码成与服务器相关的基于网络过程调用介面以产生已编码第一信息包括:
将开放式系统互连(OSI)模型的第一层的信息头以与基于网络过程调用界面相关的信息头取代。
6.如第5条所述的方法,其中第一层是第5层,是会话层,基于网络过程调用界面是RPC。
7.如第1条所述的方法,其中服务器的操作系统是配置用来读取基于网络过程调用界面的信息;客户端计算装置的操作系统不是配置用来读取基于网络过程调用界面的信息。
8.如第1条所述的方法,其中服务器的作业系统与客户端计算装置的作业系统不相容。
9.如第1条所述的方法,促成传送已编码第一信息给服务器的模块包括:
通过开放式系统互连(OSI)模型的应用层协议,促成传送已编码第一信息给服务器的模块。
10.如第1条所述的方法,促成传送已解码第二信息给客户端计算装置的模块包括:
通过开放式系统互连(OSI)模型的应用层协议,促成传送已解码第二信息给客户端计算装置的模块。
11.如第1条所述的方法,促成传送已编码第一信息给服务器的模块包括:
通过防火墙促成传送已编码第一信息给服务器的模块。
12.如第1条所述的方法,其中促成传送已解码第二信息给客户端计算装置的模块包括:
通过防火墙促成传送已解码第二信息给客户端计算装置的模块。
13.如第1条所述的方法,其中通用格式是超文本传输安全协议(HTTPS)。
14.如第1条所述的方法,其中基于网络过程调用界面包括远程过程调用。
15.如第1条所述的方法,其中所述方法是在客户端计算装置中执行。
16.如第1条所述的方法,其中所述方法是在服务器中执行。
17.如第1条所述的方法,其中所述方法是在第一装置执行,其中第一装置是与客户端计算装置不同的装置以及与服务器不同的装置。
18.如第1条所述的方法,其中所述方法是在路由器中执行,路由器被设置用来建立接口转发或者通过网关服务建立虚拟专用网络。
19.一种非暂时性的机器可读取媒介,包括存储于其中的指令,指令被一个或多个处理器执行,以执行一个或多个操作,包括:
用于致使一个或多个处理器促成从客户端计算装置接收通用格式的第一信息的代码;
用于致使一个或多个处理器根据用于基于网络过程调用介面的存储编码,通过将第一信息编码成与服务器相关的基于网络过程调用介面以产生已编码第一信息的代码;
用于致使一个或多个处理器促成传送已编码第一信息给服务器的模块的代码;
用于致使一个或多个处理器促成从服务器的模块接收第二信息的代码,所述第二信息是与服务器相关的基于网络过程调用介面编码;
用于致使一个或多个处理器根据基于网络过程调用介面的存储编码的代码,通过将第二信息解码成通用格式以产生已解码第二信息;以及
用于致使一个或多个处理器促成传送已解码第二信息给客户端计算装置的模块的代码。
20.如第19条所述的媒介,其中用于致使一个或多个处理器根据基于网络过程调用介面的存储编码的代码,通过将第二信息解码成通用格式以产生已解码第二信息包括:
用于致使一个或多个处理器将用于第二信息的开放式系统互连(OSI)模型堆栈的第一层的数据区块复制到用于已解码第二信息的开放式系统互连(OSI)模型堆栈的第二层的数据区块的代码,其中第二层的层数比第一层高。
21.如第20条所述的媒介,其中第一层是第五层,为会话层,第二层是第七层,为应用层。
22.如第21条所述的媒介,其中与用于第二信息的OSI模型的第一层(第五层)相关的协议是远程过程调用(RPC),其中与OSI模型的第二层(第七层)相关的协议是超文本传输协议(HTTP)。
23.如第19条所述的媒介,其中用于致使一个或多个处理器根据用于基于网络过程调用介面的存储编码,通过将第一信息编码成与服务器相关的基于网络过程调用介面以产生已编码第一信息的代码包括:
用于致使一个或多个处理器将开放式系统互连(OSI)模型的第一层的信息头以与基于网络过程调用界面相关的信息头取代的代码。
24.如第23条所述的媒介,其中第一层是第5层,是会话层,基于网络过程调用界面是RPC。
25.如第19条所述的媒介,其中服务器的操作系统是配置用来读取基于网络过程调用界面的信息;客户端计算装置的操作系统不是配置用来读取基于网络过程调用界面的信息。
26.如第19条所述的媒介,其中服务器的操作系统与客户端计算装置的作业系统不相容。
27.如第19条所述的媒介,其中用于致使一个或多个处理器促成传送已编码第一信息给服务器的模块的代碼包括:
用于致使一个或多个处理器通过开放式系统互连(OSI)模型的应用层协议,促成传送已编码第一信息给服务器的模块的代碼。
28.如第19条所述的媒介,其中用于致使一个或多个处理器促成传送已解码第二信息给客户端计算装置的模块的代碼包括:
用于致使一个或多个处理器通过开放式系统互连(OSI)模型的应用层协议,促成传送已解码第二信息给客户端计算装置的模块的代碼。
29.如第19条所述的媒介,其中用于致使一个或多个处理器促成传送已编码第一信息给服务器的模块的代碼包括:
用于致使一个或多个处理器通过防火墙促成传送已编码第一信息给服务器的模块的代碼。
30.如第19条所述的媒介,其中用于致使一个或多个处理器促成传送已解码第二信息给客户端计算装置的模块的代碼包括:
用于致使一个或多个处理器通过防火墙促成传送已解码第二信息给客户端计算装置的模块的代碼。
31.如第19条所述的媒介,其中通用格式是超文本传输安全协议(HTTPS)。
32.如第19条所述的媒介,其中基于网络过程调用界面是远程过程调用。
33.如第19条所述的媒介,其中一個或多個處理器是設置在客户端计算装置中。
34.如第19条所述的媒介,其中一個或多個處理器是設置在服务器中。
35.如第19条所述的媒介,其中一個或多個處理器是設置在第一装置,其中第一装置是与客户端计算装置不同的装置以及与服务器不同的装置。
36.如第19条所述的媒介,其中一個或多個處理器是設置在路由器中,路由器被设置用来建立接口转发或者通过网关服务建立虚拟专用网络。
37.一种设备,包括:
一个或多个模块,用于促成从客户端计算装置接收通用格式的第一信息;
一个或多个模块,用于根据用于基于网络过程调用介面的存储编码,通过将第一信息编码成与服务器相关的基于网络过程调用介面以产生已编码第一信息;
一个或多个模块,用于促成传送已编码第一信息给服务器的模块;
一个或多个模块,用于促成从服务器的模块接收第二信息,所述第二信息是与服务器相关的基于网络过程调用介面编码;
一个或多个模块,用于根据基于网络过程调用介面的存储编码,通过将第二信息解码成通用格式以产生已解码第二信息;以及
一个或多个模块,用于促成传送已解码第二信息给客户端计算装置的模块。
38.如第37条所述的设备,其中一个或多个模块,用于根据基于网络过程调用介面的存储编码,通过将第二信息解码成通用格式以产生已解码第二信息包括:
一个或多个模块,用于将用于第二信息的开放式系统互连(OSI)模型堆栈的第一层的数据区块复制到用于已解码第二信息的开放式系统互连(OSI)模型堆栈的第二层的数据区块,其中第二层的层数比第一层高。
39.如第38条所述的设备,其中第一层是第五层,为会话层,第二层是第七层,为应用层。
40.如第39条所述的设备,其中与用于第二信息的OSI模型的第一层(第五层)相关的协议是远程过程调用(RPC),其中与OSI模型的第二层(第七层)相关的协议是超文本传输协议(HTTP)。
41.如第37条所述的设备,其中一个或多个模块,用于根据用于基于网络过程调用介面的存储编码,通过将第一信息编码成与服务器相关的基于网络过程调用介面以产生已编码第一信息包括:
一个或多个模块,用于将开放式系统互连(OSI)模型的第一层的信息头以与基于网络过程调用界面相关的信息头取代。
42.如第37条所述的设备,其中第一层是第5层,是会话层,基于网络过程调用界面是RPC。
43.如第37条所述的设备,其中服务器的操作系统是配置用来读取基于网络过程调用界面的信息;客户端计算装置的操作系统不是配置用来读取基于网络过程调用界面的信息。
44.如第37条所述的设备其中服务器的操作系统与客户端计算装置的作业系统不相容。
45.如第37条所述的设备,其中一个或多个模块,用于促成传送已编码第一信息给服务器的模块包括:一个或多个模块,用于通过开放式系统互连(OSI)模型的应用层协议,促成传送已编码第一信息给服务器的模块。
46.如第37条所述的设备,其中一个或多个模块,用于促成传送已解码第二信息给客户端计算装置的模块包括:
一个或多个模块,用于通过开放式系统互连(OSI)模型的应用层协议,促成传送已解码第二信息给客户端计算装置的模块。
47.如第37条所述的设备,其中一个或多个模块,用于促成传送已编码第一信息给服务器的模块包括:一个或多个模块,用于通过防火墙促成传送已编码第一信息给服务器的模块。
48.如第37条所述的设备,其中一个或多个模块,用于促成传送已解码第二信息给客户端计算装置的模块包括:一个或多个模块,用于通过防火墙促成传送已解码第二信息给客户端计算装置的模块。
49.如第37条所述的设备,其中通用格式是超文本传输安全协议(HTTPS)。
50.如第37条所述的设备,其中基于网络过程调用界面包括远程过程调用。
51.如第37条所述的设备,其中所述设备是在客户端计算装置中。
52.如第37条所述的设备,其中所述设备是在服务器中。
53.如第37条所述的设备,其中所述设备是在第一装置中,其中第一装置是与客户端计算装置不同的装置以及与服务器不同的装置。
54.如第37条所述的设备,其中所述设备是在路由器中,路由器被设置用来建立接口转发或者通过网关服务建立虚拟专用网络。
55.一种用于设定数据通讯的电脑可执行方法,所述的方法包括:
对于数据通讯,促成对客户端计算装置的模块进行认证;
对于数据通讯,促成对服务器的模块进行认证;
对用于服务器的基于网络过程调用介面的编码的进行认证;
将基于网络过程调用介面与用于服务器的网关界面的协议结合;
促成对传送给客户端计算装置的模块或者服务器的模块的信息的大小是否在信息大小范围内进行验证;
促成对服务器的模块建立隧道,其中隧道用于数据通讯;以及
促成在隧道中建立频道,其中频道是用来数据通讯。
56.如第55条所述的方法,其中对于数据通讯,促成对客户端计算装置的模块进行认证包括:
通过网路层认证,藉由对与客户端计算装置有关的英特网协议地址进行验证,以对客户端计算装置的模块进行认证。
57.如第55条所述的方法,其中服务器的作业系统与客户端计算装置的作业系统不相容。
58.如第55条所述的方法,其中促成客户端计算装置的模块进行认证包括:
对客户端计算装置的一个或多个凭据进行验证。
59.如第55条所述的方法,其中促成服务器模块进行认证包括:
对服务器模块的一个或多个凭据进行验证。
60.如第55条所述的方法,其中信息大小范围与隧道有关。
61.如第55条所述的方法,其中基于网络过程调用界面包括远程过程调用。
62.如第55条所述的方法,其中网关界面包括终端服务网关。
63.如第55条所述的方法,其中一个或多个处理器设置在客户端计算装置中。
64.如第55条所述的方法,其中所述方法是在服务器中执行。
65.如第55条所述的方法,其中所述方法是在第一装置执行,其中第一装置是与客户端计算装置不同的装置以及与服务器不同的装置。
66.如第55条所述的方法,其中所述方法是在路由器中执行,路由器被设置用来建立接口转发或者通过网关服务建立虚拟专用网络。
67.一种非暂时性的机器可读取媒介,包括存储于其中的指令,指令被一个或多个处理器执行,以执行一个或多个操作,包括:
用于致使一个或多个处理器,对于数据通讯,促成对客户端计算装置的模块进行认证的代码;
用于致使一个或多个处理器,对于数据通讯,促成对服务器的模块进行认证的代码;
用于致使一个或多个处理器,对用于服务器的基于网络过程调用介面的编码的进行认证的代码;
用于致使一个或多个处理器,将基于网络过程调用介面与用于服务器的网关界面的协议结合的代码;
用于致使一个或多个处理器,促成对传送给客户端计算装置的模块或者服务器的模块的信息的大小是否在信息大小范围内进行验证的代码;
用于致使一个或多个处理器,促成对服务器的模块建立隧道,其中隧道用于数据通讯的代码;以及
用于致使一个或多个处理器,促成在隧道中建立频道,其中频道是用来数据通讯的代码。
68.如第67条所述的媒介,其中用于致使一个或多个处理器,对于数据通讯,促成对客户端计算装置的模块进行认证的代码包括:
用于致使一个或多个处理器,通过网路层认证,藉由对与客户端计算装置有关的英特网协议地址进行验证,以对客户端计算装置的模块进行认证的代码。
69.如第67条所述的媒介,其中服务器的作业系统与客户端计算装置的作业系统不相容。
70.如第67条所述的媒介,其中用于致使一个或多个处理器,对于数据通讯,促成对客户端计算装置的模块进行认证的代码包括:
用于致使一个或多个处理器,对客户端计算装置的一个或多个凭据进行验证的代码。
71.如第67条所述的媒介,其中用于致使一个或多个处理器,对于数据通讯,促成对服务器的模块进行认证的代码包括:
用于致使一个或多个处理器,对服务器模块的一个或多个凭据进行验证的代码。
72.如第67条所述的媒介,其中信息大小范围与隧道有关。
73.如第67条所述的媒介,其中基于网络过程调用界面包括远程过程调用。
74.如第67条所述的媒介,其中网关界面包括终端服务网关。
75.如第67条所述的媒介,其中一个或多个处理器设置在客户端计算装置中。
76.如第67条所述的媒介,其中一个或多个处理器设置在服务器中。
77.如第67条所述的媒介,其中一个或多个处理器是在第一装置执行,其中第一装置是与客户端计算装置不同的装置以及与服务器不同的装置。
78.如第67条所述的媒介,其中一个或多个处理器是在路由器中执行,路由器被设置用来建立接口转发或者通过网关服务建立虚拟专用网络。
79.一种设备,包括:
一个或多个模块,用于对数据通讯,促成对客户端计算装置的模块进行认证;
一个或多个模块,用于对数据通讯,促成对服务器的模块进行认证;
一个或多个模块,用于对服务器的基于网络过程调用介面的编码的进行认证;
一个或多个模块,用于将基于网络过程调用介面与用于服务器的网关界面的协议结合;
一个或多个模块,用于促成对传送给客户端计算装置的模块或者服务器的模块的信息的大小是否在信息大小范围内进行验证;
一个或多个模块,用于促成对服务器的模块建立隧道,其中隧道用于数据通讯;以及
一个或多个模块,用于促成在隧道中建立频道,其中频道是用来数据通讯。
80.如第79条所述的设备,其中一个或多个模块,用于对于数据通讯,促成对客户端计算装置的模块进行认证的代码包括:
一个或多个模块,用于通过网路层认证,藉由对与客户端计算装置有关的英特网协议地址进行验证,以对客户端计算装置的模块进行认证。
81.如第79条所述的设备,其中服务器的作业系统与客户端计算装置的作业系统不相容。
82.如第79条所述的设备,其中一个或多个模块,用于对于数据通讯,促成对客户端计算装置的模块进行认证的代码包括:
一个或多个模块,用于对客户端计算装置的一个或多个凭据进行验证。
83.如第79条所述的设备,其中一个或多个模块,用于对于数据通讯,促成对服务器的模块进行认证包括:
一个或多个模块,用于对客户端计算装置的一个或多个凭据进行验证。
84.如第79条所述的设备,其中信息大小范围与隧道有关。
85.如第79条所述的设备,其中基于网络过程调用界面包括远程过程调用。
86.如第79条所述的设备,其中网关界面包括终端服务网关。
87.如第79条所述的设备,其中所述的设备是设置在客户端计算装置中。
88.如第79条所述的设备,其中所述的设备是设置在服务器中。
89.如第79条所述的设备,其中所述的设备是在第一装置执行,其中第一装置是与客户端计算装置不同的装置以及与服务器不同的装置。
90.如第79条所述的设备,其中所述的设备是在路由器中执行,路由器被设置用来建立接口转发或者通过网关服务建立虚拟专用网络。
其他备注
在一方面,此处任何的条款可以从属于任何的独立条款或者其他从属条款。在一方面,任何的条款(例如从属或者独立条款)都可以与任何其他条款(例如从属或者独立条款)结合。在一方面,权利要求可以包括一些或所有在条款、句子、片语或段落中所引用的文字(例如步骤、操作、装置或者元件)。在一方面,权利要求可以包括一些或所有在一个或多个条款、句子、片语或段落中所引用的文字。在一方面,在每一条款、句子、片语或段落中的一些文字可以被移除。在一方面,额外的文字或者元件可以加入条款、句子、片语或段落中。在一方面,本申请可以不需要使用此处所描述的组件、元件、功能或操作来执行。在一方面,本申请可以使用额外的组件、元件、功能或操作来执行。
在一方面,此处所描述或者权利要求中的任何方法、指令、代码、装置、逻辑、元件、方块、模块以及类似物(例如软件或硬件)都可以在图式中呈现(例如流程图、方块图),这些图式(不论是否明显的显示在图中)明显的在此处全部引用作为参考,并且这些图式(如果没有明显显示)可以没有引入新事项的的前提下加入本申请中。为了简洁起见(但并非全部),条款/说明/权利要求其中的一些会明显的显示在图中,但是任何的条款/说明/权利要求都可以以类似于这些图式的方式明显的显示在途中。例如,流程图可以来表示条款、句子或者方法的权利要求使得每一操作或者步骤可以通过箭头连接下一个操作或步骤。在另一个例子中,方块图可以用来表示任何的条款、句子或者具有“用以”一词的权利要求(例如用以执行动作的装置)使得每一“用以”一词可以表示成元件的模块(例如用以执行动作的模块)。
本领域技术人员可以了解各种描述性的方块、模块、元件、组件、方法、操作、步骤以及演算法(例如服务不相容客户端210、代理装置220、防火墙120、结合界面130、基于网络过程调用界面140、往关界面150、远程服务器计算装置160、以及组件)可以用硬件、软件或硬件与软件组合的方式实施。
为了描述硬件与软件互换性,各种描述性的方块、模块、元件、组件、方法、操作、步骤以及演算法是用其功能进行通常的描述。这些功能是以硬件或者软件的方式实施是按照其特定的应用与所实施的整体系统的设计限制决定。对于每一特定应用,本领域技术人员可使用不同的方式实施所描述的功能。
在一方面,“装置”、方块、模块、元件、组件或者处理器(例如一个或多个方块、模块、元件、组件或处理器)可以是用以执行一个或多个功能或者操作的项目。在一方面,这些项目可以是设备、硬件、或者其一部分。在一实施例中,一个项目,举例来说,可以具有一结构,所述结构是以用以执行功能或操作的指令形式存在,其中指令是编码或者存储于在一机器可读取媒介上、或者其他装置上、或者其一部分之上,其中指令可以是软件、应用、子程序或者其一部分。在一个例子中,一个项目可以用一个或多的电路实施,用来执行功能或操作。电路可以包括一个或多个电路以及/或逻辑。电路可以是类比以及/或数字。电路可以是电子的以及/或光学的。电路可以包括晶体管。在一例子中,一个或多个项目可以实施为处理系统(例如数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程逻辑门阵列(FPGA)等等或者前述的一部分或组合。本领域熟悉技艺的技术人员可以了解如何实施指令、电路以及处理系统。
元件的参考标号以单数形式呈现并非用以表示“一个且只有一个”而是表示“一个或多个”,除非有特别的说明。例如一信息可以指的是一个或多的信息。
除非特别说明,“一些”一词指的是一个或多个。阳性代名词(例如他的)包括阴性与中性(例如她的与它的),反之亦然。标题与副标题,如果有的话,是为了方便而使用并非用来限制本发明。
此处使用的“示例性”一词是指“作为一个例子或说明”。此处描述成“示例性”的方面或设计并不一定是比其他方面或设计来得好或者更有优势。在一方面,此处描述的各种选择性的架构或操作可以视为至少等同(at least equivalent)。
片语,例如“观点、方面”,并不是暗指该观点是本申请必要的或者该观点应用于本申请所有的架构。关于某一观点的公开方案可以应用到所有的架构、或者一个或多个架构。一个“观点”可以提供一个或多个实施例。片语,例如“一个观点”可以指的是一个或多个观点,反之亦然。片语,例如“实施例”,并不是暗指该实施例是本申请必要的或者该实施例应用于本申请所有的架构。关于某一实施例的公开方案可以应用到所有的实施例、或者一个或多个实施例。一个“实施例”可以提供一个或多个例子。片语,例如“一个实施例”可以指的是一个或多个实施例,反之亦然。片语,例如“架构”,并不是暗指该架构是本申请必要的或者该架构应用于本申请所有的架构。关于某一架构的公开方案可以应用到所有的架构、或者一个或多个架构。一个“架构”可以提供一个或多个例子。片语,例如“一个架构”可以指的是一个或多个架构,反之亦然。
在本申请的一方面,当动作或功能被描述成由一项目所执行时(例如接收、决定、提供、产生、转互、显示、通知、接受、选择、控制、传送、报告、发送、认证、验证、结合、建立或者任何其他的动作或功能),可以明白的是这些动作或功能可以直接由该项目执行。在另一个例子中,当一个项目被描述成执行一个动作时,该项目可以被理解成非直接执行该动作,例如,促成(facilitating,例如致能(enabling)、致使(causing)或者执行(perofrming)一部分)该动作。例如,产生可以指得是促成产生。在一方面,执行一个动作可以指得是执行该动作的一部分(例如,执行该动作的开始部分,执行该动作的结束部分或者执行该动作的中间部分)。
在一方面,除非特别说明,所有在本申请提到的以及权利要求中所提到的测量值、值、等级、位置、量、大小或者其他规格都是近似值,并非精确值。在一方面,他们都具有一个与其功能相应以及所属的领域相应的合理范围。
在一方面,“耦接”一词,或类似词可以指的是直接耦接。在另一方面,“耦接”一词,或类似词可以指的是非直接耦接。
各种项目可以在不与本申请的范围分离的情况下用不同的方式配置(例如以不同的顺序配置、或者以不同的方式分割)。在本申请的另一方面,权利要求中所引述的元件可以被一个或多个模块或子模块执行。
可以明白的是,所公开的步骤、操作或者程序的特定顺序或等级是示例性的说明。根据设计的偏好,可以理解的是步骤、操作或者程序的特定顺序或等级可以重新安排。一些步骤、操作或者程序可以在没有使用者介入之下同时执行。一些步骤、操作或者程序可以在没有使用者介入之下自动执行。方法权利要求,如果有,表示各种步骤、操作或者程序的组成是一个示例性的顺序,并非限制特定顺序或者等级。
本申请用以使任何本领域技术人员可以实施所描述的各种实施例。本申请公开技术方案的各种实施例,且技术方案并非限于这些例子。各种实施例的修改对于本领域技术人员是明显的,且此处定义的通常原则也可以应用到其他观点。
等同于本申请中所有各种实施例组成的结构与功能,已为本领域技术人员在所熟悉或稍后变成熟悉,在此也引入作为参考,并且由权利要求所涵盖。更进一步,此处所公开的内容并没有意图要贡献给大众,不论这些公开的技术方案是否有记载在权利要求中。没有权利要求应该依据专利法第112项第6款来进行解释,除非明确的使用“用以……的装置”或者,在方法权利要求中,使用“用以……的步骤”。更进一步,“包含”、“具有”或者类似用语,应该类似于“包括”,因为“包括”是权利要求所使用的转折词。
本申请的名称、背景、内容、图式说明、摘要在此引入本申请中作为参考,并且作为本申请说明实施例,而非限制的说明。可以理解并非用以限制权利要求的范围或者意义。此外,详细说明中,可以明白说明提供说明性的例子,并且为了说明的流畅,不同实施例的特徵是分组在一起。本申请不应该被解释成意图使权利要求所要保护的主题需要比记载更多的特徵。番而,如同权利要求所反应,具有发明性的主题不需要单一公开的架构或操作的全部特徵。每一条具有自己要保护的权利要求,在此也引详细说明作为参考。
权利要求并非用来限制所描述的观点,但是与权利要求使用的语言的范围一致并且包括所有的等同范围。尽管如此,没有权利要求是意图包含不符合也不应该被解释成不符合美国专利法第101条、第102条、第103条的主题。在此声明放弃任何非意图的包含不符合专利法的主题。

Claims (13)

1.一种电脑执行之数据通讯方法,其特征在于,包括:
促成从客户端计算装置接收通用格式的第一信息;
根据用于基于网络过程调用介面的存储编码,通过将所述第一信息编码成与服务器相关的基于网络过程调用介面以产生已编码第一信息;其中所述产生已编码第一信息的步骤包括将位于开放式系统互连OSI模型的第一个层的所述第一信息中的信息头,以与基于网络过程调用界面相关的所述已编码第一信息的信息头取代;
促成传送所述已编码第一信息给服务器的模块;
促成从所述服务器的模块接收第二信息,所述第二信息由与服务器相关的基于网络过程调用介面编码;
根据基于网络过程调用介面的存储编码,通过将所述第二信息解码成通用格式以产生已解码第二信息;以及
促成传送已解码第二信息给客户端计算装置的模块;
其中所述服务器的操作系统被配置为读取所述网络过程调用介面编码中的信息,并且其中所述客户端计算装置的操作系统不被配置为读取所述网络过程调用介面编码中的信息。
2.如权利要求1所述的数据通讯方法,其特征在于,其中所述的根据基于网络过程调用介面的存储编码的代码,通过将所述第二信息解码成通用格式以产生已解码第二信息的步骤包括:
将用于第二信息的开放式系统互连OSI模型堆栈的第一个层的数据区块复制到用于已解码第二信息的开放式系统互连OSI模型堆栈的第二个层的数据区块的代码,其中所述第二个层的层数比所述第一个层高。
3.如权利要求2所述的数据通讯方法,其特征在于,所述的第一个层是开放式系统互连OSI模型堆栈的第五层,为会话层,所述第二个层是开放式系统互连OSI模型堆栈的第七层,为应用层。
4.如权利要求3所述的数据通讯方法,其特征在于,与用于所述第二信息的开放式系统互连OSI模型的第一个层相关的协议是远程过程调用RPC,其中与开放式系统互连OSI模型的第二个层相关的协议是超文本传输协议HTTP。
5.如权利要求1所述的数据通讯方法,其特征在于,所述第一个层是开放式系统互连OSI模型堆栈的第五层,是会话层,所述基于网络过程调用界面是RPC。
6.如权利要求1所述的数据通讯方法,其特征在于,所述服务器的操作系统与所述客户端计算装置的作业系统不相容。
7.如权利要求1所述的数据通讯方法,其特征在于,所述的传送所述已编码第一信息给服务器的模块的步骤包括:
通过开放式系统互连OSI模型的应用层协议,促成传送所述已编码第一信息给服务器的模块。
8.如权利要求1所述的数据通讯方法,其特征在于,所述促成传送所述已解码第二信息给客户端计算装置的模块的步骤包括:
通过开放式系统互连OSI模型的应用层协议,促成传送所述已解码第二信息给客户端计算装置的模块。
9.如权利要求1所述的数据通讯方法,其特征在于,所述促成传送所述已编码第一信息给服务器的模块的步骤包括:
通过防火墙促成传送所述已编码第一信息给服务器的模块。
10.如权利要求1所述的数据通讯方法,其特征在于,所述促成传送所述已解码第二信息给客户端计算装置的模块的步骤包括:
通过防火墙促成传送所述已解码第二信息给客户端计算装置的模块。
11.如权利要求1所述的数据通讯方法,其特征在于,所述通用格式是超文本传输安全协议HTTPS。
12.如权利要求1所述的数据通讯方法,其特征在于,所述基于网络过程调用界面是远程过程调用。
13.一种设备,其特征在于,包括:
一个或多个模块,用于促成从客户端计算装置的一个模块接收通用格式的第一信息;
一个或多个模块,用于根据基于网络过程调用介面的存储编码,通过将所述第一信息编码成与服务器相关的基于网络过程调用介面以产生第一已编码信息;其中所述产生已编码第一信息的步骤包括将位于开放式系统互连OSI模型的第一个层的所述第一信息中的信息头,以与基于网络过程调用界面相关的所述已编码第一信息的信息头取代;
一个或多个模块,用于促成传送所述第一已编码信息给服务器的模块;
一个或多个模块,用于促成从服务器的模块接收第二信息,所述第二信息由与服务器相关的基于网络过程调用介面编码;
一个或多个模块,用于根据基于网络过程调用介面的存储编码,通过将所述第二信息解码成通用格式以产生已解码第二信息;以及
一个或多个模块,用于促成传送所述已解码第二信息给客户端计算装置的模块;
其中所述服务器的操作系统被配置为读取所述网络过程调用介面编码中的信息,并且其中所述客户端计算装置的操作系统不被配置为读取所述网络过程调用介面编码中的信息。
CN201280047164.9A 2011-08-04 2012-07-25 促成基于网络过程调用的使用的客户端‑服务器通讯系统与方法 Active CN104040523B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201161515277P 2011-08-04 2011-08-04
US61/515,277 2011-08-04
US201161521736P 2011-08-09 2011-08-09
US61/521,736 2011-08-09
US13/487,124 2012-06-01
US13/487,124 US8990342B2 (en) 2011-08-04 2012-06-01 System and method for client-server communication facilitating utilization of network-based procedure call
PCT/US2012/048184 WO2013019520A2 (en) 2011-08-04 2012-07-25 System and method for client-server communication facilitating utilization of network-based procedure call

Publications (2)

Publication Number Publication Date
CN104040523A CN104040523A (zh) 2014-09-10
CN104040523B true CN104040523B (zh) 2017-03-29

Family

ID=47627666

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280047164.9A Active CN104040523B (zh) 2011-08-04 2012-07-25 促成基于网络过程调用的使用的客户端‑服务器通讯系统与方法

Country Status (5)

Country Link
US (9) US9131011B1 (zh)
EP (1) EP2740046B1 (zh)
CN (1) CN104040523B (zh)
IN (1) IN2014CN00715A (zh)
WO (1) WO2013019520A2 (zh)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324685B1 (en) * 1998-03-18 2001-11-27 Becomm Corporation Applet server that provides applets in various forms
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US9397932B2 (en) * 2012-01-17 2016-07-19 Reno Acquisitions, Llc Systems and methods for routing network information
US20150046507A1 (en) * 2012-04-16 2015-02-12 Hewlett-Packard Development Company, L.P. Secure Network Data
US20140032774A1 (en) * 2012-07-30 2014-01-30 Microsoft Corporation Client-emulating Gateways for Communication Network Migration
US9063721B2 (en) 2012-09-14 2015-06-23 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
US9374351B1 (en) 2012-11-02 2016-06-21 Wyse Technology L.L.C. Virtual desktop accelerator support for network gateway
US9992185B1 (en) * 2012-11-02 2018-06-05 Wyse Technology L.L.C. Virtual desktop accelerator support for network gateway
US9485233B1 (en) * 2012-11-02 2016-11-01 Wyse Technology L.L.C. Virtual desktop accelerator support for network gateway
US9723091B1 (en) * 2012-11-09 2017-08-01 Noble Systems Corporation Variable length protocol using serialized payload with compression support
US9036477B2 (en) * 2012-12-10 2015-05-19 Verizon Patent And Licensing Inc. Virtual private network to label switched path mapping
EP2942912B1 (en) * 2013-01-04 2018-09-12 Nec Corporation Control device, communication system, tunnel endpoint control method and program
US9407725B2 (en) 2013-06-14 2016-08-02 Dell Products L.P. Generic transcoding service for client-server communication
US20140372508A1 (en) * 2013-06-14 2014-12-18 Andrew T. Fausak Native client tunnel service for client-server communication
US9207651B2 (en) * 2013-06-27 2015-12-08 Crestron Electronics Inc. Connection aware power control of network displays
US9936002B2 (en) 2014-02-21 2018-04-03 Dell Products L.P. Video compose function
US20150244835A1 (en) * 2014-02-21 2015-08-27 Andrew T. Fausak Transcoding instance with multiple channels
US10192022B2 (en) * 2014-06-04 2019-01-29 IronCAD, LLC Geometric modeling system with intelligent behaviors of design components
US9819766B1 (en) * 2014-07-30 2017-11-14 Google Llc System and method for improving infrastructure to infrastructure communications
US10552240B2 (en) 2014-09-04 2020-02-04 International Business Machines Corporation Automatically generating efficient remote procedure call (RPC) code for heterogeneous systems
CN104881337B (zh) * 2015-02-06 2017-04-05 北京飞杰信息技术有限公司 扩充scsi机箱新功能的方法
US10375088B2 (en) * 2015-06-04 2019-08-06 Vm-Robot, Inc. Routing systems and methods
US11259180B2 (en) * 2015-06-04 2022-02-22 Vm-Robot, Inc. Routing systems and methods
US9986040B2 (en) 2015-07-21 2018-05-29 Amadeus S.A.S. Communications management system with a separate peripherals server
US9736699B1 (en) 2015-07-28 2017-08-15 Sanjay K. Rao Wireless Communication Streams for Devices, Vehicles and Drones
US10084754B2 (en) 2015-12-11 2018-09-25 Microsoft Technology Licensing, Llc Virtual private network aggregation
US10685290B2 (en) * 2015-12-29 2020-06-16 International Business Machines Corporation Parameter management through RDMA atomic operations
US9806984B1 (en) 2015-12-31 2017-10-31 EMC IP Holding Company LLC Separating network traffic among virtual servers
US10897488B1 (en) 2015-12-31 2021-01-19 EMC IP Holding Company LLC Multiplexing traffic from multiple network namespaces to a single listener in a stream-based server application
CN106130877A (zh) * 2016-06-23 2016-11-16 瓦戈科技(上海)有限公司 一种跨系统的手机短信发送方法
CN107770219A (zh) * 2016-08-19 2018-03-06 中兴通讯股份有限公司 一种视窗窗口的共享方法、网关服务器和系统
CN106528302A (zh) * 2016-10-18 2017-03-22 广州视睿电子科技有限公司 多系统一体机文件共享的方法及装置
CN108289060B (zh) * 2017-01-09 2020-11-06 腾讯科技(深圳)有限公司 一种基于rpc服务的数据处理方法以及装置
US10223181B2 (en) * 2017-01-30 2019-03-05 Microsoft Technology Licensing, Llc Object-oriented remote procedure calls for browser applications
US10476910B2 (en) 2017-06-21 2019-11-12 Mastercard International Incorporated Systems and methods for secure network communication
CN107483609B (zh) * 2017-08-31 2018-08-28 深圳市迅雷网文化有限公司 一种网络访问方法、相关设备和系统
US10771579B2 (en) * 2017-09-25 2020-09-08 Verizon Patent And Licensing, Inc. Redirection of data flows from an end device
CN107733653B (zh) * 2017-10-09 2021-04-02 用友网络科技股份有限公司 用户权限鉴定方法及系统和计算机设备
CN108173781B (zh) * 2017-12-20 2019-08-16 宜通世纪科技股份有限公司 Https流量识别方法、装置、终端设备及存储介质
US11075935B2 (en) * 2017-12-22 2021-07-27 Kpmg Llp System and method for identifying cybersecurity threats
US10630572B1 (en) * 2018-01-05 2020-04-21 iPayed, LLC Open loop, closed loop, real and near real-time computer network system and method therefor
CN110120854B (zh) * 2018-02-07 2021-08-31 华为技术有限公司 传输数据的方法和装置
WO2019183522A1 (en) * 2018-03-22 2019-09-26 Akamai Technologies, Inc. Traffic forwarding and disambiguation by using local proxies and addresses
US11240858B2 (en) * 2018-04-27 2022-02-01 Nokia Solutions And Networks Oy Traffic steering for stateless packets over multipath networks
JP7122159B2 (ja) * 2018-05-25 2022-08-19 三菱重工業株式会社 データ処理システム、データ処理方法およびプログラム
US10652077B2 (en) 2018-08-31 2020-05-12 Subcom, Llc Techniques for interfacing between web services and interface description language (IDL)-based remote procedure call (RPC) services and an optical communication system implementing same
CN109995758A (zh) * 2019-02-28 2019-07-09 北京创鑫旅程网络技术有限公司 数据并行处理方法及装置
CN110602192A (zh) * 2019-08-30 2019-12-20 北京谷数科技有限公司 一种扩展存储集群系统网络通信能力的方法
CN110650188B (zh) * 2019-09-19 2022-09-23 深圳昆仑通态科技有限责任公司 一种hmi设备的远程控制方法、系统及计算机设备
CN110647411A (zh) * 2019-10-10 2020-01-03 广州趣丸网络科技有限公司 服务请求的处理方法及装置
CN110830461B (zh) * 2019-10-28 2021-08-20 杭州涂鸦信息技术有限公司 基于tls长连接的跨区的rpc服务调用方法及系统
CN110971685B (zh) * 2019-11-29 2021-01-01 腾讯科技(深圳)有限公司 内容处理方法、装置、计算机设备及存储介质
US11496487B2 (en) * 2020-02-13 2022-11-08 Shaikh Abdulla Mohamed Khalid Ahmed Al Qasimi Computing network for using a cloud computing server to verify data received from an operating system
CN113452739A (zh) * 2020-03-27 2021-09-28 北京沃东天骏信息技术有限公司 一种消息处理方法和装置
CN111865900B (zh) * 2020-06-03 2021-06-29 中邮消费金融有限公司 基于rpc协议的跨网络区域代理访问方法及系统
CN111935316B (zh) * 2020-09-25 2020-12-22 武汉中科通达高新技术股份有限公司 一种前端设备目录获取方法及装置
EP4064053A1 (en) * 2021-03-26 2022-09-28 Aptiv Technologies Limited Managing inter-service communication
CN113377507B (zh) * 2021-05-07 2024-08-02 武汉虚咖科技有限公司 任务处理方法、装置、设备以及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997019415A2 (en) * 1995-11-07 1997-05-29 Cadis, Inc. Search engine for remote object oriented database management system
US6446137B1 (en) * 1996-01-10 2002-09-03 Sun Microsystems, Inc. Remote procedure call system and method for RPC mechanism independent client and server interfaces interoperable with any of a plurality of remote procedure call backends

Family Cites Families (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452447A (en) 1992-12-21 1995-09-19 Sun Microsystems, Inc. Method and apparatus for a caching file server
JP3613863B2 (ja) 1995-07-19 2005-01-26 株式会社日立製作所 ネットワーク接続システム及び並列ネットワーク接続方法
US20020118671A1 (en) 1995-11-15 2002-08-29 Data Race, Inc. Extending office telephony and network data services to a remote client through the internet
US6105073A (en) 1996-05-30 2000-08-15 Unisys Corp. Method for packing/unpacking C operations to/from RPC compatible format using the RPC protocol to operate remotely with an object-oriented repository
JPH1032610A (ja) 1996-07-12 1998-02-03 Nec Corp 移動データ通信における仮想私設網の構成方法
US7028312B1 (en) 1998-03-23 2006-04-11 Webmethods XML remote procedure call (XML-RPC)
US6356863B1 (en) 1998-09-08 2002-03-12 Metaphorics Llc Virtual network file server
US6409602B1 (en) 1998-11-06 2002-06-25 New Millenium Gaming Limited Slim terminal gaming system
WO2000034858A2 (en) 1998-12-11 2000-06-15 Microsoft Corporation Accelerating a distributed component architecture over a network using a modified rpc communication
US6678827B1 (en) * 1999-05-06 2004-01-13 Watchguard Technologies, Inc. Managing multiple network security devices from a manager device
US6747949B1 (en) * 1999-05-21 2004-06-08 Intel Corporation Register based remote data flow control
US6769022B1 (en) 1999-07-09 2004-07-27 Lsi Logic Corporation Methods and apparatus for managing heterogeneous storage devices
ATE390788T1 (de) * 1999-10-14 2008-04-15 Bluearc Uk Ltd Vorrichtung und verfahren zur hardware-ausführung oder hardware-beschleunigung von betriebssystemfunktionen
US6823393B1 (en) 1999-10-21 2004-11-23 International Business Machines Corporation Method and apparatus for setting the value of a type of service field in the header of the ip datagram having socks data by retrieving a source address and application address within the ip header of the ip datagram
US7028333B2 (en) 2000-04-12 2006-04-11 Corente, Inc. Methods and systems for partners in virtual networks
US7047424B2 (en) * 2000-04-12 2006-05-16 Corente, Inc. Methods and systems for hairpins in virtual networks
US6981041B2 (en) 2000-04-13 2005-12-27 Aep Networks, Inc. Apparatus and accompanying methods for providing, through a centralized server site, an integrated virtual office environment, remotely accessible via a network-connected web browser, with remote network monitoring and management capabilities
US7356841B2 (en) 2000-05-12 2008-04-08 Solutioninc Limited Server and method for providing specific network services
WO2002023463A1 (en) 2000-09-11 2002-03-21 David Edgar System, method, and computer program product for optimization and acceleration of data transport and processing
WO2002039764A2 (en) 2000-10-30 2002-05-16 Telera, Inc. Call center management for wireless access network
US6778498B2 (en) 2001-03-20 2004-08-17 Mci, Inc. Virtual private network (VPN)-aware customer premises equipment (CPE) edge router
WO2002080457A1 (en) 2001-03-29 2002-10-10 Sphere Software Corporation Layering enterprise application services using semantic firewalls
US20020162021A1 (en) 2001-04-30 2002-10-31 Audebert Yves Louis Gabriel Method and system for establishing a remote connection to a personal security device
US7827292B2 (en) 2001-07-23 2010-11-02 At&T Intellectual Property Ii, L.P. Flexible automated connection to virtual private networks
AU2002313583A1 (en) 2001-08-01 2003-02-17 Actona Technologies Ltd. Virtual file-sharing network
DE10147549A1 (de) * 2001-09-26 2003-04-10 Philips Corp Intellectual Pty Vermittlungsverfahren zwischen Dialogsystemen
US7146617B2 (en) * 2001-09-29 2006-12-05 Siebel Systems, Inc. Method, apparatus, and system for implementing view caching in a framework to support web-based applications
US20040088448A1 (en) 2001-10-16 2004-05-06 Userspace Corporation Embedded system and method for controlling, monitoring of instruments or devices and processing their data via control and data protocols that can be combined or interchanged
US20030145315A1 (en) * 2002-01-23 2003-07-31 Tuomo Aro Exchange of data between components of distributed software having different versions of software
US20030145230A1 (en) 2002-01-31 2003-07-31 Huimin Chiu System for exchanging data utilizing remote direct memory access
US20030149741A1 (en) 2002-02-05 2003-08-07 Krooss Kevin William Methods for implementing remote operating system procedure calls
US7246358B2 (en) 2002-04-09 2007-07-17 Sun Microsystems, Inc. Methods, system and articles of manufacture for providing an extensible serialization framework for an XML based RPC computing environment
US20030217149A1 (en) 2002-05-20 2003-11-20 International Business Machines Corporation Method and apparatus for tunneling TCP/IP over HTTP and HTTPS
US20050193103A1 (en) 2002-06-18 2005-09-01 John Drabik Method and apparatus for automatic configuration and management of a virtual private network
US7209976B2 (en) 2002-07-16 2007-04-24 Jeremy Benjamin Protocol communication and transit packet forwarding routed between multiple virtual routers within a single physical router
US7783035B2 (en) 2002-08-30 2010-08-24 Adaptec, Inc. Systems and methods for implementing host-based security in a computer network
US7284030B2 (en) 2002-09-16 2007-10-16 Network Appliance, Inc. Apparatus and method for processing data in a network
US7716725B2 (en) * 2002-09-20 2010-05-11 Fortinet, Inc. Firewall interface configuration and processes to enable bi-directional VoIP traversal communications
US7177930B1 (en) 2002-10-11 2007-02-13 Network General Technology Method and system for network traffic analysis with configuration enhancements
WO2004036834A1 (en) 2002-10-17 2004-04-29 Nokia Corporation Secured virtual private network with mobile nodes
US8005958B2 (en) 2003-06-27 2011-08-23 Ixia Virtual interface
EP1658700B1 (en) 2003-08-29 2008-06-25 Nokia Corporation Personal remote firewall
US7978716B2 (en) 2003-11-24 2011-07-12 Citrix Systems, Inc. Systems and methods for providing a VPN solution
US9117063B2 (en) 2004-02-27 2015-08-25 Wyse Technology L.L.C. Session manager for secured remote computing
US20050193104A1 (en) 2004-02-27 2005-09-01 Wyse Technology Inc. User interface for remote computing devices
US7457626B2 (en) * 2004-03-19 2008-11-25 Microsoft Corporation Virtual private network structure reuse for mobile computing devices
WO2006012610A2 (en) 2004-07-23 2006-02-02 Citrix Systems, Inc. Systems and methods for optimizing communications between network nodes
WO2006011464A1 (ja) 2004-07-28 2006-02-02 Nec Corporation 接続方法、通信システム、装置及びプログラム
US20060090136A1 (en) 2004-10-01 2006-04-27 Microsoft Corporation Methods and apparatus for implementing a virtualized computer system
JP4707992B2 (ja) 2004-10-22 2011-06-22 富士通株式会社 暗号化通信システム
US7483994B1 (en) 2004-11-01 2009-01-27 Ameriprise Financial, Inc. System and method for creating a standard envelope structure
US8549149B2 (en) 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
US7810148B2 (en) 2005-02-25 2010-10-05 Microsoft Corporation Enabling terminal services through a firewall
US7685633B2 (en) 2005-02-25 2010-03-23 Microsoft Corporation Providing consistent application aware firewall traversal
US8079059B1 (en) 2005-05-31 2011-12-13 Imera Systems, Inc. Method and system for providing terminal view access of a client device in a secure network
US7747874B2 (en) 2005-06-02 2010-06-29 Seagate Technology Llc Single command payload transfers block of security functions to a storage device
US20070033291A1 (en) 2005-07-22 2007-02-08 Axalto Inc. System and method for support of legacy communications protocols in a smart card
US7784095B2 (en) 2005-09-08 2010-08-24 Intel Corporation Virtual private network using dynamic physical adapter emulation
US8281385B2 (en) 2005-09-29 2012-10-02 Rockwell Automation Technologies, Inc. Internet friendly proxy server extending legacy software connectivity
US8065690B2 (en) 2005-12-01 2011-11-22 Cisco Technology, Inc. Method and system for event-based remote procedure call implementation in a distributed computing system
US8199731B2 (en) 2006-01-25 2012-06-12 Motorola Mobility, Inc. Method and apparatus for facilitating switched packet data services on multiple networks
US20070214232A1 (en) 2006-03-07 2007-09-13 Nokia Corporation System for Uniform Addressing of Home Resources Regardless of Remote Clients Network Location
JP4800837B2 (ja) 2006-05-22 2011-10-26 株式会社日立製作所 計算機システム、その消費電力低減方法、及びそのプログラム
US20070276950A1 (en) 2006-05-26 2007-11-29 Rajesh Dadhia Firewall For Dynamically Activated Resources
US7913262B2 (en) 2006-06-05 2011-03-22 International Business Machines Corporation Method and system for improved computer network efficiency in use of remote procedure call applications
US7817634B2 (en) 2006-06-30 2010-10-19 Intel Corporation Network with a constrained usage model supporting remote direct memory access
US20080040455A1 (en) 2006-08-08 2008-02-14 Microsoft Corporation Model-based deployment and configuration of software in a distributed environment
US7769869B2 (en) 2006-08-21 2010-08-03 Citrix Systems, Inc. Systems and methods of providing server initiated connections on a virtual private network
US8095786B1 (en) 2006-11-09 2012-01-10 Juniper Networks, Inc. Application-specific network-layer virtual private network connections
US9137212B2 (en) 2006-12-04 2015-09-15 Oracle America, Inc. Communication method and apparatus using changing destination and return destination ID's
US7853679B2 (en) * 2007-03-12 2010-12-14 Citrix Systems, Inc. Systems and methods for configuring handling of undefined policy events
KR100879123B1 (ko) 2007-04-19 2009-01-19 한국전자통신연구원 Dce rpc 객체의 퍼징 시스템 및 방법
US9438662B2 (en) 2007-04-30 2016-09-06 Microsoft Technology Licensing, Llc Enabling secure remote assistance using a terminal services gateway
US8340103B2 (en) 2007-05-29 2012-12-25 Ca, Inc. System and method for creating a secure tunnel for communications over a network
US20090006537A1 (en) 2007-06-29 2009-01-01 Microsoft Corporation Virtual Desktop Integration with Terminal Services
FR2929789B1 (fr) 2008-04-08 2010-04-30 Canon Kk Procede de gestion de mecanismes d'amelioration de transmission de flux de donnees sur un tunnel, produit programme d'ordinateur, moyen de stockage et tete de tunnel correspondants
WO2009143187A2 (en) * 2008-05-19 2009-11-26 Citrix Systems, Inc. Systems and methods for remoting multimedia plugin calls
US20090319850A1 (en) 2008-06-24 2009-12-24 Texas Instruments Incorporated Local drop control for a transmit buffer in a repeat transmission protocol device
US8612862B2 (en) 2008-06-27 2013-12-17 Microsoft Corporation Integrated client for access to remote resources
US8555372B2 (en) 2008-06-30 2013-10-08 Hewlett-Packard Development Company, L.P. Automatic firewall configuration
WO2010045089A1 (en) * 2008-10-08 2010-04-22 Sourcefire, Inc. Target-based smb and dce/rpc processing for an intrusion detection system or intrusion prevention system
US8572251B2 (en) 2008-11-26 2013-10-29 Microsoft Corporation Hardware acceleration for remote desktop protocol
US7941551B2 (en) 2009-02-25 2011-05-10 Microsoft Corporation Tunneling of remote desktop sessions through firewalls
EP2259551A1 (en) 2009-06-05 2010-12-08 Software AG Gateway server system comprising a gateway server for making SOAP/XML-based web services accessible to RPC clients
US9130903B2 (en) 2009-07-01 2015-09-08 Citrix Systems, Inc. Unified out of band management system for desktop and server sessions
JP4802263B2 (ja) 2009-07-17 2011-10-26 株式会社日立製作所 暗号化通信システム及びゲートウェイ装置
JP5498102B2 (ja) 2009-09-02 2014-05-21 アラクサラネットワークス株式会社 ネットワークシステム、ネットワーク中継装置、それらの制御方法
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
US8701180B2 (en) 2009-12-04 2014-04-15 Sap Ag Securing communications between different network zones
US8825859B2 (en) 2009-12-23 2014-09-02 Citrix Systems, Inc. System and methods for mixed mode of IPv6 and IPv4 DNS of global server load balancing
CN102148842B (zh) 2010-02-08 2014-06-04 联想(北京)有限公司 一种远程桌面体系的音频处理方法和设备
US8543805B2 (en) 2010-04-21 2013-09-24 Citrix Systems, Inc. Systems and methods for split proxying of SSL via WAN appliances
US8688775B2 (en) 2010-05-28 2014-04-01 Juniper Network, Inc. Application-layer traffic optimization service spanning multiple networks
US8533312B2 (en) 2010-08-05 2013-09-10 Citrix Systems, Inc. Systems and methods for server initiated connection management in a multi-core system
US8990380B2 (en) 2010-08-12 2015-03-24 Citrix Systems, Inc. Systems and methods for quality of service of ICA published applications
US20120066679A1 (en) 2010-09-13 2012-03-15 Startforce, Inc. Disposable virtual desktop for transient use by multiple users
US20130054817A1 (en) 2011-08-29 2013-02-28 Cisco Technology, Inc. Disaggregated server load balancing
US9730269B2 (en) * 2012-02-06 2017-08-08 Aruba Networks, Inc. Method and system for partitioning wireless local area network
US8990901B2 (en) 2012-05-05 2015-03-24 Citrix Systems, Inc. Systems and methods for network filtering in VPN
US9705729B2 (en) 2012-06-01 2017-07-11 Dell Products L.P. General client engine with load balancing for client-server communication

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997019415A2 (en) * 1995-11-07 1997-05-29 Cadis, Inc. Search engine for remote object oriented database management system
US6446137B1 (en) * 1996-01-10 2002-09-03 Sun Microsystems, Inc. Remote procedure call system and method for RPC mechanism independent client and server interfaces interoperable with any of a plurality of remote procedure call backends

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
XenRPC:虚拟机远程过程调用系统研究;彭萃芬;《中国优秀硕士学位论文全文数据库 信息科技辑》;20110415(第4期);21-31 *

Also Published As

Publication number Publication date
IN2014CN00715A (zh) 2015-04-03
US8862660B1 (en) 2014-10-14
WO2013019520A3 (en) 2014-05-08
US8910273B1 (en) 2014-12-09
US20130036451A1 (en) 2013-02-07
US9232015B1 (en) 2016-01-05
US9294544B1 (en) 2016-03-22
EP2740046A4 (en) 2015-02-18
CN104040523A (zh) 2014-09-10
US9225809B1 (en) 2015-12-29
WO2013019520A2 (en) 2013-02-07
EP2740046B1 (en) 2017-02-08
US9131011B1 (en) 2015-09-08
US8990342B2 (en) 2015-03-24
US8984617B1 (en) 2015-03-17
US20130036192A1 (en) 2013-02-07
US8904484B2 (en) 2014-12-02
EP2740046A2 (en) 2014-06-11

Similar Documents

Publication Publication Date Title
CN104040523B (zh) 促成基于网络过程调用的使用的客户端‑服务器通讯系统与方法
US9407725B2 (en) Generic transcoding service for client-server communication
US20160112420A1 (en) Runtime api framework for client-server communication
JP5958864B2 (ja) セキュアトンネル型プラットホームシステムおよび方法
CN102333110B (zh) 用于移动设备的具有动态翻译用户主页的vpn网络客户端
JP4712861B2 (ja) 非互換的トランスポートのセキュリティプロトコル
JP5754572B2 (ja) 双方向データストリーム用トランスポートとしてのハイパーテキスト転送プロトコルの使用
CN106972974B (zh) 一种电力LTE无线终端的Web网管系统及其终端认证方法
CN106031122A (zh) 一般代码转换服务
CN107426193A (zh) 一种https应用中针对硬件加速的新型I/O通路设计
CN104639503A (zh) 一种用于保护敏感信息的方法、装置和系统
CN103716280B (zh) 数据传输方法、服务器及系统
CN109040059A (zh) 受保护的tcp通信方法、通信装置及存储介质
CN110474922A (zh) 一种通信方法、pc系统及接入控制路由器
CN108306934A (zh) 一种跨服务器文件传输方法及系统
WO2024146554A1 (zh) 安全隧道的建立方法和电子设备
CN105635076B (zh) 一种媒体传输方法和设备
CN103401751B (zh) 因特网安全协议隧道建立方法和装置
CN103188356B (zh) 一种外网映射IPsec报文实现NAT穿越的方法
CN110474884B (zh) 以太坊网络系统及通信方法、设备及计算机可读存储介质
CN110620783B (zh) 一种基于nat内网穿透的互联网络串口透传通信方法
JP2011077887A (ja) パケット転送システム、パケット転送方法、通信装置及びパケット転送プログラム
CN107786411A (zh) 应用程序间通信隧道连接/验证方法/系统、介质及设备
KR101011987B1 (ko) 리눅스 서버 시스템을 위한 제이에스오엔-알피씨를 활용한 파이어월 보안설정 방법
CN109792445A (zh) 用于经由mprtp的rtp的标头扩展保存、安全性、认证及协议翻译的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220527

Address after: Texas, USA

Patentee after: DELL marketing

Address before: California, USA

Patentee before: WYSE TECHNOLOGY Inc.