KR20060120032A - 세션의 지속성과 신뢰성을 위한 프로토콜 캡슐화 - Google Patents

세션의 지속성과 신뢰성을 위한 프로토콜 캡슐화 Download PDF

Info

Publication number
KR20060120032A
KR20060120032A KR1020067006888A KR20067006888A KR20060120032A KR 20060120032 A KR20060120032 A KR 20060120032A KR 1020067006888 A KR1020067006888 A KR 1020067006888A KR 20067006888 A KR20067006888 A KR 20067006888A KR 20060120032 A KR20060120032 A KR 20060120032A
Authority
KR
South Korea
Prior art keywords
connection
protocol
service
client
ticket
Prior art date
Application number
KR1020067006888A
Other languages
English (en)
Inventor
아나톨리 파나슠
브레들리 제이 페더슨
데이빗 스톤
테리 트레더
Original Assignee
사이트릭스 시스템스, 인크.
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 사이트릭스 시스템스, 인크. filed Critical 사이트릭스 시스템스, 인크.
Publication of KR20060120032A publication Critical patent/KR20060120032A/ko

Links

Classifications

    • 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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • 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
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Manufacturing Of Micro-Capsules (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Seal Device For Vehicle (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Circuits Of Receivers In General (AREA)

Abstract

본 발명은 네트워크 통신에 관한 것이다. 복수의 이차 프로토콜을 캡슐화한 제1 프로토콜이 네트워크를 통해 통신하는 데에 이용된다. 제1 프로토콜의 이용으로 세션 지속성과 클라이언트와 호스트 서비스 간의 신뢰성 연결을 제공한다. 본 발명의 일 실시예에서, 제1 프로토콜 서비스와 호스트 서비스 간에 이차 프로토콜 중 하나를 이용하여 제2 연결이 설정된다. 제1 프로토콜 서비스와 호스트 서비스 간에는 이차 프로토콜 중 하나를 거쳐 통신이 이루어진다. 다른 실시예에서는 복수의 이차 프로토콜을 이용하여 제1 프로토콜 서비스와 복수의 호스트 서비스 간에 복수의 제2 연결이 설정된다. 구체적으로, 복수의 제2 연결 각각이 제1 프로토콜 서빗와 여러 호스트 서비스 간에 설정되고 복수의 제2 연결 각각은 복수의 이차 프로토콜 중 하나를 이용하여 설정된다. 제1 프로토콜 서비스와 복수의 호스트 서비스 간의 통신은 복수의 이차 프로토콜 중 하나를 거쳐 복수의 제2 연결 각각을 통해 이루어진다. 또 다른 실시예에서, 클라이언트와 제1 프로토콜 서비스 간의 제1 연결은 중간 노드를 통해 설정된다. 부가하여, 각 가상 채널은 원격 액세스 기능을 가능하게 하는 복수의 프로토콜 패킷을 포함할 수 있다.

Description

세션의 지속성과 신뢰성을 위한 프로토콜 캡슐화{ENCAPSULATING PROTOCL FOR SESSION PERSISTENCE AND RELIABILITY}
본 발명은 일반적으로 네트워크 통신에 관한 것으로, 더욱 특히는 다른 프로토콜을 캡슐화하여, 세션 지속성과 신뢰성을 제공하는 통신 프로토콜에 관한 것이다.
두 컴퓨터, 예를 들어, 클라이언트와 서버 간의 네트워크를 통한 통신은 공지의 각종 통신 프로토콜을 이용하여 구현될 수 있다. 그러나, 때로 네트워크 연결은 차단에 취약하다. 예를 들어, 클라이언트와 서버 간의 무선 연결은 보통 신뢰적이지 못하다. 다른 경우에, 네트워크 연결은 단속적일 수 있다. 예를 들어, 엘리베이터나 터널에 들어갈 때 끊길 수 있으며 엘리베이터나 터널에서 나올 때에만 복구 가능할 때가 있다.
많은 현재 프로토콜을 이용한 네트워크 연결을 통한 통신시, 데이터 패킷은 네트워크 연결이 끊어질 때 손실되게 된다. 예를 들어, 많은 현재 프로토콜은 표준 TCP 네트워크 연결을 통해 통신될 때, 데이터 버퍼는 통상 연결 끊김시 플러시된다. 이와 같이, 네트워크 연결이 복구되면, 네트워크 어플리케이션은 예를 들어, 끊김 이전의 상태부터 다시 시작할 수는 없다. 통상 에러 메시지가 표시되어, 유저에게 불편한 감을 주게 된다.
더구나, 많은 현재 프로토콜에 의한 네트워크를 통한 통신에서는 빈번한 전송 연결의 분리 및 재설정이 필요하게 된다. 예를 들어, HTTP를 이용하면, 고유의 프록시 프로토콜 상에서 또는 이와 관련해서, 표준 TCP 연결을 통한 웹사이트를 브라우즈한다는 것은, 각 리소스에 대한 새로운 HTTP 연결에 부가하여, 각 리소스에 대해 이전의 TCP/프록시 프로토콜 연결의 폐쇄와 새로운 TCP/프록시 연결의 개방을 요하게 된다.
더욱, 네트워크 연결이 실패하면, 보통 재기동하고 서버에 다시 로그온해야 만 통신을 재개할 수 있다. 예를 들어, 로그온을 재기입해야 한다. 이는 처리를 느리게 하고 또한 유저에게 비효율적이 된다.
따라서, 개선된 네트워크 통신의 시스템과 방법이 필요하다.
본 발명의 상기 및 그 외 목적, 형태, 특성 및 장점들은 첨부한 도면을 참조한 다음의 상세 설명을 참조하면 더욱 명백하게 되며 잘 이해될 것이다.
도 1A는 본 발명의 일 실시예에 따라 클라이언트에게 호스트 서비스와의 신뢰성 연결을 제공하기 위한 시스템의 블럭도이다.
도 1B는 본 발명의 다른 실시예에 따라 클라이언트에게 호스트 서비스와의 신뢰성 연결을 제공하기 위한 시스템의 블럭도이다.
도 2는 본 발명의 일 실시예에 따라 네트워크를 통해 발생하는 통신을 도시한다.
도 3은 본 발명의 다른 실시예에 따라 네트워크를 통해 발생하는 통신을 도시한다.
도 4는 본 발명의 일 실시예에 따라 네트워크를 통한 통신을 위해 제1 프로토콜 내의 복수의 이차 프로토콜을 캡슐화하기 위한 프로세스를 도시한다.
도 5는 본 발명의 일 실시예에 따라 클라이언트를 호스트 서비스와 재연결하기 위한 구성 요소를 더 포함하는 도 1A의 시스템의 블럭도이다.
도 6A는 본 발명의 일 실시예에 따라 클라이언트를 호스트 서비스에 초기 연결하기 위한 구성 요소를 더 포함하는 도 5의 시스템의 블럭도이다.
도 6B는 본 발명의 일 실시예에 따라 클라이언트를 호스트 서비스에 초기 연결하고 클라이언트를 호스트 서비스에 재연결하기 위한 구성요소를 더 포함하는 도 6 A의 시스템의 블럭도이다.
도 6C는 도 6B의 시스템의 다른 실시예의 블럭도이다.
도 7은 본 발명의 일 실시예에 따른 네트워크 통신 방법의 흐름도이다.
도 8A-8B는 본 발명의 일 실시예에 따라 클라이언트를 복수의 호스트 서비스에 연결하기 위한 방법의 흐름도이다.
도 9는 본 발명의 일 실시예에 따라 클라이언트에게 호스트 서비스와의 신뢰성 연결을 제공하고 클라이언트를 호스트 서비스에 재연결하기 위한 방법의 흐름도이다.
도 10A-10B는 본 발명의 일 실시예에 따라 클라이언트를 호스트 서비스에 재연결하기 위한 방법의 흐름도이다.
본 발명은 클라이언트에게 호스트 서비스와의 신뢰성 연결을 제공하기 위한 시스템 및 방법을 제공한다. 클라이언트와 호스트 서비스 간의 통신시 이용되는 이차 프로토콜을 캡슐화할 수 있는 제1 통신 프로토콜은 끊겨진 네트워크 연결 동안에 데이터가 보유되는 것을 확실히 한다. 더욱 특히, 클라이언트와 호스트 서비스 간에 통신되는 데이터는 버퍼링된다. 예를 들어, 모바일 클라이언트 등의 클라이언트가 동일한 네트워크에서 다른 액세스 지점 간에 로밍될 때, 이 버퍼링된 데이터가 임시 끊겨진 네트워크 연결 동안 보유되게 된다. 유사하게, 다른 예에서, 클라이언트는 네트워크 간에서 (예를 들어, 유선 네트워크에서 무선 네트워크로) 전환될 때, 이 버퍼링된 데이터가 일시적으로 끊어진 호스트 서비스와의 연결 동안 보유된다. 클라이언트가 네트워크 액세스 지점간이나 네트워크 자체 간에서 로밍할 때 버퍼링 데이터를 보유하는 데에 부가하여, 예를 들어, 네트워크 연결이 서버측 구성 요소의 이상 (예를 들어, 서버측 프록시의 이상) 또는 시스템의 타임아웃이나 그 외 이유로 인해 끊어질 때에, 이 버퍼링 데이터가 또한 보유될 수 있다. 따라서, 세션 지속성을 이루며 신뢰성이 보장된다.
본 발명의 제1 통신 프로토콜을 이용하게 되면 또한 제1 프로토콜이 통신되게 되는 전송 연결을 필요로 하지 않고 내부에 터널링되어 있는 이차 프로토콜 연결이 반복적으로 개방 및/또는 폐쇄되거나, 제1 프로토콜 연결 자체가 유사하게 반복하여 개방 및/또는 폐쇄되게 된다. 이와 같이, 시스템의 효율성을 개선한다.
더욱, 본 발명은 네티워크 연결의 끊어짐 이후에 클라이언트를 호스트 서비스에 재연결하기 위한 시스템 및 방법에 관한 것이다. 더욱 특히 클라이언트를 호스트 서비스에 재연결하기 위한 시스템 방법은 재연결 티켓을 이용하므로 유저 로그온의 재기입을 요하지 않는다. 이와 같이, 클라이언트를 호스트 서비스에 재연결하는 데에 필요한 시간을 단축할 수 있다.
일 형태에서, 본 발명은 일반적으로 네트워크 통신 방법에 관한 것이다. 이 방법은 제1 프로토콜을 이용하여 클라이언트와 제1 프로토콜 서비스 간의 제1 연결을 설정하고 제1 프로토콜 내에 캡슐화된 복수의 이차 프로토콜을 통해 클라이언트와 제1 프로토콜 서비스 사이에서 통신하는 단계를 포함한다. 더욱, 이차 프로토콜 중 적어도 하나는 복수의 가상 채널을 포함한다.
본 발명의 이 형태의 일 실시예에서, 이차 프로토콜 중 하나를 이용하여 제1 프로토콜 서비스와 호스트 서비스 간에 제2 연결이 설정된다. 이차 프로토콜 중 하나를 거쳐 제1 프로토콜 서비스와 호스트 서비스 간에 통신이 발생한다. 다른 실시예에서, 복수의 이차 프로토콜을 이용하여 제1 프로토콜 서비스와 복수의 호스트 서비스 간에 복수의 제2 연결이 설정된다. 특히, 복수의 제2 연결 각각은 제1 프로토콜 서비스와 여러 호스트 서비스 간에 설정되고, 복수의 제2 연결 각각은 복수의 이차 프로토콜 중 하나를 이용하여 설정된다. 복수의 이차 프로토콜 중 하나를 거쳐 복수의 제2 연결 각각을 통해 제1 프로토콜 서비스와 복수의 호스트 서비스 간에 통신이 발행한다. 또 다른 실시예에서는, 클라이언트와 제1 프로토콜 서비스 간의 제1 연결이 중간 노드를 통해 설정된다.
제1 프로토콜은 TCP/IP를 통해 통신되고 제2 프로토콜은 예를 들어, HTTP, RDP, ICA, FTP, Oscar, 또는 Telnet일 수 있다. 부가하여, 각 가상 채널은 원격 액세스 기능을 가능하게 하는 복수의 프로토콜 패킷을 포함한다.
일 실시예에서, 통신은 제1 프로토콜의 레벨에서 압축된다. 다른 실시예에서, 통신은 제1 프로토콜의 레벨에서 암호화된다. 또 다른 실시예에서, 제1 연결은 보안적이고 제1 프로토콜 서비스와 제1 호스트 서비스 간의 제2 연결이 설정되고, 제1 연결과 제2 연결을 통해 클라이언트와 제1 호스트 서비스 가 통신하고, 제2 연결이 차단되고, 제1 연결을 차단하지 않고 제1 프로토콜 서비스와 제2 호스트 서비스 간의 제3 연결이 설정되고, 제1 연결과 제3 연결을 거쳐 클라이언트와 제2 호스트 서비스가 통신한다.
다른 형태에서, 본 발명은 클라이언트에 호스트 서비스와의 신뢰성 연결을 제공하는 방법에 관한 것이다. 이 방법은 클라이언트와 제1 프로토콜 서비스 간의 제1 연결을 제1 프로토콜을 이용하여 설정하는 단계와 제1 프로토콜 서비스와 호스트 서비스 간의 제2 연결을 복수의 이차 프로토콜 중 하나를 이용하여 설정하는 단계를 포함한다. 제1 프로토콜은 복수의 이차 프로토콜을 캡슐화한다. 이 방법은 또한 클라이언트와 제1 프로토콜 서비스 중 적어도 하나에 제1 연결을 거쳐 가장 최근에 전송되는 데이터 패킷의 큐를 보유하는 단계를 더 포함하다. 제1 연결의 이상시에: 제2 연결이 보유되고, 제1 연결을 거쳐 가장 최근에 전송된 데이터 패킷의 큐가 계속하여 보유되고, 제1 프로토콜을 이용하여 클라이언트와 제1 프로토콜 서비스 간에 제3 연결이 설정된다.
본 발명의 이 형태의 일 실시예에서, 큐된 데이터 패킷 중 적어도 하나가 제3 연결을 통해 전송된다.
다른 형태에서, 본 발명은 클라이언트를 호스트 서비스에 재연결하는 방법을 제공한다. 이 방법은 클라이언트와 중간 노드 간에 제1 연결, 중간 노드와 제1 프로토콜 서비스 간의 제2 연결 및 제1 프로토콜 서비스와 호스트 서비스 간의 제3 연결을 제공한다. 제1 연결과 제2 연결 중 적어도 하나에 끊어짐이 검출된다. 클라이언트와 중간 노드 간의 제1 연결은 재설정되는 반면 제1 프로토콜 서비스와 호스트 서비스 간의 제3 연결은 유지된다. 제1 티켓과 제2 티켓이 또한 중간 노드에 수신된다. 제1 티켓이 확인된다. 제1 티켓이 확인된 후에, 중간 노드와 제1 프로토콜 서비스 간의 제2 연결이 재설정된다. 제2 티켓이 확인되고, 제2 티켓이 확인된 후에, 재설정된 제2 연결이 유지된 제3 연결에 링크된다.
본 발명의 이 형태의 일 실시예에서, 이 방법은, 제1 연결과 제2 연결 중 적어도 하나의 끊어짐이 검출된 후에, 제1 연결과 제2 연결 중 나머지 연결을 차단한다.
다른 형태에서, 제1 티켓은 중간 노드로부터 티켓 기관에 전송되고 제1 티켓이 티켓 기관을 이용하여 확인된다. 제1 티켓이 확인된 후에, 제1 프로토콜 서비스의 주소가 중간 노드에 수신된다. 또한, 제1 티켓은 확인된 후에 삭제될 수 있다. 제1 티켓이 삭제된 후에, 교체 제1 티켓이 형성될 수 있다.
또 다른 실시예에서, 제2 티켓은 중간 노드로부터 제1 프로토콜 서비스로 전송되고 제2 티켓은 제1 프로토콜 서비스를 이용하여 확인된다. 제2 티켓은 확인된 후에 삭제될 수 있다. 제2 티켓이 삭제된 후에, 교체 제2 티켓이 형성될 수 있다.
또 다른 실시예에서, 중간 노드는 제1 티켓에 대한 요청을 티켓 기관에 전송할 수 있다. 예를 들어, 난수일 수 있는 제1 티켓이 티켓 기관에서 형성될 수 있다. 티켓 기관은 또한 핸들을 형성하고 티켓 기관에서 제1 티켓의 카피, 핸들의 카피, 및 제1 프로토콜 서비스의 주소를 저장한다. 제1 티켓과 핸들은 티켓 기관으로부터 중간 노드로 전송될 수 있고, 이 노드는 다음에 제1 티켓을 클라이언트에 전송할 수 있다. 핸들은 티켓 기관에 저장된 제1 티켓의 카피를 삭제하는 데에 이용된다.
다른 실시예에서, 예를 들어, 난수인 제2 티켓은 제1 프로토콜 서비스에서 형성된다. 제2 티켓의 카피와 세션 번호는 제1 프로토콜 서비스에 저장된다. 제2 티켓은 제1 프로토콜 서비스에서 클라이언트에 전송된다. 부가하여, 제1 티켓과 제2 티켓 중 적어도 하나는 소정의 기간 후에 자동으로 삭제된다.
다른 형태에서, 본 발명은 클라이언트를 호스트 서비스에 재연결하는 방법을 제공한다. 이 방법은 클라이언트와 제1 중간 노드 간의 제1 연결, 제1 중간 노드와 제1 프로토콜 서비스 간의 제2 연결, 및 제1 프로토콜 서비스와 호스트 서비스 간의 제3 연결을 제공한다. 제1 연결과 제2 연결 중 적어도 하나에 끊어짐이 검출된다. 클라이언트와 제1 중간 노드와는 다른 제2 중간 노드 간의 제4 연결이 설정되는 반면 제1 프로토콜 서비스와 호스트 서비스 간의 제3 연결은 보유된다. 제1 티켓과 제2 티켓이 또한 중간 노드에 수신된다. 제1 티켓이 확인된다. 제1 티켓이 확인된 후에, 중간 노드와 제1 프로토콜 서비스 간의 제5 연결이 설정된다. 제2 티켓이 확인되고, 제2 티켓이 확인된 후에, 재설정된 제5 연결이 유지된 제3 연결에 링크된다.
다른 형태에서, 본 발명은 클라이언트를 호스트 서비스에 재연결하는 방법을 제공한다. 이 방법은 클라이언트와 제1 프로토콜 서비스 간에 제1 연결, 제1 프로토콜 서비스와 호스트 서비스 간의 제2 연결을 제공한다. 제1 연결에서 끊어짐이 검출된다. 클라이언트와 제1 프로토콜 서비스 간의 제1 연결은 재설정되는 반면 제1 프로토콜 서비스와 호스트 서비스 간의 제2 연결은 유지된다. 제1 티켓이 또한 제1 프로토콜 서비스에 수신된다. 티켓이 확인된다. 티켓이 확인된 후에, 재설정된 제1 연결은 유지된 제2 연결에 링크된다.
본 발명의 이 형태의 일 실시예에서, 티켓은 확인된 후에 삭제된다. 또한, 티켓이 삭제된 후에, 교체 티켓이 형성된다. 다른 실시예에서, 난수인 티켓이 제1 프로토콜 서비스에서 형성된다. 티켓의 카피와 세션 번호가 제1 프로토콜 서비스에 저장된다. 티켓은 또한 제1 프로토콜 서비스에서 클라이언트에 전송된다. 부가하여, 티켓은 미리 정해진 주기 이후에 자동 삭제된다.
다른 형태에서, 본 발명은 일반적으로 네트워크 통신을 위한 시스템에 관한 것이다. 이 시스템은 클라이언트와의 제1 연결을 수용하고 제1 프로토콜 내에 캡슐화된 복수의 이차 프로토콜을 거쳐 클라이언트와 통신하도록 구성된 제1 프로토콜 서비스를 포함한다. 더욱, 이차 프로토콜 중 적어도 하나는 복수의 가상 채널을 포함한다.
본 발명의 이 형태의 일 실시에서, 제1 프로토콜 서비스는 호스트 서비스와의 제2 연결을 설정하고 이차 프로토콜 중 하나를 거쳐 호스트 서비스와 통신하도록 더욱 구성된다. 다른 실시예에서, 제1 프로토콜 서비스는 복수의 이차 프로토콜을 이용하여 복수의 호스트 서비스와의 복수의 제2 연결을 설정하도록 더 구성된다. 구체적으로 복수의 제2 연결 각각은 여러 호스트 서비스로 설정되고 복수의 제2 연결 각각은 복수의 이차 프로토콜 중 하나를 이용하여 설정되고, 제1 프로토콜 서비스는 복수의 이차 프로토콜 중 하나를 거쳐 복수의 제2 연결 각각을 통해 복수의 호스트 서비스와 통신하도록 더욱 구성된다. 이 실시예에서, 클라이언트와의 제1 연결은 중간 노드를 통해 라우트된다.
제1 프로토콜은 TCP/IP를 통해 통신되고, 이차 프로토콜은 예를 들어, HTTP, RDP, ICA, FTP, Oscar 또는 Telnet일 수 있다. 부가하여, 각 가상 채널은 원격 액세스 기능을 가능하게 하는 복수의 프로토콜 패킷을 포함한다.
일 실시예에서, 제1 프로토콜 서비스는 제1 프로토콜의 레벨에서의 통신을 압축하도록 더 구성된다. 다른 실시예에서, 제1 프로토콜 서비스는 제1 프로토콜의 레벨에서의 통신을 암호화하도록 더 구성된다. 또 다른 실시예에서, 제1 연결은 보안적이며, 제1 프로토콜 서비스는 제1 호스트 서비스와의 제2 연결을 설정하고, 제1 연결을 차단하고, 제1 연결을 차단하지 않고 제2 호스트 서비스와의 제3 연결을 설정하도록 더 구성된다.
다른 형태에서, 본 발명은 클라이언트에 호스트 서비스와의 신뢰성 연결을 제공하기 위한 시스템에 관한 것이다. 이 시스템은 제1 프로토콜 서비스와 호스트 서비스를 포함한다. 제1 프로토콜 서비스는 클라이언트와의 제1 연결을 허용하고, 호스트 서비스와의 제2 연결을 설정하고, 제1 연결의 실패시, 제2 연결을 보유하게 클라이언트로부터 제3 연결을 허용하도록 구성된다. 호스트 서비스는 제1 프로토콜 서비스와의 제2 연결을 허용하고, 제1 연결의 실패시 제2 연결을 보유하도록 구성된다. 제1 연결과 제3 연결은 각각 제1 프로토콜을 이용하여 설정되고, 제1 프로토콜은 복수의 이차 프로토콜을 캡슐화하기 위한 것이다. 또한 클라이언트와 제1 프로토콜 서비스 중 적어도 하나는 제1 연결의 실패 이전과 실패시, 제1 연결을 통해 가장 최근에 전송되는 데이터 패킷의 큐를 보유하도록 더욱 구성된다.
본 발명의 이 형태의 일 실시예에서, 클라이언트는 제3 연결을 통해 큐된 데이터 패킷 중 적어도 하나를 전송하도록 더욱 구성된다. 다르게, 제1 프로토콜 서비스는 제3 연결을 통해 큐된 데이터 패킷 중 적어도 하나를 전송하도록 더욱 구성될 수 있다.
다른 형태에서, 본 발명은 클라이언트를 호스트 서비스에 재연결하는 시스템을 제공한다. 시스템은 클라이언트, 중간 노드, 제1 프로토콜 서비스를 포함한다. 클라이언트는 중간 노드와의 제1 연결을 유지하도록 구성된다. 중간 노드는 클라이언트와의 제1 연결 및 제1 프로토콜 서비스와의 제2 연결을 유지하도록 구성된다. 제1 프로토콜 서비스는 중간 노드와의 제2 연결 및 호스트 서비스와의 제3 연결을 유지하도록 구성된다. 이 시스템에 따르면, 제1 연결과 제2 연결 중 적어도 하나에 끊어짐이 검출되고, 제1 연결이 클라이언트와 중간 노드 사이에 재설정되는 반면 제1 프로토콜 서비스와 호스트 서비스 간의 제3 연결은 유지되고, 제1 티켓과 제2 티켓이 클라이언트로부터 중간 노드에 전송되고, 제1 티켓이 확인되고, 중간 노드와 제1 프로토콜 서비스 간의 제2 연결은 제1 티켓이 확인된 후에 재설정되고, 제2 티켓이 확인되고, 제2 티켓이 확인된 후에 재설정된 제2 연결이 유지된 제3 연결에 링크된다.
본 발명의 이 형태의 일 실시예에서, 제1 연결과 제2 연결 중 적어도 하나에 끊어짐이 검출된 후에, 제1 연결과 제2 연결 중 나머지 연결도 차단된다.
다른 실시예에서, 제1 티켓은 티켓 기관을 이용하여 확인된다. 티켓 기관은 예를 들어, 제1 티켓을 중간 노드로부터 수신하고 제1 티켓을 확인하도록 구성된다. 일 실시예에서, 중간 노드는 제1 티켓이 확인된 후에, 제1 프로토콜 서비스의 주소를 수신하도록 더 구성된다. 티켓 기관은 제1 티켓을 확인된 후에 삭제하도록 구성된다. 또한, 티켓 기관은 제1 티켓이 삭제된 후에 교체 제1 티켓을 형성하도록 구성된다.
다른 실시예에서, 제2 티켓은 제1 프로토콜 서비스를 이용하여 확인된다. 제1 프로토콜 서비스는 중간 노드로부터 제2 티켓을 수신하고 제2 티켓을 확인하도록 구성된다. 제1 프로토콜 서비스는 제2 티켓을 확인된 후에 삭제하도록 구성된다. 또한 제1 프로토콜 서비스는 제2 티켓이 삭제된 후에 교체 제2 티켓을 형성하도록 구성된다.
또 다른 실시예에서, 중간 노드는 제1 티켓에 대한 요청을 티켓 기관에 전송하도록 구성된다. 티켓 기관은 예를 들어 난수인 제1 티켓을 형성하도록 구성된다. 티켓 기관은 핸들을 형성하고 제1 티켓의 카피, 핸들의 카피, 및 제1 프로토콜 서비스의 주소를 저장하도록 구성된다. 티켓 기관은 제1 티켓과 핸들을 중간 노드에 전송하도록 구성되고, 다음에 제1 티켓을 클라이언트에 전송하도록 구성된다. 중간 노드는 또한 티켓 기관에 저장된 제1 티켓의 카피를 삭제하도록 핸들을 이용하도록 구성된다.
다른 실시예에서, 제1 프로토콜 서비스는 예를 들어, 난수인 제2 티켓을 형성하도록 구성된다. 제1 프로토콜 서비스는 제2 티켓의 카피, 핸들의 카피와 세션 번호를 저장하도록 구성된다. 다른 실시예에서, 제1 프로토콜 서비스는 제2 티켓을 클라이언트에 전송하도록 구성된다. 부가하여, 제1 티켓과 제2 티켓 중 적어도 하나는 미리 정해진 기간 이후 자동 삭제되게 구성된다.
다른 형태에서, 본 발명은 클라이언트를 호스트 서비스에 재연결하기 위한 시스템을 제공한다. 시스템은 클라이언트, 제1 중간 노드, 제1 프로토콜 서비스, 및 제2 중간 노드를 포함한다. 클라이언트는 제1 중간 노드와의 제1 연결을 유지하도록 구성된다. 제1 중간 노드는 클라이언트와의 제1 연결 및 제1 프로토콜 서비스와의 제2 연결을 유지하도록 구성된다. 제1 프로토콜 서비스는 제1 중간 노드와의 제2 연결 및 호스트 서비스와의 제3 연결을 유지하도록 구성된다. 이 시스템에 따르면, 제1 연결과 제2 연결 중 적어도 하나에 끊어짐이 검출되고, 제4 연결이 클라이언트와 제2 중간 노드 사이에 재설정되는 반면 제1 프로토콜 서비스와 호스트 서비스 간의 제3 연결은 유지되고, 제1 티켓과 제2 티켓이 클라이언트로부터 제2 중간 노드에 전송되고, 제1 티켓이 확인되고, 제2 중간 노드와 제1 프로토콜 서비스 간의 제5 연결은 제1 티켓이 확인된 후에 재설정되고, 제2 티켓이 확인되고, 제2 티켓이 확인된 후에 재설정된 제5 연결이 유지된 제3 연결에 링크된다.
다른 형태에서, 본 발명은 클라이언트를 호스트 서비스에 재연결하기 위한 시스템을 제공한다. 이 시스템은 클라이언트와 제1 프로토콜 서비스를 포함한다. 클라이언트는 제1 프로토콜 서비스와의 제1 연결을 유지하도록 구성된다. 중간 노드는 클라이언트와의 제1 연결 및 제1 프로토콜 서비스와의 제2 연결을 유지하도록 구성된다. 제1 프로토콜 서비스는 클라이언트와의 제1 연결 및 호스트 서비스와의 제2 연결을 유지하도록 구성된다. 이 시스템에 따르면, 제1 연결에 끊어짐이 검출되고, 제1 연결이 클라이언트와 제1 프로토콜 서비스 사이에 재설정되는 반면 제1 프로토콜 서비스와 호스트 서비스 간의 제2 연결은 유지되고, 티켓이 클라이언트로부터 제1 프로토콜 서비스에 전송되고, 티켓이 확인되고, 티켓이 확인된 후에 재설정된 제1 연결이 유지된 제2 연결에 링크된다.
본 발명의 이 형태의 일 실시예에서, 제1 프로토콜 서비스는 티켓이 확인된 후에 티켓을 삭제하도록 더 구성된다. 더욱, 제1 프로토콜 서비스는 티켓이 삭제된 후에 교체 티켓을 형성하도록 구성될 수 있다. 다른 실시예에서, 제1 프로토콜 서비스는 예를 들어 난수인 티켓을 형성하도록 더 구성된다. 제1 프로토콜 서비스는 티켓의 카피 및 세션 번호를 저장하도록 구성된다. 제1 프로토콜 서비스는 티켓을 클라이언트에게 전송하도록 구성된다. 부가하여, 미리 정해진 기간 이후 자동 삭제되게 구성될 수 있다.
본 발명의 특정 실시예를 이하 설명한다. 그러나, 본 발명은 이들 실시예에만 국한되지 않고 여기 기재되어 있는 것에 부가하거나 수정한 것이 또한 본 발명의 영역 내에 포함되는 것이다. 더욱, 여기 기재된 여러 실시예의 특성들은 본 발명의 정신 및 영역에서 벗어나지 않는 한, 상호 배타적이지 않으며 여러 조합 및 치환이 여기에 기재되어 있지는 않더라도, 이런 조합 및 치환이 존재할 수 있다는 것이 이해될 것이다.
도 1A를 참조하면, 일반적으로 본 발명은 네트워크 통신에 속하며 클라이언트에게 호스트 서비스와의 신뢰성 연결을 제공하는 데에 특히 유용하다. 광범위하게, 네트워크 통신용 시스템(100)은 네트워크(104)를 통해 제1 프로토콜 서비스(112) (예를 들어, 제2 컴퓨팅 장치)와 통신하는 원격 클라이언트(108) (예를 들어, 제1 컴퓨팅 장치)를 포함한다. 또한 시스템(100)에는 네트워크(104')를 통해 제1 프로토콜 서비스(112)와, 제1 프로토콜 서비스(112)를 거치고 네트워크(104)를 통해 클라이언트(108)와 통신하는 복수의 호스트 서비스(116a-116n) (예를 들어, 제3 컴퓨팅 장치)가 포함된다. 다르게, 본 발명의 다른 실시예에서는, 도 1B를 이하 참조하여, 제1 프로토콜 서비스(112) 및 호스트 서비스(116a-116n)가 도 1A에서와 같이, 개별의 컴퓨팅 장치로 구현되어 있지 않다. 그보다, 이들은 예를 들어, 호스트 노드(118a)와 같은 동일한 컴퓨팅 장치 내에 결합되어 있다. 시스템(100)은 하나, 둘 또는 임의 수의 호스트 노드(118a-118n)를 포함할 수 있다.
일 실시예에서, 네트워크(104 및 104')는 도 1A에서와 같이, 개별의 네트워크이다. 네트워크(104 및 104')는 도 1B에서와 같이, 동일한 네트워크(104)일 수 있다. 일 실시예에서, 네트워크(104) 및/또는 네트워크(104')는 예를 들어, 회사 인트라넷와 같은 근거리 통신망(LAN)이거나, 인터넷 또는 월드 와이드 웹과 같은 원거리 통신망 (WAN)이다. 원격 클라이언트(108), 제1 프로토콜 서비스(112), 호스트 서비스(116) 및/또는 호스트 노드(118)는 표준 전화망, LAN 또는 WAN 링크 (예를 들어, 802.11, T1, T3, 56kb, X.25), 광대역 연결 (예를 들어, ISDN, 프레임 릴레이, ATM), 무선 연결, 또는 상기한 것들의 임의의 조합을 포함하는 각종 연결을 거쳐 네트워크(104 및/또는 104')에 연결될 수 있다.
더욱, 클라이언트(108)는 어느 워크스테이션, 데스크톱 컴퓨터, 랩톱, 핸드헬드 컴퓨터, 모바일 전화기, 또는 그 외 통신가능하며 여기 기재된 동작을 실행하는 데에 충분한 프로세서 파워와 메모리 용량을 갖는 컴퓨팅이나 텔레커뮤니케이션 장치 형태일 수 있다. 클라이언트(108)는 예를 들어, 시각적 디스플레이 장치 (예를 들어, 컴퓨터 모니터), 데이터 기입 장치 (예를 들어, 키보드), 영구성 및/또는 휘발성 저장소 (예를 들어, 컴퓨터 메모리), 프로세서 및 마우스를 포함할 수 있다.
유사하게, 도 1A를 참조하면, 제1 프로토콜 서비스(112) 및 호스트 서비스(116) 각각은 통신이 가능하며 여기 기재된 동작을 실행하는 데에 충분한 프로세서 파워와 메모리 용량을 갖는 어느 컴퓨팅 장치 상에나 제공될 수 있다. 다르게, 제1 프로토콜 서비스(112) 및 호스트 서비스(116)의 기능은 도 1B에서와 같이 예를 들어, 호스트 노드(118)와 같은 동일한 컴퓨팅 장치에 결합되는 경우, 제1 프로토콜 서비스(112) 및/또는 호스트 서비스(116)는 일반 목적의 컴퓨터 및/또는 예를 들어, ASIC 또는 FPGA와 같은 특수 목적의 하드웨어 장치에서 실행되는 소프트웨어 프로그램으로 구현될 수 있으며, 호스트 노드(118)는 여기 기재된 동작을 실행하는 데에 충분한 프로세서 파워와 메모리 용량을 갖는 어느 컴퓨팅 장치나 가능하다.
일 실시예에서, 호스트 서비스(116) 각각은 클라이언트(108)가 원격 이용 가능한 하나 이상의 어플리케이션 프로그램을 호스트한다. 동일한 어플리케이션 프로그램은 하나나 임의수의 호스트 서비스(116)에 의해 호스트될 수 있다. 이런 어플리케이션의 예로는 MICROSOFT WORD와 같은 워드 처리 프로그램 및 MICROSOFT EXCEL와 같은 스프레드시트 프로그램을 포함하며, 이들 둘 다는 워싱톤 레드몬드 소재의 마이크로소프트사 제품이다. 임의의 또는 모든 호스트 서비스(116)로 호스트될 수 있는 어플리케이션 프로그램의 다른 예로는 재무 보고 프로그램, 소비자 등록 프로그램, 프로그램 제공 기술 지원 정보, 고객 데이터베이스 프로그램, 및 어플리케이션 세트 메시지를 포함한다. 더욱, 일 실시예에서, 호스트 서비스(116)는 클라이언트(108)에게 스트리밍 오디오 및/또는 스트리밍 비디오를 제공하는 오디오/비디오 스트리밍 서버이다. 다른 실시예에서, 호스트 서비스(116)는 클라이언트(108)에게 임의의/모든 파일 유형을 제공하는 파일 서버를 포함한다.
도 1A 및 도 1B의 실시예를 참조하면, 클라이언트(108)는 제1 프로토콜을 이용하여 네트워크(104)를 통해 클라이언트(108)와 제1 프로토콜 서비스(112) 간의 연결(120)를 설정하도록 구성된다. 그 일부에 대해, 제1 프로토콜 서비스(112)는 연결(120)를 수용하도록 구성된다. 따라서, 클라이언트(108) 및 제1 프로토콜 서비스(112)는 제1 프로토콜을 이용하여 서로 통신할 수 있다.
몇 실시예에서, 도 1A 및 도 1B에서 나타낸 바와 같이, 클라이언트 에이전트(128)는 클라이언트(108) 내에 포함된다. 클라이언트 에이전트(128)는 소프트웨어 프로그램 및/또는 예를 들어, ASIC 또는 FPGA와 같은 하드웨어 장치로 구현될 수 있다. 클라이언트 에이전트(128)는 어느 유형의 프로토콜이나 이용할 수 있으며, 예를 들어, 플로리다, 포트 라우더데일 소재의 Citrix Systems사의 HTTP 클라이언트 에이전트, FTP 클라이언트 에이전트, Oscar 클라이언트 에이전트, Telnet 클라이언트 에이전트, 인디팬던트 컴퓨팅 아키텍처 (ICA) 클라이언트 에이전트, 또는 워싱톤 레드몬드 소재의 마이크로소프트사의 원격 데스크톱 프로시져 (RDP) 클라이언트 에이전트일 수 있다. 몇 실시예에서, 클라이언트 에이전트(128) 자체는 제1 프로토콜을 이용하여 통신하도록 구성된다. (도시하지 않은) 몇 실시예에서, 클라이언트(108)는 복수의 클라이언트 에이전트(128a-128n)를 포함하고, 이들 각각은 각각 호스트 서비스(116a-116n)와 통신한다.
다른 실시예에서, 자립형 클라이언트 에이전트는 제1 프로토콜을 이용하여 클라이언트(108)가 통신할 수 있게 구성된다. 자립형 클라이언트 에이전트는 클라이언트(108) 내에 결합되거나, 이와 달리 자립형 클라이언트 에이전트는 클라이언트(108)와 별개일 수 있다. 자립형 클라이언트 에이전트는 예를 들어, 로컬 호스트 프록시이다. 일반적으로, 자립형 클라이언트 에이전트는 클라이언트 에이전트(128)과 관련하여 여기 기재된 기능을 구현할 수 있다.
또한 후술되는 바와 같이, 제1 프로토코로 서비스(112)는 일 실시예에서 제1 프로토콜을 이용하여 통신하도록 구성된다.
제1 프로토콜 서비스(112)는 각각 제1 프로토콜 서비스(112)와 호스트 서비스(116a-116n) 사이의 연결(124a-124n)을 설정하도록 구성된다. 예를 들어, 제1 프로토콜 서비스(112)는 제1 프로토콜 서비스(112)와 하나의 호스트 서비스(116a) 간의 연결(124a)과 제1 프로토콜 서비스(112)와 다른 호스트 서비스(116b) 간의 연결(124b)을 설정할 수 있다. 일 실시예에서, 제1 프로토콜 서비스(108)는 이런 연결(124a-124n)을 별개로 설정한다 (즉, 제1 프로토콜 서비스(112)는 한번에 하나의 연결을 설정한다). 다른 실시예에서, 제1 프로토콜 서비스(112)는 이런 연결(124a-124n) 중 둘 이상을 동시에 설정한다.
또 다른 실시예에서, 제1 프로토콜 서비스(112)는 클라이언트(108)와의 연결(120)을 차단하지 않고 둘 이상의 연결(124)를 제공하도록 구성된다. 예를 들어, 제1 프로토콜 서비스(112)는 클라이언트(108)의 유저가 호스트 서비스(116a) 상에 존재하는 제1 어플리케이션 프로그램의 실행을 요청할 때 제1 프로토콜 서비스(112)와 호스트 서비스(116a) 간의 연결(124a)을 설정하도록 구성될 수 있다. 유저가 제1 어플리케이션 프로그램의 실행을 종료하고 예를 들어, 호스트 서비스(116b)에 존재하는 제2 어플리케이션 프로그램의 실행을 개시하면, 제1 프로토콜 서비스(112)는 일 실시예에서, 제1 프로토콜 서비스(112)와 클라이언트(108) 간의 연결(120)을 끊지 않고도 연결(124a)를 차단하고 제1 프로토콜 서비스(112)와 호스트 서비스(116b) 간의 연결(124b)를 설정하도록 구성된다.
제1 프로토콜 서비스(112) 및 호스트 서비스(116a-116n)는 각각 이에만 한정되는 것은 아니지만, 플로리다, 포트 라우더데일 소재의 Citrix systems사의 HTTP, FTP, Oscar, Telnet, ICA 프리젠테이션 프로토콜 및/또는 워싱톤 레드몬드 소재의 마이크로소프트사의 RDP 프리젠테이션 프로토콜을 포함하는 각종 이차 프로토콜 중 어느 하나를 이용하여 연결(124a-124n)을 통해 통신할 수 있다. 예를 들어, 제1 프로토콜 서비스(112) 및 호스트 서비스(116a)는 ICA 프리젠테이션 프로토콜을 이용하여 연결(124a)을 통해 통신하는 반면, 제1 프로토콜 서비스(112)와 호스트 서비스(116b)는 RDP 프리젠테이션 프로토콜을 이용하여 연결(124b)을 통해 통신할 수 있다.
일 실시예에서, 제1 프로토콜 서비스(112)와 예를 들어, ICA 프리젠테이션 프로토콜과 같은 호스트 서비스(116) 사이에서 통신하는 데에 이용되는 이차 프로토콜은 복수의 가상 채널을 포함한다. 가상 채널은 데이터를 교체하기 위한 명령을 발하기 위해 어플리케이션 계층 코드에 의해 이용되는 세션 지향 전송 연결이다. 예를 들어, 복수의 가상 채널 각각은 원격 클라이언트(108)에서의 기능을 가능하게 하는 복수의 프로토콜 패킷을 포함할 수 있다. 일 실시예에서, 복수의 가상 채널 중 하나는 클라이언트(108)가 그래픽 유저 인터페이스를 표시하도록 하기 위해 제1 호스트 서비스(116)로부터 프로토콜 서비스(112)를 통해 클라이언트(108)에 그래픽 스크린 명령을 전송하기 위한 프로토콜 패킷을 포함한다. 다른 실시예에서, 복수의 가상 채널 중 하나는 문서가 클라이언트(108)에서 인쇄될 수 있도록 하기 위해, 호스트 서비스(116)로부터 제1 프로토콜 서비스(112)를 통해 클라이언트(108)에 프린터 명령을 전송하기 위한 프로토콜 패킷을 포함한다.
일 실시예에서, 제1 프로토콜은 터널링 프로토콜이다. 제1 프로토콜 서비스(112)는 제1 프로토콜 내에서, 호스트 서비스(116) 중 하나와 제1 프로토콜 서비스(112) 사이의 통신에 각각 이용되는 복수의 이차 프로토콜을 캡슐화한다. 이와 같이, 호스트 서비스(116)와 제1 프로토콜 서비스(112)는 복수의 이차 프로토콜을 통해 클라이언트(108)와 통신한다. 일 실시예에서, 제1 프로토콜은 예를 들어, TCP/IP 연결을 통해 다수의 이차 프로토콜을 터널링할 수 있는 어플리케이션 레벨 전송 프로토콜이다.
도 2를 참조하면, 개념적으로는 연결(120)을 통한 클라이언트(108)와 제1 프로토콜 서비스(112) 간의 통신은 제1 프로토콜(204) 내에 캡슐화된 복수의 이차 프로토콜(200a-200n) (예를 들어, HTTP, FTP, Oscar, Telnet, ICA 및/또는 RDP)의 형태를 취한다. 이것은 제1 프로토콜(204) 내측의 이차 프로토콜(200a-200n)의 위치로 나타낸다. 보안 통신이 요청되지 않는 곳에서, 제1 프로토콜(204)은 도 2에 나타낸 바와 같이, TCP 연결(208)을 통해 통신될 수 있다.
이하 도 3을 참조하여, 보안 통신이 이용되는 경우, 제1 프로토콜(204)은 예를 들어, 보안 소켓 계층(SSL; 216) 프로토콜을 이용하여 보안된 TCP 연결(212)과 같은 암호화된 연결을 통해 통신된다. SSL은 캘리포니아, 마운틴 뷰 소재의 네츠케이프 커뮤니케이션사에 의해 먼저 개발된 보안 프로토콜이며, 현재 전송 계층 보안 (TLS) 프로토콜로서 인터넷 엔지니어링 태스크 포스 (IETF)에 의해 발표되어 IETF RFC-2246에 기재된 표준이다.
따라서, 복수의 이차 프로토콜(200a-200n)은 연결(120)을 통해 보안 있이 (도 3) 또는 없이 (도 2) 제1 프로토콜(204) 내에서 통신된다.
일 실시예에서, 제1 프로토콜(204)은 예를 들어, HTTP 연결(200)과 같이 내부에 터널링된 이차 프로토콜 연결(200)이 제1 프로토콜(204)이 통신되는 전송 연결 (예를 들어, TCP 연결(208 및/또는 212))을 필요로 하지 않고 반복적으로 개방 및/또는 폐쇄되도록 하며, SSL 프로토콜 연결(216)이나 제1 프로토콜 연결(204) 자체도 반복적으로 개방 및/또는 폐쇄되게 한다.
도 4를 참조하면, 제1 프로토콜 서비스(112) 및 클라이언트(108)의 클라이언트 에이전트(128)에 의해 이용되는 예시의 프로세스(300)는 연결(120)을 통한 통신을 위해 제1 프로토콜(204) 내에 복수의 이차 프로토콜(200) (예를 들어, HTTP, FTP, Oscar, Telnet, ICA 및/또는 RDP)을 캡슐화한다. 선택적으로, 후술되는 바와 같이, 제1 프로토콜 서비스(112)와 클라이언트(108)의 클라이언트 에이전트(128)에 의해 이용되는 예시의 프로세스(300)는 연결(120)을 통한 통신 이전에 제1 프로토콜의 레벨에서의 통신을 압축 및/또는 암호화한다. 제1 프로토콜 서비스(112)의 관점에서, 이차 프로토콜 패킷(304)은 제1 프로토콜 서비스(112)에서의 연결(124)을 통해 수신된다. 예를 들어, 두 개의 이차 프로토콜 패킷(304a 및 304b)은 제1 프로토콜 서비스(112)에 의해 수신된다. 하나, 둘, 또는 임의수의 이차 프로토콜 패킷(304)이 수신될 수 있다. 일 실시예에서, 이차 프로토콜 패킷(304)은 호스트 서비스(116)에 의해 연결(124)을 통해 제1 프로토콜 서비스(112)에 전송된다. 이차 프로토콜 패킷(304)은 헤더(308)와 데이터 페이로드(312)를 포함한다.
이차 프로토콜 패킷(304)의 수신에 이어, 제1 프로토콜 서비스(112)는 제1 프로토콜 패킷(316) 내의 이차 프로토콜 패킷(304) 중 하나나 둘을 캡슐화한다. 일 실시예에서, 제1 프로토콜 서비스(112)는 제1 프로토콜 패킷 헤더(320)를 형성하며 제1 프로토콜 패킷(316)의 데이터 페이로드(324) 내에 예를 들어, 두 개의 이차 프로토콜 패킷(304a 및 304b)와 같은 하나나 두개의 이차 프로토콜 패킷(304)를 캡슐화한다. 다른 실시예에서는, 하나의 이차 프로토콜 패킷(304a)만이 각 제1 프로토콜 패킷(316)에 캡슐화된다.
일 실시예에서, 제1 프로토콜 패킷(316)은 연결(120)을 통해, 예를 들어, 도 2와 관련하여 기재된 연결(208)을 통해 클라이언트(108)의 클라이언트 에이전트(128)에 전송된다. 다르게, 다른 실시예에서는, 제1 프로토콜 서비스(112)가 또한 제1 프로토콜 패킷(316)의 전송 이전에 제1 프로토콜(204)의 레벨에서의 통신을 암화화도록 구성되게 된다. 이런 일 실시예로, 제1 프로토콜 패킷(316)은 예를 들어, 도 3을 참조하여 기재된 SSL 프로토콜을 이용하여 암호화된다. 결과적으로, 데이터 페이로드(336)로 헤더(332) 및 암호화된 제1 프로토콜 패킷(316')을 포함하는 보안 패킷(328)이 형성된다. 보안 패킷(328)은 예를 들어, 도 3에 나타낸 보안 TCP 연결(212)를 통해 연결(120)을 통해 클라이언트(108)의 클라이언트 에이전트(128)에 전송될 수 있다.
다른 실시예에서, 제1 프로토콜 서비스(112)는 또한 제1 프로토콜 패킷(316)의 전송 이전에, 제1 프로토콜(204)의 레벨에서의 통신을 압축하도록 구성된다. 일 실시예에서, 제1 프로토콜 패킷(316)을 암호화하기 전에, 제1 프로토콜 서비스(112)는 표준 압착 기술을 이용하여, 제1 프로토콜 패킷(316)을 압축한다. 이와 같이, 시스템(100)의 효율성이 개선된다.
도 1A-1B를 다시 참조하면, 본 발명의 시스템(100)은 일 실시예에서, 원격 클라이언트(108)에게 예를 들어, 호스트 서비스(116a)와 같은 호스트 서비스(116)와의 신뢰성 연결을 제공한다. 예를 들어, 클라이언트(108)가 클라이언트(108)와 제1 프로토콜 서비스(112) 사이의 연결(120)을 설정하고, 제1 프로토콜 서비스(112)가 제1 프로토콜 서비스(112)와 호스트 서비스(116a) 간의 연결(124a)를 설정하면, 클라이언트 에이전트(128), 제1 프로토콜 서비스, 또는 둘 다는 연결(120)을 통해 가장 최근에 전송된 제1 프로토콜 데이터 패킷의 큐를 유지하도록 구성된다. 예를 들어, 큐된 데이터 패킷은 연결(120)의 실패 이전이나 실패시에 클라이언트 에이전트(128) 및/또는 제1 프로토콜 서비스(112)에 의해 보유될 수 있다. 더구나, 연결(120)의 실패시, 제1 프로토콜 서비스(112) 및 유사하게 호스트 서비스(116a)는 연결(124a)을 보유하도록 구성된다.
연결(120)의 실패에 이어서, 클라이언트(108)는 어느 데이터나 손실하지 않고도 제1 프로토콜 서비스(112)와의 새로운 연결(120)을 설정한다. 더욱 상세하게 설명하면, 연결(124a)이 연결(120)의 실패시 보유되기 때문에, 새로 설정된 연결(120)은 이 보유된 연결(124a)에 링크될 수 있다. 또한, 가장 최근에 전송된 제1 프로토콜 데이터 패킷이 큐되기 때문에, 이들은 새로 설정된 연결(120)을 통해 클라이언트(108)에 의해 제1 프로토콜 서비스(112)에 및/또는 제1 프로토콜 서비스(112)에 의해 클라이언트(108)에 전송될 수 있다. 이와 같이, 제1 프로토콜 서비스(112)를 통한 호스트 서비스(116a)와 클라이언트(108) 사이의 통신 세션은 데이터 손실 없이 지속 진행된다.
일 실시예에서, 클라이언트(108)의 클라이언트 에이전트(128) 및/또는 제1 프로토콜 서비스(112)는 이들이 연결을 통해 전송하는 데이터 패킷를 넘버링한다. 예를 들어, 클라이언트 에이전트(128)와 제1 프로토콜 서비스(112) 각각은 개별적으로 그 자신의 전송된 데이터를 패킷을, 다른 것이 그 데이터 패킷을 어떻게 넘버링하는지에 상관하지 않고 넘버링한다. 더욱, 데이터 패킷의 넘버링은 데이터 패킷의 재넘버링 없이 절대적일 수 있는데, 즉 클라이언트 에이전트(128) 및/또는 제1 프로토콜 서비스(112)에 의해 전송된 제1 데이터 패킷은 번호 1로 넘버링될 수 있으며, 각 데이터 패킷은 그 후에 연속하여 넘버링된 클라이언트 에이전트(128) 및/또는 제1 프로토콜 서비스(112)에 의해 각각 연결(120)을 통해 전송된다.
이런 일 실시예에서는, 끊겨져 재설정된 연결(120)에 이어서, 클라이언트 에이전트(128) 및/또는 제1 프로토콜 서비스(112)는 다른 것에게 필요로 하는 다음 데이터 패킷을 다른 것에게 알린다. 예를 들어, 클라이언트 에이전트(128)가 연결(120)의 끊김 이전에 데이터 패킷 번호 1-10을 수신하는 경우, 클라이언트 에이전트(128)는 연결(102)의 재설정시, 제1 프로토콜 서비스(112)에게 데이터 패킷 번호 11를 현재 필요로 한다고 알려준다. 유사하게, 제1 프로토콜 서비스(112)는 또한 이와 같이 동작할 수 있다. 다르게, 이런 다른 실시예에서는, 클라이언트 에이전트(128) 및/또는 제1 프로토콜 서비스(112)는 다른 것에게 수신된 마지막 데이터 패킷을 알려준다. 예를 들어, 클라이언트 에이전트(128)가 연결(120)의 끊김 이전에 데이터 패킷 번호 1-10을 수신하는 경우, 클라이언트 에이전트(128)는 연결(120)의 재설정시 제1 프로토콜 서비스(112)에게 데이터 패킷 번호 10를 마지막에 수신했다고 알려준다. 다시, 제1 프로토콜 서비스(112)는 또한 이와 같이 동작할 수 있다. 또 다른 실시예에서, 클라이언트 에이전트(128) 및/또는 제1 프로토콜 서비스(112)는 다른 것에게 연결(120)의 재설정시 수신된 마지막 데이터 패킷과 필요로 하는 다음 데이터 패킷을 알려준다.
이런 실시예에서는, 연결(120)의 재설정시, 클라이언트 에이전트(128) 및/또는 제1 프로토콜 서비스(112)는 다른 것에 의해 수신되지 않은 버퍼링 데이터 패킷을 재전송할 수 있어, 호스트 서비스(116)와 클라이언트(108) 사이의 통신 세션이 제1 프로토콜 서비스(112)를 통해 데이터 손실 없이 진행될 수 있게 한다. 더욱, 연결(120)의 재설정시, 클라이언트 에이전트(128) 및/또는 제1 프로토콜 서비스(112)는 이들의 각 버퍼로부터 다른 것에 의해 수신된 것으로 현재 알려진 버퍼링 데이터 패킷을 플러시할 수 있다.
도 5는 상술된 바와 같이, 클라이언트(108)를 호스트 서비스(116)에 재연결할 수 있는 시스템(400)의 다른 실시예를 도시한다. 상술되어 있는 네트워크(104 및 104'), 클라이언트(108), 제1 프로토콜 서비스(112) 및 호스트 서비스(116)에 부가하여, 시스템(400)은 중간 노드(132), 및 티켓 기관(136)을 더 포함한다. 일 실시예에서, 중간 노드(132)는 예를 들어, 클라이언트(108)와 제1 프로토콜 서비스(112) 간의 메시지가 네트워크(104)의 구성으로 인해 통과해야 하는 방화벽 및/또는 라우터와 같은 보안 게이트웨이이다. 티켓 기관(136)은 나타낸 바와 같이, 통신이 가능하며 여기 기재된 동작을 실행하는 데에 충분한 프로세서 파워와 메모리 용량을 갖는 자립형 네트워크 구성 요소일 수 있다.
도 5의 실시예에서 나타낸 바와 같이, 중간 노드(132)는 클라이언트(108)에 의해 초기화된 연결(120a)을 수용하며 제1 프로토콜 서비스(112)와의 제2 연결(120b)을 설정하도록 구성된다. 이와 함께, 연결(120a) 및 제2 연결(120b)은 상술된 바와 같이, 제1 프로토콜을 이용하여 클라이언트(108)와 제1 프로토콜 서비스(112)가 통신하는 연결(120)을 구성한다.
나타낸 바와 같이, 중간 노드(132)는 티켓 기관(136)과 통신하도록 구성된다. 일 실시예에서, 티켓 기관(136)은 중간 노드(132)로부터의 제1 재연결 티켓의 요청을 수신하고 그 후에 제1 재연결 티켓을 형성하도록 구성된다. 제1 재연결 티켓은 예를 들어, 큰 난수를 포함할 수 있다.
다른 실시예에서, 티켓 기관(136)은 핸들을 형성하도록 구성된다. 핸들은 예를 들어, 제1 재연결 티켓과 관련 (예를 들어, 매핑)되는 난수일 수 있다. 일 실시예에서, 핸들은 제1 재연결 티켓을 형성하는 난수 보다 더 작은 나수이다. 예를 들어, 핸들은 32비트 난수일 수 있다. 티켓 기관(136)은 제1 재연결 티켓의 카피와 핸들의 카피를 유지하면서, 제1 재연결 티켓과 핸들을 중간 노드(132)에 전송한다. 제1 재연결 티켓의 카피는 클라이언트(108)을 재연결하는 프로세스 동안 티켓 기관(136)에 나중에 제시될 때 클라이언트(108)에게 원래 전송된 제1 재연결 티켓을 확인하기 위해서 티켓 기관(136)에 의해 나중에 이용된다. 일 실시예에서, 티켓 기관(136)은 제1 프로토콜 서비스(112)의 주소를 유지하고, 이는 후술되는 바와 같이, 제1 재연결 티켓과 관련되며, 제1 재연결 티켓의 확인시 중간 노드(132)에 전송된다.
일 실시예에서, 중간 노드(132)는 또한 티켓 기관(136)에 유지된 제1 재연결 티켓의 카피를 삭제하기 위해 티켓 기관(136)에 의해 전송된 핸들을 이용하도록 구성된다. 다른 실시예에서는 후술되는 바와 같이, 티켓 기관(136)은 클라이언트(108)를 호스트 서비스(116)에 연결하는 프로세스 동안, 제1 재연결 티켓을 삭제한 후에 교체 제1 재연결 티켓을 형성하도록 구성된다. 부가하여, 다른 실시예에서, 제1 재연결 티켓은 미리 결정된 기간 이후 자동 삭제되게 구성된다.
다른 실시예에서, 제1 프로세스 서비스(112)는 제2 재연결 티켓을 형성하도록 구성되고, 이는 제1 재연결 티켓의 경우와 같이, 예를 들어, 큰 난수를 포함할 수 있다. 제1 프로토콜 서비스(112)는 또한 제2 재연결 티켓과 세션 번호의 카피를 유지하면서, 제2 재연결 티켓을 클라이언트(108)에 전송하도록 구성될 수 있다. 제2 재연결 티켓의 카피는 나중에 클라이언트(108)를 재연결하는 프로세스 동안 나중에 제1 프로토콜 서비스(112)에 제시될 때 클라이언트(108)에게 원래 전송되었던 제2 재연결 티켓을 확인하기 위해서 제1 프로토콜 서비스(112)에 의해 이용된다. 일 실시예에서, 제1 프로토콜 서비스(112)는 중간 노드(132)를 거쳐 제2 재연결 티켓을 클라이언트(108)를 전송한다. 다른 실시예에서, 제1 프로토콜 서비스(112)는 제2 재연결 티켓을 클라이언트(108)에 직접 전송한다. 더구나, 이하 더욱 상세히 설명되는 바와 같이, 제1 프로토콜 서비스(112)는 클라이언트(108)를 호스트 서비스(116)에 재연결하는 프로세스 동안, 제2 재연결 티켓을 삭제하고, 그 후에 교체 제2 재연결 티켓을 형성하도록 구성될 수 있다. 부가하여, 다른 실시예에서, 제2 재연결 티켓은 미리 결정된 기간 이후 자동 삭제되게 구성된다.
일 실시예에서, 중간 노드(132)는 제1 및 제2 재연결 티켓을 위한 중간자로 작용한다. 중간 노드(132)는 예를 들어, 티켓 기관(136)에 의해 형성된 제1 재연결 티켓과 제1 프로토콜 서비스(112)에 의해 형성된 제2 재연결 티켓을 수신한다. 중간 노드(132)는 다음에 제1 재연결 티켓과 제2 재연결 티켓을 클라이언트(108)에 전송할 수 있다. 더욱, 클라이언트(108)를 호스트 서비스(116)에 재연결하는 프로세스 중에, 중간 노드(132)는 제1 재연결 티켓 및 제2 재연결 티켓을 클라이언트(108)로부터 수용한 후에 티켓 기관(136)에 제1 재연결 티켓을, 적당하다면 제2 재연결 티켓을 제1 프로토콜 서비스(112)에 전송할 수 있다.
클라이언트(108)를 호스트 서비스(116)에 재연결하는 프로세스 및 제1 및 제2 재연결 티켓의 이용을, 도 7-10을 참조하여 후술되는 방법을 참조하여 이하 설명한다.
도 6A를 참조하면, 네트워크 통신을 위한 시스템(500)의 다른 실시예는 상술된 바와 같이, 네트워크(104 및 104'), 클라이언트(108), 제1 프로토콜 서비스(112), 호스트 서비스(116), 중간 노드(132) 및 티켓 기관(136)을 포함하고, 또한 제1 컴퓨팅 노드(140)와 제2 컴퓨팅 노드(144)를 도시하고 있으며, 이들 둘다는 일 실시예에서, 클라이언트(108)를 호스트 서비스(116)에 초기 연결하기 위해 이용된다. 더욱, 도 6A의 실시예에서, 클라이언트(108)는 예를 들어, 월드 와이드 웹에 연결하기 위해 워싱톤 레드몬드 소재의 마이크로소프트사의 INTERNET EXPLORER 프로그램과 같은 웹 브라우저(148)를 더 포함한다.
일 실시예 (도시 생략)에서, 시스템(500)은 둘 이상의 중간 노드(132) 및/또는 둘 이상의 제1 프로토콜 서비스(112)를 포함한다. 클라이언트(108)와 제1 프로토콜 서비스(112) 간에 메시지가 통과해야 하는 중간 노드(132) 및/또는 제1 프로토콜 서비스(112)는 후술되는 바와 같이, 예를 들어 부하 균형 방정식에 기초하여 선택될 수 있다.
제1 컴퓨팅 노드(140)와 제2 컴퓨팅 노드(144) 각각은 통신이 가능하며 여기 기재된 동작을 실행하는 데에 충분한 프로세서 파워와 메모리 용량을 갖는 어느 컴퓨팅 장치나 가능하다. 예를 들어, 일 실시예에서, 제1 컴퓨팅 노드(140)는 하나 이상의 웹 사이트를 제공하는 웹 서버이다. 다른 실시예에서, 제2 컴퓨팅 노드(144)는 XML 서비스를 제공한다.
일 실시예에서, 클라이언트(108) 및 네트워크(104)는 파선으로 나타낸 제1 방화벽(156)에 의해 시스템(500)의 나머지와는 별개인, 외부 네트워크(152)를 형성한다. 중간 노드(132) 및 제1 컴퓨팅 노드(140)는 점선으로 또한 나타낸 제1 방화벽(156) 및 제2 방화벽(164)으로 시스템(500)의 나머지와 분리된 "비무장 지대"(160) (즉, 회사의 개인망과 공중망 간에 위치된 네트워크 영역)에 위치될 수 있다. 다음에, 나타낸 바와 같이, 네트워크(104'), 제1 프로토콜 서비스(112), 호스트 서비스(116a-116n), 티켓 기관(136), 및 제2 컴퓨팅 노드(144)는 제2 방화벽(164)에 의해 시스템(100)의 나머지와 분리된 내부 네트워크(168)를 형성한다.
다르게, 도 6B를 참조한 다른 실시예에서, 시스템(500)은 네트워크(104)와 중간 노드(132) 사이에, 비무장 지대에 위치된 제3 컴퓨팅 노드(146)를 더 포함한다. 제3 컴퓨팅 노드(146)는 네트워크화 통신이 가능하며 여기 기재된 동작을 실행하는 데에 충분한 프로세서 파워와 메모리 용량을 갖는 어느 컴퓨팅 장치가 가능하다. 후술되는 바와 같이, 제3 컴퓨팅 노드(146)는 몇 실시예에서는 클라이언트(108)를 호스트 서비스(116)에 초기 연결하는 프로세스 및/또는 클라이언트(108)를 호스트 서비스(116)에 재연결하는 프로세스 동안 이용된다. 더욱 구체적으로, 후술되는 바와 같이, 시스템이 둘 이상의 중간 노드(132)를 포함하는 경우, 제3 컴퓨팅 노드(146)는 부하 균형 방정식에 기초하여, 클라이언트의(108)의 클라이언트 에이전트(128)와 제1 프로토콜 서비스(112) 간의 통신이 통과해야 하는 중간 노드(132)를 선택할 수 있다.
더욱, 도 6C를 참조하면, 도 6B의 중간 노드(132)는 다른 실시예에서, 중간 노드(132)의 둘 이상의 레벨 "a"-"n"로 대체될 수 있다. 나타낸 바와 같이, 각 레벨 "a"-"n"은 둘 이상의 중간 노드(132a-132n)를 포함할 수 있다. 후술되는 바와 같이, 클라이언트(108)의 클라이언트 에이전트(128)는 예를 들어, 부하 균형 방정식에 기초하여 중간 노드(132)의 조합을 통해 라우트될 수 있다. 예를 들어, 나타낸 바와 같이, 클라이언트 에이전트(128)는 연결(122)을 통해 중간 노드(132)를 거쳐 라우트된다. 시스템(500)의 다른 구성이 당업자에게는 명백하게 되는 바와 같이, 또한 가능하다.
도 6A를 다시 참조하면, 일 실시예에서, 웹 브라우저(148)는 제1 컴퓨팅 노드(140)과 네트워크(104)를 통해 통신하고, 이 노드 자체는 제2 컴퓨팅 노드(144)와 티켓 기관(136)과 인터페이스한다. 더욱 구체적으로, 제1 컴퓨팅 노드(140)는 제2 컴퓨팅 노드와 티켓 기관(136)의 주소로 구성된다. 일 실시예에서, 후술되는 바와 같이, 제1 컴퓨팅 노드(140)는 클라이언트(108)의 웹 브라우저(148), 제2 컴퓨팅 노드(144) 및 티켓 기관(136) 사이의 정보를 릴레이하고, 이로 인해 직접적인 통신을 방지하도록 구성된다. 이렇게 직접적 통신을 방지함으로써, 제1 컴퓨팅 노드(140)는 부가의 보안 레벨을 시스템(500)에 부가한다. 제1 컴퓨팅 노드(140)는 또한 중간 노드(132)의 주소, 또는 둘 이상의 중간 노드(132)의 주소로 구성될 수 있다.
제2 컴퓨팅 노드(144)는 호스트 서비스(116)에서 실행되는 어플리케이션 프로그램 중 어느 것이 클라이언트(108)의 유저에게 가능한지를 결정하도록 구성된다. 다시 말해, 제2 컴퓨팅 노드(144)는 어플리케이션 프로그램 중 어느 것을 유저가 액세스하도록 인가되었는지를 판정하도록 구성된다. 일 실시예에서, 유저가 그의 원하는 어플리케이션 프로그램을 선택한 후에, 제2 컴퓨팅 노드(144)는 호스트 서비스 중 어느 것이 부하 균형의 목적을 위해 유저가 원하는 어플리케이션을 실행하는 데에 이용되게 되는지를 결정하도록 구성된다. 제2 컴퓨팅 노드(144)는 그 호스트 서비스(116)의 주소를 제1 컴퓨팅 노드(140)로 보낸다. 제2 컴퓨팅 노드(144)는 또한 부하 균형 방정식을 이용하여 복수의 제1 프로토콜 서비스(112) 중에서 선택될 수 있는 제1 프로토콜 서비스(112)의 주소를, 제1 컴퓨팅 노드(140)로 보낸다. 다음에, 제1 컴퓨팅 노드(140)는 선택된 제1 프로토콜 서비스(112)와 선택된 호스트 서비스(116)의 주소를 티켓 기관(136)에 전송한다.
티켓 기관(136)은 연결 티켓을 형성한다. 일 실시예에서, 티켓 기관(136)은 클라이언트(108)에의 전송을 위해 초기 연결 티켓을 제1 컴퓨팅 노드(140)에 전송한다. 다른 실시예에서, 티켓 기관은 제1 재연결 티켓을 중간 노드(132)에 전송한다.
클라이언트(108)를 호스트 서비스(116)에 초기 연결하는 프로세스 및 티켓 기관(136), 제1 컴퓨팅 노드(140), 제2 컴퓨팅 노드(144) 및 제3 컴퓨팅 노드(146)의 역활을 후술한다.
이하 도 7을 참조하여, 도 6A-6C의 실시예를 이용하여 네트워크 통신을 위한 방법(600)의 일 실시예를 나타낸다. 단계 604에서, 클라이언트(108)는 예를 들어, 후술되는 방법(700)을 이용하여 복수의 호스트 서비스(116)를 초기 연결한다. 클라이언트(108)가 복수의 호스트 서비스(116)에 연결된 후에, 클라이언트(108)와 호스트 서비스(116)는 제1 프로토콜 서비스(112)를 통해 그리고 단계 608에서 제1 프로토콜 내에 캡슐화된 복수의 이차 프로토콜을 통해 통신하다. 일 실시예에서, 제1 프로토콜 서비스(112)는 제1 프로토콜 패킷의 전송 이전에 제1 프로토콜(204)의 레벨에서의 통신을 암호화하고, 이로 인해 통신을 보안하게 된다. 다른 실시예에서, 제1 프로토콜 서비스(112)는 제1 프로토콜 패킷의 전송 이전에, 제1 프로토콜의 레벨에서의 통신을 압축하고, 이로 인해 통신 효율을 개선할 수 있다.
단계 612에서, 클라이언트 에이전트(128)는 클라이언트 에이전트(128)와 제1 프로토콜 에이전트(112) 간의 연결(120)이 실패했는지를 판정한다. 예를 들어, 클라이언트 에이전트(128)와 중간 노드(132) 사이의 연결(120a)이 실패할 수 있고, 중간 노드(132)와 제1 프로토콜 서비스(112) 간의 연결(120b)이 실패할 수 있고, 또는 연결(120a)과 연결(120b) 둘 다가 실패할 수 있다. 클라이언트 에이전트(128)가 연결(120)이 실패하지 않았다고 결정하게 되면, 이 방법(600)은 단계(620)으로 진행한다. 한편, 클라이언트 에이전트(128)가 연결(120)이 실패했다고 결정하면, 단계 616에서 클라이언트(108)에 호스트 서비스(116)와의 신뢰성 연결이 제공되어 호스트 서비스(116)에 재연결된다.
단계 620에서, 클라이언트(108)가 제1 프로토콜 서비스(112)와의 연결(120)을, 이에 이어서 호스트 서비스(116)와의 연결(124a-124n)을 종료하길 원하는지가 결정된다. 그렇지 않다면, 제1 프로토콜 내에 캡슐화된 복수의 이차 프로토콜을 거친 클라이언트(108)와 제1 프로토콜 서비스(112) 간의 통신이 단계 608에서 계속된다. 그렇다면, 단계 624에서, 모든 연결(120a, 120b 및 124a-124n)이 파손되고 모든 연결 티켓이 삭제된다. 일 실시예에서, 중간 노드(132)는 티켓 기관(136)으로부터 수신한 핸들을 이용하여 티켓 기관(136)에서 유지된 제1 재연결 티켓의 카피를 삭제한다. 다른 실시예에서, 제1 프로토콜 서비스(112)는 제1 프로토콜 서비스(112)에 유지된 제2 재연결 티켓의 카피를 삭제한다.
다른 실시예에서는, 동일한 이유로 이차 프로토콜 연결(124)이 실패하면, 이와 관련되어 제1 프로토콜 서비스(112)에 유지되는 이차 재연결 티켓의 카피가 제1 프로토콜 서비스(112)에 의해 삭제된다. 또 다른 실시예에서, 제1 재연결 티켓 및/또는 제2 재연결 티켓은 단계 612에서와 같이 연결(12)의 실패 및/또는 단계 620에서와 같이 완전한 연결 종료 이후 미리 정해진 주기 경과 후에 자동으로 삭제된다.
도 8A-8C을 참조하면, 도 6A-6C의 예시의 실시예를 이용하여 클라이언트(108)를 호스트 서비스(116)에 초기 연결하기 위한 방법(700)의 일 실시예가 도시된다 (예를 들어, 도 7의 단계 604에서).
단계 704에서, 클라이언트(108)는 브라우저(148)를 이용하여 예를 들어, HTTP 요청과 같은 요청을 제1 컴퓨팅 노드(140)에 보낸다. 제1 컴퓨팅 노드(140)는 예를 들어, HTML과 같은 웹페이지를 인증 정보 (예를 들어, 유저이름과 패스워드)를 요청하는 HTML 폼을 보낸다. 클라이언트(108)의 유저는 그의 자격 증명을 기입하고 완성된 폼을 제1 컴퓨팅 노드(140)에 전송한다.
제1 컴퓨팅 노드(140)는 단계 708에서, 유저에게 실행이 가능한 어플리케이션의 클라이언트(108)를 알려준다. 일 실시예에서, 제1 컴퓨팅 노드(140)는 유저의 자격 증명을 로그인 페이지로부터 추출하여 이를 유저에게 가능한 어플리케이션을 표시하기 위한 제2 컴퓨팅 노드(144)의 요청과 함께 제2 컴퓨팅 노드(144)에 전송한다. 유저의 자격 증명에 기초하여, 제2 컴퓨팅 노드(144)는 유저에게 가능한 특정 어플리케이션의 리스트를 제1 컴퓨팅 노드(140)에 보내고, 다음에 이 리스트를 예를 들어, 웹 페이지의 형태로 클라이언트(108)의 유저에게 보낸다.
단계 712에서, 유저는 원하는 어플리케이션을 선택하고, 이 어플리케이션의 요청을 제1 컴퓨팅 노드(140)에 보낸다. 예를 들어, 일 실시예에서, 유저는 제1 컴퓨팅 노드(140)에 의해 그에게 제시된 웹 페이지에 목록된 원하는 어플리케이션을 클릭하고 그 어플리케이션의 HTTP 요청을 제1 컴퓨팅 노드(140)에 보낸다. 요청은 제1 컴퓨팅 노드(140)에 의해 처리되며 제2 컴퓨팅 노드(144)에 보내진다.
단계 716에서, 제2 컴퓨팅 노드(144)는 원하는 어플리케이션이 실행되게 될 호스트 서비스(116)를 결정한다. 제2 컴퓨팅 노드(144)는 이 결정이 예를 들어, 부하 균형 방정식에 기초하도록 할 수 있다. 일 실시예에서, 제2 컴퓨팅 노드(144)는 또한 연결(124)를 거쳐 호스트 서비스(116)와 통신하는 데에 이용되게 되는 복수의 제1 프로토콜 서비스(112) 중에서 제1 프로토콜 서비스(112)를 결정한다. 다시, 제2 컴퓨팅 노드(144)는 그 결정을 예를 들어, 부하 균형 방정식에 기초하도록 할 수 있다. 제2 컴퓨팅 노드(144)는 선택된 호스트 서비스(116)와 선택된 제1 프로토콜 서비스(112)의 주소를 제1 컴퓨팅 노드(140)에 보낸다.
단계 720에서, 클라이언트(108)는 초기 연결 티켓과 중간 노드(132)의 주소 (후술되는 바와 같이, 실제 주소나 가상 주소임)가 제공된다. 일 실시예에서, 제1 컴퓨팅 노드(140)는 선택된 호스트 서비스(116)와 선택된 제1 프로토콜 서비스(112)의 주소를, 초기 연결 티켓의 요청과 함께 티켓 기관(136)에 보낸다. 티켓 기관(136)은 선택된 호스트 서비스(116)와 선택된 제1 프로토콜 서비스(112)의 주소를 유지하고, 초기 연결 티켓을 형성하고, 이 초기 연결 티켓을 그 자체의 카피를 유지하면서 제1 컴퓨팅 노드(140)에 전송한다.
일 실시예에서, 중간 노드(132)의 실제 주소로 구성된 제1 컴퓨팅 노드(140)는 중간 노드(132)의 실제 주소와 초기 연결 티켓를 클라이언트(108)의 브라우저(148)에 전송한다. 제1 컴퓨팅 노드(140)는 예를 들어, 중간 노드(132)의 실제 주소와 초기 연결 티켓 둘 다를 함유하는 파일을 먼저 형성한 다음에 클라이언트(108)의 브라우저(148)에 파일을 전송할 수 있다. 선택적으로, 다른 실시예에서, 제1 컴퓨팅 노드(140)는 둘 이상의 중간 노드(132)의 실제 주소로 구성된다. 이 실시예에서, 제1 컴퓨팅 노드(140)는 먼저 클라이언트(108)와 제1 프로토콜 서비스(112) 간의 메시지가 통과해야 하는 중간 노드(132)를 먼저 결정한다. 제1 컴퓨팅 노드(140)는 다음에 이 선택된 중간 노드(132)의 실제 주소와 초기 연결 티켓을 예를 들어, 상술된 파일을 이용하여 클라이언트(108)의 브라우저(148)에 전송한다. 일 실시예에서, 제1 컴퓨팅 노드(140)는 부하 균형 방정식을 이용하여 중간 노드(132)를 선택한다. 클라이언트(108)의 클라이언트 에이전트(128)가 다음에 론치되고 중간 노드(132)의 주소를 이용하여 단계 724에서 클라이언트(108)의 클라이언트 에이전트(128)와 중간 노드(132) 간의 제1 프로토콜 연결(120a)을 설정한다.
다른 실시예에서는, 제1 컴퓨팅 노드(140)가 중간 노드(132)의 실제 주소로 작용하는 제3 컴퓨팅 노드(146)의 실제 주소로 구성된다. 이런 실시예에서, 제1 컴퓨팅 노드(140)는 단계 720에서, 제3 컴퓨팅 노드(146)의 실제 주소와 초기 연결 티켓을 예를 들어, 상술된 파일을 이용하여 클라이언트(108)의 브라우저(148)에 전송한다. 클라이언트(108)의 클라이언트 에이전트(128)가 다음에 론치되고 제3 컴퓨팅 노드(146)의 실제 주소를 이용하여 단계 724에서, 클라이언트(108)의 클라이언트 에이전트(128)와 제3 컴퓨팅 노드(146) 간의 제1 프로토콜 연결을 설정하게 된다. 제3 컴퓨팅 노드(146)는 다음에 클라이언트(108)와 제1 프로토콜 서비스(112) 간의 메시지가 통과해야만 하는 중간 노드(112)를 결정한다. 일 실시예에서, 제3 컴퓨팅 노드(146)는 부하 균형 방정식을 이용하여 중간 노드(132)를 선택한다. 중간 노드(132)를 선택하면, 제3 컴퓨팅 노드(146)는 중간 노드(132)와의 제1 프로토콜 연결을 설정한다. 따라서 제1 프로토콜 연결(120a)은 클라이언트(108)의 클라이언트 에이전트(128)와 중간 노드(132) 사이에 제3 컴퓨팅 노드(146)을 통해 존재한다. 따라서 제3 컴퓨팅 노드(146)의 실제 주소는 중간 노드(132)의 실제 주소에 매핑된다. 따라서 클라이언트(108)의 클라이언트 에이전트(128)에는 제3 컴퓨팅 노드(146)의 실제 주소가 중간 노드(132)의 가상 주소로 작용하게 된다.
일 실시예에서, 중간 노드(132)의 하나 이상의 레벨이 존재하는 경우, 제1 컴퓨팅 노드(140) 또는 제3 컴퓨팅 노드(146)는 각각 클라이언트 에이전트(128)이 레벨 "a"에서 연결되게 되는 중간 노드(132)를 선택한다. 이 실시예에서, 레벨 "a"-"n-1" 각각에서, 클라이언트 에이전트(128)가 그 레벨에서 라우트되는 중간 노드(132)는 부하 균형 방정식에 기초하여, 다음 레벨에서 연결되게 되는 중간 노드(132)를 결정하게 된다. 다른 실시예에서는, 제1 컴퓨팅 노드(140) 또는 제3 컴퓨팅 노드(146)가 각각 하나 이상 또는 모든 레벨 "a"-"n"에 대해, 클라이언트 에이전트(128)가 라우트되게 되는 중간 노드(132)를 결정한다.
클라이언트(108)의 클라이언트 에이전트(128)와 중간 노드(132), 예를 들어, 레벨 "n"에서의 중간 노드(132) 간에 제1 프로토콜 연결(120a)을 설정하게 되면, 클라이언트 에이전트(128)는 중간 노드(132)에 초기 연결 티켓을 전송한다.
단계 728에서, 초기 연결 티켓이 유효한지가 판정된다. 일 실시예에서, 중간 노드(132)는 초기 연결 티켓의 확인을 위해 티켓 기관(136)에 전송한다. 일 실시예에서, 티켓 기관(136)은 초기 연결 티켓의 유효성을, 단계 720에서 보유된 초기 연결 티켓의 카피와 비교하여 판정한다. 티켓 기관(136)이 초기 연결 티켓이 유효하다고 판정한 경우, 티켓 기관(136)은 단계 732에서, 제1 프로토콜 서비스(112)의 주소와 선택된 호스트 서비스(116)의 주소를 중간 노드(132)에 전송한다. 제1 프로토콜 서비스(112)는 또한 초기 연결 티켓과 그 카피를 삭제할 수 있다. 한편, 티켓 기관(136)이 초기 연결 티켓이 무효라고 판정하면, 클라이언트(108)는 단계 730에서, 제1 프로토콜 서비스(112)와의 연결이, 이에 따라 호스트 서비스(116)와의 연결이 거절된다.
단계 732에 이어, 중간 노드(132)는 선택된 제1 프로토콜 서비스(112)의 주소를 이용하여, 단계 736에서 중간 노드(132)와 제1 프로토콜 서비스(112) 간의 제1 프로토콜 연결(120b)을 설정한다. 따라서 제1 프로토콜 연결(120)은 클라이언트(108)의 클라이언트 에이전트(128)와 제1 프로토콜 서비스(112) 사이에 중간 노드(132)를 통해 존재한다. 중간 노드(132)는 또한 선택된 호스트 서비스(116)의 주소를 제1 프로토콜 서비스(112)에 보낼 수 있다.
일 실시예에서, 단계 740에서, 제1 프로토콜 서비스(112)는 선택된 호스트 서비스(116)의 주소를 이용하여 제1 프로토콜 서비스(112)와 선택된 호스트 서비스(116) 간의 이차 프로토콜 연결(124)을 설정한다. 예를 들어, 선택된 호스트 서비스(116)는 사실상 호스트 서비스(116a)이고 이차 프로토콜 연결(124a)은 제1 프로토콜 서비스(112)와 호스트 서비스(116a) 간에 설정된다.
일 실시예에서, 단계 740에 이어, 유저는 단계 744에서 실행될 제2 어플리케이션을 선택하고 제2 컴퓨팅 노드(144)는 단계 748에서 제2 어플리케이션이 실행되게 되는 호스트 서비스(116)를 결정한다. 예를 들어, 부하 균형 방정식을 연산하여, 제2 컴퓨팅 노드(144)는 제2 어플리케이션 프로그램을 호스트 서비스(116b)를 선택하여 실행할 수 있다. 제2 컴퓨팅 노드(144)는 다음에 선택된 호스트 서비스(116b)의 주소를 제1 프로토콜 서비스(112)에 전송한다. 일 실시예에서, 제2 컴퓨팅 노드(144)는 제1 프로토콜 서비스(112)와 직접적으로 통신하며 여기에 바로 주소를 전송한다. 다른 실시예에서, 선택된 호스트 서비스(116b)의 주소는 제1 프로토콜 서비스(112)에 간접적으로 전송된다. 예를 들어, 주소는 제1 컴퓨팅 노드(140), 티켓 기관(136), 중간 노드(132) 및 제1 프로토콜 서비스(112)의 조합을 통해 제1 프로토콜 서비스(112)에 전송될 수 있다. 선택된 호스트 서비스(116b)의 주소를 수신한 후에, 제1 프로토콜 서비스(112)는 단계 752에서, 제1 프로토콜 서비스(112)와 선택된 호스트 서비스(116b) 간의 이차 프로토콜 연결(124b)을 설정한다.
연결(124a 및 124b)을 통해 통신하는 데에 이용될 수 있는 이차 프로토콜은 이에만 제한되는 것은 아니지만, HTTP, FTP, Oscar, Telnet, ICA 및 RDP를 포함한다. 더구나, 일 실시예에서, 상술된 바와 같이, 이차 프로토콜 중 적어도 하나는 복수의 가상 채널을 포함하고, 이들 각각은 원격 클라이언트(108)에서의 기능을 가능하게 하는 복수의 프로토콜 패킷을 포함할 수 있다. 예를 들어, 일 실시예에서, 하나의 호스트 서비스(116a)는 HTTP 프로토콜을 이용하여 연결(124a)을 통해 제1 프로토콜 서비스(112)와 통신하는 웹 서버이고, 다른 호스트 서비스(116b)는 ICA 프로토콜을 이용하여 연결(124b)를 통해 제1 프로토콜 서비스와 통신하는 어플리케이션 서버이다. 호스트 서비스(116b)는 클라이언트가 그래픽 유저 인터페이스를 표시하도록 하기 위해, 클라이언트(108)에 그래픽 스크린 명령을 전송하기 위한 프로토콜 패킷과, 문서가 클라이언트(108)에서 인쇄되게 하기 위해 클라이언트(108)에 프린터 명령을 전송하기 위한 프로토콜 패킷 둘 다를 형성한다.
단계(744, 748, 및 752)는 임의의 회수 반복될 수 있다. 이와 같이, 몇개의 어플리케이션 프로그램은 몇 개의 호스트 서비스(116a-116n) 상에서 실행될 수 있으며, 이들의 출력은 몇 개의 이차 프로토콜을 이용하여 연결(124a-124n)을 통해 제1 프로토콜 서비스(112)에 통신될 수 있다. 이하 단계 756을 참조하면, 제1 프로토콜 서비스(112)는 상술된 바와 같이, 제1 프로토콜 내에 복수의 이차 프로토콜을 캡슐화할 수 있다. 이와 같이, 클라이언트(108)는 복수의 호스트 서비스(116)에 연결되고 동시에 이와 통신한다.
다른 실시예에서, 예를 들어, 호스트 서비스(116b)와 같은 호스트 서비스(116) 상에서 새로운 어플리케이션 프로그램을 행하는 단계(744, 748 및 752)를 실행하기 이전에, 클라이언트(108)의 유저는 예를 들어, 호스트 서비스(116a) 상에서 실행하는 어플리케이션 프로그램과 같은 다른 어플리케이션 프로그램의 실행을 끝낸다. 이런 경우, 제1 프로토콜 서비스(112)는 제1 프로토콜 서비스(112)와 호스트 서비스(116a) 사이의 연결(124a)을 끊는다. 제1 프로토콜 서비스(112)는 다음에 클라이언트(108)와 제1 프로토콜 서비스(112) 간의 연결(120)을 차단하지 않고도, 단계(744, 748 및 752)를 실행함으로써, 제1 프로토콜 서비스(112)와 호스트 서비스(116b) 간의 연결(124b)을 설정한다.
일 실시예에서, 제1 재연결 티켓이 단계 760에서 형성된다. 예를 들어, 중간 노드(132)는 티켓 기관(136)으로부터 제1 재연결 티켓을 요청한다. 요청의 수신시, 티켓 기관(136)은 예를 들어, 큰 난수인 제1 재연결 티켓을 형성하고, 또한 예를 들어, 작은 난수인 핸들을 또한 형성할 수 있다. 티켓 기관(136)은 단계 764에서, 제1 재연결 티켓의 카피와 핸들의 카피를 유지하면서, 중간 노드(132)에 제1 재연결 티켓과 핸들을 전송할 수 있다. 티켓 기관(136)은 단계 720에서 제1 컴퓨팅 노드(140)에 의해 전송된 제1 프로토콜 서비스(112)의 주소를 계속 보유한다. 다음에 중간 노드(132)는 단계 768에서 클라이언트(108)에게 제1 재연결 티켓을 전송한다.
단계 772에서, 제2 재연결 티켓이 다음에 형성된다. 일 실시예에서, 제1 프로토콜 서비스(112)는 예를 들어, 큰 난수일 수 있는 제2 재연결 티켓을 형성한다. 제1 프로토콜 서비스(112)는 단계 776에서, 중간 노드(132)를 통해 제2 재연결 티켓을 클라이언트(108)에 전송한다. 이렇게 행할 때, 제1 프로토콜 서비스(112)는 연결(120)의 끊김 이후 재연결되는 세션을 구별하기 위해 제2 재연결 티켓의 카피와 이와 관련되는 세션 번호를 보유한다. 일 실시예에서, 예를 들어, 제1 프로토콜 서비스(112)는 특정 세션 번호에 대해, 그 세션 번호와 관련되는 이차 프로토콜 연결(124a-124n)을 목록화한 표를 보유한다. 따라서, 후술하는 바와 같이, 제1 프로토콜 서비스(112)에서 제1 프로토콜 연결(120)의 재설정과 제2 재연결 티켓의 확인에 이어, 제1 프로토콜 서비스(112)는 클라이언트(108)와의 통신을 위해 재설정된 제1 프로토콜 연결(120) 내에 캡슐화되는 이차 프로토콜 연결(124)을 식별할 수 있다.
다른 실시예로, 도 1A를 다시 참조하면, 본 발명의 시스템(100)은 중간 노드(132), 티켓 기관(136), 또는 제3 컴퓨팅 노드(146)를 포함하지 않는다. 이 실시예에서는, 단계 760 내지 776에서 제1 및 제2 재연결 티켓 둘 다를 형성 및 전송하는 것이 아니고, 시스템(100) 및 방법(700)은 하나의 재연결 티켓만을 제공한다. 이런 일 실시예에서, 제1 프로토콜 서비스(112)는 예를 들어, 큰 난수일 수 있는 하나의 재연결 티켓을 형성한다. 제1 프로토콜 서비스(112)는 연결(120)을 통해 클라이언트(108)에게 직접 단일의 재연결 티켓을 전송한다. 이렇게 행할 때, 제1 프로토콜 서비스(112)는 연결(120)의 끊김에 이어 재연결되는 세션을 구별하기 위해 단일의 재연결 티켓의 카피와 이와 관련되는 세션 번호를 유지한다.
이하 도 9를 참조하여, 도 6A-6C의 실시예를 이용하여, 클라이언트(108)에게 하나 이상의 호스트 서비스(116)와의 신뢰성 연결을 제공하고 클라이언트(108)를 호스트 서비스(116)에 재연결하기 위한 방법(800)의 일 실시예 (예를 들어 도 7의 단계 616)를 설명한다. 특히, 단계 804에서, 제1 프로토콜 서비스(112)와 하나 이상의 호스트 서비스(116) 각각 사이에 이차 프로토콜 연결(124)이 보유된다. 더욱, 단계 808에서, 예를 들어 도 7의 단계 616에서 파손된 것으로 결정된 연결(120)을 통해 클라이언트(108)의 클라이언트 에이전트(128)와 제1 프로토콜 서비스(112) 사이에 가장 최근에 전송된 데이터 패킷의 큐가 보유된다. 일 실시예에서 데이터 패킷이 연결(120)의 이상 이전과 이후 둘 다에서 큐되어 보유된다. 큐된 데이터 패킷은 예를 들어, 클라이언트 에이전트(128)에 의해 버퍼에 보유될 수 있다. 다르게, 제1 프로토콜 서비스(112)는 큐된 데이터 패킷을 버퍼에 보유할 수 있다. 또 다른 실시예에서, 클라이언트 에이전트(128)와 제1 프로토콜 서비스(112)는 버퍼에 큐된 데이터 패킷을 보유한다.
단계 812에서, 새로운 제1 프로토콜 연결(120)은 클라이언트(108)의 클라이언트 에이전트(128)와 제1 프로토콜 서비스(112) 사이에 설정되어 제1 프로토콜 서비스(112)와 하나 이상의 호스트 서비스(116) 각각 사이에 보유된 이차 프로토콜 연결(124)에 링크되고, 이로 인해 클라이언트(108)를 호스트 서비스(116)에 재연결할 수 있다. 클라이언트(108)가 재연결되면, 단계 808에서 보유된 큐된 데이터 패킷이 단계 816에서 새로 설정된 제1 프로토콜 연결(120)을 거쳐 전송될 수 있다. 이와 같이, 제1 프로토콜 서비스(112)를 통한 호스트 서비스(116)와 클라이언트(108) 사이의 통신 세션은 데이터 손실 없이 지속되어 진행된다.
이하 도 10A-10B를 참조하면, 클라이언트(108)를 하나 이상의 호스트 서비스(116)에 재연결하기 위한 방법(900)의 일 실시예 (예를 들어 도 9의 단계 812)를 설명한다.
단계 904에서, 클라이언트(108)와 제1 프로토콜 서비스(112) 간의 나머지 연결도 파손된다. 예를 들어, 연결(120a)은 실패했지만, 연결(120b)은 아닌 경우, 연결(120b)은 파손되게 된다. 다르게, 연결(120b)이 실패했지만, 연결(120a)은 아닌 경우에도, 연결(120a)은 파손된다.
일 실시예에서, 예를 들어, 도 8의 단계 720에서, 클라이언트(108)에 제공된 중간 노드(132)의 실제 주소를 이용하여, 클라이언트(108)의 클라이언트 에이전트(128)는 단계 908에서, 클라이언트 에이전트(128)와 중간 노드(132) 사이에 제1 프로토콜 연결(120a)을 재설정한다. 다른 실시예에서는, 예를 들어, 도 8의 단계 720에서, 클라이언트(108)에게 제공된 제3 컴퓨팅 노드(146)의 실제 주소를 이용하여, 클라이언트(108)의 클라이언트 에이전트(128)는 단계 908에서, 클라이언트 에이전트(128)과 제3 컴퓨팅 노드(146) 간의 제1 프로토콜 연결을 재설정한다. 제3 컴퓨팅 노드(146)는 다음에 클라이언트(108)와 제1 프로토콜 서비스(112)가 통과해야 하는 중간 노드(132)를 결정한다. 일 실시예에서, 제3 컴퓨팅 노드(146)는 부하 균형 방정식을 이용하여 중간 노드(132)를 선택한다. 클라이언트(108)를 하나 이상의 호스트 서비스(116)에 재연결할 때 제3 컴퓨팅 노드(146)에 의해 선택된 중간 노드(132)는 예를 들어 도 8의 단계 720에서 클라이언트(108)를 하나 이상의 호스트 서비스(116)에 초기 연결하기 위해 선택된 것과 다를 수 있다. 중간 노드(132)를 선택하면, 제3 컴퓨팅 노드(146)는 중간 노드(132)와의 제1 프로토콜 연결을 재설정한다. 따라서, 제1 프로토콜 연결(120a)은 클라이언트(108)의 클라이언트 에이전트(128)와 중간 노드(132) 사이에서, 제3 컴퓨팅 노드(146)를 통해 재설정된다.
일 실시예에서, 하나 이상의 레벨의 중간 노드(132)가 존재하면, 클라이언트 에이전트(128)가 레벨 "a"-"n-1" 각각에서 라우트되게 되는 중간 노드(132)는 부하 균형 방정식에 기초하여 예를 들어, 다음 레벨에서 연결되게 되는 중간 노드(132)를 결정한다. 다른 실시예에서는, 제3 컴퓨팅 노드(146)가 하나 이상이거나 모든 레벨 "a"-"n"에 대해, 클라이언트 에이전트(128)가 라우트되게 되는 중간 노드(132)를 결정한다.
클라이언트(108)의 클라이언트 에이전트(128)와 중간 노드(132), 예를 들어, 레벨 "n"에서의 중간 노드(132) (이하 방법(900)에서 중간 노드(132)로 언급) 간의 제1 프로토콜 연결(120a)을 재설정하게 되면, 클라이언트 에이전트(128)는 단계 912에서, 제1 재연결 티켓과 제2 재연결 티켓을 중간 노드(132)에 전송한다.
단계 916에서, 제1 재연결 티켓이 유효한지가 결정된다. 일 실시예에서, 제1 재연결 티켓의 유효성은 티켓 기관(136)을 이용하여 결정된다. 예를 들어, 중간 노드(132)는 제1 재연결 티켓을 티켓 기관(136)에 전송한다. 일 실시예에서, 티켓 기관(136)은 이를 이전에 유지된 제1 재연결 티켓의 카피와 비교하여 제1 재연결 티켓의 유효성을 결정한다. 티켓 기관(136)이 제1 재연결 티켓이 유효하다고 판정하면, 티켓 기관(136)은 단계 920에서, 제1 프로토콜 서비스(112)의 주소를 중간 노드(132)에 전송한다. 그렇지 않고, 티켓 기관(136)이 제1 재연결 티켓이 무효라고 판정하면, 클라이언트(108)는 단계 924에서, 제1 프로토콜 서비스(112)와의 재연결이, 이에 따라 호스트 서비스(116)와의 재연결이 거부된다.
단계 928에서, 제1 재연결 티켓은 예를 들어, 티켓 기관(136)에 의해 삭제되고 교체 제1 재연결 티켓은 예를 들어, 티켓 기관(136)에 의해 형성된다. 더욱, 교체 핸들은 예를 들어, 티켓 기관(136)에 의해 형성될 수 있다. 이런 실시예에서, 티켓 기관(136)은 교체 제1 재연결 티켓과 교체 핸들을 중간 노드(132)에 전송한다. 더욱, 이 실시예에서, 티켓 기관(136)은 교체 제1 재연결 티켓의 카피를 유지한다. 몇 실시예에서, 티켓 기관(136)은 제1 재연결 티켓의 삭제를 진행하기 전에 교체 제1 재연결 티켓을 수신했다는 것을 확인하기 위해 클라이언트(108)를 대기한다.
제1 재연결 티켓이 확인된 후에, 제1 프로토콜 서비스(112)의 주소를 이용하여 중간 노드(132)는 단계 932에서, 중간 노드(132)와 제1 프로토콜 서비스(112) 사이의 제1 프로토콜 연결(120b)를 재설정한다. 중간 노드(132)와 제1 프로토콜 서비스(112) 사이의 제1 프로토콜 연결(120b)을 재설정하면, 단계 936에서, 제2 재연결 티켓이 유효한지가 판정된다. 일 실시예에서, 제2 재연결 티켓의 유효성이 제1 프로토콜 서비스(112)를 이용하여 결정된다. 예를 들어, 중간 노드(132)는 제1 프로토콜 서비스(112)에 제2 재연결 티켓을 전송한다. 일 실시예에서, 제1 프로토콜 서비스(112)는 이전에 유지된 제2 재연결 티켓의 카피와 비교하여 제2 재연결 티켓의 유효성을 판정한다. 제1 프로토콜 서비스가 제2 재연결 티켓이 유효하다고 판정하면, 제1 중간 노드(132)와 제1 프로토콜 서비스(112) 간에 재설정된 제1 프로토콜 연결(120b)이 단계 940에서, 제1 프로토콜 서비스(112)와 하나 이상의 호스트 서비스(116) 각각 간에 보유된 이차 프로토콜 연결(124)에 링크된다. 그렇지 않고 제1 프로토콜 서비스(112)가 제2 재연결 티켓이 무효라고 판정하면, 재설정된 제1 프로토콜 연결(120b)은 하나 이상의 보유된 이차 프로토콜 연결(124)에 링크되지 않고 클라이언트(108)는 단계 944에서 하나 이상의 호스트 서비스(116)와의 재연결이 거부된다.
단계 948에서, 제2 재연결 티켓은 예를 들어, 제1 프로토콜 서비스(112)에 의해 삭제되고 교체 제2 재연결 티켓은 예를 들어, 클라이언트(108)에의 전송을 위해 제1 프로토콜 서비스(112)에 의해 형성된다. 이 실시예에서, 제1 프로토콜 서비스(112)는 교체 제2 재연결 티켓의 카피를 유지한다. 몇 실시예에서, 제1 프로토콜 서비스(112)는 제2 재연결 티켓을 삭제 처리하기 전에 교체 제2 재연결 티켓을 수신한 것을 확인하기 위해 클라이언트(108)를 대기한다.
단계 952에서, 교체 제1 재연결 티켓과 교체 제2 재연결 티켓이 클라이언트에게 전송된다. 예를 들어, 티켓 기관(136)은 중간 노드(132)를 통해 교체 제1 재연결 티켓을 클라이언트(108)에게 전송할 수 있다. 더욱, 일 실시예에서, 제1 프로토콜 서비스(112)는 중간 노드(132)를 통해 교체 제2 재연결 티켓을 클라이언트(108)에게 전송한다.
다른 실시예에서는, 상술된 바와 같이, 본 발명의 시스템(100) 및 방법이 오직 하나의 재연결 티켓만을 제공한다. 이와 같이, 본 발명의 방법(900)은 제1 및 제2 재연결 티켓 둘 다를 이용하기 보다 상술한 하나의 재연결 티켓만을 이용한다. 이런 일 실시예에서, 클라이언트(108)의 클라이언트 에이전트(128)에는 제1 프로토콜 서비스(112)의 주소가 제공된다. 호스트 서비스(116)를 재연결하기 위해서, 클라이언트 에이전트(128)는 하나의 재연결 티켓을 제1 프로토콜 서비스(112)에 바로 전송한다. 제1 프로토콜 서비스(112)는 하나의 재연결 티켓이 유효한지를 판정한다. 일 실시예에서, 제1 프로토콜 서비스(112)는 이를 이전에 유지된 하나의 재연결 티켓의 카피와 비교하여 하나의 재연결 티켓의 유효성을 판정한다. 제1 프로토콜 서비스(112)가 하나의 재연결 티켓이 유효하다고 판정하면, 클라이언트(108)와 제1 프로토콜 서비스(112) 사이에 재설정된 제1 프로토콜 연결(120)이 제1 프로토콜 서비스(112)와 하나 이상의 호스트 서비스(116) 각각 사이에 보유된 이차 프로토콜 연결(124)에 링크된다. 그렇지 않고, 제1 프로토콜 서비스가 하나의 재연결 티켓이 무효라고 판정하면, 재설정된 제1 프로토콜 연결(120)이 하나 이상의 유지된 이차 프로토콜 연결(124)에 링크되지 않으며 클라이언트(108)는 하나 이상의 호스트 서비스(116)와의 재연결이 거부된다.
하나의 재연결 티켓이 유효화된 후에, 하나의 재연결 티켓은 예를 들어, 제1 프로토콜 서비스(112)에 의해 삭제되고 교체 단일의 재연결 티켓은 예를 들어, 클라이언트(108)에의 전송을 위해 제1 프로토콜 서비스(112)에 의해 형성된다. 교체 단일의 재연결 티켓을 클라이언트(108)에 전송할 때, 제1 프로토콜 서비스(112)는 교체 단일의 재연결 티켓의 카피를 유지한다. 어떤 실시예에서는, 제1 프로토콜 서비스(112)는 단일의 재연결 티켓을 삭제 처리하기 전에 교체 단일 재연결 티켓을 수신한 것을 확인하기 위해 클라이언트(108)를 대기한다.
또 다른 실시예에서는, 제1 및 제2 재연결 티켓과 같이, 단일의 재연결 티켓은 단계 612에서와 같이, 연결(120)의 실패 이후 및/또는 단계 620에서와 같이 연결(120)의 종료 이후 미리 정해진 기간 지난 후에 자동 삭제되게 구성된다.
여기 기재된 것의 변형, 수정 및 그 외 구현들은 본 발명의 정신 및 영역에서 벗어나지 않고 당업자에게는 명백하게 될 것이다. 본 발명은 상기한 설명에 의해서 한정되는 것이 아니다.

Claims (25)

  1. 네트워크 통신 방법에 있어서:
    제1 프로토콜을 이용하여 클라이언트와 제1 프로토콜 서비스 간에 제1 연결을 설정하는 단계; 및
    상기 제1 프로토콜 내에 캡슐화된 복수의 이차 프로토콜을 거쳐 상기 클라이언트와 상기 제1 프로토콜 서비스 간에 통신하는 단계
    를 포함하고,
    상기 이차 프로토콜 중 적어도 하나는 복수의 가상 채널을 포함하는 네트워크 통신 방법.
  2. 제1항에 있어서, 상기 이차 프로토콜 중 하나를 이용하여 상기 제1 프로토콜 서비스와 호스트 서비스 간의 제2 연결을 설정하는 단계; 및
    상기 이차 프로토콜 중 하나를 거쳐 상기 제1 프로토콜 서비스와 상기 호스트 서비스 간에 통신하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서, 상기 복수의 이차 프로토콜을 이용하여 상기 제1 프로토콜 서비스와 복수의 호스트 서비스 간에 복수의 제2 연결을 설정하는 단계 - 상기 복수의 제2 연결 각각은 상기 제1 프로토콜 서비스와 여러 호스트 서비스 간에 설정되고, 상기 복수의 제2 연결 각각은 상기 복수의 이차 프로토콜 중 하나를 이용하여 설정됨 - ; 및
    상기 복수의 이차 프로토콜 중 하나를 거쳐 상기 복수의 제2 연결 각각을 통해 상기 제1 프로토콜 서비스와 상기 복수의 호스트 서비스 간에 통신하는 단계
    를 더 포함하는 방법.
  4. 제1항에 있어서, 상기 클라이언트와 상기 제1 프로토콜 서비스 간에 상기 제1 연결을 설정하는 단계는 중간 노드를 통해 상기 제1 연결을 설정하는 단계를 포함하는 방법.
  5. 제1항에 있어서, 상기 제1 프로토콜은 TCP/IP를 통해 통신되는 방법.
  6. 제1항에 있어서, 각 가상 채널은 원격 액세스 기능을 가능하게 하는 복수의 프로토콜 패킷을 포함하는 방법.
  7. 제1항에 있어서, 상기 제1 프로토콜의 레벨에서의 통신을 압축하는 단계를 더 포함하는 방법.
  8. 제1항에 있어서, 상기 제1 프로토콜의 레벨에서의 통신을 암호화하는 단계를 더 포함하는 방법.
  9. 제1항에 있어서, 상기 제1 연결은 보안적이고:
    상기 제1 프로토콜 서비스와 제1 호스트 서비스 간의 제2 연결을 설정하는 단계;
    상기 제1 연결과 상기 제2 연결을 통해 상기 클라이언트와 상기 제1 호스트 서비스 간에 통신하는 단계;
    상기 제2 연결을 차단하는 단계;
    상기 제1 연결을 차단하지 않고 상기 제1 프로토콜 서비스와 제2 호스트 서비스 간의 제3 연결을 설정하는 단계; 및
    상기 제1 연결과 상기 제3 연결을 거쳐 상기 클라이언트와 상기 제2 호스트 서비스 간에 통신하는 단계
    를 더 포함하는 방법.
  10. 제1항에 있어서, 상기 이차 프로토콜 중 하나는 HTTP, RDP, ICA, FTP, Oscar 및 Telnet으로 이루어지는 프로토콜의 세트 중에서 선택되는 방법.
  11. 클라이언트에 호스트 서비스와의 신뢰성 연결을 제공하는 방법에 있어서:
    상기 클라이언트와 제1 프로토콜 서비스 간의 제1 연결을 제1 프로토콜을 이용하여 설정하는 단계 - 상기 제1 프로토콜은 복수의 이차 프로토콜을 캡슐화함 -;
    상기 제1 프로토콜 서비스와 상기 호스트 서비스 간의 제2 연결을 상기 복수의 이차 프로토콜 중 하나를 이용하여 설정하는 단계;
    상기 클라이언트와 상기 제1 프로토콜 서비스 중 적어도 하나에 상기 제1 연결을 거쳐 가장 최근에 전송되는 데이터 패킷의 큐를 보유하는 단계; 및
    상기 제1 연결의 이상시:
    상기 제2 연결을 보유하는 단계;
    상기 제1 연결을 거쳐 가장 최근에 전송된 상기 데이터 패킷의 큐를 계속하여 보유하는 단계; 및
    상기 제1 프로토콜을 이용하여 상기 클라이언트와 상기 제1 프로토콜 서비스 간에 제3 연결을 설정하는 단계
    를 포함하는 방법.
  12. 제11항에 있어서, 상기 제3 연결을 통해 상기 큐된 데이터 패킷 중 적어도 하나를 전송하는 단계를 더 포함하는 방법.
  13. 네트워크 통신용 시스템에 있어서:
    클라이언트와의 제1 연결을 수용하고 제1 프로토콜 내에 캡슐화된 복수의 이차 프로토콜을 거쳐 상기 클라이언트와 통신하도록 구성된 제1 프로토콜 서비스를 포함하고, 상기 이차 프로토콜 중 적어도 하나는 복수의 가상 채널을 포함하는 시스템.
  14. 제13항에 있어서, 상기 제1 프로토콜 서비스는 호스트 서비스와의 제2 연결을 설정하고 상기 이차 프로토콜 중 하나를 거쳐 상기 호스트 서비스와 통신하도록 더욱 구성되는 시스템.
  15. 제13항에 있어서, 상기 제1 프로토콜 서비스는 상기 복수의 이차 프로토콜을 이용하여 복수의 호스트 서비스와의 복수의 제2 연결을 설정하도록 더 구성되고, 상기 복수의 제2 연결 각각은 여러 호스트 서비스로 설정되고 상기 복수의 제2 연결 각각은 상기 복수의 이차 프로토콜 중 하나를 이용하여 설정되고, 상기 제1 프로토콜 서비스는 상기 복수의 이차 프로토콜 중 하나를 거쳐 상기 복수의 제2 연결 각각을 통해 상기 복수의 호스트 서비스와 통신하도록 더욱 구성되는 시스템.
  16. 제13항에 있어서, 상기 클라이언트와의 상기 제1 연결은 중간 노드를 통해 라우트되는 방법.
  17. 제13항에 있어서, 상기 제1 프로토콜은 TCP/IP를 통해 통신되는 시스템.
  18. 제13항에 있어서, 각 가상 채널은 원격 액세스 기능을 가능하게 하는 복수의 프로토콜 패킷을 포함하는 시스템.
  19. 제13항에 있어서, 상기 제1 프로토콜 서비스는 상기 제1 프로토콜의 레벨에서의 통신을 압축하도록 더 구성되는 시스템.
  20. 제13항에 있어서, 상기 제1 프로토콜 서비스는 상기 제1 프로토콜의 레벨에서의 통신을 암호화하도록 더 구성되는 시스템.
  21. 제13항에 있어서, 상기 제1 연결은 보안적이며 상기 제1 프로토콜 서비스는 제1 호스트 서비스와의 제2 연결을 설정하고, 상기 제1 연결을 차단하고, 상기 제1 연결을 차단하지 않고 제2 호스트 서비스와의 제3 연결을 설정하도록 더 구성되는 시스템.
  22. 제13항에 있어서, 상기 이차 프로토콜 중 하나는 HTTP, RDP, ICA, FTP, Oscar 및 Telnet으로 이루어지는 프로토콜의 세트 중에서 선택되는 시스템.
  23. 클라이언트에 호스트 서비스와의 신뢰성 연결을 제공하기 위한 시스템에 있어서:
    상기 클라이언트와의 제1 연결을 허용하고, 상기 호스트 서비스와의 제2 연결을 설정하고, 상기 제1 연결의 실패시, 상기 제2 연결을 보유하게 상기 클라이언트로부터 제3 연결을 허용하도록 구성되는 제1 프로토콜 서비스; 및
    상기 제1 프로토콜 서비스와의 상기 제2 연결을 허용하고, 상기 제1 연결의 실패시 상기 제2 연결을 보유하도록 구성되는 호스트 서비스
    를 포함하고,
    상기 제1 연결과 상기 제3 연결은 각각 제1 프로토콜을 이용하여 설정되고, 상기 제1 프로토콜은 복수의 이차 프로토콜을 캡슐화하기 위한 것이고, 상기 클라이언트와 상기 제1 프로토콜 서비스 중 적어도 하나는 상기 제1 연결의 실패 이전과 실패시, 상기 제1 연결을 통해 가장 최근에 전송되는 데이터 패킷의 큐를 보유하도록 더욱 구성되는 시스템.
  24. 제23항에 있어서, 상기 클라이언트는 상기 제3 연결을 통해 상기 큐된 데이터 패킷 중 적어도 하나를 전송하도록 더욱 구성되는 시스템.
  25. 제23항에 있어서, 상기 제1 프로토콜 서비스는 상기 제3 연결을 통해 상기 큐된 데이터 패킷 중 적어도 하나를 전송하도록 더욱 구성되는 시스템.
KR1020067006888A 2003-10-10 2004-10-12 세션의 지속성과 신뢰성을 위한 프로토콜 캡슐화 KR20060120032A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/683,881 2003-10-10
US10/683,881 US7562146B2 (en) 2003-10-10 2003-10-10 Encapsulating protocol for session persistence and reliability

Publications (1)

Publication Number Publication Date
KR20060120032A true KR20060120032A (ko) 2006-11-24

Family

ID=34422852

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067006888A KR20060120032A (ko) 2003-10-10 2004-10-12 세션의 지속성과 신뢰성을 위한 프로토콜 캡슐화

Country Status (11)

Country Link
US (1) US7562146B2 (ko)
EP (1) EP1678885B1 (ko)
JP (1) JP2007509521A (ko)
KR (1) KR20060120032A (ko)
AT (2) ATE406751T1 (ko)
AU (1) AU2004306787A1 (ko)
CA (1) CA2541137C (ko)
DE (2) DE602004016200D1 (ko)
HK (3) HK1096211A1 (ko)
IL (3) IL174814A0 (ko)
WO (1) WO2005036832A1 (ko)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7117239B1 (en) 2000-07-28 2006-10-03 Axeda Corporation Reporting the state of an apparatus to a remote computer
US7185014B1 (en) 2000-09-22 2007-02-27 Axeda Corporation Retrieving data from a server
US8108543B2 (en) 2000-09-22 2012-01-31 Axeda Corporation Retrieving data from a server
US7254601B2 (en) 2001-12-20 2007-08-07 Questra Corporation Method and apparatus for managing intelligent assets in a distributed environment
US7178149B2 (en) 2002-04-17 2007-02-13 Axeda Corporation XML scripting of soap commands
US7966418B2 (en) 2003-02-21 2011-06-21 Axeda Corporation Establishing a virtual tunnel between two computer programs
US7978716B2 (en) 2003-11-24 2011-07-12 Citrix Systems, Inc. Systems and methods for providing a VPN solution
US8495305B2 (en) 2004-06-30 2013-07-23 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
US7757074B2 (en) 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
US8739274B2 (en) 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
EP1771998B1 (en) 2004-07-23 2015-04-15 Citrix Systems, Inc. Systems and methods for optimizing communications between network nodes
KR20070037649A (ko) 2004-07-23 2007-04-05 사이트릭스 시스템스, 인크. 게이트웨이에서 종단으로 패킷을 라우팅하기 위한 방법 및시스템
US8954595B2 (en) 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
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
US8706877B2 (en) * 2004-12-30 2014-04-22 Citrix Systems, Inc. Systems and methods for providing client-side dynamic redirection to bypass an intermediary
US7810089B2 (en) * 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8700695B2 (en) 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
US20060253605A1 (en) * 2004-12-30 2006-11-09 Prabakar Sundarrajan Systems and methods for providing integrated client-side acceleration techniques to access remote applications
US8255456B2 (en) 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
EP2739014B1 (en) * 2005-01-24 2018-08-01 Citrix Systems, Inc. Systems and methods for performing caching of dynamically generated objects in a network
JP4616035B2 (ja) * 2005-02-25 2011-01-19 富士通株式会社 サーバ負荷分散プログラム,装置および方法
US7738887B2 (en) * 2005-10-31 2010-06-15 Microsoft Corporation Voice instant messaging between mobile and computing devices
US20070115917A1 (en) * 2005-10-31 2007-05-24 Microsoft Corporation MTOM data transfer via TCP
CN1980232A (zh) * 2005-12-02 2007-06-13 国际商业机器公司 远程登录会话维护方法、远程登录代理和计算机网络系统
US7921184B2 (en) 2005-12-30 2011-04-05 Citrix Systems, Inc. System and method for performing flash crowd caching of dynamically generated objects in a data communication network
US8301839B2 (en) 2005-12-30 2012-10-30 Citrix Systems, Inc. System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
US7904563B2 (en) * 2006-03-31 2011-03-08 Microsoft Corporation Establishing and utilizing terminal server dynamic virtual channels
US8370479B2 (en) 2006-10-03 2013-02-05 Axeda Acquisition Corporation System and method for dynamically grouping devices based on present device conditions
US8065397B2 (en) 2006-12-26 2011-11-22 Axeda Acquisition Corporation Managing configurations of distributed devices
US20100031337A1 (en) * 2007-04-09 2010-02-04 Certeon, Inc. Methods and systems for distributed security processing
WO2009086845A1 (de) * 2008-01-07 2009-07-16 Siemens Enterprise Communications Gmbh & Co. Kg Verfahren zum authentisieren einer schlüsselinformation zwischen endpunkten einer kommunikationsbeziehung
US8219676B2 (en) 2009-06-22 2012-07-10 Citrix Systems, Inc. Systems and methods for web logging of trace data in a multi-core system
US9054913B1 (en) 2009-11-30 2015-06-09 Dell Software Inc. Network protocol proxy
WO2011096307A1 (ja) 2010-02-03 2011-08-11 日本電気株式会社 プロキシ装置とその動作方法
JP5604927B2 (ja) * 2010-03-24 2014-10-15 富士通株式会社 経路制御プログラム、中継プログラム、及びデータ中継方法
US8504818B2 (en) 2010-04-15 2013-08-06 Microsoft Corporation Method and system for reliable protocol tunneling over HTTP
EP2566135B1 (en) 2011-09-01 2018-04-04 Software AG Cloud-based mainframe integration system and method
US8931016B2 (en) * 2011-09-15 2015-01-06 Verizon Patent And Licensing Inc. Program handoff between devices and program network offloading
US9537899B2 (en) 2012-02-29 2017-01-03 Microsoft Technology Licensing, Llc Dynamic selection of security protocol
US10582022B2 (en) * 2016-05-20 2020-03-03 Citrix Systems, Inc. Adaptive session reliability over multiple transports
RU2633186C1 (ru) * 2016-12-28 2017-10-11 Закрытое акционерное общество "Аладдин Р.Д." Персональное устройство аутентификации и защиты данных
CN112165480B (zh) * 2020-09-22 2022-11-11 北京字跳网络技术有限公司 信息获取方法、装置和电子设备

Family Cites Families (157)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4438511A (en) 1980-11-10 1984-03-20 Telebit Corporation Packetized ensemble modem
US4649510A (en) 1982-04-30 1987-03-10 Schmidt Walter E Methods and apparatus for the protection and control of computer programs
US4768190A (en) 1986-04-30 1988-08-30 Og Corporation Packet switching network
US4736369A (en) 1986-06-13 1988-04-05 International Business Machines Corp. Adaptive session-level pacing
US4750171A (en) 1986-07-11 1988-06-07 Tadiran Electronics Industries Ltd. Data switching system and method
US4941089A (en) 1986-12-12 1990-07-10 Datapoint Corporation Input/output network for computer system
US5390297A (en) 1987-11-10 1995-02-14 Auto-Trol Technology Corporation System for controlling the number of concurrent copies of a program in a network based on the number of available licenses
US5021949A (en) 1988-02-29 1991-06-04 International Business Machines Corporation Method and apparatus for linking an SNA host to a remote SNA host over a packet switched communications network
US4893307A (en) 1988-02-29 1990-01-09 International Business Machines Corporation Method and apparatus for linking SNA terminals to an SNA host over a packet switched communications network
US4837800A (en) 1988-03-18 1989-06-06 Motorola, Inc. Cellular data telephone system and cellular data telephone therefor
JP2643978B2 (ja) 1988-04-23 1997-08-25 株式会社ケンウッド パケットデータ生成装置
US4924378A (en) 1988-06-13 1990-05-08 Prime Computer, Inc. License mangagement system and license storage key
US4953159A (en) 1989-01-03 1990-08-28 American Telephone And Telegraph Company Audiographics conferencing arrangement
US5349678A (en) 1991-08-21 1994-09-20 Norand Corporation Versatile RF data capture system
US4912756A (en) 1989-04-07 1990-03-27 Unilink Corporation Method and apparatus for error-free digital data transmission during cellular telephone handoff, etc.
US5220501A (en) 1989-12-08 1993-06-15 Online Resources, Ltd. Method and system for remote delivery of retail banking services
CA2048306A1 (en) 1990-10-02 1992-04-03 Steven P. Miller Distributed configuration profile for computing system
US5159592A (en) 1990-10-29 1992-10-27 International Business Machines Corporation Network address management for a wired network supporting wireless communication to a plurality of mobile users
US5181200A (en) 1990-10-29 1993-01-19 International Business Machines Corporation Handoff method and apparatus for mobile wireless workstation
US5212806A (en) 1990-10-29 1993-05-18 International Business Machines Corporation Distributed control methods for management of migrating data stations in a wireless communications network
CA2040234C (en) 1991-04-11 2000-01-04 Steven Messenger Wireless coupling of devices to wired network
US5204897A (en) 1991-06-28 1993-04-20 Digital Equipment Corporation Management interface for license management system
US5504814A (en) 1991-07-10 1996-04-02 Hughes Aircraft Company Efficient security kernel for the 80960 extended architecture
US5224098A (en) 1991-07-17 1993-06-29 International Business Machines Corporation Compensation for mismatched transport protocols in a data communications network
US5481721A (en) 1991-07-17 1996-01-02 Next Computer, Inc. Method for providing automatic and dynamic translation of object oriented programming language-based message passing into operation system message passing using proxy objects
US5241542A (en) 1991-08-23 1993-08-31 International Business Machines Corporation Battery efficient operation of scheduled access protocol
DE4131133B4 (de) 1991-09-19 2005-09-08 Robert Bosch Gmbh Verfahren und Vorrichtung zum Austausch von Daten in Datenverarbeitungsanlagen
US5210753A (en) 1991-10-31 1993-05-11 International Business Machines Corporation Robust scheduling mechanm for efficient band-width usage in muliticell wireless local networks
US5610595A (en) 1991-12-09 1997-03-11 Intermec Corporation Packet radio communication system protocol
US5359721A (en) 1991-12-18 1994-10-25 Sun Microsystems, Inc. Non-supervisor mode cross address space dynamic linking
AU3944793A (en) 1992-03-31 1993-11-08 Aggregate Computing, Inc. An integrated remote execution system for a heterogenous computer network environment
US5412717A (en) 1992-05-15 1995-05-02 Fischer; Addison M. Computer system security method and apparatus having program authorization information data structures
US6026452A (en) * 1997-02-26 2000-02-15 Pitts; William Michael Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data
US5442633A (en) 1992-07-08 1995-08-15 International Business Machines Corporation Shortcut network layer routing for mobile hosts
US5307490A (en) 1992-08-28 1994-04-26 Tandem Computers, Inc. Method and system for implementing remote procedure calls in a distributed computer system
US5325361A (en) 1992-12-01 1994-06-28 Legent Corporation System and method for multiplexing data transmissions
US5550976A (en) 1992-12-08 1996-08-27 Sun Hydraulics Corporation Decentralized distributed asynchronous object oriented system and method for electronic data management, storage, and communication
US5426637A (en) 1992-12-14 1995-06-20 International Business Machines Corporation Methods and apparatus for interconnecting local area networks with wide area backbone networks
US5509070A (en) 1992-12-15 1996-04-16 Softlock Services Inc. Method for encouraging purchase of executable and non-executable software
US5410543A (en) 1993-01-04 1995-04-25 Apple Computer, Inc. Method for connecting a mobile computer to a computer network by using an address server
US5446915A (en) 1993-05-25 1995-08-29 Intel Corporation Parallel processing system virtual connection method and apparatus with protection and flow control
EP0631455A1 (de) 1993-06-25 1994-12-28 Siemens Aktiengesellschaft Verfahren zum Aufrechterhalten von virtuellen Verbindungen bei einem zumindest teilweisen Ausfall von Verbindungswegen
US5564070A (en) 1993-07-30 1996-10-08 Xerox Corporation Method and system for maintaining processing continuity to mobile computers in a wireless network
US5544246A (en) 1993-09-17 1996-08-06 At&T Corp. Smartcard adapted for a plurality of service providers and for remote installation of same
US5446736A (en) 1993-10-07 1995-08-29 Ast Research, Inc. Method and apparatus for connecting a node to a wireless network using a standard protocol
US5455953A (en) 1993-11-03 1995-10-03 Wang Laboratories, Inc. Authorization system for obtaining in single step both identification and access rights of client to server directly from encrypted authorization ticket
US5515508A (en) 1993-12-17 1996-05-07 Taligent, Inc. Client server system and method of operation including a dynamically configurable protocol stack
US5548723A (en) 1993-12-17 1996-08-20 Taligent, Inc. Object-oriented network protocol configuration system utilizing a dynamically configurable protocol stack
US5564016A (en) 1993-12-17 1996-10-08 International Business Machines Corporation Method for controlling access to a computer resource based on a timing policy
US5499343A (en) 1993-12-17 1996-03-12 Taligent, Inc. Object-oriented networking system with dynamically configurable communication links
US5491800A (en) 1993-12-20 1996-02-13 Taligent, Inc. Object-oriented remote procedure call networking system
US5495411A (en) 1993-12-22 1996-02-27 Ananda; Mohan Secure software rental system using continuous asynchronous password verification
US5491750A (en) 1993-12-30 1996-02-13 International Business Machines Corporation Method and apparatus for three-party entity authentication and key distribution using message authentication codes
US5412654A (en) 1994-01-10 1995-05-02 International Business Machines Corporation Highly dynamic destination-sequenced destination vector routing for mobile computers
US5559800A (en) 1994-01-19 1996-09-24 Research In Motion Limited Remote control of gateway functions in a wireless data communication network
US5627821A (en) 1994-03-15 1997-05-06 Hitachi, Ltd. Defect notification method in a multipoint ATM network
US5524238A (en) 1994-03-23 1996-06-04 Breakout I/O Corporation User specific intelligent interface which intercepts and either replaces or passes commands to a data identity and the field accessed
US5553139A (en) 1994-04-04 1996-09-03 Novell, Inc. Method and apparatus for electronic license distribution
CA2143874C (en) 1994-04-25 2000-06-20 Thomas Edward Cooper Method and apparatus for enabling trial period use of software products: method and apparatus for utilizing a decryption stub
JP2826468B2 (ja) 1994-04-27 1998-11-18 日本電気 株式会社 回線切替え装置
US5574774A (en) 1994-05-04 1996-11-12 Ericsson Inc. Method and apparatus of maintaining an open communications channel between a cellular terminal and an associated cellular radio network
US5586257A (en) 1994-05-05 1996-12-17 Perlman; Stephen G. Network architecture to support multiple site real-time video games
US5594490A (en) 1994-05-23 1997-01-14 Cable Services Technologies, Inc. System for distributing video/audio files from central location to a plurality of cable headends
US5416842A (en) 1994-06-10 1995-05-16 Sun Microsystems, Inc. Method and apparatus for key-management scheme for use with internet protocols at site firewalls
US5771459A (en) 1994-06-21 1998-06-23 U.S. Philips Corporation Communication system for use with stationary and second entities, via a wireless intermediate network with gateway devices, a gateway device for use with such system, and a mobile entity provided with such gateway device
US5550981A (en) 1994-06-21 1996-08-27 At&T Global Information Solutions Company Dynamic binding of network identities to locally-meaningful identities in computer networks
US5481535A (en) 1994-06-29 1996-01-02 General Electric Company Datagram message communication service employing a hybrid network
US5557732A (en) 1994-08-11 1996-09-17 International Business Machines Corporation Method and apparatus for protecting software executing on a demonstration computer
US5604490A (en) 1994-09-09 1997-02-18 International Business Machines Corporation Method and system for providing a user access to multiple secured subsystems
US5490139A (en) 1994-09-28 1996-02-06 International Business Machines Corporation Mobility enabling access point architecture for wireless attachment to source routing networks
US5652789A (en) 1994-09-30 1997-07-29 Wildfire Communications, Inc. Network based knowledgeable assistant
US5602916A (en) 1994-10-05 1997-02-11 Motorola, Inc. Method and apparatus for preventing unauthorized monitoring of wireless data transmissions
US5633868A (en) 1994-10-17 1997-05-27 Lucent Technologies Inc. Virtual circuit management in cellular telecommunications
US5623601A (en) 1994-11-18 1997-04-22 Milkway Networks Corporation Apparatus and method for providing a secure gateway for communication and data exchanges between networks
US5566225A (en) 1994-11-21 1996-10-15 Lucent Technologies Inc. Wireless data communications system for detecting a disabled condition and simulating a functioning mode in response to detection
US5752185A (en) 1994-11-21 1998-05-12 Lucent Technologies Inc. Disconnection management system for wireless voice communications
US5668999A (en) 1994-12-20 1997-09-16 Sun Microsystems, Inc. System and method for pre-verification of stack usage in bytecode program loops
JP3251797B2 (ja) 1995-01-11 2002-01-28 富士通株式会社 ワイヤレスlanシステム
JPH08235114A (ja) 1995-02-28 1996-09-13 Hitachi Ltd サーバアクセス方法と課金情報管理方法
US5664007A (en) 1995-03-06 1997-09-02 Samadi; Behrokh Method and apparatus for providing continuation of a communication call across multiple networks
US5572528A (en) 1995-03-20 1996-11-05 Novell, Inc. Mobile networking method and apparatus
US5666501A (en) 1995-03-30 1997-09-09 International Business Machines Corporation Method and apparatus for installing software
US5689708A (en) 1995-03-31 1997-11-18 Showcase Corporation Client/server computer systems having control of client-based application programs, and application-program control means therefor
US5627892A (en) 1995-04-19 1997-05-06 General Instrument Corporation Of Delaware Data security scheme for point-to-point communication sessions
US5717737A (en) 1995-06-01 1998-02-10 Padcom, Inc. Apparatus and method for transparent wireless communication between a remote device and a host system
US6418324B1 (en) * 1995-06-01 2002-07-09 Padcom, Incorporated Apparatus and method for transparent wireless communication between a remote device and host system
US5592549A (en) 1995-06-15 1997-01-07 Infosafe Systems, Inc. Method and apparatus for retrieving selected information from a secure information source
US5657390A (en) 1995-08-25 1997-08-12 Netscape Communications Corporation Secure socket layer application program apparatus and method
US5657452A (en) 1995-09-08 1997-08-12 U.S. Robotics Corp. Transparent support of protocol and data compression features for data communication
US5682534A (en) 1995-09-12 1997-10-28 International Business Machines Corporation Transparent local RPC optimization
US5623600A (en) 1995-09-26 1997-04-22 Trend Micro, Incorporated Virus detection and removal apparatus for computer networks
US5758186A (en) 1995-10-06 1998-05-26 Sun Microsystems, Inc. Method and apparatus for generically handling diverse protocol method calls in a client/server computer system
US5729734A (en) 1995-11-03 1998-03-17 Apple Computer, Inc. File privilege administration apparatus and methods
WO1997019415A2 (en) * 1995-11-07 1997-05-29 Cadis, Inc. Search engine for remote object oriented database management system
US5732074A (en) 1996-01-16 1998-03-24 Cellport Labs, Inc. Mobile portable wireless communication system
US5721818A (en) 1996-01-25 1998-02-24 Apple Computer, Inc. Method and system for enabling a file server to service multiple networks of the same network protocol family by invoking multiple instances of a network session protocol
US5889816A (en) * 1996-02-02 1999-03-30 Lucent Technologies, Inc. Wireless adapter architecture for mobile computing
US5856974A (en) * 1996-02-13 1999-01-05 Novell, Inc. Internetwork address mapping gateway
US5754774A (en) 1996-02-15 1998-05-19 International Business Machine Corp. Client/server communication system
US5673322A (en) 1996-03-22 1997-09-30 Bell Communications Research, Inc. System and method for providing protocol translation and filtering to access the world wide web from wireless or low-bandwidth networks
US5784643A (en) 1996-03-28 1998-07-21 International Business Machines Corporation System incorporating program for intercepting and interpreting or altering commands for generating I/O activity for enabling real-time user feedback by sending substitute characters to modem
GB2313524A (en) * 1996-05-24 1997-11-26 Ibm Providing communications links in a computer network
US5742757A (en) 1996-05-30 1998-04-21 Mitsubishi Semiconductor America, Inc. Automatic software license manager
US5740361A (en) * 1996-06-03 1998-04-14 Compuserve Incorporated System for remote pass-phrase authentication
US6058250A (en) * 1996-06-19 2000-05-02 At&T Corp Bifurcated transaction system in which nonsensitive information is exchanged using a public network connection and sensitive information is exchanged after automatically configuring a private network connection
US5748897A (en) 1996-07-02 1998-05-05 Sun Microsystems, Inc. Apparatus and method for operating an aggregation of server computers using a dual-role proxy server computer
JP3492865B2 (ja) * 1996-10-16 2004-02-03 株式会社東芝 移動計算機装置及びパケット暗号化認証方法
JPH10178421A (ja) * 1996-10-18 1998-06-30 Toshiba Corp パケット処理装置、移動計算機装置、パケット転送方法及びパケット処理方法
US6055575A (en) * 1997-01-28 2000-04-25 Ascend Communications, Inc. Virtual private network system and method
AU6654798A (en) * 1997-02-26 1998-09-18 Siebel Systems, Inc. Method of determining visibility to a remote database client of a plurality of database transactions using a networked proxy server
US6201962B1 (en) * 1997-05-14 2001-03-13 Telxon Corporation Seamless roaming among multiple networks including seamless transitioning between multiple devices
US6681017B1 (en) * 1997-09-03 2004-01-20 Lucent Technologies Inc. Simplified secure shared key establishment and data delivery protocols for electronic commerce
US6023724A (en) * 1997-09-26 2000-02-08 3Com Corporation Apparatus and methods for use therein for an ISDN LAN modem that displays fault information to local hosts through interception of host DNS request messages
US6725376B1 (en) * 1997-11-13 2004-04-20 Ncr Corporation Method of using an electronic ticket and distributed server computer architecture for the same
EP1032886B1 (en) * 1997-11-14 2009-03-18 Microsoft Corporation Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions
US6230004B1 (en) * 1997-12-01 2001-05-08 Telefonaktiebolaget Lm Ericsson Remote procedure calls using short message service
US5870412A (en) * 1997-12-12 1999-02-09 3Com Corporation Forward error correction system for packet based real time media
US6170075B1 (en) * 1997-12-18 2001-01-02 3Com Corporation Data and real-time media communication over a lossy network
JPH11191788A (ja) * 1997-12-25 1999-07-13 Toyota Motor Corp ネットワーク接続システムおよびネットワーク接続方法
US6226750B1 (en) * 1998-01-20 2001-05-01 Proact Technologies Corp. Secure session tracking method and system for client-server environment
JPH11275110A (ja) * 1998-03-26 1999-10-08 Nec Corp 無線データ通信方法および装置
US6199113B1 (en) * 1998-04-15 2001-03-06 Sun Microsystems, Inc. Apparatus and method for providing trusted network security
US6564320B1 (en) * 1998-06-30 2003-05-13 Verisign, Inc. Local hosting of digital certificate services
US6360265B1 (en) * 1998-07-08 2002-03-19 Lucent Technologies Inc. Arrangement of delivering internet protocol datagrams for multimedia services to the same server
US6714536B1 (en) * 1998-07-21 2004-03-30 Eric M. Dowling Method and apparatus for cosocket telephony
JP3216607B2 (ja) * 1998-07-29 2001-10-09 日本電気株式会社 デジタル著作物流通システム及び方法、デジタル著作物再生装置及び方法、並びに記録媒体
US6233619B1 (en) * 1998-07-31 2001-05-15 Unisys Corporation Virtual transport layer interface and messaging subsystem for high-speed communications between heterogeneous computer systems
US6226618B1 (en) * 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
US6484206B2 (en) * 1998-10-07 2002-11-19 Nortel Networks Limited Efficient recovery of multiple connections in a communication network
US6546425B1 (en) * 1998-10-09 2003-04-08 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
DE69929627T2 (de) * 1998-11-02 2006-09-14 Airbiquity Inc., Bainbridge Island Geo-räumliche adressierung zum internet-protokoll
JP4004669B2 (ja) * 1998-11-26 2007-11-07 株式会社日立コミュニケーションテクノロジー 音声パケット多重化方法及び装置
JP2000242589A (ja) * 1999-02-25 2000-09-08 Mitsubishi Electric Corp データ転送制御コンピュータシステム
US6289450B1 (en) * 1999-05-28 2001-09-11 Authentica, Inc. Information security architecture for encrypting documents for remote access while maintaining access control
JP2000341300A (ja) * 1999-05-31 2000-12-08 Fujitsu Ltd Atmネットワークに於けるセル多重化システム
US6691232B1 (en) * 1999-08-05 2004-02-10 Sun Microsystems, Inc. Security architecture with environment sensitive credential sufficiency evaluation
US20020010866A1 (en) * 1999-12-16 2002-01-24 Mccullough David J. Method and apparatus for improving peer-to-peer bandwidth between remote networks by combining multiple connections which use arbitrary data paths
US6845387B1 (en) * 2000-04-07 2005-01-18 Advanced Digital Information Corporation Creating virtual private connections between end points across a SAN
US7010300B1 (en) * 2000-06-15 2006-03-07 Sprint Spectrum L.P. Method and system for intersystem wireless communications session hand-off
WO2002009458A2 (en) * 2000-07-24 2002-01-31 Bluesocket, Inc. Method and system for enabling seamless roaming in a wireless network
US6874086B1 (en) * 2000-08-10 2005-03-29 Oridus, Inc. Method and apparatus implemented in a firewall for communicating information between programs employing different protocols
US6996631B1 (en) * 2000-08-17 2006-02-07 International Business Machines Corporation System having a single IP address associated with communication protocol stacks in a cluster of processing systems
CA2421609A1 (en) * 2000-09-12 2002-03-21 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US6697377B1 (en) * 2000-10-21 2004-02-24 Innomedia Pte Ltd. Method for communicating audio data in a packet switched network
JP2002185609A (ja) * 2000-12-12 2002-06-28 Fujitsu Ltd 固定無線電話網を用いた移動体通信システム
JP3777302B2 (ja) * 2000-12-21 2006-05-24 富士通株式会社 通信振り分け制御装置、および通信振り分けプログラムを記憶した記憶媒体
US6947444B2 (en) * 2001-06-06 2005-09-20 Ipr Licensing, Inc. Method and apparatus for improving utilization efficiency of wireless links for web-based applications
US7698381B2 (en) * 2001-06-20 2010-04-13 Microsoft Corporation Methods and systems for controlling the scope of delegation of authentication credentials
AUPR797501A0 (en) * 2001-09-28 2001-10-25 BlastMedia Pty Limited A method of displaying content
US6993652B2 (en) * 2001-10-05 2006-01-31 General Instrument Corporation Method and system for providing client privacy when requesting content from a public server
US20030078983A1 (en) * 2001-10-23 2003-04-24 Sullivan Terence Sean Message prioritization and buffering in a limited network
US20030078985A1 (en) * 2001-10-23 2003-04-24 David Holbrook Proactive message buffering across intermittent network connections
US7028183B2 (en) * 2001-11-13 2006-04-11 Symantec Corporation Enabling secure communication in a clustered or distributed architecture
JP3910862B2 (ja) * 2002-02-20 2007-04-25 独立行政法人情報通信研究機構 通信システム、移動通信装置、管理通信装置、通信方法、移動通信方法、ならびに、プログラム
JP4315696B2 (ja) * 2002-03-29 2009-08-19 富士通株式会社 ホスト端末エミュレーションプログラム、中継用プログラムおよびホスト端末エミュレーション方法
US7467214B2 (en) * 2003-06-20 2008-12-16 Motorola, Inc. Invoking protocol translation in a multicast network
US7532640B2 (en) * 2003-07-02 2009-05-12 Caterpillar Inc. Systems and methods for performing protocol conversions in a machine

Also Published As

Publication number Publication date
EP1678885A1 (en) 2006-07-12
WO2005036832A1 (en) 2005-04-21
IL174815A0 (en) 2006-08-20
US7562146B2 (en) 2009-07-14
CA2541137C (en) 2016-06-14
IL174814A0 (en) 2006-08-20
HK1096212A1 (en) 2007-05-25
JP2007509521A (ja) 2007-04-12
EP1678885B1 (en) 2008-12-10
ATE406751T1 (de) 2008-09-15
CA2541137A1 (en) 2005-04-21
AU2004306787A1 (en) 2005-04-21
HK1096213A1 (en) 2007-05-25
HK1096211A1 (en) 2007-05-25
DE602004018365D1 (de) 2009-01-22
ATE417437T1 (de) 2008-12-15
US20050080907A1 (en) 2005-04-14
IL174816A0 (en) 2006-08-20
DE602004016200D1 (de) 2008-10-09

Similar Documents

Publication Publication Date Title
KR20060120032A (ko) 세션의 지속성과 신뢰성을 위한 프로토콜 캡슐화
US7984157B2 (en) Persistent and reliable session securely traversing network components using an encapsulating protocol
US7502726B2 (en) Systems and methods for maintaining a session between a client and host service
US8407350B2 (en) System and method for projecting content beyond firewalls
US9705852B2 (en) Proxy SSL authentication in split SSL for client-side proxy agent resources with content insertion
US7343398B1 (en) Methods, apparatuses and systems for transparently intermediating network traffic over connection-based authentication protocols
US8261057B2 (en) System and method for establishing a virtual private network
US20110289311A1 (en) Method of performance-aware security of unicast communication in hybrid satellite networks
KR20060096986A (ko) 개인 원격 방화벽

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid