ES2353255T3 - Sistema y mã‰todo para acceder de manera global y segura a informaciã“n unificada en una red de ordenadores. - Google Patents

Sistema y mã‰todo para acceder de manera global y segura a informaciã“n unificada en una red de ordenadores. Download PDF

Info

Publication number
ES2353255T3
ES2353255T3 ES98936975T ES98936975T ES2353255T3 ES 2353255 T3 ES2353255 T3 ES 2353255T3 ES 98936975 T ES98936975 T ES 98936975T ES 98936975 T ES98936975 T ES 98936975T ES 2353255 T3 ES2353255 T3 ES 2353255T3
Authority
ES
Spain
Prior art keywords
workspace
service
access
remote terminal
data
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
Application number
ES98936975T
Other languages
English (en)
Inventor
Christine C. Ying
Daniel J. Mendez
Sean Michael Quinlan
David J. Cowan
Mark D. Riggins
Hong Q. Bui
Christopher R. Zuleeg
Prasad Wagle
R. Stanley Bailes
Mason Ng
Joanna A. Aptekar-Strober
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Good Technology Corp
Original Assignee
Visto Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Visto Corp filed Critical Visto Corp
Application granted granted Critical
Publication of ES2353255T3 publication Critical patent/ES2353255T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network 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 wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Abstract

Sistema de servidor capaz de proporcionar, a un terminal remoto solicitante (105), acceso a un servicio (615) proporcionado por un motor de servicios (175) y a un elemento de espacio de trabajo sincronizado de datos de espacio de trabajo, comprendiendo el sistema de servidor un servidor global (115) que incluye: un soporte de almacenamiento (350) que almacena una dirección (620) que apunta a dicho servicio; una interfaz de comunicaciones (340) para establecer un enlace de comunicaciones con el fin de comunicarse con el terminal remoto; un motor de servicios solicitados (389, 395) acoplado a la interfaz de comunicaciones (340) para recibir una solicitud de datos de configuración (356) con el fin de acceder a dicho servicio (615) desde el terminal remoto (105), y para transmitir datos de configuración (356) hacia el terminal remoto; unos medios habilitadores de acceso acoplados al soporte de almacenamiento y a la interfaz de comunicaciones para habilitar el acceso a dicho servicio por parte del terminal remoto, habilitándose dicho acceso sobre la base de dicha dirección almacenada (620) y como respuesta a una solicitud de acceso al servicio (615) del terminal remoto, generándose dicha solicitud de acceso sobre la base de los datos de configuración transmitidos; y unos medios de sincronización (145) para sincronizar un original, modificable independientemente, de un elemento de espacio de trabajo de un primer conjunto de datos de espacio de trabajo (180) y una copia, modificable independientemente, de dicho elemento de espacio de trabajo de un segundo conjunto de datos de espacio de trabajo (163) para generar dicho elemento de espacio de trabajo sincronizado, almacenándose dicho primer conjunto de datos de espacio de trabajo en un dispositivo informático (165, 167), diferente al terminal remoto (105), que es un cliente del servidor global (115), y almacenándose dicho segundo conjunto de datos de espacio de trabajo en el servidor global (115), en el que dicho motor de servicios (175) está en dicho dispositivo informático (165, 167) y el servicio (615) se refiere a datos de espacio de trabajo de dicho primer conjunto de datos de espacio de trabajo.

Description

Antecedentes de la invención
1.
Campo de la invención
La presente invención se refiere en general a redes de ordenadores, y más particularmente proporciona un sistema y un método para acceder de manera global y segura a información unificada, en una red de ordenadores.
2.
Descripción de la técnica anterior
Internet en la actualidad interconecta aproximadamente 100.000 redes de ordenadores y varios millones de ordenadores. Cada uno de estos ordenadores almacena numerosos programas de aplicación para proporcionar numerosos servicios, tales como generar, enviar y recibir correo electrónico, acceder a sitios de la Malla Multimedia Mundial, generar y recibir documentos de facsímil, almacenar y recuperar datos, etcétera.
Un usuario itinerante, es decir, un usuario que se desplaza y accede a una estación de trabajo de manera remota, se enfrenta a varios problemas. Los diseñadores de programas han desarrollado técnicas de comunicación para permitir que el usuario itinerante establezca un enlace de comunicaciones y descargue información necesaria y programas necesarios de aplicación de servicios desde la estación de trabajo remota hacia un ordenador local. Usando estas técnicas, el usuario itinerante puede manipular los datos en la estación de trabajo remota y, cuando ha finalizado, puede cargar los datos manipulados, desde la estación remota de vuelta hacia el ordenador local. No obstante, los ordenadores lentos y los canales de comunicación lentos hacen que la descarga de archivos y programas grandes sea un proceso que consume mucho tiempo. Además, la descarga de archivos y programas a través de canales no seguros amenaza fuertemente la integridad y la confidencialidad de los datos descargados.
La coherencia de los datos es también una preocupación significativa para el usuario itinerante. Por ejemplo, cuando se mantienen múltiples copias de un documento modificables de manera independiente, un usuario corre el riesgo de usar una versión anticuada. Para cuando el usuario haya percibido una inconsistencia, ya puede haberse producido un fallo de comunicación entre las partes o una pérdida de datos. El usuario debe pasar entonces más tiempo intentando conciliar las versiones incoherentes y haciendo frente a cualquier fallo de las comunicaciones.
El problema de la incoherencia de los datos se acentúa cuando se mantienen múltiples copias de un documento en diferentes ubicaciones de la red. Por ejemplo, debido a sistemas de seguridad de las redes, tales como la tecnología convencional de los cortafuegos, un usuario puede tener acceso únicamente a una ubicación particular de estas ubicaciones de la red. Sin acceder a los otros sitios, el usuario no puede confirmar que la versión en el sitio accesible sea el anteproyecto más reciente.
También pueden surgir problemas de incoherencia de datos cuando se usan programas de aplicación de
diferentes proveedores. Por ejemplo, el motor web Netscape Navigator™ y el motor web Internet Explorer™ almacenan,
cada uno de ellos, marcadores para obtener una referencia rápida a sitios web interesantes. No obstante, puesto que cada motor web usa formatos diferentes y almacena marcadores en archivos diferentes, los marcadores no son intercambiables. Adicionalmente, un motor web puede almacenar un marcador necesario, y el otro puede que no lo
almacene. Un usuario que, por ejemplo, ejecuta el motor web Internet Explorer™ en su casa y ejecuta el motor web Netscape Navigator™ en el trabajo corre el riesgo de tener marcadores incoherentes en cada ubicación.
La patente US nº 5.647.002 describe un sistema que comprende un servidor de correo electrónico y un servidor de correo de voz. El contenido de los buzones gestionados por los dos sistemas de los servidores está sincronizado por un sincronizador. El software de cliente destinado a ser usado en el acceso a mensajes mantenidos por un servidor de correo respectivo se configura con la dirección del sistema del servidor de mensajes: cada servidor proporciona acceso a solamente un servicio, y descarga mensajes individuales al producirse la solicitud al cliente. El sincronizador sirve para garantizar que cualquier mensaje que llega al servidor de correo de voz aparece en el buzón de correo electrónico y viceversa. De esta manera, el cliente únicamente necesita acceder a un sistema de servidor para informarse sobre mensajes recibidos por cualquiera de los sistemas.
El documento WO96/17306 describe un sistema en el que se proporcionan servicios, tales como servicios de películas bajo demanda, a un dispositivo de cliente, tal como una caja particular del televisor, a través de un servidor de medios. La caja particular del televisor genera una solicitud de un servicio, incluyendo la solicitud una dirección lógica del servidor que proporciona el servicio solicitado, y envía la solicitud a través del servidor de medios; la comunicación posterior entre el servidor y la caja particular del televisor se encamina a través del servidor de medios. Esto permite que el cliente acceda a múltiples servicios a través de un único servidor, a saber, el servidor de medios, lo cual significa que se pueden asignar servicios de fondo (en inglés, “backend”) a los servidores de servicio, permitiendo que el dispositivo de cliente concentre sus recursos en la presentación.
Por lo tanto, son necesarios un sistema y un método para posibilitar que múltiples usuarios accedan a servicios de ordenador de manera remota sin consumir un tiempo excesivo del usuario, sin amenazar de manera importante la integridad y la confidencialidad de los datos, y sin comprometer la coherencia de los datos.
La presente invención proporciona un sistema y métodos para proporcionar un acceso global y seguro a servicios y a elementos unificados (sincronizados) del espacio de trabajo en una red de ordenadores.
Estos sistemas y métodos se exponen en las reivindicaciones adjuntas. Un usuario puede obtener acceso a un servidor global usando cualquier terminal, que se conecta a través de una red de ordenadores, tal como Internet, al servidor global y que está habilitado con un motor web. Un cliente almacena un primer conjunto de datos de espacio de trabajo, y se acopla a través de una red de ordenadores a un servidor global. El cliente se configura para sincronizar porciones seleccionadas del primer conjunto de datos de espacio de trabajo (que comprenden elementos de espacio de trabajo) con el servidor global, que almacena copias, modificables independientemente, de las porciones seleccionadas. El servidor global puede almacenar también datos de espacio de trabajo no recibidos desde el cliente, tales como correo electrónico enviado directamente al servidor global. Por consiguiente, el servidor global almacena un segundo conjunto de datos de espacio de trabajo. El servidor global se configura para identificar y autenticar a un usuario que intenta acceder al mismo desde un terminal remoto, y se configura para proporcionar acceso basándose en la configuración del cliente o bien al primer conjunto de datos de espacio de trabajo almacenados en el cliente o bien al segundo conjunto de datos de espacio de trabajo almacenados en el servidor global. Se apreciará que el servidor global puede gestionar múltiples clientes y puede sincronizar datos de espacio de trabajo entre clientes.
En cualquier lugar en la red de ordenadores, incluyendo en el cliente, en el servidor global o en cualquier otro ordenador, se pueden almacenar motores de servicios para gestionar servicios tales como la gestión de correos electrónicos, el acceso a marcadores, calendarios, acceso a redes, etcétera. El servidor global se configura para proporcionar al usuario acceso a servicios, que, basándose en la gestión del nivel de autenticación o en preferencias del usuario, pueden incluir solamente un subconjunto de servicios disponibles. Al producirse la recepción de una solicitud de servicio desde el cliente, el servidor global envía información de configuración para permitir el acceso al servicio.
Cada cliente incluye un sistema de base y el servidor global incluye un agente de sincronización. El sistema de base y el agente de sincronización establecen automáticamente una conexión segura entre ellos y sincronizan las porciones seleccionadas del primer conjunto de datos de espacio de trabajo almacenados en el cliente y el segundo conjunto de datos de espacio de trabajo almacenados en el servidor global. El sistema de base actúa sobre el cliente y examina las porciones seleccionadas para determinar si se ha modificado cualquier elemento de espacio de trabajo desde la última sincronización. El agente de sincronización actúa sobre el servidor global e informa al sistema de base si se ha modificado cualquiera de los elementos de espacio de trabajo en el segundo conjunto. A continuación, se puede intercambiar la versión modificada de manera que en ambas modificaciones se puede almacenar un conjunto actualizado de elementos de espacio de trabajo, y de manera que el usuario remoto puede acceder a una base de datos actualizada. Si existe un conflicto entre dos versiones, el sistema de base ejecuta entonces una acción de reacción, tal como examinar el contenido y generar una versión preferida, que se puede almacenar en ambas ubicaciones. El sistema puede incluir además un módulo de inicio de sincronización en el sitio del cliente (que puede estar protegido por un cortafuegos) que dé inicio a la interconexión y la sincronización cuando se hayan cumplido criterios predeterminados.
Un método de la presente invención incluye establecer un enlace de comunicaciones entre el cliente y el servidor global. El método incluye establecer un enlace de comunicaciones entre el cliente y un servicio sobre la base de solicitudes del usuario. El método recibe datos de configuración y usa los datos de configuración para configurar los componentes del cliente, tales como el sistema operativo, el motor web y otros componentes. La configuración de los componentes del cliente permite que el cliente se comunique con el servicio y proporciona una interfaz de usuario específica del usuario-y-servicio en el cliente. El establecimiento de un enlace de comunicaciones puede incluir también la confirmación de privilegios de acceso.
Otro método utiliza un traductor global para sincronizar elementos de espacio de trabajo. El método incluye las etapas de seleccionar elementos de espacio de trabajo para la sincronización, establecer un enlace de comunicaciones entre un cliente y un servidor global, examinar información de versiones para cada uno de los elementos de espacio de trabajo en el cliente y en el servidor global con el fin de determinar elementos de espacio de trabajo que han sido modificados desde la última sincronización. El método continúa con la comparación de las versiones correspondientes y con la ejecución de una acción de reacción. Las acciones de reacción pueden incluir almacenar la versión preferida en ambos medios de almacenamiento o conciliar las versiones usando un análisis basado en el contenido.
El sistema y métodos de la presente invención proporcionan de forma ventajosa un tercer participante, seguro y accesible de forma global, es decir, el servidor global. El sistema y los métodos proporcionan una técnica segura para permitir que un usuario acceda al servidor global y, por lo tanto, a datos de espacio de trabajo, de manera remota y segura. Debido al cortafuegos global y a los servicios de identificación y seguridad realizados por el servidor global, las empresas pueden almacenar información relativamente secreta en el servidor global para que sea usada por clientes autorizados. Sin embargo, la presente invención permite también que las empresas mantengan solamente una porción de su información secreta en el servidor global, de manera que solamente se produciría una pérdida limitada en caso de que el servidor global se viera comprometido. Además, el servidor global puede actuar de forma ventajosa como cliente proxy para controlar el acceso a servicios, registrar el uso de claves y registrar el acceso de recursos.
5
10
15
20
25
30
35
40
45
50
Un usuario cliente que mantiene un sitio en el trabajo, un sitio en casa, un sitio fuera y el sitio del servidor global puede sincronizar de forma segura los datos de espacio de trabajo o porciones de los mismos entre la totalidad de los cuatro sitios. Además, los criterios predeterminados (que controlan cuándo el módulo de inicio de sincronización inicia la sincronización) se pueden fijar de manera que el módulo de sincronización general sincronice los datos de espacio de trabajo al producirse una solicitud del usuario, en momentos predeterminados durante el día tales como mientras el usuario realiza sus desplazamientos diarios, o después de una acción predeterminada del usuario tal como un cierre o un inicio de sesión del usuario. Debido a que el sistema y el método funcionan a través de Internet, el sistema es accesible usando cualquier terminal conectado que tenga un motor web, tal como un teléfono inteligente habilitado para Internet, un adaptador particular del televisor (por ejemplo, TV web), etcétera, y es accesible a través de cualquier distancia. Puesto que el sistema y el método incluyen traducción de formatos, es posible la fusión de elementos de espacio de trabajo entre programas de aplicación diferentes y plataformas diferentes. Además, puesto que la sincronización se inicia desde dentro del cortafuegos, el cortafuegos típico, que evita comunicaciones entrantes y solamente algunos protocolos de comunicaciones salientes, no actúa como un impedimento para la sincronización de los elementos de espacio de trabajo.
Además, a un usuario itinerante se le puede habilitar para acceder a datos de espacio de trabajo desde el servidor global o se le puede habilitar para acceder a un servicio con el fin de tener acceso a datos de espacio de trabajo desde un cliente. Por ejemplo, un usuario puede preferir no almacenar información personal en el servidor global aunque puede que prefiera tener acceso remoto a la información. Además, el usuario puede preferir almacenar elementos altamente confidenciales de espacio de trabajo en el cliente, en el trabajo, como un incremento de la seguridad en caso de que el servidor global se viera comprometido.
La presente invención puede beneficiar además al usuario itinerante que necesita un acceso de emergencia a información. El usuario itinerante puede solicitar a un director de los Sistemas de Información de Gestión (MIS) que controle al cliente para proporcionar al servidor global las claves correctas para permitir el acceso a la información en el cliente. Si únicamente se desea un acceso temporal, las claves se pueden destruir entonces posteriormente o bien de manera automática o bien tras una solicitud. Como alternativa, el director de MIS puede seleccionar la información necesaria como elementos de espacio de trabajo a sincronizar y puede solicitar una sincronización inmediata con el servidor global. Por consiguiente, el servidor global y el cliente pueden sincronizar la información necesaria, y el usuario puede acceder a la información desde el servidor global después de que haya completado la sincronización.
La presente invención permite también que el sistema y los métodos sincronicen claves, servicios disponibles y direcciones de servicio correspondientes con el fin de actualizar la accesibilidad de datos y servicios de espacio de trabajo. Por ejemplo, si el usuario de un cliente accede a un sitio en Internet que requiere un certificado digital y el usuario obtiene el certificado, el sistema y los métodos de la presente invención pueden sincronizar este certificado recién obtenido con las claves almacenadas en el servidor global. De este modo, el usuario no necesita contactar con el servidor global para proporcionarle la información. Los medios de sincronización sincronizarán la información automáticamente.
Breve descripción de los dibujos
La FIG. 1 es un diagrama de bloques que ilustra una red segura de sincronización de datos, accesible de forma remota, de acuerdo con la presente invención;
la FIG. 2 es un diagrama de bloques que ilustra detalles de un terminal remoto de la FIG. 1;
la FIG. 3 es un diagrama de bloques que ilustra detalles de un servidor global de la FIG. 1;
la FIG. 4 es un diagrama de bloques que ilustra detalles de un agente de sincronización de la FIG. 1;
la FIG. 5 es una representación gráfica de un marcador de ejemplo en formato global;
la FIG. 6 es una representación gráfica de los datos de configuración de la FIG. 3;
la FIG. 7 es un diagrama de bloques que ilustra los detalles de un cliente de la FIG. 1;
la FIG. 8 es un diagrama de bloques que ilustra los detalles de un sistema de base de la FIG. 1;
la FIG. 9 ilustra una vista de servicios de ejemplo;
la FIG. 10 es un diagrama de flujo que ilustra un método para acceder de forma remota a un servidor seguro;
la FIG. 11 es un diagrama de flujo que ilustra detalles de la etapa de la FIG. 10 para crear un enlace entre un cliente y un servidor global;
la FIG. 12 es un diagrama de flujo que ilustra detalles de la etapa de la FIG. 10 para proporcionar acceso a un servicio en una primera forma de realización;
la FIG. 14 es un diagrama de flujo que ilustra detalles de la etapa de la FIG. 10 para proporcionar acceso a un servicio en una tercera forma de realización; y
la FIG. 15 es un diagrama de flujo que ilustra un método para sincronizar múltiples copias de un elemento de espacio de trabajo a través de una red segura.
Descripción detallada de la forma de realización preferida
La FIG. 1 es un diagrama de bloques que ilustra una red 100, que comprende un primer sitio, tal como un terminal de ordenador remoto 105 acoplado a través de un canal de comunicaciones 110 a un servidor global 115. El servidor global 115 está acoplado a su vez, a través de un canal de comunicaciones 120, a un segundo sitio, tal como una Red de Área Local (LAN) 125, y a través de un canal de comunicaciones 122 a un tercer sitio, tal como el cliente
167. Al canal de comunicaciones 110, al canal de comunicaciones 120 y al canal de comunicaciones 122 se les puede hacer referencia como componentes de una red de ordenadores, tal como Internet. El servidor global 115 está protegido por un cortafuegos global 130, y la LAN 125 está protegida por un cortafuegos de LAN 135.
La LAN 125 comprende un cliente 165, que incluye un sistema de base 170 para sincronizar datos de espacio de trabajo 180 (datos de correo electrónico, datos de archivos, datos de calendario, datos de usuario, etcétera) con el servidor global 115, y puede incluir un motor de servicios 175 para proporcionar servicios de ordenador, tales como planificación, correo electrónico, búsqueda, procesado de textos o similares. Aquellos expertos en la materia reconocerán que los datos de espacio de trabajo 180 pueden incluir otros tipos de datos, tales como programas de aplicación. Se apreciará además que los datos de espacio de trabajo 180 se pueden dividir, cada uno de ellos, en elementos de espacio de trabajo, en donde cada elemento de espacio de trabajo puede estar identificado por información de versión 782 particular (FIG. 7). Por ejemplo, a cada correo electrónico, archivo, calendario, etcétera, se le puede hacer referencia como “un elemento de espacio de trabajo en los datos de espacio de trabajo”. Para simplificar, a cada elemento de espacio de trabajo en el cliente 165 se le hace referencia en el presente documento como almacenado en formato A. Se apreciará además que los datos de espacio de trabajo 180 ó porciones de los mismos se pueden almacenar en ubicaciones diferentes, tales como localmente en el cliente 165, en otros sistemas en la LAN 125 ó en otros sistemas (no mostrados) conectados al servidor global 115.
El cliente 167 es similar al cliente 165. No obstante, a los datos de espacio de trabajo almacenados en el cliente 167 se les hace referencia como almacenados en el formato B, que puede ser igual o diferente al formato A. Todos los aspectos descritos con anterioridad y posteriormente en referencia al cliente 165 son posibles también con respecto al cliente 167. Por ejemplo, el cliente 167 puede incluir servicios (no representados) accesibles desde el terminal remoto 105, puede incluir un sistema de base (no representado) para sincronizar elementos de espacio de trabajo con el servidor global 115, etcétera.
El servidor global 115 incluye un sistema de seguridad 160 para proporcionar solamente a un usuario autorizado acceso seguro a través de cortafuegos a servicios. El sistema de seguridad 160 puede ejecutar servicios de identificación y autenticación y, por consiguiente, puede permitir múltiples niveles de acceso sobre la base del nivel de identificación y autenticación. El servidor global 115 incluye además un sistema de configuración 155 que descarga datos de configuración 356 (FIGS. 3 y 6) hacia el terminal remoto 105 para configurar componentes del terminal remoto 105, tales como el sistema operativo 270 (FIG. 2), el motor web 283 (FIG. 2), el motor de miniaplicaciones 290 (FIG. 2), etcétera. El sistema de configuración 155 usa los datos de configuración 356 para permitir que el terminal remoto 105 acceda a los servicios proporcionados por el motor de servicios 175 y para proporcionar una interfaz de usuario específica del usuario-y-servicio.
El servidor global 115 almacena datos de espacio de trabajo 163, que incluyen una copia modificable independientemente de cada elemento seleccionado de espacio de trabajo en las porciones seleccionadas de los datos de espacio de trabajo 180. Por consiguiente, los datos de espacio de trabajo 163 incluyen una copia modificable independientemente de cada información de versión 782 correspondiente (FIG. 7). Los datos de espacio de trabajo 163 también pueden incluir elementos de espacio de trabajo que se originan en el servidor global 115, tales como correos electrónicos enviados directamente al servidor global 115 ó elementos de espacio de trabajo que se descargan desde otro cliente (no mostrado). El servidor global 115 mantiene los datos de espacio de trabajo 163 en un formato, al que se hace referencia como “formato global”, el cual se selecciona de manera que sea fácilmente traducible por el traductor global 150 hacia y desde el formato A y hacia y desde el formato B. Tal como con el formato A y el formato B, los expertos en la materia saben que el formato global incluye en realidad un formato global para cada tipo de información. Por ejemplo, puede haber un formato global para marcadores (FIG. 5), un formato global para archivos, un formato global para datos de calendario, un formato global para correos electrónicos, etcétera.
El servidor global 115 incluye también un agente de sincronización 145 para examinar los elementos de espacio de trabajo de los datos de espacio de trabajo 163. Más particularmente, el sistema de base 170 y el agente de sincronización 145, a los que se hace referencia en conjunto, en el presente documento, como “medios de sincronización”, cooperan para sincronizar los datos de espacio de trabajo 163 con las porciones seleccionadas de los datos de espacio de trabajo 180. Los medios de sincronización pueden sincronizar individualmente elementos de espacio de trabajo (por ejemplo, documentos específicos del procesador de textos) o pueden sincronizar carpetas de elementos de espacio de trabajo (por ejemplo, una carpeta de marcadores). En general, el sistema de base 170 gestiona las porciones seleccionadas de los datos de espacio de trabajo 180 dentro de la LAN 125 y el agente de sincronización 145 gestiona las porciones seleccionadas de datos de espacio de trabajo 163 dentro del servidor global
115. Se apreciará que el traductor global 150 coopera con los medios de sincronización para traducir entre el formato A (o formato B) y el formato global. Se apreciará además que el servidor global 115 puede sincronizar los datos de espacio de trabajo 163 con datos de espacio de trabajo 180 y con los datos de espacio de trabajo (no representados) en el cliente 167. Por consiguiente, los datos de espacio de trabajo 163 se pueden sincronizar fácilmente con los datos de espacio de trabajo (no representados) en el cliente 167.
El terminal remoto 105 incluye un motor web 140, que envía solicitudes al servidor global 115 y recibe información a visualizar desde el servidor global 115. El motor web 140 puede usar el Protocolo de Transferencia de Hipertexto (HTTP) y el Lenguaje de Marcado de Hipertexto (HTML) para comunicarse por interfaz con el servidor global
115. El motor web 140 puede estar habilitado para ejecutar miniaplicaciones, que, cuando son ejecutadas, funcionan como interfaz de seguridad para proporcionar acceso al servidor global 115 y que funcionan como interfaz de aplicación con el servicio solicitado. Usando la presente invención, un usuario puede hacer funcionar cualquier cliente remoto 105 conectado a Internet para acceder al servidor global 115, y, por lo tanto, acceder a los servicios y los datos de espacio de trabajo de o accesibles por el servidor global 115.
La FIG. 2 es un diagrama de bloques que ilustra detalles del terminal remoto 105, el cual incluye una Unidad de Procesado Central (CPU) 210, tal como un microprocesador Motorola Power PC™ o un microprocesador Intel Pentium™. Un dispositivo de entrada 220, tal como un teclado y un ratón, y un dispositivo de salida 230, tal como una pantalla de Tubo de Rayos Catódicos (CRT), están acoplados a través de un bus de señales 235 a la CPU 210. Una interfaz de comunicaciones 240, un dispositivo de almacenamiento de datos 250, tal como una Memoria de Solo Lectura (ROM) y un disco magnético, y una Memoria de Acceso Aleatorio (RAM) 260, están acoplados además a través del bus de señales 235 a la CPU 210. La interfaz de comunicaciones 240 está acoplada a un canal de comunicaciones 110, tal como se muestra en la FIG. 1.
Un sistema operativo 270 incluye un programa para controlar el procesado por parte de la CPU 210, y típicamente está almacenado en el dispositivo de almacenamiento de datos 250 y se carga en la RAM 260 (según se muestra) para su ejecución. El sistema operativo 270 incluye además un motor de comunicaciones 275 para generar y transferir paquetes de mensajes, a través de la interfaz de comunicaciones 240, hacia y desde el canal de comunicaciones 110. El sistema operativo 270 incluye además un módulo de configuración de Sistema Operativo (OS) 278, que configura el sistema operativo 270 basándose en datos de configuración 356 del OS (FIG. 3), tales como datos del Protocolo de Control de Transmisión (TCP), direcciones del Servidor de Nombres de Dominio (DNS), etcétera, recibidos desde el servidor global 115.
El sistema operativo 270 incluye además el motor web 140 para la comunicación con el servidor global 115. El motor web 140 puede incluir un módulo de configuración de motor web (WE) 286 para configurar elementos del motor web 140, tales como direcciones de páginas principales, marcadores, datos de memoria caché, preferencias de usuarios, etcétera, basándose en los datos de configuración 356 recibidos desde el servidor global 115. El motor web 140 también puede incluir un motor de cifrado 283 para usar técnicas de cifrado con el fin de comunicarse con el servidor global 115. El motor web 140 puede incluir además un motor de miniaplicaciones 290 para gestionar la ejecución de miniaplicaciones descargadas, incluyendo miniaplicaciones para proporcionar seguridad. El motor de miniaplicaciones 290 puede incluir un módulo de configuración de Motor de Miniaplicaciones (AE) 295 para configurar los elementos del motor de miniaplicaciones 290 basándose en datos de configuración 356 recibidos desde el servidor global 115.
La FIG. 3 es un diagrama de bloques que ilustra detalles del servidor global 115, el cual incluye una Unidad de Procesado Central (CPU) 310, tal como un microprocesador Motorola Power PC™ o un microprocesador Intel Pentium™. Un dispositivo de entrada 320, tal como un teclado y ratón, y un dispositivo de salida 330, tal como una pantalla de Tubo de Rayos Catódicos (CRT), están acoplados a través de un bus de señales 335, a la CPU 310. Una interfaz de comunicaciones 340, un dispositivo de almacenamiento de datos 350, tal como una Memoria de Solo Lectura (ROM) y un disco magnético, y una Memoria de Acceso Aleatorio (RAM) 370 están acoplados además, a través del bus de señales 335, a la CPU 310. Tal como se muestra en la FIG. 1, la interfaz de comunicaciones 340 está acoplada al canal de comunicaciones 110 y al canal de comunicaciones 120.
Un sistema operativo 380 incluye un programa para controlar el procesado por parte de la CPU 310, y, típicamente, está almacenado en el dispositivo de almacenamiento de datos 350 y se carga en la RAM 370 (según se ilustra) para su ejecución. El sistema operativo 380 incluye además un motor de comunicaciones 382 para generar y transferir paquetes de mensajes, a través de la interfaz de comunicaciones 340, hacia y desde el canal de comunicaciones 345. El sistema operativo 380 incluye también un motor de páginas web 398 para transmitir datos de páginas web 368 hacia el terminal remoto 105, de manera que el terminal remoto 105 pueda visualizar una página web 900 (FIG. 9) que ofrezca una lista de las funcionalidades ofrecidas por el servidor global 115. Otros datos de páginas web 368 pueden incluir información, para visualizar selecciones de métodos de seguridad.
El sistema operativo 380 puede incluir un motor anfitrión de miniaplicaciones 395 para transmitir miniaplicaciones hacia el terminal remoto 105. Un motor de configuración 389 funciona conjuntamente con el motor anfitrión de miniaplicaciones 395 para transmitir miniaplicaciones de configuración 359 y datos de configuración y usuario 356 hacia el terminal remoto 105. El terminal remoto 105 ejecuta las miniaplicaciones de configuración 359 y usa los datos de configuración y usuario 356 para configurar los elementos (por ejemplo, el sistema operativo 270, el motor web 140 y el motor de miniaplicaciones 290) del terminal remoto 105. Los datos de configuración y usuario 356 se describen más detalladamente haciendo referencia a la FIG. 6.
El sistema operativo 380 incluye también el agente de sincronización 145 descrito en referencia a la FIG. 1. El agente de sincronización 145 sincroniza los datos de espacio de trabajo 163 en el servidor global 115 con los datos de espacio de trabajo 180 en el cliente 165. Tal como se ha mencionado anteriormente haciendo referencia a la FIG. 1, el traductor global 150 traduce entre el formato A usado por el cliente 165 y el formato global usado por el servidor global
115.
El sistema operativo 380 también puede incluir un motor de seguridad 392 para determinar si ordenar a un motor de comunicaciones 382 que cree un enlace de comunicaciones seguro con un cliente 165 ó terminal 105, y para determinar los derechos de acceso del usuario. Por ejemplo, el motor de seguridad 392 reenvía al cliente 165 ó terminal remoto 105 miniaplicaciones de seguridad 362, que, cuando son ejecutadas por el receptor, interrogan al usuario y responden de vuelta al servidor global 115. El servidor global 115 puede examinar la respuesta para identificar y autenticar al usuario.
Por ejemplo, cuando un cliente 165 intenta acceder al servidor global 115, el motor de seguridad 384 determina si el servidor global 115 acepta comunicaciones entrantes desde un puerto particular. En caso afirmativo, el motor de seguridad 392 permite que el motor de comunicaciones 382 abra un canal de comunicaciones 345 con el cliente 165. Si no, no se abrirá ningún canal. Después de que se haya abierto un canal, el motor de seguridad 392 reenvía una miniaplicación de seguridad de autenticación 362 al terminal remoto 105 para interrogar al usuario en relación con información de identificación y autenticación, tal como una ID de usuario y una contraseña. La miniaplicación de seguridad de autenticación 362 generará y reenvía una respuesta de vuelta al servidor global 115, que usará la información para verificar la identidad del usuario y proporcionar acceso de forma consiguiente.
Se apreciará que un “motor de servicios solicitados” puede ser el motor de configuración 389 y el motor anfitrión de miniaplicaciones 395 cuando se proporcionen servicios a un terminal remoto 105 ó cliente 165. El motor de servicios solicitados puede ser el motor de páginas web 398 cuando se realizan operaciones de recuperación de datos de espacio de trabajo 163 directamente desde el servidor global 115. El motor de servicios solicitados puede ser el motor de configuración 389 y el motor anfitrión de miniaplicaciones 395 cuando se realizan operaciones de recuperación de datos de espacio de trabajo 180 desde el cliente 165 ó desde cualquier otro sitio conectado al servidor global 115. El motor de servicios solicitados puede ser el motor de seguridad 392 cuando se realizan servicios de seguridad, tales como la identificación y la autenticación del usuario. El motor de servicios solicitados puede ser el agente de sincronización cuando se realiza la sincronización con el cliente 165. Además, el motor de servicios solicitados puede ser cualquier combinación de estos componentes.
La FIG. 4 es un diagrama de bloques que ilustra detalles del agente de sincronización 145, el cual incluye un módulo de comunicaciones 405 y un módulo de sincronización general 410. El módulo de comunicaciones 405 incluye rutinas para comprimir datos y rutinas para comunicarse a través del canal de comunicaciones 120 con el sistema de base 170. El módulo de comunicaciones 405 puede incluir además rutinas para un canal de comunicación segura a través del cortafuegos global 130 y a través de cortafuegos de LAN 125.
El módulo de sincronización general 410 incluye rutinas para determinar si se han sincronizado elementos de espacio de trabajo y rutinas para reenviar al sistema de base 170 información de versiones (no mostrada) de elementos de los cuales se ha determinado que han sido modificados después de la última sincronización. El módulo de sincronización general 410 puede o bien mantener su propia última firma de sincronización (no mostrada), o bien recibir una copia de la última firma de sincronización con la solicitud de sincronización desde el sistema de base 170, u otros medios cualesquiera para garantizar que se han sincronizado los datos de espacio de trabajo. El módulo de sincronización general 410 incluye además rutinas para recibir versiones preferidas de elementos de espacio de trabajo de los datos de espacio de trabajo 180 desde el sistema de base 170, y rutinas para reenviar versiones preferidas de elementos de espacio de trabajo de los datos de espacio de trabajo 180 hacia el sistema de base 170.
La FIG. 5 ilustra un elemento marcador de espacio de trabajo, a modo de ejemplo, en el formato global. El traductor 150 incorpora toda la información necesaria para la traducción entre todos los formatos incorporados. Por ejemplo, si, para un primer cliente, un marcador en el formato A necesita los elementos X, Y y Z y, para un segundo cliente, un marcador en el formato B necesita los elementos W, X e Y, el traductor global 150 incorpora los elementos W, X, Y y Z para generar un marcador en el formato global. Además, el traductor 150 incorpora la información que necesitan los medios de sincronización (tal como se describe posteriormente en la FIG. 4), tal como la última fecha modificada. Por consiguiente, un marcador en el Formato Global puede incluir una identificación de usuario (ID) 505, una ID de entrada 510, una ID matriz 515, una bandera de ID de carpeta 520, un nombre 525, una descripción 530, el Localizador Uniforme de Recursos (URL) 535, la posición 540, una bandera de ID borrada 545, una última fecha modificada 550, una fecha creada 555 y una bandera de ID de separación 560.
La FIG. 6 es un diagrama de bloques que ilustra detalles de los datos de configuración y usuario 356. Los datos de configuración 356 incluyen ajustes 605, tales como datos de TCP y la dirección DNS, ajustes del navegador web, tales como la dirección de la página principal, marcadores y datos de memoria caché, ajustes del motor de miniaplicaciones, y datos de configuración de miniaplicaciones, tales como la dirección de correo electrónico del usuario, el nombre y el espacio para la firma. Se apreciará que los datos de configuración y usuario 356 específicos de cada miniaplicación son necesarios, ya que el servicio puede no estar ubicado en el cliente local 165 propio del usuario. Los datos de configuración y usuario 356 incluyen además preferencias de usuario 610 predeterminadas, tales como fuente, tamaño de la ventana, tamaño del texto, etcétera.
Los datos de configuración 356 incluyen además el conjunto de servicios 615 que se proporcionará al usuario. Los servicios 615 incluyen una lista de usuarios registrados y la lista de cada usuario de servicios disponibles 615 preferidos por el usuario. Los servicios también pueden incluir una lista de niveles de autenticación necesarios para acceder a los servicios 615. Los datos de configuración y usuario 137 incluyen además direcciones de servicios 620 que especifican la ubicación de cada uno de los servicios 615 accesibles a través del servidor global 115.
La FIG. 7 es un diagrama de bloques que ilustra detalles del cliente 165, el cual incluye una CPU 705, un dispositivo de entrada 710, un dispositivo de salida 725, una interfaz de comunicaciones 710, un dispositivo de almacenamiento de datos 720 y una RAM 730, acoplado cada uno de ellos a un bus de señales 740.
Un sistema operativo 735 incluye un programa para controlar el procesado por parte de la CPU 705, y típicamente se almacena en el dispositivo de almacenamiento de datos 720 y se carga en la RAM 730 (según se ilustra) para su ejecución. Un motor de servicios 175 incluye un programa de servicio para gestionar datos de espacio de trabajo 180 que incluyen información de versiones (no representada). El motor de servicios 175 se puede almacenar también en el dispositivo de almacenamiento de datos 720 y se puede cargar en la RAM 730 (según se ilustra) para su ejecución. Los datos de espacio de trabajo 180 se pueden almacenar en el dispositivo de almacenamiento de datos 330. Tal como se ha mencionado anteriormente en referencia a la FIG. 1, el sistema de base 170 funciona para sincronizar los datos de espacio de trabajo 180 en el cliente 165 con los datos de espacio de trabajo 163 en el servidor global 115. El sistema de base 170 también se puede almacenar en el dispositivo de almacenamiento de datos 720 y se puede cargar en la RAM 730 (según se muestra) para su ejecución. El sistema de base 170 se describe más detalladamente en referencia a la FIG. 8.
La FIG. 8 es un diagrama de bloques que ilustra detalles del sistema de base 170, el cual incluye un módulo de comunicaciones 805, un módulo de interfaz de usuario 810, módulos localizadores 815, un módulo de inicio de sincronización 820 (“inicio-sinc”), un módulo de sincronización general 825 y un módulo de sincronización 830 basado en el contenido. Para simplificar, cada módulo se ilustra comunicándose entre ellos a través de un bus de señales 840. Se apreciará que el sistema de base 170 incluye los mismos componentes que se incluyen en el agente de sincronización 145.
El módulo de comunicaciones 805 incluye rutinas para comprimir datos, y rutinas para comunicarse a través de la interfaz de comunicaciones 710 (FIG. 7) con el agente de sincronización 145 (FIG. 1). El módulo de comunicaciones 805 puede incluir rutinas para aplicar la tecnología de la Capa de Conexión Segura (SSL) y técnicas de identificación y autenticación de usuarios (es decir, certificados digitales) con el fin de establecer un canal de comunicación seguro a través del cortafuegos de LAN 135 y a través del cortafuegos global 130. Puesto que la sincronización se inicia desde dentro del cortafuegos de LAN 135 y usa protocolos habilitados comúnmente, tales como el Protocolo de Transferencia de Hipertexto (HTTP), el cortafuegos típico 135 que evita comunicaciones entrantes en general y algunos protocolos salientes no actúa como un impedimento para la sincronización del correo electrónico. Los ejemplos de módulos de comunicaciones 805 pueden incluir pilas TCP/IP o el protocolo AppleTalk™.
La interfaz de usuario 810 incluye rutinas para comunicarse con un usuario, y puede incluir una Interfaz Gráfica de Usuario (GUI) convencional. La interfaz de usuario 810 funciona en coordinación con los componentes del cliente 165 según se describe en el presente documento.
Los módulos localizadores 815 incluyen rutinas para identificar las posiciones de memoria de los elementos de espacio de trabajo en los datos de espacio de trabajo 180 y las posiciones de memoria de los elementos de espacio de trabajo en los datos de espacio de trabajo 163. La identificación de posiciones de memoria de elementos de espacio de trabajo se puede implementar usando software inteligente, es decir, direcciones de memoria prefijadas o el registro del sistema, o usando cuadros de diálogo para consultar a un usuario. Se apreciará que los módulos localizadores 815 pueden realizar una identificación de posiciones de memoria de elementos de espacio de trabajo tras el arranque del sistema o después de cada comunicación con el servidor global 115 para mantener posiciones actualizadas de memoria de los elementos de espacio de trabajo.
El módulo de inicio de sincronización 820 incluye rutinas para determinar cuándo iniciar la sincronización de datos de espacio de trabajo 163 y datos de espacio de trabajo 180. Por ejemplo, el módulo de inicio de sincronización 820 puede iniciar la sincronización de datos al producirse una solicitud de un usuario, en una hora particular del día, después de que transcurra un periodo de tiempo predeterminado, después de un número predeterminado de cambios, después de una acción de un usuario tal como un cierre de sesión del usuario o al producirse criterios similares. El módulo de inicio de sincronización 820 inicia la sincronización de datos ordenando al módulo de sincronización general
El módulo de sincronización general 825 incluye rutinas para solicitar información de versiones del agente de sincronización 145 (FIG. 1) y rutinas para comparar la información de versiones con una última firma de sincronización 835, tal como una última fecha y hora de sincronización con el fin de determinar qué versiones han sido modificadas. El módulo de sincronización general 825 incluye además rutinas para comparar las versiones local y remota con el fin de determinar si se han modificado solamente una o ambas versiones de un elemento particular de espacio de trabajo y rutinas para realizar una acción de reacción de sincronización apropiada. Las acciones de reacción de sincronización apropiadas pueden incluir el reenvío de la versión modificada (como versión preferida) de un elemento de espacio de trabajo en los datos de espacio de trabajo 180 ó el reenvío simplemente de una compilación de los cambios hacia el(los) otro(s) medio(s) de almacenamiento. Otras acciones de reacción de sincronización apropiadas pueden incluir, si es necesaria una conciliación entre dos versiones modificadas, ordenar entonces al módulo de sincronización 830 basado en el contenido que ejecute sus rutinas (descritas posteriormente).
Se apreciará que el agente de sincronización 145 preferentemente examina la información de versión local 124 y reenvía únicamente los elementos que han sido modificados desde la última firma de sincronización 835. Esta técnica hace un uso eficaz del poder del procesador y evita la transferencia de datos innecesarios a través del canal de comunicaciones 712. El módulo de sincronización general 825 en la LAN 135 compara de forma correspondiente los elementos de datos para determinar si es necesaria una conciliación. Al completarse la sincronización de los datos, el módulo de sincronización general 825 actualiza la última firma de sincronización 835.
El módulo de sincronización 830 basado en el contenido incluye rutinas para conciliar dos o más versiones modificadas de datos de espacio de trabajo 163, 180 en el mismo elemento de espacio de trabajo. Por ejemplo, si tanto el original como la copia de un elemento de espacio de trabajo de un usuario se han modificado de manera independiente desde la última sincronización, el módulo de sincronización 830 basado en el contenido determina la acción de reacción apropiada. El módulo de sincronización 830 basado en el contenido puede solicitar a un usuario que seleccione la preferida de las versiones modificadas o puede responder basándose en preferencias prefijadas, es decir, almacenando ambas versiones en ambos medios de almacenamiento o integrando los cambios en una única versión preferida que sustituye a cada versión modificada en ambos medios de almacenamiento. Cuando ambas versiones se almacenan en ambos medios de almacenamiento, cada versión puede incluir un enlace a la otra versión de manera que al usuario se le pueda aconsejar que seleccione la versión preferida.
Se apreciará que cualquier cliente 165 que desee la sincronización puede tener un sistema de base 170. Alternativamente, un sistema de base 170 puede gestionar múltiples clientes 165. Se apreciará además que, para un cliente ligero 165 de capacidad informática limitada, tal como un teléfono inteligente, toda la sincronización la puede realizar el servidor global 115. Por consiguiente, los componentes del sistema de base 170 tales como el módulo de interfaz de usuario 810, los módulos localizadores 815, el módulo de sincronización general 825 y el módulo de sincronización 830 basado en el contenido se pueden ubicar en el servidor global 115. Para iniciar la sincronización desde el cliente 165, el cliente 165 incluye el módulo de comunicaciones 805 y el módulo de inicio-sinc 820.
La FIG. 9 ilustra una lista de ejemplos de servicios 900 accesibles proporcionados por una página web basada en el Lenguaje de Marcado de Hipertexto (HTML), direccionable por URL, según son mantenidos por el motor de páginas web 398 del servidor global 115. La lista 900 incluye un título 910 “Página Principal del Usuario Remoto”, un listado de los servicios proporcionados 615 y un puntero 970 para seleccionar uno de los servicios proporcionados 615. Tal como se ilustra, los servicios proporcionados pueden incluir un servicio de correo electrónico 920, un servicio de calendario 930, un servicio de acceso a internet 940, un servicio de búsqueda 950, un servicio de envío de fax 960, un servicio de autenticación de usuario 963 y un servicio de recuperación de datos de espacio de trabajo 967. Aunque no se muestran, en la lista 900 se pueden incluir otros servicios 615, tales como marcadores, Quick-Card™, etcétera. Aunque la página web proporciona los servicios 615 en una lista 900, alternativamente se pueden usar otras estructuras de datos, tales como un diagrama de sectores o una tabla.
La FIG. 10 es un diagrama de flujo que ilustra un método 1000 para permitir que un usuario acceda a los servicios 615 en el sistema de red de ordenadores 100. El método 1000 comienza con el terminal remoto 105 en la etapa 1005 creando un enlace de comunicaciones con el servidor global 115. El servidor global 115 en la etapa 1010 confirma que el usuario tiene privilegios para acceder a la funcionalidad del servidor global 115. La confirmación de privilegios de acceso al usuario puede incluir examinar un certificado de usuario, obtener una contraseña secreta, usar tecnología de firmas digitales, realizar una técnica de desafío/respuesta, etcétera. Se apreciará que el motor de seguridad 392 puede conseguir que el motor anfitrión de miniaplicaciones 395 reenvíe, a través del canal de comunicaciones 345, hacia el terminal remoto 105, una miniaplicación de seguridad de autenticación 362 que, cuando se ejecuta, se comunica con el servidor global 115 para autenticar al usuario.
Después de que se hayan confirmado los privilegios de acceso del usuario, el motor de páginas web 398 del servidor global 115, en la etapa 1015, transmite datos de páginas web 368 y datos de configuración y usuario 356 hacia el terminal remoto 105. El motor web 140 del terminal remoto 105 en la etapa 1020 usa los datos de páginas de web 368 y los datos de configuración y usuario 356 para visualizar una lista de servicios de página web 900 (FIG. 9) en el
A partir de las opciones enumeradas en la página web 900, el usuario en la etapa 1025 selecciona un servicio 615 a través del dispositivo de entrada 220. Como respuesta, el motor de servicios solicitados (descrito en referencia a la FIG. 3) proporciona el servicio seleccionado 615. Por ejemplo, el motor anfitrión de miniaplicaciones 395 del servidor global 115, en la etapa 1030, puede descargar hacia el terminal remoto 105 una miniaplicación correspondiente 359 y datos de configuración y usuario 356 para ejecutar el servicio solicitado 615. Alternativamente, el motor de páginas web 398 puede usar, por ejemplo, el HTTP y el HTML para proporcionar el servicio seleccionado 615. Tal como se ha descrito anteriormente en referencia a la FIG. 6, los datos de configuración y usuario 356 pueden incluir preferencias específicas de cada usuario, tales como fuentes preferidas por el usuario para configurar el servicio seleccionado 615. Los datos de configuración y usuario 356 también pueden incluir información específica de cada usuario y específica de cada servicio, tal como marcadores almacenados, datos de calendario, números de buscador, etcétera. Alternativamente, la miniaplicación correspondiente 359 y los datos de configuración y usuario 356 se podrían haber descargado en la etapa 1015. A continuación se describe más detalladamente, haciendo referencia a las FIGS. 12 a 14, la provisión de acceso al servicio por una miniaplicación 359.
El motor de miniaplicaciones 290 del terminal remoto 105, en la etapa 1035, inicia la ejecución de la miniaplicación descargada correspondiente. El servidor global 115, en la etapa 1040, inicia el servicio seleccionado 615 y, en la etapa 1045, selecciona uno de entre tres modos descritos en referencia a las FIGS. 12 a 14 para acceder al servicio 615. Por ejemplo, si el usuario selecciona un servicio 615 en un servidor de servicios (por ejemplo, el cliente 167) que no está protegido por un cortafuegos independiente, entonces el servidor global 115 puede proporcionar acceso directo al usuario. Si el usuario selecciona un servicio 615 proporcionado por un servidor de servicios dentro de la LAN 125, entonces el servidor global 115 puede acceder al servicio 615 como un proxy para el usuario. Se apreciará que cada cortafuegos 130 y 135 puede almacenar políticas que establezcan el modo correcto de acceso que debería seleccionar el servidor global 115. Otros factores para seleccionar el modo de acceso pueden incluir preferencias del usuario, disponibilidad y viabilidad. El servidor global 115, en la etapa 1050, usa el modo seleccionado para proporcionar al usuario del terminal remoto 105 acceso al servicio seleccionado 615.
La FIG. 11 es un diagrama de flujo que ilustra detalles de la etapa 1005, la cual comienza con el terminal remoto 105, en la etapa 1105, usando un Localizador Uniforme de Recursos (URL) conocido para llamar al servidor global 115. El servidor global 115 y el terminal remoto 105 en la etapa 1107 crean un canal de comunicaciones seguro entre ellos, posiblemente aplicando una tecnología de Capa de Conexión Segura (SSL). Es decir, el motor de seguridad 392 del servidor global 115 en la etapa 1110 determina si se permiten comunicaciones seguras entrantes y, en caso afirmativo, crea un canal de comunicaciones con el terminal remoto 105. El motor web 140 del terminal remoto 105 y el motor de seguridad 392 del servidor global 115 en la etapa 1115 negocian parámetros del canal de comunicaciones seguro, posiblemente usando certificados de claves públicas. Un ejemplo de canal de comunicaciones seguro es el RSA con cifrado RC4. De este modo, la etapa 1115 puede incluir la selección de un protocolo de cifrado que es conocido tanto por el servidor global 115 como por el terminal remoto 105. El motor de cifrado 283 del terminal remoto 105 y el motor de comunicaciones seguras 392 del servidor global 115, en la etapa 1120, usan los parámetros del canal seguro para crear el canal de comunicaciones seguro. A continuación finaliza el método 505.
La FIG. 12 es un diagrama de flujo que ilustra detalles de la etapa 1050 en una primera forma de realización, a la que se hace referencia como etapa 1050a, en donde el servidor global 115 proporciona al terminal remoto 105 una conexión directa a un servicio 615. La etapa 1050a comienza con el motor de miniaplicaciones 290, en la etapa 1205, ejecutando una miniaplicación de configuración 359 para el servicio seleccionado 615 que recupera la dirección de servicio 620 a partir del dispositivo de almacenamiento de datos 380 y la información de autenticación a partir de la caja de claves 365. La interfaz de comunicaciones 340 en la etapa 1210 crea una conexión directa y segura con la interfaz de comunicaciones 340 del servidor global 115 en la dirección de servicio 620 recuperada, y usa la información de autenticación para autenticarse. La miniaplicación, en la etapa 1215, actúa como interfaz I/O con el servicio 615. A continuación, finaliza la etapa 1050a.
La FIG. 13 es un diagrama de flujo que ilustra detalles de la etapa 1050 en una segunda forma de realización, a la que se hace referencia como etapa 1050b, en donde el servidor global 115 actúa para el terminal remoto 105 como un proxy para el servicio 615. La etapa 1050b comienza con una miniaplicación de configuración 359, en la etapa 1305, solicitando a la dirección de servicio 620 el servicio seleccionado 615, lo cual da como resultado la recuperación de la dirección de servicio 620 que dirige a la miniaplicación 359 al servidor global 115. La miniaplicación 359, en la etapa 1310, crea una conexión con la interfaz de comunicaciones 340 del servidor global 115. El servidor global 115, en la etapa 1315, recupera la dirección de servicio 620 del servicio seleccionado 615 y la información de autenticación para el servicio seleccionado 615 a partir de la caja de claves 365. La interfaz de comunicaciones 340 del servidor global 115, en la etapa 1320, negocia parámetros de canal seguro para crear un canal seguro con el servidor de servicios. La interfaz de comunicaciones 340, en la etapa 1320, también se autentica como el usuario.
Después de esto, la miniaplicación 359, en la etapa 1325, actúa como interfaz I/O con la interfaz de comunicaciones 340 del servidor global 115. Si el servidor global 115, en la etapa 1330, determina que no está autorizado a ejecutar una solicitud del usuario del terminal remoto 105, entonces el servidor global 115, en la etapa 1345, determina si finaliza el método 1050b, por ejemplo, si el usuario ha salido. En caso afirmativo, a continuación finaliza el método 1050b. Si no, el método 1050b vuelve a la etapa 1325 para obtener otra solicitud. Si el servidor global 115, en la etapa 1330, determina que está autorizado a ejecutar la solicitud del usuario del terminal remoto 105, entonces el servidor global 115, en la etapa 1340, actúa como proxy para el terminal remoto 105 con el servicio 615. Como proxy, el servidor global 115 reenvía la solicitud de servicio al servicio seleccionado 615 y reenvía respuestas a la miniaplicación solicitante 359 que se ejecuta en este momento en el terminal remoto 105. A continuación, el método 1050b salta a la etapa 1345.
La FIG. 14 es un diagrama de flujo que ilustra detalles de la etapa 1050 en una tercera forma de realización, a la que se hace referencia como etapa 1050c, en donde el servicio 615 que se está solicitando está ubicado en el servidor global 115. La etapa 1050 comienza con una miniaplicación, en la etapa 1405, recuperando la dirección de servicio 620 correspondiente al servicio seleccionado 615, lo cual da como resultado el suministro, a la miniaplicación de configuración 359, de la dirección de servicio 620 correspondiente al servicio 615 en el servidor global 115. De este modo, la miniaplicación, en la etapa 1410, crea una conexión segura con el servidor global 115. No es necesaria ninguna etapa adicional de identificación y autenticación ya que el terminal remoto 105 ya se ha identificado y autenticado con el servidor global 115, tal como se ha descrito en referencia a la etapa 1010 de la FIG. 10.
En la etapa 1415, se realiza una determinación sobre si el servicio 615 se está ejecutando en ese momento. En caso afirmativo, entonces, en la etapa 1425, se realiza una determinación sobre si el servicio 615 puede gestionar múltiples usuarios. Si es así, entonces el servidor global 115, en la etapa 1430, crea una instancia para el usuario, y la miniaplicación, en la etapa 1440, actúa como interfaz I/O con el servicio 615 en el servidor global 115. A continuación finaliza el método 1050c. Si no, si el servicio 615, en la etapa 1425, determina que no puede gestionar múltiples usuarios, entonces el método 1050c prosigue hacia la etapa 1440. Además, si, en la etapa 1415, el servidor global 115 determina que no se está ejecutando en ese momento el servicio 615, entonces el servidor global 115, en la etapa 1420, inicializa el servicio 615 y prosigue hacia la etapa 1425.
La FIG. 15 es un diagrama de flujo que ilustra un método 1500 para usar un traductor global 150 con el fin de sincronizar datos de espacio de trabajo 163 y datos de espacio de trabajo 180 en una red segura 100. El método 1500 comienza con la interfaz de usuario 900, en la etapa 1505, permitiendo que un usuario seleccione elementos de espacio de trabajo de los datos de espacio de trabajo 163 y los datos de espacio de trabajo 180 para que sean sincronizados por los medios de sincronización. Los módulos localizadores 815, en la etapa 1510, identifican las posiciones de memoria de los elementos de espacio de trabajo de los datos de espacio de trabajo 163 y los datos de espacio de trabajo 180. Si un elemento de espacio de trabajo seleccionado no tiene una posición de memoria correspondiente, tal como en el caso de la adición de elementos de espacio de trabajo nuevos al servidor global 115, entonces se selecciona una. La posición de memoria seleccionada puede ser un elemento de espacio de trabajo que existía previamente o un elemento de espacio de trabajo nuevo. Tal como se ha mencionado anteriormente, la identificación de las posiciones de memoria de elementos de espacio de trabajo se puede implementar usando software inteligente o cuadros de diálogo. El módulo de sincronización general 825, en la etapa 1515, fija el estado previo de los elementos de espacio de trabajo de manera que sea igual al conjunto vacío, lo cual indica que se ha añadido toda la información del elemento de espacio trabajo.
El módulo de inicio de sincronización 820, en la etapa 1520, determina si se han cumplido criterios predeterminados que indican que debería iniciarse la sincronización de los elementos de espacio de trabajo seleccionados en la etapa 1505. En caso negativo, entonces el módulo de inicio de sincronización 820, en la etapa 1525, espera y vuelve en bucle a la etapa 1520. En cualquier otro caso, el módulo de comunicaciones 805 y el módulo de comunicaciones 405, en la etapa 1530, establecen entre ellos un canal de comunicaciones seguro.
El módulo de sincronización general 825, en la etapa 1535, determina si se ha modificado algún elemento de espacio de trabajo. Es decir, el módulo de sincronización general 825, en la etapa 1535, examina la información de versión de cada elemento de espacio de trabajo seleccionado en los datos de espacio de trabajo 180 con respecto a la última firma de sincronización 435 para localizar elementos de espacio de trabajo modificados. Esta comparación puede incluir comparar la fecha de la última modificación con la fecha de la última sincronización, o puede incluir una comparación entre el estado actual y el estado previo desde la última interacción. De modo similar, el módulo 815 de sincronización general examina la información de versión de cada elemento de espacio de trabajo correspondiente en los datos de espacio de trabajo 163 y la última firma de sincronización 435 para localizar elementos de espacio de trabajo modificados.
Si, en la etapa 1535, no se localiza ninguna carpeta o elemento de espacio de trabajo modificados, entonces el módulo de sincronización general 825, en la etapa 1560, actualiza la última firma de sincronización 435, y el método 1500 finaliza. En cualquier otro caso, el módulo de sincronización general 825, en la etapa 1540, determina si se ha modificado más de una versión de un elemento de espacio de trabajo desde la última sincronización.
Si solamente se ha modificado una versión, entonces el módulo de sincronización general 825 correspondiente, en la etapa 1545, determina los cambios realizados. Tal como se ha mencionado anteriormente, la determinación de los cambios realizados se puede implementar comparando el estado actual del elemento de espacio de trabajo con respecto al estado previo del elemento de espacio de trabajo desde la última interacción entre ellos. Si los cambios se realizaron únicamente sobre la versión en los datos de espacio de trabajo 163, entonces el traductor global 150, en la etapa 1550, traduce los cambios al formato usado por los otros medios de almacenamiento, y el módulo de sincronización general 410, en la etapa 1555, reenvía los cambios traducidos al módulo de sincronización general 825 para actualizar el elemento de espacio de trabajo anticuado en los datos de espacio de trabajo 180. Si la versión actualizada es un elemento de espacio de trabajo en los datos de espacio de trabajo 180, entonces el módulo de sincronización general 825 envía los cambios para la versión actualizada al traductor global 150 para su traducción y, a continuación, al módulo de sincronización general 410 para actualizar el elemento de espacio de trabajo anticuado en los datos de espacio de trabajo 163. El módulo de sincronización general 825 y el módulo de sincronización general 410, en la etapa 1557, actualizan el estado previo del elemento de espacio de trabajo para reflejar el estado actual a partir de esta interacción. A continuación, el método 1500 vuelve a la etapa 1535.
Si el módulo de sincronización general 825, en la etapa 1540, determina que se han modificado múltiples versiones, entonces el módulo de sincronización general 825, en la etapa 1565, calcula los cambios para cada versión y, en la etapa 1570, ordena al módulo de sincronización 830 basado en el contenido que examine el contenido para determinar si existe algún conflicto. Por ejemplo, el módulo de sincronización 830 basado en el contenido puede determinar que existe un conflicto si un usuario borra un párrafo en una versión y modifica el mismo párrafo en otra versión. El módulo de sincronización 830 basado en el contenido puede determinar que no existe un conflicto si un usuario borra párrafos diferentes en cada versión. Si no se encuentra ningún conflicto, entonces el método 1500 salta a la etapa 1550 para traducir y reenviar los cambios en cada versión a los otros medios de almacenamiento. No obstante, si se encuentra un conflicto, entonces el módulo de sincronización 830 basado en el contenido, en la etapa 1575, concilia las versiones modificadas. Tal como se ha mencionado anteriormente, la conciliación puede incluir solicitar instrucciones del usuario o, basándose en preferencias seleccionadas previamente, realizar acciones de reacción tales como almacenar ambas versiones en ambos medios de almacenamiento. Se apreciará que entre dos versiones se puede colocar un enlace en cada una de las dos versiones, de manera que el usuario se dé cuenta que tiene que examinar ambas versiones para seleccionar la versión preferida. A continuación, el método 1500 prosigue hacia la etapa 1550.
Se apreciará además que, en la etapa 1510, elementos de espacio de trabajo nuevos y elementos de espacio de trabajo existentes previamente, con los que se fusionarán elementos de espacio de trabajo nuevos, se fijan a “modificados” y el estado previo se fija al conjunto vacío. De este modo, el módulo de sincronización general 825, en la etapa 1540, determinará que se ha modificado más de una versión, y el módulo de sincronización 830 basado en el contenido, en la etapa 1570, determinará que no existe ningún conflicto. Los cambios de cada uno se traducirán y reenviarán a los otros medios de almacenamiento. Por consiguiente, las dos versiones se fusionarán y almacenarán eficazmente en cada medio de almacenamiento.
Por ejemplo, si el motor web 140 creó una primera carpeta de marcadores en el cliente 165, un motor web 140 creó una segunda carpeta en el terminal remoto 105, en el servidor global 115 no existía ninguna carpeta existente previamente y el usuario seleccionó cada una de estas carpetas para la sincronización, entonces los medios de sincronización fusionarán eficazmente la primera y la segunda carpetas. Es decir, el módulo de sincronización general 825 en el cliente 165 determinará que la primera carpeta se ha modificado y el estado previo es igual al conjunto vacío. El módulo de sincronización general 825 determinará y enviará los cambios, es decir, todos los elementos de espacio de trabajo en la primera carpeta, a una nueva carpeta global en el servidor global 115. De modo similar, el módulo de sincronización general (no representado) en el terminal remoto 105 determinará que, desde su última interacción, el estado previo de cada una de la segunda carpeta y la carpeta global es el conjunto vacío. El módulo de sincronización general 825 ordenará al módulo de sincronización 830 basado en el contenido que examine los cambios realizados sobre cada carpeta para determinar si existe un conflicto. Puesto que no existirá ningún conflicto, el módulo de sincronización general 825 reenviará los cambios a la carpeta global y el módulo de sincronización general 410 reenviará sus cambios a los segundos medios de almacenamiento, fusionándose de este modo los elementos de espacio de trabajo de la primera y la segunda carpetas en las carpetas global y segunda. El módulo de sincronización general 410 informará al módulo de sincronización general 825 de que la carpeta global se ha modificado con respecto a la última interacción, y reenviará los cambios nuevos a la primera carpeta. De este modo, la primera y la segunda carpetas se fusionarán y se almacenarán en cada uno de los medios de almacenamiento.
La descripción anterior de las formas de realización preferidas de la invención se presentan únicamente a título de ejemplo, y la presente invención proporciona otras variaciones de las formas de realización y métodos descritos anteriormente. Por ejemplo, un servidor puede ser cualquier ordenador que sea interrogado por un cliente. De este modo, al terminal remoto 105 se le puede hacer referencia como un tipo de cliente. Aunque el sistema y el método se han descrito en referencia a miniaplicaciones, alternativamente se pueden usar otros ejecutables descargables, tales como miniaplicaciones Java™, aplicaciones Java™ o controles ActiveX™ desarrollados por Microsoft Corporation. Los componentes de la presente invención se pueden implementar usando un ordenador digital programado de propósito general, usando circuitos integrados de aplicación específica, o usando una red de componentes y circuitos convencionales interconectados. Las formas de realización descritas en la presente memoria se han presentado a título ilustrativo y no pretenden ser exhaustivas o limitativas. Son posibles muchas variaciones y modificaciones teniendo en cuenta los aspectos anteriores dados a conocer. La invención queda limitada únicamente por las siguientes eivindicaciones.

Claims (39)

1.
Sistema de servidor capaz de proporcionar, a un terminal remoto solicitante (105), acceso a un servicio (615) proporcionado por un motor de servicios (175) y a un elemento de espacio de trabajo sincronizado de datos de espacio de trabajo, comprendiendo el sistema de servidor un servidor global (115) que incluye:
imagen1 un soporte de almacenamiento (350) que almacena una dirección (620) que apunta a dicho servicio; una interfaz de comunicaciones (340) para establecer un enlace de comunicaciones con el fin de comunicarse con el terminal remoto; un motor de servicios solicitados (389, 395) acoplado a la interfaz de comunicaciones (340) para recibir una solicitud de datos de configuración (356) con el fin de acceder a dicho servicio (615) desde el terminal remoto (105), y para transmitir datos de configuración (356) hacia el terminal remoto; unos medios habilitadores de acceso acoplados al soporte de almacenamiento y a la interfaz de comunicaciones para habilitar el acceso a dicho servicio por parte del terminal remoto, habilitándose dicho acceso sobre la base de dicha dirección almacenada (620) y como respuesta a una solicitud de acceso al servicio (615) del terminal remoto, generándose dicha solicitud de acceso sobre la base de los datos de configuración transmitidos; y unos medios de sincronización (145) para sincronizar un original, modificable independientemente, de un elemento de espacio de trabajo de un primer conjunto de datos de espacio de trabajo (180) y una copia, modificable independientemente, de dicho elemento de espacio de trabajo de un segundo conjunto de datos de espacio de trabajo (163) para generar dicho elemento de espacio de trabajo sincronizado, almacenándose dicho primer conjunto de datos de espacio de trabajo en un dispositivo informático (165, 167), diferente al terminal remoto (105), que es un cliente del servidor global (115), y almacenándose dicho segundo conjunto de datos de espacio de trabajo en el servidor global (115), en el que dicho motor de servicios (175) está en dicho dispositivo informático (165, 167) y el servicio (615) se refiere a datos de espacio de trabajo de dicho primer conjunto de datos de espacio de trabajo.
2.
Sistema de servidor según la reivindicación 1, en el que el soporte de almacenamiento está dispuesto además para almacenar una dirección que apunta al elemento de espacio de trabajo.
3.
Sistema de servidor según la reivindicación 1 ó la reivindicación 2, en el que los medios de sincronización comprenden además un módulo de inicio de sincronización (820) para iniciar la interfaz de comunicaciones con el fin de establecer el enlace de comunicaciones.
4.
Sistema de servidor según la reivindicación 1, en el que el dispositivo informático (165) está ubicado dentro de una Red de Área Local (125) protegida por un cortafuegos (135).
5.
Sistema de servidor según la reivindicación 1, en el que el dispositivo informático (167) está ubicado fuera de la protección de un cortafuegos.
6.
Sistema de servidor según la reivindicación 4 ó la reivindicación 5, en el que el servidor global está dispuesto para actuar como proxy para el terminal remoto en relación con dicha solicitud de acceso al servicio.
7.
Sistema de servidor según la reivindicación 4, que comprende además una clave para ser usada en la configuración de dicho enlace de comunicaciones seguro a través del cortafuegos (135).
8.
Sistema de servidor según cualquiera de las reivindicaciones anteriores, en el que el servidor global comprende además un motor de seguridad (392) para realizar servicios de identificación y autenticación antes de proporcionar al terminal remoto (105) acceso al servicio.
9.
Sistema de servidor según cualquiera de las reivindicaciones anteriores, en el que el servidor global comprende además un motor de configuración (389) para entregar unos datos de configuración (356) al terminal remoto (105), estando destinados dichos datos de configuración para ser utilizados en la configuración del servicio.
10.
Sistema de servidor según cualquiera de las reivindicaciones anteriores, en el que el motor de servicios solicitados (389, 395) está dispuesto para entregar una miniaplicación (362) al terminal remoto, estando destinada dicha miniaplicación para ser usada en el control del acceso al servicio por el terminal remoto.
11.
Sistema de servidor según la reivindicación 10, que comprende además un motor anfitrión de miniaplicaciones
imagen1
imagen1
(395) para ser utilizado en la provisión de dicha miniaplicación al terminal remoto (105).
12.
Sistema de servidor según la reivindicación 1, en el que el elemento de espacio de trabajo incluye información de versión.
13.
Sistema de servidor según la reivindicación 4 ó la reivindicación 5, en el que los medios de sincronización comprenden:
imagen1 un agente de sincronización (145) para examinar un elemento de espacio de trabajo del segundo conjunto de datos de espacio de trabajo y generar unos primeros resultados de examen; y un módulo de sincronización general (410) para examinar un elemento de espacio de trabajo del primer conjunto de datos de espacio de trabajo, para generar unos segundos resultados de examen, para comparar los primeros resultados de examen y los segundos resultados de examen, y para ejecutar una respuesta de sincronización como reacción.
14.
Sistema de servidor según la reivindicación 13, en el que el servidor global está dispuesto para realizar una respuesta de sincronización como reacción con el fin de generar una versión preferida.
15.
Sistema de servidor según cualquiera de las reivindicaciones anteriores, en el que el servicio está dispuesto para usar el elemento de espacio de trabajo.
16.
Método capaz de proporcionar, a un terminal remoto solicitante (105), acceso a un servicio (615) proporcionado por un motor de servicios (175) y a un elemento de espacio de trabajo sincronizado de datos de espacio de trabajo, comprendiendo el método las etapas siguientes:
imagen1 almacenar en un servidor global (115) una dirección (620) que apunta a dicho servicio; establecer (1005) un enlace de comunicaciones con el terminal remoto; recibir (1010, 1025) una solicitud de datos de configuración (356) para acceder a dicho servicio desde el terminal remoto (105); transmitir (1015, 1030) unos datos de configuración (356) hacia el terminal remoto (105); recibir (1025, 1035) una solicitud de acceso al servicio (615) desde el terminal remoto (105), generándose dicha solicitud sobre la base de los datos de configuración (356) transmitidos; proporcionar (1050), al terminal remoto, acceso a dicho servicio sobre la base de la dirección (620), y como respuesta a la solicitud de acceso al servicio (615); y sincronizar (1555) un original, modificable independientemente, de un elemento de espacio de trabajo de un primer conjunto de datos de espacio de trabajo (180) y una copia, modificable independientemente, de dicho elemento de espacio de trabajo de un segundo conjunto de datos de espacio de trabajo (163) para generar dicho elemento de espacio de trabajo sincronizado, almacenándose dicho primer conjunto de datos de espacio de trabajo en un dispositivo informático (165, 167), diferente al terminal remoto (105), que es un cliente del servidor global, y almacenándose dicho segundo conjunto de datos de espacio de trabajo en el servidor global, en el que dicho motor de servicios (175) está en dicho dispositivo informático (165, 167) y el servicio (615) se refiere a datos de espacio de trabajo de dicho primer conjunto de datos de espacio de trabajo.
17.
Método según la reivindicación 16, que comprende además:
imagen1
imagen1 almacenar una dirección que apunta a dicho elemento de espacio de trabajo sincronizado; recibir una solicitud de acceso a dicho elemento de espacio de trabajo sincronizado desde el terminal remoto; y proporcionar al terminal remoto acceso a dicho elemento de espacio de trabajo sincronizado. 18. Método según la reivindicación 16, en el que el dispositivo informático (165) está ubicado dentro de una Red de Área Local protegida por un cortafuegos (135), mediante la cual se proporciona acceso a dicho servicio.
19.
Método según la reivindicación 16, en el que el dispositivo informático (167) está ubicado fuera de la protección de un cortafuegos, mediante lo cual se proporciona acceso a dicho servicio.
20.
Método según la reivindicación 18 ó la reivindicación 19, que incluye configurar (1340) el servidor global para actuar como proxy para el terminal remoto en relación con dicha solicitud de acceso a dicho servicio.
21.
Método según la reivindicación 16, que comprende además la etapa de establecer (1005) un enlace de comunicaciones desde el terminal remoto.
22.
Método según la reivindicación 18, que comprende además la etapa de usar una clave para permitir el acceso a través del cortafuegos.
23.
Método según la reivindicación 16, que comprende además la etapa de realizar (1530) servicios de identificación y autenticación antes de proporcionar acceso al elemento de espacio de trabajo sincronizado.
24.
Método según la reivindicación 16, que comprende además la etapa de entregar (1030) una miniaplicación que controla el acceso al servicio por el terminal remoto.
25.
Sistema según la reivindicación 16, que incluye acoplar una interfaz de usuario a la miniaplicación y permitir que un usuario solicite acceso al elemento de espacio de trabajo sincronizado a través de la interfaz de usuario y la miniaplicación.
26.
Método según la reivindicación 16, en el que el elemento de espacio de trabajo incluye información de versión.
27.
Método según la reivindicación 18 o la reivindicación 19, que comprende además las etapas siguientes:
imagen1 examinar (1535) un elemento de espacio de trabajo del segundo conjunto de datos de espacio de trabajo y generar unos primeros resultados de examen; examinar un elemento de espacio de trabajo del primer conjunto de datos de espacio de trabajo y generar unos segundos resultados de examen; comparar (1545) los primeros resultados de examen y los segundos resultados de examen; y realizar una respuesta de sincronización como reacción. 28. Método según la reivindicación 27, que comprende además la etapa de generar una versión preferida.
29.
Método según la reivindicación 16, que incluye configurar el servicio para usar el elemento de espacio de trabajo.
30.
Método de acceso a un servicio (615) proporcionado por un motor de servicios (175) y un elemento de espacio de trabajo sincronizado de datos de espacio de trabajo en un terminal remoto solicitante (105), comprendiendo el método las etapas siguientes:
imagen1 almacenar en un servidor global (115) una dirección (620) que apunta a dicho servicio; establecer (1005) un enlace de comunicaciones entre el terminal remoto (105) y el servidor global (115); transmitir (1010, 1025) hacia el servidor global (115) una solicitud de datos de configuración (356) para acceder a dicho servicio desde el terminal remoto (105); recibir (1015, 1030) unos datos de configuración (356) en el terminal remoto (105) desde el servidor global (115); generar una solicitud de acceso a dicho servicio sobre la base de los datos de configuración (356) recibidos, y transmitir (1025, 1035) la solicitud de acceso generada hacia el servidor global (115); acceder (1050) a dicho servicio en el terminal remoto, proporcionándose dicho acceso sobre la base de la dirección almacenada (620), y como respuesta a dicha solicitud de acceso; y sincronizar (1555) un original, modificable independientemente, de un elemento de espacio de trabajo de un primer conjunto de datos de espacio de trabajo (180) y una copia, modificable independientemente, de dicho elemento de espacio de trabajo de un segundo conjunto de datos de espacio de trabajo (163), almacenándose dicho primer conjunto de datos de espacio de trabajo en un dispositivo informático (165, 167), diferente al terminal remoto (105) que es un cliente del servidor global, y almacenándose dicho segundo conjunto de datos de espacio de trabajo en el servidor global, en el que dicho motor de servicios (175) está en dicho dispositivo informático (165, 167) y el servicio (615) se refiere a datos de espacio de trabajo de dicho primer conjunto de datos de espacio de trabajo.
31.
Método según la reivindicación 30, que comprende además:
imagen1
imagen1 almacenar una dirección que apunta a dicho elemento de espacio de trabajo; recibir una solicitud de acceso a dicho elemento de espacio de trabajo desde el terminal remoto; y proporcionar al terminal remoto acceso a dicho elemento de espacio de trabajo sincronizado. 32. Método según la reivindicación 30, en el que el dispositivo informático (165) está ubicado dentro de una Red de Área Local protegida por un cortafuegos (135), mediante la cual se proporciona acceso a dicho servicio.
33.
Método según la reivindicación 30, en el que el dispositivo informático (167) está ubicado fuera de la protección de un cortafuegos, mediante lo cual se proporciona acceso a dicho servicio.
34.
Método según la reivindicación 32 o la reivindicación 33, que incluye configurar (1340) el servidor global para actuar como proxy para el terminal remoto en relación con dicha solicitud de acceso a dicho servicio.
35.
Método según la reivindicación 30, que comprende además la etapa de establecer (1005) un enlace de comunicaciones desde el terminal remoto.
36.
Método según la reivindicación 32, que comprende además la etapa de usar una clave para permitir el acceso a través del cortafuegos.
37.
Método según la reivindicación 30, que comprende además la etapa de realizar (1530) servicios de identificación y autenticación antes de proporcionar acceso al elemento de espacio de trabajo sincronizado.
38.
Método según la reivindicación 30, que comprende además la etapa de entregar (1030) una miniaplicación que controla el acceso al servicio por el terminal remoto.
39.
Sistema según la reivindicación 31, que incluye acoplar una interfaz de usuario a la miniaplicación y permitir que un usuario solicite acceso al elemento de espacio de trabajo sincronizado a través de la interfaz de usuario y la miniaplicación.
40.
Método según la reivindicación 30, en el que el elemento de espacio de trabajo incluye información de versión.
41.
Método según la reivindicación 32 o la reivindicación 33, que comprende además las etapas siguientes:
imagen1 examinar (1535) un elemento de espacio de trabajo del segundo conjunto de datos de espacio de trabajo y generar unos primeros resultados de examen;
5
examinar un elemento de espacio de trabajo del primer conjunto de datos de espacio de trabajo y generar unos segundos resultados de examen; comparar (1545) los primeros resultados de examen y los segundos resultados de examen; y realizar una respuesta de sincronización como reacción.
42. Método según la reivindicación 41, que comprende además la etapa de generar una versión preferida.
10 43. Método según la reivindicación 30, que incluye configurar el servicio para usar el elemento de espacio de trabajo.
ES98936975T 1997-07-30 1998-07-23 Sistema y mã‰todo para acceder de manera global y segura a informaciã“n unificada en una red de ordenadores. Expired - Lifetime ES2353255T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US90311897A 1997-07-30 1997-07-30
US903118 1997-07-30

Publications (1)

Publication Number Publication Date
ES2353255T3 true ES2353255T3 (es) 2011-02-28

Family

ID=25416970

Family Applications (2)

Application Number Title Priority Date Filing Date
ES98936975T Expired - Lifetime ES2353255T3 (es) 1997-07-30 1998-07-23 Sistema y mã‰todo para acceder de manera global y segura a informaciã“n unificada en una red de ordenadores.
ES10163803T Expired - Lifetime ES2389882T3 (es) 1997-07-30 1998-07-23 Sistema y método para acceder globalmente y de manera segura a la información unificada en una red informática

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES10163803T Expired - Lifetime ES2389882T3 (es) 1997-07-30 1998-07-23 Sistema y método para acceder globalmente y de manera segura a la información unificada en una red informática

Country Status (9)

Country Link
EP (4) EP2172852B1 (es)
JP (2) JP2001512260A (es)
CN (1) CN1222886C (es)
AT (1) ATE483204T1 (es)
CA (1) CA2297969A1 (es)
DE (1) DE69841918D1 (es)
ES (2) ES2353255T3 (es)
IL (1) IL134231A0 (es)
WO (1) WO1999006900A2 (es)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
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
JP2000187646A (ja) * 1998-12-22 2000-07-04 Mitsubishi Electric Corp 情報転送システム
US6466236B1 (en) 1999-04-08 2002-10-15 Palm, Inc. System and method for displaying and manipulating multiple calendars on a personal digital assistant
US6308201B1 (en) 1999-04-08 2001-10-23 Palm, Inc. System and method for sharing data among a plurality of personal digital assistants
US6457062B1 (en) 1999-04-08 2002-09-24 Palm, Inc. System and method for synchronizing multiple calendars over wide area network
EP1049036A2 (en) * 1999-04-29 2000-11-02 Citibank, N.A. System and method for web trading
SE514769C2 (sv) * 1999-07-16 2001-04-23 Ericsson Telefon Ab L M Sätt och system för autentisering av en mobilkommunikationsanordning
US6694336B1 (en) 2000-01-25 2004-02-17 Fusionone, Inc. Data transfer and synchronization system
US6671757B1 (en) 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US8156074B1 (en) * 2000-01-26 2012-04-10 Synchronoss Technologies, Inc. Data transfer and synchronization system
US6944651B2 (en) 2000-05-19 2005-09-13 Fusionone, Inc. Single click synchronization of data from a public information store to a private information store
US6925476B1 (en) 2000-08-17 2005-08-02 Fusionone, Inc. Updating application data including adding first change log to aggreagate change log comprising summary of changes
JP3297037B2 (ja) * 2000-10-31 2002-07-02 サイボウズ株式会社 情報登録支援システム、情報登録支援装置並びに方法、及び情報記憶媒体
EP1344353B1 (en) 2000-12-22 2014-11-19 BlackBerry Limited Wireless router system and method
EP1410296A2 (en) 2001-06-12 2004-04-21 Research In Motion Limited Method for processing encoded messages for exchange with a mobile data communication device
EP2112625A3 (en) 2001-06-12 2010-03-10 Research in Motion Methods for pre-processing and rearranging secure E-mail for exchange with a mobile data communication device
US7546453B2 (en) 2001-06-12 2009-06-09 Research In Motion Limited Certificate management and transfer system and method
CA2454218C (en) 2001-07-10 2013-01-15 Research In Motion Limited System and method for secure message key caching in a mobile communication device
DE60229645D1 (de) 2001-08-06 2008-12-11 Research In Motion Ltd Verfahren und vorrichtung zur verarbeitung von kodierten nachrichten
CA2410118C (en) 2001-10-26 2007-12-18 Research In Motion Limited System and method for controlling configuration settings for mobile communication devices and services
US9332058B2 (en) 2001-11-01 2016-05-03 Benhov Gmbh, Llc Local agent for remote file access system
ATE339053T1 (de) 2001-12-07 2006-09-15 Research In Motion Ltd Verfahren und vorrichtung zur steuerung der informationsverteilung zu mobilstationen
FI114245B (fi) * 2002-11-13 2004-09-15 Nokia Corp Synkronointi-istunnon järjestäminen
JP4119295B2 (ja) * 2003-04-07 2008-07-16 東京エレクトロン株式会社 保守・診断データ蓄積サーバ、保守・診断データの蓄積・取得システム、保守・診断データの蓄積・提供システム
US7591017B2 (en) * 2003-06-24 2009-09-15 Nokia Inc. Apparatus, and method for implementing remote client integrity verification
WO2005010715A2 (en) 2003-07-21 2005-02-03 Fusionone, Inc. Device message management system
US8166101B2 (en) 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US8238696B2 (en) 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
GB0328383D0 (en) * 2003-12-06 2004-01-14 Ibm Improved quality of service for network connected clients
US7647256B2 (en) 2004-01-29 2010-01-12 Novell, Inc. Techniques for establishing and managing a distributed credential store
US9542076B1 (en) 2004-05-12 2017-01-10 Synchronoss Technologies, Inc. System for and method of updating a personal profile
US9094429B2 (en) 2004-08-10 2015-07-28 Blackberry Limited Server verification of secure electronic messages
JP4574335B2 (ja) * 2004-11-19 2010-11-04 株式会社日立製作所 セキュリティシステム、認証サーバ、認証方法、およびプログラム
CN101120569B (zh) * 2004-12-28 2011-07-27 意大利电信股份公司 用户从用户终端远程访问终端设备的远程访问系统和方法
CN100352231C (zh) * 2005-04-11 2007-11-28 深圳市天路软件开发有限公司 异地数据同步的传输方法及系统
CA2606193C (en) 2005-04-18 2015-03-17 Research In Motion Limited Method for providing wireless application privilege management
US7774827B2 (en) 2005-06-06 2010-08-10 Novell, Inc. Techniques for providing role-based security with instance-level granularity
JP4573710B2 (ja) * 2005-06-16 2010-11-04 日本電信電話株式会社 データベース管理装置、データベース管理方法及びデータベース管理プログラム
US7974945B2 (en) * 2005-06-16 2011-07-05 Information Appliance Associates System and method for synchronizing a BlackBerry with a Macintosh
US7953971B2 (en) 2005-10-27 2011-05-31 Research In Motion Limited Synchronizing certificates between a device and server
US8191105B2 (en) 2005-11-18 2012-05-29 Research In Motion Limited System and method for handling electronic messages
US8355701B2 (en) 2005-11-30 2013-01-15 Research In Motion Limited Display of secure messages on a mobile communication device
US7840207B2 (en) 2005-11-30 2010-11-23 Research In Motion Limited Display of secure messages on a mobile communication device
US7814161B2 (en) 2006-06-23 2010-10-12 Research In Motion Limited System and method for handling electronic mail mismatches
CN101068141B (zh) * 2006-08-18 2011-09-21 腾讯科技(深圳)有限公司 通信终端与网络通信系统之间数据同步的方法及装置
US7603435B2 (en) 2006-11-15 2009-10-13 Palm, Inc. Over-the-air device kill pill and lock
US20080115152A1 (en) 2006-11-15 2008-05-15 Bharat Welingkar Server-controlled heartbeats
US8135798B2 (en) 2006-11-15 2012-03-13 Hewlett-Packard Development Company, L.P. Over-the-air device services and management
US8179872B2 (en) 2007-05-09 2012-05-15 Research In Motion Limited Wireless router system and method
US7949355B2 (en) 2007-09-04 2011-05-24 Research In Motion Limited System and method for processing attachments to messages sent to a mobile device
CN101222355B (zh) * 2007-12-26 2010-07-21 北京航空航天大学 一种远程援助方法及其援助系统
US8479268B2 (en) * 2009-12-15 2013-07-02 International Business Machines Corporation Securing asynchronous client server transactions
UA56540U (ru) * 2010-12-03 2011-01-10 Игорь Николаевич Семенов Способ создания каталога закладок на сервере
US9733995B2 (en) * 2014-12-17 2017-08-15 Intel Corporation Scalable synchronization mechanism for distributed memory
US20200321107A1 (en) * 2015-05-19 2020-10-08 Iryou Jyouhou Gijyutu Kenkyusyo Corporation Integrated multi-facility electronic medical record system
JP2017028590A (ja) * 2015-07-25 2017-02-02 滋春 神山 関連付けられた複数のsimカードを挿入した各々の携帯電話やスマートフォンを使い、電池切れの際電池交換や携帯充電器の使用を不要にした通信システム
JP7277563B2 (ja) * 2018-04-18 2023-05-19 アイボス・インコーポレイテッド ハイブリッドクラウドコンピューティングネットワーク管理

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4897781A (en) * 1987-02-13 1990-01-30 International Business Machines Corporation System and method for using cached data at a local node after re-opening a file at a remote node in a distributed networking environment
US5586260A (en) * 1993-02-12 1996-12-17 Digital Equipment Corporation Method and apparatus for authenticating a client to a server in computer systems which support different security mechanisms
US5623601A (en) * 1994-11-18 1997-04-22 Milkway Networks Corporation Apparatus and method for providing a secure gateway for communication and data exchanges between networks
WO1996017306A2 (en) * 1994-11-21 1996-06-06 Oracle Corporation Media server
US5734828A (en) * 1995-08-30 1998-03-31 Intel Corporation System for accessing/delivering on-line/information services via individualized environments using streamlined application sharing host and client services
US5647002A (en) 1995-09-01 1997-07-08 Lucent Technologies Inc. Synchronization of mailboxes of different types
US5572643A (en) * 1995-10-19 1996-11-05 Judson; David H. Web browser with dynamic display of information objects during linking
WO1997015885A1 (en) * 1995-10-25 1997-05-01 Open Market, Inc. Managing transfers of information in a communications network
US5708709A (en) * 1995-12-08 1998-01-13 Sun Microsystems, Inc. System and method for managing try-and-buy usage of application programs

Also Published As

Publication number Publication date
EP2172852A3 (en) 2011-11-09
JP2009163755A (ja) 2009-07-23
EP2302872A2 (en) 2011-03-30
ATE483204T1 (de) 2010-10-15
EP2172852A2 (en) 2010-04-07
CN1222886C (zh) 2005-10-12
EP1018066B1 (en) 2010-09-29
DE69841918D1 (de) 2010-11-11
IL134231A0 (en) 2001-04-30
JP2001512260A (ja) 2001-08-21
WO1999006900A2 (en) 1999-02-11
EP2224673A3 (en) 2010-09-15
EP2302872A3 (en) 2014-10-08
JP4563488B2 (ja) 2010-10-13
CA2297969A1 (en) 1999-02-11
WO1999006900A3 (en) 1999-04-08
ES2389882T3 (es) 2012-11-02
CN1269032A (zh) 2000-10-04
EP1018066A4 (en) 2004-11-03
EP2172852B1 (en) 2015-01-07
EP1018066A2 (en) 2000-07-12
EP2224673B1 (en) 2012-06-20
EP2224673A2 (en) 2010-09-01

Similar Documents

Publication Publication Date Title
ES2353255T3 (es) Sistema y mã‰todo para acceder de manera global y segura a informaciã“n unificada en una red de ordenadores.
US7039679B2 (en) System and method for globally and securely accessing unified information in a computer network
US9361603B2 (en) System and method for globally and securely accessing unified information in a computer network
US7054905B1 (en) Replacing an email attachment with an address specifying where the attachment is stored
US5961590A (en) System and method for synchronizing electronic mail between a client site and a central site
US7412447B2 (en) Remote file management using shared credentials for remote clients outside firewall
US20030005333A1 (en) System and method for access control
JP2002523973A (ja) コンピュータ・ネットワークにおけるサービスへの安全なアクセスを可能にするシステムおよび方法
EP2518972A1 (en) System and method for device addressing
JP4712196B2 (ja) 認証装置及び方法、ネットワークシステム、記録媒体、コンピュータプログラム
JP3661776B2 (ja) クライアントのプロファイル情報をサーバに提供する方法とシステム
JP2001005746A (ja) ファイル転送システム
JP2008065814A (ja) 情報アクセス制御方法
JP2003242122A (ja) ネットワークシステム、情報処理装置および方法、記録媒体、並びにプログラム
JP2008046875A (ja) 通信フィルタリングシステムおよび方法
CA2616759A1 (en) System and method for globally and securely accessing unified information in a computer network