ES2348260T3 - Recuperacion asincrona de datos en tiempo real. - Google Patents
Recuperacion asincrona de datos en tiempo real. Download PDFInfo
- Publication number
- ES2348260T3 ES2348260T3 ES04707416T ES04707416T ES2348260T3 ES 2348260 T3 ES2348260 T3 ES 2348260T3 ES 04707416 T ES04707416 T ES 04707416T ES 04707416 T ES04707416 T ES 04707416T ES 2348260 T3 ES2348260 T3 ES 2348260T3
- Authority
- ES
- Spain
- Prior art keywords
- data
- service
- user
- presentation
- request
- 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.)
- Expired - Lifetime
Links
- 238000011084 recovery Methods 0.000 title claims description 27
- 238000000034 method Methods 0.000 claims abstract description 54
- 230000004044 response Effects 0.000 claims abstract description 52
- 238000004891 communication Methods 0.000 claims description 271
- 238000013500 data storage Methods 0.000 claims description 101
- 101001094649 Homo sapiens Popeye domain-containing protein 3 Proteins 0.000 claims description 3
- 101000608234 Homo sapiens Pyrin domain-containing protein 5 Proteins 0.000 claims description 3
- 101000578693 Homo sapiens Target of rapamycin complex subunit LST8 Proteins 0.000 claims description 3
- 102100027802 Target of rapamycin complex subunit LST8 Human genes 0.000 claims description 3
- 238000012546 transfer Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 13
- 230000002085 persistent effect Effects 0.000 description 9
- 230000004888 barrier function Effects 0.000 description 7
- 235000014510 cooky Nutrition 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000000284 resting effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/42—Mailbox-related aspects, e.g. synchronisation of mailboxes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1027—Persistence of sessions during load balancing
-
- 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/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/303—Terminal profiles
-
- 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/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/18—Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1012—Server selection for load balancing based on compliance of requirements or conditions with available server resources
-
- 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/2866—Architectures; Arrangements
- H04L67/289—Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
-
- 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
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
Servidor de pasarela (101), que comprende: un servicio de presentación (115) dispuesto para recibir una solicitud de datos desde un dispositivo remoto (119) de comunicaciones de un usuario, solicitando la solicitud de datos la recepción de datos desde unos medios de almacenamiento de datos (109); y un servicio (117) de tiempo real dispuesto para retransmitir la solicitud de datos desde el servicio de presentación (115) a un cliente de acceso (103) asociado a los medios de almacenamiento de datos (109), en el que el servidor de pasarela (101) está dispuesto para establecer, entre el servicio de presentación (115) y el dispositivo remoto (119) de comunicaciones del usuario, una sesión de presentación correspondiente a la solicitud de datos del dispositivo remoto (119) de comunicaciones del usuario, en el que el servidor de pasarela (101) está dispuesto para transmitir datos de identificación de sesión de la presentación al dispositivo remoto (119) de comunicaciones del usuario antes de que los datos solicitados hayan sido recibidos por el servicio de presentación (115) y en el que el servicio de presentación (115) está dispuesto para: activar un temporizador al producirse la recepción de la solicitud de datos; cuando el temporizador alcanza un valor de umbral, determinar si los datos solicitados en la solicitud de datos han sido recibidos después de haber sido recuperados desde los medios de almacenamiento de datos; y si se han recibido los datos solicitados, reenviar los datos solicitados al dispositivo remoto (119) de comunicaciones del usuario, y si no se han recibido los datos solicitados, reenviar un mensaje al dispositivo remoto (119) de comunicaciones del usuario ordenando al dispositivo remoto (119) de comunicaciones del usuario que vuelva a presentar la solicitud de datos.
Description
Recuperación asíncrona de datos en tiempo
real.
La presente invención se refiere a la
recuperación asíncrona de datos en tiempo real. Varios aspectos de
la presente invención son particularmente aplicables a la
recuperación asíncrona de datos en tiempo real desde una base de
datos corporativa hacia un dispositivo remoto, tal como un teléfono
inalámbrico o un asistente personal digital.
Recientemente, la información digital está
cobrando cada vez más importancia para todo tipo de personas. A
medida que ha aumentado la importancia de la información digital, se
ha incrementado también la necesidad de un acceso remoto cómodo a
una variedad de tipos de información digital. Por ejemplo, los
hombres de negocios que viajan pueden desear acceder continuamente
a información contenida en hojas de cálculo electrónicas, los
abogados pueden desear acceder a documentos de procesado de texto
desde la ubicación de un cliente, y los estudiantes pueden desear
enviar o recuperar correo electrónico mientras se encuentran en la
escuela.
Para hacer frente a esta necesidad, muchos
proveedores de servicios de comunicación permiten que sus clientes
accedan a información digital remota a través de una red de
comunicaciones. Por ejemplo, un proveedor de servicios telefónicos
inalámbricos puede permitir que sus clientes usen sus teléfonos
inalámbricos u otros dispositivos de comunicación para enviar y
recibir correo electrónico, recuperar información de imágenes de una
red, obtener información de contacto de una base de datos
centralizada, o similares. De modo similar, algunas empresas han
establecido conexiones remotas de Internet de alta velocidad, tanto
por hilos como inalámbricas, en ubicaciones públicas tales como
restaurantes, hoteles, y aeropuertos, a las que se puede acceder con
el ordenador de un cliente.
Aunque los proveedores de servicios de
comunicación han creado una infraestructura que permite
potencialmente que sus clientes accedan de forma remota a
información digital, muchas cuestiones prácticas siguen evitando
que esta infraestructura sea utilizada de forma plena. Por ejemplo,
algunos clientes pretenden acceder a información digital almacenada
detrás de una barrera, tal como información digital almacenada en la
base de datos del empresario para el que trabajan y protegida por
un cortafuegos. Con esta disposición, si la red del empresario no
soportara una herramienta de acceso que permita conexiones externas
a través del cortafuegos, entonces se estaría impidiendo que un
cliente accediera a la información digital deseada a través de la
red del proveedor de servicios de comunicación. Estas herramientas
de acceso incluyen, por ejemplo, el uso de una red privada virtual
(VPN) o técnicas similares para posibilitar conexiones seguras y
autenticadas desde dispositivos no conectados directamente a la red
del empresario. Por otra parte, incluso si la red del empresario
soportara dicha herramienta, el dispositivo de comunicaciones del
cliente seguiría sin poder acceder a los datos si el propio
dispositivo del usuario no estuviera configurado para soportar esa
herramienta.
En otras situaciones, un cliente puede intentar
usar un dispositivo de comunicaciones inadecuado para recuperar
datos. Por ejemplo, un usuario puede intentar utilizar un asistente
personal digital o un teléfono inalámbrico con un navegador
relativamente simple para recuperar una página web con una gran
cantidad de datos de imágenes o audio. Antes de que se pueda
recuperar completamente la gran cantidad de datos, el "tiempo
límite" del asistente personal digital o teléfono inalámbrico
puede expirar y dicho dispositivo puede cortar la conexión. De forma
alternativa o adicional, el usuario puede pretender descargar más
datos de los que pueda almacenar el asistente personal digital o
teléfono inalámbrico.
El documento WO02/06964 da a conocer un sistema
en el que un cliente 54 de acceso remoto puede recibir datos desde
un dispositivo de base a través de varios componentes distribuidos.
En particular, en un componente se recibe una solicitud de datos,
que asigna un servidor de usuarios al dispositivo solicitante; el
servidor de usuarios asignado se comunica directamente con el
dispositivo de base, siendo gestionada la conexión inicial por un
servidor sili. El servidor sili envía detalles del servidor de
usuarios asignado hacia el dispositivo de base, posibilitando de
este modo que el dispositivo de base envíe los datos solicitados
directamente al servidor de usuarios asignado. Una vez recibidos
por el servidor de usuarios, los datos se almacenan en memoria
caché localmente como datos de usuario y a continuación se
transmiten hacia el cliente de acceso remoto.
Según aspectos de la presente invención, está
previsto un aparato y un método según las reivindicaciones
adjuntas.
De forma ventajosa, varios ejemplos de la
invención permiten que un usuario, de forma más cómoda, envíe datos
hacia y recupere datos desde unos medios remotos de almacenamiento
de datos usando un dispositivo de comunicaciones remoto. Con
diferentes aspectos de la invención, un sistema de recuperación de
datos incluye un servidor de bandeja de entrada (IB), al que se
hará referencia en lo sucesivo de forma más general como "servidor
de pasarela", y un cliente de acceso al escritorio (DAC), al que
se hará referencia en lo sucesivo de forma más general simplemente
como cliente de acceso. El servidor de pasarela está conectado
comunicativamente al cliente de acceso a través de una red. El
servidor de pasarela proporciona un servicio de presentación (PS) y
un servicio de tiempo real (RTS), que colaboran con el cliente de
acceso para recuperar datos desde unos medios de almacenamiento de
datos y a continuación proporcionan los datos recuperados al
dispositivo de comunicaciones remoto de un usuario usando un
protocolo de presentación apropiado para las capacidades del
dispositivo.
Con varias implementaciones de la invención, el
cliente de acceso creará una conexión hacia el servidor de
pasarela. Cuando el usuario desea recuperar datos de los medios de
almacenamiento de datos o enviar datos a los medios de
almacenamiento de datos, el usuario establece una conexión de
comunicaciones entre su dispositivo remoto de comunicaciones y el
servidor de pasarela, y a continuación solicita los datos deseados
del servidor de pasarela. Como respuesta, el servidor de pasarela
envía una orden al cliente de acceso, que le da instrucciones para
recuperar los datos solicitados. El cliente de acceso recupera los
datos solicitados desde los medios de almacenamiento de datos, y
devuelve los datos recuperados al servidor de pasarela. A
continuación, el servidor de pasarela retransmite la información
solicitada de vuelta al dispositivo remoto de comunicaciones del
usuario a través del servidor de presentación usando un protocolo
de presentación apropiado para las capacidades del dispositivo.
La Figura 1 muestra un entorno de red que
incluye un sistema para la recuperación asíncrona de datos según
varias formas de realización de la invención.
La Figura 2 muestra un ejemplo de un sistema
informático que se puede usar para implementar varias formas de
realización de la invención.
Las Figuras 3A a 3D muestran un diagrama de
flujo que muestra un método para la recuperación asíncrona de datos
según varias formas de realización de la invención.
Las Figuras 4A a 4E muestran un diagrama de
flujo que muestra un método de recuperación de datos desde unos
medios de almacenamiento de datos según varias formas de realización
de la invención.
La Figura 5 muestra un sistema para la
recuperación asíncrona de datos, que utiliza múltiples servidores de
pasarela según varias formas de realización de la invención.
La Figura 1 muestra un diagrama de bloques
esquemático de un sistema 100 de recuperación de datos según varias
formas de realización de la invención. El sistema 100 de
recuperación permite la recuperación de datos, tales como datos de
unos medios corporativos de almacenamiento de datos, hacia un
dispositivo remoto. Tal como se observa en esta figura, el sistema
100 de recuperación de datos incluye por lo menos un servidor de
pasarela 101 (IB) y un cliente de acceso (DAC) 103. En el ejemplo
ilustrado, el cliente de acceso 103 está alojado en el ordenador
105 de un usuario. El ordenador 105 está ubicado, por ejemplo, en un
entorno 107 de red corporativa que incluye los medios de
almacenamiento de datos 109 desde los cuales se van a recuperar
datos. Los medios de almacenamiento de datos 109 pueden ser
cualquier tipo de medios de almacenamiento de datos, tales como una
base de datos que organice datos, un dispositivo servidor que
proporcione servicios a uno o más dispositivos de cliente o una
combinación de los dos. Los medios de almacenamiento de datos 109
pueden ser, por ejemplo, un servidor Lotus Domino o un servidor
Microsoft Exchange que gestione una variedad de datos incluyendo
mensajes de correo electrónico, información de calendario,
información de contacto y similares. El entorno 107 de red
corporativa también puede incluir un cortafuegos 111 u otra barrera
para evitar un acceso no deseado al entorno 107 de red corporativa.
Los medios de almacenamiento de datos 109 también pueden ser unos
medios de almacenamiento de datos públicamente disponibles, tales
como, por ejemplo, un servidor de correo electrónico Yahoo o
similares. Todavía adicionalmente, los medios de almacenamiento de
datos pueden ser unos medios genéricos de almacenamiento de datos
de correo IMAP ó POP3, o incluso unos medios de almacenamiento que
utilicen un sistema de archivos deseado, tal como el sistema de
archivos NTFS.
Tal como se muestra en esta figura, el servidor
de pasarela 101 está conectado comunicativamente al cliente de
acceso 103 a través de una red 113, tal como una red de área
extensa. La red 113 puede ser una red públicamente accesible, tal
como Internet. Alternativamente, la red puede ser una red privada (a
la que se hace referencia frecuentemente como Intranet), o una
combinación de red públicas y privadas. El servidor de pasarela 101
proporciona un servicio de presentación (PS) 115 y un servicio de
tiempo real (RTS) 117, explicándose cada uno de ellos de forma
detallada posteriormente. El servicio de presentación 115 y el
servicio 117 de tiempo real del servidor de pasarela 101 colaboran
con el cliente de acceso 103 para recuperar datos de los medios de
almacenamiento de datos 109 y a continuación, proporcionar los
datos recuperados al dispositivo remoto 119 de comunicaciones del
usuario.
Más particularmente, el cliente de acceso 103
crea una conexión 121 (que puede ser, por ejemplo, una conexión
persistente) con el servidor de pasarela 101 a través del
cortafuegos 111. A continuación, el cliente de acceso 103 se sitúa
inactivo hasta que recibe órdenes del servidor de pasarela 101 para
recuperar datos desde el servidor de pasarela 101 o proporcionar
datos al servidor de pasarela 101. Cuando el usuario desea recuperar
datos desde los medios de almacenamiento de datos 109 hacia el
dispositivo remoto 119 de comunicaciones del usuario (o,
alternativamente, enviar datos desde el dispositivo remoto 119 de
comunicaciones del usuario hacia los medios de almacenamiento de
datos 109), el usuario establece una conexión 123 de comunicaciones
entre el dispositivo remoto 119 de comunicaciones con el servidor
de pasarela 101. A través del dispositivo remoto 119 de
comunicaciones del usuario, este último solicita a continuación los
datos deseados del servidor de pasarela 101. Como respuesta, el
servidor de pasarela 101 envía una orden a través de la conexión 121
hacia el cliente de acceso 103, ordenando al cliente de acceso 103
que recupere los datos solicitados. Como respuesta, el cliente de
acceso 103 recupera los datos solicitados de los medios de
almacenamiento de datos 109, y devuelve los datos recuperados al
servidor de pasarela 101. A continuación, el servidor de pasarela
101 retransmite la información solicitada de vuelta al dispositivo
remoto 119 de comunicaciones del usuario. Este proceso, junto con
los componentes del sistema 100, se describirá de forma más
detallada posteriormente.
Tal como apreciarán los expertos ordinarios en
la materia, el servidor de pasarela 101 se puede implementar usando
uno o más dispositivos informáticos, tales como un ordenador
programable que se puede programar para enviar, recuperar y
almacenar los archivos de datos que constituyen mensajes
electrónicos. Este tipo de ordenador se puede materializar, por
ejemplo, mediante un servidor de cuentas de correo electrónico. La
Fig. 2 muestra un ejemplo de dicho sistema 201 de ordenador
programable, capaz de recuperar y almacenar en memoria caché
archivos de datos de correo electrónico de una o más cuentas
externas de correo electrónico. El sistema 201 de ordenador incluye
una unidad 203 de procesado, una memoria 205 de sistema, y un bus
207 de sistema que acopla varios componentes del sistema,
incluyendo la memoria 105 de sistema, a la unidad 203 de procesado.
La memoria 205 de sistema puede incluir una memoria de solo lectura
(ROM) 209 y una memoria de acceso aleatorio (RAM) 211.
En la memoria de solo lectura (ROM) 209, se
puede almacenar un sistema básico 213 de entrada/salida (BIOS), que
contiene las rutinas que ayudan a transferir información entre
elementos dentro del sistema 201 de ordenador. Si el sistema 201 de
ordenador se materializa mediante un ordenador personal, el mismo
puede incluir además una unidad 215 de disco duro para leer desde y
escribir en un disco duro (no representado), una unidad 217 de
disco magnético para leer desde o escribir en un disco magnético
extraíble (no mostrado), una unidad 219 de disco óptico para leer
desde o escribir en un disco óptico extraíble (no mostrado) tal como
un CD-ROM u otros soportes ópticos, o una tarjeta
221 de memoria, tal como una tarjeta de memoria flash.
En la ROM 209, la unidad 215 de disco duro, la
unidad 217 de disco magnético, y la unidad 219 de disco óptico se
pueden almacenar varios módulos de programa. Un usuario puede
introducir órdenes e información en el sistema 201 de ordenador a
través de un dispositivo 223 de entrada, tal como un teclado, un
dispositivo de puntero, una pantalla táctil, un micrófono, un
joystick o cualquier otro dispositivo de interfaz adecuado.
Evidentemente, el sistema 201 de ordenador puede utilizar una
variedad de diferentes dispositivos 223 de entrada, tal como es
conocido en la técnica. Se incluye también un dispositivo 225 de
salida, tal como un monitor u otro tipo de dispositivo de
visualización, para transportar información desde el sistema 201 de
ordenador al usuario. Tal como apreciarán los expertos ordinarios
en la materia, en el sistema 201 de ordenador se puede incluir de
forma alternativa o adicional una variedad de dispositivos 225 de
salida, tales como altavoces e impresoras.
Para acceder a cuentas de correo electrónico, el
sistema 201 de ordenador preferentemente es capaz de funcionar en
un entorno de red usando conexiones lógicas con uno o más
ordenadores remotos, tales como el ordenador 227. El sistema 201 de
ordenador puede ser conectable al ordenador remoto 227 a través de
una red de área local (LAN) 229 ó una red de área extensa (WAN),
tal como Internet. Cuando se usa en un entorno de red, el sistema
201 de ordenador se puede conectar a la red a través de una interfaz
228, tal como un transceptor inalámbrico, un módem, una conexión de
Ethernet, o cualquier otra interfaz adecuada. Aunque en la Fig. 2 la
interfaz 228 se ilustra como una interfaz interna, la misma puede
ser alternativamente una interfaz externa tal como es bien sabido
en la materia. Evidentemente, se apreciará que las conexiones de red
antes descritas son ilustrativas, y se pueden usar otros medios de
establecimiento de un enlace de comunicaciones con otros
ordenadores.
Con varias formas de realización de la
invención, los datos recuperados de los medios de almacenamiento de
datos 109 se pueden solicitar y recibir a través de una red de área
extensa tal como Internet. Este tipo de medio de comunicación es,
sin embargo, relativamente impredecible, y el nivel existente de
tráfico a través de la red puede afectar a la velocidad a la que el
servicio 117 de tiempo real recibe datos solicitados. Además, una
solicitud de datos desde el dispositivo remoto 119 de comunicaciones
del usuario no especificará típicamente el tamaño de los datos
solicitados. Por ejemplo, un usuario puede utilizar el dispositivo
remoto 119 de comunicaciones para solicitar su mensaje de correo
electrónico más reciente de los medios de almacenamiento de datos
109 sin conocer el tamaño del mensaje. Por consiguiente, cuando el
servicio de presentación 115 recibe una solicitud de datos desde el
dispositivo remoto 119 de comunicaciones del usuario, el servicio de
presentación 115 típicamente no puede averiguar cuándo recibirá los
datos solicitados desde el cliente de acceso 103.
Esta incertidumbre presenta un problema por
cuanto el servicio de presentación 115 no puede determinar de
antemano durante cuánto tiempo mantener la conexión 123 con el
dispositivo remoto 119 de comunicaciones del usuario. Típicamente,
el dispositivo remoto 119 de comunicaciones mantendrá una conexión
de reposo solamente durante un periodo de tiempo preestablecido
antes de cortar la conexión. De este modo, en algunas situaciones,
el tiempo entre el momento en el que el servicio de presentación 115
solicita los datos desde el servicio 117 de tiempo real y el
momento en el que el servicio de presentación 115 recibe los datos
solicitados como respuesta puede ser mayor que la cantidad de
tiempo que esperará una respuesta el dispositivo remoto 119 de
comunicaciones del usuario desde el servicio de presentación 115
antes de cortar la conexión 123.
Adicionalmente, la red de comunicaciones que
soporta el dispositivo de comunicaciones también puede implementar
procedimientos de tiempo límite que se configuran por separado y de
forma independiente con respecto o bien al dispositivo remoto 119
de comunicaciones o bien al servidor de pasarela 101. Estos
procedimientos pueden ser usados por proveedores de servicios de
comunicaciones para evitar que conexiones de reposo consuman
recursos de la red que, de otro modo, se podrían asignar a
conexiones activas. De esta manera, se puede producir una
expiración del tiempo límite de la propia red de comunicaciones y
esta última puede cortar la conexión 123 con el servidor de
pasarela 101 antes de que se haya recibido una respuesta desde el
servicio de presentación 115.
Por otra parte, tipos diferentes de dispositivos
remotos 119 de comunicaciones presentarán periodos de espera
diferentes antes de cortar una conexión de reposo (es decir, una
conexión en la que no se están intercambiando datos). Más
particularmente, algunos tipos de dispositivos remotos 119 de
comunicaciones pueden utilizar una aplicación de software de
comunicaciones relativamente sofisticada que mantendrá una conexión
de reposo durante varios minutos. Por ejemplo, si el dispositivo
remoto 119 de comunicaciones es un ordenador personal portátil,
puede usar una versión del navegador Internet Explorer de Microsoft
para comunicarse con el servicio de presentación 115. Este tipo de
aplicación de software de comunicaciones se configura típicamente
para recibir datos ricos en gráficos y colores, y por lo tanto
esperará durante un tiempo relativamente prolongado una respuesta
desde el servicio de presentación 115 antes de que se produzca una
expiración del "tiempo límite" y de que corte la conexión
123.
Por otro lado, un dispositivo remoto 119 de
comunicaciones menos sofisticado puede utilizar una aplicación de
software de comunicaciones destinada a recibir únicamente datos muy
sencillos y que mantendrá una conexión de reposo solamente de forma
breve. Por ejemplo, un teléfono inalámbrico se puede comunicar con
el servicio de presentación 115 usando un navegador optimizado que
reciba únicamente datos de texto y que está diseñado para navegar
con un teclado numérico. Típicamente, este tipo de aplicación de
software de comunicaciones simple esperará solamente durante un
periodo de tiempo relativamente corto una respuesta desde el
servicio de presentación 115 antes de que se produzca una
expiración del tiempo límite y de cortar la conexión 123.
Para hacer frente a esta discrepancia entre
tipos diferentes de dispositivos remotos 119 de comunicaciones y
sus diferentes redes de comunicaciones de soporte, el servidor de
pasarela 101 según varias formas de realización de la invención
puede utilizar tanto el servicio de presentación 115 como el
servicio 117 de tiempo real. Más particularmente, con varias formas
de realización de la invención, el servicio 117 de tiempo real
mantiene la conexión 121, que puede ser una conexión persistente,
con el cliente de acceso 103. A continuación, el servicio de
presentación 115 gestiona la conexión 123 con diversos dispositivos
remotos 119 de comunicaciones a través de varias redes de
comunicación. De este modo, el servicio de presentación 115 y el
servicio 117 de tiempo real colaboran entre sí para proporcionar
una recuperación asíncrona de datos desde los medios de
almacenamiento de datos 109 hacia el dispositivo remoto 119 de
comunicaciones del usuario. Es decir, la temporización de las
comunicaciones entre el servicio 117 de tiempo real y los medios de
almacenamiento de datos 109 (a través del cliente de acceso 103) es
independiente de la temporización de las
comunicaciones entre el servicio de presentación 115 y un dispositivo remoto 119 de comunicaciones de un usuario.
comunicaciones entre el servicio de presentación 115 y un dispositivo remoto 119 de comunicaciones de un usuario.
Según varias formas de realización de la
invención, la conexión 121, la conexión 123, o ambas conexiones
pueden estar cifradas. Por ejemplo, la conexión 121, la conexión
123, o ambas conexiones se pueden cifrar usando el protocolo de
Capa de Conexión Segura (SSL). El cifrado se puede producir
basándose en un esquema de
conexión-a-conexión. De este modo,
la conexión 121 se puede cifrar usando un conjunto de información de
cifrado compartida entre el cliente de acceso 103 y el servicio 117
de tiempo real, mientras que la conexión 123 se puede cifrar usando
otro conjunto de información de cifrado compartida entre el
dispositivo remoto 119 de comunicaciones del usuario y el servicio
de presentación 115. Alternativamente, con varias formas de
realización de la invención, las conexiones 121 y 123 se pueden
cifrar comúnmente de
"extremo-a-extremo", usando
información de cifrado compartida entre el dispositivo remoto 119
de comunicaciones del usuario y el cliente de acceso 103.
Haciendo referencia a continuación a las Figuras
3A y a 3D, las mismas ilustran un diagrama de flujo para un proceso
que se puede producir según varias formas de realización de la
invención cuando el usuario desea enviar datos hacia o recuperar
datos desde los medios de almacenamiento de datos 109. Tal como se
muestra en la Figura 3A, para utilizar el sistema 100, en primer
lugar un usuario instala el cliente de acceso 103 en un ordenador
que tiene acceso a los medios de almacenamiento de datos 109 (es
decir, en el ordenador 105) en la etapa 301. Por ejemplo, si los
medios de almacenamiento de datos 109 son un servidor de Microsoft
Exchange que gestiona los mensajes de correo electrónico del
usuario, el usuario instalará el cliente de acceso 103 en un
ordenador que tenga acceso a la cuenta de correo electrónico del
usuario en los medios de almacenamiento de datos 109. Como parte
del proceso de instalación para algunas formas de realización de la
invención, el usuario puede presentar información de autenticación.
A continuación esta información de autenticación se puede usar
posteriormente para autenticar la identidad del usuario cuando el
mismo intenta recuperar datos hacia o enviar datos desde el
dispositivo remoto 119 de comunicaciones del usuario.
En muchas situaciones, el usuario utilizará el
sistema 100 para enviar o recibir mensajes de correo electrónico u
otros datos desde unos medios de almacenamiento de datos 109
mantenidos por el empresario del usuario. Por consiguiente, los
medios de almacenamiento de datos 109 se ilustran en la Figura 1 de
manera que están dentro de un entorno 107 de red corporativa, que
se puede encontrar detrás del cortafuegos 111, tal como se ha
indicado previamente. En estas situaciones, el ordenador 105 puede
ser el ordenador de trabajo personal del usuario que se encuentra
también dentro del entorno 107 de red corporativa y detrás del
cortafuegos 111, y, por lo tanto, dispone de un acceso sencillo a
los medios de almacenamiento de datos 109. No obstante, debería
apreciarse que se pueden utilizar varias formas de realización de
la invención para recuperar datos desde o enviar datos hacia unos
medios de almacenamiento de datos 109 ubicados dentro de cualquier
entorno informático. Además, como ordenador 105 puede servir
cualquier dispositivo informático que disponga del acceso deseado a
los medios de almacenamiento de datos 109. Además, tal como se
explicará de forma detallada posteriormente, un usuario puede
utilizar múltiples clientes 103 de acceso en diferentes ordenadores
105 para recuperar datos desde o enviar datos hacia los medios de
almacenamiento de datos 109, y múltiples usuarios pueden utilizar un
cliente de acceso 103 compartido en un único ordenador 105 para
recuperar datos desde o enviar datos hacia los medios de
almacenamiento de datos 109.
Debería apreciarse que, aunque el cliente de
acceso 103 se describe en la forma de realización ilustrada como un
cliente alojado en un único ordenador 105, varias formas de
realización alternativas de la invención pueden utilizar cualquier
configuración para el cliente de acceso 103. Por ejemplo, el propio
cliente de acceso 103 se puede implementar mediante un ordenador
"servidor" que preste servicio a otros ordenadores en una red.
De este modo, el cliente de acceso 103 puede proporcionar acceso a
los medios de almacenamiento de datos 109 para más de un usuario.
Además, el cliente de acceso 103 puede proporcionar herramientas de
gestión y administración centralizadas que posibiliten que un
administrador del sistema (por ejemplo, un administrador del sistema
para los medios de almacenamiento de datos 109) gestione y controle
la utilización del cliente 109 de acceso por parte de usuarios
individuales, por ejemplo, seleccionándolos de entre un directorio o
una lista de direcciones de la empresa. Por otra parte, el cliente
de acceso 103 se puede implementar por lo tanto en un servidor que
realice otras funciones, las cuales pueden estar relacionadas o no
con el funcionamiento del cliente de acceso 103. Por ejemplo, el
cliente de acceso 103 se puede implementar en un servidor de correo
electrónico público, tal como un servidor de correo electrónico de
Yahoo o Hotmail, o en un servidor de correo electrónico privado.
Todavía adicionalmente, con diferentes formas de realización de la
invención, el funcionamiento del cliente de acceso 103 puede estar
distribuido entre una pluralidad de ordenadores 105.
Volviendo a continuación a la Figura 3A, una vez
que se ha instalado el cliente de acceso 103 en el ordenador 105 en
la etapa 301, el cliente de acceso 103 establece una conexión segura
de comunicaciones con el servidor de pasarela 101 en la etapa 303.
Más particularmente, el cliente de acceso 103 establece una conexión
segura 121 con el servicio 117 de tiempo real alojado en el
servidor de pasarela 101. En el directorio 127 se crea además una
entrada para la conexión, a la que se hace referencia como sesión de
tiempo real. El directorio 127 puede ser, por ejemplo, una base de
datos de Oracle u otra base de datos adecuada, o un directorio de
Novell u otro directorio adecuado. La entrada para la conexión 121
identifica tanto el usuario como el servidor de pasarela 101 que
aloja el servicio 117 de tiempo real con el cual se realiza la
conexión 121.
Según varias formas de realización de la
invención, la conexión 121 puede ser una conexión persistente que
se mantenga siempre que tanto el cliente de acceso 103 como el
servicio 117 de tiempo real estén funcionando para proporcionar
servicio a un usuario. No obstante, todavía con otras formas de
realización de la invención, la conexión 121 se puede establecer
sobre la base de un esquema fundamentado en instrucciones o de forma
periódica. De este modo, varias formas de realización de la
invención pueden utilizar la heurística para determinar cuándo
establece el cliente de acceso 103 la conexión 121 con el servicio
117 de tiempo real. Esta heurística puede determinar, por ejemplo,
que el cliente de acceso 103 se conectará cada minuto (o algún otro
periodo de tiempo) si presta servicio a un usuario (o usuarios) que
no ha recuperado datos frecuentemente desde los medios de
almacenamiento de datos 109. Esta heurística también puede
determinar que el cliente de acceso 103 mantendrá de forma
persistente la conexión 121 si presta servicio a un usuario (o
usuarios) que han recuperado datos con frecuencia desde los medios
de almacenamiento de datos 109. Todavía adicionalmente, varias
formas de realización de la invención pueden utilizar esta
heurística únicamente bajo ciertas condiciones, tales como cuando el
tráfico de red correspondiente a la red que transporta la conexión
121 aumenta por encima de un nivel de umbral, o cuando el servicio
117 de tiempo real alcanza cierto umbral de conexiones simultáneas
121 con múltiples clientes 103 de acceso.
Para recuperar posteriormente datos desde los
medios de almacenamiento de datos 109 hacia el dispositivo remoto
119 de comunicaciones del usuario (o para enviar datos desde el
dispositivo remoto 119 de comunicaciones del usuario hacia los
medios de almacenamiento de datos 109), el usuario se conecta al
servidor de pasarela 101 a través del dispositivo remoto 119 de
comunicaciones del usuario en la etapa 305. Más particularmente, el
usuario establece la conexión 123 de comunicaciones desde el
dispositivo remoto 119 de comunicaciones del usuario hacia el
servicio de presentación 115 alojado en el servidor de pasarela
101.
Tal como apreciarán los expertos ordinarios en
la materia, además de iniciar personalmente una conexión con el
servidor de pasarela 101 y solicitar datos de los medios de
almacenamiento de datos 109, una o más aplicaciones de software que
se ejecuten en el dispositivo remoto 119 de comunicaciones del
usuario pueden iniciar en nombre del usuario también la conexión
123 con el servicio de presentación 115 alojado en el servidor de
pasarela 101. Dependiendo de la finalidad y las necesidades de la
aplicación de software particular, la aplicación de software puede
iniciar la conexión 123 basándose en un esquema periódico,
planificado, o controlado por acontecimientos y realizar una o más
solicitudes de datos demandando la recuperación de datos desde o el
envío de datos hacia los medios de almacenamiento de datos 109.
Este planteamiento libera al usuario de la necesidad de iniciar de
forma proactiva todas las conexiones y solicitudes o transferencias
de datos y mejora considerablemente la experiencia global del
usuario.
En la forma de realización ilustrada en la
Figura 1, el dispositivo remoto 119 de comunicaciones del usuario
es un dispositivo de comunicaciones inalámbricas que intercambia
datos o información de voz a través de una red telefónica 125 de
comunicaciones inalámbricas de área extensa. Por ejemplo, el
dispositivo remoto 119 de comunicaciones del usuario puede ser un
teléfono inalámbrico, o un asistente personal digital (PDA) o un
ordenador portátil equipado con una unidad de comunicaciones
inalámbricas, tal como una tarjeta PCMCIA por ejemplo la Sierra
Wireless AirCard®. No obstante, todavía con otras formas de
realización de la invención, el dispositivo remoto 119 de
comunicaciones del usuario se puede conectar al servidor de pasarela
101 a través de cualquier conexión adecuada, incluyendo una red de
comunicaciones pública tal como Internet. Por ejemplo, el
dispositivo remoto 119 de comunicaciones del usuario se puede
conectar alternativamente al servidor de pasarela 101 usando una
conexión por hilos, tal como una conexión telefónica de
"marcación" convencional ó DSL, una conexión de banda ancha de
alta velocidad proporcionada por un proveedor de servicios de
televisión por cable, o incluso una conexión óptica. Además, el
dispositivo remoto 119 de comunicaciones del usuario se puede
conectar al servidor de pasarela 101 a través de otro dispositivo de
comunicaciones, tal como un quiosco público de Internet. De este
modo, en lugar de conectarse al servidor de pasarela 101 a través de
la red inalámbrica 125, el dispositivo remoto 119 de comunicaciones
del usuario se puede conectar al servidor de pasarela 101 a través
de cualquier medio adecuado, incluyendo una red de comunicaciones
inalámbricas, una red de comunicaciones por hilos o una red
combinada de comunicaciones por hilos e inalámbricas.
De forma similar, la conexión 121 entre el
cliente de acceso 103 y el servicio 117 de tiempo real se puede
realizar a través de cualquier medio adecuado. En la forma de
realización ilustrada, la conexión 121 se establece a través de una
red pública de comunicaciones de área extensa, tal como Internet.
Con formas de realización alternativas de la invención, la conexión
121 se puede establecer sin embargo a través de, por ejemplo, una
red de comunicaciones privada, tal como una red telefónica
inalámbrica de comunicaciones, privada. De este modo, la conexión
121 también se puede establecer a través de una red de
comunicaciones inalámbricas, una red de comunicaciones por hilos, o
una red combinada de comunicaciones por hilos/inalámbricas.
Tal como apreciarán los expertos ordinarios en
la materia, se han desarrollado una variedad de técnicas y
protocolos de comunicaciones para intercambiar datos entre
dispositivos. Por ejemplo, se pueden realizar comunicaciones a
través de conexiones de ancho de banda tanto alto como bajo usando
protocolos de lenguaje de marcado extensible bien conocidos, tales
como el protocolo de Lenguaje de Marcado de Hipertexto (HTML), el
Lenguaje de Marcado Extensible (XML) o el Lenguaje de Marcado de
Sincronización (SyncML) u otros protocolos centralizados en la
mensajería tales como el Protocolo de Oficina de Correos (POP) o el
Protocolo de Acceso a Mensajes de Internet (IMAP). De modo similar,
se pueden realizar comunicaciones a través de conexiones
inalámbricas de ancho de banda inferior (tales como conexiones de
teléfonos inalámbricos) usando el protocolo bien conocido de
Lenguaje de Marcado Inalámbrico (WML). Para intercambiar datos
entre el dispositivo remoto 119 de comunicaciones y el servicio de
presentación 115, y entre el cliente de acceso 103 y el servicio 117
de tiempo real, se puede usar cualquier protocolo adecuado,
incluyendo cualquiera de estos protocolos conocidos. De este modo,
se pueden realizar comunicaciones a través de la conexión 121 entre
el cliente de acceso 103 y el servidor de pasarela 101 usando
páginas HTML ó XML, mientras que las comunicaciones a través de la
conexión 123 entre el dispositivo remoto 119 de comunicaciones del
usuario y el servidor de pasarela 101 se pueden realizar usando
páginas HTML, XML, SyncML, ó WML, u otros protocolos que incluyen,
entre otros, IMAP y POP3. Como los equipos y procedimientos para
comunicar datos entre dispositivos usando estos protocolos son bien
conocidos en la materia, los mismos no se describirán de forma más
detallada en la presente memoria.
Volviendo a continuación a la Figura 3A, el
usuario autentica su identidad para el servicio de presentación 115
en la etapa 307. Por ejemplo, el servicio de presentación 115 puede
transmitir una o más consultas de autenticación al dispositivo
remoto 119 de comunicaciones del usuario. Estas consultas, que
pueden estar contenidas en una única página de lenguaje de marcado,
pueden pedirle al usuario un nombre de usuario y una contraseña.
Como respuesta, el usuario transmite la información de autenticación
solicitada de vuelta al servicio de presentación 115.
Evidentemente, el dispositivo remoto 119 de comunicaciones del
usuario puede proporcionar de forma alternativa o adicional una o
más aplicaciones de software para gestionar y presentar datos, que
incluyen elementos de interfaz de usuario para recoger, almacenar,
y presentar información de autenticación al servicio de presentación
115 sin que sea necesario que el usuario vuelva a introducir
manualmente la información de autenticación para cada sesión con el
servicio de presentación 115.
Cuando el usuario desea recuperar datos de los
medios de almacenamiento de datos 109, el usuario envía una
solicitud de los datos deseados a través de la conexión 123 hacia el
servicio de presentación 115 en la etapa 309. Por ejemplo, el
usuario puede solicitar la información de encabezamiento para los 10
mensajes de correo electrónico más recientes en la cuenta de correo
electrónico del usuario en los medios de almacenamiento de datos
109. Esta solicitud se puede realizar usando cualquier técnica
adecuada. Por ejemplo, una vez que el dispositivo remoto 119 de
comunicaciones del usuario ha establecido la conexión 123 con el
servicio de presentación 115, el servicio de presentación 115 puede
transmitir páginas WML con peticiones de información hacia el
dispositivo remoto 119 de comunicaciones del usuario. Estas páginas
pueden contener, por ejemplo, una lista de posible información que
puede ser solicitada por el usuario. Después de que el usuario
seleccione las peticiones de información correspondientes a la
información deseada, las peticiones de información seleccionadas se
transmiten de vuelta al servicio de presentación 115 en forma de
una solicitud de los datos deseados. Evidentemente, se pueden
utilizar todavía otras técnicas para recuperar información deseada
de los medios de almacenamiento de datos 109, incluyendo técnicas
en las que se recuperan datos automáticamente mediante una
aplicación en el dispositivo remoto 119 de comunicaciones sin
requerir la intervención del usuario, tal como se ha indicado
anteriormente.
En la etapa 311, el servicio de presentación 115
establece una sesión de presentación para la conexión 123 con el
dispositivo remoto 119 de comunicaciones del usuario. De este modo,
el servicio de presentación 115 asocia todas las comunicaciones
posteriores relacionadas con la solicitud de los datos deseados al
dispositivo remoto 119 de comunicaciones del usuario. Por ejemplo,
la sesión de presentación puede ser una entrada en memoria, tal
como una tabla de datos, que asocie el nombre de usuario y la
contraseña del mismo a un valor de sesión de presentación. La
sesión de presentación también puede identificar una posición en la
memoria, memoria caché 1151, en la que se almacenarán los datos
deseados tras la recuperación, y una bandera que indique si los
datos deseados se han almacenado en la memoria caché 1151. A
continuación se describirá de forma más detallada el uso de la
sesión de presentación para recuperar datos de los medios de
almacenamiento de datos 109 hacia el dispositivo remoto 119 de
comunicaciones.
En la etapa 313, el servicio de presentación 115
realiza una comprobación para ver si la información deseada ya ha
sido almacenada en la memoria caché 1151. Tal como se describirá de
forma más detallada posteriormente, si el servicio de presentación
115 determina que ya ha almacenado en memoria caché la información
deseada, entonces, en la etapa 315, el servicio de presentación 115
recupera inmediatamente la información deseada de la memoria caché
1151 y devuelve la información deseada al dispositivo remoto 119 de
comunicaciones del usuario. No obstante, cuando la solicitud de los
datos deseados se realiza inicialmente al servicio de presentación
115, probablemente los datos deseados todavía no habrán sido
almacenados en memoria caché por el servicio de presentación
115.
Por consiguiente, cuando los datos deseados no
están en ese momento en la memoria caché 1151, se envía una
solicitud de los datos deseados desde el servicio de presentación
115 al servicio 117 de tiempo real en la etapa 317. Como respuesta,
el servicio 117 de tiempo real emite una orden a través de la
conexión 121 hacia el cliente de acceso 103 en la etapa 319,
ordenando al cliente de acceso 103 que recupere la información
deseada de los medios de almacenamiento de datos 109. Al producirse
la recepción de la orden desde el servicio 117 de tiempo real, el
cliente de acceso 103 recupera los datos deseados de los medios de
almacenamiento de datos 109 en la etapa 321. A continuación, en la
etapa 323, el cliente de acceso 103 devuelve los datos recuperados
al servicio 117 de tiempo real, que, a su vez, proporciona los datos
recuperados al servicio de presentación 115 en la etapa 325. A
continuación, el servicio de presentación 115 almacena los datos
recuperados en la memoria caché 1151 en la etapa 327.
En la etapa 329, el servicio de presentación 115
determina si todavía está pendiente la solicitud de los datos desde
el dispositivo remoto 119 de comunicaciones del usuario. Es decir,
el servicio de presentación 115 determina si el dispositivo remoto
119 de comunicaciones del usuario está manteniendo todavía la
conexión 123 en espera de los datos deseados. Si la solicitud
todavía está pendiente, a continuación, los datos recuperados son
proporcionados al dispositivo remoto 119 de comunicaciones del
usuario en la etapa 331.
De este modo, si el servidor de pasarela 101
puede recuperar los datos deseados desde los medios de
almacenamiento de datos 109 dentro del tiempo de reposo del
dispositivo remoto 119 de comunicaciones del usuario, entonces los
datos deseados se pueden proporcionar inmediatamente al usuario. No
obstante, en muchas situaciones, el servidor de pasarela 101 no
podrá recuperar los datos deseados antes de que se produzca la
expiración del tiempo de reposo correspondiente al dispositivo
remoto 119 de comunicaciones del usuario, y el dispositivo remoto
119 de comunicaciones del usuario finaliza la conexión 123. Tal como
se describirá de forma más detallada posteriormente, el servicio de
presentación 115 hace frente a estas situaciones respondiendo al
dispositivo remoto 119 de comunicaciones del usuario antes de que
se produzca la expiración de su tiempo de reposo.
Más particularmente, si no se han recuperado los
datos deseados antes de que el dispositivo remoto 119 de
comunicaciones del usuario finalice la conexión 123, entonces el
servicio de presentación 115 enviará un mensaje al dispositivo
remoto 119 de comunicaciones del usuario ordenando al usuario (o al
dispositivo remoto 119 de comunicaciones del usuario) que vuelva a
presentar la solicitud de los datos deseados. Esta respuesta se
puede repetir hasta que se recuperen los datos deseados desde los
medios de almacenamiento de datos 109 y los mismos se almacenen en
la memoria caché 1151. Usando la sesión de presentación para asociar
estas solicitudes posteriores a la solicitud inicial de los datos
deseados, los datos deseados pueden ser transmitidos al dispositivo
remoto 119 de comunicaciones del usuario una vez que hayan sido
almacenados en la memoria caché 1151. Es decir, los datos deseados
almacenados en la memoria 1151 se pueden transmitir al dispositivo
remoto 119 de comunicaciones del usuario como respuesta a una
solicitud existente de los datos (es decir, a través de la conexión
existente 123) o cuando se vuelva a presentar la solicitud al
servicio de presentación 115. Por consiguiente, se pueden recuperar
datos deseados de los medios de almacenamiento de datos 109 en un
esquema basado en tiempo real, con independencia de la disparidad
entre el tiempo de reposo del dispositivo remoto 119 de
comunicaciones del usuario y el tiempo requerido para obtener los
datos deseados de los medios de almacenamiento de datos 109.
Tal como se ha indicado previamente, el servicio
de presentación 115 gestiona comunicaciones con el dispositivo
remoto 119 de comunicaciones del usuario, para garantizar que no se
produce una expiración del tiempo límite del dispositivo remoto 119
de comunicaciones del usuario sin que se reciba una respuesta a su
solicitud de datos. Las Figuras 4A a 4E ilustran un diagrama de
flujo que muestra un método que puede ser utilizado por el servicio
de presentación 115, según varias formas de realización de la
invención, para comunicarse de forma fiable con el dispositivo
remoto 119 de comunicaciones del usuario.
\newpage
Tal como se ha indicado previamente, en la etapa
309 del diagrama de flujo mostrado en las Figuras 3A a 3D, el
usuario envía al servicio de presentación 115 una solicitud de datos
deseados de los medios de almacenamiento de datos 109. En la etapa
401, el servicio de presentación 115 determina si la solicitud es
una solicitud nueva de los datos deseados, o si es otra
presentación de una solicitud anterior de los datos deseados. Si la
solicitud es una solicitud nueva de los datos deseados, el servicio
de presentación 115 crea una sesión de presentación en la etapa
403, y a continuación traslada la solicitud al servicio 117 de
tiempo real para recuperar los datos deseados de los medios de
almacenamiento de datos 109.
Según varias formas de realización de la
invención, el proceso de creación de la sesión de presentación en
la etapa 403 incluye designar la memoria caché 1151 que se va a usar
para almacenar en memoria caché información referente a la
solicitud de los datos deseados desde el dispositivo remoto 119 de
comunicaciones del usuario. Tal como apreciarán los expertos
ordinarios en la materia, el servicio de presentación 115 puede
utilizar cualquier recurso de memoria disponible para el servidor
de pasarela 101. No obstante, como los datos solicitados se
almacenarán en la memoria caché 1151 para su inmediata transmisión
hacia el dispositivo remoto 119 de comunicaciones de usuario, para
la memoria caché 1151 se puede usar adecuadamente un recurso de
memoria al que se pueda acceder rápidamente para proporcionar los
datos solicitados al dispositivo remoto 119 de comunicaciones del
usuario. Con varias formas de realización de la invención, la
memoria caché 1151 puede o no estar cifrada.
El proceso de crear la sesión de presentación en
la etapa 401 incluye además designar información de identificación
que identifique la sesión de presentación. A continuación, esta
información de identificación se proporciona al servicio 117 de
tiempo real con la solicitud de la información deseada. Cuando el
servicio 117 de tiempo real devuelve a continuación los datos
recuperados desde los medios de almacenamiento de datos 109,
proporciona también la información de identificación
correspondiente de la sesión de presentación. Usando esta
información devuelta de identificación de la sesión de
presentación, el servicio de presentación 115 almacena los datos
recuperados en la memoria 1151 asociada a la sesión de presentación.
Debería apreciarse que, para identificar la sesión de presentación
para la solicitud de datos, se puede usar cualquier información de
identificación adecuada. Por ejemplo, la información de
identificación puede ser un código específico o una contraseña.
Alternativamente, con algunas formas de realización de la
invención, la información de identificación puede ser la dirección
de memoria de la posición de la memoria caché 1151 para la sesión de
presentación.
En la etapa 405, el servicio de presentación 115
inicia además un temporizador 1153 para el dispositivo remoto 119
de comunicaciones del usuario, correspondiente a la sesión de
presentación. Tal como se describirá de forma más detallada
posteriormente, el temporizador 1153 se usará para predecir cuándo
se producirá la expiración del tiempo límite del dispositivo remoto
119 de comunicaciones del usuario y se cortará la conexión 123 con
el servicio de presentación 115. Además, en la etapa 407, el
servicio de presentación 115 determina información de tipo de
dispositivo correspondiente al dispositivo 119 que ha solicitado los
datos. Es decir, el servicio de presentación 115 determina
información sobre el tipo de dispositivo que realiza la solicitud,
lo cual permitirá que el servicio de presentación 115 identifique
características de funcionamiento del dispositivo remoto 119 de
comunicaciones del usuario.
Con algunas implementaciones de la invención, el
servicio de presentación 115 puede determinar únicamente una
categoría general en la que se puede clasificar el dispositivo
remoto 119 de comunicaciones del usuario. Por ejemplo, con algunas
formas de realización de la invención, el servicio de presentación
115 puede determinar si el dispositivo remoto 119 de comunicaciones
del usuario está utilizando WML, HTML, SyncML, IMAP ó POP o
similares para comunicarse. Si el dispositivo remoto 119 de
comunicaciones del usuario está usando HTML, el servicio de
presentación 115 determina entonces si el dispositivo remoto 119 de
comunicaciones del usuario es un ordenador personal o un asistente
personal digital (PDA). De este modo, si el usuario está utilizando,
por ejemplo, un dispositivo PDAPocket PC® de Toshiba para acceder
al servicio de presentación 115, el servicio de presentación 115
puede clasificar ese dispositivo como un dispositivo HTML de
asistente personal digital.
No obstante, todavía otras formas de realización
de la invención pueden determinar información diferente o más
detallada en relación con el dispositivo remoto 119 de
comunicaciones del usuario. Por ejemplo, con algunas formas de
realización de la invención, el servicio de presentación 115 puede
determinar el navegador específico (u otro software de
comunicación) que está siendo usado por el dispositivo remoto 119 de
comunicaciones del usuario para comunicarse con el servicio de
presentación 115, particularmente valores de configuración para ese
software de comunicación, o cualquier otra información que podría
ser útil para determinar cómo se comunicará el dispositivo remoto
119 de comunicaciones del usuario con el servicio de presentación
115.
Con algunas formas de realización de la
invención, esta información de tipo de dispositivo la puede
proporcionar convencionalmente el dispositivo remoto 119 de
comunicaciones del usuario cuando el mismo inicia la conexión 123.
Por ejemplo, si el dispositivo remoto 119 de comunicaciones del
usuario envía una solicitud de datos usando una página HTML, esa
página puede incluir convencionalmente información que puede ser
usada por el servicio de presentación 115 para determinar el tipo
de navegador que está utilizando el dispositivo remoto 119 de
comunicaciones del usuario para comunicarse con el servicio de
presentación 115. No obstante, formas de realización alternativas
de la invención pueden utilizar técnicas alternativas para
proporcionar la información de tipo de dispositivo al servicio de
presentación 115.
Por ejemplo, con algunas implementaciones de la
invención, el usuario puede especificar la información de tipo de
dispositivo para el dispositivo remoto 119 de comunicaciones del
usuario cuando el usuario instala el cliente de acceso 103 en el
ordenador 105. De forma alternativa o adicional, el usuario puede
especificar la información de tipo de dispositivo usando una página
de encuesta o cuestionario (tal como una página HTML) proporcionada
al cliente de acceso 103 o al dispositivo remoto 119 de
comunicaciones del usuario. Una vez que el usuario ha especificado
la información de tipo de dispositivo con la página de cuestionario,
el servicio de pasarela 101 puede generar y poner una cookie en el
dispositivo remoto 119 de comunicaciones del usuario. Cuando el
usuario a continuación utiliza el dispositivo remoto 119 de
comunicaciones del usuario para solicitar datos desde el servicio
de presentación 115, el servicio de presentación 115 puede solicitar
la información de tipo de dispositivo a partir de la cookie que se
encuentra en el dispositivo remoto 119 de comunicaciones del
usuario como respuesta. Evidentemente, todavía otras técnicas para
determinar la información de tipo de dispositivo se pondrán de
manifiesto para los expertos ordinarios en la materia, y las mismas
se pueden usar con varias formas de realización de la
invención.
Una vez que el servicio de presentación 115 ha
determinado la información de tipo de dispositivo para el
dispositivo remoto 119 de comunicaciones del usuario en la etapa
407, el servicio de presentación 115 utiliza esa información de
tipo de dispositivo para determinar las características de
comunicación del dispositivo remoto 119 de comunicaciones del
usuario en la etapa 409. De entre las diversas características de
comunicación que pueden ser identificadas por el servicio de
presentación 115, el servicio de presentación 115 determina cuánto
esperará el dispositivo remoto 119 de comunicaciones del usuario
una respuesta a la solicitud desde el servicio de presentación 115
antes de cortar la conexión 123. Es decir, el servicio de
presentación 115 usa la información de tipo de dispositivo
correspondiente al dispositivo remoto 119 de comunicaciones del
usuario para determinar el tiempo de reposo del dispositivo remoto
119 de comunicaciones del usuario.
Por ejemplo, tal como se ha indicado
previamente, con la forma de ilustración ilustrada de la invención,
el servicio de presentación 115 puede determinar si el dispositivo
remoto 119 de comunicaciones del usuario está usando WML ó HTML
para comunicarse y, en caso de que el dispositivo remoto 119 de
comunicaciones del usuario esté usando HTML, si el dispositivo
remoto 119 de comunicaciones del usuario es un ordenador personal o
un asistente personal digital. Si el servicio de presentación 115
determina que el dispositivo 119 de comunicaciones del usuario está
usando WML para comunicarse, entonces el dispositivo remoto 119 es
probablemente un teléfono inalámbrico que usa una aplicación
sencilla de software navegador. Por consiguiente, el servicio de
presentación 115 puede determinar que el dispositivo remoto 119 de
comunicaciones del usuario únicamente esperará durante un pequeño
periodo de tiempo (por ejemplo, 5 segundos) después de presentar la
solicitud para recibir una respuesta desde el servicio de
presentación 115, antes de cortar la conexión 123. Por otro lado, si
el dispositivo remoto 119 de comunicaciones del usuario es un
ordenador personal que utiliza HTML para comunicarse, entonces el
dispositivo remoto 119 de comunicaciones del usuario está usando
probablemente una aplicación sofisticada de software navegador, tal
como el Internet Explorer de Microsoft. De este modo, el servicio de
presentación 115 puede determinar que el dispositivo remoto 119 de
comunicaciones del usuario esperará durante un periodo de tiempo
relativamente largo (por ejemplo, 2 minutos) para recibir una
respuesta desde el servicio de presentación 115, antes de cortar la
conexión.
Diversas formas de realización de la invención
pueden utilizar tipos diferentes de información de tipo de
dispositivo para determinar las características de las
comunicaciones del dispositivo, tal como se ha explicado de forma
detallada anteriormente. Por consiguiente, diferentes formas de
realización de la invención también pueden determinar tipos
diferentes de características de comunicaciones del dispositivo a
partir de la información de tipo de dispositivo. Por ejemplo, si el
servicio de presentación 115 utiliza información de tipo de
dispositivo que identifica únicamente el dispositivo remoto 119 de
comunicaciones del usuario como uno de entre tres categorías
generales de dispositivos (por ejemplo, un dispositivo WML, un
dispositivo de asistente personal digital HTML o un dispositivo de
ordenador personal HTML), entonces el servicio de presentación 115
puede identificar de forma correspondiente únicamente uno de entre
tres tipos generales de características de comunicaciones del
dispositivo. Por ejemplo, puede determinar que todos los
dispositivos WML esperarán solamente 5 segundos una respuesta,
todos los dispositivos de asistente personal digital HTML esperarán
solamente 90 segundos una respuesta, y que todos los dispositivos
de ordenador personal HTML esperarán solamente 2 minutos una
respuesta, con independencia de la configuración específica de
cualquier dispositivo en particular.
No obstante, si el servicio de presentación 115
utiliza información de tipo de dispositivo más detallada, tal como
el navegador particular que está siendo usado por el dispositivo
remoto 119 de comunicaciones, entonces el servicio de presentación
115 puede utilizar de forma correspondiente información más
específica de las características de comunicación del dispositivo.
Por ejemplo, el servicio de presentación 115 puede determinar que
un dispositivo 119 que use el Internet Explorer de Microsoft,
Versión 6.0, esperará durante solamente tres minutos una respuesta
desde el servicio de presentación 115 antes de cortar la conexión
123, mientras que un dispositivo que use un navegador
Sony-Ericsson para teléfonos GSM inalámbricas
esperará durante solamente 45 segundos una respuesta desde el
servicio de presentación 115 antes de cortar la conexión 123. Tal
como se pondrá de manifiesto para los expertos ordinarios en la
materia, el nivel de detalle de la información de características
del dispositivo puede depender del nivel de detalle de la
información de tipo de dispositivo obtenida por el servicio de
presentación 115.
Con varias formas de realización de la
invención, el servicio de presentación 115 puede obtener la
información de las características del dispositivo a partir de, por
ejemplo, una tabla de consulta tal como la tabla 1155 de
características de dispositivos. La tabla 1155 se puede llenar
usando cualquier técnica convencional. Por ejemplo, las
características de los dispositivos en la tabla 1155 se pueden
introducir cuando se inicialice el servidor. Alternativamente, el
servidor de pasarela 101 puede llenar la tabla 1155 buscando la
información apropiada de características de los dispositivos a
partir de una fuente remota, tal como, por ejemplo, Internet, para
cada tipo nuevo de dispositivo remoto 119 de comunicaciones que sea
utilizado por un usuario.
En la forma de realización ilustrada, la tabla
1155 es un componente del servicio de presentación 115, para
permitir que el servicio de presentación 115 recupere más
rápidamente la información de características de dispositivos. No
obstante, formas de realización alternativas de la invención pueden
tener la tabla 1155 ubicada en el servicio 117 de tiempo real, una
base de datos dependiente accesible de forma directa o indirecta por
el servicio de presentación 115, o incluso en el cliente de acceso
103. Todavía otras formas de realización de la invención pueden
utilizar otras técnicas para determinar la información de
características de dispositivos. Por ejemplo, si el dispositivo
remoto 119 de comunicaciones del usuario proporciona una cookie al
servicio de presentación 115 con la información de tipo de
dispositivo, tal como se ha descrito anteriormente, esta cookie
también puede incluir la información de características de
dispositivo correspondiente al dispositivo 119. Además, con varias
formas de realización de la invención, el uso de la información de
dispositivo para determinar la información de características del
dispositivo se puede omitir por completo. En su lugar, por ejemplo,
con estas formas de realización de la invención, el dispositivo
remoto 119 de comunicaciones del usuario puede proporcionar la
información apropiada de características del dispositivo
directamente al servicio de presentación 115 cuando se realiza una
solicitud de datos.
Debería apreciarse también que, además del
tiempo de reposo correspondiente al dispositivo remoto 119 de
comunicaciones del usuario, la información de características del
dispositivo puede incluir otros datos según se desee. Por ejemplo,
la información de características de dispositivo puede identificar
un formato de datos particular utilizado por el dispositivo remoto
119 de comunicaciones del usuario, una velocidad de transmisión para
transmitir los datos recuperados hacia el dispositivo remoto 119 de
comunicaciones del usuario, u otra información útil correspondiente
al tipo de dispositivo del dispositivo remoto 119 de comunicaciones
del usuario.
Volviendo a continuación a la Figura 4B, cuando
el servicio de presentación 115 ha determinado las características
de dispositivo para el dispositivo remoto 119 de comunicaciones del
usuario, el servicio de presentación 115 fija un umbral para el
temporizador 1153 en la etapa 411 usando la información determinada
de características del dispositivo, correspondiente al dispositivo
remoto 119 de comunicaciones del usuario. Más particularmente, el
servicio de presentación 115 fija un valor para el temporizador
1153, en el que el servicio de presentación 115 generará y enviará
una respuesta a la solicitud de datos del dispositivo remoto 119 de
comunicaciones del usuario. El valor de umbral se selecciona para
dejarle tiempo al servicio de presentación 115 para responder a la
solicitud de datos del dispositivo remoto de comunicaciones del
usuario antes de que se produzca la expiración del tiempo límite
del dispositivo remoto 119 de comunicaciones del usuario y el mismo
corte la conexión 123.
Tal como apreciarán los expertos ordinarios en
la materia, el umbral específico fijado para un temporizador 115 se
puede predecir basándose en una variedad de factores, que incluyen
la cantidad de tiempo necesaria para preparar y enviar una
respuesta adecuada. De este modo, si un dispositivo 119 está usando
un navegador sofisticado que requiere una respuesta compleja
(incluyendo, por ejemplo, gráficos), entonces el umbral se puede
fijar para dejar, para una respuesta, más tiempo que cuando el
dispositivo remoto 119 de comunicaciones del usuario está usando un
navegador sencillo que requiere únicamente una respuesta de
texto.
Por ejemplo, si el servicio de presentación 115
ha determinado que el dispositivo remoto 119 de comunicaciones del
usuario está usando un navegador sencillo y esperará durante
solamente 5 segundos una respuesta antes de cortar la conexión 123,
entonces el servicio de presentación 115 puede fijar el umbral para
el temporizador 1153 de manera que sea 3 segundos, dejando 2
segundos para generar y enviar el mensaje de respuesta. No obstante,
si el servicio de presentación 115 ha determinado que el
dispositivo remoto 119 de comunicaciones del usuario está usando un
navegador sofisticado y esperará durante dos minutos una respuesta
antes de cortar la conexión 123, entonces el servicio de
presentación 115 puede fijar el umbral para el temporizador 1153 de
manera que sea 1 minuto, 50 segundos, dejando de este modo más
tiempo (es decir, 10 segundos) para preparar y enviar una respuesta
más compleja antes de que se produzca la expiración del tiempo
límite del dispositivo remoto 119 de comunicaciones del usuario y
el mismo corte la conexión 123.
Con varias formas de realización de la
invención, se pueden tener en cuenta todavía otros factores cuando
se determine el valor de umbral para el temporizador 1153,
incluyendo, por ejemplo, condiciones actuales del tráfico para la
red 125 y el grado de fiabilidad deseada para la conexión 123.
Alternativamente, se puede designar un único valor de umbral para
cada categoría de tipo de dispositivo. De este modo, por ejemplo,
todos los dispositivos 119 de comunicaciones que usen WML pueden
tener un primer valor de umbral para el temporizador 1153, todos
los dispositivos 119 de comunicaciones que sean dispositivos de
asistente personal digital que usen HTML pueden tener un segundo
valor de umbral para el temporizador 1153, y todos los dispositivos
119 de comunicaciones que sean ordenadores personales que usen HTML
pueden tener un tercer valor de umbral para el temporizador
1153.
Evidentemente, todavía con otras formas de
realización de la invención, se puede usar un único periodo de
tiempo para determinar el valor de umbral del temporizador para
todos los tipos de dispositivos 119 de comunicaciones, con
independencia de sus características individuales de comunicación
del dispositivo. Por ejemplo, el valor de umbral del temporizador
se puede fijar para todos los tipos de dispositivos de manera que el
servicio de presentación 115 utilice únicamente un solo periodo de
tiempo para todos los dispositivos. Con estas formas de realización
de la invención, se puede omitir la determinación tanto de la
información de tipo de dispositivo como de la información
correspondiente de características de dispositivo.
Debería indicarse también que, aunque las etapas
401 a 411 se han descrito anteriormente de manera que se suceden en
un orden específico, otras formas de realización de la invención
pueden ordenar estas etapas de cualquier manera deseada. Por
ejemplo, algunas formas de realización de la invención pueden fijar
el valor de umbral e iniciar el temporizador 1153 antes de
retransmitir la solicitud de datos al servicio 117 de tiempo real.
Alternativamente, algunas formas de realización de la invención
pueden retransmitir la solicitud de datos al servicio 117 de tiempo
real antes de determinar el valor de umbral e iniciar el
temporizador 1153. Todavía adicionalmente, con algunas formas de
realización de la invención, el servicio de presentación 115 puede
fijar el valor de umbral para el temporizador 1153 antes de iniciar
el temporizador 1153, mientras que, todavía con otras formas de
realización de la invención, el temporizador 1153 se puede iniciar
antes de que se determine el valor de umbral para el temporizador
1153. Por otra parte, por ejemplo, con algunas formas de
realización de la invención, el servicio de presentación 115 puede
designar la memoria caché 1151 después de que se haya retransmitido
la solicitud de datos hacia el servicio 117 de tiempo real, antes de
que se haya retransmitido la solicitud de datos al servicio 117 de
tiempo real, antes de que se haya activado el temporizador 1153, o
después de que se haya activado el temporizador 1153.
En cualquier caso, una vez que se ha fijado el
valor de umbral para el temporizador 1153 y se ha retransmitido la
solicitud de datos al servicio 117 de tiempo real, el servicio de
presentación 115 monitoriza a continuación el servicio 117 de
tiempo real en la etapa 413 en busca de una respuesta que contenga
los datos recuperados y la información de identificación que
identifique la sesión de presentación correspondiente a la solicitud
de los datos recuperados. Si no se recibe ninguna respuesta,
entonces, en la etapa 415, el servicio de presentación 115
determina si el temporizador 1153 ha alcanzado su valor de umbral.
Si el temporizador 1153 no ha alcanzado su valor de umbral,
entonces el servicio de presentación 115 continúa monitorizando el
servicio 117 de tiempo real en busca de una respuesta con los datos
solicitados. No obstante, si el temporizador 1153 ha alcanzado su
valor de umbral, entonces el servicio de presentación 115 envía una
respuesta al dispositivo remoto 119 de comunicaciones del usuario
en la etapa 417, indicando que los datos deseados todavía no se han
recuperado desde los medios de almacenamiento de datos 109.
Más particularmente, cuando el servicio de
presentación 115 determina que se ha alcanzado el valor de umbral,
formula y envía una respuesta al dispositivo remoto 119 de
comunicaciones del usuario indicando que todavía no se han
recuperado los datos deseados. Debería apreciarse que las diversas
formas de realización de la invención pueden utilizar cualquier
tipo adecuado de mensaje de respuesta. Por ejemplo, con algunas
formas de realización de la invención, el mensaje de respuesta
puede ser una página (tal como una página HTML ó WML) que visualice
un mensaje para el usuario exponiendo que todavía no se han
recuperado los datos deseados. Con algunas formas de realización de
la invención, el mensaje de respuesta puede pedir adicionalmente al
usuario que vuelva a presentar manualmente la solicitud de los
datos deseados. De este modo, el mensaje de respuesta puede
visualizar una invitación para que el usuario vuelva a presentar la
solicitud, junto con una petición de orden para volver a presentar
la solicitud. Cuando el usuario activa la petición de orden, un
código de software asociado en la página de respuesta ordenará al
dispositivo remoto 119 de comunicaciones del usuario que vuelva a
presentar la solicitud. Dichas operaciones de respuesta automática
son bien conocidas, y por lo tanto no se describirán de forma más
detallada. No obstante, todavía con otras formas de realización de
la invención, el mensaje de respuesta puede incluir simplemente
software que ordene al dispositivo remoto 119 de comunicaciones del
usuario que vuelva a presentar automáticamente la solicitud de los
datos deseados. Con estas formas de realización de la invención, el
mensaje de respuesta puede omitir por lo tanto la visualización de
un mensaje para el usuario.
Para varias formas de realización de la
invención, el mensaje de respuesta incluirá también datos de
identificación de la sesión de presentación que identifican la
sesión de presentación asociada a la solicitud. Esta información de
identificación de la sesión de presentación puede ser la misma
información de identificación de la sesión de presentación
proporcionada al servicio 117 de tiempo real, o puede ser diferente
de la información de identificación de sesión de presentación
proporcionada al servicio 117 de tiempo real. Además, aunque la
información de sesión de presentación proporcionada al dispositivo
remoto 119 de comunicaciones del usuario se puede transmitir
adecuadamente con el mensaje de respuesta, también se puede
transmitir en una comunicación aparte. Por ejemplo, la
identificación de la sesión de presentación se puede proporcionar al
dispositivo remoto 119 de comunicaciones del usuario inmediatamente
después de que el dispositivo remoto 119 de comunicaciones del
usuario haya presentado una solicitud inicial de información
deseada.
En cualquier caso, cuando el dispositivo remoto
119 de comunicaciones del usuario vuelve a presentar la solicitud
de la información deseada, la solicitud que se ha vuelto a presentar
incluye la información de sesión de presentación asociada a la
solicitud inicial de los datos deseados. De este modo, cuando el
servicio de presentación 115 recibe la solicitud que se ha vuelto a
presentar, el servicio de presentación 115 determina que la
solicitud se corresponde con una sesión de presentación existente
en la etapa 401. A continuación, el servicio de presentación 115
prosigue inmediatamente hacia la etapa 413 para determinar si se han
recuperado los datos deseados a partir de los medios de
almacenamiento de datos 109 y los mismos se han almacenado en la
memoria caché 1151.
Si los datos deseados han sido recuperados y se
han almacenado en la memoria caché 1151, a continuación los datos
deseados se devuelven inmediatamente al dispositivo remoto 119 de
comunicaciones del usuario, tal como se ha indicado anteriormente.
No obstante, si los datos deseados no se han almacenado todavía en
la memoria caché 1151, entonces se repite el proceso de las etapas
401 y 413 a 417 hasta que se recuperen los datos deseados a partir
de los medios de almacenamiento de datos 109, los mismos se
almacenen en la memoria caché 1151, y a continuación se
proporcionen al dispositivo remoto 119 de comunicaciones del usuario
en la etapa 419.
Debería indicarse que, con la forma de
realización ilustrada, el servicio de presentación 115 traduce los
datos recuperados a un formato que puede ser procesado por el
dispositivo remoto 119 de comunicaciones del usuario antes de
transmitir los datos recuperados al dispositivo remoto 119 de
comunicaciones del usuario. No obstante, debería apreciarse también
que esta traducción se puede realizar en cualquier instante de
tiempo, por ejemplo, con algunas formas de realización de la
invención, los datos recuperados se pueden traducir a un formato
apropiado antes de que se almacenen en la memoria caché 1151,
mientras que, con otras formas de realización de la invención, los
datos recuperados se pueden traducir a un formato apropiado justo
antes de que sean transmitidos al dispositivo remoto 119 de
comunicaciones del usuario. No obstante, todavía con otras formas
de realización de la invención, los datos solicitados pueden ser
traducidos de forma alternativa o adicional por el cliente de
acceso 103, el servicio 117 de tiempo real, los medios de
almacenamiento de datos 109 o incluso el propio dispositivo remoto
119 de comunicaciones del usuario. Todavía adicionalmente, la
traducción puede incluso ser realizada mediante una combinación de
estos componentes (incluyendo el servicio de presentación 115).
Por lo tanto, el dispositivo remoto 119 de
comunicaciones del usuario puede presentar y volver a presentar la
solicitud de datos hasta que se recuperen los datos deseados a
partir de los medios de almacenamiento de datos 109 por medio del
servicio 117 de tiempo real y los mismos se almacenen en la memoria
caché 1151. Si se produce un error en la recuperación de los datos
deseados, entonces el servicio 117 de tiempo real puede generar un
mensaje de error que informe al dispositivo remoto 119 de
comunicaciones del usuario de que no se pueden recuperar los datos.
Con algunas formas de realización de la invención, este mensaje de
error se puede almacenar en la memoria caché 1151 en lugar de los
datos deseados. Cuando el dispositivo remoto 119 de comunicaciones
del usuario recupera a continuación datos de la memoria caché 1151,
recuperará el mensaje de error que informa al usuario de que los
datos deseados no se pudieron recuperar satisfactoriamente a partir
de los medios de almacenamiento de datos 109. No obstante, todavía
otras formas de realización de la invención pueden retransmitir el
mensaje de error inmediatamente después de recibir el mensaje de
error desde el servicio 117 de tiempo real.
Con algunas formas de realización de la
invención, el servicio de presentación 115, el servicio 117 de
tiempo real, o ambos pueden realizar una
"pre-recuperación" de datos de los medios de
almacenamiento de datos 109. De este modo, varias formas de
realización de la invención pueden utilizar la heurística para
predecir cuántos datos solicitará un usuario de los medios de
almacenamiento de datos 109 basándose, por ejemplo, en el patrón
previo de recuperación de datos del usuario. Por ejemplo, algunos
usuarios recuperarán frecuentemente mensajes de correo electrónico
nuevos de su cuenta de correo electrónico. Para un usuario de este
tipo, el servicio de presentación 115 (o el servicio 117 de tiempo
real) puede solicitar periódicamente de forma independiente todos
los mensajes de correo electrónico nuevos para el usuario desde los
medios de almacenamiento de datos 109. Por consiguiente, cuando el
usuario utiliza el dispositivo remoto 119 de comunicaciones para
recuperar sus mensajes nuevos del correo electrónico, esos datos ya
estarán almacenados en la memoria caché 1151. No obstante, todavía
otros usuarios pueden solicitar solamente de forma ocasional
mensajes nuevos de correo electrónico. Para estos usuarios, el
servicio de presentación 115 (o el servicio 117 de tiempo real) no
puede solicitar de forma independiente mensajes nuevos de correo
electrónico desde los medios de almacenamiento de datos 109.
De forma similar, algunos usuarios solicitarán
regularmente combinaciones particulares de datos. Por ejemplo,
algunos usuarios solicitarán típicamente la recuperación de un
mensaje de correo electrónico, y a continuación solicitarán
inmediatamente la recuperación de cualquier adjunto a los mensajes
de correo electrónico recuperados. Con estos usuarios, el servicio
de presentación 115 (o el servicio 117 de tiempo real) puede
solicitar independientemente datos de adjuntos con cualquier
solicitud para recuperar mensajes nuevos de correo electrónico para
el usuario desde los medios de almacenamiento de datos 109. Por
consiguiente, cuando a continuación un usuario de este tipo realiza
una solicitud para recuperar datos de adjuntos para el mensaje de
correo electrónico recuperado después de una solicitud para
recuperar un mensaje nuevo de correo electrónico, esos datos de
adjuntos ya estarán almacenados en la memoria caché 1151.
Evidentemente, varias formas de realización de
la invención pueden utilizar otra heurística en lugar de o además
de la heurística referente a la frecuencia de recuperación o el tipo
de datos recuperados. Dicha heurística puede incluir, por ejemplo,
el nivel de servicio al que está abonado un usuario, el tamaño de
los datos típicamente recuperados, o cualquier otra evaluación
heurística deseada. Además, de forma adicional a almacenamiento
independiente de datos recuperados en la memoria caché 1151, varias
formas de realización de la invención también pueden ir más allá y
reenviar los datos recuperados independientemente hacia el
dispositivo remoto 119 de comunicaciones sin recibir una solicitud
expresa de recuperar esos datos.
Tal como se ha indicado anteriormente, el
servicio 117 de tiempo real recupera los datos deseados a partir de
los medios de almacenamiento de datos 109 a través del cliente de
acceso 103. Más particularmente, cuando el servicio 117 de tiempo
real recibe una solicitud de datos desde el servicio de presentación
115, retransmite esa solicitud al cliente de acceso 103. Como el
cliente de acceso 103 está alojado en el ordenador 105 que tiene
acceso a los medios de almacenamiento de datos 109, el cliente de
acceso 103 puede mandar al ordenador 105 que recupere los datos
deseados a partir de los medios de almacenamiento de datos 109.
Cuando el ordenador 105 ha obtenido los datos deseados de los
medios de almacenamiento de datos 109, el cliente de acceso 103
devuelve los datos deseados al servicio 117 de tiempo real.
Con algunas formas de realización de la
invención, el servicio 117 de tiempo real se puede comunicar con el
cliente de acceso 103 usando técnicas de comunicación convencionales
disponibles para el ordenador 105, con el fin de establecer de este
modo la conexión 121. No obstante, en algunas situaciones, el
ordenador 105 estará situado en un entorno protegido por una
barrera, tal como el cortafuegos 111 ilustrado en la Figura 1,
contra accesos no autorizados. En estas situaciones, la barrera
puede evitar muchos tipos de comunicación bidireccional
convencional entre el ordenador 105 (y, por lo tanto, el cliente de
acceso 103) y el servicio 117 de tiempo real. Con estas formas de
realización de la invención, el servicio 117 de tiempo real y el
cliente de acceso 103 se pueden comunicar usando cualquier técnica
de comunicación adecuada, tal como el uso de una red privada
virtual (VPN). No obstante, en algunas situaciones, incluso si la
barrera se puede configurar para permitir una comunicación
bidireccional convencional entre el ordenador 105 y el servicio 117
de tiempo real, el proceso de reconfiguración de la barrera puede
ser oneroso, particularmente si un número elevado de usuarios está
utilizando ordenadores diferentes 105 para recuperar datos a partir
de un dispositivo remoto de comunicaciones.
Por consiguiente, con varias formas de
realización de la invención, el servicio 117 de tiempo real puede
utilizar una conexión con el cliente de acceso 103 a través de la
red 113 que pasará a través del cortafuegos. Tal como apreciarán
los expertos ordinarios en la materia, varios sistemas de
cortafuegos permitirán típicamente uno o más puntos de acceso
específicos mediante los cuales un ordenador, tal como el ordenador
105, puede recibir datos de fuentes fuera del cortafuegos. Por
ejemplo, los cortafuegos convencionales típicamente designan un
puerto (identificado en ocasiones como Puerto 80) a través del cual
un ordenador puede recibir datos de fuentes externas. El servicio
117 del tiempo real según varias formas de realización de la
invención puede usar, por lo tanto, un puerto de acceso de este
tipo para utilizar una conexión de comunicaciones bidireccional con
el cliente de acceso 103 a través de este tipo de puerto
designado.
Usando esta conexión de comunicaciones
bidireccional, a la que en lo sucesivo se hará referencia como canal
de órdenes, el servicio 117 de tiempo real puede enviar
instrucciones al cliente de acceso 103. Más particularmente, el
servicio 117 de tiempo real puede enviar instrucciones que ordenen
al cliente de acceso 103 que recupere y retransmita información,
tal como la información deseada, de vuelta al servicio 117 de tiempo
real. Debería observarse también que el servicio 117 de tiempo real
puede usar el canal de órdenes unidireccional para ordenar al
cliente de acceso 103 que recupere también información desde una
ubicación diferente a la fuente 109 de datos. Por ejemplo, un
usuario puede desear añadir información, tal como un mensaje nuevo
de correo electrónico, a los medios de almacenamiento de datos 109
para su almacenamiento o alguna otra acción. Al recibir los datos
nuevos desde el dispositivo remoto 119 de comunicaciones del
usuario, el servicio de presentación 115 (a través del servicio 117
de tiempo real) puede ordenar entonces al cliente de acceso 103 que
recupere los datos nuevos desde el servicio 117 de tiempo real para
su entrega a los medios de almacenamiento de datos 109.
De este modo, con varias formas de realización
de la invención, el canal de órdenes se puede usar únicamente para
enviar órdenes desde el servidor de pasarela 101 al cliente de
acceso 103. Como una orden será típicamente una instrucción para
realizar alguna acción (por ejemplo, recuperar encabezamientos para
los primeros 10 mensajes en la carpeta de correo electrónico
"bandeja de entrada" del usuario, recuperar citas del día en
curso del calendario electrónico correspondiente al usuario,
realizar una búsqueda del texto "Mike" en la carpeta de correo
electrónico "contactos" del usuario, etcétera), las órdenes de
forma habitual serán relativamente pequeñas (por ejemplo, menores
que 1 kB). Como consecuencia de su tamaño pequeño, en el canal de
órdenes se pueden multiplexar múltiples órdenes.
A su vez, el cliente de acceso 103 puede enviar
datos asociados a la orden hacia el servicio 117 de tiempo real (o
recuperar datos asociados a la orden, desde el servicio 117 de
tiempo real) a través de una o más conexiones alternativas, a las
que en lo sucesivo se hará referencia de forma conjunta como canales
de datos. Por ejemplo, las órdenes pueden incluir una dirección
específica a la que se deberían enviar los datos asociados (o desde
la cual se deberían recuperar los datos asociados). La orden también
puede incluir un parámetro que puede ser usado posteriormente por
el cliente de acceso 103 para identificar que su respuesta (o bien
envío o bien recuperación de datos) es una respuesta a esa orden
específica. Usando esta información, el cliente de acceso 103 puede
enviar a continuación datos a la dirección especificada (o recuperar
datos de la dirección especificada) a través de un socket
diferente del socket usado por el canal de órdenes. De modo
similar, el cliente de acceso 103 también puede enviar varias
órdenes al servicio 117 de tiempo real. Estas órdenes se pueden
referir, por ejemplo, a la autorización de usuarios adicionales para
el cliente de acceso 103.
De este modo, una respuesta a una orden desde el
servicio 117 de tiempo real no interferirá con la recepción, por
parte del cliente de acceso, de órdenes nuevas desde el servicio 117
de tiempo real, o con la transmisión de datos asociados a
respuestas a órdenes anteriores. De forma ventajosa, esta
disposición mejora el rendimiento permitiendo el establecimiento de
canales de datos según sea necesario directamente con el servidor
físico que está prestando servicio en ese momento al dispositivo
del usuario. El canal de órdenes y los canales de datos
proporcionan conjuntamente la conexión 121 que permite una
comunicación bidireccional entre el servicio 117 de tiempo real y
el cliente de acceso 103 a través de una barrera tal como un
cortafuegos.
Por ejemplo, el servicio 117 de tiempo real
puede ordenar al cliente de acceso 103 que recupere los datos
deseados desde los medios de almacenamiento de datos 109, y a
continuación enviar los datos recuperados, junto con la información
de identificación de sesión de presentación correspondiente a la
solicitud, de vuelta a una dirección específica. La dirección puede
ser una dirección de una localización universal de recursos (URL)
correspondiente a una localización mantenida por el servicio 117 de
tiempo real, permitiendo de este modo que el servicio 117 de tiempo
real recupere los datos deseados desde el cliente de acceso 103. Las
instrucciones (o una instrucción anterior o posterior) también
pueden ordenar al cliente de acceso 103 que realice alguna acción
con respecto a los datos nuevos, tal como almacenar los datos nuevos
en los medios de almacenamiento de datos 109 o enviar los datos
nuevos a otra ubicación.
Tal como se ha indicado previamente, cuando el
cliente de acceso 103 establece la conexión persistente 121 con el
servicio 117 de tiempo real, el servicio 117 de tiempo real crea una
sesión de tiempo real para esa conexión. La sesión de tiempo real
puede ser, por ejemplo, un objeto de datos que contenga cualquier
dato deseado sobre el usuario y la conexión, tal como el puerto del
ordenador 105 a través del cual se establece la conexión 121. Con
algunas formas de realización de la invención, la sesión de tiempo
real se puede almacenar en el directorio 127. Alternativamente, la
sesión de tiempo real se puede almacenar en otra posición de memoria
adecuada.
Para varias formas de realización de la
invención, se puede utilizar un servicio proxy entre el cliente de
acceso 103 y el servicio 117 de tiempo real (por ejemplo, en la red
pública 113 de área extensa). Con este tipo de disposición, el
servicio proxy puede cerrar la conexión 121 por decisión propia
después de una cantidad de tiempo predeterminada sin ningún
intercambio de datos a través de la conexión. De forma alternativa o
adicional, se podrían producir otros problemas referentes al
servicio proxy, provocando que el mismo corte la conexión 121. Por
lo tanto, resultaría beneficioso que el cliente de acceso 103
pudiera detectar cuándo está cortada la conexión 121, de manera que
el mismo pueda volver a establecer dicha conexión 121. No obstante,
las interfaces convencionales de programación de aplicación para
comunicaciones de redes, tales como las interfaces convencionales
de programación de aplicación para comunicación que usan TCP/IP, no
resultan adecuadas típicamente para proporcionar una realimentación
de aplicación cuando una conexión de red se cierra repentinamente.
Por otra parte, el servicio 117 de tiempo real no sabrá
necesariamente que la conexión 121 se ha cortado hasta que, por
ejemplo, intente a escribir en el socket a través del cual
se estableció la conexión 121.
Por consiguiente, con varios ejemplos de la
invención, el servicio 117 de tiempo real puede enviar regularmente
mensajes de "latido" ("heartbeat") al cliente de
acceso 103. Estos latidos pueden ser, por ejemplo, pequeños grupos
de paquetes de datos que se pueden enviar para mantener
continuamente la conexión unidireccional entre el servicio 117 de
tiempo real y el cliente de acceso 103. Mediante el intento
periódico de enviar estos latidos, el servicio 117 de tiempo real
puede detectar inmediatamente cuándo se ha cortado la conexión 121.
De este modo, manteniendo una conexión continua entre el servicio
117 de tiempo real y el cliente de acceso 103, el servicio 117 de
tiempo real estará preparado para procesar inmediatamente
solicitudes de datos deseados desde el dispositivo remoto 119 de
comunicaciones del usuario sin tener que iniciar un canal nuevo de
órdenes para cada solicitud nueva.
Con algunas formas de realización de la
invención, el latido puede incluir datos que le indiquen al cliente
de acceso 103 cuándo se debería recibir el siguiente latido desde el
servicio 117 de tiempo real. Si, a continuación, el cliente de
acceso 103 no recibe el latido siguiente dentro del periodo de
tiempo indicado (y cualquier periodo adicional de seguridad, según
se desee), entonces el cliente de acceso 103 puede concluir que la
conexión 121 se ha cortado y necesita volver a establecerse.
Además, como el latido es generado por el servicio 117 de tiempo
real, el valor de tiempo que indica la velocidad del latido se puede
controlar por medio del servicio 117 de tiempo real. Más
particularmente, los datos de velocidad correspondientes a los
latidos se pueden ajustar por medio del servicio 117 de tiempo real
basándose, por ejemplo, en la cantidad de tráfico que está siendo
gestionada por el servidor de pasarela 101. De este modo, el latido
es planificable de forma dinámica.
Para algunas implementaciones de la invención,
la velocidad planificada del latido puede ser la misma para cada
conexión 121. No obstante, formas de realización alternativas de la
invención pueden tener dos intervalos independientes para latidos.
Más particularmente, algunas formas de realización de la invención
pueden tener una velocidad de latidos para sesiones de presentación
activas en las que un usuario está usando actualmente un
dispositivo 119 de comunicaciones para comunicarse con el servidor
de pasarela 101, y otra velocidad de latidos para sesiones
inactivas. Esta disposición puede proporcionar un tiempo menor de
detección de errores de conexión para sesiones en las que un
usuario percibirá el momento en el que la conexión 121 se corta
erróneamente, y un tiempo de detección de errores de conexión menos
exigente en cuanto a recursos en el que un usuario no percibirá
inmediatamente el momento en el que se ha cortado erróneamente la
conexión 121.
Aunque el uso del cliente de acceso 103 se ha
descrito anteriormente en referencia a un cliente único 103 de
acceso que accede a los medios de almacenamiento de datos 109,
varias formas de realización de la invención pueden tener múltiples
clientes 103 de acceso que se comuniquen con el servicio de pasarela
101. Es decir, cada uno de una pluralidad de usuarios puede
mantener una comunicación de cliente de acceso 103 con el servidor
de pasarela 101. Por
otra parte, un usuario puede utilizar múltiples clientes 103 de acceso para comunicarse con el servidor de pasarela 101.
otra parte, un usuario puede utilizar múltiples clientes 103 de acceso para comunicarse con el servidor de pasarela 101.
Adicionalmente, varias formas de realización de
la invención pueden permitir que un único cliente de acceso 103
preste servicio a más de un usuario. Por ejemplo, con estas formas
de realización, cuando un usuario instala el cliente de acceso 103
en el ordenador 105, el cliente de acceso 103 puede realizar una
consulta sobre si el usuario desea delegar el acceso remoto a los
datos del usuario de los medios de almacenamiento de datos 109 a
través de otro usuario (es decir, otro usuario que utilice un
cliente de acceso 103 diferente). Si al usuario le agradase la
capacidad de acceder a datos deseados de los medios de
almacenamiento de datos 109 a través del cliente de acceso 103 de
otro usuario, entonces el cliente de acceso 103 puede facilitar esa
disposición.
Por ejemplo, si el cliente de acceso 103 está
siendo utilizado en un entorno de red corporativa tal como se
ilustra en la Figura 1, el cliente de acceso 103 puede proporcionar
al usuario una lista de otras personas que tienen acceso a los
medios de almacenamiento de datos 109, corporativos (por ejemplo,
todos los que aparezcan en un servidor corporativo de correo
electrónico). Cuando el usuario selecciona otra persona de la lista,
el cliente de acceso 103 puede disponer, por ejemplo, que la
persona seleccionada reciba un correo electrónico informándole
sobre su selección (junto con instrucciones sobre cómo obtener e
instalar un cliente de acceso 103, si fuera necesario). El cliente
de acceso 103 del usuario también puede llevar un mensaje cifrado a
la persona seleccionada, o bien por correo electrónico o bien
mediante otra técnica de transmisión. El mensaje cifrado contiene
la información necesaria para obtener el acceso del usuario a los
medios de almacenamiento de datos 109. De este modo, si la persona
seleccionada está de acuerdo en proporcionar acceso a los medios de
almacenamiento de datos 109 para el usuario, el cliente de acceso
103 de la persona seleccionada puede utilizar la información de
acceso contenida en el mensaje cifrado para obtener el acceso del
usuario a los medios de almacenamiento de datos 109.
Ventajosamente, con algunas de las formas de
realización de la invención descritas anteriormente que utilizan un
canal unidireccional de órdenes, el canal unidireccional de órdenes
puede prestar servicio a múltiples usuarios del cliente de acceso
103. Más particularmente, a través del canal único de órdenes se
pueden multiplexar órdenes correspondientes a diferentes usuarios.
Con esta disposición, cuando el cliente de acceso 103 establece la
conexión 121 con el servicio 117 de tiempo real, identifica los
usuarios a los que está prestando servicio para el servicio 117 de
tiempo real.
Aunque la exposición anterior ha descrito el uso
de solamente un único servidor de pasarela 101 para facilitar su
comprensión, muchas implementaciones de la invención utilizarían
múltiples servidores 101 de pasarela, tal como se muestra en la
Figura 5, tanto para incrementar la capacidad como la redundancia.
Por ejemplo, algunas formas de realización de la invención pueden
utilizar servidores 101 de pasarela en una arquitectura N + 1,
incluyendo tantos servidores 101 de pasarela como sean necesarios
para una capacidad deseada, más un servidor adicional 101 de
pasarela para la redundancia.
Un sistema convencional de servicio Web de N
niveles puede tener típicamente entre uno y cuatro niveles,
dependiendo de la finalidad del servicio. Por ejemplo, un sistema
convencional de servicio Web puede incluir un servidor Web de
primer nivel, un servidor de aplicaciones de segundo nivel, y a
continuación un servidor de base de datos de tercer nivel. En
general, un usuario puede acceder a un sistema de servicio Web de
este tipo presentando al nivel del servidor Web una solicitud, que
a continuación fluye hacia el servidor de aplicaciones, y al
servidor de base de datos de una manera vertical. Este tipo de red
convencional incluirá frecuentemente uno o más equilibradores de
carga que encaminan solicitudes entrantes sobre la base del uso
actual de cada servidor (es decir, el equilibrador de carga
encaminará solicitudes entrantes a servidores que estén menos
ocupados).
Sin embargo, con varias formas de realización de
la invención, cada usuario tiene por lo menos un cliente de acceso
103 instalado en un ordenador 105, que a su vez establece una
conexión persistente con un servidor de pasarela 101. De este modo,
cuando un usuario utiliza un dispositivo remoto 119 de
comunicaciones para transmitir una solicitud al sistema 100' de
recuperación de datos, resultaría más eficaz encaminar
específicamente la solicitud hacia el servidor de pasarela 101 que
ya ha establecido una conexión persistente 121 con el cliente de
acceso 103 del usuario.
Ventajosamente, varias implementaciones de la
invención pueden emparejar de forma conveniente una solicitud
entrante de un usuario para enviar o recuperar datos con el cliente
de acceso 103 del usuario. Tal como se ha indicado anteriormente,
cuando un cliente de acceso 103 se conecta con un servicio 117 de
tiempo real, el servidor 117 de tiempo real crea una sesión de
tiempo real para esa conexión. Aunque una sesión de tiempo real
existe para una conexión persistente 121, puede existir a través de
múltiples solicitudes de dispositivos remotos 119 de
comunicaciones. Es decir, cuando el servicio de presentación 115
recibe una solicitud desde un dispositivo remoto 119 de
comunicaciones, se puede establecer una correspondencia de la misma
a través de una sesión de tiempo real con el servicio 117 de tiempo
real manteniendo la conexión 121 con el cliente de acceso 103 del
usuario. Por otra parte, cada vez que la solicitud es recibida
posteriormente desde el dispositivo remoto 119 de comunicaciones,
se puede volver a establecer nuevamente una correspondencia de la
misma con el servicio correcto 117 de tiempo real a través de la
sesión de tiempo real. De este modo, estas formas de realización de
la invención proporcionan un proceso de colocación conjunta para
colocar conjuntamente una sesión de presentación de un usuario,
mantenida por un servicio de presentación 115, con la sesión de
tiempo real del usuario correspondiente a la conexión persistente
establecida entre el cliente de acceso 103 del usuario y un
servicio 117 de tiempo real.
Haciendo referencia a continuación a la Figura
5, con la colocación conjunta, cuando se activa un cliente 103A de
acceso, el mismo negocia una conexión segura con un servicio 117 de
tiempo real proporcionado por un servidor de pasarela (por ejemplo,
el servicio 117A de tiempo real proporcionado por el servidor 101A
de pasarela). En el proceso de establecimiento de esta conexión, en
el directorio 127 se almacena información referente a la conexión.
Por ejemplo, cuando un usuario USUARIO1 utiliza el cliente 103A de
acceso, el servicio 117 de tiempo real puede observar que el
USUARIO1 ha establecido una conexión desde el cliente 103A de acceso
al servidor 101A de pasarela (o al servicio 117A de tiempo real).
Debería observarse que, con algunas formas de realización de la
invención, un usuario puede delegar su acceso a unos medios de
almacenamiento de datos (por ejemplo, los medios 109A de
almacenamiento de datos de la Figura 5) en múltiples clientes 103 de
acceso tal como se ha descrito anteriormente. Si, por lo tanto, un
usuario está asociado a conexiones con múltiples servicios 117 de
tiempo real, entonces se puede utilizar una heurística adecuada para
seleccionar una conexión con un servidor de pasarela 101 que sea
preferible con respecto a los otros con la finalidad de colocar
conjuntamente una sesión de presentación con una sesión de tiempo
real.
Cuando, posteriormente, un usuario utiliza un
dispositivo remoto 119 de comunicaciones para, por ejemplo,
presentar una solicitud de datos desde los medios de almacenamiento
de datos 109, el servicio de presentación 115 que recibe la
solicitud inicialmente autenticará la misma, tal como se ha descrito
de forma detallada anteriormente. Por ejemplo, tal como se ha
indicado previamente, el servicio de presentación 115 puede
proporcionar al dispositivo remoto 119 de comunicaciones del
usuario una interfaz de usuario de autenticación que solicite el
nombre, la contraseña, etcétera, del usuario. Una vez que el
dispositivo remoto 119 de comunicaciones (es decir, el usuario) ha
sido autenticado, el servicio de presentación 115 realiza una
consulta a su servicio 117 de tiempo real asociado, que a su vez
consulta el directorio 127 en relación con el servidor de pasarela
101 (o, alternativamente, el servicio 117 de tiempo real)
correspondiente al usuario. Más específicamente, el servicio 117 de
tiempo real puede consultar al directorio 127 si el usuario ha
establecido una conexión inexistente 121 entre un cliente de acceso
103 y un servidor de pasarela 101, y si existe actualmente una
conexión 121 de este tipo, qué servidor de pasarela 101 está
manteniendo la conexión 121.
Si, por ejemplo, una solicitud de datos del
USUARIO1 se encamina inicialmente hacia el servidor 101B de
pasarela, mediante una consulta al directorio 127, el servidor 101B
de pasarela puede determinar que el cliente de acceso 103 al
usuario está conectado actualmente al servidor 101A de pasarela (es
decir, al servicio 117A de tiempo real). Sobre la base de esta
información, el servicio 115B de presentación genera una respuesta
de redireccionamiento para el dispositivo remoto 119 de
comunicaciones. La respuesta de redireccionamiento puede ser
específica del dispositivo, pero puede que no requiera ningún
software especial. En su lugar, la respuesta puede ser, por
ejemplo, una orden convencional de redireccionamiento HTML, WML ó
HTML. A continuación, la respuesta de redireccionamiento provoca
que el dispositivo remoto 119 de comunicaciones emita sus
solicitudes posteriores de los datos deseados específicamente al
servidor 101A de pasarela. Más particularmente, la respuesta de
redireccionamiento puede proporcionar, por ejemplo, al dispositivo
remoto 119 de comunicaciones instrucciones de software, tales como
una "cookie" HTTP. Estas instrucciones de software contienen
información de encaminamiento (o, alternativamente, son ellas
mismas información de encaminamiento) que será incluida en
presentaciones posteriores de la solicitud de los datos
deseados.
Por consiguiente, cuando el dispositivo remoto
119 de comunicaciones vuelve a presentar una solicitud de
información deseada, la información de encaminamiento se puede usar
para encaminar la solicitud directamente hacia el servicio de
presentación 115 asociado al servicio 117 de tiempo real que
mantiene una conexión con el cliente de acceso 103 del usuario. Por
ejemplo, tal como se muestra en la Figura 5, un sistema 100' de
recuperación de datos según varias implementaciones de la invención
puede utilizar uno o más equilibradores 501 de carga. Estos
equilibradores 501 de carga encaminan tanto solicitudes de
recuperación de datos entrantes como solicitudes de presentación de
datos entrantes desde dispositivos remotos 119 de comunicación hacia
un servidor de pasarela 101. Con estas formas de realización,
cuando un equilibrador de carga recibe una solicitud, en primer
lugar realiza la comprobación para determinar si la solicitud
contiene información de encaminamiento, tal como una cookie según
se ha descrito anteriormente. Si la solicitud no contiene
información de encaminamiento, entonces el equilibrador 501 de
carga asigna la solicitud a un servidor de pasarela 101 basándose en
la distribución actual de la carga de todos los servidores 101 de
pasarela, tal como es sabido en la materia. No obstante, si el
equilibrador 501 de carga determina que una solicitud sí que
contiene información de encaminamiento, entonces encamina la
solicitud hacia la solicitud 101 de pasarela identificado en la
información de encaminamiento.
Tal como apreciarán los expertos ordinarios en
la materia, con esta disposición cada equilibrador 501 de carga
puede tener una dirección de red pública, tal como una dirección
pública de protocolo de internet (IP). A continuación, los
servidores 101 de pasarela por detrás de los equilibradores 501 de
carga pueden tener direcciones de red virtuales a las que no se
puede acceder directamente desde fuera de la red. Para estas
implementaciones de la invención, la información de encaminamiento
proporcionará la dirección de red virtual para el servidor de
pasarela 101 deseado, y, a continuación, el equilibrador 501 de
carga que recibe una solicitud que contiene la información de
encaminamiento puede establecer una correspondencia de la solicitud
con el servidor de pasarela 101 identificado.
Con varios ejemplos de la invención, la
respuesta de redireccionamiento también puede contener información
adicional de "transferencia" que se insertará en las
solicitudes posteriores de los datos deseados. Cuando a
continuación el servidor de pasarela 101 encaminado recibe una
solicitud posterior de los datos deseados, puede determinar, a
partir de la información de transferencia, que la solicitud es una
transferencia desde otro servidor de pasarela 101. La información
de transferencia puede contener también una indicación de tiempo,
de manera que el servidor de pasarela 101 encaminado puede confirmar
que la transferencia fue reciente. Usando esta información,
asociará la solicitud a una sesión de presentación en el servidor de
pasarela 101 inicial. De este modo, el servidor de pasarela 101
encaminado puede colocar conjuntamente la sesión de presentación
del servicio de presentación 115 del servidor de pasarela 101
inicial con su propio servicio de presentación 115, de tal manera
que su propio servicio de presentación 115 devuelve los datos
deseados al dispositivo remoto 119 de comunicaciones cuando los
mismos son recuperados.
Según todavía otras formas de realización de la
invención, el servidor de pasarela 101 encaminado puede usar la
información de transferencia para utilizar la autenticación
realizada por el servidor de pasarela 101 inicial, evitando de este
modo la necesidad de que el usuario se vuelva a autenticar. Por
consiguiente, para estas formas de realización, la información de
transferencia se puede cifrar, con el fin de evitar que usuarios no
autorizados creen una información de transferencia falsa para evitar
la autenticación. Evidentemente, la información de transferencia se
puede cifrar incluso si el servidor de pasarela 101 encaminado no
utiliza la autenticación realizada por el servidor de pasarela 101
inicial. Además, debería indicarse que, con varias formas de
realización de la invención, el proceso de colocación conjunta lo
pueden realizar alternativamente los equilibradores 501 de carga,
aunque esto puede requerir un código personalizado.
De este modo, en referencia nuevamente al
ejemplo anterior para el USUARIO1, después de que se encamine
inicialmente hacia el servidor 101B de pasarela una solicitud de
datos desde el USUARIO1, el servidor 101B de pasarela puede
determinar, a partir de una consulta al directorio 127, que el
cliente de acceso 103 del usuario está conectado actualmente al
servidor 101A de pasarela (es decir, al servicio 117A de tiempo
real). Por consiguiente, el servidor 101B de pasarela proporciona
una respuesta de redireccionamiento al dispositivo remoto 119A de
comunicaciones con información de transferencia. La información de
transferencia incluirá información de encaminamiento, tal como, por
ejemplo, una dirección de red virtual, para el servicio 101A de
pasarela. La información de transferencia también se puede cifrar,
y puede incluir una indicación de tiempo y, por ejemplo, una
confirmación de la autenticación del USUARIO1. Cuando el USUARIO1
vuelve a presentar solicitudes de la información deseada, las
solicitudes nuevas incluirán la información de transferencia. Por
consiguiente, cuando el equilibrador 501A de carga recibe las
solicitudes que se han vuelto a presentar, el mismo encaminará las
solicitudes hacia el servidor 101A de pasarela para su
gestión.
gestión.
Tal como apreciarán los expertos ordinarios en
la materia, pueden producirse algunas situaciones en las que este
proceso de colocación conjunta no se puede utilizar. Por ejemplo, un
usuario puede utilizar inicialmente un primer cliente de acceso 103
para recuperar datos. Si a continuación ese primer cliente de acceso
103 falla antes de que los datos sean recuperados, puede que se
obligue al usuario a utilizar un segundo cliente de acceso 103
delegado para recuperar la información. En este escenario, no
resultaría deseable reencaminar solicitudes posteriores hacia otro
servidor de pasarela 101, puesto que el servidor de pasarela 101
correspondiente al primer cliente de acceso 103 ya puede tener
parte o la totalidad de los datos solicitados en la memoria caché
1151. Además, la colocación conjunta puede no ser deseable cuando un
usuario se registra por primera vez en el sistema de recuperación
de datos con el ordenador 105, pero no tiene instalado todavía un
cliente de acceso 103.
Debería apreciarse también que, con diferentes
formas de realización de la invención, un servicio localizador
independiente puede realizar una o más de las funciones de
colocación conjunta en lugar del servicio de presentación 115. Por
ejemplo, con algunas formas de realización de la invención, un
servicio localizador puede realizar una consulta al directorio 127
para determinar el servidor de pasarela 101 al cual está conectado
actualmente el cliente de acceso 103 del usuario, y a continuación
generar una respuesta de redireccionamiento correspondiente para el
dispositivo remoto 119 de comunicaciones.
Evidentemente, varias formas de realización de
la invención pueden utilizar de forma alternativa o adicional
procedimientos convencionales de llamadas remotas para asociar una
sesión de presentación mantenida por un servicio de presentación
115 en un servidor de pasarela 101 a una conexión 121 mantenida por
un servicio 117 de tiempo real en un servidor de pasarela 101
diferente. Dichos procedimientos de llamada remota se pueden
utilizar, por ejemplo, en lugar del proceso de colocación conjunta
descrito anteriormente, o si, por alguna razón, falla el proceso de
colocación conjunta.
Para establecer una conexión segura con un
ordenador, típicamente un navegador usará un protocolo de cifrado,
tal como el Protocolo Seguro de Transferencia de Hipertexto, que
utiliza la técnica de cifrado de la Capa de Conexión Segura (SSL).
Con este protocolo, se preinstalan certificados de clave de cifrado,
y, durante un proceso de "señalización de entrada en contacto"
("handshake"), se usan una clave pública y claves
privadas para negociar una clave de sesión para la conexión. Con un
una señalización de entrada en contacto SSL, un tercero no puede
determinar la clave de sesión, ni siquiera si se intercepta la
totalidad de los datos intercambiados. No obstante, este tipo de
protocolo requiere una gran cantidad de tara de recursos para
comenzar, y requiere el mantenimiento de una gran cantidad de tara
de recursos. Por otra parte, con varios ejemplos de la invención,
el servicio de presentación 115 se puede implementar usando un
servidor Web convencional, aunque el servicio 117 de tiempo real se
puede implementar usando un tipo diferente de servidor. Con esta
disposición, el servicio 117 de tiempo real puede usar
comunicaciones HTTP y/o HTTPS, pero únicamente para entregar
mensajes a través de cortafuegos (por ejemplo, para solicitudes al
Puerto 80, que convencionalmente se hacen pasar por
cortafuegos).
Por consiguiente, resultaría beneficioso
permitir el cliente de acceso 103 y el servicio 117 de tiempo real
sin mantener una sesión SSL. De forma ventajosa, varias formas de
realización de la invención permiten que el cliente de acceso 103
se comunique con el servicio 117 de tiempo real sin tener que
mantener una sesión SSL. Según estas formas de realización, los
equilibradores 501 de carga sirven también como terminadores de
protocolo de cifrado además de equilibradores de carga. Es decir, el
equilibrador de carga puede tener software o hardware SSL (por
ejemplo, tarjetas aceleradoras SSL) que gestionen muy rápidamente
las comunicaciones SSL. Cuando el equilibrador de carga traslada
una comunicación a un servidor de pasarela 101, la comunicación se
descifra por lo tanto hacia un formato HTTP regular (es decir, el
equilibrador 501 de carga descifra la comunicación antes de
trasladarla al servidor de pasarela 101). Estos equilibradores de
carga especializados son conocidos en la técnica y se pueden
obtener de una variedad de fuentes, y por lo tanto no se describirán
de forma más detallada.
Cuando el cliente de acceso 103 intenta
establecer una conexión con el servicio 117 de tiempo real, no se
comunica directamente con el servicio 117 de tiempo real. En su
lugar, el cliente de acceso 103 inicialmente transmite un mensaje
cifrado, tal como un mensaje HTTPS, a través de un equilibrador 501
de carga hacia un servidor 115 de presentación. El mensaje HTTPS es
recibido en el equilibrador 501 de carga, que descifra el mensaje y
lo encamina a un servicio de presentación 115 en forma de un mensaje
HTTP. Más particularmente, el equilibrador 501 de carga encamina la
solicitud hacia el servicio de presentación 115 de un servidor de
pasarela 101 según su algoritmo de equilibrado (por ejemplo, al
servidor de pasarela 101 que esté menos ocupado). A continuación,
el servicio de presentación 115 realiza una llamada al servicio 117
de tiempo real para informar de que el cliente de acceso 103 estará
proporcionando en poco tiempo una solicitud para establecer una
conexión.
Como respuesta, el servicio 117 de tiempo real
crea una entrada en una lista de conexiones pendientes (por
ejemplo, una tabla de clientes 103 de acceso que pronto estarán
conectándose al servicio 117 de tiempo real). Como respuesta, se
genera una clave de cifrado de sesión única (por ejemplo, una clave
de 128 bits), que no está relacionada con la comunicación SSL
inicial entre el cliente de acceso 103 y el equilibrador 501 de
carga. Para generar la clave de cifrado se puede usar cualquier
algoritmo de cifrado deseado, tal como el RC4. Por lo tanto, la
entrada en la tabla incluirá la identidad del cliente de acceso 103,
una identificación de sesión pública y una clave de cifrado
privada.
A continuación, el servicio de presentación 115
envía una respuesta HTTP que contiene la dirección (tal como una
dirección de localización universal de recursos (URL))
correspondiente al servicio 117 de tiempo real al que se debería
conectar el cliente de acceso 103. La respuesta incluye además la
identificación de sesión pública y la clave de cifrado privada. A
continuación, el cliente de acceso 103 puede transmitir un mensaje
al servicio 117 de tiempo real usando la dirección (por ejemplo,
usando un URL de la forma
http://www.gateway.com/real-timeserver
IDsesión=xxxxxx). Usando esta disposición, el mensaje enviado desde
el cliente de acceso 103 al servicio 117 de tiempo real puede ser
un mensaje HTTP no cifrado, pero los datos en el mensaje se pueden
cifrar usando la clave de cifrado privada. A continuación, el
servicio 117 de tiempo real puede usar la identificación de sesión
en el mensaje para localizar la entrada apropiada en la tabla con la
clave de cifrado privada correspondiente. A continuación, el
servicio 117 de tiempo real descifrará el contenido del mensaje con
la clave de cifrado privada.
De este modo, el cliente de acceso 103 y el
servicio 117 de tiempo real se pueden comunicar sin mantener una
sesión de cifrado. En su lugar, el cliente de acceso 103 y el
servicio 117 de tiempo real pueden usar la identificación de sesión
pública y la clave de cifrado privada para comunicarse de forma
segura. Por otra parte, mediante la transferencia de la conexión
directamente al servicio 117 de tiempo real, estas formas de
realización de la invención pueden evitar el maximizar el límite
del equilibrador 501 de carga. Evidentemente, todavía con otras
formas de realización de la invención, el cliente de acceso 103 y el
servicio 117 de tiempo real se pueden comunicar de forma segura
mientras mantienen una sesión de cifrado (tal como una sesión de
cifrado SSL), aunque también pueden hacer que los datos
intercambiados a través de la conexión segura se cifren por
separado. Es decir, la descripción de los datos a través de la
conexión segura, tal como se ha descrito de forma detallada
anteriormente, puede usar información de cifrado diferente a la
información de cifrado usada para mantener la conexión segura.
Claims (35)
1. Servidor de pasarela (101), que
comprende:
- un servicio de presentación (115) dispuesto para recibir una solicitud de datos desde un dispositivo remoto (119) de comunicaciones de un usuario, solicitando la solicitud de datos la recepción de datos desde unos medios de almacenamiento de datos (109); y
- un servicio (117) de tiempo real dispuesto para retransmitir la solicitud de datos desde el servicio de presentación (115) a un cliente de acceso (103) asociado a los medios de almacenamiento de datos (109),
- en el que el servidor de pasarela (101) está dispuesto para establecer, entre el servicio de presentación (115) y el dispositivo remoto (119) de comunicaciones del usuario, una sesión de presentación correspondiente a la solicitud de datos del dispositivo remoto (119) de comunicaciones del usuario,
- en el que el servidor de pasarela (101) está dispuesto para transmitir datos de identificación de sesión de la presentación al dispositivo remoto (119) de comunicaciones del usuario antes de que los datos solicitados hayan sido recibidos por el servicio de presentación (115) y
- en el que el servicio de presentación (115) está dispuesto para:
- activar un temporizador al producirse la recepción de la solicitud de datos;
- cuando el temporizador alcanza un valor de umbral, determinar si los datos solicitados en la solicitud de datos han sido recibidos después de haber sido recuperados desde los medios de almacenamiento de datos; y
- si se han recibido los datos solicitados, reenviar los datos solicitados al dispositivo remoto (119) de comunicaciones del usuario, y
- si no se han recibido los datos solicitados, reenviar un mensaje al dispositivo remoto (119) de comunicaciones del usuario ordenando al dispositivo remoto (119) de comunicaciones del usuario que vuelva a presentar la solicitud de datos.
2. Servidor de pasarela (101) según la
reivindicación 1, en el que el servicio de presentación (115)
incluye además unas características (1155) de dispositivos,
correspondientes al dispositivo remoto (119) de comunicaciones del
usuario, y el tiempo de umbral se determina basándose en las
características (1155) del dispositivo.
3. Servidor de pasarela (101) según la
reivindicación 1 ó la reivindicación 2, en el que
- el servicio (117) de tiempo real está dispuesto para recibir unos datos solicitados en una solicitud de datos, y el servicio de tiempo real está dispuesto para retransmitir los datos recibidos al servicio de presentación (115); y
- el servicio de presentación (115) está dispuesto para reenviar los datos recibidos al dispositivo remoto (119) de comunicaciones del usuario.
4. Servidor de pasarela (101) según la
reivindicación 3, en el que el servicio de presentación (115)
incluye además una memoria caché para almacenar los datos
recibidos.
5. Servidor de pasarela (101) según la
reivindicación 3 ó la reivindicación 4, en el que el servicio de
presentación está dispuesto para asociar dicha solicitud de datos,
que se ha vuelto a presentar, a la solicitud de datos inicialmente
recibida desde el dispositivo remoto (119) de comunicaciones del
usuario usando los datos de identificación de sesión de
presentación transmitidos al dispositivo remoto de comunicaciones
del usuario, mediante lo cual se reenvían los datos recibidos al
mismo.
6. Servidor de pasarela (101) según cualquiera
de las reivindicaciones anteriores, que incluye además un directorio
para ser usado en la identificación de una conexión entre uno o más
clientes (103) de acceso y el servicio (117) de tiempo real.
7. Servidor de pasarela (101) según cualquiera
de las reivindicaciones anteriores, en el que los medios de
almacenamiento de datos incluyen una base de datos, y el servicio
(117) de tiempo real está dispuesto para retransmitir las
solicitudes de datos desde el servicio de presentación (115) a un
cliente de acceso (103) asociado a la base de datos.
8. Servidor de pasarela (101) según cualquiera
de las reivindicaciones anteriores, en el que los medios de
almacenamiento de datos incluyen un dispositivo servidor que
proporciona servicios a uno o más dispositivos de cliente, y el
servicio (117) de tiempo real está dispuesto para retransmitir las
solicitudes de datos desde el servicio de presentación (115) a un
cliente de acceso (103) asociado al dispositivo servidor.
9. Servidor de pasarela (101) según cualquiera
de las reivindicaciones anteriores, en el que el servidor de
pasarela (101) está dispuesto para seleccionar unos medios de
almacenamiento de datos de entre el grupo constituido por: un
servidor Microsoft Exchange, un servidor Lotus Domino, unos medios
de almacenamiento de correo IMAP, unos medios de almacenamiento de
correo POP3, y un sistema de archivos NTFS.
10. Servidor de pasarela (101) según cualquiera
de las reivindicaciones anteriores, en el que el servicio de
presentación (115) está dispuesto para recibir las solicitudes de
datos desde un dispositivo remoto (119) de comunicaciones de un
usuario a través de una red inalámbrica.
11. Servidor de pasarela (101) según cualquiera
de las reivindicaciones anteriores, en el que una temporización de
las comunicaciones entre el servicio (117) de tiempo real y el
cliente de acceso (103) es independiente de una temporización de
comunicaciones entre el servicio de presentación (115) y el
dispositivo remoto (119) de comunicaciones del usuario.
12. Servidor de pasarela (101) según cualquiera
de las reivindicaciones anteriores, que comprende además un
directorio que almacena una entrada correspondiente al dispositivo
remoto (119) de comunicaciones del usuario y una conexión entre el
servicio (117) de tiempo real y el cliente de acceso (103),
identificando la entrada tanto al usuario como al servicio (117) de
tiempo real conectado al cliente de acceso (103).
13. Servidor de pasarela (101) según cualquiera
de las reivindicaciones anteriores, en el que el servidor de
pasarela (101) está dispuesto para proporcionar acceso a datos de
correo electrónico, datos de calendario y datos de directorio.
14. Servidor de pasarela (101) según cualquiera
de las reivindicaciones anteriores, en el que los medios de
almacenamiento de datos residen detrás de un cortafuegos corporativo
(111), y el servicio (117) de tiempo real está dispuesto para
retransmitir las solicitudes de datos desde el servicio de
presentación (115) hacia la base de datos a través del cortafuegos
corporativo (111).
15. Servidor de pasarela (101) según cualquiera
de las reivindicaciones anteriores, en el que el cliente de acceso
(103) asociado a los datos almacenados reside detrás de un
cortafuegos corporativo (111), y el servicio (117) de tiempo real
está dispuesto para retransmitir las solicitudes de datos desde el
servicio de presentación (115) al cliente de acceso (103) a través
del cortafuegos corporativo (111).
16. Servidor de pasarela (101) según cualquiera
de las reivindicaciones 1 a 14, en el que el cliente de acceso
(103) asociado a los medios de almacenamiento de datos es un
servidor de correo electrónico público, y el servicio (117) de
tiempo real está dispuesto para retransmitir las solicitudes de
datos desde el servicio de presentación (115) al servidor de correo
electrónico público.
17. Método de recuperación de datos desde unos
medios de almacenamiento de datos, que comprende:
- recibir (309) una solicitud de datos desde un dispositivo remoto (119) de comunicaciones de un usuario en un servicio de presentación (115), solicitando la solicitud de datos la recepción de datos desde unos medios de almacenamiento de datos (109);
- proporcionar (317) la solicitud de datos recibida a un servicio (117) de tiempo real;
- retransmitir (319) la solicitud de datos desde el servicio (117) de tiempo real a un cliente de acceso (103) asociado a los medios de almacenamiento de datos;
- establecer (311) una sesión de presentación correspondiente a la solicitud de datos desde el dispositivo remoto (119) de comunicaciones del usuario, estableciéndose dicha sesión de presentación entre el servicio de presentación y el dispositivo remoto de comunicaciones del usuario;
- transmitir datos de identificación de la sesión de presentación al dispositivo remoto (119) de comunicaciones del usuario antes de que el servicio de presentación (115) haya recibido los datos, comprendiendo el método, en el servicio de presentación:
- activar (405) un temporizador al producirse la recepción de la solicitud de datos;
- cuando el temporizador alcanza un valor de umbral, determinar si los datos solicitados en la solicitud de datos han sido recibidos después de haber sido recuperados desde los medios de almacenamiento de datos; y
- si se han recibido los datos solicitados, reenviar (419) los datos solicitados al dispositivo remoto (119) de comunicaciones del usuario, y
- si no se han recibido los datos solicitados, reenviar (417) un mensaje al dispositivo remoto (119) de comunicaciones del usuario ordenando al dispositivo remoto (119) de comunicaciones del usuario que vuelva a presentar la solicitud de datos.
18. Método según la reivindicación 17, en el que
el mensaje provoca que el dispositivo remoto (119) de comunicaciones
vuelva a presentar automáticamente la solicitud de datos.
19. Método según la reivindicación 17, en el que
el mensaje pide al usuario que vuelva a presentar la solicitud de
datos.
20. Método según la reivindicación 17, que
comprende además:
- antes de que el temporizador alcance un valor de umbral, determinar periódicamente si datos solicitados en la solicitud de datos han sido recibidos después de haber sido recuperados desde los medios de almacenamiento de datos; y
- si los datos solicitados han sido recibidos, reenviar los datos solicitados al dispositivo remoto (119) de comunicaciones del usuario.
21. Método según la reivindicación 17, que
comprende además determinar (409) características de dispositivo
para el dispositivo remoto (119) de comunicaciones del usuario;
y
- fijar (411) el valor de umbral basándose en las características de dispositivo determinadas.
22. Método según cualquiera de las
reivindicaciones 17 a 21, que comprende además
- recibir (323), en el servicio (117) de tiempo real, datos recuperados desde los medios de almacenamiento de datos por el cliente de acceso (103) en respuesta a una solicitud de datos;
- retransmitir (325) los datos recuperados desde el servicio (117) de tiempo real al servicio de presentación (115); y
- reenviar (329) los datos recuperados desde el servicio de presentación (115) al dispositivo remoto (119) de comunicaciones del usuario.
23. Método según la reivindicación 22, que
comprende además almacenar (327) los datos recuperados
retransmitidos desde el servicio (117) de tiempo real en una
memoria caché (1151) prevista por el servicio de presentación (115)
antes de reenviar los datos recuperados desde el servicio de
presentación (115) al dispositivo remoto (119) de comunicaciones
del usuario.
24. Método según la reivindicación 22 ó la
reivindicación 23, que comprende asociar dicha solicitud de datos,
que se ha vuelto a presentar, a la solicitud de datos inicialmente
recibida desde el dispositivo remoto (119) de comunicaciones del
usuario usando los datos de identificación de sesiones de
presentación transmitidos hacia el dispositivo remoto de
comunicaciones del usuario, mediante lo cual se reenvían los datos
recibidos al mismo.
25. Método según cualquiera de las
reivindicaciones 17 a 24, que comprende además crear una entrada en
un directorio correspondiente al dispositivo remoto (119) de
comunicaciones del usuario y una conexión entre el servicio (117)
de tiempo real y el cliente de acceso (103), identificando la
entrada tanto al usuario como al servicio (117) de tiempo real
conectado al cliente de acceso (103).
26. Método según cualquiera de las
reivindicaciones 17 a 25, en el que la sesión de presentación se
identifica mediante una entrada en memoria y asocia el usuario a un
valor de sesión de presentación.
27. Método según cualquiera de las
reivindicaciones 17 a 26, en el que la sesión de presentación se
asocia a una posición en memoria en la que se almacenarán datos
recuperados desde los medios de almacenamiento de datos en
respuesta a la solicitud de datos.
28. Método según cualquiera de las
reivindicaciones 17 a 27, en el que la sesión de presentación se
asocia a una bandera que indica si los datos que se deben recuperar
desde los medios de almacenamiento de datos en respuesta a la
solicitud de datos han sido recibidos y almacenados por el servicio
de presentación (115).
29. Método según cualquiera de las
reivindicaciones 17 a 28, en el que la retransmisión de la solicitud
de datos desde el servicio (117) de tiempo real a un cliente de
acceso (103) asociado a los medios de almacenamiento de datos
incluye:
- establecer una conexión segura entre el servicio (117) de tiempo real y el cliente de acceso (103);
- proporcionar al cliente de acceso (103) información de cifrado a través de la conexión segura;
- cifrar la solicitud de datos con la información de cifrado; y
- retransmitir la solicitud de datos cifrada hacia el cliente de acceso (103).
30. Método según la reivindicación 29, en el que
la conexión segura se establece usando el protocolo de Capa de
Conexión Segura.
31. Método según la reivindicación 28 ó la
reivindicación 29, en el que la conexión segura se establece a
través de un equilibrador (501A, 510B) de carga que recibe las
comunicaciones para el servicio de presentación (115).
32. Método según cualquiera de las
reivindicaciones 29 a 31, en el que la información de cifrado
incluye una identificación de sesión de cifrado pública y una clave
de cifrado privada.
33. Método según cualquiera de las
reivindicaciones 29 a 32, que comprende además recibir, en el
servicio (117) de tiempo real, datos recuperados desde los medios
de almacenamiento de datos por el cliente de acceso (103) en
respuesta a una solicitud de datos.
34. Método según cualquiera de las
reivindicaciones 29 a 33, en el que la recepción de datos
recuperados desde los medios de almacenamiento de datos por el
cliente de acceso (103) en respuesta a una solicitud de datos
incluye:
- recibir los datos recuperados desde el cliente de acceso (103) a través de una conexión no segura, estando cifrado los datos recuperados usando la información de cifrado; y
- descifrar los datos recuperados usando la información de cifrado.
35. Sistema que comprende un servidor de
pasarela (101), un dispositivo remoto (119) de comunicaciones de un
usuario, unos medios de almacenamiento de datos (109) y un cliente
de acceso (103) asociado a los medios de almacenamiento de datos
(109),
estando dispuesto el dispositivo remoto de
comunicaciones del usuario para transmitir una solicitud de datos
que solicita la recepción de datos desde los medios de
almacenamiento de datos (109),
comprendiendo el servidor de pasarela (101):
- un servicio de presentación (115) dispuesto para recibir la solicitud de datos desde el dispositivo remoto (119) de comunicaciones del usuario; y
- un servicio (117) de tiempo real dispuesto para retransmitir la solicitud de datos desde el servicio de presentación (115) al cliente de acceso (103) asociado a los medios de almacenamiento de datos (109),
- estando dispuesto el cliente de acceso (103) para recuperar los datos solicitados en la solicitud de datos desde los medios de almacenamiento de datos (109) y para transmitir los datos recuperados hacia el servidor de pasarela (101),
- en el que el servidor de pasarela (101) está dispuesto para establecer, entre el servicio de presentación (115) y el dispositivo remoto (119) de comunicaciones del usuario, una sesión de presentación correspondiente a la solicitud de datos del dispositivo remoto (119) de comunicaciones del usuario,
- estando dispuesto el servidor de pasarela (101) para transmitir datos de identificación de la sesión de presentación al dispositivo remoto (119) de comunicaciones del usuario antes de que los datos solicitados hayan sido recibidos por el servicio de presentación (115), y
- en el que el servicio de presentación (115) está dispuesto para:
- activar un temporizador al producirse la recepción de la solicitud de datos;
- cuando el temporizador alcanza un valor de umbral, determinar si datos solicitados en la solicitud de datos han sido recibidos después de haber sido recuperados desde los medios de almacenamiento de datos; y
- si se han recibido los datos solicitados, reenviar los datos solicitados al dispositivo remoto (119) de comunicaciones del usuario, y
- si no se han recibido los datos solicitados, reenviar un mensaje al dispositivo remoto (119) de comunicaciones del usuario ordenando al dispositivo remoto (119) de comunicaciones del usuario que vuelva a presentar la solicitud de datos.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US44421303P | 2003-01-31 | 2003-01-31 | |
| US444213P | 2003-01-31 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2348260T3 true ES2348260T3 (es) | 2010-12-02 |
Family
ID=32850837
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES10169425T Expired - Lifetime ES2409936T3 (es) | 2003-01-31 | 2004-02-02 | Recuperación asíncrona de datos en tiempo real |
| ES04707416T Expired - Lifetime ES2348260T3 (es) | 2003-01-31 | 2004-02-02 | Recuperacion asincrona de datos en tiempo real. |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES10169425T Expired - Lifetime ES2409936T3 (es) | 2003-01-31 | 2004-02-02 | Recuperación asíncrona de datos en tiempo real |
Country Status (6)
| Country | Link |
|---|---|
| US (5) | US7363349B2 (es) |
| EP (2) | EP1634162B1 (es) |
| AT (1) | ATE474261T1 (es) |
| DE (1) | DE602004028121D1 (es) |
| ES (2) | ES2409936T3 (es) |
| WO (1) | WO2004070568A2 (es) |
Families Citing this family (111)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6219694B1 (en) | 1998-05-29 | 2001-04-17 | Research In Motion Limited | System and method for pushing information from a host system to a mobile data communication device having a shared electronic address |
| US20080261633A1 (en) | 2002-10-22 | 2008-10-23 | Research In Motion Limited | System and Method for Pushing Information from a Host System to a Mobile Data Communication Device |
| US7363349B2 (en) | 2003-01-31 | 2008-04-22 | Visto Corporation | Asynchronous real-time retrieval of data |
| US6917675B2 (en) * | 2003-05-23 | 2005-07-12 | General Instrument Corporation | Method and apparatus for providing telephone conference bridging within a residential gateway |
| GB2409069B (en) * | 2003-12-11 | 2007-03-07 | Hewlett Packard Development Co | Administration of computing entities in a network |
| CN1753359B (zh) | 2004-09-24 | 2011-01-19 | 华为技术有限公司 | 实现传输SyncML同步数据的方法 |
| US8079059B1 (en) * | 2005-05-31 | 2011-12-13 | Imera Systems, Inc. | Method and system for providing terminal view access of a client device in a secure network |
| US20070112954A1 (en) * | 2005-11-15 | 2007-05-17 | Yahoo! Inc. | Efficiently detecting abnormal client termination |
| US7853753B2 (en) * | 2006-06-30 | 2010-12-14 | Verint Americas Inc. | Distributive network control |
| US20080082670A1 (en) * | 2006-09-28 | 2008-04-03 | Microsoft Corporation | Resilient communications between clients comprising a cloud |
| US20080098093A1 (en) * | 2006-10-16 | 2008-04-24 | Palm, Inc. | Offline automated proxy cache for web applications |
| US20080148298A1 (en) * | 2006-12-18 | 2008-06-19 | Palm, Inc. | System and Methods for Providing Granular Security for Locally Running Scripted Environments and Web Applications |
| JP4386926B2 (ja) * | 2007-02-16 | 2009-12-16 | 富士通株式会社 | 暗号通信プログラム、暗号通信方法および暗号通信装置 |
| US20080248834A1 (en) * | 2007-04-03 | 2008-10-09 | Palm, Inc. | System and methods for providing access to a desktop and applications of a mobile device |
| US8478299B2 (en) * | 2007-04-06 | 2013-07-02 | Hewlett-Packard Development Company, L.P. | System and methods for obtaining coarse location for a mobile device |
| US8060486B2 (en) * | 2007-05-07 | 2011-11-15 | Hewlett-Packard Development Company, L.P. | Automatic conversion schema for cached web requests |
| US8850035B1 (en) * | 2007-05-16 | 2014-09-30 | Yahoo! Inc. | Geographically distributed real time communications platform |
| US8400913B2 (en) | 2007-05-23 | 2013-03-19 | Microsoft Corporation | Method for optimizing near field links |
| US7881329B2 (en) * | 2007-05-25 | 2011-02-01 | Sharp Laboratories Of America, Inc. | Method and system for maintaining high reliability logical connection |
| US8331294B2 (en) * | 2007-07-20 | 2012-12-11 | Broadcom Corporation | Method and system for managing information among personalized and shared resources with a personalized portable device |
| US8458612B2 (en) * | 2007-07-29 | 2013-06-04 | Hewlett-Packard Development Company, L.P. | Application management framework for web applications |
| US20090091422A1 (en) * | 2007-10-03 | 2009-04-09 | Apple Inc. | Device identification via serial communication link |
| US8590039B1 (en) | 2007-11-28 | 2013-11-19 | Mcafee, Inc. | System, method and computer program product for sending information extracted from a potentially unwanted data sample to generate a signature |
| US8274935B2 (en) * | 2008-02-11 | 2012-09-25 | Amdocs Software Systems Limited | Mobile communication device notifier |
| US9306796B1 (en) * | 2008-03-18 | 2016-04-05 | Mcafee, Inc. | System, method, and computer program product for dynamically configuring a virtual environment for identifying unwanted data |
| US8301904B1 (en) | 2008-06-24 | 2012-10-30 | Mcafee, Inc. | System, method, and computer program product for automatically identifying potentially unwanted data as unwanted |
| US8627461B2 (en) | 2009-03-04 | 2014-01-07 | Mcafee, Inc. | System, method, and computer program product for verifying an identification of program information as unwanted |
| US8547931B2 (en) | 2009-05-21 | 2013-10-01 | Microsoft Corporation | Conserving call logic during handoff |
| CN102088470B (zh) * | 2009-12-07 | 2014-03-05 | 中兴通讯股份有限公司 | 通信系统中文件传输协议死锁检测及自恢复的方法与装置 |
| US8719939B2 (en) * | 2009-12-31 | 2014-05-06 | Mcafee, Inc. | Malware detection via reputation system |
| US8904554B2 (en) * | 2010-03-30 | 2014-12-02 | Private Access, Inc. | System and method for selectively redacting information in electronic documents |
| EP2609517B1 (en) | 2010-08-24 | 2020-04-01 | BlackBerry Limited | Constant access gateway and de-duplicated data cache server |
| US20120066322A1 (en) * | 2010-09-15 | 2012-03-15 | Veragen, Inc. | Computer-network-based system and methodology for enhancing personal-information storage and transfer control |
| US9692631B2 (en) * | 2010-09-16 | 2017-06-27 | Blackberry Limited | Load sensitive data session scheduling mechanisms of wireless/wireline access networks |
| US8364655B2 (en) | 2010-09-29 | 2013-01-29 | International Business Machines Corporation | Hybrid off-peak and just-in-time integration |
| US9686228B2 (en) | 2010-09-29 | 2017-06-20 | International Business Machines Corporation | Integrated just-in-time synchronization |
| US9219706B2 (en) | 2010-09-29 | 2015-12-22 | International Business Machines Corporation | Just-in-time wrapper synchronization |
| US8943570B1 (en) * | 2010-12-02 | 2015-01-27 | Cellco Partnership | Techniques for providing enhanced network security |
| US9465885B2 (en) * | 2010-12-03 | 2016-10-11 | Salesforce.Com, Inc. | Method and system for providing information to a mobile handheld device from a database system |
| US9292358B2 (en) * | 2011-06-13 | 2016-03-22 | Microsoft Technology Licensing, Llc | Remotely retrieving information from consumer devices |
| US8601134B1 (en) * | 2011-06-30 | 2013-12-03 | Amazon Technologies, Inc. | Remote storage gateway management using gateway-initiated connections |
| US8789208B1 (en) | 2011-10-04 | 2014-07-22 | Amazon Technologies, Inc. | Methods and apparatus for controlling snapshot exports |
| US8843758B2 (en) * | 2011-11-30 | 2014-09-23 | Microsoft Corporation | Migrating authenticated content towards content consumer |
| US8713646B2 (en) | 2011-12-09 | 2014-04-29 | Erich Stuntebeck | Controlling access to resources on a network |
| JP6063121B2 (ja) * | 2011-12-26 | 2017-01-18 | 任天堂株式会社 | 通信システム、通信端末、通信方法およびプログラム |
| US10257194B2 (en) | 2012-02-14 | 2019-04-09 | Airwatch Llc | Distribution of variably secure resources in a networked environment |
| US9705813B2 (en) | 2012-02-14 | 2017-07-11 | Airwatch, Llc | Controlling distribution of resources on a network |
| US10404615B2 (en) | 2012-02-14 | 2019-09-03 | Airwatch, Llc | Controlling distribution of resources on a network |
| US9680763B2 (en) | 2012-02-14 | 2017-06-13 | Airwatch, Llc | Controlling distribution of resources in a network |
| EP2831718A4 (en) | 2012-03-30 | 2015-12-02 | Goldman Sachs & Co | SAFE MOBILE FRAMEWORK |
| US9319449B2 (en) * | 2012-06-29 | 2016-04-19 | Mckesson Financial Holdings | Method, apparatus, and computer program product for processing data requests |
| US8862882B2 (en) * | 2012-06-29 | 2014-10-14 | Intel Corporation | Systems and methods for authenticating devices by adding secure features to Wi-Fi tags |
| US9288077B1 (en) * | 2012-09-28 | 2016-03-15 | Emc Corporation | Cluster file system with server block cache |
| US20140092904A1 (en) * | 2012-10-03 | 2014-04-03 | Research In Motion Limited | System and method for requesting content using an electronic device |
| US9247432B2 (en) | 2012-10-19 | 2016-01-26 | Airwatch Llc | Systems and methods for controlling network access |
| US8826432B2 (en) | 2012-12-06 | 2014-09-02 | Airwatch, Llc | Systems and methods for controlling email access |
| US8978110B2 (en) | 2012-12-06 | 2015-03-10 | Airwatch Llc | Systems and methods for controlling email access |
| US8832785B2 (en) | 2012-12-06 | 2014-09-09 | Airwatch, Llc | Systems and methods for controlling email access |
| US8862868B2 (en) | 2012-12-06 | 2014-10-14 | Airwatch, Llc | Systems and methods for controlling email access |
| US9021037B2 (en) | 2012-12-06 | 2015-04-28 | Airwatch Llc | Systems and methods for controlling email access |
| US20150295874A1 (en) * | 2012-12-17 | 2015-10-15 | Nokia Technologies Oy | Message preloading system |
| US9473417B2 (en) | 2013-03-14 | 2016-10-18 | Airwatch Llc | Controlling resources used by computing devices |
| US20140280955A1 (en) | 2013-03-14 | 2014-09-18 | Sky Socket, Llc | Controlling Electronically Communicated Resources |
| US9819682B2 (en) | 2013-03-15 | 2017-11-14 | Airwatch Llc | Certificate based profile confirmation |
| US9148416B2 (en) | 2013-03-15 | 2015-09-29 | Airwatch Llc | Controlling physical access to secure areas via client devices in a networked environment |
| US8997187B2 (en) | 2013-03-15 | 2015-03-31 | Airwatch Llc | Delegating authorization to applications on a client device in a networked environment |
| US9275245B2 (en) | 2013-03-15 | 2016-03-01 | Airwatch Llc | Data access sharing |
| US9203820B2 (en) | 2013-03-15 | 2015-12-01 | Airwatch Llc | Application program as key for authorizing access to resources |
| US9401915B2 (en) | 2013-03-15 | 2016-07-26 | Airwatch Llc | Secondary device as key for authorizing access to resources |
| US10652242B2 (en) | 2013-03-15 | 2020-05-12 | Airwatch, Llc | Incremental compliance remediation |
| US9378350B2 (en) | 2013-03-15 | 2016-06-28 | Airwatch Llc | Facial capture managing access to resources by a device |
| US9781214B2 (en) * | 2013-04-08 | 2017-10-03 | Amazon Technologies, Inc. | Load-balanced, persistent connection techniques |
| US9787686B2 (en) | 2013-04-12 | 2017-10-10 | Airwatch Llc | On-demand security policy activation |
| US10754966B2 (en) | 2013-04-13 | 2020-08-25 | Airwatch Llc | Time-based functionality restrictions |
| US8914013B2 (en) | 2013-04-25 | 2014-12-16 | Airwatch Llc | Device management macros |
| US9123031B2 (en) | 2013-04-26 | 2015-09-01 | Airwatch Llc | Attendance tracking via device presence |
| US9426162B2 (en) | 2013-05-02 | 2016-08-23 | Airwatch Llc | Location-based configuration policy toggling |
| US9246918B2 (en) | 2013-05-10 | 2016-01-26 | Airwatch Llc | Secure application leveraging of web filter proxy services |
| US9058495B2 (en) | 2013-05-16 | 2015-06-16 | Airwatch Llc | Rights management services integration with mobile device management |
| US9900261B2 (en) | 2013-06-02 | 2018-02-20 | Airwatch Llc | Shared resource watermarking and management |
| US9584437B2 (en) | 2013-06-02 | 2017-02-28 | Airwatch Llc | Resource watermarking and management |
| US20140358703A1 (en) | 2013-06-04 | 2014-12-04 | SkySocket, LLC | Item Delivery Optimization |
| DE102013105781A1 (de) * | 2013-06-05 | 2014-12-11 | Ralf Sommer | Verfahren zur Adressierung, Authentifizierung und sicheren Datenspeicherung in Rechnersystemen |
| US9270777B2 (en) | 2013-06-06 | 2016-02-23 | Airwatch Llc | Social media and data sharing controls for data security purposes |
| US9535857B2 (en) | 2013-06-25 | 2017-01-03 | Airwatch Llc | Autonomous device interaction |
| US8924608B2 (en) | 2013-06-25 | 2014-12-30 | Airwatch Llc | Peripheral device management |
| US8806217B2 (en) | 2013-07-03 | 2014-08-12 | Sky Socket, Llc | Functionality watermarking and management |
| US8756426B2 (en) | 2013-07-03 | 2014-06-17 | Sky Socket, Llc | Functionality watermarking and management |
| US8775815B2 (en) | 2013-07-03 | 2014-07-08 | Sky Socket, Llc | Enterprise-specific functionality watermarking and management |
| US9736118B2 (en) * | 2013-07-17 | 2017-08-15 | Cisco Technology, Inc. | Session initiation protocol denial of service attack throttling |
| US9112749B2 (en) | 2013-07-25 | 2015-08-18 | Airwatch Llc | Functionality management via application modification |
| US9226155B2 (en) | 2013-07-25 | 2015-12-29 | Airwatch Llc | Data communications management |
| US9665723B2 (en) | 2013-08-15 | 2017-05-30 | Airwatch, Llc | Watermarking detection and management |
| US9516005B2 (en) | 2013-08-20 | 2016-12-06 | Airwatch Llc | Individual-specific content management |
| US10129242B2 (en) | 2013-09-16 | 2018-11-13 | Airwatch Llc | Multi-persona devices and management |
| US9185099B2 (en) | 2013-09-23 | 2015-11-10 | Airwatch Llc | Securely authorizing access to remote resources |
| US9544306B2 (en) | 2013-10-29 | 2017-01-10 | Airwatch Llc | Attempted security breach remediation |
| US9258301B2 (en) | 2013-10-29 | 2016-02-09 | Airwatch Llc | Advanced authentication techniques |
| US9306915B2 (en) * | 2013-11-05 | 2016-04-05 | General Electric Company | Systems and methods for secure file transfers |
| US9536067B1 (en) | 2014-01-01 | 2017-01-03 | Bryant Christopher Lee | Password submission without additional user input |
| US9736248B2 (en) * | 2014-11-04 | 2017-08-15 | Comcast Cable Communications, Llc | Systems and methods for data routing management |
| US9584964B2 (en) | 2014-12-22 | 2017-02-28 | Airwatch Llc | Enforcement of proximity based policies |
| US9413754B2 (en) | 2014-12-23 | 2016-08-09 | Airwatch Llc | Authenticator device facilitating file security |
| US10298561B2 (en) * | 2015-06-30 | 2019-05-21 | Vmware, Inc. | Providing a single session experience across multiple applications |
| CN107291756A (zh) | 2016-04-01 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 数据缓存的方法及装置 |
| US9917862B2 (en) | 2016-04-14 | 2018-03-13 | Airwatch Llc | Integrated application scanning and mobile enterprise computing management system |
| US9916446B2 (en) | 2016-04-14 | 2018-03-13 | Airwatch Llc | Anonymized application scanning for mobile devices |
| US10193992B2 (en) | 2017-03-24 | 2019-01-29 | Accenture Global Solutions Limited | Reactive API gateway |
| US10375100B2 (en) | 2017-10-27 | 2019-08-06 | Cisco Technology, Inc. | Identifying anomalies in a network |
| US11792288B2 (en) * | 2019-09-09 | 2023-10-17 | Extreme Networks, Inc. | Wireless network device with directional communication functionality |
| US11922297B2 (en) * | 2020-04-01 | 2024-03-05 | Vmware, Inc. | Edge AI accelerator service |
Family Cites Families (143)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5754765A (en) | 1993-11-24 | 1998-05-19 | Intel Corporation | Automatic transport detection by attempting to establish communication session using list of possible transports and corresponding media dependent modules |
| US5990810A (en) | 1995-02-17 | 1999-11-23 | Williams; Ross Neil | Method for partitioning a block of data into subblocks and for storing and communcating such subblocks |
| EP0826181A4 (en) | 1995-04-11 | 2005-02-09 | Kinetech Inc | IDENTIFYING DATA IN A DATA PROCESSING SYSTEM |
| US5850517A (en) * | 1995-08-31 | 1998-12-15 | Oracle Corporation | Communication link for client-server having agent which sends plurality of requests independent of client and receives information from the server independent of the server |
| US5590810A (en) | 1995-10-19 | 1997-01-07 | Wehbi; Ali D. | Order of participation control device |
| US5826014A (en) * | 1996-02-06 | 1998-10-20 | Network Engineering Software | Firewall system for protecting network elements connected to a public network |
| US7028049B1 (en) * | 1996-02-17 | 2006-04-11 | Allcare Health Management System, Inc. | Standing order database search system and method for internet and internet application |
| GB2311443A (en) | 1996-03-23 | 1997-09-24 | Ibm | Data message transfer in batches with retransmission |
| US5916307A (en) | 1996-06-05 | 1999-06-29 | New Era Of Networks, Inc. | Method and structure for balanced queue communication between nodes in a distributed computing application |
| US5857201A (en) * | 1996-06-18 | 1999-01-05 | Wright Strategies, Inc. | Enterprise connectivity to handheld devices |
| US5832514A (en) | 1996-06-26 | 1998-11-03 | Microsoft Corporation | System and method for discovery based data recovery in a store and forward replication process |
| US5790789A (en) | 1996-08-02 | 1998-08-04 | Suarez; Larry | Method and architecture for the creation, control and deployment of services within a distributed computer environment |
| JP3409652B2 (ja) * | 1996-09-02 | 2003-05-26 | 松下電器産業株式会社 | マルチメディア情報提供装置 |
| US6802068B1 (en) | 1996-10-16 | 2004-10-05 | International Business Machines Corporation | Addressless internetworking |
| US6178331B1 (en) * | 1997-06-17 | 2001-01-23 | Bulletin.Net, Inc. | System and process for allowing wireless messaging |
| US5987463A (en) * | 1997-06-23 | 1999-11-16 | Oracle Corporation | Apparatus and method for calling external routines in a database system |
| US6226649B1 (en) * | 1997-06-23 | 2001-05-01 | Oracle Corporation | Apparatus and method for transparent access of foreign databases in a heterogeneous database system |
| US5873104A (en) | 1997-06-26 | 1999-02-16 | Sun Microsystems, Inc. | Bounded-pause time garbage collection system and method including write barrier associated with source and target instances of a partially relocated object |
| US5895471A (en) * | 1997-07-11 | 1999-04-20 | Unwired Planet, Inc. | Providing a directory of frequently used hyperlinks on a remote server |
| US6065046A (en) | 1997-07-29 | 2000-05-16 | Catharon Productions, Inc. | Computerized system and associated method of optimally controlled storage and transfer of computer programs on a computer network |
| CA2220578A1 (en) | 1997-11-10 | 1999-05-10 | Northern Telecom Limited | Distributed service network |
| US6078948A (en) | 1998-02-03 | 2000-06-20 | Syracuse University | Platform-independent collaboration backbone and framework for forming virtual communities having virtual rooms with collaborative sessions |
| US6185598B1 (en) * | 1998-02-10 | 2001-02-06 | Digital Island, Inc. | Optimized network resource location |
| US6463463B1 (en) * | 1998-05-29 | 2002-10-08 | Research In Motion Limited | System and method for pushing calendar event messages from a host system to a mobile data communication device |
| US6196846B1 (en) * | 1998-06-02 | 2001-03-06 | Virtual Village, Inc. | System and method for establishing a data session and a voice session for training a user on a computer program |
| US6721288B1 (en) | 1998-09-16 | 2004-04-13 | Openwave Systems Inc. | Wireless mobile devices having improved operation during network unavailability |
| US7136645B2 (en) | 1998-10-09 | 2006-11-14 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
| US6397246B1 (en) * | 1998-11-13 | 2002-05-28 | International Business Machines Corporation | Method and system for processing document requests in a network system |
| US6424841B1 (en) | 1999-02-18 | 2002-07-23 | Openwave Systems Inc. | Short message service with improved utilization of available bandwidth |
| US6526493B1 (en) | 1999-03-30 | 2003-02-25 | Adaptec, Inc. | Method and apparatus for partitioning and formatting a storage media without rebooting by creating a logical device control block (DCB) on-the-fly |
| US6510550B1 (en) | 1999-05-12 | 2003-01-21 | Intel Corporation | Method and apparatus for providing intermittent connectivity support in a computer application |
| US6959291B1 (en) | 1999-05-19 | 2005-10-25 | International Business Machines Corporation | Management of a concurrent use license in a logically-partitioned computer |
| US7356494B2 (en) | 1999-05-19 | 2008-04-08 | I.D. Systems, Inc. | Robust wireless communications system architecture and asset management applications performed thereon |
| US6473794B1 (en) | 1999-05-27 | 2002-10-29 | Accenture Llp | System for establishing plan to test components of web based framework by displaying pictorial representation and conveying indicia coded components of existing network framework |
| US6289382B1 (en) | 1999-08-31 | 2001-09-11 | Andersen Consulting, Llp | System, method and article of manufacture for a globally addressable interface in a communication services patterns environment |
| US6792085B1 (en) | 1999-09-10 | 2004-09-14 | Comdial Corporation | System and method for unified messaging with message replication and synchronization |
| US7020697B1 (en) | 1999-10-01 | 2006-03-28 | Accenture Llp | Architectures for netcentric computing systems |
| US6563800B1 (en) * | 1999-11-10 | 2003-05-13 | Qualcomm, Inc. | Data center for providing subscriber access to data maintained on an enterprise network |
| US7590644B2 (en) | 1999-12-21 | 2009-09-15 | International Business Machine Corporation | Method and apparatus of streaming data transformation using code generator and translator |
| US6877023B1 (en) | 2000-01-28 | 2005-04-05 | Softwired, Inc. | Messaging system for delivering data in the form of portable message formats between message clients |
| US6704730B2 (en) | 2000-02-18 | 2004-03-09 | Avamar Technologies, Inc. | Hash file system and method for use in a commonality factoring system |
| US20020078198A1 (en) * | 2000-02-25 | 2002-06-20 | Buchbinder John E. | Personal server technology with firewall detection and penetration |
| KR100847596B1 (ko) | 2000-03-02 | 2008-07-21 | 소니 가부시끼 가이샤 | 통신망 시스템, 게이트웨이, 데이터 통신방법과 프로그램제공매체 |
| US20020049841A1 (en) | 2000-03-03 | 2002-04-25 | Johnson Scott C | Systems and methods for providing differentiated service in information management environments |
| WO2001077815A2 (en) | 2000-04-05 | 2001-10-18 | Tranceive Technologies, Inc. | Method and apparatus for profiling in a distributed application environment |
| US6687735B1 (en) | 2000-05-30 | 2004-02-03 | Tranceive Technologies, Inc. | Method and apparatus for balancing distributed applications |
| US20020002611A1 (en) | 2000-04-17 | 2002-01-03 | Mark Vange | System and method for shifting functionality between multiple web servers |
| WO2001098903A1 (en) * | 2000-06-16 | 2001-12-27 | Entriq Limited BVI Abbot Building | Methods and systems to distribute content via a network utilizing distributed conditional access agents and secure agents, and to perform digital rights management (drm) |
| WO2001098936A2 (en) | 2000-06-22 | 2001-12-27 | Microsoft Corporation | Distributed computing services platform |
| US8073954B1 (en) | 2000-07-19 | 2011-12-06 | Synchronoss Technologies, Inc. | Method and apparatus for a secure remote access system |
| US6782419B2 (en) * | 2000-07-24 | 2004-08-24 | Bandai Co., Ltd. | System and method for distributing images to mobile phones |
| WO2002021413A2 (en) | 2000-09-05 | 2002-03-14 | Zaplet, Inc. | Methods and apparatus providing electronic messages that are linked and aggregated |
| US7562147B1 (en) | 2000-10-02 | 2009-07-14 | Microsoft Corporation | Bi-directional HTTP-based reliable messaging protocol and system utilizing same |
| US7035828B2 (en) * | 2000-10-25 | 2006-04-25 | Topmoxie, Inc. | Method and system for modifying and transmitting data between a portable computer and a network |
| US6810398B2 (en) | 2000-11-06 | 2004-10-26 | Avamar Technologies, Inc. | System and method for unorchestrated determination of data sequences using sticky byte factoring to determine breakpoints in digital sequences |
| US20030054810A1 (en) * | 2000-11-15 | 2003-03-20 | Chen Yih-Farn Robin | Enterprise mobile server platform |
| US6947761B2 (en) | 2000-11-22 | 2005-09-20 | Leap Wireless International Inc. | Method and system for improving the efficiency of state information transfer over a wireless communications network |
| US6959436B2 (en) * | 2000-12-15 | 2005-10-25 | Innopath Software, Inc. | Apparatus and methods for intelligently providing applications and data on a mobile device system |
| US7085834B2 (en) * | 2000-12-22 | 2006-08-01 | Oracle International Corporation | Determining a user's groups |
| US20020095487A1 (en) * | 2001-01-18 | 2002-07-18 | Robert Day | System for registering, locating, and identifying network equipment |
| JP2002319230A (ja) | 2001-01-25 | 2002-10-31 | Sony Computer Entertainment Inc | 記録媒体、情報処理装置、コンテンツ配信サーバ、方法、プログラム、その記録媒体 |
| US6871236B2 (en) * | 2001-01-26 | 2005-03-22 | Microsoft Corporation | Caching transformed content in a mobile gateway |
| US20020111995A1 (en) | 2001-02-14 | 2002-08-15 | Mansour Peter M. | Platform-independent distributed user interface system architecture |
| US20020116472A1 (en) * | 2001-02-20 | 2002-08-22 | Niragonogo Inc. | Method and system for pushing content through cellular network |
| JP3764423B2 (ja) * | 2001-04-09 | 2006-04-05 | 株式会社エヌ・ティ・ティ・ドコモ | 通信データ量測定システム |
| US6742081B2 (en) | 2001-04-30 | 2004-05-25 | Sun Microsystems, Inc. | Data storage array employing block checksums and dynamic striping |
| WO2002102009A2 (en) * | 2001-06-12 | 2002-12-19 | Research In Motion Limited | Method for processing encoded messages for exchange with a mobile data communication device |
| GB2377135B (en) | 2001-06-28 | 2003-08-27 | Symbian Ltd | E-mail manager program for a wireless information device |
| US6983312B1 (en) * | 2001-07-16 | 2006-01-03 | At&T Corp. | Method for using scheduled hyperlinks to record multimedia content |
| US6981029B1 (en) * | 2001-07-17 | 2005-12-27 | Cisco Technology, Inc. | System and method for processing a request for information in a network |
| US6922725B2 (en) * | 2001-09-07 | 2005-07-26 | Xerox Corporation | Method and apparatus for processing document service requests originating from a mobile computing device |
| US7010581B2 (en) * | 2001-09-24 | 2006-03-07 | International Business Machines Corporation | Method and system for providing browser functions on a web page for client-specific accessibility |
| AU2002365257A1 (en) * | 2001-10-26 | 2003-07-24 | Zeosoft Corporation | Development, management of distributed clients and servers |
| US7631084B2 (en) * | 2001-11-02 | 2009-12-08 | Juniper Networks, Inc. | Method and system for providing secure access to private networks with client redirection |
| US20030115200A1 (en) * | 2001-12-13 | 2003-06-19 | Anthony John J. | Wireless application protocol for real estate data access |
| US7051180B2 (en) | 2002-01-09 | 2006-05-23 | International Business Machines Corporation | Masterless building block binding to partitions using identifiers and indicators |
| US6934835B2 (en) | 2002-01-09 | 2005-08-23 | International Business Machines Corporation | Building block removal from partitions |
| US20030177171A1 (en) * | 2002-01-22 | 2003-09-18 | Brown Bruce Loring | Electronic mail retrieval |
| US6941436B2 (en) | 2002-05-09 | 2005-09-06 | International Business Machines Corporation | Method and apparatus for managing memory blocks in a logical partitioned data processing system |
| US6976146B1 (en) | 2002-05-21 | 2005-12-13 | Network Appliance, Inc. | System and method for emulating block appended checksums on storage devices by sector stealing |
| US7209466B2 (en) | 2002-06-06 | 2007-04-24 | Symbol Technologies, Inc. | Software method utilizing gateways for maintaining connectivity during communications over distinct wireless networks by mobile computer terminals |
| US7269173B2 (en) | 2002-06-26 | 2007-09-11 | Intel Corporation | Roaming in a communications network |
| US8301884B2 (en) * | 2002-09-16 | 2012-10-30 | Samsung Electronics Co., Ltd. | Method of managing metadata |
| KR100462886B1 (ko) | 2002-10-15 | 2004-12-17 | 삼성전자주식회사 | 부하 분담 구조와 프라이머리/백업 구조가 혼합된 시스템 |
| JP2004146961A (ja) * | 2002-10-23 | 2004-05-20 | Nec Corp | 移動通信システム、携帯電話装置及びそれらに用いるスケジュール登録方法並びにそのプログラム |
| US8176186B2 (en) | 2002-10-30 | 2012-05-08 | Riverbed Technology, Inc. | Transaction accelerator for client-server communications systems |
| US7120666B2 (en) | 2002-10-30 | 2006-10-10 | Riverbed Technology, Inc. | Transaction accelerator for client-server communication systems |
| US6667700B1 (en) | 2002-10-30 | 2003-12-23 | Nbt Technology, Inc. | Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation |
| US7366796B2 (en) * | 2002-11-05 | 2008-04-29 | Microsoft Corporation | Method and levels of ping notification |
| US6928526B1 (en) | 2002-12-20 | 2005-08-09 | Datadomain, Inc. | Efficient data storage system |
| US7065619B1 (en) | 2002-12-20 | 2006-06-20 | Data Domain, Inc. | Efficient data storage system |
| US7363349B2 (en) * | 2003-01-31 | 2008-04-22 | Visto Corporation | Asynchronous real-time retrieval of data |
| US9197668B2 (en) | 2003-02-28 | 2015-11-24 | Novell, Inc. | Access control to files based on source information |
| KR20040091392A (ko) | 2003-04-21 | 2004-10-28 | 주식회사 에트피아텍 | 웹을 이용한 원격 백업관리 시스템 및 그 시스템을 운용한백업관리 방법 |
| US7792933B2 (en) * | 2003-07-03 | 2010-09-07 | Cadence Design Systems, Inc. | System and method for performing design verification |
| CN1567303A (zh) | 2003-07-03 | 2005-01-19 | 富士通株式会社 | 结构文档信息块的自动分割方法和装置 |
| US20060047855A1 (en) | 2004-05-13 | 2006-03-02 | Microsoft Corporation | Efficient chunking algorithm |
| BRPI0418877B1 (pt) | 2004-05-31 | 2020-03-17 | Telecom Italia S.P.A. | Método e sistema para habilitar um usuário a se comunicar em uma rede privada virtual através de uma rede de comunicação pública, e, rede de comunicação pública |
| US7757074B2 (en) | 2004-06-30 | 2010-07-13 | Citrix Application Networking, Llc | System and method for establishing a virtual private network |
| US7487138B2 (en) | 2004-08-25 | 2009-02-03 | Symantec Operating Corporation | System and method for chunk-based indexing of file system content |
| US20060069733A1 (en) | 2004-09-30 | 2006-03-30 | Microsoft Corporation | Detection and removal of information in files |
| TWI274297B (en) | 2004-11-19 | 2007-02-21 | Aiptek Int Inc | Method for deciding partition types of macro block |
| US7382758B2 (en) | 2004-11-30 | 2008-06-03 | Motorola, Inc. | Medium access control for simultaneous channel communications |
| US7460857B2 (en) * | 2005-01-21 | 2008-12-02 | Roach Jr Peter O | Method and apparatus for providing information in response to a delayed grant of subscriber permission |
| US20060212439A1 (en) | 2005-03-21 | 2006-09-21 | Microsoft Corporation | System and method of efficient data backup in a networking environment |
| US8984636B2 (en) | 2005-07-29 | 2015-03-17 | Bit9, Inc. | Content extractor and analysis system |
| US7447865B2 (en) | 2005-09-13 | 2008-11-04 | Yahoo ! Inc. | System and method for compression in a distributed column chunk data store |
| US7624335B1 (en) | 2005-10-13 | 2009-11-24 | Data Domain, Inc. | Verifying a file in a system with duplicate segment elimination using segmention-independent checksums |
| GB0520836D0 (en) | 2005-10-13 | 2005-11-23 | Scansafe Ltd | Remote access to resources |
| WO2008048304A2 (en) | 2005-12-01 | 2008-04-24 | Firestar Software, Inc. | System and method for exchanging information among exchange applications |
| US7546321B2 (en) | 2005-12-19 | 2009-06-09 | Yahoo! Inc. | System and method for recovery from failure of a storage server in a distributed column chunk data store |
| US7472242B1 (en) | 2006-02-14 | 2008-12-30 | Network Appliance, Inc. | Eliminating duplicate blocks during backup writes |
| US7562186B2 (en) | 2006-04-11 | 2009-07-14 | Data Domain, Inc. | Efficient data storage using resemblance of data segments |
| US7949824B2 (en) | 2006-04-11 | 2011-05-24 | Emc Corporation | Efficient data storage using two level delta resemblance |
| US7504969B2 (en) | 2006-07-11 | 2009-03-17 | Data Domain, Inc. | Locality-based stream segmentation for data deduplication |
| US7970216B2 (en) | 2006-08-24 | 2011-06-28 | Dell Products L.P. | Methods and apparatus for reducing storage size |
| US7881544B2 (en) | 2006-08-24 | 2011-02-01 | Dell Products L.P. | Methods and apparatus for reducing storage size |
| US7974478B2 (en) | 2006-08-24 | 2011-07-05 | Dell Products L.P. | Methods and apparatus for reducing storage size |
| US7936932B2 (en) | 2006-08-24 | 2011-05-03 | Dell Products L.P. | Methods and apparatus for reducing storage size |
| US7961959B2 (en) | 2006-08-24 | 2011-06-14 | Dell Products L.P. | Methods and apparatus for reducing storage size |
| JP2008085470A (ja) | 2006-09-26 | 2008-04-10 | Fujitsu Ltd | Ipアプリケーションサービス提供システム |
| KR100834574B1 (ko) | 2006-09-29 | 2008-06-02 | 한국전자통신연구원 | 파일 저장 시스템 및 그 시스템에서의 파일 저장 및 검색방법 |
| US7733910B2 (en) | 2006-12-29 | 2010-06-08 | Riverbed Technology, Inc. | Data segmentation using shift-varying predicate function fingerprinting |
| US8166012B2 (en) | 2007-04-11 | 2012-04-24 | Emc Corporation | Cluster storage using subsegmenting |
| US8768895B2 (en) | 2007-04-11 | 2014-07-01 | Emc Corporation | Subsegmenting for efficient storage, resemblance determination, and transmission |
| US8942219B2 (en) | 2007-04-13 | 2015-01-27 | Hart Communication Foundation | Support for network management and device communications in a wireless network |
| US9930099B2 (en) | 2007-05-08 | 2018-03-27 | Riverbed Technology, Inc. | Hybrid segment-oriented file server and WAN accelerator |
| US8209506B2 (en) | 2007-09-05 | 2012-06-26 | Emc Corporation | De-duplication in a virtualized storage environment |
| US8880797B2 (en) | 2007-09-05 | 2014-11-04 | Emc Corporation | De-duplication in a virtualized server environment |
| US7870409B2 (en) | 2007-09-26 | 2011-01-11 | Hitachi, Ltd. | Power efficient data storage with data de-duplication |
| US8447938B2 (en) | 2008-01-04 | 2013-05-21 | International Business Machines Corporation | Backing up a deduplicated filesystem to disjoint media |
| US8224831B2 (en) | 2008-02-27 | 2012-07-17 | Dell Products L.P. | Virtualization of metadata for file optimization |
| US8219534B2 (en) | 2008-02-27 | 2012-07-10 | Dell Products L.P. | Multiple file compaction for network attached storage |
| US8516002B2 (en) | 2008-03-21 | 2013-08-20 | Dell Products L.P. | Deflate file data optimization |
| US7933939B2 (en) | 2008-04-16 | 2011-04-26 | Quantum Corporation | Apparatus and method for partitioning data blocks |
| US8001329B2 (en) | 2008-05-19 | 2011-08-16 | International Business Machines Corporation | Speculative stream scanning |
| US7864083B2 (en) | 2008-05-21 | 2011-01-04 | Ocarina Networks, Inc. | Efficient data compression and decompression of numeric sequences |
| EP2316071A4 (en) | 2008-06-19 | 2011-08-17 | Servicemesh Inc | CLOUD DATA PROCESSING GATEWAY, CLOUD DATA PROCESSING HYPERVISOR, AND METHOD FOR IMPLEMENTING THEM |
| US8682845B2 (en) | 2008-07-09 | 2014-03-25 | The Boeing Company | Secure high performance multi-level security database systems and methods |
| AU2009335697A1 (en) | 2008-12-18 | 2011-08-04 | Copiun, Inc. | Methods and apparatus for content-aware data partitioning and data de-duplication |
| WO2011113042A2 (en) | 2010-03-12 | 2011-09-15 | Copiun, Inc. | Distributed catalog, data store, and indexing |
| WO2011116087A2 (en) | 2010-03-16 | 2011-09-22 | Copiun, Inc. | Highly scalable and distributed data de-duplication |
| EP2609517B1 (en) | 2010-08-24 | 2020-04-01 | BlackBerry Limited | Constant access gateway and de-duplicated data cache server |
-
2004
- 2004-02-02 US US10/770,841 patent/US7363349B2/en not_active Expired - Lifetime
- 2004-02-02 EP EP04707416A patent/EP1634162B1/en not_active Expired - Lifetime
- 2004-02-02 WO PCT/US2004/002902 patent/WO2004070568A2/en not_active Ceased
- 2004-02-02 ES ES10169425T patent/ES2409936T3/es not_active Expired - Lifetime
- 2004-02-02 AT AT04707416T patent/ATE474261T1/de not_active IP Right Cessation
- 2004-02-02 EP EP10169425A patent/EP2325743B1/en not_active Expired - Lifetime
- 2004-02-02 DE DE602004028121T patent/DE602004028121D1/de not_active Expired - Lifetime
- 2004-02-02 ES ES04707416T patent/ES2348260T3/es not_active Expired - Lifetime
-
2008
- 2008-01-22 US US12/017,536 patent/US20080133712A1/en not_active Abandoned
-
2010
- 2010-02-18 US US12/708,277 patent/US8041776B2/en not_active Expired - Lifetime
-
2011
- 2011-09-06 US US13/225,786 patent/US8478829B2/en not_active Expired - Fee Related
-
2013
- 2013-06-21 US US13/923,885 patent/US9059956B2/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| WO2004070568A3 (en) | 2005-03-31 |
| US9059956B2 (en) | 2015-06-16 |
| US20110320552A1 (en) | 2011-12-29 |
| US20100146072A1 (en) | 2010-06-10 |
| WO2004070568A2 (en) | 2004-08-19 |
| ES2409936T3 (es) | 2013-06-28 |
| EP1634162A2 (en) | 2006-03-15 |
| DE602004028121D1 (de) | 2010-08-26 |
| US20080133712A1 (en) | 2008-06-05 |
| US8478829B2 (en) | 2013-07-02 |
| ATE474261T1 (de) | 2010-07-15 |
| US7363349B2 (en) | 2008-04-22 |
| EP1634162A4 (en) | 2007-05-23 |
| US20050027818A1 (en) | 2005-02-03 |
| EP1634162B1 (en) | 2010-07-14 |
| US20130282849A1 (en) | 2013-10-24 |
| EP2325743B1 (en) | 2012-12-19 |
| US8041776B2 (en) | 2011-10-18 |
| EP2325743A1 (en) | 2011-05-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2409936T3 (es) | Recuperación asíncrona de datos en tiempo real | |
| ES2523100T3 (es) | Un sistema de comunicación directa multimedia enlazado con el protocolo http | |
| EP0992145B1 (en) | Method of operating an authenticating server system and such a system | |
| CA2636780C (en) | Method and device for anonymous encrypted mobile data and speech communication | |
| EP1284570B1 (en) | System and method for pushing encrypted information between a host system and a mobile data communication device | |
| US7912896B2 (en) | Data access, replication or communication system comprising a distributed software application | |
| JP4386732B2 (ja) | モバイルネットワークの接続アーキテクチャ | |
| US7233997B1 (en) | Data communications | |
| EP0989712A2 (en) | Method and apparatus for establishing a secure connection over a one-way data path | |
| JP2003078570A (ja) | サービス提供方法、中継装置及びサービス提供装置 | |
| US7746824B2 (en) | Method and apparatus for establishing multiple bandwidth-limited connections for a communication device | |
| US20020194295A1 (en) | Scalable data-sharing architecture | |
| ES2864249T3 (es) | Método y sistema para la determinación de una configuración de una interfaz | |
| JP2006277752A (ja) | コンピュータ遠隔管理方法 | |
| ES2360178T3 (es) | Método y aparato para empujar correo electrónico hacia dispositivos de comunicación inalámbricos. | |
| JP2005073051A (ja) | 中継装置およびその中継プログラム | |
| ES2364658T3 (es) | Pasarela segura que tiene identificación de usuario y autentificación por contraseña. | |
| HK1055650B (en) | System and method for pushing encrypted information between a host system and a mobile data communication device |