ES2298835T3 - Una sesion persistente y fiable que recorre de manera segura componentes de red utilizando un protocolo de encapsulacion. - Google Patents

Una sesion persistente y fiable que recorre de manera segura componentes de red utilizando un protocolo de encapsulacion. Download PDF

Info

Publication number
ES2298835T3
ES2298835T3 ES04794633T ES04794633T ES2298835T3 ES 2298835 T3 ES2298835 T3 ES 2298835T3 ES 04794633 T ES04794633 T ES 04794633T ES 04794633 T ES04794633 T ES 04794633T ES 2298835 T3 ES2298835 T3 ES 2298835T3
Authority
ES
Spain
Prior art keywords
protocol
service
connection
client
ticket
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
ES04794633T
Other languages
English (en)
Inventor
Anatoliy Panasyuk
Andre Citrix Systems KRAMER (R & D) Ltd
Bradley Jay Pedersen
David Sean Stone
Terry Treder
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.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
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
Priority claimed from US10/683,881 external-priority patent/US7562146B2/en
Application filed by Citrix Systems Inc filed Critical Citrix Systems Inc
Application granted granted Critical
Publication of ES2298835T3 publication Critical patent/ES2298835T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0209Architectural arrangements, e.g. perimeter networks or demilitarized zones
    • 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
    • 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
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • 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/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/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • 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
    • 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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

Un método para reconectar a un cliente (108) con un servicio anfitrión (116a-116n), cuyo método se caracteriza por: proporcionar una sesión de comunicaciones entre un cliente (108) y un servicio anfitrión (116a-116n) mediante una primer conexión entre el cliente (108) y un servicio (112) de primer protocolo, y una segunda conexión entre el servicio (112) de primer protocolo y el servicio anfitrión (116a-116n); detectar una interrupción en la primera conexión o en la segunda conexión, y mantener la otra de entre la primera conexión y la segunda conexión; obtener, en el servicio (112) de primer protocolo, un primer billete y un segundo billete; validar el primer billete para restablecer la conexión interrumpida; validar el segundo billete para continuar el uso de la conexión mantenida; y enlazar la conexión restablecida con la conexión mantenida.

Description

Una sesión persistente y fiable que recorre de manera segura componentes de red utilizando un protocolo de encapsulación.
Campo de la técnica
El invento se refiere, en general, comunicaciones por red. Más particularmente, el invento se refiere a sistemas y métodos para restablecer comunicaciones de clientes recorriendo de manera segura componentes de red merced al uso de un protocolo de comunicaciones de encapsulamiento para proporcionar persistencia y fiabilidad de la sesión.
Información sobre antecedentes
Las comunicaciones por una red entre dos ordenadores, por ejemplo, un cliente y un servidor, pueden llevarse a la práctica utilizando una variedad de protocolos de comunicaciones conocidos. Típicamente, el cliente comunica con el servidor para descargar un contenido del servidor por la red. Por ejemplo, el servidor puede hospedar una o más aplicaciones accesibles para el cliente. Además, el cliente puede comunicar con el servidor a través de un equipo representante (proxy) que, típicamente, es una pasarela de seguridad, tal como un encaminador o un cortafuegos, a través del cual pasa el contenido del servidor. Además, el servidor puede incluir un cortafuegos para prohibir las comunicaciones no autorizadas hacia y desde el servidor. El cliente accede al servidor y a su contenido a través de la seguridad que ofrecen el representante y el cortafuegos del servidor. Sin embargo, con frecuencia la conexión de red que va al servidor a través de un representante, es susceptible de ser desbaratada. Por ejemplo, con frecuencia una conexión inalámbrica entre un cliente y un representante no es fiable. En otros casos, la conexión de red es intermitente. Como tal, puede perderse una conexión cuando se entra en un ascensor o en un túnel y sólo se la puede recuperar después de salir del ascensor o del túnel.
Si una sesión de comunicación establecida entre el cliente y el ordenador servidor termina de manera anormal, el cliente ha de restablecer, generalmente, la conexión iniciando una nueva sesión de comunicación. Para dar comienzo a la nueva sesión de comunicación, el usuario tiene retransmitir, típicamente, las credenciales de autenticación tales como el registro de entrada y la palabra de paso, al representante y al ordenador servidor, de forma que se le pueda autorizar al usuario la nueva sesión de comunicación. Esta retransmisión de las credenciales de autenticación de un usuario a través de múltiples sesiones de comunicaciones expone en forma repetida a las credenciales de autenticación de ese usuario, a la actuación de potenciales atacantes, disminuyendo por tanto el nivel de seguridad de las credenciales de autenticación. Además, si un atacante soslaya la seguridad del representante o del cortafuegos del servidor, puede acceder al contenido de éste sin tropezar con una seguridad adicional. Además, hacer que el usuario vuelva a introducir sus credenciales de autenticación es, con frecuencia, un proceso lento que puede tener como consecuencia la frustración y la sensación de incompetencia del usuario.
Cuando se lleva a cabo una comunicación mediante una conexión de red utilizando muchos protocolos corrientes, se pierden paquetes de datos cuando se interrumpe la conexión de red. Por ejemplo, cuando se comunica a través de una conexión de red TCP estándar, las memorias intermedias de datos son limpiadas, típicamente, al interrumpirse la conexión. Como tal, cuando se restablece la conexión de red, una aplicación ejecutada en la red, tal como una sesión de un usuario sobre un servidor, no es capaz de reanudarse en el punto en que se encontraba antes de la interrupción. Típicamente, se presenta un mensaje de error, aumentando la frustración del usuario hasta molestarle. Además, una comunicación por una red con muchos protocolos requiere el frecuente restablecimiento de la conexión de transporte. Por ejemplo, al utilizar HTTP, bien por sí solo o en conjunto con un protocolo representante, navegar por un sitio de la red a través de una conexión TCP estándar requiere, además de una nueva conexión HTTP para cada recurso, el cierre de una conexión previa con protocolo TCP/representante y la apertura de una nueva conexión con protocolo TCP/representante para cada recurso.
Así, es deseable proporcionar una técnica para restablecer una sesión de comunicación entre un ordenador cliente y un ordenador servidor sin requerir la transmisión repetida de las credenciales de autenticación del cliente y aumentando, sin embargo, la protección del servidor frente a un usuario no autorizado. Se necesitan sistemas y métodos mejorados para restablecer una sesión de comunicación entre un ordenador cliente y un ordenador servidor sin tener que transmitir repetidamente las credenciales de autenticación para pasar, de forma segura, por múltiples componentes de red.
La publicación US 2003/0163569 se refiere, en general, a un mecanismo de billete (grupo temporal de credenciales electrónicas que verifica la identidad de un cliente para un servicio particular) por salto para autenticar cada una de las conexiones múltiples entre un cliente y un servidor. La publicación WO/0223362 se refiere, en general, a un mecanismo que funciona en la interfaz de transporte de la pila de red que intercepta comunicaciones desde una aplicación y las transmite utilizando un protocolo de llamada a procedimientos remotos sobre un protocolo de movilidad de Internet, para establecer comunicaciones entre un servidor representante y cada sistema de extremo de móvil.
Sumario del invento
El presente invento se refiere a sistemas y métodos para volver a conectar un cliente, mediante una conexión persistente y fiable, con un servicio anfitrión, en los que la conexión pasa, de forma segura, a través de componentes de red. La nueva conexión del cliente incluye restablecer la conexión del cliente con el servicio anfitrión y autenticar de nuevo al usuario del cliente ante el servicio anfitrión, incluyendo autenticar de nuevo una o más de las conexiones entre el cliente y el servicio anfitrión. Una conexión fiable y persistente con un servicio anfitrión es mantenida por uno o más primeros servicios de protocolo en nombre de un cliente. Los primeros servicios de protocolo garantizan que los datos comunicados entre el cliente y el servicio anfitrión, son almacenados en memorias intermedias y conservados durante cualquier interrupción de la conexión de red entre el cliente y el servicio anfitrión. Por ejemplo, una interrupción temporal en una conexión de red puede producirse cuando un cliente, tal como un cliente móvil, se desplaza entre diferentes puntos de acceso de la misma red, o cuando un cliente cambia entre redes (por ejemplo, de una red cableada a una red inalámbrica.
Además de mantener los datos en almacenamientos intermedios durante una interrupción de la red, el servicio de primer protocolo autentica de nuevo al cliente frente al servicio anfitrión cuando se restablece la conexión del cliente con el servicio de primer protocolo. Esto evita que el usuario del cliente tenga que introducir de nuevo sus credenciales de autenticación para restablecer la conexión con el servicio anfitrión. Además, cada una de las múltiples conexiones entre el cliente y el servicio anfitrión, por ejemplo, a través de un servicio de primer protocolo que actúa como representante, es autenticada de nuevo para proporcionar protección adicional de seguridad al acceder al servicio anfitrión. Tras autenticarse de nuevo, el servicio de primer protocolo restaura la conexión del cliente con el servicio anfitrión. En resumen, el presente invento permite restablecer una conexión de red entre un cliente y un servicio anfitrión para recorre en forma segura componentes de red hasta llegar al servidor y sin que el usuario tenga que introducir de nuevo sus credenciales de autenticación.
En un aspecto, el presente invento se refiere a un método para reconectar a un cliente con un servicio anfitrión. El método comprende el paso de proporcionar una sesión de comunicación entre un cliente y un servicio anfitrión a través de una primera conexión entre el cliente y un servicio de primer protocolo, y una segunda conexión entre el servicio de primer protocolo y el servicio anfitrión. El método incluye, además, detectar una interrupción en una de las conexiones primera y segunda, y mantener la otra de las conexiones, primera y segunda. En otro paso del método, el servicio de primer protocolo obtiene un primer billete y un segundo billete y valida el primero para restablecer la conexión interrumpida. El servicio de primer protocolo valida el segundo billete para continuar el uso de la conexión mantenida, y enlaza la conexión restablecida con la conexión mantenida.
En una realización, el método comprende mantener la sesión de comunicación durante la rotura de la conexión interrumpida. En otra realización, el método comprende además generar uno de entre el primer billete y el segundo billete mediante, al menos, uno de entre el servicio de primer protocolo y la autoridad que emite el billete. El método puede incluir la validación, por parte de la autoridad que emite el billete, de al menos uno de entre el primer billete y el segundo billete.
En otra realización, el método comprende, además, autenticar al cliente frente a un servidor web y transmitir el primer billete al cliente mediante el servidor web. El método puede comprender, además, autenticar, mediante el servicio anfitrión al cliente al establecerse la sesión de comunicación. En una realización, el método incluye que el cliente transmita el primer billete al servicio de primer protocolo.
En otra realización, el servicio de primer protocolo comprende un servidor representante. En otra realización, el servicio de primer protocolo comprende una pasarela de seguridad. El método puede incluir, además, que el cliente y el servicio de primer protocolo se comuniquen empleando un primer protocolo que encapsule a un segundo protocolo, y que el servicio de primer protocolo y el servicio anfitrión se comuniquen utilizando el segundo protocolo.
En otra realización, el primer billete es válido para la primera conexión, y el segundo billete es válido para la segunda conexión. Opcionalmente, el segundo billete puede estar inhabilitado hasta que se valide el primer billete. En una realización, la conexión restablecida se enlaza con la conexión mantenida después de haberse validado el primer billete y el segundo billete.
En otra realización, la primera y/o la segunda conexión pueden comprender una pluralidad de conexiones realizadas a través de un nodo intermediario y uno o más primeros servicios de protocolo. El método puede incluir, también, generar un tercer billete para, al menos, una de la pluralidad de conexiones. El tercer billete puede ser válido para dicha al menos una de la pluralidad de conexiones.
En otro aspecto, el presente invento se refiere a un sistema para reconectar un cliente con un servicio anfitrión. El sistema comprende un cliente y un servicio de primer protocolo. El cliente establece una sesión de comunicación con un servicio anfitrión a través de una primera conexión. El servicio de primer protocolo establece la primera conexión con el cliente y una segunda conexión con el servicio anfitrión. El servicio de primer protocolo mantiene una conexión que comprende al menos una de entre la primera conexión y la segunda conexión. Además, el servicio de primer protocolo valida un primer billete para restablecer una conexión interrumpida de una de entre la primera conexión y la segunda conexión, y valida un segundo billete para utilizar la otra de entre la primera conexión y la segunda conexión. El sistema incluye, además, que el servicio de primer protocolo enlace la conexión restablecida con la conexión mantenida.
En una realización, el sistema comprende, además, una autoridad a cargo de los billetes que genera al menos uno de entre el primer billete y el segundo billete. En otra realización, el servicio de primer protocolo mantiene la sesión de comunicación durante la rotura de la conexión interrumpida. En otra realización, el servicio de primer protocolo genera al menos uno de entre el primer billete y el segundo billete. El sistema puede incluir que la autoridad a cargo de los billetes valide, al menos, uno de entre el primer billete y el segundo billete.
En otra realización, el sistema comprende, además, un servidor web. El servidor web autentica al cliente y, en una realización, transmite el primer billete al cliente. En otra realización, el cliente transmite el primer billete al servicio de primer protocolo. En todavía otra realización, el servicio anfitrión autentica al cliente al establecerse la sesión de comunicación.
En una realización, el servicio de primer protocolo comprende un servidor representante y, en otra realización, el servicio de primer protocolo puede comprender una pasarela de seguridad, El sistema puede incluir que el cliente y el servicio de primer protocolo se comuniquen utilizando un primer protocolo que encapsule a un segundo protocolo, y que el servicio de primer protocolo y el servicio anfitrión se comuniquen utilizando el segundo protocolo.
En otra realización, el primer billete es válido para la primera conexión y el segundo billete es válido para la segunda conexión. Además, el segundo billete puede estar inhabilitado hasta validarse el primer billete. En una realización, el servicio de primer protocolo enlaza la conexión restablecida con la conexión mantenida, después de haberse validado el primer billete y el segundo billete.
En todavía otra realización, una de entre la primera conexión y la segunda conexión, comprende una pluralidad de conexiones realizadas a través de un nodo intermediario y uno o más primeros servicios de protocolo. El sistema incluye, además, generar un tercer billete para, al menos, una de la pluralidad de conexiones y, en una realización, el tercer billete es válido para, al menos, una de la pluralidad de conexiones.
Los detalles de diversas realizaciones del invento se establecen en los dibujos adjuntos y en la descripción siguiente.
Breve descripción de los dibujos
Los anteriores y otros objetos, aspectos, características y ventajas del invento resultarán más evidentes y pueden comprenderse mejor haciendo referencia a la siguiente descripción tomada en conjunto con los dibujos anejos, en los que:
la Fig. 1A es un diagrama de bloques de un sistema para ofrecer a un cliente una conexión fiable con un servicio anfitrión, de acuerdo con una realización ilustrativa del invento;
la Fig. 1B es un diagrama de bloques de un sistema para ofrecer a un cliente una conexión fiable con un servicio anfitrión, de acuerdo con otra realización ilustrativa del invento;
la Fig. 2A representa comunicaciones que tienen lugar por una red de acuerdo con una realización ilustrativa del invento;
la Fig. 2B representa comunicaciones que tienen lugar por una red de acuerdo con otra realización ilustrativa del invento;
la Fig. 3 ilustra un proceso para encapsular una pluralidad de protocolos secundarios dentro de un primer protocolo para comunicaciones sobre una red de acuerdo con una realización ilustrativa del invento;
la Fig. 4 es un diagrama de flujo que ilustra una realización del funcionamiento del sistema de comunicaciones de las Figs. 1A-1B de acuerdo con el invento;
la Fig. 5A es un diagrama de bloques de otra realización de un sistema de comunicaciones construido de acuerdo con el invento;
la Fig. 5B es un diagrama de flujo que ilustra una realización del funcionamiento del sistema de comunicaciones de la Fig. 5A, de acuerdo con el invento;
la Fig. 6A es un diagrama de bloques del sistema ilustrativo de la Fig. 1A, que incluye además componentes para volver a conectar al cliente con un servicio anfitrión, de acuerdo con una realización ilustrativa del invento;
la Fig. 6B es un diagrama de bloques del sistema ilustrativo de la Fig. 6A, que incluye además componentes para conectar inicialmente al cliente con un servicio anfitrión, de acuerdo con otra realización ilustrativa del invento;
la Fig. 6C es un diagrama de bloques del sistema ilustrativo de la Fig. 6B, que incluye además un componente para conectar inicialmente al cliente con el servicio anfitrión y para volver a conectar al cliente con el servicio anfitrión, de acuerdo con otra realización ilustrativa del invento;
la Fig. 6D es un diagrama de bloques de una realización alternativa del sistema de la Fig. 6C;
la Fig. 7 es un diagrama de flujo de un método para comunicaciones de red, de acuerdo con una realización ilustrativa del invento;
las Figs. 8A-8C son diagramas de flujo de un método para conectar a un cliente con una pluralidad de servicios anfitriones, de acuerdo con una realización ilustrativa del invento;
la Fig. 9 es un diagrama de flujo de un método para ofrecer a un cliente una conexión fiable con servicios anfitriones y para volver a conectar al cliente con los servicios anfitriones, de acuerdo con una realización ilustrativa del invento; y
las Figs. 10A-10B son diagramas de flujo de un método para volver a conectar a un cliente con servicios anfitriones, de acuerdo con una realización ilustrativa del invento.
Descripción
En lo que sigue, se describen determinadas realizaciones del presente invento. Sin embargo, ha de hacerse notar, de forma expresa, que el presente invento no está limitado a estas realizaciones, sino que la intención es que las adiciones y modificaciones a lo que expresamente se describe en esta memoria, queden incluidas, también, dentro del alcance del invento. Además, ha de comprenderse que las características de las diversas realizaciones descritas en este documento, no son mutuamente exclusivas y pueden existir en varias combinaciones y permutaciones, aún cuando tales combinaciones y permutaciones no se incluyan aquí expresamente, sin apartarse por ellos del espíritu ni del alcance del invento.
La realización ilustrativa del presente invento proporciona sistemas y métodos para establecer una conexión fiable y persistente entre un cliente y un servicio anfitrión, y para volver a establecer la conexión cuando se produce una interrupción de la misma. Un cliente establece una sesión de comunicación con un servicio anfitrión a través de una primera conexión entre un cliente y un servicio de primer protocolo y una segunda conexión entre el servicio de primer protocolo y el servicio anfitrión. El cliente comunica con el servicio de primer protocolo empleando un primer protocolo y el servicio de primer protocolo comunica con el servicio anfitrión utilizando un segundo protocolo. El segundo protocolo se emplea para comunicación del cliente con el servicio de primer protocolo, encapsulado dentro de las comunicaciones del primer protocolo. Cuando se detecta una interrupción en la primera conexión o en la segunda conexión, el servicio de primer protocolo restablece la conexión interrumpida al tiempo que conserva la conexión que no se ha interrumpido. La conexión interrumpida se enlaza con la conexión mantenida con el fin de volver a conectar al cliente con el servicio anfitrión.
Además, la realización ilustrativa del presente invento proporciona sistemas y métodos para recorrer en forma segura componentes de red al establecer una conexión de un cliente con un servicio anfitrión y al volver a establecer nuevamente dicha conexión. El servicio de primer protocolo puede actuar como representante entre el cliente y el servicio anfitrión y, como tal, puede comprender una pasarela de seguridad. El servicio de primer protocolo obtiene un primer billete y un segundo billete a partir de una autoridad a cargo de los billetes. El primer billete se utiliza para validar la conexión entre el cliente y el servicio de primer protocolo, y el segundo billete se utiliza para validar la conexión entre el servicio de primer protocolo y el servicio anfitrión. El segundo billete puede estar inhabilitado hasta la validación del primer billete. El servicio de primer protocolo valida el primer billete restableciendo o manteniendo el uso de la primera conexión, y el segundo billete restableciendo o manteniendo el uso de la segunda conexión. Cuando se validan el primero y el segundo billetes y se restablecen las conexiones, el servicio de primer protocolo enlaza la primera conexión con la segunda conexión para mantener la sesión de comunicación del cliente con el servicio anfitrión. Pueden generarse y validares billetes adicionales para restablecer o mantener conexiones adicionales del usuario, o "saltos", entre el cliente y el servicio anfitrión. De esta forma, se valida cada conexión, o "salto", entre el cliente y el servicio anfitrión.
Haciendo referencia a la Fig. 1A, en general, el invento se refiere a comunicaciones de redes y puede tener una utilidad particular a la hora de ofrecer a un cliente una conexión fiable con un servicio anfitrión. En una visión global, un sistema 100 para comunicaciones de red incluye un cliente 108 (por ejemplo, un primer dispositivo de ordenador) en comunicación con un servicio 112 de primer protocolo (por ejemplo, un segundo dispositivo de ordenador), por una red 104. También se incluyen en el sistema 100 una pluralidad de servicios anfitriones 116a-116n residentes en un nodo anfitrión 188 (por ejemplo, un tercer dispositivo de ordenador) que están en comunicación con el servicio 112 de primer protocolo y, a través del servicio 112 de primer protocolo y por la red 104, con el cliente 108. Alternativamente, en otra realización ilustrativa del invento, y con referencia ahora a la Fig. 1B, el servicio 112 de primer protocolo y los servicios anfitriones 116a-116n no están incorporados en dispositivos de ordenador separados, como se muestra en la Fig. 1A, sino que están incorporados en el mismo dispositivo de ordenador tal como, por ejemplo, el nodo anfitrión 118a. En la Fig. 1B, los servicios anfitriones 116a-116n comunican con el servicio 112 de primer protocolo por la red 104'. El sistema 100 puede incluir uno, dos o cualquier número de nodos anfitriones 118a-118n.
En una realización, las redes 104 y 104' son redes separadas, como en la Fig. 1B. Las redes 104 y 104' pueden ser la misma red 104, como se muestra en la Fig. 1A. En una realización, la red 104 y/o la red 104' están constituidas, por ejemplo, como redes de área local (LAN), tales como una Intranet corporativa o una red de área amplia (WAN), tal como Internet o la World Wide Web. El cliente 108, el servicio 112 de primer protocolo, los servicios anfitriones 116a-116n, y/o los nodos anfitriones 118a-118n, pueden conectarse a las redes 104 y/o 104' a través de una variedad de conexiones que incluyen, aunque sin limitarse a ellas, líneas estándar de telefonía, enlaces LAN o WAN (por ejemplo, 802, 11, T1, T3, 56kb, X.25), conexiones de banda ancha (por ejemplo, ISDN, retransmisión de tramas, ATM) conexiones inalámbricas o combinaciones de cualesquiera o de todas las anteriores.
El cliente 108 está en comunicación con el servicio 112 de primer protocolo por el canal 135 de comunicaciones entre cliente y servicio de primer protocolo y, también, está en comunicación con el servidor 120 de red mediante el canal 140 de comunicaciones entre cliente y servidor web. El servicio 112 de primer protocolo se encuentra en comunicación con la autoridad 136 a cargo de los billetes a través de un canal 145 de comunicaciones entre el servicio de primer protocolo y dicha autoridad, y el servidor web 120 está en comunicación con la autoridad 136 a cargo de los billetes a través de un canal 150 de comunicaciones entre el servidor de red y la citada autoridad. El servicio 112 de primer protocolo está, también, en comunicación con el nodo anfitrión 118 por los canales 124a-124n de comunicaciones entre el servicio de primer protocolo y el servidor. En otra realización, el servidor web 120 puede comunicarse con el nodo anfitrión 118 a través de un canal 155 de comunicaciones agente-servidor. Similarmente, el nodo anfitrión 118 puede comunicarse con la autoridad 136 a cargo de los billetes a través de un canal 157 de comunicaciones billetes-servidor. En una realización, los respectivos canales de comunicaciones 124a-124n, 135, 140, 145, 150, 155, 157 se establecen sobre la red 104.
Realizaciones ilustrativas de los canales de comunicaciones 124a-124n, 135, 140, 145, 150, 155, 157, incluyen líneas estándar de telefonía, enlaces LAN o WAN (por ejemplo, T1, T3, 56kb, X.25), conexiones de banda ancha (por ejemplo, ISDN, retransmisión de tramas, ATM) y conexiones inalámbricas. Las conexiones por los canales de comunicaciones 124a-124n, 135, 140, 145, 150, 155, 157 pueden establecerse utilizando una variedad de protocolos de comunicaciones (por ejemplo, HTTP, HTPS, TCP/IP, IPX, SPX, NetBIOS, Ethernet, RS232, protocolo MAPI (interfaz de programación para aplicaciones de mensajería), RTSP (protocolo de reproducción directa en tiempo real), RTSPU (protocolo de reproducción directa en tiempo real utilizado para esquema de protocolo de datagramas de usuario), el protocolo PNM (Progressive Networks Multimedia) desarrollado por RealNetworks, Inc., de Seattle, WA, EE.UU., protocolo MMS (especificación para la fabricación de mensajes, y conexiones asíncronas directas.
En otro aspecto, la Fig. 1A muestra un diagrama de bloques de una realización de un sistema 100 de comunicaciones para garantizar la entrega de contenido. En una realización, el servicio 112 de primer protocolo comprende un representante 115 y el sistema 100 incluye un servidor web 120, y una autoridad 136 a cargo de los billetes. El sistema 100 incluye, también, dos cortafuegos 160, 161 que prohíben las comunicaciones no autorizadas hacia/desde el nodo anfitrión 118. La red entre los cortafuegos 160, 161 se denomina, con frecuencia, DMZ ("zona desmilitarizada") 130. En una realización, la DMZ 130 incluye el servicio 112 de protocolo de billetes, que comprende un representante 115 y el servidor web 120.
La DMZ 130 separa los servicios anfitriones 116a-116n de los componentes (por ejemplo, el servicio 112 de primer protocolo) del sistema 100 a los que pueden acceder individuos no autorizados. Como se ha descrito anteriormente, la DMZ 130 está definida por dos cortafuegos 160, 161 que prohíben las comunicaciones no autorizadas. El primer cortafuegos 160 y el segundo cortafuegos 161 aplican, cada uno, un conjunto de normas para determinar qué mensajes pueden atravesar la DMZ 130. En una realización, el primer cortafuegos 160 y el segundo cortafuegos 161 aplican el mismo conjunto de normas. Alternativamente, el primer cortafuegos 160 y el segundo cortafuegos 161 pueden aplicar diferentes conjuntos de normas. Cada cortafuegos 160, 161, puede ser un encaminador, un ordenador o cualquier otro dispositivo de control de acceso a la red. En otra realización, el sistema 100 incluye uno de los cortafuegos 160, 161 o carece de ellos. En otra realización, uno de los cortafuegos 160, 161 está desplegado en el nodo anfitrión 118. En otra realización (no mostrada), uno o más de los cortafuegos 160, 161, están desplegados en un nodo intermediario.
En una realización, el servicio 112 de primer protocolo incluye un representante 115 que comprende una pasarela de seguridad a través de la cual deben pasar los mensajes por el canal 135 de comunicaciones entre cliente y servicio de primer protocolo. En una realización, el cortafuegos 160 de la red rechaza cualquier mensaje entrante desde el canal 135 de comunicaciones entre cliente y servicio de primer protocolo que no tengan el servicio 112 de primer protocolo como su destino. De igual manera, el cortafuegos 160 de la red rechaza cualquier mensaje saliente para el canal 135 de comunicaciones entre cliente y servicio de primer protocolo, a no ser que su fuente sea el servicio 112 de primer protocolo. Si bien se ilustra como un representante 115 del servicio 112 de primer protocolo, la pasarela de seguridad puede ser, alternativamente, un encaminador, un cortafuegos, un repetidor o cualquier componente de red que pueda ofrecer la seguridad necesaria. En otra realización, el representante 115 es un componente de red separado del servicio 112 de primer protocolo que puede ejecutarse en el mismo dispositivo de ordenador que el servicio 112 de primer protocolo o en un dispositivo de ordenador diferente. Por ejemplo, en la Fig. 1B el representante 115 está separado del servicio 112 de primer protocolo. El representante 115 está en la DMZ 130 con el servidor web 120. En cada uno de los nodos anfitriones 118a-118n se ejecutan múltiples instancias del servicio 112 de primer protocolo. Cada servicio 112 de primer protocolo comunica con el representante 115 por el canal 135 de comunicaciones, que es el canal 135 de comunicaciones entre cliente y servicio de primer protocolo. En este caso, el componente representante 115 es un intermediario para permitir el paso seguro de comunicaciones entre el cliente 108 y el servicio 112 de primer protocolo.
La red 104 puede ser una red de área local (LAN), una red de área amplia (WAN) o una red de redes tal como Internet o la World Wide Web (es decir, la web). Cada uno de los respectivos canales de comunicaciones 124a-124n, 135, 140, 145, 150, 155, 157 puede ser parte de diferentes redes. Por ejemplo, el canal 135 de comunicaciones entre cliente y servicio de primer protocolo puede pertenecer a una primera red (por ejemplo, la World Wide Web) y el canal 140 de comunicaciones entre cliente y servidor web puede pertenecer a una segunda red (por ejemplo, una extranet segura o una red privada virtual (VPN)). En otras realizaciones, la red 104 abarca tanto la DMZ 230 como la agrupación centralizada 169 de servidores y en todos ellos se utiliza el mismo protocolo de comunicaciones. En algunas realizaciones, ningún cortafuegos 160 separa el servicio 112 de primer protocolo y el servidor web 120 del nodo anfitrión 118 y la autoridad 136 a cargo de los billetes.
Realizaciones ilustrativas de los canales de comunicaciones 124a-124n, 135, 140, 145, 150, 155, 157 incluyen líneas estándar de telefonía, enlaces LAN o WAN (por ejemplo, T1, T3, 56kb, X.25), conexiones de banda ancha (por ejemplo, ISDN, retransmisión de tramas, ATM) y conexiones inalámbricas. Las conexiones por los canales de comunicaciones 124a-124n, 135, 140, 145, 150, 155, 157 pueden establecerse utilizando una variedad de protocolos de comunicaciones (por ejemplo, HTTP, HTPS, TCP/IP, IPX, SPX, NetBIOS, Ethernet, RS232, protocolo MAPI (interfaz de programación para aplicaciones de mensajería), RTSP (protocolo de reproducción directa en tiempo real), RTSPU (protocolo de reproducción directa en tiempo real utilizado para esquema de protocolo de datagramas de usuario), el protocolo PNM (Progressive Networks Multimedia) desarrollado por RealNetworks, Inc., de Seattle, WA, EE.UU., protocolo MMS (especificación para la fabricación de mensajes, y conexiones asíncronas directas.
El cliente 108 puede ser cualquier puesto de trabajo, ordenador de sobremesa, ordenado portátil, ordenador de mano, teléfono móvil, terminal inteligente o no inteligente, ordenador de red, dispositivo inalámbrico, aparato para acceso a información, miniordenador, ordenadores centrales u otras formas de dispositivo de computación o de comunicaciones que sea capaz de comunicarse y dotado de suficiente potencia de tratamiento y de suficiente capacidad de memoria para llevar a cabo las operaciones descritas en este documento. Además, el cliente 108 puede ser un ordenador cliente de sobremesa, local, conectado en una red local 104 o puede ser un dispositivo de presentación cliente remoto de una red 104' separada. El cliente 108 puede incluir, por ejemplo, un dispositivo de presentación visual (por ejemplo, un monitor de ordenador), un dispositivo de entrada de datos (por ejemplo, un teclado), un almacenamiento persistente y/o volátil (por ejemplo, una memoria de ordenador), un procesador y un ratón. Los sistemas operativos soportados por el cliente 108 pueden incluir cualquier miembro de la familia de sistemas operativos WINDOWS, de Microsoft Corporation, de Redmond, Washington, EE.UU., el sistema operativo Macintosh, el sistema operativo Java y diversas variedades de Unix (por ejemplo, Solaris, SunOS, Linux, HP-UX, A/IX y distribuciones basadas en BSD) o cualquier otro sistema operativo capaz de soportar al cliente 108 cuando ejecuta las operaciones descritas en esta memoria.
En una realización, el cliente 108 incluye un navegador web 162, tal como INTERNET EXPLORER, desarrollado por Microsoft Corporation, de Redmond, Washington, EE.UU., para conexión con la web. En otra realización, el navegador 162 utiliza el existente soporte de SSL (capa de conexión segura) para establecer el canal 140 de comunicaciones seguro entre cliente y servidor web, con el servidor web 120. SSL es un protocolo seguro desarrollado por Netscape Communication Corporation, de Mountain View, California, EE.UU., y en la actualidad constituye un estándar promulgado por la Internet Engineering Task Force (IETF).
En algunas realizaciones, como se muestra en las Figs. 1A y 1B, un agente cliente 128 está incluido dentro del cliente 108. El agente cliente 128 puede ser utilizado para establecer e intercambiar comunicaciones con el servicio anfitrión 116a-116n por el canal de comunicaciones 135 entre cliente y servicio de primer protocolo. El agente cliente 128 puede incorporarse, por ejemplo, como un programa de software y/o como un dispositivo de hardware tal como, por ejemplo, un ASIC (circuito integrado específico para aplicaciones) o una FPGA (agrupación de puertas lógicas programables en el campo). El agente cliente 128 puede utilizar cualquier tipo de protocolo y puede ser, por ejemplo, un agente cliente FTTP, un agente cliente FTP, un agente cliente Oscar o un agente cliente Telnet. En una realización, el agente cliente 128 es un cliente ICA, desarrollado por Citrix Systems, Inc., de Fort Lauderdale, Florida, EE.UU. y denominado en lo que sigue cliente ICA 128. Otras realizaciones del agente cliente 128 incluyen un cliente RDP, desarrollado por Microsoft Corporation, de Redmond, Washington, EE.UU., un cliente de entrada de datos en una aplicación cliente/servidor tradicional, un control ActiveX, o un pequeño programa Java, En algunas realizaciones, el agente cliente 128 está configurado, en sí mismo, para comunicarse utilizando el primer protocolo. En algunas realizaciones (no mostradas), el cliente 108 incluye una pluralidad de agentes cliente 128a-128n, cada uno de los cuales comunica con un servicio anfitrión 116a-116n, respectivamente. Además, la salida de una aplicación en ejecución en el servicio anfitrión 116a-116n puede presentarse en el cliente 108 a través, por ejemplo, del agente cliente 128 o del navegador web 162.
En otra realización, se configura un agente cliente autónomo para permitir que el cliente 108 se comunique utilizando el primer protocolo. El agente cliente autónomo puede estar incorporado dentro del cliente 108 o, alternativamente, el agente cliente autónomo puede estar separado del cliente 108. El agente cliente autónomo es, por ejemplo, un representante anfitrión local. En general, el agente cliente autónomo puede llevar a la práctica cualquiera de las funciones descritas en este documento en relación con el agente cliente 128.
Similarmente, con referencia a la Fig. 1A, cada uno de entre el servicio 112 de primer protocolo y los servicios anfitriones 116a-116n puede estar previsto en cualquier dispositivo de computación que sea capaz de comunicarse y que tenga una capacidad de memoria y una potencia de tratamiento suficientes para llevar a cabo las operaciones descritas en este documento. Alternativamente, cuando la funcionalidad del servicio 112 de primer protocolo y de los servicios 116a-116n están incorporadas en el mismo dispositivo de computación, tal como, por ejemplo, uno de los nodos anfitrión 118a-118n, como en la Fig. 1B, el servicio 112 de primer protocolo y/o los servicios anfitriones 116a-116n pueden incorporarse en la práctica como un programa de software que se ejecuta en un ordenador para fines generales y/o como un dispositivo de hardware para fines especiales tal como, por ejemplo, un ASIC o una
FPGA.
De manera similar al cliente 108, cada uno de los nodos anfitriones 118a-118n puede estar constituido por cualquier dispositivo de computación descrito en lo que antecede (por ejemplo, un ordenador personal) que sea capaz de comunicarse y que tenga capacidad de memoria y potencia de tratamiento suficientes para llevar a cabo las operaciones descritas en este documento. Cada uno de los nodos anfitriones 118a-118n puede establecer comunicación por los canales de comunicaciones 124a-124n utilizando una variedad de protocolos de comunicaciones (por ejemplo, ICA, HTTP, TCP/IP e IPX, SPX, NetBIOS, Ethernet, RS232 y conexiones asíncronas directas).
En una realización, cada uno de los servicios anfitriones 116a-116n aloja uno o más programas de aplicaciones que están disponibles remotamente para el cliente 108. Las aplicaciones puestas a disposición del cliente 108 para que éste las utilice, pueden denominarse aplicaciones publicadas. El mismo programa de aplicación puede estar alojado en uno o en cualquier número de servicios anfitriones 116a-116n. Ejemplos de tales aplicaciones incluyen programas de tratamiento de textos, tales como MICROSOFT WORD y programas de hojas de cálculo, tales como MICROSOFT EXCEL, disponibles ambos de Microsoft Corporation, de Redmond, Washington, EE.UU. Otros ejemplos de programas de aplicaciones que pueden alojarse en cualquiera o en todos los servicios anfitriones 116a-116n, incluyen programas de información financiera, programas de registro de clientes, programas que proporcionen información de soporte técnica, aplicaciones de bases de datos de clientes, y gestores de conjuntos de aplicaciones. Además, en una realización, uno o más de los servicios anfitriones 116a-116n está constituido por un servidor de reproducción directa de audio/vídeo que proporciona audio y/o vídeo en reproducción directa al cliente 108. En otra realización, los servicios anfitriones 116a-116n incluyen servidores de ficheros que le proporcionan al cliente 108 todo tipo de ficheros. En una realización, los servicios anfitriones 116a-116n pueden comunicarse con el cliente 108 utilizando un protocolo de presentación tal como ICA, de Citrix Systems, inc., de Fort Lauderdale, Florida, EE.UU., o RDP, de Microsoft Corporation, de Redmond, Washington, EE.UU.
En otra realización, el nodo anfitrión 118 es miembro de una agrupación centralizada 169 de servidores, o red de servidores, que es un grupo lógico constituido por uno o más servidores administrados como una sola entidad. En una realización, una agrupación centralizada 169 de servidores incluye múltiples nodos anfitriones 118a-118n (en general, 118). Aunque la realización mostrada en la Fig. 1B tiene tres nodos anfitriones 118a-118n, la agrupación centralizada 169 de servidores puede tener cualquier número de nodos anfitriones 118, o servidores. En otras realizaciones, la agrupación centralizada 169 de servidores es una red protegida inaccesible para individuos no autorizados, tal como una Intranet corporativa, una VPN (red privada virtual) o una extranet segura. Además, los servidores que constituyen la agrupación centralizada 169 de servidores pueden comunicarse por cualquiera de las redes descritas en lo que antecede (por ejemplo, WAN, LAN) empleando cualquier a de los protocolos descritos.
La autoridad 136 a cargo de los billetes que, en la realización mostrada en la Fig. 1A es parte de la agrupación centralizada 169 de servidores, emite uno o más billetes para autenticar al cliente 108. En particular, la autoridad 136 a cargo de los billetes permite la autenticación del cliente 108 por un canal de comunicaciones (es decir, el canal de comunicaciones 140 cliente-servidor web), basándose en las credenciales de autenticación. La autoridad 136 a cargo de los billetes permite, además, que el cliente 108 sea autenticado para otro canal de comunicaciones (es decir, el canal de comunicaciones 135 cliente-servicio de primer protocolo) sin que el cliente 135 haya de proporcionar repetidamente sus credenciales de autenticación en el otro canal de comunicaciones.
En una realización, la autoridad 136 a cargo de los billetes es un componente de red autónomo. En otras realizaciones, una autoridad 136 a cargo de los billetes, modular, está constituida por un módulo de software que reside en uno o más de los nodos anfitriones 118. Por ejemplo, puede existir una autoridad 136 a cargo de los billetes para cada nodo anfitrión 116a-116n, como se muestra en la Fig. 1B. En esta realización, el servidor web 120 puede comunicarse con la autoridad 136 a cargo de los billetes y/o con el nodo anfitrión 118 por el canal 155 de comunicaciones agente-servidor. En otra realización, la autoridad 136 a cargo de los billetes puede residir en un nodo intermediario, separado de cualquiera de los nodos anfitriones 118a-118n.
En una realización, la autoridad 136 a cargo de los billetes genera un primer billete y un segundo billete. En algunas realizaciones, los billetes son, ambos, para la ocasión. En otras realizaciones, los billetes son generados utilizando un generador de números aleatorios para cifrado en el que se ha sembrado una adecuada aleatoriedad. El primer billete es transmitido al cliente 108 y se utiliza para establecer una primera sesión de comunicaciones entre el cliente 108 y el servicio 112 de primer protocolo. El segundo billete es transmitido al servicio 112 de primer protocolo y es utilizado para establecer una segunda sesión de comunicaciones entre el servicio 112 de primer protocolo y el nodo anfitrión 118.
En una realización, el servidor web 120 entrega páginas web al cliente 108. El servidor web 120 puede ser cualquier ordenador personal (por ejemplo, un ordenador Macintosh, un ordenador personal con microprocesador Intel, desarrollado por Intel Corporation, de Santa Clara, California, EE.UU., un ordenador personal con un microprocesador AMD, desarrollado por Advanced Micro Devices, inc., de Sunnyvale, California, EE.UU., etc.), un terminal basado en Windows, un ordenador de red, un dispositivo inalámbrico (por ejemplo, un teléfono celular), un aparato para acceso a la información, Power PC RISC, dispositivo X, puesto de trabajo, miniordenador, ordenador central, asistente digital personal u otro dispositivo de comunicaciones que sea capaz de establecer con el cliente 108 el canal 140 de comunicaciones, seguro, entre cliente y servidor web.
En otra realización, el servidor web 120 proporciona un portal corporativo, denominado también portal de información empresarial, para el cliente 108. Los portales empresariales son sitios web de una compañía que agregan, personalizan y sirven aplicaciones, datos y contenidos a los usuarios, al tiempo que ofrecen herramientas de gestión para organizar y utilizar la información de manera más eficaz. En otras realizaciones, el servidor web 120 proporciona un portal web, o portal de Internet, para el cliente 108. Un portal web es similar a un portal corporativo pero, típicamente, no incluye información específica sobre el negocio.
En una realización, un usuario del cliente 108 emplea el navegador web 162 para autenticar al usuario frente al servidor web 120. En una realización, el cliente 108 transmite las credenciales del usuario, tales como información sobre registro y clave de paso, al servidor web 120. El servidor web 120 verifica que el usuario tiene acceso a la red 169 de servidores.
En otra realización, el navegador web 162 utiliza SSL para establecer el canal 140 de comunicaciones cliente-servidor web seguro. El navegador web 162 puede conectarse, alternativamente, con el servidor web 120 por el canal 140 de comunicaciones cliente-servidor web, utilizando otros protocolos de seguridad tales como, el protocolo seguro de transferencia de hipertexto (SHTTP) desarrollado por Terisa Systems, de Los Altos, CA., EE.UU:, HTTP sobre SSL (HTTPS), la tecnología de comunicaciones privadas (PCT) desarrollada por Microsoft Corporation, de Redmond, Washington, EE.UU., y la norma de seguridad del nivel de transporte (TLS) promulgada por la Internet Engineering Task Force (IETF). En una realización, el servidor web 120 transmite un portal web o portal empresarial, como se ha descrito anteriormente, al cliente 108 al producirse la validación del usuario para permitir que el cliente 108 solicite que una aplicación o un servidor de sobremesa, por ejemplo, sea presentado remotamente en el cliente 108.
El canal 140 de comunicaciones cliente-servidor web es cualquier canal seguro de comunicaciones. En algunas realizaciones, las comunicaciones por el canal 140 son cifradas. En determinadas, de estas realizaciones, el cliente 108 y el servidor web 120 pueden comunicarse utilizando la capa de conexión segura (SSL) del protocolo de transferencia de hipertexto (HTTPS). Alternativamente, el cliente 108 y el servidor web 120 pueden utilizar otras técnicas de cifrado, tales como técnicas de cifrado simétrico, para proteger las comunicaciones.
Además, en una realización, el canal 135 de comunicaciones entre cliente y servicio de primer protocolo puede establecerse utilizando, por ejemplo, un protocolo de servicios de presentación tal como el protocolo ICA (de arquitectura de cálculo independiente), fabricado por Citrix Systems, Inc., de Fort Lauderdale, Florida, EE.UU. El ICA es un protocolo para servicios de presentación con fines generales, diseñado para ejecutarse sobre protocolos de red estándar industriales tales como TCP/IP, IPX/SPX, NetBEUI, usando protocolos de transporte estándar en la industria tales como ISDN, repetición de tramas y ATM (modo de transferencia asíncrono). El protocolo ICA permite canales virtuales, que son conexiones de transmisión orientadas a sesiones que pueden ser utilizadas por un código de capa de aplicaciones para emitir órdenes para intercambiar datos. En otras realizaciones, el canal 135 de comunicaciones entre cliente y servicio de primer protocolo, puede establecerse empleando el protocolo Thin X o el protocolo de presentación remota (RDP) creado por Microsoft Corporation, de Redmond, Washington, EE.UU.
Si bien se ha descrito estableciendo una primera sesión de comunicaciones entre el cliente 108 y el servicio 112 de primer protocolo y una segunda sesión de comunicaciones entre el servicio 112 de primer protocolo y el nodo anfitrión 118, la sesión de comunicaciones puede verse como una única sesión de comunicaciones lógica entre el cliente 108 y el servicio anfitrión 116.
Refiriéndonos todavía a las realizaciones ilustrativas de las Figs. 1A y 1B, el cliente 108 está configurado para establecer una conexión 135 entre el cliente 108 y un servicio 112 de primer protocolo por la red 104 utilizando un primer protocolo. Por su parte, el servicio 112 de primer protocolo está configurado para aceptar la conexión 135. El cliente 108 y el servicio 112 de primer protocolo pueden, por tanto, comunicarse uno con otro utilizando el primer protocolo como se describe en lo que sigue con referencia a las Figs. 2A-2B y a la Fig. 3.
Como se describe también, con mayor detalle, más adelante, el servicio 112 de primer protocolo está configurado, en una realización, para comunicarse utilizando el primer protocolo. El servicio 112 de primer protocolo está configurado para establecer una conexión 124a-124n entre el servicio 112 de primer protocolo y el servicio anfitrión 116a-116n, respectivamente. Por ejemplo, el servicio 112 de primer protocolo puede establecer una conexión 124a entre el servicio 112 de primer protocolo y un servicio anfitrión 116a y una conexión 124b entre el servicio 112 de primer protocolo y otro servicio anfitrión 116b. En una realización, el servicio 108 de primer protocolo establece por separado tales conexiones 124a-124n (es decir, el servicio 112 de primer protocolo establece una conexión cada vez). En otra realización, el servicio 112 de primer protocolo establece simultáneamente dos o más de tales conexiones
124a-124n.
En todavía otra realización, el servicio 112 de primer protocolo puede establecer y mantener concurrentemente múltiples conexiones 124a-124n. El servicio 112 de primer protocolo está configurado para proporcionar dos o más conexiones 124a-124n sin interrumpir la conexión 135 con el cliente 108. Por ejemplo, el servicio 112 de primer protocolo puede configurarse para establecer la conexión 124a entre el servicio 112 de primer protocolo y el servicio anfitrión 116a cuando un usuario del cliente 108 solicita la ejecución de un primer programa de aplicación residente en el servicio anfitrión 116a. Cuando el usuario da por terminada la ejecución del primer programa de aplicación e inicia la ejecución de un segundo programa de aplicación residente, por ejemplo, en el servicio anfitrión 116b, el servicio 112 de primer protocolo está configurado, en una realización, para interrumpir la conexión 124a y establecer la conexión 124b entre el servicio 112 de primer protocolo y el servicio anfitrión 116b sin interrumpir la conexión 135 entre el servicio 112 de primer protocolo y el cliente 108.
El servicio 112 de primer protocolo y los servicios anfitriones 116a.116n, pueden comunicarse por las conexiones 124a.124n, respectivamente, empleando cualquiera de una variedad de protocolos secundarios, incluyendo, aunque sin limitarse a ellos, HTTP, FTP, Oscar, Telnet, el protocolo de presentación remota ICA de Citrix Systems, Inc., de Fort Lauderdale, Florida, EE.UU., y/o el protocolo RDP de presentación remota de Microsoft Corporation, de Redmond, Washington, EE.UU. Por ejemplo, el servicio 112 de primer protocolo y el servicio anfitrión 116a pueden comunicarse por la conexión 124a utilizando el protocolo de presentación remota ICA, mientras que el servicio 112 de primer protocolo y el servicio anfitrión 116b pueden comunicarse mediante la conexión 124b utilizando el protocolo de presentación remota RDP.
En una realización, el protocolo secundario utilizado para comunicar entre el servicio 112 de primer protocolo y un servicio anfitrión 116 tal como, por ejemplo, el protocolo de presentación remota ICA, incluye una pluralidad de canales virtuales. Un canal virtual es una conexión de transmisión orientada a una sesión, que es utilizada por el código de capa de aplicaciones para emitir órdenes para el intercambio de datos. Por ejemplo, cada uno de la pluralidad de canales virtuales puede incluir una pluralidad de paquetes de protocolo que habilitan la funcionalidad en el cliente remoto 108. En una realización, uno de la pluralidad de canales virtuales incluye paquetes de protocolo para transmitir órdenes de pantalla gráfica desde un servicio anfitrión 116, a través del servicio 112 de primer protocolo, al cliente 108, para hacer que el cliente 108 visualice una interfaz gráfica de usuario. En otra realización, uno de la pluralidad de canales virtuales incluye paquetes de protocolo para transmitir órdenes a la impresora desde un servicio anfitrión 116, a través del servicio 112 de primer protocolo, al cliente 108, para hacer que en el cliente 108 se imprima un documento.
En otra realización, el primer protocolo es un protocolo de tunelización. El servicio 112 de primer protocolo encapsula una pluralidad de protocolos secundarios, cada uno de ellos utilizado para comunicación entre uno de los servicios anfitriones 116a-116n y el servicio 112 de primer protocolo, dentro del primer protocolo. Como tales, los servicios anfitriones 116a-116n y el servicio 112 de primer protocolo se comunican con el cliente 108 a través de la pluralidad de protocolos secundarios. En una realización, el primer protocolo es, por ejemplo, un protocolo de transporte de nivel de aplicaciones capaz de tunelizar los múltiples protocolos secundarios por una conexión TCP/IP.
Refiriéndonos a la Fig. 2A, las comunicaciones entre el cliente 108 y el servicio 112 de primer protocolo a través de la conexión 135, adoptan la forma de una pluralidad de protocolos secundarios 200a-200n (por ejemplo, HTTP, FTP, Oscar, Telnet, ICA y/o RDP) encapsulados dentro de un primer protocolo 204. Esto se indica mediante la situación de los protocolos secundarios 200a-200n dentro del primer protocolo 204. Cuando no se ha solicitado una comunicación segura, el primer protocolo 204 puede comunicarse, como se ilustra en la Fig. 2A, por una conexión 208 TCP/IP no segura.
Refiriéndonos ahora a la Fig. 2B, se utiliza una comunicación segura, el primer protocolo 204 se comunica por una conexión cifrada tal como, por ejemplo, una conexión TCP/IP 212 asegurada mediante el uso de un protocolo seguro 216 tal como el SSL (capa de conexión segura). El SSL es un protocolo seguro desarrollado primero por Netscape Communication Corporation, de Mountain View, California, EE.UU. y, ahora, constituye un estándar promulgado por la Internet Engineering Task Force (IETF) como protocolo TLS (de seguridad de capa de transporte) y descrito en la RFC-2246 del IETF.
Así, la pluralidad de protocolos secundarios 200a-200n se comunican dentro del primer protocolo 204 con (Fig. 2B) o sin (Fig. 2A) un protocolo seguro 216 por la conexión 135. Los protocolos secundarios que pueden utilizarse para comunicación por las conexiones 124a-124n incluyen, aunque sin limitarse a ellos, HTTP, FTP, Oscar, Telnet, ICA y RDP. Además, en una realización, al menos uno de los protocolos secundarios, como se ha descrito en lo que antecede, incluye una pluralidad de canales virtuales, cada uno de los cuales puede incluir una pluralidad de paquetes de protocolo que permitan la funcionalidad en el cliente remoto 108. Por ejemplo, en una realización, un servicio anfitrión 116a es un servidor web, que comunica con el servicio 112 de primer protocolo por la conexión 124a utilizando el protocolo HTTP y otro servicio anfitrión 116b es un servidor de aplicaciones, que comunica con el servicio 112 de primer protocolo por la conexión 124b utilizando el protocolo ICA. El servicio anfitrión 116b genera paquetes de protocolo para transmitir órdenes de pantalla gráfica al cliente 108, para hacer que el cliente 108 visualice una interfaz gráfica de usuario, y paquetes de protocolo para transmitir órdenes de impresión al cliente 108, para hacer que se imprima un documento en el cliente 108.
Otro aspecto del presente invento reside en que el método y en los sistemas descritos en esta memoria reducen el número de veces que se abren y se cierran la conexiones de red. En una realización, el primer protocolo 204 permite que las conexiones 200a-200n de protocolo secundario tunelizadas en él tales como, por ejemplo, una conexión HTTP 200n, sean abiertas y/o cerradas repetidamente, sin requerir también que la conexión de transporte por la que se comunica el primer protocolo 204 (por ejemplo, la conexión TCP 208 y/o 212), la conexión 216 de protocolo seguro, o la propia conexión 204 de primer protocolo, sean abiertas y/o cerradas repetidamente. Sin la encapsulación del primer protocolo 204, el protocolo secundario 200a-200n puede abrir y cerrar con frecuencia conexiones de red, tales como conexiones TCP. Esto añadiría retardos significativos y sobrecarga al sistema. Estos retardos y esta sobrecarga se verían incrementados, además, por el uso de un protocolo 214 de encapsulación seguro, tal como SSL, que aporta una sobrecarga significativa al establecer conexiones de red. Encapsulando el protocolo secundario 200a-200n dentro del primer protocolo 204 y manteniendo la conexión de transporte (208, 212), los protocolos secundarios 200a-200n, como parte de la carga útil del primer protocolo 204, no necesitan realizar frecuentes y costosas aperturas y cierres de la conexión 135 de red. Además, como los protocolos secundarios 200a-200n pueden comunicarse dentro del primer protocolo 204 con un protocolo seguro 216, los protocolos secundarios 200a-200n no necesitan abrir y cerrar conexiones seguras, tal como con SSL. La conexión de transporte (208, 212) establece y mantiene la conexión 135 de red de modo que los segundos protocolos encapsulados 200a-200n pueden comunicarse sin abrir y cerrar repetidamente la conexión 135 de red, segura o no. Esto incrementa significativamente la velocidad de comunicación de los protocolos secundarios 200a-200n.
Como se ha descrito anteriormente, los protocolos secundarios 200a-200n llevan paquetes de protocolo relacionados con aplicaciones que utilizan protocolos tales como HTTP, FTP, Oscar, Telnet, RDA o ICA. Los paquetes de protocolo secundario 304a-304n transportan datos relacionados con la funcionalidad de aplicaciones sometidas a transacciones entre el cliente 108 y el servicio anfitrión 116a-116n. Por ejemplo, un usuario en el cliente 108 puede interactuar con una página web proporcionada por un servicio anfitrión 116a-116n. En las transacciones entre el cliente 108 y el servicio anfitrión 116a-116n, el protocolo secundario 200a-200n encapsulado en el primer protocolo 204, puede tener paquetes de protocolo http relacionados para visualizar la página web y recibir cualquier interacción del usuario para comunicar con el servicio anfitrión 116a-116n. Como la conexión de transporte (208, 212) no es mantenida por los protocolos secundarios 200a-200n, los protocolos secundarios 200a-200n no tienen que gestionar ninguna interrupción de conexión a nivel de red. Como tales, los protocolos secundarios 200a-200n pueden no proporcionar, en sus cargas útiles, información alguna sobre interrupciones de conexión a nivel de red. En el ejemplo anterior, los paquetes 304a-304n de protocolo secundario http relacionados de los protocolos secundarios 200a-200n transmitidos al cliente 108, no proporcionarían notificación alguna acerca de que se haya producido una interrupción de red, por ejemplo, un mensaje de error en una página web. Por tanto, al usuario en el cliente 108 no se le notificará de interrupción alguna de la conexión a nivel de red a través del protocolo secundario 200a-200n. Esto, efectivamente, le oculta las interrupciones de conexión de red al usuario durante la utilización de las aplicaciones relacionadas con los protocolos secundarios 200a-200n.
Haciendo referencia a la Fig. 3, un proceso ilustrativo 200 utilizado por el servicio 112 de primer protocolo y el agente cliente 129 del cliente 108 encapsula la pluralidad de protocolos secundarios 200 (por ejemplo, HTTP, FTP, Oscar, Telnet, ICA y/o RDP) dentro del primer protocolo 204 para comunicación vía la conexión 135. Opcionalmente, como se describe en lo que sigue, el proceso ilustrativo 200 utilizado por el servicio 112 de primer protocolo y el agente cliente 128 del cliente 108 también comprime y/o cifra las comunicaciones al nivel del primer protocolo antes de comunicarse por la conexión 135. Desde el punto de vista del servicio 112 de primer protocolo, se reciben paquetes de protocolo secundario, 304a-304n, a través de las conexiones 124a-124n en el servicio 112 de primer protocolo. Por ejemplo, dos paquetes, 304a y 304b, de protocolo secundario son recibidos por el servicio 112 de primer protocolo. Pueden recibirse uno, dos o cualquier número de paquetes 304a-304n de protocolo secundario. En una realización, los paquetes 304a-304n de protocolo secundario son transmitidos por los servicios anfitriones 116 al servicio 112 de primer protocolo por la conexión 124. Los paquetes 304a-304n de protocolo secundario incluyen una cabecera 308 y un paquete de datos 312, denominado también carga útil de datos.
Después de recibirse los paquetes 304a-304n de protocolo secundario, el servicio 112 de primer protocolo encapsula uno o más de los paquetes 304 de protocolo secundario dentro de un paquete 316 de primer protocolo. En una realización, el servicio 112 de primer protocolo genera una cabecera 320 de paquete de primer protocolo y encapsula, dentro de la carga útil 324 de datos del paquete 316 de primer protocolo, uno o más paquetes 304a-304n de protocolo secundario tal como, por ejemplo, dos paquetes 304a y 304b de protocolo secundario. En otra realización, solamente un paquete 304a de protocolo secundario es encapsulado en cada paquete 316 de primer protocolo.
En una realización, los paquetes 316 de primer protocolo son entonces transmitidos por la conexión 135, por ejemplo por la conexión 208 descrita con referencia a la Fig. 2A, al agente cliente 128 del cliente 108. Alternativamente, en otra realización, el servicio 112 de primer protocolo está configurado, además, para cifrar, antes de la transmisión de cualesquiera paquetes 316 de primer protocolo, las comunicaciones al nivel del primer protocolo 204. En tal realización, los paquetes 316 de primer protocolo se cifran utilizando, por ejemplo, el protocolo SSL descrito con referencia a la Fig. 2B. Como resultado, se generan un paquete seguro 328, que incluye una cabecera 332, y un paquete 316' de primer protocolo, cifrado, como cara útil 336 de datos. El paquete seguro 328 puede ser transmitido entonces por la conexión 135, por ejemplo por la conexión segura TCP/IP 212 ilustrada en la Fig. 2B, al agente cliente 128 del cliente 108.
En otra realización, el servicio 112 de primer protocolo está configurado, además, para comprimir, antes de la transmisión de cualesquiera paquetes 316 de primer protocolo, las comunicaciones al nivel del primer protocolo 204. En una realización, antes de cifrar el paquete 316 de primer protocolo, el servicio 112 de primer protocolo comprime, utilizando una técnica de compresión estándar, el paquete 316 de primer protocolo. Como tal, resulta mejorada la eficacia del sistema 100.
Refiriéndonos de nuevo a las Figs. 1A-1B, el sistema 100 del presente invento, en una realización, le ofrece al cliente remoto 108 una conexión persistente con un servicio anfitrión 116 tal como, por ejemplo, el servicio anfitrión 116a. Por ejemplo, si el cliente 108 establece una conexión 135 entre el cliente 108 y el servicio 112 de primer protocolo y el servicio 112 de primer protocolo establece una conexión 124a entre el servicio 112 de primer protocolo y el servicio anfitrión 116a, entonces el agente cliente 128, el servicio 112 de primer protocolo, o ambos, están configurados para mantener una cola de los paquetes de datos de primer protocolo más recientemente transmitidos a través de la conexión 135. Por ejemplo, los paquetes de datos puestos en cola pueden ser mantenidos por el agente cliente 128 y/o el servicio 112 de primer protocolo tanto antes como después de un fallo de la conexión 135. Además, al fallar la conexión 135, el servicio 112 de primer protocolo y, del mismo modo, el servicio anfitrión 116a, están configurados para mantener la conexión 124a.
Después de un fallo de la conexión 135, el cliente 108 establece una nueva conexión 135 con el servicio 112 de primer protocolo, sin perder dato alguno. Más específicamente, como la conexión 124a es mantenida al fallar la conexión 135, una conexión 135 recién establecida puede enlazarse con la conexión 124a mantenida. Además, como los paquetes de datos de primer protocolo más recientemente transmitidos están en cola, pueden ser transmitidos de nuevo por el cliente 108 al servicio 112 de primer protocolo y/o por el servicio 112 de primer protocolo al cliente 108 por la conexión 135 recién establecida. Como tal, la sesión de comunicaciones entre el servicio anfitrión 116a y el cliente 108 a través del servicio 112 de primer protocolo, es persistente y se mantiene sin pérdida alguna de datos.
En una realización, el agente cliente 128 del cliente 108 y/o el servicio 112 de primer protocolo numera los paquetes de datos que transmiten por la conexión 135. Por ejemplo, cada uno de entre el agente cliente 128 y el servicio 112 de primer protocolo numera por separado sus propios paquetes de datos transmitidos, sin tener en cuenta como numera el otro sus paquetes de datos. Además, la numeración de los paquetes de datos puede ser absoluta, sin renumeración alguna de los paquetes de datos, es decir, el primer paquete de datos transmitido por el agente cliente 128 y/o el servicio 112 de primer protocolo, puede numerarse como 1, numerándose tras él, consecutivamente, cada paquete de datos transmitido por la conexión 135 por el agente 128 y/o el servicio 112 de primer protocolo, respectivamente.
En una realización de esta clase, después de interrumpirse y restablecerse una conexión 135, el agente cliente 128 y/o el servicio 112 de primer protocolo informa al otro del siguiente paquete de datos que necesita. Por ejemplo, cuando el agente cliente 128 ha recibido los paquetes de datos números 1-10 antes de la interrupción de la conexión 135, el agente cliente 128, al restablecerse la conexión 135, informa al servicio 112 de primer protocolo de que, ahora, necesita el paquete de datos número 11. Similarmente, el servicio 112 de primer protocolo también puede funcionar como tal. Alternativamente, en otra de tales realizaciones, el agente cliente 128 y/o el servicio 112 de primer protocolo informa al otro del último paquete de datos recibido. Por ejemplo, cuando el agente cliente 128 ha recibido los paquetes de datos números 1-10 antes de interrumpirse la conexión 135, el agente cliente 128, al restablecerse la conexión 135, informa al servicio 112 de primer protocolo de que el último paquete de datos que recibió fue el número 10. De nuevo, el servicio 112 de primer protocolo puede funcionar, también, como tal. En todavía otra realización, el agente cliente 128 y/o el servicio 112 de primer protocolo informa al otro, al restablecerse la conexión 135, tanto del último paquete de datos que recibió como del siguiente paquete de datos que necesita.
En tales realizaciones, al restablecerse la conexión 135 el agente cliente 128 y/o el servicio 112 de primer protocolo pueden retransmitir los paquetes de datos almacenados temporalmente no recibidos por el otro, permitiendo que la sesión de comunicaciones entre el servicio anfitrión 116 y el cliente 108, a través del servicio 112 de primer protocolo, continúe sin perderse datos. Además, al restablecerse la conexión 135, el agente cliente 128 y/o el servicio 112 de primer protocolo, pueden limpiar de cada una de sus memorias intermedias respectivas los paquetes de datos almacenados temporalmente que ahora se sabe que han sido recibidos por el otro.
Aunque el almacenamiento temporal de datos para una conexión persistente se describe, en general, en términos de un único servicio 112 de primer protocolo, las técnicas de almacenamiento intermedio y de reconexión descritas en lo que antecede, también son aplicables, en forma similar, a una sesión de comunicaciones de un cliente con un servicio anfitrión 116 que recorra múltiples servicios 112 de primer protocolo. Uno o más de los servicios 112 de primer protocolo adicionales pueden almacenar temporalmente parte del tráfico de datos entre el cliente 108 y el servicio anfitrión 116, o la totalidad de dicho tráfico. En otra realización, un servicio 112 de primer protocolo que gestione uno de los "saltos" entre un cliente y el servicio anfitrión 116, puede almacenar temporalmente los datos enviados a ese "salto" y los recibidos desde él. Como tal, uno o más de los servicios 112 de primer protocolo puede utilizarse para retransmitir paquetes de datos al restablecerse una conexión interrumpida entre el cliente 108 y el servicio anfitrión 116.
Ofreciendo al cliente 108 una conexión fiable y persistente con un servicio anfitrión 116a-116n, el presente invento evita el proceso de abrir una nueva sesión de usuario con el servicio anfitrión 116a-116n al mantener la sesión de usuario a través de las interrupciones de la conexión de red. Para cada sesión de usuario con un servicio anfitrión 116a-116n, el cliente 108 y el servicio anfitrión 116a-116n puede mantener un contexto y contenidos en memoria caché específicos de la sesión y otros mecanismos específicos de las aplicaciones relacionados con esa instancia de la sesión de usuario. Para cada nueva sesión de usuario establecida, tanto los contenidos de memoria caché como el contexto específicos de la sesión han de dotarse de contenido de nuevo o restablecerse para reflejarla nueva sesión de usuario. Por ejemplo, un usuario del cliente 108 puede tener una sesión http con un servicio anfitrión 116a-116n. El servicio anfitrión 116a-116n puede mantener el contexto específico para proporcionar esta instancia de la sesión http con el cliente 108. El contexto puede almacenarse en la memoria del servidor, en ficheros del servidor, una base de datos u otro componente relacionado para proporcionar la funcionalidad del servicio anfitrión 116a.116n. Asimismo, el cliente 108 puede tener un contexto local específico para la instancia de la sesión http, tal como un mecanismo para seguir la pista de una petición pendiente al servicio anfitrión 116a-116n. Este contexto puede almacenarse en la memoria del cliente 108, en ficheros del cliente 108 o en otro componente de software interconectado con el cliente 108. Si la conexión e3ntre el cliente 108 y el servicio anfitrión 116a-116n no es persistente, entonces es necesario establecer una nueva sesión de usuario con un nuevo contexto específico de la sesión en el servicio anfitrión 116a-116n y el cliente 108. El presente invento mantiene la sesión de forma que, por tanto, no es necesario restablecer un nuevo contexto de sesión específico.
El presente invento mantiene la sesión de usuario a través de interrupciones de conexión a nivel de red y sin notificar al usuario del cliente de que la sesión se interrumpió. En la puesta en práctica de este aspecto del invento, el servicio 112 de primer protocolo establece y mantiene una primera conexión con un cliente 108 y una segunda conexión con un servicio anfitrión 116a-116n. A través de la primera conexión y de la segunda conexión, se establece una sesión entre el cliente 108 y el servicio anfitrión 116a-116n. El servicio 112 de primer protocolo puede almacenar y mantener cualquier información relacionada con la sesión, tal como credenciales de autenticación, y el contexto del cliente 108 y el servicio anfitrión 116a-116n para la sesión establecida. Un usuario del cliente 108 ejercerá la funcionalidad ofrecida por el servicio anfitrión 116a-116n a través de la sesión establecida. Como tal, los paquetes 304a-304n de protocolo secundario relacionados contendrán datos relacionados con la transacción de dicha funcionalidad. Estos paquetes 304a-304n de protocolo secundario, como parte del protocolo secundario 200a-200n son encapsulados y comunicados en un primer protocolo 204. Al detectarse una interrupción de la primera conexión o de la segunda conexión, el servicio 112 de primer protocolo puede restablecer la conexión interrumpida al tiempo que mantiene la otra conexión que puede no haber sido interrumpida. La interrupción de la conexión de red puede causar la interrupción de la sesión entre el cliente 108 y el servicio anfitrión 116a-116n. Sin embargo, como el mecanismo de transporte no es mantenido por los protocolos secundarios 200a-200n, la sesión puede restablecerse una vez restablecida la conexión de red, sin que al usuario del cliente 108 se le haya notificado que la sesión fue interrumpida. El protocolo secundario 200a-200n no tiene que contener ninguna información relacionada con la interrupción para su transmisión al cliente 108. Así, la interrupción de la sesión provocada por la interrupción de la conexión de red se le oculta efectivamente al usuario debido al encapsulamiento del primer protocolo 204.
El servicio 112 de primer protocolo que mantiene información relacionada con la sesión, puede restablecer la sesión entre el cliente 108 y el servicio anfitrión 116a-116n. Por ejemplo, si se interrumpe la primera conexión entre el cliente 108 y el servicio 112 de primer protocolo, el servicio 112 de primer protocolo puede mantener activa o abierta la sesión del cliente 108 entre el servicio 112 de primer protocolo y el servicio anfitrión 116a-116n. Una vez restablecida la primera conexión, el servicio 112 de primer protocolo puede enlazar la sesión del cliente 108 con la sesión mantenida entre el servicio 112 de primer protocolo y el servicio anfitrión 116. El servicio 112 de primer protocolo puede enviar al cliente 108 cualquier dato que estuviese en cola antes de la interrupción de la primera conexión. Como tal, el cliente 108 estará utilizando la misma sesión de antes de la interrupción, y el servicio anfitrión 116a-116n y el cliente 108 pueden continuar utilizando cualquier contexto específico de la sesión que pueda existir en la memoria o estar almacenado en otro sitio. Además, por intermedio del servicio 112 de primer protocolo, el servicio anfitrión 116a-116n puede no enterarse de la interrupción de la red entre el servicio 112 de primer protocolo y el cliente 108.
En otro ejemplo, si se interrumpe la segunda conexión entre el servicio 112 de primer protocolo y el servicio anfitrión 116a-116n, el servicio de primer protocolo puede mantener la primera conexión con el cliente 108 mientras restablece la segunda conexión con el servicio anfitrión 116a-116n. Después de restablecida la segunda conexión, el servicio 112 de primer protocolo puede restablecer la sesión del cliente, en nombre del cliente, con el servicio anfitrión 116a-116n. Como el servicio 112 de primer protocolo mantenía información relacionada con la sesión, el servicio de primer protocolo puede restablecer la misma sesión o una sesión similar de modo que el cliente 108 no aprecie la interrupción de la segunda conexión de red ni la interrupción resultante de la sesión entre el servicio 112 de primer protocolo y el servicio anfitrión 116a-116n. Durante el restablecimiento de la segunda conexión de red y de la sesión, el servicio 112 de primer protocolo puede poner en cola cualesquiera transacciones de sesión enviadas por el cliente 108 durante la interrupción. Luego, una vez restablecidas la sesión con el servicio anfitrión 116a-116n, el servicio 112 de primer protocolo puede transmitir las transacciones puestas en cola al servicio anfitrión 116a-116n y la sesión puede continuar normalmente, De esta forma, el cliente 108 continúa funcionando como si no se hubiese producido interrupción de la sesión.
Además, al proporcionar una conexión fiable y persistente, el presente invento también evita interrupciones de las transacciones, órdenes u operaciones como parte de la funcionalidad ejercida entre el cliente 108 y un nodo anfitrión 118, o un servicio anfitrión 116a-116n. Por ejemplo, una operación de copia de ficheros utilizando Windows Explorer no ha sido diseñada para continuar trabajando después de producirse una interrupción en una conexión de red. Un usuario del cliente 108 puede utilizar la característica de copia de ficheros de Windows Explorer para copiar un fichero del cliente 108 a un nodo anfitrión 118. Debido al tamaño del o de los ficheros, esta operación puede tardar en completarse un período relativamente largo. Si, durante la parte media de la operación de copia del fichero al nodo anfitrión 118, se produce una interrupción en la conexión de red entre el cliente 108 y el nodo anfitrión 118, la copia del fichero fallará. Una vez restablecida la conexión de red, el usuario tendrá que poner en marcha otra operación de copia de ficheros desde el Windows Explorer para copiar el fichero desde el cliente 108 al nodo anfitrión 118. Merced al presente invento, el usuario no tendría que iniciar otra operación de copia de ficheros. La conexión de red se restablecería como parte de la conexión del primer protocolo 204, Las operaciones de copia de ficheros se encapsularían en la carga útil de los protocolos secundarios 200a-200n. Como tal, la copia de ficheros de Windows Explorer no sería notificado de la interrupción de la conexión de red y, por tanto, no fallaría. El servicio 112 de primer protocolo restablecería cualquier conexión y transmitiría cualquier dato puesto en cola de modo que la operación puede proseguir sin fallo. El servicio 112 de primer protocolo mantendría una cola con los datos relacionados con las operaciones de copia de ficheros que no han sido transferidas al nodo anfitrión 118 debido a la interrupción de la conexión de red. Una vez restablecida la conexión de red, el servicio 112 de primer protocolo puede transmitir los datos puestos en cola y, luego, continúa transmitiendo los datos relacionados con la operación de copia de ficheros en la forma debida.
Si bien este aspecto del invento se describe en términos de un ejemplo de operación de copia de ficheros, un experto normal en la técnica reconocerá que cualquier operación, transacción, orden, llamada de función, etc., objeto de transacción entre el cliente 108 y el nodo anfitrión 118, o el servicio anfitrión 116a-116n, puede mantenerse y continuarse sin fallos debidos a la interrupción de la conexión de la red y, además, sin que el cliente 108 reconozca que existió una interrupción o sin haber tenido conocimiento de ella.
Además, al proporcionar una conexión fiable y persistente, el presente invento también permite que un cliente 108 pase por diferentes topologías de red sin tener que reiniciar una sesión o una aplicación en el cliente 108. Por ejemplo, el cliente 108 puede ser un ordenador portátil con una conexión de red inalámbrica. Cuando el cliente 108 se mueve de una primer red inalámbrica a una segunda red inalámbrica, la conexión 135 de red del cliente puede interrumpirse temporalmente en la primera red inalámbrica, cuando se establece una conexión de red con la segunda red inalámbrica. La segunda red inalámbrica puede asignar un nuevo identificador de red, tal como un nombre de anfitrión o una dirección de protocolo de Internet, al cliente 108. Este nuevo identificador de red puede ser diferente del identificador de red asignado al cliente 108 por la primera red inalámbrica. En otro ejemplo, el cliente 108 puede estar conectado físicamente a través de un cable Ethernet con una puerta de la red. La conexión física puede desenchufarse y el cliente 108 puede moverse a otra posición, para enchufarse en una puerta diferente de la red. Esto provocaría una interrupción de la conexión 135 de red y, posiblemente, un cambio del identificador de red asignado. Sin el presente invento, habría que reiniciar cualesquiera sesiones con un servicio anfitrión 116a-116n en el cliente 108 o aplicación en el cliente 108, que accediesen a la red debido al cambio de topología de la red, la interrupción de la conexión 135 de red y/o el cambio del identificador de red asignado. Merced al método y a los sistemas descritos en este documento, el presente invento mantiene la conexión de red para el cliente y restablece automáticamente la conexión de red del cliente 108, incluyendo la gestión de los cambios de topología de red y del identificador de la red. El cliente 108 y cualesquiera aplicaciones o sesiones en el cliente 108, puede continuar funcionando como si no se hubiese producido una interrupción de la conexión de red o un cambio del identificador de red. Además, el usuario en el cliente 108 puede no reconocer si ha habido interrupciones o cambios y el cliente 108 puede no recibir ninguna noticia sobre dichas interrupciones.
En otro aspecto, el presente invento se refiere al establecimiento seguro de una sesión de comunicaciones entre el cliente 108 y el servicio anfitrión 116 a través de múltiples conexiones o "saltos" que recorren múltiples componentes de red, tales como un representante, una pasarela de seguridad, un cortafuegos o un encaminador. El establecimiento de la sesión de comunicaciones segura con saltos múltiples puede iniciarse, además, a través de un canal seguro 140 de comunicaciones entre cliente y servidor web, por ejemplo, entre el navegador web 162 y el servidor web 120 utilizando SSL. La autoridad 136 a cargo de los billetes puede proporcionar billetes para cada uno de los saltos tales como la conexión 135 entre cliente y servicio de primer protocolo y las conexiones 124a-124n entre el servicio de primer protocolo y el servicio anfitrión. De esta forma, el cliente 108 es autenticado a través de todas las conexiones entre el cliente 108 y el servicio anfitrión 116a-116n.
En funcionamiento, y también haciendo referencia a la Fig. 4, el usuario cliente solicita (paso 400) que el contenido (por ejemplo, una aplicación, un portátil de sobremesa) sea visualizada remotamente en el cliente 108 (es decir, el cliente 108 ICA). En otra realización, el cliente 108 utiliza el navegador de red 162 para solicitar una aplicación y el servidor web 120 autentica entonces al usuario. Tras recibir la petición, el servidor web 120 valida (paso 405) la petición con la autoridad 136 a cargo de los billetes. La autoridad 136 a cargo de los billetes genera entonces (paso 4010) un billete, que incluye un primer billete, o billete de cliente, y un segundo billete o billete de servicio de primer protocolo. Los billetes primer y segundo con billetes "de un solo uso" que carecen de valor tras usarlos por primera vez. En otra realización, el primer y el segundo billetes deben ser utilizados dentro de un período de tiempo predeterminado.
En una realización, la autoridad 136 a cargo de los billetes guarda en la memoria los billetes primero y segundo (por ejemplo, en la RAM), hasta que se utilice el billete. Alternativamente, la autoridad 136 a cargo de los billetes almacena el primero y el segundo billetes en un dispositivo de almacenamiento (no mostrado) hasta que se utilice el billete. El dispositivo de almacenamiento puede incluir, por ejemplo, una base de datos o una memoria persistente (por ejemplo, un disquete, una unidad de disco duro). La autoridad 136 a cargo de los billetes transmite subsiguientemente (paso 415) el billete del cliente al servidor web 120 y, luego, el servidor web 120 envía el billete de cliente (paso 420) al cliente 108.
El cliente 108 inicia entonces (paso 425) una sesión de comunicaciones con el servicio 112 de primer protocolo transmitiendo una petición de conexión de representante por el canal de comunicaciones 135 entre cliente y servicio de primer protocolo. La petición de conexión de representante incluye el billete de cliente. En una realización, la petición de conexión de representante también incluye una palabra de paso falsa que puede ser sustituida por el servicio 112 de primer protocolo cuando se establezca una sesión de comunicaciones con el nodo anfitrión 118. En otra realización, el servidor web 120 transmite la palabra de paso falsa al cliente 108 para la futura generación de una petición de conexión de representante que tenga un formato aceptable para el servicio 112 de primer protocolo. El servicio 112 de primer protocolo extrae (paso 430) el billete de cliente de la petición de conexión de representante y envía el billete de cliente a la autoridad 136 a cargo de los billetes para su validación. La autoridad 136 a cargo de los billetes valida entonces (paso 435 el primer billete. En una realización, la autoridad 136 a cargo de los billetes verifica que primer billete buscando en su dispositivo de almacenamiento (por ejemplo, una base de datos) el primer billete esperado.
Si la autoridad 136 a cargo de los billetes no encuentra el primer billete en el dispositivo de almacenamiento (por ejemplo, si el primer billete ya ha sido utilizado), la autoridad 136 a cargo de los billetes da por finalizada la sesión de comunicaciones. Si el billete recibido coincide con el billete de cliente que la autoridad 136 a cargo de los billetes espera, el billete de cliente es validado. La autoridad 136 a cargo de los billetes transmite entonces (paso 440) el billete de servicio de segundo o de primer protocolo al servicio 112 de primer protocolo. Además, la autoridad 136 a cargo de los billetes borra el billete del cliente del dispositivo de almacenamiento cuando el billete del cliente ya ha sido utilizado una vez. En otra realización, la autoridad 136 a cargo de los billetes también transmite la dirección de protocolo de Internet (IP) del nodo anfitrión 118 al servicio 112 de primer protocolo. En todavía otra realización, la autoridad 136 a cargo de los billetes transmite el nombre de dominio del nodo anfitrión 118 al servicio 112 de primer protocolo para futura conversión en la dirección IP.
El servicio 112 de primer protocolo recibe el segundo billete, o el billete de servicio de primer protocolo y, subsiguientemente, abre las comunicaciones a través del canal 145 de comunicaciones del servidor representante, transmitiendo (paso 445) el segundo billete al nodo anfitrión 118. El nodo anfitrión 118 recibe el billete de servicio de primer protocolo y, luego, transmite el billete por el canal 157 de comunicaciones billete-servidor hasta la autoridad 136 a cargo de los billetes par validación (paso 447). En una realización, si la autoridad 136 a cargo de los billetes determina que el billete de servicio de primer protocolo recibido del nodo anfitrión 118 ha sido utilizado previamente o no tiene el valor correcto (es decir, el mismo valor que el almacenado en el dispositivo de almacenamiento asociado), la autoridad 136 a cargo de los billetes transmite un mensaje de error al servicio 112 de primer protocolo (o servidor web 120) para dar por terminada la sesión de comunicaciones establecida con el cliente 108. Si la autoridad 136 a cargo de los billetes valida el billete de servicio de primer protocolo (paso 448), el nodo anfitrión 118 lanza entonces (paso 450) la aplicación publicada en ICA. El nodo anfitrión transmite entonces información sobre la aplicación al servicio 112 de primer protocolo (paso 452) para presentación remota de la aplicación en el cliente 108 (paso 455) utilizando el cliente ICA 128.
En otra realización, el cliente 108 lanza el cliente ICA 128 cuando inicia las comunicaciones con el servicio 112 de primer protocolo en el paso 425. En otras realizaciones, el cliente 108 lanza el cliente ICA 128 cuando el cliente 108 recibe la información sobre la aplicación procedente del servicio 112 de primer protocolo en el paso 453.
Así, el cliente 108 no está al tanto del billete de servicio de primer protocolo sino, solamente, del billete del cliente. Además, el cliente ICA 128 no puede acceder al nodo anfitrión 118 sin comunicarse con el servicio 112 de primer protocolo y presentar el billete del cliente.
La autoridad 136 a cargo de los billetes podría, también, transmitir el billete de servicio de primer protocolo al servicio 112 de primer protocolo en el paso 440 como palabra de paso de usuario para el usuario del cliente 108. Esto le permite al servicio 112 de primer protocolo utilizar el billete de servicio de primer protocolo como palabra de paso de registro a fin de poder acceder al nodo anfitrión 118 sin exponer la palabra de paso de registro del usuario en la parte no segura de la web (es decir, el canal 135 de comunicaciones entre cliente y servicio de primer protocolo, durante el paso 425). Así, en una realización, el sistema 100 de comunicaciones podría incluir una base de datos de cartografiado de palabras de paso centralizada gestionada por la autoridad 136 a cargo de los billetes y situada conjuntamente con el nodo anfitrión 118, a fin de correlacionar el billete de servicio de primer protocolo con una palabra de paso de usuario.
Por tanto, la palabra de paso puede acompañar a ambos billetes (es decir al billete de servicio de primer protocolo y al billete de cliente) o la palabra de paso puede acompañar a uno de los dos billetes. Como se ha descrito en lo que antecede, si la palabra de paso acompaña a uno de los dos billetes, por ejemplo al billete del cliente, entonces el billete de servicio de primer protocolo es la palabra de paso. En una realización, la palabra de paso puede ser una palabra de paso del sistema que no cambie de valor o puede ser una palabra de paso de un solo uso, tal como las generadas por los testigos SecureID desarrollados por RSA Security Inc., de Bedford, Massachusetts, EE.UU.
Además, el invento puede extenderse a un sistema de comunicaciones que disponga de cualquier número de servicios 112 de primer protocolo, o "saltos", con el que hay de comunicarse el cliente 108 antes de establecer una sesión de comunicaciones con el nodo anfitrión 118. Si bien se ha descrito con relación a un servicio 112 de primer protocolo, un salto puede comprender cualquier componente de red, tale como un representante 115, un cortafuegos, un encaminador, y un repetidor.
Por ejemplo, y haciendo referencia a la Fig. 5A, un ejemplo de cuatro saltos lo constituye un sistema de comunicaciones 505 que tiene un servicio 112' de primer protocolo con un representante 115', un segundo servicio 112'' de primer protocolo con un representante 115'', y un tercer servicio 112''' de primer protocolo con un representante 115''' (generalmente 115). Los servicios 112 de primer protocolo con representantes 115 se comunican por un canal de comunicaciones de representante a representante, tal como un canal 510' de comunicaciones representante-representante y un segundo canal 510'' de comunicaciones representante-representante (de manera general, canal 510 de comunicaciones representante-representante). El cliente 108 se comunica con el servicio 112 ' de primer protocolo, que comunica con el segundo servicio 112'' de primer protocolo. A su vez, el segundo servicio 112'' de primer protocolo comunica con el tercer servicio 112''' de primer protocolo y, luego, el tercer servicio 112''' de primer protocolo se comunica con el nodo anfitrión 118 por el canal 145 de comunicaciones representante-servidor para establecer la sesión de comunicaciones con el nodo anfitrión 118. Además, aunque la realización anteriormente descrita incluye un billete que tiene un billete de cliente y un billete de servicio de primer protocolo, otra realización incluye el billete que comprende numerosos billetes.
De manera más explícita y haciendo referencia, también, a la Fig. 5B, el servidor web 120 recibe una petición de una aplicación desde el cliente 108 y el servidor web 120 valida la petición con la autoridad 136 a cargo de los billetes (paso 405). La autoridad 136 a cargo de los billetes genera, entonces, un billete de N partes (por ejemplo, T_{1} a T_{N}) en el paso 410. En una realización, la autoridad 136 a cargo de los billetes transmite entonces una parte T_{i} del billete de N partes (por ejemplo, la primera parte del billete o primer billete T_{1}) al servidor web 120 (paso 415). El servidor web 120 transmite entonces el billete T_{1} al cliente 108 (paso 420). En una realización, la autoridad 136 a cargo de los billetes transmite, también, la dirección del siguiente "salto" (por ejemplo, el servicio 112' de primer protocolo) al servidor web 120 que, entonces, transmite la dirección al cliente 108. Esta dirección es la dirección del siguiente salto (por ejemplo el servicio 112 de primer protocolo) que este salto (por ejemplo, el cliente 108) tiene que comunicar con el cliente 108 para, eventualmente, ser autenticado con el nodo anfitrión 118.
El cliente 108 utiliza la dirección para entra en contacto, entonces, con el siguiente "salto" (por ejemplo, el servicio 112' de primer protocolo) e inicia una sesión de comunicaciones con el servicio 112' de primer protocolo transmitiendo una petición de conexión con un representante por el canal 135 de comunicaciones entre cliente y servicio de primer protocolo. El servicio 112' de primer protocolo extrae entonces (paso 530) el primer billete T_{1} de la petición de conexión con el representante y envía este billete a la autoridad 136 a cargo de los billetes para su validación. La autoridad 136 a cargo de los billetes valida entonces (paso 535) el primer billete T_{1}.
Al producirse una verificación apropiada del primer billete T_{1}, la autoridad 136 a cargo de los billetes transmite el siguiente billete T_{i} del billete de N partes (por ejemplo, T_{2}) al siguiente servicio 112 de primer protocolo (por ejemplo, el servicio 112' de primer protocolo) (paso 540). En algunas realizaciones, la autoridad 136 a cargo de los billetes transmite también la dirección del siguiente salto (por ejemplo, el segundo servicio 112'' de primer protocolo) a este salto (por ejemplo, el servicio 112' de primer protocolo), El servicio 112' de primer protocolo transmite este billete al siguiente salto (por ejemplo, el segundo servicio 112'' de primer protocolo) (paso 545). En una realización, el segundo servicio 112'' de primer protocolo verifica T_{2} transmitiendo el billete a la autoridad 136 a cargo de los billetes (paso 550). La autoridad 136 a cargo de los billetes valida el segundo billete T_{2} (paso 555) y el proceso continúa, como se muestra en los pasos 560 a 575. Una vez que se ha validado la última parte del billete de N partes, ocurren los pasos 450 a 455, como se muestra en la Fig. 4, para lanzar la aplicación en el cliente 108.
En una realización, cada servicio 112 de primer protocolo (es decir, cada salto) valida T_{i} (por ejemplo, T_{2}) con una autoridad 136 a cargo de los billetes asociada con el servicio 112 de primer protocolo (es decir, el salto). En esta realización, después de que cada servicio 112 de primer protocolo valida el billete T_{i} (por ejemplo, T_{2}) con una autoridad 136 a cargo de los billetes, la autoridad 136 a cargo de los billetes en la que tiene lugar la validación transmite el siguiente billete T_{i+1} (por ejemplo, T_{3}) y la dirección del siguiente servicio 112 de primer protocolo (es decir, el siguiente "salto" de destino) al servicio 112 de primer protocolo que ha validado el billete T_{i}. Así, cada servicio 112 de primer protocolo está asociado con una autoridad 136 a cargo de los billetes que ha sido configurada con los billetes de salto corriente y siguiente (es decir, validando T_{i} y transmitiendo T_{i+1} para el siguiente salto). Consiguientemente, el siguiente servicio 112 de primer protocolo actúa como cliente para ese salto. Este proceso se repite hasta alcanzar el nodo anfitrión 118 del sistema de comunicaciones 505. Así, cada salto ha sido validado individualmente sin tener que revelar todo el billete a ningún salto.
En otras realizaciones, la autoridad 136 a cargo de los billetes puede emitir más de un billete en lugar de emitir un billete con muchas partes. Por ejemplo, la autoridad 136 a cargo de los billetes genera un billete de primer salto y un billete de segundo salto en el paso 510, no estando asociado el billete de primer salto con el billete de segundo salto. La autoridad 136 a cargo de los billetes transmite, subsiguientemente el billete de primer salto al servidor web 120 y el servidor web 120 transmite el billete de primer salto al cliente 108. El cliente 108 transmite este billete de primer salto al servicio 112 de primer protocolo (por ejemplo, al servicio 112' de primer protocolo) para validación por la autoridad 136 a cargo de los billetes, Al producirse la validación en el paso 535, la autoridad 136 a cargo de los billetes transmite, en el paso 540, el billete de segundo salto al siguiente servicio 112 de primer protocolo (por ejemplo el segundo servicio 112'' de primer protocolo) mientras que el billete de primer salto es independiente del billete de segundo salto.
En otra realización, una o más de las autoridades 136 a cargo de los billetes proporcionan a los representantes 115, como parte del servicio 112 de primer protocolo o por separado del servicio 112 de primer protocolo, cualquier información necesaria para conectar con el siguiente salto, tal como, pero sin limitarse a ello, claves de cifrado, información sobre la configuración del método SSL, e información de autenticación para conectar con un servidor SOCKS (por ejemplo, un servidor SOCKS5, desarrollado por NEC Corporation, de Tokyo, Japón).
En todavía otra realización, una autoridad 136 a cargo de los billetes solamente genera un único billete. La autoridad 136 a cargo de los billetes transmite el único billete al servidor web 120. EL servidor web 120 envía el único billete al cliente 108. El servicio 112 de primer protocolo recibe, subsiguientemente, el billete del cliente 108 y "consume" el billete único al realizar la validación. Como resultado, el sistema 100 de comunicaciones puede utilizar un único billete para proporcionar la posibilidad de utilizar protocolos de comunicaciones arbitrarios por el canal 135 de comunicaciones cliente-representante y el canal 140 de comunicaciones cliente-servidor web. Además, como el nodo anfitrión 118 no recibe ni verifica el billete único, el billete es transparente para el nodo anfitrión 118 y, en consecuencia, el nodo anfitrión 118 no se "entera" del uso del billete.
Explotando la seguridad de las comunicaciones seguras entre el cliente 108 y el servidor web 120 por el canal 140 de comunicaciones seguras cliente-servidor web, el sistema de comunicaciones 505 establece un enlace seguro de comunicaciones por el canal 135 de comunicaciones no seguras cliente-representante para presentar a distancia aplicaciones de sobremesa en forma segura en el cliente 108.
En todavía otra realización, y haciendo referencia de nuevo a la Fig. 4, la autoridad 136 a cargo de los billetes transmite, en el paso 415, una versión inhabilitada del billete de servicio de primer protocolo con el billete de cliente al servidor web 120, para transmisión al cliente 108. El cliente 108 transmite subsiguientemente (paso 425) el billete de servicio de primer protocolo junto con el billete de cliente al servicio 112 de primer protocolo, como parte de la petición de conexión al representante. El servicio 112 de primer protocolo envía entonces ambos billetes a la autoridad 136 a cargo de los billetes. Al recibirse un billete de servicio de primer protocolo inhabilitado, la autoridad 136 a cargo de los billetes habilita el billete de servicio de primer protocolo después de validar el billete de cliente. La autoridad 136 a cargo de los billetes transmite entonces el billete de servicio de primer protocolo habilitado al servicio 112 de primer protocolo, para autenticación al nodo anfitrión 118.
Alternativamente, en otra realización, el servidor web 120 recibe un billete de servicio de primer protocolo inhabilitado y un billete de cliente habilitado de la autoridad 136 a cargo de los billetes y solamente transmite el billete de cliente al cliente 108. El cliente 108 transmite (paso 425) el billete de cliente al servicio 112 de primer protocolo como parte de la petición de conexión del representante. El servicio 112 de primer protocolo envía entonces el billete de cliente a la autoridad 136 a cargo de los billetes. La autoridad 136 a cargo de los billetes valida el billete del cliente y, al validarlo, habilita el billete de servicio de primer protocolo previamente transmitido al servidor web 120. En todavía otra realización, la autoridad 136 a cargo de los billetes transmite un billete de servicio de primer protocolo habilitado al servidor web 120 al validar el billete de cliente para autenticación al nodo anfitrión 118.
Así, en un momento dado, la autoridad 136 a cargo de los billetes solamente proporciona un billete habilitado al cliente 108 o al servicio 112 de primer protocolo, que la autoridad 136 a cargo de los billetes pueda validar. La autoridad 136 a cargo de los billetes puede proporcionar otro billete que puede ser validado (es decir, un billete inhabilitado) hasta que se valide el billete habilitado. Alternativamente, la autoridad 136 a cargo de los billetes puede no transmitir el billete de servicio de primer protocolo al servicio 112 de primer protocolo hasta que la autoridad 136 a cargo de los billetes valide el billete habilitado. Como se expone con mayor detalle en lo que sigue, esto obliga al encaminamiento de comunicaciones en la red utilizando el sistema de comunicaciones 505 porque el cliente 108 no puede pasar por el servidor web 120 ni el servicio 112 de primer protocolo sin que la autoridad 136 a cargo de los billetes haya validado el billete habilitado y transmita el billete necesario para comunicarse con el nodo anfitrión 118.
En otra realización, en vez de transmitir el billete de servicio de primer protocolo al servicio 112 de primer protocolo, como en el paso 440, la autoridad 136 a cargo de los billetes transmite el billete de servicio de primer protocolo al servidor web 120 directamente por el canal 250 de comunicaciones entre servidor web y autoridad a cargo de los billetes. El servidor web 120 transmite entonces automáticamente el billete de servicio de primer protocolo al nodo anfitrión 118. Dicho de otro modo, el servidor web 120 "empuja" al billete de servicio de primer protocolo hacia el nodo anfitrión 118. La autoridad 136 a cargo de los billetes puede, también, empujar al billete de servicio de primer protocolo hacia el nodo anfitrión 118, sin transmisión del billete de servicio de primer protocolo al servicio 112 de primer protocolo ni al servidor web 120.
En todavía otra realización, el nodo anfitrión 118 recupera el billete de servicio de primer protocolo de la autoridad 136 a cargo de los billetes por el canal 157 de comunicaciones billete-servidor de contenidos. Dicho de otro modo, el nodo anfitrión 118 "tira" del billete de servicio de primer protocolo desde la autoridad 136 a cargo de los billetes. Los anteriores ejemplos son ilustraciones de técnicas utilizadas para eliminar el paso 345 (modificando, al tiempo, el destino de la transmisión en el paso 440).
Además, el invento favorece el encaminamiento del cliente 108 a través de servicio 112 de primer protocolo. Como se ha establecido en lo que antecede, el cliente 108 ha de estar en posesión del billete de servicio de primer protocolo para establecer una sesión de comunicaciones con el nodo anfitrión 118. Más específicamente, para establecer una conexión con el nodo anfitrión 118, el servidor web 120 ha de validar primero la petición del cliente 108 con la autoridad 136 a cargo de los billetes. Una vez validada, el cliente 108 obtiene el primer billete y transmite este primer billete a la autoridad 136 a cargo de los billetes para su validación. Sin embargo, al realizar la validación, la autoridad 136 a cargo de los billetes transmite el billete de servicio de primer protocolo de vuelta al servicio 112 de primer protocolo en vez de al cliente 108. La sesión de comunicaciones entre el cliente 108 y el servicio anfitrión 116 se establece cuando el servicio anfitrión 116 recibe el billete de servicio de primer protocolo. Así, el cliente 108 ha de comunicar con el servicio 112 de primer protocolo con el fin de que el billete de servicio de primer protocolo sea transmitido al servicio anfitrión 116, favoreciendo así el encaminamiento del cliente 108 a través del servicio 112 de primer protocolo. Así, el invento puede garantizar el recorrido apropiado de un dispositivo de seguridad (por ejemplo, el servicio 112 de primer protocolo) antes de conceder acceso al nodo anfitrión 119.
Por ejemplo, un nodo anfitrión 118 ejecuta varias aplicaciones, tales como MICROSOFT WORD o MICROSOFT EXCEL, desarrolladas, ambas, por Microsoft Corporation, de Redmond, Washington, EE.UU. En una realización, el cliente 108 utiliza NFUSE, desarrollado por Citrix Systems, Inc., de Fort Lauderdale, Florida, EE.UU. para obtener información de la agrupación centralizada 169 de servidores en la que el cliente 108 puede acceder a aplicaciones. Si un usuario cliente quiere acceder a MICROSOFT WORD y utilizarlo, el cliente 108 solicita la aplicación del servidor web 120. Sin embargo, solamente los usuarios que abonen una tasa por aplicación a MICROSOFT WORD pueden ser autorizados para acceder a la aplicación.
Para garantizar el pago de la tasa por aplicación, el sistema de comunicaciones 505 incluye el servicio 112 de primer protocolo y la autoridad 136 a cargo de los billetes para forzar el encaminamiento del cliente 108 a través del servicio 112 de primer protocolo. El encaminamiento del cliente 108 a través del servicio 112 de primer protocolo resulta valioso para el proveedor de la aplicación si se utiliza el servicio 112 de primer protocolo para recoger la tasa de la aplicación y autorizar al usuario a que acceda a la aplicación.
La autoridad 136 a cargo de los billetes genera, subsiguientemente, un billete asociado con la petición de la aplicación. Un primer billete habilitado es transmitido entonces al cliente 108. Como el cliente 108 no tiene la dirección del nodo anfitrión 118, el cliente 108 no puede acceder a la aplicación. Además, el cliente 108 no ha sido autorizado aún por el servicio 112 de primer protocolo (es decir, todavía no ha realizado el pago). Así, el cliente 108 tiene que comunicar con el servicio 112 de primer protocolo para que se le autorice. El servicio 112 de primer protocolo puede transmitir, entonces, el primer billete habilitado a la autoridad 136 a cargo de los billetes al pagarse la tasa de la aplicación.
La autoridad a cargo de los billetes valida entonces el billete del cliente y, subsiguientemente, transmite (o habilita) un billete de servicio de primer protocolo al representante 115. El servicio 112 de primer protocolo transmite entonces el billete de servicio de primer protocolo al nodo anfitrión 118 (por ejemplo, suponiendo que el usuario cliente ha pagado la tasa de la aplicación), que habilita al nodo anfitrión 118 para transmitir la aplicación al cliente 108. El sistema de comunicaciones 505 también puede utilizar tecnología ALE (lanzamiento e integración de aplicaciones), desarrollada por Citrix Systems, Inc., para permitir el lanzamiento de la aplicación desde una página HTML o la integración de la aplicación en una página HTML, para su entrega al cliente 108.
En otro aspecto, el presente invento se refiere a la reconexión de un cliente 108 con un servicio anfitrión 116 y a la nueva autenticación de las conexiones o "saltos" entre el cliente 108 y el servicio anfitrión 116. La Fig. 6A representa otra realización ilustrativa de un sistema 600 que es capaz de volver a conectar al cliente 108 con un servicio anfitrión 116. Además de las redes 104 y 104', el cliente 108, el servicio 112 de primer protocolo y los servicios anfitriones 116, todos los cuales se han descrito en lo que antecede, el sistema 600 incluye, además, un nodo intermediario 632 y una autoridad 1326 a cargo de los billetes. En una realización, el nodo intermediario 632 es una pasarela de seguridad tal como, por ejemplo, un cortafuegos y/o un encaminador, a través de la cual deben pasar los mensajes entre el cliente 108 y el servicio 112 de primer protocolo debido a la configuración de la red 104. Además, el nodo intermediario 632 puede comprender el representante 115 del servicio 112 de primer protocolo, con o sin el servicio 112 de primer protocolo. La autoridad 136 a cargo de los billetes puede ser, como se ha ilustrado, un componente autónomo de red que sea capaz de establecer comunicaciones y que tenga suficiente capacidad de memoria y potencia de procesador para llevar a cabo las operaciones descritas en este documento.
Como se muestra en la realización ilustrativa de la Fig. 6A, el nodo intermediario 632 está configurado para aceptar una conexión 135a iniciada por el cliente 108 y establecer una segunda conexión 135b con el servicio 112 de primer protocolo. Juntas, la conexión 135a y la segunda conexión 135b, constituyen la conexión 135, descrita anteriormente, por la que el cliente 108 y el servicio 112 de primer protocolo se comunican utilizando el primer protocolo.
El nodo intermediario 632, como se muestra, también está configurado para comunicar con la autoridad 136 a cargo de los billetes. En una realización, la autoridad 136 a cargo de los billetes está configurada para recibir una petición para un primer billete de reconexión procedente del nodo intermediario 632 y para generar, después, el primer billete de reconexión. El primer billete de reconexión puede incluir, por ejemplo, un número aleatorio grande. En otra realización, la autoridad 136 a cargo de los billetes está configurada para recibir una petición de un primer billete de reconexión para cada uno de los "saltos" entre el cliente y el servicio anfitrión 116. Por ejemplo, el nodo intermediario 632 puede requerir billetes de reconexión para la conexión entre el cliente 108 y el nodo intermediario 632, entre el nodo intermediario 632 y el servicio 112 de primer protocolo y entre el servicio 112 de primer protocolo y el servicio anfitrión 116. Estos billetes de reconexión solamente pueden ser válidos para cada uno de los "saltos". Por ejemplo, un primer billete de reconexión para la conexión entre el servicio 112 de primer protocolo y el servicio anfitrión 116, solamente es válido para autenticar el servicio 112 de primer protocolo ante el servicio anfitrión 116 en nombre del cliente 108.
En otra realización, la autoridad 136 a cargo de los billetes está configurada para generar un identificador. El identificador puede ser, por ejemplo, un número aleatorio que esté asociado (por ejemplo, correlacionado) con el primer billete de reconexión. En una realización, el identificador es un número aleatorio menor que el número aleatorio que forma el primer billete de reconexión. Por ejemplo, el identificador puede ser un número aleatorio de 42 bits. En otra realización, el identificador asociado con un billete o un billete de reconexión es una dirección o un puntero que señala al siguiente "salto" de la conexión de múltiples saltos entre el cliente 108 y el servicio anfitrión 116. En este caso, un billete o un billete de reconexión es validado para un solo "salto" con un puntero que señala al siguiente "salto". El siguiente "salto" tendrá que obtener y validar un billete o un billete de reconexión diferente y así sucesivamente hasta validarse el último "salto" y conectarse al servicio anfitrión 116 en nombre del cliente 108.
La autoridad 136 a cargo de los billetes transmite el primer billete de reconexión y el identificador al nodo intermediario 632, al tiempo que mantiene una copia del primer billete de reconexión y una copia del identificador. La copia del primer billete de reconexión puede ser utilizada posteriormente por la autoridad 136 a cargo de los billetes para validar el primer billete de reconexión originalmente transmitido al cliente 108 cuando sea presentado posteriormente a la autoridad 136 a cargo de los billetes durante el proceso de reconexión del cliente 108. En una realización, la autoridad 136 a cargo de los billetes mantiene, también, una dirección para el servicio 112 de primer protocolo que, como se explica más adelante, está asociada con el primer billete de reconexión y, al validarse el primer billete de reconexión, es transmitida al nodo intermediario 632.
En una realización, el nodo intermediario 632 está configurado, además, para usar el identificador a él transmitido por la autoridad 136 a cargo de los billetes a fin de suprimir la copia del primer billete de reconexión conservado en la autoridad 136 a cargo de los billetes. En otra realización, como se describe en lo que sigue, la autoridad 136 a cargo de los billetes está configurada, además, para borrar, durante el proceso de reconexión del cliente 108 con un servicio anfitrión 116, el primer billete de reconexión y, después, generar un primer billete de reconexión que lo reemplace. Además, en otra realización, el primer billete de reconexión está configurado para borrado automático tras un período de tiempo predeterminado. En la realización de billetes de reconexión para cada uno de los "saltos" entre el cliente y el servicio anfitrión 116, uno, algunos o todos los billetes de reconexión pueden configurarse para borrado automático después de transcurrido un período de tiempo predeterminado. En otras realizaciones, la autoridad 136 a cargo de los billetes o el nodo intermediario 632, está configurada para borrar cada uno de los billetes de múltiples saltos y generar billetes que los reemplacen.
En otra realización, el servicio 112 de primer protocolo está configurado para generar un segundo billete de reconexión que, como en el caso del primer billete de reconexión, puede incluir, por ejemplo, un número aleatorio grande. En una realización, el servicio 112 de primer protocolo genera segundo billetes de reconexión para cada uno de los "saltos" entre el cliente 108 y el servicio 112 de primer protocolo. El servicio 112 de primer protocolo puede estar configurado, también, para retransmitir el segundo billete de reconexión al cliente 108, al tiempo que conserva una copia del segundo billete de reconexión y un número de sesión. La copia del segundo billete de reconexión puede ser utilizada posteriormente por el servicio 112 de primer protocolo para validar el segundo billete de reconexión originalmente transmitido al cliente 108 cuando le es presentando posteriormente al servicio 112 de primer protocolo durante el proceso de reconexión del cliente 108. En una realización, el servicio 112 de primer protocolo transmite el segundo billete de reconexión al cliente 108 a través del nodo intermediario 632. En otra realización, el servicio 112 de primer protocolo transmite el segundo billete de reconexión al cliente 108 directamente. En otra realización, el servicio 112 de primer protocolo puede transmitir segundos billetes de reconexión a los otros servicios 112 de primer protocolo o nodos intermediarios 632 que pueden comprender la conexión de múltiples saltos entre el cliente 108 y el servicio anfitrión 116.
Además, como se describe con mayor detalle en lo que sigue, el servicio 112 de primer protocolo puede configurarse, además, para borrar, durante el proceso de reconectar el cliente 108 a un servicio anfitrión 116, el segundo billete de reconexión y, después, generar un segundo billete de reconexión de repuesto. Además, en otra realización, el segundo billete de reconexión está configurado para borrado automático tras un período de tiempo predeterminado. En otras realizaciones, un servicio 112 de primer protocolo de uno o más servicios 112 de primer protocolo en una conexión de múltiples saltos, está configurado para borrar los segundos billetes de reconexión para cada uno de los "saltos" y, después, generar segundo billetes de reconexión de repuesto para uno, algunos o todos los "saltos".
En una realización, el nodo intermediario 632 sirve como intermediario para el primero y el segundo billetes de reconexión. El nodo intermediario 632 recibe, por ejemplo, el primer billete de reconexión generado por la autoridad 136 a cargo de los billetes y el segundo billete de reconexión generado por el servicio 112 de primer protocolo. El nodo intermediario 632 puede transmitir entonces el primer billete de reconexión y el segundo billete de reconexión al cliente 108. Además, durante el proceso de reconexión del cliente 108 al servicio anfitrión 116, el nodo intermediario 632 puede aceptar el primer billete de reconexión y el segundo billete de reconexión del cliente 108 y, después, transmitir el primer billete de reconexión a la autoridad 136 a cargo de los billetes y, si resulta apropiado, el segundo billete de reconexión al servicio 112 de primer protocolo.
En otra realización, el nodo intermediario 632 sirve como intermediario para los billetes de reconexión para los múltiples saltos entre el cliente 108 y el servicio anfitrión 116. El nodo intermediario 632 recibe, por ejemplo, el primer billete de reconexión para el cliente 108 para conexión con el servicio 112 de primer protocolo y el primer billete de reconexión para el servicio 112 de primer protocolo al servicio anfitrión 116. En otra realización, el nodo intermediario 632 recibe un primer billete de reconexión para la conexión entre el nodo intermediario 632 y el servicio 112 de primer protocolo. El nodo intermediario 632 puede transmitir entonces el primer billete de reconexión para el cliente 108 al cliente 108 y el primer billete de reconexión para el servicio 112 de primer protocolo al servicio 112 de primer protocolo. Además, durante el proceso de reconexión del cliente 108 con el servicio anfitrión 116, el nodo intermediario 632 puede aceptar el primer billete de reconexión del cliente 108 para validar el billete a fin de restablecer la conexión del cliente con el nodo intermediario 632 o el servicio 112 de primer protocolo.
Haciendo referencia a la Fig. 6B, otra realización de un sistema 602 para comunicaciones de redes, incluye las redes 104 y 104', el cliente 108, el servicio 112 de primer protocolo, los servicios anfitriones 116a-116n, el nodo intermediario 632 y la autoridad 136 a cargo de los billetes, como se ha descrito en lo que antecede y, además, ilustra un primer nodo 640 de computación y un segundo nodo 644 de computación, siendo utilizados ambos, en una realización, para conectar inicialmente el cliente 108 con un servicio anfitrión 116. Además, en la realización ilustrativa de la Fig. 6A, el cliente 108 incluye, además, un navegador de web 162 tal como, por ejemplo, el programa INTERNET EXPLORER, de Microsoft Corporation, de Redmond, WA., EE.UU., para conectar con la World Wide Web.
En una realización (no mostrada), el sistema 602 incluye dos o más nodos intermediarios 632 y/o dos o más servicios 11 de primer protocolo. El nodo intermediario 632, a través del cual deben pasar los mensajes entre el cliente 108 y el servicio 112 de primer protocolo, y/o el servicio 112 de primer protocolo pueden elegirse, como se explica en lo que sigue, cada uno, basándose en, por ejemplo, una ecuación de equilibrio de carga.
Cada uno de entre el primer nodo 640 de computación y el segundo nodo 644 de computación puede estar constituido por cualquier dispositivo de computación que sea capaz de comunicarse y que tenga capacidad de memoria y potencia de procesador suficientes para llevar a cabo las operaciones descritas en este documento. Por ejemplo, en una realización, el primer dispositivo 640 de computación comprende un servidor web 120, que proporcione uno o más sitios web. En otra realización, el segundo nodo 644 de computación proporciona un servicio XML.
En una realización, el cliente 108 y la red 104 forman una red externa 652, separada del resto del sistema 602 por un primer cortafuegos 160, representado en línea interrumpida. El nodo intermediario 632 y el primer nodo 640 de computación pueden estar situados en una DMZ 130 separada del resto del sistema 602 por el primer cortafuegos 160 y un segundo cortafuegos 161, representado también con línea interrumpida. Luego, como se muestra, la red 104', el servicio 112 de primer protocolo, los servicios anfitriones 116a-116n, la autoridad 136 a cargo de los billetes, y el segundo nodo 644 de computación, forman una red interna 668, separada del resto del sistema 602 por el segundo cortafuegos 161.
Alternativamente, en otra realización y con referencia a la Fig. 6C, el sistema 604 incluye, además, un tercer nodo 646 de computación posicionado en la DMZ 130, entre la red 104 y el nodo intermediario 632. El tercer nodo 646 de computación puede ser cualquier dispositivo de computación que sea capaz de comunicarse por red y que tenga capacidad de memoria y potencia de procesador suficientes para llevar a cabo las operaciones descritas en este documento. Como se describe en lo que sigue, el tercer nodo 646 de computación se utiliza, en algunas realizaciones, durante el proceso de conectar inicialmente el cliente 108 a un servicio anfitrión 116 y/o durante el proceso de reconectar el cliente 108 a un servicio anfitrión 116. Más específicamente, como se describe más adelante, cuando el sistema 604 incluye dos o más nodos intermediarios 632, el tercer nodo 646 de computación puede, basándose en una ecuación de equilibrio de carga, por ejemplo, elegir el nodo intermediario 632 a través del cual deben pasar las comunicaciones entre el agente cliente 128 del cliente 108 y el servicio 112 de primer protocolo.
Además, con referencia a la Fig. 6D, el nodo intermediario 632 de la Fig. 6C puede, en una realización alternativa, ser sustituido por dos o más niveles "a"-"n" de nodos intermediarios 632. Como se ilustra, cada nivel "a"-"n" puede incluir dos o más nodos intermediarios 632a-632n. Como se describe en lo que sigue, el agente cliente 128 del cliente 108 puede ser encaminado a través de cualquier combinación de nodos intermediarios 632 basada en, por ejemplo, ecuaciones de equilibrio de carga. Por ejemplo, como se ilustra, el agente cliente 128 puede ser encaminado a través de los nodos intermediarios 632 mediante la conexión 622. Para mayor seguridad, cada uno de los "saltos" a través de la conexión 622 puede requerir un billete o billete de reconexión para validar y autenticar la conexión de múltiples saltos entre el cliente 108 y el servicio anfitrión 116. También son posibles otras configuraciones de los sistemas 600, 602 y 604, como le resultará fácilmente evidente a un experto en la técnica.
Refiriéndonos de nuevo a la Fig. 6B, en una realización, el navegador web 162 comunica por la red 104 con el primer nodo de computación 640 que, a su vez, se interconecta con el segundo nodo de computación 644 y la autoridad 136 a cargo de los billetes. Más específicamente, el primer nodo de computación 640 está configurado con la dirección del segundo nodo de computación 644 y la autoridad 136 a cargo de los billetes. En una realización, como se explica más adelante con mayor detalle, el primer nodo de computación 640 está configurado para retransmitir información y, por tanto, impedir la comunicación directa, entre el navegador web 162 del cliente 108, el segundo nodo de computación 644 y la autoridad 136 a cargo de los billetes. Impidiendo dicha comunicación directa, el primer nodo de computación 640 añade un nivel de seguridad adicional al sistema 602. El primer nodo de computación 640 puede estar configurado, también, con la dirección del nodo intermediario 632 o, alternativamente, con la dirección de dos o más nodos intermediarios 632.
Por su parte, el segundo nodo de computación 644 está configurado para determinar cuáles de los programas de aplicación que se ejecutan en los servicios anfitriones 116 están disponibles para un usuario del cliente 108. Dicho de otro modo, el segundo nodo de computación 644 está configurado para determinar a cuáles de los programas de aplicación está autorizado para acceder el usuario. En una realización, después de que el usuario selecciona su programa de aplicación deseado, como se describe con mayor detalle en lo que sigue, el segundo nodo de computación 644 está configurado además para determinar cuál de los servicios anfitriones 116 será utilizado para ejecutar la aplicación deseada del usuario con fines de equilibrado de carga. El segundo nodo de computación 644 devuelve la dirección de ese servicio anfitrión 116 al primer nodo de computación 640. El segundo nodo de computación 644 también devuelve la dirección del servicio 112 de primer protocolo, que también puede seleccionarse de entre una pluralidad de servicios 112 de primer protocolo utilizando una ecuación de equilibrio de carga, al primer nodo de computación 640. A su vez, el primer nodo de computación 640 transmite la dirección del servicio 112 de primer protocolo seleccionado y del servicio anfitrión 116 elegido, a la autoridad 136 a cargo de los billetes.
Por su parte, la autoridad 136 a cargo de los billetes genera billetes de conexión. En una realización, la autoridad 136 a cargo de los billetes transmite un billete de conexión inicial al primer nodo de computación 640 para transmisión al cliente 108. EN otra realización, la autoridad 136 a cargo de los billetes transmite billetes de conexión inicial al primer nodo de computación 640 para uno o más de los "saltos" entre el cliente 108 y el servicio anfitrión 116.
Refiriéndonos ahora a la Fig. 7, en ella se ilustra una realización de un método 600 para comunicaciones de red, que utiliza la realización ilustrativa de las Figs. 6A-6D. En el paso 604, el cliente 108 se conecta inicialmente a una pluralidad de servicios anfitriones 116 empleando, por ejemplo, el método 700 descrito en lo que sigue. Después de que el cliente 108 se conecta a la pluralidad de servicios anfitriones 116, el cliente 108 y los servicios anfitriones 116 se comunican, a través del servicio 112 de primer protocolo, y en el paso 608, mediante una pluralidad de protocolos secundarios encapsulados dentro del primer protocolo. En una realización, el servicio 112 de primer protocolo cifra, antes de la transmisión de ningún paquete de primer protocolo, las comunicaciones al nivel del primer protocolo 204, asegurando así las comunicaciones. En otra realización, el servicio 112 de primer protocolo comprime, antes de la transmisión de ningún paquete de primer protocolo, las comunicaciones al nivel del primer protocolo, mejorando por tanto la eficacia de las comunicaciones.
En el paso 612, el agente cliente 128 determina si ha fallado la conexión 135 entre el agente cliente 128 y el servicio 112 de primer protocolo. Por ejemplo, la conexión 135a entre el agente cliente 128 y el nodo intermediario 632 puede haber fallado, la conexión 135b entre el nodo intermediario 632 y el servicio 112 de primer protocolo puede haber fallado o ambas conexiones, 135a y 135b, pueden haber fallado. En otra realización, puede haber fallado la conexión entre el servicio 112 de primer protocolo y el servicio anfitrión. Si el agente cliente 128determina que la conexión 135 no ha fallado, el método 600 continúa hasta el paso 620. Si, por otro lado, el agente cliente 128 determina que la conexión 135 ha fallado, al cliente 108 se le proporciona, en el paso 616, una conexión fiable con los servicios anfitriones 116 y se le vuelve a conectar con los servicios anfitriones 116.
En el paso 620 se determina si el cliente 108 desea terminar limpiamente su conexión 135 con el servicio 112 de primer protocolo y, en consecuencia, sus conexiones 124a-124n con los servicios anfitriones 116. Si no es así, la comunicación entre el cliente 108 y el servicio 112 de primer protocolo, a través de la pluralidad de protocolos secundarios encapsulados dentro del primer protocolo, continúa en el paso 608. Si la respuesta es afirmativa, en el paso 624 se rompen todas las conexiones 135a, 135b, y 124a-124n y se borran todos los billetes de reconexión. En una realización, el nodo intermediario 632 utiliza un identificador que recibe de la autoridad 136 a cargo de los billetes para borrar una copia de un primer billete de reconexión conservada en la autoridad 136 a cargo de los billetes. En otra realización, el servicio 112 de primer protocolo borra una copia de un segundo billete de reconexión conservada en el servicio 112 de primer protocolo. En otra realización, si por cualquier razón falla una conexión 124 de protocolo secundario, el servicio 112 de primer protocolo borra una copia del segundo billete de reconexión asociado con ella y conservada en el servicio 112 de primer protocolo. En todavía otra realización, un primer billete de reconexión y/o un segundo billete de reconexión son borrados automáticamente después de transcurrido un período de tiempo predeterminado a contar de un fallo de la conexión 135, como en el paso 612, y/o a contar de una terminación limpia de la conexión 135, como en el paso 620. En otras realizaciones, el servicio 112 de primer protocolo o la autoridad 136 a cargo de los billetes, suprime uno o más de los billetes de reconexión para uno o más de los "saltos" entre el cliente 108 y el servicio anfitrión 116.
Con referencia a las Figs. 8A-8C, en ellas se ilustra una realización de un método 700 para conectar inicialmente el cliente 108 a los servicios anfitriones 116 (por ejemplo, en el paso 604 de la Fig. 7), utilizando la realización ilustrativa de las Figs. 6A-6D. En el paso 704, el cliente 108, empleando el navegador 162, envía una petición, tal como por ejemplo una petición HTTP, al primer nodo de computación 640. El primer nodo de computación 640 devuelve una página web tal como, por ejemplo, un formulario HTML solicitando información de autenticación (por ejemplo, un nombre de usuario y una palabra de paso). Un usuario del cliente 108 introduce sus credenciales y transmite el formulario completado al primer nodo de computación 640.
El primer nodo de computación 640, en el paso 706, informa entonces al usuario del cliente 108 de las aplicaciones disponibles para su ejecución. En una realización, el primer nodo de computación 640 extrae las credenciales de usuario a partir de la página de registro y las transmite al segundo nodo de computación 644 junto con una petición al segundo nodo de computación 644 para que enumere las aplicaciones disponibles para el usuario. Basándose en las credenciales del usuario, el segundo nodo de computación 644 devuelve una lista de aplicaciones específicas disponibles para el usuario, al primer nodo de computación 640 que, entonces, envía la lista, en forma de página web, por ejemplo, al usuario del cliente 108.
En el paso 712, el usuario selecciona la aplicación deseada y una petición de esa aplicación es enviada al primer nodo de computación 640. Por ejemplo, en una realización, el usuario selecciona mediante el ratón una aplicación deseada de las enumeradas en la página web que le presenta el primer nodo de computación 640 y una petición HTTP para que esa aplicación sea enviada al primer nodo de computación 640. La petición es tratada por el primer nodo de computación 640 y enviada al segundo nodo de computación 644.
En el paso 716, el segundo nodo de computación 644 determina el servicio anfitrión 116 en el que se ejecutará la aplicación deseada. El segundo nodo de computación 644 puede realizar la determinación basándose, por ejemplo, en una ecuación de equilibrio de carga. En una realización, el segundo nodo de computación 644 determina, también, un servicio 112 de primer protocolo de entre una pluralidad de servicios 112 de primer protocolo, que se utilizará para comunicar con el servicio anfitrión 116 a través de la conexión 124. Nuevamente, el segundo nodo de computación 644 puede realizar la determinación basándose, por ejemplo, en una ecuación de equilibrio de carga. El segundo nodo de computación 644 devuelve la dirección del servicio anfitrión 116 seleccionado y del servicio 112 de primer protocolo elegido, al primer nodo de computación 640.
El cliente 108, en el paso 720, es dotado entonces de un billete de conexión inicial y de una dirección para el nodo intermediario 632 (que es su dirección real o su dirección virtual, como se describe en lo que sigue). En una realización, el primer nodo de computación 640 proporciona la dirección para el servicio anfitrión 116 elegido y el servicio 112 de primer protocolo seleccionado, a la autoridad 136 a cargo de los billetes, junto con una petición para el billete de conexión inicial. La autoridad 136 a cargo de los billetes mantiene la dirección del servicio anfitrión 116 seleccionado y del servicio 112 de primer protocolo elegido, genera el billete de conexión inicial y transmite el billete de conexión inicial al primer nodo de computación 640, al tiempo que conserva una copia para ella. En una realización, la autoridad 136 a cargo de los billetes, en respuesta a la petición del billete de conexión inicial por parte del primer nodo de computación 640, genera billetes de conexión para cada uno de los "saltos" entre el cliente 108 y el servicio anfitrión 116. En otra realización, el primer nodo de computación 640 solicita billetes de conexión inicial para cada uno de los "saltos", bien en una sola petición o en múltiples peticiones. Por ejemplo, la autoridad 136 a cargo de los billetes puede generar un billete con múltiples partes, como se ha descrito en lo que antecede en relación con la Fig. 5B.
El primer nodo de computación 640, configurado en una realización con la dirección real del nodo intermediario 632, transmite entonces la dirección real del nodo intermediario 632 y el billete de conexión inicial al navegado 162 del cliente 108. El primer nodo de computación 640 puede crear primero, por ejemplo, un fichero que contenga tanto la dirección real del nodo intermediario 632 como el billete de conexión inicial y, luego, transmitir el fichero al navegador 162 del cliente 108. Opcionalmente, en otra realización, el primer nodo de computación 640 está configurado con la dirección real de dos o más nodos intermediarios 632. En tal realización, el primer nodo de computación 632 determina primero el nodo intermediario 632 a través del cual tendrán que pasar los mensajes entre el cliente 108 y el servicio 112 de primer protocolo. El primer nodo de computación 640 transmite entonces la dirección real de ese nodo intermediario 132 elegido y el billete de conexión inicial al navegador 162 del cliente 108 utilizando, por ejemplo, el fichero anteriormente descrito. En una realización, el primer nodo de computación 640 elige el nodo intermediario 632 utilizando una ecuación de equilibrio de carga. El agente cliente 128 del cliente 108 es lanzado entonces y utiliza la dirección del nodo intermediario 632 para establecer, en el paso 724, una conexión 135a de primer protocolo entre el agente cliente 128 del cliente 108 y el nodo intermediario 632. En una realización, el primer nodo de computación 640 puede proporcionar billetes de conexión inicial obtenidos de la autoridad 136 a cargo de los billetes para uno o más de entre el servicio 112 de primer protocolo y/o nodos intermediarios 632, para validar sus respectivas conexiones.
Alternativamente, en otra realización, el primer nodo de computación 640 está configurado con una dirección real del tercer nodo de computación 646, que sirve como dirección virtual de un nodo intermediario 132. En tal realización, el primer nodo de computación 640 transmite, en el paso720, la dirección real del tercer nodo de computación 646 y el billete de conexión inicial al navegador 162 del cliente 108 utilizando, por ejemplo, el fichero anteriormente descrito. El agente cliente 128 del cliente 108 es lanzado entonces y utiliza la dirección real del tercer nodo de computación 646 para establecer, en el paso 724, una conexión de primer protocolo entre el agente cliente 128 del cliente 108 y el tercer nodo de computación 646. El tercer nodo de computación 646 determina entonces el nodo intermediario 632 a través del cual tendrán que pasar los mensajes entre el cliente 108 y el servicio 112 de primer protocolo. En una realización, el tercer nodo de computación 646 selecciona el nodo intermediario 632 utilizando una ecuación de equilibrio de carga. Habiendo elegido el nodo intermediario 632, el tercer nodo de computación 646 establece una conexión de primer protocolo con el nodo intermediario 632. Existe, por tanto, una conexión 135a de primer protocolo a través del tercer nodo de computación 646, entre el agente cliente 128 del cliente 108 y el nodo intermediario 632. La dirección real del tercer nodo de computación 646 es correlacionada, por tanto con la dirección real del nodo intermediario 632. Para el agente cliente 128 del cliente 108, la dirección real del tercer nodo de computación 646 sirve, por tanto, como dirección virtual del nodo intermediario 632.
En una realización, cuando existen más de un nivel de nodos intermediarios 632, como se ha descrito en lo que antecede, el primer nodo de computación 640 o el tercer nodo de computación 646, respectivamente, solamente seleccionan el nodo intermediario 632 con el que se conectará el agente cliente 128 al nivel "a". En tal realización, en cada uno de los niveles "a"-"n-1", el nodo intermediario 632 a través del cual es encaminado el agente cliente 128 a ese nivel determina, después, basándose en una ecuación de equilibrio de carga, por ejemplo, el nodo intermediario 632 con el cual se conectará al siguiente nivel. Alternativamente, en otras realizaciones, el primer nodo de computación 640 o el tercer nodo de computación 646, respectivamente, determinan, para más de uno de los niveles "a"-"n", los nodos intermediarios 632 a través de los cuales será encaminado el agente cliente 128.
Habiendo establecido la conexión 135a de primer protocolo entre el agente cliente 128 del cliente 108 y el nodo intermediario 632, por ejemplo el nodo intermediario 132 al nivel "n" (denominado en lo que sigue, en el método 700, el nodo intermediario 632), el agente cliente 128 transmite entonces el billete de conexión inicial al nodo intermediario 632.
En el paso 728 se determina, entonces, si es válido el billete de conexión inicial. En una realización, el nodo intermediario 632 transmite el billete de conexión inicial a la autoridad 136 a cargo de los billetes, para su validación. En una realización, la autoridad 136 a cargo de los billetes determina la validez del billete de conexión inicial comparándolo, en el paso 720, con la copia del billete de conexión inicial que conserva. Si la autoridad 136 a cargo de los billetes determina que el billete de conexión inicial es válido, la autoridad 136 a cargo de los billetes transmite, en el paso 732, la dirección del servicio 112 de primer protocolo y la dirección del servicio anfitrión 116 elegido al nodo intermediario 632. La autoridad 136 a cargo de los billetes puede transmitir, también, billetes de conexión adicional para el servicio 112 de primer protocolo y para el nodo intermediario 632 a través del cual se conectará el cliente 108 con el servicio anfitrión 116. El servicio 112 de primer protocolo puede borrar, también, el billete de conexión inicial y la copia del mismo. Si, por otro lado, la autoridad 136 a cargo de los billetes determina que el billete de conexión inicial no es válido, el cliente 108, en el paso 730, rechaza la conexión con el servicio 112 de primer protocolo y, en consecuencia, la conexión con el servicio anfitrión 116.
A continuación del paso 732, el nodo intermediario 632 utiliza la dirección del servicio 112 de primer protocolo elegido para establecer, en el paso 736, una conexión 135b de primer protocolo entre el nodo intermediario 632 y el servicio 112 de primer protocolo. En una realización, el nodo intermediario 632 utiliza un billete de conexión inicial para establecer la conexión 135b de primer protocolo entre el nodo intermediario 632 y el servicio 112 de primer protocolo. En un caso, el nodo intermediario 632 utiliza el mismo billete de conexión inicial recibido del cliente 108 para validar la conexión 135b. En otro caso, el nodo intermediario 632 utiliza un billete de conexión inicial generado para la conexión 135b de primer protocolo y válido para ella. Ahora existe, por tanto, una conexión 135 de primer protocolo, a través del nodo intermediario 632, entre el agente cliente 128 del cliente 108 y el servicio 112 de primer protocolo. El nodo intermediario 632 también puede dejar pasar la dirección del servicio anfitrión 116 seleccionado al servicio 112 de primer protocolo.
En una realización, en el paso 740, el servicio 112 de primer protocolo utiliza la dirección del servicio anfitrión 116 elegido para establecer una conexión 124 de protocolo secundario entre el servicio 112 de primer protocolo y el servicio anfitrión 116 seleccionado. Por ejemplo, el servicio anfitrión qq6 elegido es, de hecho, el servicio anfitrión 116a y se establece una conexión 124a de protocolo secundario entre el servicio 112 de primer protocolo y el servicio anfitrión 116a.
En una realización, a continuación del paso 740, el usuario elige, en el paso 744, una segunda aplicación a ejecutar y el segundo nodo de computación 644 determina, en el paso 748, el servicio anfitrión 116 en el que ha de ejecutarse la segunda aplicación. Por ejemplo, calculando una ecuación de equilibrio de carga, el segundo nodo de computación 644 puede elegir el servicio anfitrión 116b para ejecutar el segundo programa de aplicación. El segundo nodo de computación 644 transmite entonces la dirección del servicio anfitrión 116b seleccionado al servicio 112 de primer protocolo. En una realización, el segundo nodo de computación 644 está en comunicación directa con el servicio 112 de primer protocolo y le transmite directamente la dirección. En otra realización, la dirección del servicio anfitrión 116b seleccionado es transmitida indirectamente al servicio 112 de primer protocolo. Por ejemplo, la dirección puede ser transmitida al servicio 112 de primer protocolo a través de cualquier combinación del primer nodo de computación 640, la autoridad 136 a cargo de los billetes, el nodo intermediario 632, y el servicio 112 de primer protocolo. Habiendo recibido la dirección del servicio anfitrión 116b elegido, el servicio 112 de primer protocolo establece, en el paso 752, una conexión 124b de protocolo secundario, entre el servicio 112 de primer protocolo y el servicio anfitrión 116b seleccionado. Al establecer una conexión 124b de protocolo secundario, el servicio 112 de primer protocolo puede validar un billete de conexión inicial para autenticar la conexión al servicio 116 de primer protocolo. El billete de conexión inicial puede ser el mismo billete de conexión inicial para la conexión del cliente 108 con el nodo intermediario 632 o la conexión del nodo intermediario 632 con el servicio 112 de primer protocolo. En otra realización, la autoridad 136 a cargo de los billetes o cualquiera de los nodos intermediarios 632 genera un billete válido solamente para la conexión 124b de protocolo secundario. El servicio 112 de primer protocolo y/o el servicio anfitrión 116 utilizan este billete para validar la conexión 124b de protocolo secundario.
Los protocolos secundarios que pueden utilizarse para comunicar por las conexiones 124a y 124b incluyen HTTP, FTP, Oscar, Telnet, ICA y RDP, pero no se limitan a ellos. Además, en una realización, al menos uno de los protocolos secundarios, como se ha descrito anteriormente, incluye una pluralidad de canales virtuales, cada uno de los cuales puede incluir una pluralidad de paquetes de protocolo que habilitan funcionalmente al cliente remoto 108. Por ejemplo, en una realización, un servicio anfitrión 116a es un servidor web, que comunica con el servicio 112 de primer protocolo por la conexión 124a utilizando el protocolo HTTP y otro servicio anfitrión 116b es un servidor de aplicaciones, que comunica con el servicio 112 de primer protocolo por la conexión 124b utilizando el protocolo ICA. El servicio anfitrión 116bgenera tanto paquetes de protocolo para transmitir órdenes de pantalla gráfica al cliente 108, para hacer que el cliente 108 presente una interfaz gráfica de usuario, como paquetes de protocolo para transmitir órdenes de impresora al cliente 108, para hacer que se imprima un documento en el cliente 108.
Los pasos 744, 748 y 752 pueden repetirse cualquier número de veces. Como tal, cualquier número de programas de aplicación pueden ejecutarse en cualquier número de servicios anfitriones 116a-116n, cuyas salidas pueden comunicarse al servicio 112 de primer protocolo por las conexiones 124a-124n utilizando cualquier número de protocolos secundarios.
Volviendo ahora al paso 756, el servicio 112 de primer protocolo puede, como se ha descrito anteriormente, encapsular la pluralidad de protocolos secundarios dentro del primer protocolo. Como tal, el cliente 108 está conectado a una pluralidad de servicios anfitriones 116 y, simultáneamente, se encuentra en comunicación con ellos.
\newpage
En otra realización, antes de llevar a la práctica los pasos 744, 748 y 752 para ejecutar un nuevo programa de aplicación en un servicio anfitrión 116, tal como, por ejemplo, el servicio anfitrión 116b, un usuario del cliente 108 termina la ejecución de otro programa de aplicación tal como, por ejemplo, un programa de aplicación que se ejecuta en el servicio anfitrión 116a. EN tal caso, el servicio 112 de primer protocolo interrumpe la conexión 124a entre el servicio 112 de primer protocolo y el servicio anfitrión 116a. El servicio 112 de primer protocolo establece entonces, llevando a la práctica los pasos 744, 748 y 752, la conexión 124b entre el servicio 112 de primer protocolo y el servicio anfitrión 116b, sin interrumpir la conexión 135 entre el cliente 108 y el servicio 112 de primer protocolo.
En una realización, en el paso 760 se genera un primer billete de reconexión. Por ejemplo, el nodo intermediario 632 solicita un primer billete de reconexión de la autoridad 136 a cargo de los billetes o solicita un billete de reconexión para cada uno de los "saltos" entre el cliente 108 y el servicio anfitrión 116. Al recibirse la petición, la autoridad 136 a cargo de los billetes genera el o los primeros billetes de reconexión. Un billete de reconexión es, por ejemplo, un número aleatorio grande y, también puede generar un identificador que es, por ejemplo, un número aleatorio más pequeño. La autoridad 136 a cargo de los billetes puede transmitir entonces, en el paso 764, los primeros billetes de reconexión y los identificadores al nodo intermediario 632, al tiempo que conserva una copia de los primeros billetes de reconexión y una copia de los identificadores. La autoridad 136 a cargo de los billetes continúa para mantener la dirección del servicio 112 de primer protocolo que le fue transmitido por el primer nodo de computación 640 en el paso 720. El nodo intermediario 632 transmite entonces, en el paso 768, el primer billete de reconexión del cliente al cliente 108.
En el paso 772, se generan entonces uno o más billetes de reconexión. En una realización, el servicio 112 de primer protocolo genera el segundo billete de reconexión para el cliente 108, el cual puede ser, por ejemplo, un número aleatorio grande. En otra realización, el servicio 112 de primer protocolo genera segundos billetes de reconexión para uno o más de los "saltos" entre el cliente 108 y el servicio anfitrión 116. El servicio 112 de primer protocolo, en el paso 776, transmite, entonces, el segundo billete de reconexión del cliente a través del nodo intermediario 632, al cliente 108. Al hacer esto, el servicio 112 de primer protocolo conserva una copia del segundo billete de reconexión y un número de sesión asociado con él para identificar la sesión que ha de reconectarse a continuación de una interrupción de la conexión 135. En una realización, por ejemplo, el servicio 112 de primer protocolo mantiene, para un número de sesión particular, una tabla que enumera las conexiones de protocolo secundario 124a-124n asociadas con ese número de sesión. En forma parecida, el servicio 112 de primer protocolo puede mantener el primero y/o el segundo billetes de reconexión para cada uno de los "saltos" que se están validando para reconectar el cliente 108 al servicio anfitrión 116.
En consecuencia, a continuación del restablecimiento de la conexión 135 de primer protocolo y la validación del segundo billete de reconexión en el servicio 112 de primer protocolo, y/o en cualesquiera servicios 112 de primer protocolo subsiguientes y/o nodos intermediarios 632, el servicio 112 de primer protocolo puede identificar las conexiones 124 de protocolo secundario que han de ser encapsuladas dentro de la conexión 135 de primer protocolo restablecida para comunicación al cliente 108. Alternativamente, en otra realización, y con referencia de nuevo a la Fig. 1A, el sistema 100 del presente invento no incluye el o los nodos intermediarios 132, la autoridad 136 a cargo de los billetes, ni el tercer nodo de computación 646. En tal realización, en lugar de generar y transmitir, en los pasos 760 a 776, el primero y el segundo billetes de reconexión, el sistema 100 y el método 700 solamente proporcionan un único billete de reconexión para el cliente 108 o para uno o más de los "saltos" entre el cliente 108 y el servicio anfitrión 116. En tal realización, el servicio 112 de primer protocolo, por ejemplo, genera el único billete de reconexión que puede ser, por ejemplo, un número aleatorio grande. El servicio 112 de primer protocolo transmite entonces el billete de reconexión del cliente directamente al cliente 108 por la conexión 135. Al hacerlo, el servicio 112 de primer protocolo conserva una copia del único billete de reconexión y un número de sesión asociado con él, para identificar la sesión a reconectar después de una interrupción de la conexión 135. En otra realización, el servicio 112 de primer protocolo conserva el billete de reconexión para su conexión al servicio anfitrión 116 y un número de sesión asociado con él para recuperar el billete de reconexión.
Refiriéndonos ahora a la Fig. 9, en ella se ilustra una realización de un método 800 para proporcionar a un cliente 108 una conexión fiable a uno o más servicios anfitriones 116 y para reconectar al cliente 108 con los servicios anfitriones 116 (por ejemplo, en el paso 616 de la Fig. 7) utilizando la realización ilustrativa de las Figs. 6A-6D. En particular, en el paso 804, se mantiene la conexión 124 de protocolo secundario entre el servicio 112 de primer protocolo y el o cada uno de los servicios anfitriones 116. Además, en el paso 808, se mantiene una cola de los paquetes de datos más recientemente transmitidos entre el agente cliente 128 del cliente 108 y el servicio 112 de primer protocolo, a través de la conexión 135 cuya interrupción se determinó, por ejemplo, en el paso 616 de la Fig. 7. En una realización, los paquetes de datos son puestos en cola y mantenidos tanto antes como durante el fallo de la conexión 135. Los paquetes de datos puestos en cola pueden ser mantenidos, por ejemplo, en una memoria intermedia, por el agente cliente 128. Alternativamente, el servicio 112 de primer protocolo puede mantener, en una memoria intermedia, los paquetes de datos puestos en cola. En todavía otra realización, tanto el agente cliente 128 como el servicio 112 de primer protocolo, mantienen los paquetes de datos puestos en cola en una memoria intermedia.
En el paso 812, se establece una nueva conexión 135 de primer protocolo entre el agente cliente 128 del cliente 108 y el servicio 112 de primer protocolo y se enlaza con la conexión 124 de protocolo secundario mantenida entre el servicio 112 de primer protocolo y el o cada uno de los servicios anfitriones 116, reconectando, por tanto, al cliente 108 con los servicios anfitriones 116. Después de que el cliente 108 ha sido reconectado, pueden transmitirse, en el paso 816, los paquetes de datos puestos en cola mantenidos en el paso 808, a través de la conexión 135 de primer protocolo recién establecida. Como tal, la sesión de comunicaciones entre los servicios anfitriones 116 y el cliente 108, a través del servicio 112 de primer protocolo, es persistente y prosigue sin pérdida de datos.
En una realización con múltiples "saltos" que pasan por múltiples servicios 112 de primer protocolo, en el paso 808, una parte de los paquetes de datos, o todos ellos, pueden mantenerse en uno o más de los servicios 112 de primer protocolo. En el paso 812, puede restablecerse cada "salto". Después de que el cliente 108 es reconectado y vuelto a enlazar con el primero del o de los servicios 112 de primer protocolo, como se ha descrito anteriormente, cada una de las restantes conexiones puede restablecerse y volverse a enlazar con el "salto" previamente enlazado de nuevo, hasta que se restablezca el "salto" final al servicio anfitrión 116. Después de que se haya restablecido y vuelto a enlazar el "salto" final. o cuando se restablezca y enlace de nuevo cada "salto", pueden transmitirse, en el paso 816, los paquetes de datos mantenidos en el paso 808.
Refiriéndonos ahora a las Figs. 10A-10B, en ellas se ilustra una realización de un método 900 para reconectar el cliente 108 con el o los servicios anfitriones 116 (por ejemplo, en el paso 812 de la Fig. 9), utilizando la realización ilustrativa de las Figs. 6A-6D. En el paso 904, se rompen cualesquiera conexiones restantes entre el cliente 108 y el servicio 112 de primer protocolo. Por ejemplo, cuando ha fallado la conexión 135a, pero no lo ha hecho la conexión 135b, se rompe la conexión 135b. Alternativamente, cuando ha fallado la conexión 135b, pero no lo ha hecho la conexión 135a, se rompe la conexión 135a.
En una realización, utilizando la dirección real del nodo intermediario 632 proporcionada al cliente 108, por ejemplo en el paso 720 de la Fig. 8, el agente cliente 128 del cliente 108 restablece entonces, en el paso 908, la conexión 135a de primer protocolo entre el agente cliente 128 y el nodo intermediario 632. Alternativamente, en otra realización, utilizando la dirección real del tercer nodo de computación 646 proporcionada al cliente 108, por ejemplo en el paso 720 de la Fig. 8, el agente cliente 128 del cliente 108 restablece entonces, en el paso 908, una conexión de primer protocolo entre el agente cliente 128 y el tercer nodo de computación 646. El tercer nodo de computación 646 determina entonces el nodo intermediario 632 a través del cual tendrán que pasar los mensajes entre el cliente 108 y el servicio 112 de primer protocolo. En una realización, el tercer nodo de computación 646 selecciona el nodo intermediario 632 utilizando una ecuación de equilibrio de carga. El nodo intermediario 632 seleccionado por el tercer nodo de computación 646 al reconectar el cliente 108 al o a los servicios anfitriones 116, puede ser diferente del elegido, por ejemplo en el paso 720 de la Fig. 8, para conectar inicialmente el cliente 108 al o a los servicios anfitriones 116. En una realización, se genera un billete de conexión inicial para el nodo intermediario 632 seleccionado cuando se reconecta al cliente 108 con el servicio anfitrión 116.
Habiéndose elegido el nodo intermediario 632, el tercer nodo de computación 646 restablece una conexión 135a de primer protocolo con el nodo intermediario 632. Por tanto, se restablece una conexión 135a de primer protocolo, a través del tercer nodo de computación 646, entre el agente cliente 128 del cliente 108 y el nodo intermediario 632. En una realización, cuando se restablece la conexión 135a de primer protocolo con el nodo intermediario 632, la conexión 135a de primer protocolo es validada validando un primero o un segundo billetes de reconexión para este "salto" con la autoridad 136 a cargo de los billetes.
En una realización, cuando existe más de un nivel de nodos intermediarios 632, el nodo intermediario 632 a través del cual es encaminado después el agente cliente 128 en cada uno de los niveles "a"-"n-1", determina, basándose por ejemplo en una ecuación de equilibrio de carga, el nodo intermediario 632 al que se conectará en el siguiente nivel. Alternativamente, en otra realización, el tercer nodo de computación 646 determina, para más de uno de los niveles "a"-"n-1", o para todos ellos, el nodo intermediario 632 a través del cual será encaminado el agente cliente 128. En otras realizaciones, el nodo intermediario 632 o uno de los nodos de computación (por ejemplo, el tercer nodo de computación 646) genera primeros o segundos billetes de reconexión para una o más de las conexiones o "saltos" a través de los cuales es encaminado el agente cliente 128.
Habiéndose restablecido la conexión 135a de primer protocolo entre el agente cliente 128 del cliente 108 y el nodo intermediario 632, por ejemplo el nodo intermediario 132 al nivel "n" (denominado en lo que sigue, en el método 900, el nodo intermediario 632), el agente cliente 128 transmite entonces, en el paso 912, el primer billete de reconexión y el segundo billete de reconexión para el cliente 108 al nodo intermediario 632.
Se determina entonces, en el paso 916, si el primer billete de reconexión es válido. En una realización, la validez del primer billete de reconexión se determina utilizando la autoridad 136 a cargo de los billetes. Por ejemplo, el nodo intermediario 632 transmite el primer billete de reconexión a la autoridad 136 a cargo de los billetes. En una realización, la autoridad 1326 a cargo de los billetes determina la validez del primer billete de reconexión comparándolo con un a copia previamente conservada del primer billete de reconexión. Si la autoridad 136 a cargo de los billetes determina que el primer billete de reconexión es válido, la autoridad 136 a cargo de los billetes transmite, en el paso 920, la dirección del servicio 112 de primer protocolo al nodo intermediario 632. De otro modo, si la autoridad 136 a cargo de los billetes determina que el primer billete de reconexión no es válido, se rechaza, en el paso 924, la reconexión del cliente 108 con el servicio 112 de primer protocolo y, en consecuencia, la reconexión con los servicios anfitriones 116.
En el paso 928, el primer billete de reconexión es borrado por, por ejemplo, la autoridad 136 a cargo de los billetes y un primer billete de reconexión de repuesto es generado por, por ejemplo, la autoridad 136 a cargo de los billetes. Además, un identificador de repuesto puede ser generado por, por ejemplo, la autoridad 136 a cargo de los billetes. En algunas de tales realizaciones, la autoridad 136 a cargo de los billetes transmite el primer billete de reconexión de repuesto y el identificador de repuesto al nodo intermediario 632. En algunas de tales realizaciones, la autoridad 136 a cargo de los billetes conserva una copia del primer billete de reconexión de repuesto. En algunas realizaciones, la autoridad 136 a cargo de los billetes espera a que el cliente 108 comunique que ha recibido el primer billete de reconexión de repuesto, antes de proceder a borrar el primer billete de reconexión.
Después de validado el primer billete de reconexión, el nodo intermediario 632, utilizando la dirección el servicio 112 de primer protocolo, restablece, en el paso 932, la conexión 135b de primer protocolo entre el nodo intermediario 632 y el servicio 112 de primer protocolo. Habiéndose restablecido la conexión 135b de primer protocolo entre el nodo intermediario 632 y el servicio 112 de primer protocolo, se determina entonces, en el paso 936, si es válido el segundo billete de reconexión. En una realización, la validez del segundo billete de reconexión se determina utilizando el servicio 112 de primer protocolo. Por ejemplo, el nodo intermediario 632 transmite el segundo billete de reconexión al servicio 112 de primer protocolo. En una realización, el servicio 112 de primer protocolo determina la validez del segundo billete de reconexión comparándolo con una copia, previamente conservada, del segundo billete de reconexión. En otra realización del paso 936, el servicio 112 de primer protocolo valida un primer billete de reconexión para la conexión entre el servicio 112 de primer protocolo y el servicio anfitrión 116 o, en otra realización, entre el servicio 112 de primer protocolo y otro servicio 112 de primer protocolo o un nodo intermediario 632. De manera similar, cada "salto" ejecutado después entre el servicio 112 de primer protocolo y el servicio anfitrión 116, puede ser validado con uno o más billetes, ya se trate de billetes de conexión inicial o de reconexión, para validar el uso continuado del "salto" en nombre del cliente 108.
Si el servicio 112 de primer protocolo determina que el segundo billete de reconexión es válido, la conexión 135b de primer protocolo restablecida entre el primer nodo intermediario 132 y el servicio 112 de primer protocolo se enlaza, en el paso 940, con la conexión 124 de protocolo secundario mantenida entre el servicio 112 de primer protocolo y el o cada uno de los servicios anfitriones 116. De otro modo, si el servicio 112 de primer protocolo determina que el segundo billete de reconexión no es válido, la conexión 135b de primer protocolo restablecida no se enlaza con la o las conexiones 124 de protocolo secundario mantenidas y, en el paso 944, se rechaza la reconexión del cliente 108 con el o los servicios anfitriones 116. En el caso de una conexión de saltos múltiples entre el servicio 112 de primer protocolo y el servicio anfitrión 116, cada "salto" puede ser validado para reconexión y, en el paso 940, ser enlazado con el "salto" previo, hasta que se valide el "salto" final al servicio anfitrión 116, o hasta que se rechace la reconexión en uno de los "saltos".
En el paso 948, el segundo billete de reconexión es borrado por, por ejemplo, el servicio 112 de primer protocolo y un segundo billete de reconexión de repuesto es generado por, por ejemplo, el servicio 112 de primer protocolo para transmisión al cliente 108. En una realización de esta clase, el servicio 112 de primer protocolo conserva una copia del segundo billete de reconexión de repuesto. En algunas realizaciones, el servicio 112 de primer protocolo espera a que el cliente 108 comunique que ha recibido el segundo billete de reconexión de repuesto, antes de proceder a borrar el segundo billete de reconexión. En el caso de validarse uno o más de los "saltos" para reconectar un cliente 108, en el paso 948 pueden generarse uno o más billetes de reconexión de repuesto y/o la autoridad 136 a cargo de los billetes, los nodos intermediarios 632, cualquiera de los nodos de computación o uno o más de los servicios 112 de primer protocolo, pueden salvar una copia.
En el paso 952, se le transmiten al cliente el primer billete de reconexión de repuesto y el segundo billete de reconexión de repuesto. Por ejemplo, la autoridad 136 a cargo de los billetes puede transmitir, a través del nodo intermediario 632, el primer billete de reconexión de repuesto al cliente 108. Además, en una realización, el servicio 112 de primer protocolo transmite, a través del nodo intermediario 632, el segundo billete de reconexión de repuesto al cliente 108. En otras realizaciones, los billetes de reconexión de repuesto para uno o más "saltos" pueden ser transmitidos a uno o más de los nodos intermediarios 632, cualquiera de los nodos de computación o uno o más de los servicios 112 de primer protocolo.
Alternativamente, en otras realizaciones, como se ha expuesto en lo que antecede, el sistema 100 y los métodos del invento proporcionan solamente un único billete de reconexión para el cliente 106 y/o una única reconexión para cada uno de los "saltos" entre el cliente 108 y un servicio anfitrión 116. Como tal, en lugar de utilizar ambos billetes de reconexión primero y segundo, el método ilustrativo 900 solamente emplea el billete de reconexión único antes mencionado. En una de tales realizaciones, al agente cliente 128 del cliente 108 también se le proporciona la dirección del servicio 112 de primer protocolo. Para reconectarse con los servicios anfitriones 116, el agente cliente 128 transmite el único billete de reconexión directamente al servicio 112 de primer protocolo. El servicio 112 de primer protocolo determina entonces si es válido el único billete de reconexión. En una realización, el servicio 112 de primer protocolo determina la validez del único billete de reconexión comparándolo con una copia previamente conservada del único billete de reconexión. Si el servicio 112 de primer protocolo determina que el único billete de reconexión es válido, la conexión 135 de primer protocolo restablecida entre el cliente 108 y el servicio 112 de primer protocolo es enlazada con la conexión 124 de protocolo secundario mantenida entre el servicio 112 de primer protocolo y el o cada uno de los servicios anfitriones 116. De otro modo, si el servicio 112 de primer protocolo determina que el único billete de reconexión no es válido, la conexión 135a de primer protocolo restablecida no se enlaza con la o las conexiones 124 de protocolo secundario mantenidas y se rechaza la reconexión del cliente 108 al servicio o a los servicios anfitriones 116.
\newpage
Después de validado el único billete de reconexión, el único billete de reconexión es borrado por, por ejemplo, el servicio 112 de primer protocolo y un único billete de reconexión de repuesto es generado por, por ejemplo, el servicio 112 de primer protocolo para transmisión al cliente 108. Al transmitir el único billete de reconexión de repuesto al cliente 108, el servicio 112 de primer protocolo conserva una copia del único billete de reconexión de repuesto. En algunas realizaciones, el servicio 112 de primer protocolo espera a que el cliente 108 comunique que ha recibido el único billete de reconexión de repuesto, antes de proceder a borrar el único billete de reconexión.
En todavía otra realización, al igual que el primero y el segundo billetes de reconexión, el único billete de reconexión es configurado para ser borrado automáticamente una vez transcurrido un período de tiempo predeterminado a contar de un fallo de la conexión 135, como en el paso 612, y/o a contar de una terminación limpia de la conexión 135, como en el paso 620.
Los expertos normales en la técnica pueden llevar a cabo muchas alteraciones y modificaciones sin apartarse por ello del espíritu ni del alcance del invento. Por tanto, debe comprenderse, expresamente, que las realizaciones ilustradas únicamente se han mostrado con fines de ejemplo y no deben considerarse como limitativas del invento, que queda definido por las siguientes reivindicaciones. Al leer estas reivindicaciones ha de considerarse que incluyen lo literalmente establecido en ellas y, también, los elementos equivalentes que no sean esencialmente diferentes, aún cuando no resulten idénticos, en otros aspectos, a los que se muestran y describen en las anteriores ilustraciones.

Claims (35)

1. Un método para reconectar a un cliente (108) con un servicio anfitrión (116a-116n), cuyo método se caracteriza por:
proporcionar una sesión de comunicaciones entre un cliente (108) y un servicio anfitrión (116a-116n) mediante una primer conexión entre el cliente (108) y un servicio (112) de primer protocolo, y una segunda conexión entre el servicio (112) de primer protocolo y el servicio anfitrión (116a-116n);
detectar una interrupción en la primera conexión o en la segunda conexión, y mantener la otra de entre la primera conexión y la segunda conexión;
obtener, en el servicio (112) de primer protocolo, un primer billete y un segundo billete;
validar el primer billete para restablecer la conexión interrumpida;
validar el segundo billete para continuar el uso de la conexión mantenida; y
enlazar la conexión restablecida con la conexión mantenida.
2. El método de la reivindicación 1, que comprende mantener la sesión de comunicaciones durante la interrupción de la conexión interrumpida.
3. El método de la reivindicación 1, que comprende además generar el primer billete o el segundo billete mediante al menos uno de entre el servicio (112) de primer protocolo o una autoridad (136) a cargo de los billetes.
4. El método de la reivindicación 1, que comprende además validar, por parte de la autoridad (136) a cargo de los billetes, al menos uno de entre el primer billete o el segundo billete.
5. El método de la reivindicación 1, que comprende además autenticar el cliente (108) frente a un servidor web (120).
6. El método de la reivindicación 1, que comprende además transmitir, mediante un servidor web (120), el primer billete al cliente (108).
7. El método de la reivindicación 1, que comprende además transmitir, mediante el cliente (108), el primer billete al servicio (112) de primer protocolo.
8. El método de la reivindicación 1, que comprende además autenticar el cliente (108), mediante el servicio anfitrión (116a-116n), al establecerse la sesión de comunicaciones.
9. El método de la reivindicación 1, en el que el servicio (112) de primer protocolo comprende un servidor representante.
10. El método de la reivindicación 1, en el que el servicio (112) de primer protocolo comprende una pasarela de seguridad.
11. El método de la reivindicación 1, en el que el cliente (108) y el servicio (112) de primer protocolo se comunican utilizando un primer protocolo (204) que encapsula a un segundo protocolo (200a-200n), y el servicio (112) de primer protocolo y el servicio anfitrión (116a-116n) se comunican utilizando el segundo protocolo (200a-200n).
12. El método de la reivindicación 1, en el que el primer billete es válido para la primera conexión y el segundo billete es válido para la segunda conexión.
13. El método de la reivindicación 1, en el que el segundo billete está inhabilitado hasta que se valida el primer billete.
14. El método de la reivindicación 1, en el que la conexión restablecida se enlaza con la conexión mantenida después de que se han validado el primer billete y el segundo billete.
15. El método de la reivindicación 1, en el que una de entre la primera conexión y la segunda conexión comprende una pluralidad de conexiones establecidas a través de uno de entre un nodo intermediario o uno o más servicios (204) de primer protocolo.
16. El método de la reivindicación 15, en el que se genera un tercer billete para, al menos, una de la pluralidad de conexiones.
\global\parskip0.900000\baselineskip
17. El método de la reivindicación 16, en el que el tercer billete es válido para dicha al menos una de la pluralidad de conexiones.
18. Un sistema para reconectar un cliente (108) con un servicio anfitrión (116a-116n), cuyo sistema se caracteriza por:
un cliente (108) con medios para establecer una sesión de comunicaciones con un servicio anfitrión (116a-116n) mediante una primera conexión;
un servicio (112) de primer protocolo con medios para establecer la primera conexión con el cliente (108) y una segunda conexión con el servicio anfitrión (116a-116n);
comprendiendo el servicio (112) de primer protocolo con medios para mantener una conexión, al menos una de entre la primera conexión o la segunda conexión;
el servicio (112) de primer protocolo tiene medios para validar un primer billete para restablecer una conexión interrumpida en una de entre la primera conexión y la segunda conexión, y tiene medios para validar un segundo billete para uso de la otra de entre la primera conexión o la segunda conexión; y
el servicio (112) de primer protocolo tiene medios para enlazar la conexión restablecida con la conexión mantenida.
19. El sistema de la reivindicación 18, que comprende además una autoridad (136) a cargo de los billetes que tiene medios para generar al menos uno de entre el primer billete o el segundo billete.
20. El sistema de la reivindicación 18, en el que el servicio (112) de primer protocolo tiene medios para mantener la sesión de comunicaciones durante una interrupción de la conexión interrumpida.
21. El sistema de la reivindicación 18, en el que el servicio (112) de primer protocolo tiene medios para generar al menos uno de entre el primer billete o el segundo billete.
22. El sistema de la reivindicación 18, en el que la autoridad (136) a cargo de los billetes tiene medios para validar al menos uno de entre el primer billete o el segundo billete.
23. El sistema de la reivindicación 18, que comprende además un servidor web (120), cuyo servidor web (120) tiene medios para autenticar al cliente (108).
24. El sistema de la reivindicación 23, en el que el servidor web (120) tiene medios para transmitir el primer billete al cliente (108).
25. El sistema de la reivindicación 18, en el que el cliente (108) tiene medios para transmitir el primer billete al servicio (112) de primer protocolo.
26. El sistema de la reivindicación 18, en el que el servicio anfitrión (116a-116n) tiene medios para autenticar al cliente (108) al establecerse la sesión de comunicaciones.
27. El sistema de la reivindicación 18, en el que el servicio (112) de primer protocolo comprende un servidor representante.
28. El sistema de la reivindicación 18, en el que el servicio (112) de primer protocolo comprende una pasarela de seguridad.
29. El sistema de la reivindicación 18, en el que el cliente (108) y el servicio (112) de primer protocolo tienen medios para comunicarse utilizando un primer protocolo (204) que encapsula a un segundo protocolo (200a-200n), y el servicio (112) de primer protocolo y el servicio anfitrión (116a-116n) tienen medios para comunicarse utilizando el segundo protocolo (200a-200n).
30. El sistema de la reivindicación 18, en el que el primer billete es válido para la primera conexión y el segundo billete es válido para la segunda conexión.
31. El sistema de la reivindicación 18, en el que el segundo billete está inhabilitado hasta que se valida el primer pillete.
32. El sistema de la reivindicación 18, en el que el servicio (112) de primer protocolo enlaza la conexión restablecida con la conexión mantenida después de que se han validado el primer billete y el segundo billete.
33. El sistema de la reivindicación 18, en el que una de entre la primera conexión y la segunda conexión comprende una pluralidad de conexiones establecidas a través de uno de entre un nodo intermediario o uno o más servicios (204) de primer protocolo.
\global\parskip1.000000\baselineskip
34. El sistema de la reivindicación 33, en el que se genera un tercer billete para, al menos, una de la pluralidad de conexiones.
35. El sistema de la reivindicación 34, en el que el tercer billete es válido para dicha al menos una de la pluralidad de conexiones.
ES04794633T 2003-10-10 2004-10-08 Una sesion persistente y fiable que recorre de manera segura componentes de red utilizando un protocolo de encapsulacion. Active ES2298835T3 (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US683881 2003-10-10
US10/683,881 US7562146B2 (en) 2003-10-10 2003-10-10 Encapsulating protocol for session persistence and reliability
US711719 2004-09-30
US10/711,719 US7984157B2 (en) 2002-02-26 2004-09-30 Persistent and reliable session securely traversing network components using an encapsulating protocol

Publications (1)

Publication Number Publication Date
ES2298835T3 true ES2298835T3 (es) 2008-05-16

Family

ID=34437418

Family Applications (1)

Application Number Title Priority Date Filing Date
ES04794633T Active ES2298835T3 (es) 2003-10-10 2004-10-08 Una sesion persistente y fiable que recorre de manera segura componentes de red utilizando un protocolo de encapsulacion.

Country Status (10)

Country Link
US (1) US7984157B2 (es)
EP (1) EP1678918B1 (es)
JP (1) JP2007515852A (es)
KR (1) KR20060126952A (es)
AT (1) ATE381196T1 (es)
AU (1) AU2004306772A1 (es)
CA (1) CA2541151C (es)
DE (1) DE602004010703T2 (es)
ES (1) ES2298835T3 (es)
WO (1) WO2005036858A1 (es)

Families Citing this family (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6928469B1 (en) 1998-12-29 2005-08-09 Citrix Systems, Inc. Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques
US7117239B1 (en) 2000-07-28 2006-10-03 Axeda Corporation Reporting the state of an apparatus to a remote computer
US8108543B2 (en) 2000-09-22 2012-01-31 Axeda Corporation Retrieving data from a server
US7185014B1 (en) 2000-09-22 2007-02-27 Axeda Corporation Retrieving data from a server
US20050198379A1 (en) 2001-06-13 2005-09-08 Citrix Systems, Inc. Automatically reconnecting a client across reliable and persistent communication sessions
US7254601B2 (en) 2001-12-20 2007-08-07 Questra Corporation Method and apparatus for managing intelligent assets in a distributed environment
US8135843B2 (en) * 2002-03-22 2012-03-13 Citrix Systems, Inc. Methods and systems for providing access to an application
US7178149B2 (en) 2002-04-17 2007-02-13 Axeda Corporation XML scripting of soap commands
JP3782981B2 (ja) * 2002-04-26 2006-06-07 インターナショナル・ビジネス・マシーンズ・コーポレーション セッション中継システム、クライアント端末、セッション中継方法、リモートアクセス方法、セッション中継プログラム及びクライアントプログラム
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
US7715340B2 (en) * 2004-03-04 2010-05-11 At&T Corp. Method and apparatus for enabling IP mobility with high speed access and network intelligence in communication networks
US8739274B2 (en) 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
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
KR20070045282A (ko) 2004-07-23 2007-05-02 사이트릭스 시스템스, 인크. 네트워크 노드 간의 통신을 최적화하기 위한 시스템 및방법
US8363650B2 (en) 2004-07-23 2013-01-29 Citrix Systems, Inc. Method and systems for routing packets from a gateway to an endpoint
EP1776825B1 (en) 2004-08-13 2012-12-19 Citrix Systems, Inc. A method for maintaining transaction integrity across multiple remote access servers
WO2006040812A1 (ja) * 2004-10-12 2006-04-20 Fujitsu Limited 運用管理プログラム、運用管理方法および運用管理装置
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
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
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
US8706877B2 (en) 2004-12-30 2014-04-22 Citrix Systems, Inc. Systems and methods for providing client-side dynamic redirection to bypass an intermediary
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
KR20070104566A (ko) 2005-01-24 2007-10-26 사이트릭스 시스템스, 인크. 네트워크에서 동적으로 발생된 객체들의 캐싱을 수행하는시스템 및 방법
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
US20080222604A1 (en) * 2005-03-07 2008-09-11 Network Engines, Inc. Methods and apparatus for life-cycle management
US20090089871A1 (en) * 2005-03-07 2009-04-02 Network Engines, Inc. Methods and apparatus for digital data processor instantiation
US8316129B2 (en) 2005-05-25 2012-11-20 Microsoft Corporation Data communication coordination with sequence numbers
US9692725B2 (en) 2005-05-26 2017-06-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US8943304B2 (en) 2006-08-03 2015-01-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US9621666B2 (en) 2005-05-26 2017-04-11 Citrix Systems, Inc. Systems and methods for enhanced delta compression
US9407608B2 (en) 2005-05-26 2016-08-02 Citrix Systems, Inc. Systems and methods for enhanced client side policy
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
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
US7478182B2 (en) * 2006-01-31 2009-01-13 Schweig Marc E Keyboard, mouse, and video (KVM) session capture system that stores and can playback portions of live KVM session via forensic capture module
US8151323B2 (en) 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
WO2007126272A1 (en) * 2006-04-28 2007-11-08 Samsung Electronics Co., Ltd. System and method for performing a delegation operation
US20070288645A1 (en) * 2006-06-08 2007-12-13 International Business Machines Corporation Method and System for Persistent and Reliable Data Transmission
US8244883B2 (en) 2006-08-03 2012-08-14 Citrix Systems, Inc. Systems and methods of for providing multi-mode transport layer compression
US8392977B2 (en) * 2006-08-03 2013-03-05 Citrix Systems, Inc. Systems and methods for using a client agent to manage HTTP authentication cookies
US8869262B2 (en) 2006-08-03 2014-10-21 Citrix Systems, Inc. Systems and methods for application based interception of SSL/VPN traffic
US8495181B2 (en) 2006-08-03 2013-07-23 Citrix Systems, Inc Systems and methods for application based interception SSI/VPN traffic
US8677007B2 (en) 2006-08-03 2014-03-18 Citrix Systems, Inc. Systems and methods for bypassing an appliance
US7953889B2 (en) * 2006-08-03 2011-05-31 Citrix Systems, Inc. Systems and methods for routing VPN traffic around network disruption
US8561155B2 (en) * 2006-08-03 2013-10-15 Citrix Systems, Inc. Systems and methods for using a client agent to manage HTTP authentication cookies
US7953861B2 (en) * 2006-08-10 2011-05-31 International Business Machines Corporation Managing session state for web applications
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
US9438662B2 (en) * 2007-04-30 2016-09-06 Microsoft Technology Licensing, Llc Enabling secure remote assistance using a terminal services gateway
US8312154B1 (en) * 2007-06-18 2012-11-13 Amazon Technologies, Inc. Providing enhanced access to remote services
US9455969B1 (en) 2007-06-18 2016-09-27 Amazon Technologies, Inc. Providing enhanced access to remote services
US7673056B1 (en) * 2007-06-27 2010-03-02 American Megatrends, Inc. Redirection gateway
US20090097470A1 (en) 2007-10-12 2009-04-16 Collier David S Methods and systems for communicating data
US8769660B2 (en) 2008-01-26 2014-07-01 Citrix Systems, Inc. Systems and methods for proxying cookies for SSL VPN clientless sessions
US9800550B2 (en) * 2008-01-31 2017-10-24 International Business Machines Corporation Method and system for pervasive access to secure file transfer servers
JP2009194688A (ja) * 2008-02-15 2009-08-27 Seiko Epson Corp 画像転送装置、画像表示装置、画像表示システム、画像データの転送方法、画像表示方法、およびコンピュータプログラム
JP4773470B2 (ja) * 2008-02-18 2011-09-14 株式会社リコー 文書検索・印刷システム、デジタル複合機、文書検索・印刷方法およびプログラム
US7971099B2 (en) * 2008-04-02 2011-06-28 International Business Machines Corporation Method for enabling faster recovery of client applications in the event of server failure
US7941549B2 (en) * 2008-09-16 2011-05-10 Microsoft Corporation Protocol exchange and policy enforcement for a terminal server session
DE102009022977A1 (de) * 2009-05-28 2010-12-02 Deutsche Telekom Ag Service Interface
US8527774B2 (en) * 2009-05-28 2013-09-03 Kaazing Corporation System and methods for providing stateless security management for web applications using non-HTTP communications protocols
US20110047610A1 (en) * 2009-08-19 2011-02-24 Keypair Technologies, Inc. Modular Framework for Virtualization of Identity and Authentication Processing for Multi-Factor Authentication
DE102009051383A1 (de) 2009-10-30 2011-05-12 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum sicheren Übertragen von Daten
US8966112B1 (en) 2009-11-30 2015-02-24 Dell Software Inc. Network protocol proxy
JP2011155629A (ja) * 2009-12-29 2011-08-11 Seiko Epson Corp 振動片、振動子、発振器、電子機器、および周波数調整方法
WO2011096307A1 (ja) 2010-02-03 2011-08-11 日本電気株式会社 プロキシ装置とその動作方法
US9645992B2 (en) 2010-08-21 2017-05-09 Oracle International Corporation Methods and apparatuses for interaction with web applications and web application data
US20120066767A1 (en) * 2010-09-13 2012-03-15 Nokia Corporation Method and apparatus for providing communication with a service using a recipient identifier
US8806040B2 (en) * 2010-12-06 2014-08-12 Red Hat, Inc. Accessing external network via proxy server
US8631277B2 (en) 2010-12-10 2014-01-14 Microsoft Corporation Providing transparent failover in a file system
US8862870B2 (en) 2010-12-29 2014-10-14 Citrix Systems, Inc. Systems and methods for multi-level tagging of encrypted items for additional security and efficient encrypted item determination
JP2012227704A (ja) * 2011-04-19 2012-11-15 Fujitsu Ltd 伝送装置、伝送制御方法及び伝送制御プログラム
US10277630B2 (en) * 2011-06-03 2019-04-30 The Boeing Company MobileNet
US9331955B2 (en) 2011-06-29 2016-05-03 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US8856582B2 (en) * 2011-06-30 2014-10-07 Microsoft Corporation Transparent failover
US20130067095A1 (en) 2011-09-09 2013-03-14 Microsoft Corporation Smb2 scaleout
US8788579B2 (en) 2011-09-09 2014-07-22 Microsoft Corporation Clustered client failover
KR101303120B1 (ko) 2011-09-28 2013-09-09 삼성에스디에스 주식회사 상호 인증 기반의 가상사설망 서비스 장치 및 방법
US8793389B2 (en) * 2011-12-20 2014-07-29 Qualcomm Incorporated Exchanging a compressed version of previously communicated session information in a communications system
US9191394B2 (en) * 2012-02-08 2015-11-17 Microsoft Technology Licensing, Llc Protecting user credentials from a computing device
US9722972B2 (en) * 2012-02-26 2017-08-01 Oracle International Corporation Methods and apparatuses for secure communication
US9537899B2 (en) * 2012-02-29 2017-01-03 Microsoft Technology Licensing, Llc Dynamic selection of security protocol
FR3000336A1 (fr) * 2012-12-20 2014-06-27 France Telecom Mecanisme de gestion d'une session de communication
US9129112B2 (en) 2013-03-15 2015-09-08 Oracle International Corporation Methods, systems and machine-readable media for providing security services
WO2014145039A1 (en) 2013-03-15 2014-09-18 Oracle International Corporation Intra-computer protected communications between applications
US9344422B2 (en) 2013-03-15 2016-05-17 Oracle International Corporation Method to modify android application life cycle to control its execution in a containerized workspace environment
US10270809B2 (en) * 2013-12-02 2019-04-23 Akamai Technologies, Inc. Virtual private network (VPN)-as-a-service with delivery optimizations while maintaining end-to-end data security
WO2015109172A1 (en) * 2014-01-17 2015-07-23 Pitroda Satyan G System and method for electronic vault to manage digital contents
US9961131B2 (en) 2014-04-25 2018-05-01 Microsoft Technology Licensing, Llc Enhanced reliability for client-based web services
KR101458368B1 (ko) * 2014-04-28 2014-11-19 알서포트 주식회사 모바일단말의 중계서버 능동 접속을 이용한 통신로 개설방법
EP3198418B1 (en) 2014-09-24 2020-04-22 Oracle International Corporation Method to modify android application life cycle to control its execution in a containerized workspace environment
US10122767B2 (en) * 2015-05-29 2018-11-06 Nagravision S.A. Systems and methods for conducting secure VOIP multi-party calls
US9900769B2 (en) 2015-05-29 2018-02-20 Nagravision S.A. Methods and systems for establishing an encrypted-audio session
US9891882B2 (en) 2015-06-01 2018-02-13 Nagravision S.A. Methods and systems for conveying encrypted data to a communication device
US10356059B2 (en) 2015-06-04 2019-07-16 Nagravision S.A. Methods and systems for communication-session arrangement on behalf of cryptographic endpoints
US10582022B2 (en) * 2016-05-20 2020-03-03 Citrix Systems, Inc. Adaptive session reliability over multiple transports
CN107113319B (zh) * 2016-07-14 2020-09-25 华为技术有限公司 一种虚拟网络计算认证中应答的方法、装置、系统和代理服务器
CN107770138B (zh) * 2016-08-22 2020-12-25 阿里巴巴集团控股有限公司 指定ip地址的方法及代理服务器、客户端
US11070539B2 (en) * 2018-04-10 2021-07-20 ArecaBay, Inc. Network security dynamic access control and policy enforcement
US11025672B2 (en) * 2018-10-25 2021-06-01 Palantir Technologies Inc. Approaches for securing middleware data access
US11829277B2 (en) * 2019-03-21 2023-11-28 Dish Network Technologies India Private Limited Systems and methods for remote debugging
CN112165480B (zh) * 2020-09-22 2022-11-11 北京字跳网络技术有限公司 信息获取方法、装置和电子设备
US11783062B2 (en) 2021-02-16 2023-10-10 Microsoft Technology Licensing, Llc Risk-based access to computing environment secrets

Family Cites Families (236)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2005A (en) * 1841-03-16 Improvement in the manner of constructing molds for casting butt-hinges
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
GB2168831B (en) 1984-11-13 1988-04-27 Dowty Information Services Lim Password-protected data link
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
EP0384339B1 (en) 1989-02-24 1997-04-02 Digital Equipment Corporation Broker for computer network server selection
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
US5181200A (en) 1990-10-29 1993-01-19 International Business Machines Corporation Handoff method and apparatus for mobile wireless workstation
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
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
WO1993020511A1 (en) 1992-03-31 1993-10-14 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
US5265159A (en) 1992-06-23 1993-11-23 Hughes Aircraft Company Secure file erasure
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
US6006090A (en) 1993-04-28 1999-12-21 Proxim, Inc. Providing roaming capability for mobile computers in a standard network
US5796727A (en) 1993-04-30 1998-08-18 International Business Machines Corporation Wide-area wireless lan access
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
US6249818B1 (en) 1993-06-30 2001-06-19 Compaq Computer Corporation Network transport driver interfacing
US5794207A (en) 1996-09-04 1998-08-11 Walker Asset Management Limited Partnership Method and apparatus for a cryptographically assisted commercial network system designed to facilitate buyer-driven conditional purchase offers
US5564070A (en) 1993-07-30 1996-10-08 Xerox Corporation Method and system for maintaining processing continuity to mobile computers in a wireless network
US5359593A (en) 1993-08-26 1994-10-25 International Business Machines Corporation Dynamic bandwidth estimation and adaptation for packet communications networks
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
US5499343A (en) * 1993-12-17 1996-03-12 Taligent, Inc. Object-oriented networking system with dynamically configurable communication links
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
US5548723A (en) 1993-12-17 1996-08-20 Taligent, Inc. Object-oriented network protocol configuration system utilizing a dynamically configurable protocol stack
US5515508A (en) * 1993-12-17 1996-05-07 Taligent, Inc. Client server system and method of operation including a dynamically configurable protocol stack
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
US5757907A (en) 1994-04-25 1998-05-26 International Business Machines Corporation Method and apparatus for enabling trial period use of software products: method and apparatus for generating a machine-dependent identification
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
US5659544A (en) 1994-10-17 1997-08-19 Lucent Technologies Inc. Method and system for distributed control in wireless cellular and personal communication systems
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システム
US5682478A (en) 1995-01-19 1997-10-28 Microsoft Corporation Method and apparatus for supporting multiple, simultaneous services over multiple, simultaneous connections between a client and network server
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
EP0734144A3 (de) 1995-03-20 1999-08-18 Siemens Aktiengesellschaft Verfahren und Anordnung zum Ermitteln der Benutzergebühr in einer Teilnehmereinrichtung
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
US6418324B1 (en) * 1995-06-01 2002-07-09 Padcom, Incorporated Apparatus and method for transparent wireless communication between a remote device and host system
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
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
AU1122997A (en) * 1995-11-07 1997-06-11 Cadis, Inc. Search engine for remote object oriented database management system
US6112085A (en) 1995-11-30 2000-08-29 Amsc Subsidiary Corporation Virtual network configuration and management system for satellite communication 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
EP0851628A1 (en) 1996-12-23 1998-07-01 ICO Services Ltd. Key distribution for mobile network
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
US6088451A (en) 1996-06-28 2000-07-11 Mci Communications Corporation Security system and method for network element access
US5909431A (en) 1996-06-28 1999-06-01 At&T Corp. Packet mode multimedia conferencing services over an ISDN wide area network
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
US5812671A (en) 1996-07-17 1998-09-22 Xante Corporation Cryptographic communication system
US5848064A (en) 1996-08-07 1998-12-08 Telxon Corporation Wireless software upgrades with version control
US5944791A (en) 1996-10-04 1999-08-31 Contigo Software Llc Collaborative web browser
JP3492865B2 (ja) * 1996-10-16 2004-02-03 株式会社東芝 移動計算機装置及びパケット暗号化認証方法
JPH10178421A (ja) * 1996-10-18 1998-06-30 Toshiba Corp パケット処理装置、移動計算機装置、パケット転送方法及びパケット処理方法
US6101543A (en) 1996-10-25 2000-08-08 Digital Equipment Corporation Pseudo network adapter for frame capture, encapsulation and encryption
JP3651721B2 (ja) 1996-11-01 2005-05-25 株式会社東芝 移動計算機装置、パケット処理装置及び通信制御方法
US5974151A (en) 1996-11-01 1999-10-26 Slavin; Keith R. Public key cryptographic system having differential security levels
US6131116A (en) 1996-12-13 2000-10-10 Visto Corporation System and method for globally accessing computer services
US5987611A (en) 1996-12-31 1999-11-16 Zone Labs, Inc. System and methodology for managing internet access on a per application basis for client computers connected to the internet
US6055575A (en) * 1997-01-28 2000-04-25 Ascend Communications, Inc. Virtual private network system and method
US5923756A (en) 1997-02-12 1999-07-13 Gte Laboratories Incorporated Method for providing secure remote command execution over an insecure computer network
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
US6161123A (en) 1997-05-06 2000-12-12 Intermec Ip Corporation Providing reliable communication over an unreliable transport layer in a hand-held device using a persistent session
US6166729A (en) 1997-05-07 2000-12-26 Broadcloud Communications, Inc. Remote digital image viewing system and method
US6091951A (en) 1997-05-14 2000-07-18 Telxon Corporation Seamless roaming among multiple networks
US6201962B1 (en) * 1997-05-14 2001-03-13 Telxon Corporation Seamless roaming among multiple networks including seamless transitioning between multiple devices
US6154461A (en) 1997-05-14 2000-11-28 Telxon Corporation Seamless roaming among multiple networks
US5968176A (en) 1997-05-29 1999-10-19 3Com Corporation Multilayer firewall system
US5935212A (en) 1997-08-07 1999-08-10 I-Planet, Inc. Connection-oriented session emulation
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
US6598167B2 (en) 1997-09-26 2003-07-22 Worldcom, Inc. Secure customer interface for web based data management
US6256739B1 (en) 1997-10-30 2001-07-03 Juno Online Services, Inc. Method and apparatus to determine user identity and limit access to a communications network
US6725376B1 (en) * 1997-11-13 2004-04-20 Ncr Corporation Method of using an electronic ticket and distributed server computer architecture for the same
US6085247A (en) 1998-06-08 2000-07-04 Microsoft Corporation Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions using different computers
DE69840672D1 (de) * 1997-11-14 2009-04-30 Microsoft Corp Serversbetriebssystem zur unterstützung von mehreren client-serverssitzungen und dynamischer wiederverbindung der benutzer an vorhergehenden sitzungen
US6230004B1 (en) * 1997-12-01 2001-05-08 Telefonaktiebolaget Lm Ericsson Remote procedure calls using short message service
WO1999030462A2 (en) 1997-12-12 1999-06-17 3Com Corporation A 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
US5870412A (en) * 1997-12-12 1999-02-09 3Com Corporation Forward error correction system for packet based real time media
US6145109A (en) 1997-12-12 2000-11-07 3Com Corporation Forward error correction system for packet based real time media
FR2773935A1 (fr) 1998-01-19 1999-07-23 Canon Kk Procedes de communication entre systemes informatiques et dispositifs les mettant en oeuvre
US6226750B1 (en) * 1998-01-20 2001-05-01 Proact Technologies Corp. Secure session tracking method and system for client-server environment
US6147986A (en) 1998-03-06 2000-11-14 Lucent Technologies Inc. Address updating of wireless mobile terminal hosts affiliated with a wired network
US6415329B1 (en) 1998-03-06 2002-07-02 Massachusetts Institute Of Technology Method and apparatus for improving efficiency of TCP/IP protocol over high delay-bandwidth network
US6199113B1 (en) * 1998-04-15 2001-03-06 Sun Microsystems, Inc. Apparatus and method for providing trusted network security
US7401114B1 (en) * 1998-04-20 2008-07-15 Sun Microsystems, Inc. Method and apparatus for making a computational service highly available
US6289461B1 (en) 1998-06-09 2001-09-11 Placeware, Inc. Bi-directional process-to-process byte stream protocol
US6243753B1 (en) 1998-06-12 2001-06-05 Microsoft Corporation Method, system, and computer program product for creating a raw data channel form an integrating component to a series of kernel mode filters
IL134616A (en) 1998-06-19 2004-05-12 Juniper Networks Inc Device for performing ip forwarding and atm switching
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
CN1221110C (zh) * 1998-07-17 2005-09-28 松下电器产业株式会社 通信系统及其网关、无线信息终端和无线通信方法
US6269402B1 (en) 1998-07-20 2001-07-31 Motorola, Inc. Method for providing seamless communication across bearers in a wireless communication system
US7277424B1 (en) 1998-07-21 2007-10-02 Dowling Eric M Method and apparatus for co-socket telephony
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
US6094423A (en) 1998-08-03 2000-07-25 Motorola, Inc. Wireless protocol method and apparatus supporting transaction requests with variable length responses
US6226618B1 (en) * 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
US6308281B1 (en) 1998-09-02 2001-10-23 International Business Machines Corporation Virtual client to gateway connection over multiple physical connections
US6574239B1 (en) 1998-10-07 2003-06-03 Eric Morgan Dowling Virtual connection of a remote unit to a server
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
US7136645B2 (en) 1998-10-09 2006-11-14 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
JP2000125029A (ja) 1998-10-12 2000-04-28 Matsushita Electric Ind Co Ltd 網制御装置
AU1599800A (en) 1998-10-28 2000-05-15 L-3 Communications Corporation Apparatus and methods for cryptographic synchronization in packet based communications
US6236652B1 (en) * 1998-11-02 2001-05-22 Airbiquity Inc. Geo-spacial Internet protocol addressing
US6449651B1 (en) 1998-11-19 2002-09-10 Toshiba America Information Systems, Inc. System and method for providing temporary remote access to a computer
JP2000242589A (ja) 1999-02-25 2000-09-08 Mitsubishi Electric Corp データ転送制御コンピュータシステム
US6421768B1 (en) 1999-05-04 2002-07-16 First Data Corporation Method and system for authentication and single sign on using cryptographically assured cookies in a distributed computer environment
JP2003500923A (ja) 1999-05-21 2003-01-07 インターナショナル・ビジネス・マシーンズ・コーポレーション セキュア通信をイニシャライズし、装置を排他的にペアリングする方法、コンピュータ・プログラムおよび装置
US6289450B1 (en) * 1999-05-28 2001-09-11 Authentica, Inc. Information security architecture for encrypting documents for remote access while maintaining access control
US6609198B1 (en) 1999-08-05 2003-08-19 Sun Microsystems, Inc. Log-on service providing credential level change without loss of session continuity
US6691232B1 (en) * 1999-08-05 2004-02-10 Sun Microsystems, Inc. Security architecture with environment sensitive credential sufficiency evaluation
US6535481B1 (en) * 1999-08-20 2003-03-18 Nortel Networks Limited Network data routing protection cycles for automatic protection switching
US6826696B1 (en) 1999-10-12 2004-11-30 Webmd, Inc. System and method for enabling single sign-on for networked applications
US7587467B2 (en) 1999-12-02 2009-09-08 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US7917628B2 (en) 1999-12-02 2011-03-29 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
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
US6721899B1 (en) * 2000-01-12 2004-04-13 Lucent Technologies Inc. Fault-tolerant non-flooding routing
US6496520B1 (en) 2000-01-21 2002-12-17 Broadcloud Communications, Inc. Wireless network system and method
JP3630065B2 (ja) 2000-03-03 2005-03-16 株式会社村田製作所 セラミックグリーンシートの製造方法及びセラミックグリーンシート製造装置
US7065547B2 (en) 2000-03-09 2006-06-20 Persels Conrad G Integrated on-line system with enchanced data transfer protocol
US6845387B1 (en) * 2000-04-07 2005-01-18 Advanced Digital Information Corporation Creating virtual private connections between end points across a SAN
IL135555A0 (en) 2000-04-09 2001-05-20 Vidius Inc Preventing unauthorized access to data sent via computer networks
US6671729B1 (en) 2000-04-13 2003-12-30 Lockheed Martin Corporation Autonomously established secure and persistent internet connection and autonomously reestablished without user intervention that connection if it lost
US6732314B1 (en) * 2000-05-26 2004-05-04 3Com Corporation Method and apparatus for L2TP forward error correction
JP4099930B2 (ja) * 2000-06-02 2008-06-11 株式会社日立製作所 ルータ装置及びvpn識別情報の設定方法
US6708218B1 (en) * 2000-06-05 2004-03-16 International Business Machines Corporation IpSec performance enhancement using a hardware-based parallel process
US20020069356A1 (en) * 2000-06-12 2002-06-06 Kwang Tae Kim Integrated security gateway apparatus
US7010300B1 (en) * 2000-06-15 2006-03-07 Sprint Spectrum L.P. Method and system for intersystem wireless communications session hand-off
US9038170B2 (en) 2000-07-10 2015-05-19 Oracle International Corporation Logging access system events
WO2002009458A2 (en) * 2000-07-24 2002-01-31 Bluesocket, Inc. Method and system for enabling seamless roaming in a wireless network
US7139844B2 (en) * 2000-08-04 2006-11-21 Goldman Sachs & Co. Method and system for processing financial data objects carried on broadcast data streams and delivering information to subscribing clients
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
AU2001289010A1 (en) 2000-09-12 2002-03-26 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity ina computing environment
EP1337904A4 (en) 2000-10-17 2006-02-22 Bytemobile Inc WIRELESS ASP SYSTEMS AND METHODS
US6697377B1 (en) * 2000-10-21 2004-02-24 Innomedia Pte Ltd. Method for communicating audio data in a packet switched network
US6947400B2 (en) * 2001-01-31 2005-09-20 Ipr Licensing, Inc. Achieving PPP mobility via the mobile IP infrastructure
US7089311B2 (en) * 2001-01-31 2006-08-08 International Business Machines Corporation Methods, systems and computer program products for resuming SNA application-client communications after loss of an IP network connection
JP3963690B2 (ja) * 2001-03-27 2007-08-22 富士通株式会社 パケット中継処理装置
US7136364B2 (en) 2001-03-29 2006-11-14 Intel Corporation Maintaining a reliable link
US7017049B2 (en) * 2001-04-12 2006-03-21 International Business Machines Corporation Method and system providing secure socket layer session sharing between network based servers and a client
US7224979B2 (en) 2001-05-03 2007-05-29 Symantec Corporation Location-aware service proxies in a short-range wireless environment
US20030041175A2 (en) 2001-05-03 2003-02-27 Singhal Sandeep K Method and System for Adapting Short-Range Wireless Access Points for Participation in a Coordinated Networked Environment
US6925481B2 (en) 2001-05-03 2005-08-02 Symantec Corp. Technique for enabling remote data access and manipulation from a pervasive device
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
US7100200B2 (en) 2001-06-13 2006-08-29 Citrix Systems, Inc. Method and apparatus for transmitting authentication credentials of a user across communication sessions
US7698381B2 (en) * 2001-06-20 2010-04-13 Microsoft Corporation Methods and systems for controlling the scope of delegation of authentication credentials
US7117267B2 (en) * 2001-06-28 2006-10-03 Sun Microsystems, Inc. System and method for providing tunnel connections between entities in a messaging system
US6832260B2 (en) 2001-07-26 2004-12-14 International Business Machines Corporation Methods, systems and computer program products for kernel based transaction processing
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
US20030078985A1 (en) * 2001-10-23 2003-04-24 David Holbrook Proactive message buffering across intermittent network connections
US20030078983A1 (en) * 2001-10-23 2003-04-24 Sullivan Terence Sean Message prioritization and buffering in a limited network
US7028183B2 (en) 2001-11-13 2006-04-11 Symantec Corporation Enabling secure communication in a clustered or distributed architecture
KR100436435B1 (ko) 2001-12-26 2004-06-16 한국전자통신연구원 유무선 통합망에서 간접 승인을 이용한 패킷 전송 장치 및그 방법
US7661129B2 (en) 2002-02-26 2010-02-09 Citrix Systems, Inc. Secure traversal of network components
US7080404B2 (en) 2002-04-01 2006-07-18 Microsoft Corporation Automatic re-authentication
US7746799B2 (en) 2003-06-20 2010-06-29 Juniper Networks, Inc. Controlling data link layer elements with network layer elements

Also Published As

Publication number Publication date
DE602004010703D1 (de) 2008-01-24
KR20060126952A (ko) 2006-12-11
CA2541151A1 (en) 2005-04-21
US7984157B2 (en) 2011-07-19
AU2004306772A1 (en) 2005-04-21
EP1678918B1 (en) 2007-12-12
ATE381196T1 (de) 2007-12-15
EP1678918A1 (en) 2006-07-12
US20050198380A1 (en) 2005-09-08
JP2007515852A (ja) 2007-06-14
DE602004010703T2 (de) 2008-11-27
WO2005036858A1 (en) 2005-04-21
CA2541151C (en) 2013-06-11

Similar Documents

Publication Publication Date Title
ES2298835T3 (es) Una sesion persistente y fiable que recorre de manera segura componentes de red utilizando un protocolo de encapsulacion.
US7502726B2 (en) Systems and methods for maintaining a session between a client and host service
US7660980B2 (en) Establishing secure TCP/IP communications using embedded IDs
ES2220836T3 (es) Establecimiento de una conexion segura con una red de empresa privada que pasa por una red publica.
US8443435B1 (en) VPN resource connectivity in large-scale enterprise networks
ES2308087T3 (es) Gestion de enlaces de seguridad en redes dinamicas.
JP5744172B2 (ja) 中間ストリーム再ネゴシエーションを介したプロキシsslハンドオフ
US9485220B2 (en) Virtual desktop accelerator with support for dynamic proxy thread management
ES2308048T3 (es) Cortafuegos personal remoto.
KR20060120032A (ko) 세션의 지속성과 신뢰성을 위한 프로토콜 캡슐화
ES2241275T3 (es) Metodo, disposicion y aparato para autentificacion.
WO2002089444A1 (en) Method and system for authenticating a personal security device vis-a-vis at least one remote computer system
KR100850506B1 (ko) 사용자 인증의 이중 강화를 위한 보안 관리 웹 서비스시스템 및 방법
Mohamed A Secure Lightweight Framework for Hosting and Consuming Web Services in Smart Mobile Devices