ES2394230T3 - Redireccionamiento de dispositivo local - Google Patents
Redireccionamiento de dispositivo local Download PDFInfo
- Publication number
- ES2394230T3 ES2394230T3 ES08170883T ES08170883T ES2394230T3 ES 2394230 T3 ES2394230 T3 ES 2394230T3 ES 08170883 T ES08170883 T ES 08170883T ES 08170883 T ES08170883 T ES 08170883T ES 2394230 T3 ES2394230 T3 ES 2394230T3
- Authority
- ES
- Spain
- Prior art keywords
- remote
- remote access
- module
- connection
- local
- 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
Links
- 238000004891 communication Methods 0.000 claims description 47
- 235000014510 cooky Nutrition 0.000 claims description 5
- 238000000034 method Methods 0.000 description 64
- 239000003795 chemical substances by application Substances 0.000 description 41
- 230000000977 initiatory effect Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000013500 data storage Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000013479 data entry Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000000796 flavoring agent Substances 0.000 description 1
- 235000019634 flavors Nutrition 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- CVRPVRHBAOPDIG-UHFFFAOYSA-N methyl 2-methylprop-2-enoate;2-(2-methylprop-2-enoyloxy)ethyl 1,3-dioxo-2-benzofuran-5-carboxylate Chemical compound COC(=O)C(C)=C.CC(=C)C(=O)OCCOC(=O)C1=CC=C2C(=O)OC(=O)C2=C1 CVRPVRHBAOPDIG-UHFFFAOYSA-N 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/59—Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
Un sistema (110) para redireccionar un dispositivo de bus serie universal (USB) (120) a un sistemaremoto (180), que comprende:un proxy (140) configurado para comunicarse con un módulo de acceso remoto (130), el módulo de acceso remoto(130) configurado para establecer una conexión de acceso remoto entre el sistema (110) y el sistema remoto (180),el proxy (140) configurado para recibir, a través de la conexión de acceso remoto, información de la conexión desocket para establecer una conexión de socket entre el sistema (110) y el sistema remoto (180), el proxy (140)configurado para recibir, desde el sistema remoto (180) a través de la conexión de socket, al menos una transacciónde dispositivo USB designada para un dispositivo USB virtual (195) local con respecto al sistema remoto (180),en el que el dispositivo USB virtual (195) se corresponde con un dispositivo USB (120) conectado localmente alsistema (110),en el que el dispositivo USB (120) conectado localmente al sistema (110) es remoto con respecto al sistema remoto(180) y local con respecto al sistema (110), yen el que el proxy (140) está configurado para redirigir el dispositivo USB (120) al sistema remoto (180) utilizando un20 controlador de dispositivo específico que se carga o instala en el sistema remoto (180) sin utilizar un controlador dedispositivo específico en el sistema (110) para el dispositivo USB (120).
Description
Redireccionamiento de dispositivo local.
CAMPO
La tecnología objeto de la presente invención está relacionada, en general, con la computación remota y, en particular, está relacionada con el redireccionamiento de un dispositivo local a un ordenador remoto.
ANTECEDENTES
Un enfoque del diseño y la implementación de redes informáticas, particularmente en lo referente al desarrollo de aplicaciones de cliente/servidor, incluye el diseño de aplicaciones de cliente y dispositivos de cliente para que la mayoría de los recursos sometidos a un uso intensivo residan en un dispositivo informático remoto, tal como un servidor centralizado, conectado a través de una red. Por lo general, estos dispositivos de cliente poseen una memoria, almacenamiento en disco y capacidad de procesamiento mínimos, pero están diseñados bajo la premisa de que la mayoría de usuarios conectados a un servidor potente no necesitan la capacidad de procesamiento adicional. Con estos dispositivos de cliente, el coste total de la titularidad se minimiza, debido a la reducción en los recursos y a que los clientes se pueden administrar y actualizar centralmente desde el servidor. Así, estos clientes resultan especialmente apropiados para una red que requiera un número considerable de estaciones de trabajo.
Con frecuencia, los dispositivos conectados al servidor (“dispositivos de lado servidor”) se comparten entre un gran número de clientes. Por ejemplo, en una instalación de entrada de datos o en un entorno de oficina, múltiples clientes pueden usar periódicamente un dispositivo de impresión conectado a un servidor para imprimir documentos.
El documento US 2007/061477 describe un sistema para compartir periféricos conectados localmente con sistemas remotos mediante el uso de unos respectivos controladores de dispositivo en ambos sistemas.
Desafortunadamente, no es habitual que un dispositivo conectado a un cliente (“dispositivo de lado cliente”) se pueda compartir con otros clientes de la red, y, por lo general, el cliente se ve limitado a un acceso local exclusivo al dispositivo del lado cliente. Asimismo, además del hecho de que otros clientes de la red no tengan acceso al dispositivo de lado cliente, el servidor también tendrá un acceso limitado, en caso de tenerlo, al dispositivo de lado cliente.
De acuerdo con un aspecto de la descripción, un sistema de acuerdo con la reivindicación 1, para redireccionar un dispositivo de bus serie universal (“USB”) hacia un sistema remoto, incluye un proxy configurado para comunicarse con un módulo de acceso remoto. El módulo de acceso remoto está configurado para establecer una conexión de acceso remoto entre un sistema y un sistema remoto. El proxy está configurado para recibir, a través de la conexión de acceso remoto, información de conexión de socket para establecer una conexión de socket entre el sistema y el sistema remoto. El proxy también está configurado para recibir, desde el sistema remoto y a través de la conexión de socket, al menos una transacción de dispositivo USB designada para un dispositivo USB virtual y local con respecto al sistema remoto. El dispositivo USB virtual se corresponde con un dispositivo USB conectado localmente al sistema. El dispositivo USB conectado localmente al sistema es remoto con respecto al sistema remoto y local respecto al sistema.
De acuerdo con otro aspecto de la presente descripción, un sistema de acuerdo con la reivindicación 10, para redireccionar automáticamente un dispositivo local a un sistema remoto, incluye un módulo configurado para conectar un dispositivo local a un sistema. Es sistema también incluye un módulo configurado para comunicarse con un módulo de acceso remoto. El módulo de acceso remoto está configurado para establecer una conexión de acceso remoto entre el sistema y un sistema remoto. El módulo también está configurado para iniciar automáticamente el redireccionamiento del dispositivo local al sistema remoto cuando el dispositivo local se conecta al sistema y cuando se establece la conexión de acceso remoto entre el sistema y el sistema remoto.
De acuerdo con otro aspecto más de la presente descripción, un sistema para utilizar un dispositivo local de un sistema remoto incluye un agente configurado para comunicarse con un módulo de acceso remoto. El módulo de acceso remoto está configurado para establecer una conexión de acceso remoto entre un sistema y un sistema remoto. El agente también está configurado para recibir una notificación de que se ha establecido la conexión de acceso remoto entre el sistema y el sistema remoto. Además, el agente está configurado para proporcionar información de la conexión de socket al módulo de acceso remoto para que se pueda redireccionar un dispositivo local del sistema remoto hacia el sistema. Asimismo, el agente también está configurado para proporcionar, a través de una conexión de socket con el sistema remoto, al menos una transacción de dispositivo designada para el dispositivo local del sistema remoto. El dispositivo local es remoto con respecto al sistema.
De acuerdo con otro aspecto más de la presente descripción, se proporciona un procedimiento para redireccionar un dispositivo local a un sistema remoto. El procedimiento incluye la comunicación con un módulo de acceso remoto. El módulo de acceso remoto está configurado para establecer una conexión de acceso remoto entre un sistema y un sistema remoto. El procedimiento también incluye la recepción, a través de la conexión de acceso remoto, de información de la conexión de socket para establecer una conexión de socket entre el sistema y el sistema remoto. El procedimiento incluye además la recepción, desde el sistema remoto a través de la conexión de socket, de al menos una transacción de dispositivo designada para un dispositivo virtual local con respecto al sistema remoto. El dispositivo virtual se corresponde con un dispositivo conectado localmente al sistema. El dispositivo conectado localmente al sistema es remoto con respecto al sistema remoto y local con respecto al sistema.
En otro aspecto más de la presente descripción, se proporciona un procedimiento para redireccionar automáticamente un dispositivo local a un sistema remoto. El procedimiento incluye la recepción de una notificación de que un dispositivo local está conectado a un sistema. El procedimiento también incluye la comunicación con un módulo de acceso remoto. El módulo de acceso remoto está configurado para establecer una conexión de acceso remoto entre el sistema y un sistema remoto. El procedimiento incluye además la iniciación automática del redireccionamiento del dispositivo local al sistema remoto cuando el dispositivo local se conecta al sistema y cuando se establece la conexión de acceso remoto entre el sistema y el sistema remoto. Tras iniciarse el redireccionamiento, el dispositivo local aparece como un dispositivo virtual y local con respecto al sistema remoto.
En otro aspecto de la descripción, se proporciona un procedimiento para utilizar un dispositivo de un sistema remoto. El procedimiento incluye la comunicación con un módulo de acceso remoto. El módulo de acceso remoto está configurado para establecer una conexión de acceso remoto entre un sistema y un sistema remoto. El procedimiento también incluye la recepción de una notificación de que se ha establecido la conexión de acceso remoto entre el sistema y el sistema remoto. El procedimiento incluye además la provisión de información de la conexión de socket al módulo de acceso remoto para que se pueda redireccionar al sistema un dispositivo local del sistema remoto. Asimismo, el procedimiento también incluye la provisión, a través de una conexión de socket al sistema remoto, de al menos una transacción de dispositivo designada para el dispositivo local del sistema remoto. El dispositivo local es remoto con respecto al sistema.
En otro aspecto más de la descripción, un sistema para redireccionar un dispositivo local a un sistema remoto incluye unos medios para la comunicación con un módulo de acceso remoto. El módulo de acceso remoto está configurado para establecer una conexión de acceso remoto entre un sistema y un sistema remoto. El sistema también incluye unos medios para recibir, a través de la conexión de acceso remoto, información de la conexión de socket para establecer una conexión de socket entre el sistema y el sistema remoto. El sistema incluye además unos medios para recibir, desde el sistema remoto a través de la conexión de socket, al menos una transacción de dispositivo designada para un dispositivo virtual local con respecto al sistema remoto. El dispositivo virtual se corresponde con un dispositivo conectado localmente al sistema. El dispositivo conectado localmente al sistema es remoto con respecto al sistema remoto y local con respecto al sistema.
De acuerdo con otro aspecto de la descripción, un sistema para redireccionar automáticamente un dispositivo local a un sistema remoto incluye unos medios para conectar un dispositivo local a un sistema. El sistema incluye también unos medios para comunicarse con un módulo de acceso remoto. El módulo de acceso remoto está configurado para establecer una conexión de acceso remoto entre el sistema y un sistema remoto. El sistema incluye además unos medios para iniciar automáticamente el redireccionamiento del dispositivo local al sistema remoto cuando se establece la conexión de acceso remoto entre el sistema y el sistema remoto.
En otro aspecto de la descripción, un sistema para utilizar un dispositivo de un sistema remoto incluye unos medios para la comunicación con un módulo de acceso remoto. El módulo de acceso remoto está configurado para establecer una conexión de acceso remoto entre un sistema y un sistema remoto. El sistema también incluye unos medios para recibir una notificación de que se ha establecido la conexión de acceso remoto entre el sistema y el sistema remoto. Asimismo, el sistema también incluye unos medios para proporcionar información de la conexión de socket al módulo de acceso remoto para que se pueda redireccionar un dispositivo local del sistema remoto al sistema. El sistema incluye además unos medios para proporcionar, a través de una conexión de socket al sistema remoto, al menos una transacción de dispositivo designada para el dispositivo local del sistema remoto. El dispositivo local es remoto con respecto al sistema.
En otro aspecto más de la descripción, un medio de lectura mecánica tiene codificadas unas instrucciones ejecutables por un procesador para llevar a cabo un procedimiento para redireccionar un dispositivo local a un sistema remoto. Las instrucciones incluyen código para comunicarse con un módulo de acceso remoto. El módulo de acceso remoto está configurado para establecer una conexión de acceso remoto entre el sistema y un sistema remoto. Las instrucciones también incluyen código para recibir, a través de la conexión de acceso remoto, información de la conexión de socket para establecer una conexión de socket entre el sistema y el sistema remoto. Las instrucciones además incluyen código para recibir, desde el sistema remoto a través de la conexión de socket, al menos una transacción de dispositivo designada para un dispositivo virtual y local con respecto al sistema remoto. El dispositivo virtual se corresponde con un dispositivo conectado localmente al sistema. El dispositivo conectado localmente al sistema es remoto con respecto al sistema remoto y local con respecto al sistema.
En otro aspecto de la descripción, un medio de lectura mecánica tiene codificadas unas instrucciones ejecutables por un procesador para llevar a cabo un procedimiento para redireccionar automáticamente un dispositivo local a un sistema remoto. Las instrucciones incluyen código para recibir una notificación de que un dispositivo local está conectado a un sistema. Las instrucciones también incluyen código para comunicarse con un módulo de acceso remoto. El módulo de acceso remoto está configurado para establecer una conexión de acceso remoto entre el sistema y un sistema remoto. Asimismo, las instrucciones incluyen además código para iniciar automáticamente el redireccionamiento del dispositivo local al sistema remoto cuando el dispositivo local se conecta al sistema y cuando se establece la conexión de acceso remoto entre el sistema y el sistema remoto.
En otro aspecto más de la descripción, un medio de lectura mecánica tiene codificadas unas instrucciones ejecutables por un procesador para llevar a cabo un procedimiento para utilizar un dispositivo de un sistema remoto. Las instrucciones incluyen código para comunicarse con un módulo de acceso remoto. El módulo de acceso remoto está configurado para establecer una conexión de acceso remoto entre el sistema y un sistema remoto. Las instrucciones también incluyen código para recibir una notificación de que se ha establecido la conexión de acceso remoto entre el sistema y sistema remoto. Asimismo, las instrucciones incluyen además código para proporcionar información de la conexión de socket al módulo de acceso remoto para que un dispositivo local del sistema remoto se pueda redireccionar al sistema. Las instrucciones también incluyen código para proporcionar, a través de una conexión de socket al sistema remoto, al menos una transacción de dispositivo designada para el dispositivo local del sistema remoto. El dispositivo local es remoto con respecto al sistema.
De acuerdo con otro aspecto de la presente invención, se proporciona un sistema para utilizar un dispositivo de un sistema remoto, que comprende: un agente configurado para comunicarse con un módulo de acceso remoto, el módulo de acceso remoto configurado para establecer una conexión de acceso remoto entre un sistema y un sistema remoto, el agente configurado para recibir una notificación de que se ha establecido la conexión de acceso remoto entre el sistema y sistema remoto, el agente configurado para proporcionar información de la conexión de socket al módulo de acceso remoto para que se pueda redireccionar al sistema un dispositivo local del sistema remoto, el agente configurado para proporcionar a través de una conexión de socket al sistema remoto al menos una transacción de dispositivo designada para el dispositivo local del sistema remoto, en la que el dispositivo local es remoto con respecto al sistema.
En un sistema de este tipo, el dispositivo local es un dispositivo de bus serie universal (USB), y en el que la al menos una transacción de dispositivo es una transacción de dispositivo USB. El agente también puede estar configurado para recibir, a través de la conexión de socket desde un proxy en el sistema remoto un resultado de al menos una solicitud de transacción de dispositivo para el dispositivo local del sistema remoto. El módulo de acceso remoto puede estar configurado para confirmar la conexión de acceso remoto con un segundo módulo de acceso remoto en el sistema remoto a través de la conexión de acceso remoto. El agente puede estar configurado para recibir la notificación desde un sistema operativo que opere en el sistema. Al menos una de entre la al menos una transacción de dispositivo y la información de la conexión de socket puede estar cifrada.
De acuerdo con otro aspecto de la presente invención, se proporciona un procedimiento para redireccionar un dispositivo local a un sistema remoto, que comprende: la comunicación con un módulo de acceso remoto, el módulo de acceso remoto configurado para establecer una conexión de acceso remoto entre un sistema y un sistema remoto; la recepción, a través de la conexión de acceso remoto, de información de la conexión de socket para establecer una conexión de socket entre el sistema y el sistema remoto; y la recepción, desde el sistema remoto a través de la conexión de socket, de al menos una transacción de dispositivo designada para un dispositivo virtual local con respecto al sistema remoto, en la que el dispositivo virtual se corresponde con un dispositivo conectado localmente al sistema, y en la que el dispositivo conectado localmente al sistema es remoto con respecto al sistema remoto y local con respecto al sistema.
El dispositivo conectado localmente al sistema puede ser un dispositivo de bus serie universal. En una forma de realización, el procedimiento también comprende la iniciación automática del redireccionamiento del dispositivo al sistema remoto cuando el dispositivo se conecta al sistema y cuando se establece la conexión de acceso remoto entre el sistema y el sistema remoto.
En una forma de realización, el procedimiento también comprende la iniciación del redireccionamiento del dispositivo al sistema remoto sin que un usuario del sistema lleve a cabo configuraciones cuando el dispositivo se conecte al sistema y cuando se establezca la conexión de acceso remoto entre el sistema y el sistema remoto.
La etapa de recepción de información de la conexión de socket puede comprender la recepción de la información de la conexión de socket por parte del módulo de acceso remoto, desde el sistema remoto, y el procedimiento también comprende: la recepción de la información de la conexión de socket desde el módulo de acceso remoto, el módulo de acceso remoto conectado a través de la conexión de acceso remoto a un segundo módulo de acceso remoto en el sistema remoto. La conexión de acceso remoto puede comprender un canal virtual, y la información de la conexión de socket se recibe entonces a través del canal virtual. La información de la conexión de socket puede comprender al menos uno o más de los siguientes elementos: información de la dirección de protocolo de Internet (IP), un número de puerto, una identificación de sesión y una cookie.
El sistema es un ordenador que comprende además un procesador y el módulo de acceso remoto, y el sistema remoto es un ordenador que comprende un segundo módulo de acceso remoto y un agente. La conexión de socket puede ser distinta de la conexión de acceso remoto. En la forma de realización anterior, el procedimiento también comprende el cifrado de al menos una de entre la al menos una transacción de dispositivo y la información de la conexión de socket.
En otra forma de realización, se proporciona un procedimiento para redireccionar un dispositivo local a un sistema remoto, que comprende: la recepción de una notificación de que un dispositivo local está conectado a un sistema; la comunicación con un módulo de acceso remoto, el módulo de acceso remoto configurado para establecer una conexión de acceso remoto entre el sistema y un sistema remoto; y la iniciación automática del redireccionamiento del dispositivo local al sistema remoto cuando el dispositivo local se conecta al sistema y cuando se establece la conexión de acceso remoto entre el sistema y el sistema remoto, en el que, tras la iniciación del redireccionamiento, el dispositivo local aparece como un dispositivo virtual local con respecto al sistema remoto.
En tal caso, el dispositivo local puede ser un dispositivo de bus serie universal. Además, el procedimiento puede comprender la recepción, a través de la conexión de acceso remoto, de información de la conexión de socket para el redireccionamiento, en el que la etapa de la iniciación automática del redireccionamiento comprende la iniciación automática del redireccionamiento a través de una conexión de socket entre el sistema y el sistema remoto.
En la forma de realización anterior, la conexión de socket puede ser distinta de la conexión de acceso remoto. La etapa de la iniciación automática del redireccionamiento puede comprender la iniciación del redireccionamiento sin que un usuario del sistema proporcione datos de entrada al sistema o al sistema remoto cuando se conecta el dispositivo local al sistema y cuando se establece la conexión de acceso remoto entre el sistema y el sistema remoto.
La etapa de comunicación con el módulo de acceso remoto puede llevarla a cabo un proxy del sistema, y la etapa de la iniciación automática del redireccionamiento la lleva a cabo el proxy del sistema. En la forma de realización anterior, puede haber otra etapa que comprenda: el cifrado de la información recibida desde el sistema remoto y/o la información que se va a enviar al sistema remoto.
De acuerdo con otro aspecto de la presente invención, se proporciona un procedimiento para utilizar un dispositivo de un sistema remoto, que comprende: la comunicación con un módulo de acceso remoto, el módulo de acceso remoto configurado para establecer una conexión de acceso remoto entre un sistema y un sistema remoto; la recepción de una notificación de que se ha establecido la conexión de acceso remoto entre el sistema y el sistema remoto; la provisión de información de la conexión de socket al módulo de acceso remoto para que se pueda redireccionar al sistema un dispositivo local del sistema remoto; y la provisión, a través de una conexión de socket al sistema remoto, de al menos una transacción de dispositivo designada para el dispositivo local del sistema remoto, en la que el dispositivo local es remoto con respecto al sistema.
En tal caso, el dispositivo local es un dispositivo de bus serie universal. El procedimiento anterior puede comprender otra etapa más que comprenda: la recepción, a través de la conexión de socket desde un proxy en el sistema remoto, de un resultado de al menos una solicitud de transacción de dispositivo para el dispositivo local del sistema remoto. Opcionalmente, puede haber otra etapa que comprenda: la confirmación de la conexión de acceso remoto con un segundo módulo de acceso remoto en el sistema remoto a través de la conexión de acceso remoto.
En esta forma de realización, la etapa de recepción de una notificación puede comprender la recepción de la notificación desde un sistema operativo que opere en el sistema.
Además, el procedimiento puede comprender el cifrado de al menos una de entre la al menos una transacción de dispositivo y la información de la conexión de socket.
De acuerdo con otro aspecto de la presente invención, se proporciona un medio de lectura mecánica que tiene codificadas unas instrucciones ejecutables por un procesador para llevar a cabo un procedimiento para redireccionar un dispositivo local a un sistema remoto, y el procedimiento comprende: la comunicación con un módulo de acceso remoto, el módulo de acceso remoto configurado para establecer una conexión de acceso remoto entre el sistema y un sistema remoto; la recepción, a través de la conexión de acceso remoto, de información de la conexión de socket para establecer una conexión de socket entre el sistema y el sistema remoto; y la recepción, desde el sistema remoto a través de la conexión de socket, de al menos una transacción de dispositivo designada para un dispositivo virtual local con respecto al sistema remoto, en la que el dispositivo virtual se corresponde con un dispositivo conectado localmente al sistema, y en la que el dispositivo conectado localmente al sistema es remoto con respecto al sistema remoto y local con respecto al sistema.
El dispositivo local puede ser un dispositivo de bus serie universal. El procedimiento también puede comprender: la iniciación automática del redireccionamiento del dispositivo al sistema remoto cuando se conecta el dispositivo al sistema y cuando se establece la conexión de acceso remoto entre el sistema y el sistema remoto. En una situación óptima, el procedimiento también comprende: la iniciación del redireccionamiento del dispositivo al sistema remoto sin que un usuario del sistema lleve a cabo configuraciones cuando el dispositivo se conecte al sistema y cuando se establezca la conexión de acceso remoto entre el sistema y el sistema remoto.
La etapa de recepción de información de la conexión de socket comprende la recepción de información de la conexión de socket por parte del módulo de acceso remoto desde el sistema remoto, y el procedimiento también comprende: la recepción de información de la conexión de socket desde el módulo de acceso remoto, y el módulo de acceso remoto conectado a través de la conexión de acceso remoto a un segundo módulo de acceso remoto en el sistema remoto.
La conexión de acceso remoto puede comprender un canal virtual, y la información de la conexión de socket se recibiría a través del canal virtual. La información de la conexión de socket puede comprender al menos uno o más de los siguientes elementos: información de dirección de protocolo de Internet (IP), un número de puerto, una identificación de sesión y una cookie.
En una forma de realización, el sistema es un ordenador que también comprende un procesador y el módulo de acceso remoto, y el sistema remoto es un ordenador que comprende un segundo módulo de acceso remoto y un agente. La conexión de socket puede ser distinta de la conexión de acceso remoto. El procedimiento puede comprender también: el cifrado de al menos una de entre la al menos una transacción de dispositivo y la información de la conexión de socket.
De acuerdo con otro aspecto de la presente invención, se proporciona un medio de lectura mecánica que tiene codificadas unas instrucciones ejecutables por un procesador para llevar a cabo un procedimiento para redireccionar un dispositivo local a un sistema remoto, y el procedimiento comprende: la recepción de una notificación de que un dispositivo local está conectado a un sistema; la comunicación con un módulo de acceso remoto, y el módulo de acceso remoto configurado para establecer una conexión de acceso remoto entre el sistema y un sistema remoto; y la iniciación automática del redireccionamiento del dispositivo local al sistema remoto cuando se conecta el dispositivo local al sistema y cuando se establece la conexión de acceso remoto entre el sistema y el sistema remoto.
El dispositivo local puede ser un dispositivo de bus serie universal. El procedimiento también puede comprender: la recepción, a través de la conexión de acceso remoto, de información de la conexión de socket para el redireccionamiento, y la etapa de iniciación automática del redireccionamiento comprende la iniciación automática del redireccionamiento a través de una conexión de socket entre el sistema y el sistema remoto.
La conexión de socket puede ser distinta de la conexión de acceso remoto.
En la forma de realización anterior, la etapa de iniciación automática del redireccionamiento puede comprender la iniciación del redireccionamiento sin que un usuario del sistema proporcione datos de entrada al sistema o al sistema remoto cuando se conecte el dispositivo local al sistema y cuando se establezca la conexión de acceso remoto entre el sistema y el sistema remoto.
La etapa de comunicación con el módulo de acceso remoto la puede llevar a cabo un proxy del sistema, y la etapa de iniciación automática del redireccionamiento la lleva a cabo el proxy del sistema. El procedimiento también puede comprender: el cifrado de información recibida desde el sistema y/o información que se vaya a enviar al sistema remoto.
De acuerdo con otro aspecto de la presente invención, se proporciona un medio de lectura mecánica que tiene codificadas unas instrucciones ejecutables por un procesador para llevar a cabo un procedimiento para utilizar un dispositivo de un sistema remoto, que comprende: la comunicación con un módulo de acceso remoto, el módulo de acceso remoto configurado para establecer una conexión de acceso remoto entre el sistema y un sistema remoto; la recepción de una notificación de que se ha establecido una conexión de acceso remoto entre el sistema y el sistema remoto; la provisión de información de la conexión de socket al módulo de acceso remoto para que un dispositivo local del sistema remoto se pueda redireccionar al sistema; y la provisión, a través de una conexión de socket al sistema remoto, de al menos una transacción de dispositivo designada para el dispositivo local del sistema remoto, en la que el dispositivo local es remoto con respecto al sistema.
El dispositivo local puede ser un dispositivo de bus serie universal. El procedimiento también puede comprender: la recepción, a través de la conexión de socket desde un proxy en el sistema remoto, de un resultado de al menos una solicitud de transacción de dispositivo para el dispositivo local del sistema remoto. El procedimiento también puede comprender: la confirmación de la conexión de acceso remoto con un segundo módulo de acceso remoto en el sistema remoto a través de la conexión de acceso remoto. La etapa de recepción de una notificación puede comprender la recepción de la notificación desde un sistema operativo que opera en el sistema. El procedimiento también puede comprender: el cifrado de al menos una de entre la al menos una transacción de dispositivo y la información de la conexión de socket.
Se entiende que para los expertos en la materia resultarán evidentes otras configuraciones de la tecnología de la invención a partir de la siguiente descripción detallada, en la que se muestran diversas configuraciones de la tecnología de la invención y se describen a modo de ilustración. Como se comprenderá, la tecnología de la invención es capaz de adoptar otras configuraciones diferentes y sus diversos detalles pueden sufrir modificaciones en otros diversos aspectos, todo ello sin alejarse del alcance de la tecnología de la invención. Por consiguiente, se debe considerar que los dibujos y la descripción detallada poseen un carácter ilustrativo y no restrictivo.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
La figura 1 es un diagrama de bloques de un sistema de redireccionamiento de dispositivos locales de acuerdo con una configuración de la presente descripción.
La figura 2 es un diagrama de bloques que ilustra una configuración ejemplar del hardware de un sistema de redireccionamiento de dispositivos locales.
La figura 3 es un diagrama de flujo que refleja un procedimiento ejemplar de redireccionamiento de un dispositivo local desde un dispositivo informático local a un dispositivo informático remoto.
La figura 4 es un diagrama de bloques que ilustra un sistema informático ejemplar que puede llevar a cabo ciertos aspectos de la presente descripción de acuerdo con una configuración de la presente descripción.
La figura 5 es un diagrama de flujo que ilustra una operación ejemplar de redireccionamiento de un dispositivo local.
La figura 6 es un diagrama de flujo que ilustra una operación ejemplar de redireccionamiento automático de un dispositivo local.
La figura 7 es un diagrama de flujo que ilustra una operación ejemplar de utilización de un dispositivo de un sistema remoto.
La figura 8 es un diagrama de bloques conceptual que ilustra un ejemplo de la funcionalidad de los módulos en un sistema para redireccionar un dispositivo local.
La figura 9 es un diagrama de bloques conceptual que ilustra un ejemplo de la funcionalidad de los módulos en un sistema para redireccionar automáticamente un dispositivo local.
La figura 10 es un diagrama de bloques conceptual que ilustra un ejemplo de la funcionalidad de los módulos en un sistema para utilizar un dispositivo de un sistema remoto.
DESCRIPCIÓN DETALLADA
La descripción detallada expuesta a continuación tiene como objeto el de servir como descripción de diversas configuraciones de la tecnología de la invención y no el de representar las únicas configuraciones con las que se puede llevar a la práctica la tecnología de la invención. Los dibujos adjuntos se incorporan en la presente memoria descriptiva y forman parte de la descripción detallada. La descripción detallada incluye detalles específicos con el objeto de proporcionar una comprensión en profundidad de la tecnología de la invención. No obstante, para los expertos en la materia resultará evidente que la tecnología de la invención se puede llevar a la práctica sin estos detalles específicos. En algunos casos, se muestran estructuras y componentes muy conocidos en forma de diagrama de bloques para evitar que se confundan los conceptos de la tecnología de la invención.
Atendiendo ahora a la figura 1, se ilustra un diagrama simplificado de un sistema de redireccionamiento de dispositivos locales de acuerdo con una configuración de la presente memoria descriptiva. El sistema de redireccionamiento de dispositivos locales (100) puede incluir un dispositivo informático de cliente local (110) (“cliente”) en comunicación con un dispositivo informático de servidor remoto (180) (“servidor”) usando una conexión de acceso remoto (140), canal virtual (145), y conexión de socket (150). El cliente (110) puede incluir un proxy (140) y un módulo de acceso remoto de cliente (130). El cliente (110) se puede conectar al dispositivo (120). El servidor
- (180)
- puede incluir un módulo de acceso remoto de servidor (175) y un agente (170).
De acuerdo con la configuración ilustrada, mientras que el dispositivo (120) no está conectado localmente o físicamente al servidor (180) y es remoto con respecto al servidor (180), el dispositivo (120) aparece ante el servidor
- (180)
- como si estuviera instalado localmente en el servidor (180) y conectado al mismo.
A modo ilustrativo y no como limitación, el dispositivo (120) puede ser un medio de lectura mecánica, un teclado, un mando de control, un monitor, un ratón, una cámara, un escáner, una impresora, un fax, un teléfono, un asistente personal digital (PDA), un reproductor de audio, un dispositivo de vídeo, un dispositivo multimedia, un ordenador personal de bolsillo (“PC”), un teléfono móvil, un dispositivo periférico u otros dispositivos que se puedan conectar al cliente (110). El dispositivo (120) puede ser un dispositivo fijo o un dispositivo móvil. El dispositivo (120) puede ser un dispositivo de una única interfaz o un dispositivo de múltiples interfaces. El dispositivo (120) puede ser un dispositivo externo (es decir, externo con respecto al cliente (110)). En otro aspecto de la presente descripción, el dispositivo (120) puede ser un dispositivo interno (es decir, interno con respecto al cliente (110)). Por ejemplo, un teclado, un monitor, o una cámara pueden ser dispositivos internos de cliente (110). El dispositivo (120) puede estar configurado para su sincronización con el servidor (180).
En un aspecto de la descripción, el dispositivo (120) es un dispositivo de bus serie universal (“USB”) y se puede conectar localmente al cliente (110) usando una conexión de USB con cable o USB inalámbrica. En otro aspecto de la descripción, el dispositivo (120) puede ser un dispositivo distinto a un dispositivo USB. El dispositivo (120) se puede conectar localmente al cliente (110) usando una interfaz de comunicaciones por cable que incluye, sin limitación, (i) una interfaz de comunicaciones en serie tal como un USB con cable (al que se alude más arriba), RS232, Ethernet u otra interfaz de comunicaciones en serie, o (ii) una interfaz de comunicaciones en paralelo. En otro aspecto de la presente descripción, el dispositivo (120) se puede conectar localmente al cliente (110) usando una interfaz de comunicaciones inalámbricas que incluye, sin limitación: radiofrecuencia (“RF”), infrarrojos, Bluetooth®, USB inalámbrico (al que se alude más arriba), Wireless Fidelity (Wi-Fi), Instituto de ingenieros eléctricos y electrónicos (“IEEE”) 802.11x, o similares. Una interfaz de comunicaciones por cable o inalámbricas se puede conectar con un proxy (140) a través de uno o más controladores de dispositivo (que no se muestran) y/u otros módulos intermedios (que no se muestran).
Tal como se usa en la presente memoria descriptiva, un dispositivo “local” de un sistema, o un dispositivo conectado “localmente” a un sistema, puede ser un dispositivo conectado directamente al sistema usando uno o más cables o conectores (por ejemplo, conectados físicamente al sistema), un dispositivo conectado indirectamente al sistema usando uno o más concentradores o hubs, o un dispositivo conectado directamente al sistema usando un enlace inalámbrico. Por ejemplo, el dispositivo (120) es un dispositivo local de cliente (110). Además, en un aspecto de la descripción, un dispositivo local de un sistema o un dispositivo conectado localmente a un sistema puede incluir un dispositivo dentro del sistema (por ejemplo, un dispositivo interno del cliente (110)).
Un dispositivo “remoto”, o un dispositivo “remoto” con respecto a un sistema, puede ser un dispositivo que no esté conectado directamente al sistema. Por ejemplo, el servidor (180) es remoto con respecto tanto al cliente (110) como al dispositivo (120), debido a que el servidor (180) no está conectado directamente al cliente (110) o el dispositivo (120), sino que está conectado indirectamente a través de la red (135) (ilustrada en la figura 2), que puede incluir, por ejemplo, un enrutador o router, otro servidor o Internet.
El módulo de acceso remoto de cliente (130) está configurado para crear una conexión de acceso remoto (140) con el módulo de acceso remoto de servidor (175) en el servidor (180). En conjunto, el módulo de acceso remoto de cliente (130) y el módulo de acceso remoto de servidor (175) están configurados para permitir que el cliente (110) acceda al servidor (180) a través de la conexión de acceso remoto (140). En un aspecto de la descripción, el módulo de acceso remoto de cliente (130) y el módulo de acceso remoto de servidor (175) pueden estar configurados para permitir que el cliente (110) controle de forma remota el servidor (180) a través de una conexión de acceso remoto (140). En otro aspecto de la memoria descriptiva, el módulo de acceso remoto de cliente (130) y el módulo de acceso remoto de servidor (175) pueden estar configurados para que la interfaz gráfica de usuario que se ejecuta de forma remota en el servidor (180) se pueda visualizar localmente en el cliente (110). Las aplicaciones de acceso remoto ejemplares, entre las que se incluye el módulo de acceso remoto de cliente (130) y el módulo de acceso remoto de servidor (175) configurados para crear la conexión de acceso remoto (140), son la aplicación Remote Desktop Protocol de Microsoft® (“RDP”) y la aplicación Independent Computing Architecture (“ICA”) de Citrix®. No obstante, la tecnología de la invención no se limita a estas aplicaciones de acceso remoto ejemplares.
El módulo de acceso remoto de cliente (130) puede incluir una biblioteca de enlaces dinámicos de cliente del servicio terminal service apropiada, así como otras bibliotecas estáticas para su uso con una conexión remota. El módulo de acceso remoto de cliente (130) puede incluir una biblioteca de enlaces dinámicos de cliente del terminal service (por ejemplo, VCClient.dll) para una aplicación de acceso remoto como la aplicación RDP de Microsoft® y la aplicación ICA de Citrix®. De forma similar, los módulos de acceso remoto de servidor (175) pueden incluir módulos de servicio de sistema apropiados para su uso con una conexión remota. El módulo de acceso remoto de cliente
(130) y el módulo de acceso remoto de servidor (175) pueden traer preinstalados los respectivos sistemas operativos que operen en el cliente (110) y el servidor (180). Otra posibilidad consiste en que el módulo de acceso remoto de cliente (130) y el módulo de acceso remoto de servidor (175) se añadan más tarde o se configuren de cualquier otro modo para operar con los respectivos sistemas operativos que operen en el cliente (110) y el servidor (180).
El módulo de acceso remoto de cliente (130) (por ejemplo, VCClient.dll) puede crear un canal virtual (145), usar al menos una parte de la conexión de acceso remoto (140) para el canal virtual (145) y esperar a que el servidor (180) envíe información de la conexión de socket. El módulo de acceso remoto de servidor (175) puede recibir información de la conexión de socket desde el agente (170) y enviar la información de la conexión de socket al módulo de acceso remoto de cliente (130) (por ejemplo, CVVlient.dll) a través del canal virtual (145). De este modo, el módulo de acceso remoto de cliente (130) (por ejemplo, VCClient.dll) puede recibir la información de la conexión de socket desde el módulo de acceso remoto de servidor (175) a través del canal virtual (145), y tras recibir la información, el módulo de acceso remoto de cliente (130) (por ejemplo, VCClient.dll) puede enviar la información de la conexión de socket al proxy (140) para solicitar al proxy que comience el redireccionamiento del dispositivo local hacia el servidor (180). En un aspecto de la descripción, siempre que se cierra una sesión de conexión de acceso remoto, el módulo de acceso remoto de cliente (130) (por ejemplo, VCClient.dll) puede ordenar al proxy (140) que detenga el redireccionamiento del dispositivo local al servidor (180).
La conexión de socket (150) puede estar configurada para redireccionar transacciones desde y hacia el dispositivo
(120) entre el proxy (140) en el cliente (110) y el agente (170) en el servidor (180). A veces, el redireccionamiento de las transacciones desde y hacia un dispositivo se denomina redireccionamiento de un dispositivo. En un aspecto de la descripción, el redireccionamiento de un dispositivo local (por ejemplo, el dispositivo (120) local con respecto al cliente (110)) a un sistema remoto (por ejemplo, el servidor (180)) permite que el dispositivo local aparezca como un dispositivo local (un “dispositivo virtual” (195)) con respecto al sistema remoto aunque el dispositivo local esté físicamente alejado del sistema remoto, y, por tanto, el redireccionamiento no requiere mover físicamente el dispositivo local hacia el sistema remoto. El redireccionamiento de un dispositivo local a un sistema remoto permite redireccionar hacia el dispositivo local real (por ejemplo, el dispositivo (120)) una transacción de dispositivo (por ejemplo una solicitud de escritura) dirigida hacia el dispositivo virtual (por ejemplo, el dispositivo virtual (195)), y una transacción de dispositivo (por ejemplo, el resultado de una solicitud de lectura) procedente del dispositivo local real se redirecciona hacia el dispositivo virtual. Por consiguiente, parece que se está produciendo una transacción de dispositivo con el dispositivo virtual local con respecto al sistema remoto, aunque la transacción de dispositivo esté ocurriendo en realidad en el dispositivo local real.
De acuerdo con un aspecto de la descripción, aunque la conexión de socket (150) y la conexión de acceso remoto
- (140)
- pueden compartir la misma conexión física (a la red (135) de la figura 2) o la misma vía de comunicación física, cada una de las conexiones, la conexión de socket (150) y la conexión de acceso remoto (140), puede comprender un “canal” de comunicación distinto o separado.
En un aspecto ejemplar de la descripción, se puede considerar que los paquetes de datos que contienen un tipo de información de cabecera forman un “canal”. Los canales se pueden considerar como entidades lógicas que se diferencian por tener diferentes cabeceras, y la información enviada o recibida a través de diferentes canales se puede enviar o recibir a través de la misma conexión física. Por ejemplo, se puede considerar que los paquetes de datos que contienen una primera cabecera forman un primer canal que constituye la conexión de socket (150). Se puede considerar que los paquetes de datos que contienen una segunda cabecera que es diferente de la primera cabecera forman un segundo canal que constituye la conexión de acceso remoto (140) o el canal virtual (145). Por ejemplo, una primera cabecera puede ser “DATA”, y una segunda cabecera puede ser “CONTROL”. De este modo, la información que se va a enviar o recibir a través de la conexión de socket (150) puede estar contenida en paquetes de datos que contienen una primera cabecera, y la información que se va a enviar o recibir a través de la conexión de acceso remoto (140) o el canal virtual (145) puede estar contenida en paquetes de datos que contienen una segunda cabecera que es diferente de la primera cabecera. La información enviada o recibida a través de la conexión de socket (150), así como la información enviada o recibida a través de la conexión de acceso remoto
- (140)
- o el canal virtual (145), se puede enviar o recibir a través de la misma conexión física. Esta es una ilustración ejemplar, y la tecnología de la presente invención no se limita a este ejemplo.
A continuación se ilustra un uso ejemplar de una conexión de socket (150) y una conexión de acceso remoto (140). Si el dispositivo (120) es un dispositivo de almacenamiento de datos, entonces las solicitudes de lectura y escritura, así como los resultados de esas solicitudes, se pueden enviar a través de la conexión de socket (150), mientras que otras solicitudes, tales como las solicitudes de control remoto procedentes del cliente (110), se pueden enviar a través de la conexión de acceso remoto (140).
De acuerdo con un aspecto de la descripción, la conexión de socket (150) puede estar dedicada a transacciones de dispositivo relacionadas con un dispositivo (por ejemplo, el dispositivo (120)). Las transacciones de dispositivo, tal como se explica en la presente memoria descriptiva, pueden incluir, por ejemplo, solicitudes de transacción y resultados de solicitudes de transacción relacionados con un dispositivo. Entre las transacciones de dispositivo ejemplares se incluyen, sin limitación: una solicitud de lectura, una solicitud de escritura, una respuesta a una solicitud de lectura, una respuesta a una solicitud de escritura, información que se envía para escribirla en un dispositivo e información que se lee de un dispositivo. Las transacciones de dispositivo pueden incluir otras solicitudes de transacción, resultados de transacciones y transacciones relacionadas con un dispositivo.
El canal virtual (145) puede estar configurado para usar al menos una parte de la conexión de acceso remoto (140) para transferir información de la conexión de socket para el redireccionamiento del dispositivo (120) al servidor (180). Por ejemplo, la información de la conexión de socket para la conexión de socket (150) se envía usando el canal virtual (145). La información de la conexión de socket puede incluir, por ejemplo: la información de la dirección de protocolo de Internet (IP), un número de puerto, una identificación de sesión, una cookie u otra información de conexión.
El proxy (140) puede estar configurado para recibir información de la conexión de socket desde el servidor (180) a través del módulo de acceso remoto de cliente (130) (por ejemplo, VCClient.dll), y, a continuación, iniciar el redireccionamiento de las transacciones de dispositivo hacia y desde el dispositivo (120) a través de la conexión de socket (150) hacia el agente (170) en el servidor (180).
En un aspecto de la descripción, el proxy (140) puede ser un módulo o un servicio de sistema de Windows, y se puede implementar como un código de software ejecutable (por ejemplo, Proxy.exe). En otro aspecto, el proxy (140) puede ser un módulo que lleve a cabo una función u operación por cuenta de otro módulo -tal como el módulo de acceso remoto de cliente (130), dispositivo (120), o uno o más controladores del dispositivo (120)-y se comunica con el agente (170) en el servidor (180), al tiempo que no desvela los detalles de la función u operación al servidor (180), o puede ser un módulo que lleve a cabo una tarea en segundo plano. En otro aspecto más, el proxy (140) puede ser un módulo que lleve a cabo otras funciones u operaciones.
El agente (170) en el servidor (180) puede estar configurado para registrarse con el sistema operativo del servidor
(180) para recibir la notificación de un establecimiento de una conexión de acceso remoto entre el cliente (110) y el servidor (180). Cuando el agente (170) recibe la notificación, puede determinar cuándo y quién se ha conectado con el servidor (180) y, de este modo, puede determinar cuándo y desde dónde se debe iniciar el redireccionamiento del dispositivo local. Como respuesta a la recepción de la notificación, el agente (170) puede abrir la conexión de socket
(150) y enviar información de la conexión de socket a través del módulo de acceso remoto de servidor (175) a través del canal virtual (145) al módulo de acceso remoto de cliente (130) para iniciar el redireccionamiento del dispositivo al servidor (180). El agente (170) también puede enviar y recibir transacciones para el dispositivo (120) a través de la conexión de socket (150).
En un aspecto de la descripción, el agente (170) puede ser un módulo o un servicio de sistema de Windows, y se puede implementar como un código de software ejecutable (por ejemplo, Agent.exe). En otro aspecto, el agente
(170) puede ser un módulo que lleve a cabo una función u operación por cuenta de otro módulo –tal como un sistema operativo de servidor, una aplicación de software o un controlador en el servidor)-y que se comunique con el cliente (110), al tiempo que no desvela los detalles de la función u operación al cliente (110), o puede ser un módulo que lleve a cabo una tarea en segundo plano. En otro aspecto más, el agente (170) puede ser un módulo que lleve a cabo otras funciones u operaciones.
Ventajosamente, un usuario del cliente puede experimentar una auténtica experiencia de ordenador personal (“PC”) cuando el cliente (110) se conecta al servidor (180). Cuando el cliente (110) se conecta al servidor (180) a través de una sesión de conexión de acceso remoto, el dispositivo (120) (que es local con respecto al cliente (110)) se puede redireccionar al servidor (180). El dispositivo redireccionado (120) puede ser enumerado en el servidor (180) y se puede comportar como si fuese un dispositivo conectado localmente al servidor (180).
Además, un usuario del cliente (110) no necesita realizar ninguna configuración adicional para iniciar el proceso de redireccionamiento del dispositivo local. Si el cliente (110) establece una conexión de acceso remoto al servidor (180), y el dispositivo (120) está conectado al cliente (110), entonces el redireccionamiento del dispositivo local se puede iniciar y llevar a cabo automáticamente. El establecimiento de la conexión de acceso remoto y la conexión del dispositivo (120) al cliente (110) pueden ocurrir en cualquier orden. Este proceso de redireccionamiento puede resultar transparente para un usuario (por ejemplo, un usuario del cliente (110)). No es necesario que el usuario participe en la iniciación del redireccionamiento del dispositivo local. Por ejemplo, una vez que el cliente (110) se conecta al servidor (180) usando una aplicación de acceso remoto tal como una aplicación RDP o ICA, y un usuario del cliente (110) (es decir, un usuario local) conecta un dispositivo como, por ejemplo, un periférico USB al cliente (110), entonces el dispositivo (en este caso, un periférico USB) se puede redireccionar automáticamente al servidor (180), y resulta visible para otros clientes, sin que el usuario local ejecute ninguna otra etapa. Por ejemplo, es posible que el usuario local no necesite proporcionar ningún dato de entrada al cliente (110) o al servidor (180). El dispositivo redireccionado puede aparecer como si fuese un dispositivo local en el sistema remoto (180) y puede funcionar sin problemas en el servidor (180). Por ejemplo, el dispositivo (120) conectado al cliente (110) aparece como un dispositivo local para el servidor (180) y se hace visible a los usuarios en otros clientes. Cuando un usuario de otro cliente desee acceder al dispositivo (120) (por ejemplo, leer información contenida en el dispositivo (120)), se puede llevar a cabo sin la participación del usuario del cliente (110).
En un aspecto de la descripción, no es necesario cargar o instalar localmente en el cliente (110) ningún controlador de dispositivo específico para el dispositivo (120). En lugar de ello, se carga o instala en el servidor (180) un controlador de dispositivo específico para el dispositivo (120). El controlador de dispositivo específico puede estar precargado o preinstalado en el servidor (180), o se puede cargar o instalar después de detectar el dispositivo (120). Por ejemplo, cuando se inserta el dispositivo (120) o se conecta con el cliente (110), el servidor (180) (por ejemplo, su sistema operativo) puede detectar el dispositivo (120). Si el controlador de dispositivo específico del dispositivo
(120) ya se encuentra en el servidor (180), entonces el sistema operativo del servidor puede intentar localizar y cargar un controlador de dispositivo específico que resulte apropiado en función de la información de dispositivo del dispositivo (120), (por ejemplo, buscando en Internet a través de la red (135) que se muestra en la figura 2). El servidor (180) puede llevar a cabo estas tareas automáticamente (por ejemplo, detectar el dispositivo (120), buscar y cargar/instalar el controlador de dispositivo específico). Otra posibilidad consiste en que el servidor (180) notifique al cliente (110) con un asistente, por ejemplo, la frase: “Se ha encontrado un nuevo hardware”, a través de la conexión de acceso remoto (140).
Además, debido a que el dispositivo (120) conectado al cliente local (110) aparece como un dispositivo local para el servidor (180), los programas controlados remotamente en el servidor (180) pueden acceder al dispositivo (120) como si fuese un dispositivo local del servidor (180). Por ejemplo, un usuario del cliente (110) (o un usuario de otro cliente) que utilice una aplicación de procesamiento de textos en el servidor (180) a través de una conexión de acceso remoto puede imprimir un documento en el dispositivo (120) (que, en este caso, se trata de una impresora) utilizando la aplicación de procesamiento de textos y el controlador de dispositivo específico en el servidor (180).
Cabe señalar que el cliente (110) puede instalar un controlador de dispositivo específico para el dispositivo (120) localmente, de manera que cuando el cliente (110) no esté conectado al servidor (en cuyo caso, el controlador de dispositivo específico del servidor (180) no estará disponible para el cliente (110)), el cliente (110) aún pueda utilizar el dispositivo local (120) a través del controlador de dispositivo específico del cliente (110). Cuando se redirecciona el dispositivo (120), no se utiliza el controlador de dispositivo específico. En lugar de ello, se utiliza el controlador de dispositivo específico en el servidor (180).
En un aspecto de la descripción, un sistema de redireccionamiento de dispositivos locales puede proporcionar la información acerca de cuándo y con qué sistema se debe llevar a cabo el redireccionamiento del dispositivo local, y un sistema de redireccionamiento de dispositivos locales integra la función de redireccionamiento de dispositivos locales con una aplicación de acceso remoto.
Atendiendo ahora a la figura 2, se muestra un diagrama de bloques conceptual que ilustra una configuración de hardware ejemplar para el sistema de redireccionamiento de dispositivos locales de la figura 1. Mientras que el cliente (110) y el servidor (180) se corresponden con el cliente y el servidor de la figura 1 de nombre y número similares, el cliente (190) de la figura 2 es otro sistema cliente que, cuando se conecta al servidor (180), puede obtener acceso al dispositivo (120) a través del servidor (180). Por ejemplo, de acuerdo con un aspecto de la descripción, el cliente (190) puede obtener acceso al dispositivo (120) a través del servidor (180) cuando el sistema operativo del servidor (180) sea Windows 2003 Terminal Server®. Un sistema de redireccionamiento de dispositivos locales puede incluir uno o más clientes y uno o más servidores. Un cliente puede incluir uno o más dispositivos. Cuando el dispositivo (120) se redirecciona al servidor (180), el dispositivo (120) (por ejemplo, un USB de almacenamiento masivo redireccionado) puede aparecer, por ejemplo, en todo el intérprete de comandos del explorador (o explorer shell) de todas las sesiones de conexión de acceso remoto.
Cada uno de los clientes (110) y (190) puede representar: un ordenador, un portátil, un cliente ligero (o thin client), una PDA, un dispositivo informático portátil o un dispositivo adecuado con un procesador. De acuerdo con un aspecto de la descripción, cuando un cliente es un cliente ligero, puede tratarse de un dispositivo provisto de al menos un procesador y una memoria, con una cantidad total de memoria en el cliente ligero menor que la cantidad total de memoria en el servidor (180). Un cliente ligero puede carecer de disco duro. En ciertas configuraciones, cada uno de los clientes (110) y (190) puede representar: un teléfono móvil, un reproductor de audio, una consola de videojuegos, una cámara, una videocámara, un dispositivo de audio, un dispositivo de vídeo, un dispositivo multimedia o un dispositivo capaz de admitir una conexión con el sistema remoto (180). Los clientes (110) y (190) pueden ser fijos o móviles.
El servidor (180) puede representar: un ordenador, un portátil, un cliente ligero (o thin client), una PDA, un dispositivo informático portátil, una máquina virtual (por ejemplo, VMware® Virtual Machine) o un dispositivo adecuado con un procesador. En ciertas configuraciones, el servidor (180) puede representar: un teléfono móvil, un reproductor de audio, una consola de videojuegos, una cámara, una videocámara, un dispositivo de audio, un dispositivo de vídeo, un dispositivo multimedia u otro dispositivo adecuado. El servidor (180) puede ser fijo o móvil.
Un procesador como el procesador (115), ilustrado como parte de los clientes (110) y (190) y el servidor (180), se puede implementar usando software, hardware o una combinación de ambos. A modo de ejemplo y no como limitación, se puede implementar un procesador con uno o más procesadores. Un procesador puede ser un microprocesador de uso general, un microcontrolador, un procesador de señales digitales (“DSP”), un circuito integrado de aplicación específica (“ASIC”), una matriz de puertas programable in situ (“FPGA”), un dispositivo lógico programable (“PLD”), una controladora, una máquina de estados, lógica de puertas, componentes de hardware discretos o cualquier otro dispositivo adecuado que pueda llevar a cabo cálculos u otras manipulaciones de información. Un procesador también puede incluir uno o más medios de lectura mecánica para almacenar software. Se interpretará en términos generales que el término “software” se refiere a instrucciones, datos o cualquier combinación de los mismos, ya se denominen software o firmware, middleware, microcódigo, lenguaje de descripción de hardware, o de cualquier otro modo. Las instrucciones pueden incluir código (por ejemplo: en formato de código fuente, formato de código binario, formato de código ejecutable o cualquier otro formato de código adecuado).
Los medios de lectura mecánica pueden incluir un almacenamiento integrado en un procesador, como puede ser el caso de un ASIC. Los medios de lectura mecánica también pueden incluir un almacenamiento externo a un procesador, como por ejemplo: una memoria de acceso aleatorio (“RAM”), una memoria flash, una memoria de solo lectura (“ROM”), una memoria programable de solo lectura (PROM), una PROM borrable (“EPROM”), registros, un disco duro, un disco extraíble, un CD-ROM, un DVD o cualquier otro dispositivo de almacenamiento adecuado. Además, los medios de lectura mecánica pueden incluir una línea de transmisión o una onda portadora en la que haya codificada una señal de datos. Los expertos en la materia reconocerán el mejor modo de implementar la funcionalidad descrita para un procesador. De acuerdo con un aspecto de la descripción, un medio de lectura mecánica es un medio de lectura por ordenador en el que hay instrucciones codificadas o almacenadas y es un elemento de computación que define las interrelaciones estructurales y funcionales entre las instrucciones y el resto del sistema, lo que permite llevar a cabo la funcionalidad de las instrucciones. Las instrucciones pueden ser ejecutables, por ejemplo, por los clientes (110 y 190), por el servidor (180) o por el procesador (115). Las instrucciones pueden ser, por ejemplo, un programa informático que incluya código. Un medio de lectura mecánica puede comprender uno o más medios.
Los módulos de comunicaciones (105), (125) y (195), ilustrados como parte de los clientes (110) y (190) y el servidor (180), se pueden implementar usando software, hardware o una combinación de ambos. A modo de ejemplo, los módulos de comunicaciones (105), (125) y (195) se pueden implementar con uno o más dispositivos de comunicaciones, tales como, pero no exclusivamente: un módem, RS-232, Ethernet, Wi-Fi, IEEE 802.11x u otras formas de comunicación.
Los módulos de comunicaciones (105), (125) y (195) también pueden incluir uno o más medios de lectura mecánica para almacenar software. El módulo de comunicaciones (105) del cliente (110) incluye el módulo de acceso remoto de cliente (130) y el proxy (140) descritos anteriormente, cada uno de los cuales puede tener acceso directo a su respectivo procesador (115). El módulo de comunicaciones (125) del cliente (190) también puede incluir uno o más de entre el módulo de acceso remoto de cliente (130) y el proxy (140), que pueden tener acceso directo a su respectivo procesador (115). El módulo de comunicaciones (195) del servidor (180) incluye el agente (170) y el módulo de acceso remoto de servidor (175) descritos anteriormente, cada uno de los cuales puede tener acceso directo a su respectivo procesador (115). El dispositivo (120) está conectado localmente al cliente (110), tal como se describe anteriormente.
Cada uno de los módulos de comunicaciones (105), (125) y (195) también está configurado para comunicarse con los otros dispositivos ilustrados a través de la red (135). De acuerdo con un aspecto de la descripción, la conexión de acceso remoto (140) (incluido el canal virtual (145)) y la conexión de socket (150) pueden conectarse a la red
(135) usando la misma conexión física. En este aspecto, por ejemplo, a través de la misma conexión física a la red (135). De acuerdo con otro aspecto de la descripción, la conexión de acceso remoto (140) (incluido el canal virtual (145)) y la conexión de socket (150) se pueden conectar a la red (135) usando conexiones físicas diferentes. Los módulos de comunicaciones (105), (125) y (195) se pueden conectar a la red (135), por ejemplo, a través de una conexión por módem, una conexión de red de área local (“LAN”) que incluye Ethernet, o una conexión de red de banda ancha (“WAN”) que incluye una conexión de línea de abonado digital (“DSL”), cable, T1, T3, fibra óptica y satélite. La red (135) puede ser una red LAN, una red WAN corporativa o Internet, y puede incluir características tales como un cortafuegos.
Los módulos de comunicaciones (105), (125) y (195) pueden estar configurados para comunicar información para sus respectivos dispositivos, clientes (110) y (190), y servidor (180). La funcionalidad de los módulos de comunicaciones (105), (125) y (195) para una configuración de un sistema de redireccionamiento de dispositivos locales se ilustra en la figura 2, pero los expertos en la materia observarán inmediatamente que otras configuraciones pueden incluir un módulo de comunicaciones que posea la misma o diferente funcionalidad.
La figura 3 es un diagrama de flujo que ilustra un procedimiento ejemplar de redireccionamiento de un dispositivo local desde un dispositivo informático local (por ejemplo, el cliente (110)) hacia un dispositivo informático remoto (por ejemplo, el servidor (180)). Las instrucciones para este procedimiento pueden estar incorporadas en un medio de lectura mecánica de acuerdo con un aspecto de la presente descripción. El procedimiento puede incluir las siguientes etapas.
El procedimiento comienza en el lado del servidor. En la etapa (301), el agente (170) se registra con el sistema operativo del servidor (180), de manera que se pueda notificar al agente (170) cada vez que se establezca una conexión de acceso remoto entre el cliente (110) y el servidor (180).
En el lado del cliente, en la etapa (302), el módulo de acceso remoto de cliente (130) envía una solicitud de conexión de acceso remoto al módulo de acceso remoto de servidor (175). En el lado del servidor, en la etapa (303), el módulo de acceso remoto de servidor (175) confirma la solicitud de conexión de acceso remoto, y se completa el establecimiento de la conexión de acceso remoto entre el módulo de acceso remoto de cliente (130) y el módulo de acceso remoto de servidor (175). La conexión puede ser una conexión física o por cable, o la conexión puede ser inalámbrica, tal como se describe anteriormente. Si el módulo de acceso remoto de servidor (175) no confirma la solicitud (por ejemplo, el periodo de espera de la solicitud de conexión expira o el servidor (180) no tiene los recursos para completar la conexión de acceso remoto), entonces el procedimiento concluye. Tras completar la conexión de acceso remoto, en la etapa (304) el agente (170) recibe una notificación desde el sistema operativo del servidor informando de que se ha establecido una conexión de acceso remoto con el cliente (110) y la conexión de acceso remoto está abierta.
Volviendo al lado del cliente, en la etapa (305), el módulo de acceso remoto de cliente (130) abre el canal virtual
(145) en la conexión de acceso remoto (140) entre el módulo de acceso remoto de cliente (130) y el módulo de acceso remoto de servidor (175), para la transferencia de información, como por ejemplo información de la conexión de socket, para el redireccionamiento del dispositivo (120).
Atendiendo al lado del servidor, en la etapa (306), el agente (170) abre la conexión de socket (150) y espera una conexión entrante desde el proxy (140) en el cliente (110) a través de la conexión de socket (150). En la etapa (307), el agente (170) envía información de la conexión de socket al módulo de acceso remoto de servidor (175), que después envía la información de la conexión de socket al módulo de acceso remoto de cliente (130) a través del canal virtual (145) de la conexión de acceso remoto (140). De acuerdo con un aspecto de la descripción, las etapas
(306) y 307) se pueden ejecutar simultáneamente o en orden inverso. De acuerdo con otro aspecto de la descripción, las etapas (306) y (307) pueden preceder a la etapa (306).
En lado del cliente, en la etapa (308), el módulo de acceso remoto de cliente (130) recibe la información de la conexión de socket desde el módulo de acceso remoto de servidor (175) a través del canal virtual (145) y envía la información de la conexión de socket al proxy (140). En la etapa (309), el proxy (140) usa la información de la conexión de socket para conectarse con el agente (170) a través de la conexión de socket (150). En la etapa 310, el proxy comienza a redireccionar las transacciones de dispositivo desde el servidor (180) para el dispositivo (120) a través de la conexión de socket (150) hacia el agente (310).
Después de que se redireccione el dispositivo (120) al servidor (180) y que, de este modo, aparezca como un dispositivo local para el servidor (180) (por ejemplo, el dispositivo virtual (195)), el agente (170) puede proporcionar, al proxy (140) a través de la conexión de socket (150), una transacción de dispositivo designada para el dispositivo
(120) conectado localmente al cliente (110) (correspondiente al dispositivo virtual (195)). El proxy (140) puede proporcionar la solicitud de transacción al dispositivo (120). Entonces, el proxy (140) puede recibir un resultado de la solicitud de transacción desde el dispositivo (120) y enviar el resultado al agente (170) a través de la conexión de socket (150). El agente (170) puede proporcionar el resultado a un controlador de dispositivo específico (que no se muestra) del servidor (180). El controlador de dispositivo específico puede ser específico para el dispositivo (120) o compatible.
En la solicitud de patente de EE.UU. con n. º de serie _____, titulada “Local Device Redirection” y presentada el 6 de diciembre de 2007 (núm. de expediente del apoderado 049051-0503), que se incorpora en la presente mediante referencia en su totalidad, se describen procedimientos y sistemas para la virtualización de un dispositivo local. También se pueden usar otros procedimientos y sistemas conocidos o que acabarán siendo conocidos más tarde por los expertos en la materia.
En un aspecto de la descripción, todas y cada una de las etapas (303), (304), (305), (306), (307), (308), (309) y (310) se pueden llevar a cabo automáticamente sin la intervención del usuario del cliente (110) y/o la intervención del usuario del servidor (180). En otro aspecto, al menos algunas de las etapas (303), (304), (305), (306), (307), (308),
(309) y (310) se pueden llevar a cabo automáticamente sin la intervención del usuario del cliente (110) y/o la intervención del usuario del servidor (180).
La figura 4 es un diagrama de bloques ejemplar que ilustra un sistema informático (400) que puede llevar a cabo un aspecto de la presente descripción. El sistema informático (400) puede representar uno o más clientes cualesquiera
(110) y (190) y un servidor (180). El sistema informático (400) puede incluir un módulo de comunicaciones (405) para comunicar información, un bus (406) para comunicar información entre diferentes módulos, y un procesador (415) conectado con el módulo de comunicaciones (405) para procesar información. El módulo de comunicaciones (405) puede representar el módulo de comunicaciones (105), (125) o (195) (véase la figura 2). El procesador (415) puede representar el procesador (115) (véase la figura 2).
El sistema informático (400) también puede estar conectado a un dispositivo (420) o a una pluralidad de dispositivos (420). Los dispositivos (420) pueden incluir los mismos dispositivos, dispositivos similares o dispositivos diferentes. Uno o más dispositivos (420) pueden representar uno o más dispositivos (120) (véase la figura 2). El sistema informático (400) también puede incluir una memoria (416), tal como una RAM, una ROM u otro dispositivo de memoria, conectada al bus (406), para almacenar información e instrucciones que vaya a ejecutar el procesador (415). La memoria (416) también puede usarse para almacenar información variable temporal u otra información intermedia durante la ejecución de las instrucciones que deba ejecutar el procesador (415). El sistema informático (400), puede incluir además un dispositivo de almacenamiento de datos (417), como un disco magnético o un disco óptico, acoplado al bus (406) para almacenar información e instrucciones. El sistema operativo o los sistemas operativos, tal como aquí se describe, pueden residir total o parcialmente en la memoria (416) y/o en el almacenamiento de datos (417), y pueden ser ejecutados por el procesador (415). De acuerdo con una configuración, el sistema informático (400) que funciona como cliente puede carecer de almacenamiento de datos (417). De acuerdo con otra configuración, el sistema informático (400) que funciona como cliente puede disponer de almacenamiento de datos (417).
Volviendo a hacer referencia a las figuras 1 y 2, los sistemas operativos ejemplares que son compatibles con un sistema de redireccionamiento de dispositivos locales incluyen, pero no exclusivamente, diversas versiones y sabores de los sistemas: Windows Vista®, Windows XP®, Windows 2000 Server®, Windows 2003 Server®, Windows NT®, Windows Me®, Windows 98®, Windows CE®, Windows XPe®, PocketPC®, Unifix®, el sistema operativo ligero Wyse (Wyse Thin Operating System, “WTOS”) y Linux®.
De acuerdo con una configuración, el servidor (180) puede utilizar, por ejemplo, uno cualquiera de los siguientes sistemas operativos: una versión de Windows Vista®, Windows XP® (incluidos Windows XPe con SP2 y Windows XP Professional con SP2), Windows 2000 Server® (incluidos Windows 2000 Server® con SP4 y Windows 2000 Advanced Server® con SP4), Windows Server 2003® (incluidos Windows Server 2003® Standard Edition con SP1),
o cualquier otro sistema operativo. El servidor (180) puede ejecutar uno cualquiera de los siguientes sistemas: Microsoft® Terminal Services, Citrix® Presentation Server, Windows XP® o Windows Vista®.
De acuerdo con una configuración, cada uno de los clientes (110) y (190) puede utilizar, por ejemplo, uno cualquiera de los siguientes sistemas operativos: una versión de WTOS, Linux®, Windows CE® (incluidos Windows CE® 5.0 y Windows CE® 6.0), Windows XP®, Windows XPe®, PocketPC® o cualquier otro sistema operativo. Cada uno de los clientes (110) y (190) puede usar plataformas de thin computing (informática ligera) de diferentes clases, como por ejemplo plataformas que difieran en sus niveles de escalabilidad, flexibilidad y gasto.
La experiencia que se ofrece al usuario es la de un PC corriente con plug-and-play para cada dispositivo (120). De este modo, cuando se mueve el dispositivo (120) desde un puerto del cliente (110) a otro, se puede crear un nuevo objeto de dispositivo físico, y la experiencia del usuario es la misma que tendría con un PC corriente. Cuando el cliente (110) no está conectado al servidor (180), el dispositivo (120) no está disponible para el servidor (180). Los clientes (110) y (190) pueden usar, por ejemplo, una aplicación Remote Desktop Protocol de Microsoft® o una aplicación Independent Computing Architecture de Citrix® para conectarse al servidor (180). En un aspecto de la descripción, no se necesitan más validaciones para el dispositivo (120). La validación se puede realizar, por ejemplo, usando un objeto de política de grupo, que puede detallar el modelo específico de dispositivo (120) y el controlador necesario para el dispositivo (120). El servidor (180) puede limitar el acceso de un cliente o un grupo de clientes al dispositivo (120) (correspondiente al dispositivo virtual (195)) o a otros dispositivos. El servidor (180) puede utilizar objetos de política de grupo, una utilidad Microsoft® estándar u otras utilidades para impedir el acceso.
Tanto el proxy (140) como el agente (170) pueden estar configurados para ser instalados en sus respectivos sistemas, el cliente (110) y el servidor (180), usando un paquete de instalación, tal como un paquete instalador “install shield” comúnmente conocido en la técnica. De acuerdo con otro aspecto de la descripción, tanto el proxy
(140) como el agente (170) pueden estar configurados para ser instalados en sus respectivos sistemas formando parte de la imagen del sistema operativo que viene preconfigurada con un sistema, o como un paquete Windows Driver Module para un sistema operativo Windows de Microsoft®.
Se puede cargar en el servidor (180) un controlador específico para el dispositivo (120), o compatible, antes o después de que el dispositivo (120) se conecte al cliente (110). Si el servidor (180) no dispone de un controlador específico para el dispositivo (120) o compatible (es decir, si no está presente un controlador de dispositivo específico (180) para el dispositivo (120) que coincida con la información de dispositivo identificada por el controlador de bus de dispositivo (132)) cuando el dispositivo (120) se conecta al cliente (110), entonces el servidor
(180) puede presentar un mensaje a un usuario comunicándole que el servidor (180) no reconoce el dispositivo (120).
En un aspecto de la descripción, el servidor (180) no necesita otras validaciones para presentar este mensaje. El sistema operativo del servidor puede intentar localizar y cargar automáticamente un controlador de dispositivo específico en función de la información de dispositivo, por ejemplo, buscando en Internet a través de la red (135). De forma similar, otros componentes, tales como un módulo de acceso remoto de cliente (130), proxy (140), módulo de acceso remoto de servidor (175) y agente (170) pueden existir ya en sus respectivos sistemas de cliente y de servidor, o se pueden añadir a los sistemas en un momento posterior.
La figura 5 es un diagrama de flujo que ilustra una operación ejemplar de redireccionamiento de un dispositivo local. Un proceso en la etapa (501) incluye la comunicación con un módulo de acceso remoto. El módulo de acceso remoto está configurado para establecer una conexión de acceso remoto entre un sistema y un sistema remoto. En la etapa (502), la información de la conexión de socket para establecer una conexión de socket entre el sistema y el sistema remoto se recibe a través de la conexión de acceso remoto. En la etapa (503), al menos una transacción de dispositivo designada para un dispositivo virtual local con respecto al sistema remoto se recibe desde el sistema remoto a través de la conexión de socket. El dispositivo virtual puede corresponderse con un dispositivo conectado localmente al sistema. El dispositivo conectado localmente al sistema es remoto con respecto al sistema remoto y local con respecto al sistema. Un medio de lectura mecánica puede tener codificadas instrucciones ejecutables por un procesador para llevar a cabo un procedimiento para el redireccionamiento de un dispositivo local tal como se describe anteriormente.
La figura 6 es un diagrama de flujo que ilustra una operación ejemplar de redireccionamiento automático de un dispositivo local. Un proceso en la etapa (601) incluye la recepción de una notificación de que un dispositivo local está conectado a un sistema. Un proceso en la etapa (602) incluye la comunicación con un módulo de acceso remoto. El módulo de acceso remoto está configurado para establecer una conexión de acceso remoto entre el sistema y un sistema remoto. En la etapa (603), el redireccionamiento del dispositivo local al sistema remoto se inicia automáticamente cuando se conecta el dispositivo local al sistema y cuando se establece la conexión de acceso remoto entre el sistema y el sistema remoto. Tras iniciarse el redireccionamiento, el dispositivo local puede aparecer como un dispositivo virtual local con respecto al sistema remoto. Un medio de lectura mecánica puede tener codificadas unas instrucciones ejecutables por un procesador para llevar a cabo un procedimiento para el redireccionamiento automático de un dispositivo local tal como se describe anteriormente.
La figura 7 es un diagrama de flujo que ilustra una operación ejemplar de utilización de un dispositivo de un sistema remoto. Un proceso en la etapa (701) incluye la comunicación con un módulo de acceso remoto. El módulo de acceso remoto está configurado para establecer una conexión de acceso remoto entre un sistema y un sistema remoto. Un proceso en la etapa (702) incluye la recepción de una notificación de que se ha establecido la conexión de acceso remoto entre el sistema y el sistema remoto. En la etapa (703), se proporciona información de la conexión de socket al módulo de acceso remoto para permitir el redireccionamiento de un dispositivo local del sistema remoto hacia el sistema. En la etapa (704), se proporciona al menos una transacción de dispositivo designada para el dispositivo local del sistema remoto a través de una conexión de socket al sistema remoto. El dispositivo local puede ser remoto con respecto al sistema. Un medio de lectura mecánica puede tener codificadas unas instrucciones ejecutables por un procesador para llevar a cabo un procedimiento para utilizar un dispositivo de un sistema remoto tal como se describe anteriormente.
Se entiende que el orden específico o la jerarquía de las etapas de los procesos descritos es una ilustración de enfoques ejemplares. En función de las preferencias de diseño, se entiende que se puede reordenar el orden específico o la jerarquía de las etapas de los procesos. Algunas de las etapas se pueden llevar a cabo de forma simultánea. Las reivindicaciones adjuntas del procedimiento presentan elementos de las diversas etapas en un orden de muestra, y no quiere decir que se limiten al orden específico o jerarquía presentada.
La figura 8 es un diagrama de bloques conceptual que ilustra un ejemplo de la funcionalidad de los módulos en un sistema (810) (por ejemplo, el cliente (110)) para redireccionar un dispositivo local. En este ejemplo, el sistema (810) incluye un módulo (820) para comunicarse con un módulo de acceso remoto. El módulo de acceso remoto está configurado para establecer una conexión de acceso remoto entre un sistema y un sistema remoto. El sistema (810) también incluye un módulo (830) para recibir, a través de la conexión de acceso remoto, información de la conexión de socket para establecer una conexión de socket entre el sistema y el sistema remoto. El sistema (810) también incluye un módulo (840) para recibir, desde el sistema remoto a través de la conexión de socket, al menos una transacción de dispositivo designada para un dispositivo virtual local con respecto al sistema remoto. El dispositivo virtual se puede corresponder con un dispositivo conectado localmente al sistema. El dispositivo conectado localmente al sistema es remoto con respecto al sistema remoto y local con respecto al sistema.
El sistema (810) puede incluir un módulo para la iniciación automática del redireccionamiento del dispositivo al sistema remoto cuando se establece la conexión de acceso remoto entre el sistema y el sistema remoto. El sistema
(810) puede incluir un módulo para la iniciación automática del redireccionamiento del dispositivo al sistema remoto sin que un usuario del sistema lleve a cabo configuraciones cuando se conecta el dispositivo al sistema y cuando se establece la conexión de acceso remoto entre el sistema y el sistema remoto. En el sistema (810), el módulo (830) puede ser el módulo de acceso remoto, y el sistema (810) también puede incluir un módulo para recibir la información de la conexión de socket desde el módulo de acceso remoto, en el que el módulo de acceso remoto está conectado a través de la conexión de acceso remoto con un segundo módulo de acceso remoto en el sistema remoto. La conexión de acceso remoto del sistema (810) puede incluir un canal virtual, y la información de la conexión de socket se puede recibir a través del canal virtual. En el sistema (810), la información de la conexión de socket puede incluir al menos uno o más de entre: información de dirección de protocolo de Internet (IP), un número de puerto, una identificación de sesión y una cookie. En el sistema (810), el sistema puede ser un ordenador que también incluya un procesador y el sistema remoto puede ser un ordenador que incluya un segundo módulo de acceso remoto y un agente. En el sistema (810), la conexión de socket puede ser distinta de la conexión de acceso remoto.
La figura 9 es un diagrama de bloques conceptual que ilustra un ejemplo de la funcionalidad de los módulos en un sistema (910) (por ejemplo, el cliente (110)) para redireccionar automáticamente un dispositivo local. En este ejemplo, el sistema (910) incluye un módulo (920) para conectar un dispositivo local a un sistema. El sistema (910) también incluye un módulo (930) para comunicarse con un módulo de acceso remoto, en el que el módulo de acceso remoto está configurado para establecer una conexión de acceso remoto entre el sistema y un sistema remoto. El sistema (910) también incluye un módulo (940) para la iniciación automática del redireccionamiento del dispositivo local al sistema remoto cuando se conecta el dispositivo local al sistema y cuando se establece la conexión de acceso remoto entre el sistema y el sistema remoto.
El sistema (910) también puede incluir un módulo para recibir, a través de la conexión de acceso remoto, información de la conexión de socket para el redireccionamiento, en el que el módulo (940) para la iniciación automática del redireccionamiento incluye un módulo para iniciar automáticamente el redireccionamiento a través de una conexión de socket entre el sistema y el sistema remoto. En el sistema (910), la conexión de socket puede ser distinta de la conexión de acceso remoto. En el sistema (910), el módulo (940) para la iniciación automática del redireccionamiento puede incluir un módulo para iniciar el redireccionamiento sin que un usuario del sistema proporcione ninguna entrada de datos al sistema o al sistema remoto cuando se conecte el dispositivo local al sistema y cuando se establezca la conexión de acceso remoto entre el sistema y el sistema remoto. En el sistema (910), el módulo (930) para la comunicación con el módulo de acceso remoto puede ser un proxy del sistema, y un módulo (940) para la iniciación automática del redireccionamiento también puede ser el proxy del sistema.
La figura 10 es un diagrama de bloques conceptual que ilustra un ejemplo de la funcionalidad de los módulos en un sistema (1010) (por ejemplo, el servidor (180)) para utilizar un dispositivo de un sistema remoto (por ejemplo, el cliente (110)). En este ejemplo, el sistema (1010) incluye un módulo (1020) para la comunicación con un módulo de acceso remoto, en el que el módulo de acceso remoto está configurado para establecer una conexión de acceso remoto entre un sistema y un sistema remoto. El sistema (1010) también incluye un módulo (1030) para la recepción de una notificación de que se ha establecido la conexión de acceso remoto entre el sistema y el sistema remoto. El sistema (1010) incluye además un módulo (1040) para proporcionar información de la conexión de socket al módulo de acceso remoto para permitir el redireccionamiento al sistema de un dispositivo local del sistema remoto. El sistema (1010) también incluye un módulo (1050) para proporcionar a través de una conexión de socket al sistema remoto al menos una transacción de dispositivo designada para el dispositivo local del sistema remoto. El dispositivo local puede ser remoto con respecto al sistema.
El sistema (1010) también puede incluir un módulo para la recepción, a través de la conexión de socket desde un proxy en el sistema remoto, de un resultado de al menos una solicitud de transacción de dispositivo para el dispositivo local del sistema remoto. El sistema (1010) también puede incluir un módulo para confirmar la conexión de acceso remoto con un segundo módulo de acceso remoto en el sistema remoto a través de la conexión de acceso remoto. En el sistema (1010), el módulo (1030) para la recepción de una notificación puede incluir un módulo para recibir la notificación desde un sistema operativo que opere en el sistema.
Los expertos en la materia apreciarían que los diversos bloques, módulos, elementos, componentes, procedimientos y algoritmos ilustrativos descritos en la presente memoria descriptiva se pueden implementar como hardware electrónico, software informático o combinaciones de ambos. Para ilustrar esta capacidad de intercambio de hardware y software, se han descrito anteriormente varios bloques, módulos, elementos, componentes, procedimientos y algoritmos por lo general en términos de su funcionalidad. Si tal funcionalidad se implementa como hardware o software depende de la aplicación particular y las limitaciones del diseño impuestas en el conjunto del sistema. Los expertos podrán implementar la funcionalidad descrita de diversas maneras para cada aplicación particular.
Diversos módulos y bloques se pueden disponer de forma diferente (por ejemplo, dispuestos en un orden diferente,
o colocados de un modo diferente) y todo ello sin alejarse del alcance de la tecnología de la presente invención. Por ejemplo, diversos bloques en un módulo de comunicaciones se pueden implementar en uno o más módulos diferentes. Un módulo de comunicaciones, un procesador y una memoria se pueden disponer de forma diferente. Por ejemplo, un proxy, un agente, un módulo de acceso remoto de cliente y un módulo de acceso remoto de servidor se pueden almacenar en una memoria o almacenamiento de datos y/o ejecutarlos mediante un procesador. Un procesador puede incluir una memoria. Además, en un aspecto de la descripción, se puede cifrar información tal como una transacción de dispositivo, una solicitud de transacción, un resultado de una solicitud de transacción y/o información de la conexión de socket. En otro aspecto, la información puede estar sin cifrar. Se entiende que se puede recibir, notificar o aceptar información desde/por un módulo o enviar, emitir, notificar, transmitir, informar, proporcionar y llevar a/desde un módulo tanto en forma cifrada como en forma no cifrada. Además, un sistema de redireccionamiento de dispositivos locales no se limita a una arquitectura servidor-cliente. Por ejemplo, el cliente
(110) puede ser un servidor y el servidor (180) puede ser un cliente; tanto el cliente (110) como el servidor (180) pueden ser servidores; y tanto el cliente (110) como el servidor (180) pueden ser clientes. El cliente (110) y el servidor (180) pueden representar otras arquitecturas.
Además, cuando se explica que la información ha sido recibida, notificada o aceptada desde/por un módulo o enviada, emitida, notificada, transmitida, informada, proporcionada o llevada a/desde un módulo, se entiende que la información puede ser recibida, notificada o aceptada desde/por el módulo o enviada, emitida, notificada, transmitida, informada, proporcionada o llevada a/desde el módulo, bien directamente o bien indirectamente.
La descripción anterior se proporciona para que cualquier experto en la materia pueda poner en práctica los diversos aspectos descritos en la presente memoria descriptiva. Diversas modificaciones de estos aspectos resultarán inmediatamente evidentes a los expertos en la materia, y los principios genéricos definidos en la presente memoria descriptiva se pueden aplicar a otros aspectos. De este modo, las reivindicaciones no tienen el objeto de limitarse a los aspectos que aquí se muestran, sino que se debe acordar la medida completa del alcance consistente con las reivindicaciones lingüísticas, en las que la referencia a un elemento en singular no pretende tener el significado de “uno y solo uno” a menos que se indique expresamente, sino más bien el de “uno o más”. A menos que se indique expresamente lo contrario, el término “algunos” se refiere a uno o más. Los títulos y subtítulos, en caso de haberlos, se usan únicamente por conveniencia y no limitan la descripción.
Todos los equivalentes estructurales y funcionales de los elementos de los diversos aspectos descritos a lo largo de la presente descripción que son conocidos o llegarán a ser conocidos más tarde por los expertos en la materia se incorporan expresamente en la presente memoria descriptiva a modo de referencia y se pretende que queden englobados por las reivindicaciones. Además, nada de lo descrito aquí tiene el fin de ser dedicado al público independientemente de si tal descripción se expresa explícitamente en las reivindicaciones.
Claims (16)
- REIVINDICACIONES1. Un sistema (110) para redireccionar un dispositivo de bus serie universal (USB) (120) a un sistema remoto (180), que comprende:un proxy (140) configurado para comunicarse con un módulo de acceso remoto (130), el módulo de acceso remoto(130) configurado para establecer una conexión de acceso remoto entre el sistema (110) y el sistema remoto (180), el proxy (140) configurado para recibir, a través de la conexión de acceso remoto, información de la conexión de socket para establecer una conexión de socket entre el sistema (110) y el sistema remoto (180), el proxy (140) configurado para recibir, desde el sistema remoto (180) a través de la conexión de socket, al menos una transacción de dispositivo USB designada para un dispositivo USB virtual (195) local con respecto al sistema remoto (180),en el que el dispositivo USB virtual (195) se corresponde con un dispositivo USB (120) conectado localmente al sistema (110),en el que el dispositivo USB (120) conectado localmente al sistema (110) es remoto con respecto al sistema remoto(180) y local con respecto al sistema (110), yen el que el proxy (140) está configurado para redirigir el dispositivo USB (120) al sistema remoto (180) utilizando un controlador de dispositivo específico que se carga o instala en el sistema remoto (180) sin utilizar un controlador de dispositivo específico en el sistema (110) para el dispositivo USB (120).
-
- 2.
- El sistema de la reivindicación 1, en el que el proxy (140) está configurado para iniciar automáticamente el redireccionamiento del dispositivo USB (120) al sistema remoto (180), de manera que el dispositivo USB (120) aparezca como el dispositivo USB virtual (195) local con respecto al sistema remoto (180) cuando se conecta el dispositivo USB al sistema (110) y cuando se establece la conexión de acceso remoto entre el sistema (110) y el sistema remoto (180).
-
- 3.
- El sistema de la reivindicación 1, en el que el proxy (140) está configurado para iniciar el redireccionamiento del dispositivo USB (120) al sistema remoto (180), de manera que el dispositivo USB (120) aparezca como el dispositivo USB virtual (195) local con respecto al sistema remoto, sin que un usuario del sistema
(110) lleve a cabo configuraciones cuando se conecta el dispositivo USB (120) al sistema (110) y cuando se establece la conexión de acceso remoto entre el sistema (110) y el sistema remoto (180). -
- 4.
- El sistema de la reivindicación 1, en el que el módulo de acceso remoto (130) está configurado para establecer la conexión de acceso remoto entre el módulo de acceso remoto de cliente (130) del sistema (110) y un módulo de acceso remoto de servidor (175) del sistema remoto (180), y el proxy (140) está configurado para recibir, desde el módulo de acceso remoto de cliente (130) del sistema (110), información de la conexión de socket para establecer la conexión de socket entre el proxy (140) del sistema (110) y un agente del sistema remoto (180).
-
- 5.
- El sistema de la reivindicación 1, en el que la conexión de acceso remoto comprende un canal virtual (145), y en el que el proxy (140) está configurado para recibir la información de la conexión de socket a través del canal virtual (145).
-
- 6.
- El sistema de la reivindicación 1, en el que la información de la conexión de socket comprende al menos uno de entre los siguientes elementos: información de dirección de protocolo de Internet (IP), un número de puerto, una identificación de sesión y una cookie.
-
- 7.
- El sistema de la reivindicación 1, en el que el sistema (110) es un ordenador que comprende también un procesador y el módulo de acceso remoto, y en el que el sistema remoto (180) es un ordenador que comprende un segundo módulo de acceso remoto (175) y un agente (170).
-
- 8.
- El sistema de la reivindicación 1, en el que la conexión de socket es distinta de la conexión de acceso remoto.
-
- 9.
- El sistema de la reivindicación 1, en el que al menos una de entre la al menos una transacción de dispositivo USB y la información de la conexión de socket está cifrada.
-
- 10.
- Un sistema (110) para redireccionar un dispositivo local (120) a un sistema remoto (180), que comprende:
un primer módulo configurado para conectar el dispositivo local (120) al sistema; y un segundo módulo (140) configurado para comunicarse con un módulo de acceso remoto (130), el módulo de acceso remoto (130) configurado para establecer una conexión de acceso remoto entre el sistema (110) y el sistema remoto (180), el segundo módulo configurado para iniciar automáticamente el redireccionamiento del dispositivo local (120) al sistema remoto (180) cuando se conecte el dispositivo local al sistema (110) y cuando se establezca la conexión de acceso remoto entre el sistema (110) y el sistema remoto (180),en el que el segundo módulo (140) está configurado para redireccionar el dispositivo local (120) al sistema remoto(180) utilizando un controlador de dispositivo específico que se carga o instala en el sistema remoto (180) sin utilizar un controlador de dispositivo específico en el sistema (110) para el dispositivo local (120). -
- 11.
- El sistema de la reivindicación 10, en el que el dispositivo local (120) es un dispositivo de bus serie universal (USB).
-
- 12.
- El sistema de la reivindicación 10, en el que el segundo módulo (140) está configurado para recibir, a través de la conexión de acceso remoto, información de la conexión de socket para el redireccionamiento, y en el que el segundo módulo (140) está configurado para iniciar el redireccionamiento a través de una conexión de socket entre el sistema (110) y el sistema remoto (180).
-
- 13.
- El sistema de la reivindicación 12, en el que la conexión de socket es distinta de la conexión de acceso remoto.
-
- 14.
- El sistema de la reivindicación 10, en el que el segundo módulo (140) está configurado para iniciar el redireccionamiento sin que ningún usuario proporcione ninguna entrada de datos al sistema (110) o al sistema remoto (180) cuando se conecta el dispositivo local (120) al sistema (110) y cuando se establece la conexión de acceso remoto entre el sistema (110) y el sistema remoto (180).
-
- 15.
- El sistema de la reivindicación 10, en el que el primer módulo configurado para conectarse es una interfaz de comunicaciones, y el segundo módulo (140) configurado para comunicarse es un proxy, y
en el que el módulo de acceso remoto (130) está configurado para establecer la conexión de acceso remoto entre el módulo de acceso remoto (130) del sistema (110) y un módulo de acceso remoto (175) del sistema remoto (180), y el proxy (140) está configurado para recibir, desde el módulo de acceso remoto (130) del sistema (110), una información de la conexión de socket para establecer una conexión de socket para establecer una conexión de socket entre el proxy del sistema (110) y un agente (170) del sistema remoto (180). -
- 16.
- El sistema de la reivindicación 10, que también comprende: un módulo configurado para cifrar información recibida desde el sistema remoto (180) y/o para cifrar la información que se vaya a enviar al sistema remoto 160.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/952,074 US8010630B2 (en) | 2007-12-06 | 2007-12-06 | Local device redirection |
| US952074 | 2007-12-06 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2394230T3 true ES2394230T3 (es) | 2013-01-23 |
Family
ID=40622168
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES08170883T Active ES2394230T3 (es) | 2007-12-06 | 2008-12-05 | Redireccionamiento de dispositivo local |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US8010630B2 (es) |
| EP (3) | EP2448222B1 (es) |
| ES (1) | ES2394230T3 (es) |
Families Citing this family (58)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9003059B2 (en) * | 2008-03-31 | 2015-04-07 | Microsoft Technology Licensing, Llc | Running applications in an online or offline mode based on the availability of the connection to the remote web server |
| US8037191B2 (en) | 2008-11-10 | 2011-10-11 | Cisco Technology, Inc. | Low-level remote sharing of local devices in a remote access session across a computer network |
| US20100169535A1 (en) * | 2008-12-30 | 2010-07-01 | Celio Technology Corporation | Data stream management |
| US8738711B2 (en) * | 2009-11-03 | 2014-05-27 | Oto Technologies, Llc | System and method for redirecting client-side storage operations |
| KR20110049418A (ko) * | 2009-11-05 | 2011-05-12 | 한국전자통신연구원 | 다중 호스트 상의 다중 가상머신을 지원하는 원격 usb 시스템 및 그 방법 |
| US20110145723A1 (en) * | 2009-12-16 | 2011-06-16 | Oto Technologies, Llc | System and method for redirecting client-side storage operations |
| US8957981B2 (en) | 2010-03-03 | 2015-02-17 | Intellectual Ventures Fund 83 Llc | Imaging device for capturing self-portrait images |
| US9891931B2 (en) | 2010-06-15 | 2018-02-13 | Microsoft Technology Licensing, Llc | Techniques for efficient remote presentation session connectivity and routing |
| CN103038749B (zh) * | 2010-07-01 | 2017-09-15 | 纽戴纳公司 | 为了优化群集特定配置的使用而按进程类型在群集之间分割进程 |
| US9858126B2 (en) | 2010-12-16 | 2018-01-02 | Microsoft Technology Licensing, Llc | Device redirection for remote systems |
| US8615544B2 (en) | 2011-02-25 | 2013-12-24 | Wyse Technology Inc. | System and method for unlocking a device remotely from a server |
| US8572754B2 (en) * | 2011-02-25 | 2013-10-29 | Wyse Technology Inc. | System and method for facilitating unlocking a device connected locally to a client |
| US20120327849A1 (en) * | 2011-06-24 | 2012-12-27 | Yung-Sen Lin | Method for controlling network connection of wireless network device and associated wireless network device |
| KR101251250B1 (ko) * | 2011-07-01 | 2013-04-08 | 알서포트 주식회사 | 원격 디바이스 드라이버를 이용한 원격 제어 시스템 및 원격 디바이스 드라이버를 이용한 원격 제어 방법 |
| US8667157B2 (en) | 2011-07-29 | 2014-03-04 | Hewlett-Packard Development Company, L.P. | Hardware bus redirection switching |
| US8555409B2 (en) | 2011-11-02 | 2013-10-08 | Wyse Technolgoy Inc. | System and method for providing private session-based access to a redirected USB device or local device |
| CN103503381B (zh) * | 2011-11-21 | 2016-06-22 | 华为技术有限公司 | 设备重定向的数据传输的方法、装置及系统 |
| US10067887B2 (en) * | 2012-09-14 | 2018-09-04 | Dell Products L.P. | Local interface redirection |
| WO2014049601A2 (en) * | 2012-09-27 | 2014-04-03 | Dell Products L.P. | Local interface redirection |
| US9485233B1 (en) | 2012-11-02 | 2016-11-01 | Wyse Technology L.L.C. | Virtual desktop accelerator support for network gateway |
| US9992185B1 (en) * | 2012-11-02 | 2018-06-05 | Wyse Technology L.L.C. | Virtual desktop accelerator support for network gateway |
| US9374351B1 (en) | 2012-11-02 | 2016-06-21 | Wyse Technology L.L.C. | Virtual desktop accelerator support for network gateway |
| US9264284B2 (en) * | 2013-01-02 | 2016-02-16 | Citrix Systems, Inc. | Virtual desktop access using wireless devices |
| IN2013CH05264A (es) * | 2013-05-01 | 2015-05-29 | Wyse Technology Llc | |
| CN104615558B (zh) * | 2013-11-04 | 2018-08-10 | 合肥杰发科技有限公司 | 一种数据传送方法及电子装置 |
| US9656161B1 (en) | 2014-02-20 | 2017-05-23 | Aftershock Services, Inc. | System and method for facilitating assumption of player identity in an online game |
| US20150355946A1 (en) * | 2014-06-10 | 2015-12-10 | Dan-Chyi Kang | “Systems of System” and method for Virtualization and Cloud Computing System |
| US9767047B2 (en) * | 2014-10-03 | 2017-09-19 | Citrix Systems, Inc. | Methods and systems for filtering communication between peripheral devices and mobile computing devices |
| US9935788B2 (en) | 2015-02-11 | 2018-04-03 | Dell Products L.P. | Pluggable authentication and authorization |
| US10360043B2 (en) | 2015-07-20 | 2019-07-23 | Dell Products, Lp | Installation of device drivers from virtual media |
| US9936049B2 (en) | 2015-07-29 | 2018-04-03 | Dell Products L.P. | Protocol independent way for dynamically selecting data compression methods for redirected USB devices |
| US9760730B2 (en) * | 2015-08-28 | 2017-09-12 | Dell Products L.P. | System and method to redirect and unlock software secure disk devices in a high latency environment |
| US10097534B2 (en) * | 2015-08-28 | 2018-10-09 | Dell Products L.P. | System and method to redirect hardware secure USB storage devices in high latency VDI environments |
| US9892074B2 (en) | 2015-09-03 | 2018-02-13 | Dell Products L.P. | System and method to support USB devices in an unsupported operating system in VDI environments |
| US9760524B2 (en) | 2015-09-03 | 2017-09-12 | Dell Products L.P. | System and method to redirect UASP mass storage devices to an unsupported operating system in a VDI environment |
| US9936023B2 (en) | 2015-09-04 | 2018-04-03 | Dell Products L.P. | System and method to attach a local file system to a remote disk stack |
| US10146499B2 (en) * | 2015-10-09 | 2018-12-04 | Dell Products L.P. | System and method to redirect display-port audio playback devices in a remote desktop protocol session |
| US9807177B2 (en) | 2015-10-16 | 2017-10-31 | Dell Products L.P. | Session aware USB redirection for multi-server published applications |
| US10067891B2 (en) | 2015-10-16 | 2018-09-04 | Dell Products L.P. | System and method for USB redirection for conferencing in an enterprise |
| US10223321B2 (en) * | 2016-03-31 | 2019-03-05 | Dell Products L.P. | Combining redirected USB interfaces into a single composite device |
| WO2017177302A1 (en) | 2016-04-15 | 2017-10-19 | Light Wave Technology Inc. | Automotive rear-view camera peripheral |
| US10313448B2 (en) * | 2016-04-25 | 2019-06-04 | Wyse Technology L.L.C. | Employing an auxiliary device to implement USB device redirection |
| US10142425B2 (en) * | 2016-05-23 | 2018-11-27 | Wyse Technology L.L.C. | Session reliability for a redirected USB device |
| US10606367B2 (en) | 2016-07-11 | 2020-03-31 | Light Wave Technology Inc. | Command relay device, system and method for providing remote assistance/remote control |
| US10721310B2 (en) * | 2016-07-27 | 2020-07-21 | Amzetta Technologies, Llc | Device redirection support at thin client |
| US10719273B2 (en) * | 2017-01-24 | 2020-07-21 | Wyse Technology L.L.C. | Enabling SCSI commands that are not supported by a client terminal |
| US10620835B2 (en) * | 2017-01-27 | 2020-04-14 | Wyse Technology L.L.C. | Attaching a windows file system to a remote non-windows disk stack |
| US10409494B2 (en) * | 2017-01-27 | 2019-09-10 | Wyse Technology L.L.C. | Enabling redirection of mass storage devices of any interface |
| US10530881B2 (en) * | 2017-02-15 | 2020-01-07 | Wyse Technology L.L.C. | Redirecting scanners and printers over a WAN |
| US10152402B2 (en) * | 2017-02-15 | 2018-12-11 | Wyse Technology L.L.C. | Supporting multiple streams for a redirected USB device |
| US10419567B2 (en) * | 2017-03-21 | 2019-09-17 | Elite Silicon Technology Inc. | Client terminal of audio device redirection system and audio device redirection method |
| US11038968B2 (en) * | 2018-08-07 | 2021-06-15 | Dell Products L.P. | Device and media redirection technique for a browser-based remote desktop client |
| US10402364B1 (en) * | 2018-08-07 | 2019-09-03 | Dell Products L.P. | Read-ahead mechanism for a redirected bulk endpoint of a USB device |
| US11909805B1 (en) * | 2019-05-30 | 2024-02-20 | Parallels International Gmbh | Local device redirection in remote access computing environments |
| US11196799B2 (en) * | 2020-02-03 | 2021-12-07 | Dell Products L.P. | Redirection of USB devices from hardware isolated virtual desktop infrastructure clients |
| CA3096312C (en) | 2020-10-19 | 2021-12-28 | Light Wave Technology Inc. | System for tracking a user during a videotelephony session and method ofuse thereof |
| US12373102B2 (en) * | 2021-12-16 | 2025-07-29 | Omnissa, Llc | Storage device I/O performance in remote computing environments |
| US11989419B2 (en) | 2022-07-08 | 2024-05-21 | VMware LLC | Storage device write performance in remote computing environments |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6223287B1 (en) * | 1998-07-24 | 2001-04-24 | International Business Machines Corporation | Method for establishing a secured communication channel over the internet |
| US7349391B2 (en) * | 1999-03-19 | 2008-03-25 | F5 Networks, Inc. | Tunneling between a bus and a network |
| US6895588B1 (en) | 1999-04-09 | 2005-05-17 | Sun Microsystems, Inc. | Remote device access over a network |
| US7165112B2 (en) * | 2001-06-22 | 2007-01-16 | Motorola, Inc. | Method and apparatus for transmitting data in a communication system |
| US7017162B2 (en) * | 2001-07-10 | 2006-03-21 | Microsoft Corporation | Application program interface for network software platform |
| JP4377603B2 (ja) * | 2003-03-26 | 2009-12-02 | Okiセミコンダクタ株式会社 | バス通信システムおよびその通信制御方法 |
| US7412625B2 (en) * | 2003-05-27 | 2008-08-12 | American Megatrends, Inc. | Method and system for remote software debugging |
| US7546584B2 (en) * | 2003-06-16 | 2009-06-09 | American Megatrends, Inc. | Method and system for remote software testing |
| JP4980879B2 (ja) * | 2004-03-12 | 2012-07-18 | トムソン ライセンシング | ジオグラフィックドライブ上の自動リモートサイトダウンロード |
| US7712110B2 (en) * | 2004-09-28 | 2010-05-04 | Citrix Systems, Inc. | System and method for remoting twain function calls from a user session to a client system |
| US8069226B2 (en) * | 2004-09-30 | 2011-11-29 | Citrix Systems, Inc. | System and method for data synchronization over a network using a presentation level protocol |
| US7912987B2 (en) | 2005-01-14 | 2011-03-22 | Microsoft Corporation | USB devices in application server environments |
| JP4741292B2 (ja) * | 2005-06-09 | 2011-08-03 | 株式会社日立製作所 | デバイス管理システム |
| US7636323B2 (en) * | 2005-06-14 | 2009-12-22 | Broadcom Corporation | Method and system for handling connection setup in a network |
| US20070005867A1 (en) * | 2005-06-30 | 2007-01-04 | Nimrod Diamant | Virtual peripheral device interface and protocol for use in peripheral device redirection communication |
| US8918530B2 (en) * | 2005-09-09 | 2014-12-23 | Microsoft Corporation | Plug and play device redirection for remote systems |
| US7555570B2 (en) * | 2006-02-17 | 2009-06-30 | Avocent Huntsville Corporation | Device and method for configuring a target device |
-
2007
- 2007-12-06 US US11/952,074 patent/US8010630B2/en active Active
-
2008
- 2008-12-05 EP EP12000373.6A patent/EP2448222B1/en active Active
- 2008-12-05 EP EP08170883A patent/EP2075991B1/en active Active
- 2008-12-05 ES ES08170883T patent/ES2394230T3/es active Active
- 2008-12-05 EP EP12000284.5A patent/EP2448221B1/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| EP2075991A1 (en) | 2009-07-01 |
| US20090150550A1 (en) | 2009-06-11 |
| EP2448221A1 (en) | 2012-05-02 |
| US8010630B2 (en) | 2011-08-30 |
| HK1170082A1 (en) | 2013-02-15 |
| HK1132595A1 (en) | 2010-02-26 |
| EP2448222A1 (en) | 2012-05-02 |
| EP2448222B1 (en) | 2014-03-19 |
| EP2448221B1 (en) | 2014-07-16 |
| EP2448221A8 (en) | 2012-08-01 |
| EP2075991B1 (en) | 2012-09-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2394230T3 (es) | Redireccionamiento de dispositivo local | |
| ES2690474T3 (es) | Conexión de nube pública con recursos de red privada | |
| US7818559B2 (en) | Boot negotiation among multiple boot-capable devices | |
| JP5885834B2 (ja) | モバイル・コンピューティング・デバイスを介して管理されたusbサービスをリモートに送達する方法および装置 | |
| US20200233951A1 (en) | Authenticated discoverability of universal windows applications to win32 desktop applications | |
| US10091203B2 (en) | Specialized network fileserver | |
| CN101313552A (zh) | 提供便携的用户环境的分布式计算架构及相关方法 | |
| US9871768B1 (en) | IPv6 to IPv4 data packet migration in a trusted security zone | |
| EP2071460A2 (en) | Local device virtualization | |
| US20080215676A1 (en) | Sharing a shared resource across logical partitions or systems | |
| US11586721B1 (en) | Secure remote access of computing resources | |
| US20240380791A1 (en) | Connection management device and common api | |
| US11012430B1 (en) | User equipment relay mediated network channels with blockchain logging | |
| US20230061291A1 (en) | Whitelist-authenticated image and interactive service | |
| KR102124330B1 (ko) | 어플리케이션 업데이트 방법 및 이를 지원하는 단말 | |
| JP4612368B2 (ja) | セキュリティコンフリクトを回避する、調整されたネットワークイニシエータ管理 | |
| US8355754B1 (en) | Operating a computing device with an operating system and a wireless data access on a mobile device | |
| KR101457365B1 (ko) | 휴대용 자급식 노드 컴퓨터를 위한 방법 및 장치 | |
| EP3084591A1 (fr) | Émulation d'équipements physiques | |
| HK1170082B (en) | Local device redirection |