System and method for synchronizing electronic mail across a network
Abstract
Procedure for synchronizing e-mails between a mail memory in a first site, the e-mails being addressed to a client (840) in the first site, and a portable remote terminal (805) in a second site, the procedure comprising the use of a synchronization system (860) to determine whether e-mails should be synchronized in the mail memory at a first site and send e-mails that should be synchronized, and receive modifications of e-mails that should be synchronized , through a communications channel (815, 825), the synchronization system being located at the first site, in which the remote terminal includes an e-mail module for reading and writing emails, RAM and a device data storage, in which the mail memory in the first site is in the mail server (850), the first site comprises a Local Area Network (LAN) protected from the Internet by a LAN firewall (870), and the second site is external to the LAN firewall (870), in which the procedure comprises: providing the synchronization system in the first site separate from the mail server, the system being included in a computer that is a client of the server of mail and being coupled to the mail server through the LAN; arrange the synchronization system on the first site: to retrieve an e-mail that must be synchronized from the mail server to the synchronization system through the LAN; to send the e-mail that must be synchronized from the synchronization system, and to receive modifications of e-mails that must be synchronized to the synchronization system, through the communications channel (815, 825) through the LAN firewall, the communication channel having been established via the Internet with a server (830) in a third external site with respect to the LAN firewall using a protocol that allows communication through the LAN firewall, the server in the third site being connected to the LAN firewall over the Internet; and to use an initiation criterion to determine when synchronization should be initiated, the initiation criterion comprising whether a predetermined number of e-mails have been received; arrange the remote terminal, in the second site, to be in communication with the server in the third site; and arrange the e-mail module in the remote terminal to download the e-mail that must be synchronized from the server in the third site and to store the downloaded e-mail in the data storage device.

Term
Term ended
Projected expiry passed 21 July 2018, 8.2 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
27 claims: 17 independent, 10 dependent
- 1ES 2 315 960 T3 ES 2 315 960 T3 CLAIMS REIVINDICACIONES 1. E-mail synchronization procedure between a mail memory at a first site, the e-mails being addressed to a client (840) at the first site, and a portable remote terminal (805) at a second site, the procedure comprising the use of a synchronization system (860) to determine whether to synchronize emails in the mail memory on a first site and send emails to be synchronized, and receive modifications to emails to be synchronized, through a communications channel (815, 825), the synchronization system being located at the first site, in which the remote terminal includes an e-mail module for reading and writing e-mails, the RAM memory and a recording device. data storage, in which the mail memory at the first site is on the mail server (850), the first site comprises a Local Area Network (LAN) protected from the Internet by a LAN firewall (870), and the second site is external to the LAN firewall (870), where the procedure comprises:1. Procedimiento de sincronización de e-mails entre una memoria de correo en un primer sitio, estando dirigidos los e-mails a un cliente (840) en el primer sitio, y un terminal remoto portátil (805) en un segundo sitio, comprendiendo el procedimiento la utilización de un sistema de sincronización (860) para determinar si se deben sincronizar los emails en la memoria de correo en un primer sitio y enviar e-mails que se deben sincronizar, y recibir modificaciones de e-mails que se deben sincronizar, a través de un canal de comunicaciones (815, 825), estando localizado el sistema de sincronización en el primer sitio, en el que el terminal remoto incluye un módulo de e-mails para leer y redactar emails, la memoria RAM y un dispositivo de almacenamiento de datos, en el que la memoria de correo en el primer sitio está en servidor de correo (850), el primer sitio comprende una Red de Area Local (LAN) protegida de Internet por un cortafuegos de LAN (870), y el segundo sitio es externo al cortafuegos de LAN (870), en el que el procedimiento comprende: proporcionar el sistema de sincronización en el primer sitio separado del servidor de correo, estando incluido el sistema en un ordenador que es un cliente del servidor de correo y estando acoplado al servidor de correo a través de la red LAN;providing the synchronization system at the first site separate from the mail server, the system being included in a computer that is a client of the mail server and being coupled to the mail server via the LAN;arrange the synchronization system at the first site: disponer el sistema de sincronización en el primer sitio: para recuperar un e-mail que se debe sincronizar desde el servidor de correo al sistema de sincronización a través de la red LAN;to retrieve an e-mail to be synchronized from the mail server to the synchronization system via the LAN;para enviar el e-mail que se debe sincronizar desde el sistema de sincronización, y para recibir modificaciones de e-mails que se deben sincronizar al sistema de sincronización, mediante el canal de comunicaciones (815, 825) a través del cortafuegos de LAN, habiendo sido establecido el canal de comunicaciones mediante Internet con un servidor (830) en un tercer sitio externo con respecto al cortafuegos de LAN utilizando un protocolo que permite la comunicación a través del cortafuegos de LAN, estando conectado el servidor en el tercer sitio al cortafuegos de LAN a través de Internet;y para utilizar un criterio de iniciación para determinar cuándo se debe iniciar la sincronización, comprendiendo el criterio de iniciación si se ha recibido un número predeterminado de e-mails;to send the e-mail to be synchronized from the synchronization system, and to receive modifications of e-mails to be synchronized to the synchronization system, through the communication channel (815, 825) through the LAN firewall, the Internet communication channel having been established with a server (830) at a third site external to the LAN firewall using a protocol that allows communication through the LAN firewall, the server at the third site being connected to the LAN firewall via the Internet;and to use an initiation criterion to determine when the synchronization should start, the initiation criterion comprising whether a predetermined number of e-mails have been received;arranging the remote terminal, at the second site, to be in communication with the server at the third site;and arranging the e-mail module in the remote terminal to download the e-mail to be synchronized from the server at the third site and to store the downloaded e-mail in the data storage device. disponer el terminal remoto, en el segundo sitio, para estar en comunicación con el servidor en el tercer sitio;y disponer el módulo de e-mails en el terminal remoto para descargar el e-mail que se debe sincronizar a partir del servidor en el tercer sitio y para almacenar el e-mail descargado en el dispositivo de almacenamiento de datos.
- 6A method according to any one of the preceding claims, in which the protocol that allows communications through the firewall is a commonly enabled protocol. 6. Procedimiento según cualquiera de las reivindicaciones anteriores, en el que el protocolo que permite las comunicaciones a través del cortafuegos es un protocolo comúnmente habilitado.
- 7Method according to any of the preceding claims, in which the protocol that allows communications through the firewall is a hypertext transfer protocol. 7. Procedimiento según cualquiera de las reivindicaciones anteriores, en el que el protocolo que permite las comunicaciones a través del cortafuegos es un protocolo de transferencia de hipertexto.
- 8Method according to any of the preceding claims, in which the communication channel through the firewall is a secure communication channel. 8. Procedimiento según cualquiera de las reivindicaciones anteriores, en el que el canal de comunicaciones a través del cortafuegos es un canal de comunicaciones seguro.
- 10Method according to any of the preceding claims, comprising the translation of an e-mail format before communication through the communication channel through the firewall. 10. Procedimiento según cualquiera de las reivindicaciones anteriores, que comprende la traducción de un formato de e-mail antes de la comunicación a través del canal de comunicaciones mediante el cortafuegos. ES 2 315 960 T3 ES 2 315 960 T3
- 11Procedimiento según cualquiera de las reivindicaciones anteriores, que comprende la compresión de datos para la comunicación mediante el canal de comunicaciones a través del cortafuegos. eleven. Method according to any of the preceding claims, comprising data compression for communication through the communication channel through the firewall.
- 12Method according to any of the preceding claims, in which the synchronization system is capable of determining whether the e-mails of a specific folder structure for a particular user should be synchronized. 12. Procedimiento según cualquiera de las reivindicaciones anteriores, en el que el sistema de sincronización es capaz de determinar si se deben sincronizar los e-mails de una estructura de carpetas específica para un usuario particular.
- 13Method according to any of the preceding claims, in which the remote terminal is a smart phone ("smartphone"). 13. Procedimiento según cualquiera de las reivindicaciones anteriores, en el que el terminal remoto es un teléfono inteligente (“smartphone”).
- 14E-mail synchronization system (860) and a portable remote terminal (805) to execute an e-mail synchronization procedure between a mail memory at a first site, the e-mails being addressed to a client (840) at the first site, and the remote terminal (805) at a second site, the synchronization system being adapted at the first site to determine whether to synchronize e-mails in the mail memory at the first site and to send e-mails to be synchronized, and to receive modifications to e-mails that are to be synchronized. must synchronize through a communication channel (815, 825), in which the remote terminal includes an e-mail module to read and compose e-mails, the RAM memory and a data storage device, wherein the mail memory at the first site is on a mail server (850), the first site comprises a Local Area Network (LAN) (810) protected from the Internet by a LAN firewall (870), and the second site is external to the LAN firewall, in which the synchronization system is provided at the first site separate from the mail server, the synchronization system being included in a computer that is a client of the mail server and being coupled to the mail server via the LAN, in which the synchronization system is adapted:14. Sistema de sincronización de e-mails (860) y un terminal remoto portátil (805) para ejecutar un procedimiento de sincronización de e-mails entre una memoria de correo en un primer sitio, estando dirigidos los e-mails a un cliente (840) en el primer sitio, y el terminal remoto (805) en un segundo sitio, estando adaptado el sistema de sincronización en el primer sitio para determinar si se deben sincronizar los e-mails en la memoria de correo en el primer sitio y para enviar e-mails que se deben sincronizar, y para recibir modificaciones de e-mails que se deben sincronizar mediante un canal de comunicaciones (815, 825), en el que el terminal remoto incluye un módulo de e-mails para leer y redactar e-mails, la memoria RAM y un dispositivo de almacenamiento de datos, en el que la memoria de correo en el primer sitio está en un servidor de correo (850), el primer sitio comprende una Red de Area Local (LAN) (810) protegida de Internet mediante un cortafuegos de LAN (870), y el segundo sitio es externo con respecto al cortafuegos de LAN, en el que el sistema de sincronización está previsto en el primer sitio separado del servidor de correo, estando incluido el sistema de sincronización en un ordenador que es un cliente del servidor de correo y estando acoplado al servidor de correo a través de la red LAN, en el que el sistema de sincronización está adaptado: To retrieve an e-mail to be synchronized from the mail server to the synchronization system via the LAN: para recuperar un e-mail que se debe sincronizar desde el servidor de correo al sistema de sincronización mediante la red LAN: para enviar el e-mail que se debe sincronizar del sistema de sincronización, y para recibir las modificaciones de emails que se deben sincronizar al sistema de sincronización, a través del canal de comunicaciones (815, 825) mediante el cortafuegos de LAN, habiendo sido establecido el canal de comunicaciones a través de Internet con un servidor (830) en el tercer sitio externo con respecto al cortafuegos de LAN utilizando un protocolo que permite la comunicación a través del cortafuegos de LAN, estando conectado el servidor en el tercer sitio con el cortafuegos de LAN a través de Internet, en el que el terminal remoto, en el segundo sitio, está en comunicación con el servidor en el tercer sitio;y para utilizar un criterio de iniciación para determinar cuándo se debe iniciar la sincronización, comprendiendo el criterio de iniciación si se ha recibido o no un número predeterminado de e-mails;y en el que el módulo de e-mails en el terminal remoto está adaptado para descargar el e-mail que se debe sincronizar desde el servidor en el tercer sitio y para almacenar el e-mail descargado en el dispositivo de almacenamiento de datos. to send the e-mail to be synchronized from the synchronization system, and to receive the modifications of emails to be synchronized to the synchronization system, through the communication channel (815, 825) through the LAN firewall, having been established the communication channel through the Internet with a server (830) at the third external site with respect to the LAN firewall using a protocol that allows communication through the LAN firewall, the server at the third site being connected to the LAN firewall via the Internet, wherein the remote terminal, at the second site, is in communication with the server at the third site;and to use an initiation criterion to determine when the synchronization should start, the initiation criterion comprising whether or not a predetermined number of e-mails have been received;and wherein the e-mail module in the remote terminal is adapted to download the e-mail to be synchronized from the server at the third site and to store the downloaded e-mail on the data storage device.
- 19E-mail synchronization system and portable remote terminal according to any of claims 14 to 18, in which the protocol that allows communications through the firewall is a commonly enabled protocol. 19. Sistema de sincronización de e-mails y terminal remoto portátil según cualquiera de las reivindicaciones 14 a 18, en el que el protocolo que permite las comunicaciones mediante el cortafuegos es un protocolo comúnmente habilitado.
- 20Sistema de sincronización de e-mails y terminal remoto portátil según cualquiera de las reivindicaciones 14 a 19, en el que el protocolo que permite las comunicaciones a través del cortafuegos es un protocolo de transferencia de hipertexto. twenty. E-mail synchronization system and portable remote terminal according to any of claims 14 to 19, in which the protocol that allows communications through the firewall is a hypertext transfer protocol. ES 2 315 960 T3 ES 2 315 960 T3
- 21Sistema de sincronización de e-mails y terminal remoto portátil según cualquiera de las reivindicaciones 14 a 20, en el que el canal de comunicaciones a través del cortafuegos es un canal de comunicaciones seguro. twenty-one. E-mail synchronization system and portable remote terminal according to any of claims 14 to 20, wherein the communication channel through the firewall is a secure communication channel.
- 232. 3. E-mail synchronization system and portable remote terminal according to any of claims 14 to 23. Sistema de sincronización de e-mails y terminal remoto portátil según cualquiera de las reivindicaciones 14 a 22, en el que el sistema de sincronización está operativo para traducir un formato de e-mail antes de la comunicación mediante el canal de comunicaciones a través del cortafuegos. 22, wherein the synchronization system is operative to translate an e-mail format prior to communication via the communication channel through the firewall.
- 24E-mail synchronization system and portable remote terminal according to any of claims 14 to 24. Sistema de sincronización de e-mails y terminal remoto portátil según cualquiera de las reivindicaciones 14 a 23, en el que el sistema de sincronización está operativo para comprimir datos para la comunicación a través del canal de comunicaciones mediante el cortafuegos. 23, wherein the synchronization system is operative to compress data for communication over the communication channel through the firewall.
- 25E-mail synchronization system and portable remote terminal according to any of claims 14 to 25. Sistema de sincronización de e-mails y terminal remoto portátil según cualquiera de las reivindicaciones 14 a 24, en el que el sistema de sincronización es capaz de determinar si se deben sincronizar los e-mails de una estructura de carpetas específica para un usuario particular. 24, wherein the synchronization system is capable of determining whether to synchronize emails from a specific folder structure for a particular user.
- 26E-mail synchronization system and portable remote terminal according to any of claims 14 to 26. Sistema de sincronización de e-mails y terminal remoto portátil según cualquiera de las reivindicaciones 14 a 25, en el que el terminal remoto es un teléfono inteligente (“smartphone”). 25, wherein the remote terminal is a smart phone ("smartphone").
- 27E-mail system that includes:27. Sistema de e-mails que comprende: el sistema de sincronización de e-mails y terminal remoto portátil según cualquiera de las reivindicaciones 14 a 26;y el servidor (830) en el tercer sitio. the e-mail synchronization system and portable remote terminal according to any one of claims 14 to 26;and the server (830) at the third site.
Independent claims17
126 paragraphs in 6 sections, as filed
ES 2 315 960 T3
DESCRIPTION
System and procedure for synchronizing email over a network.
Background of the invention
1. Field of the invention
The present invention relates generally to computer networks and, more particularly, to a system and a method for synchronizing electronic mail over a computer network.
2. Description of the background of the technique
Data consistency is a significant concern for computer users. For example, when multiple independently modifiable copies of a document are kept, a user runs the risk of using an outdated version. By the time the user reports an inconsistency, there may already have been a loss of data or abnormal communication between the parties. The user must then spend more time trying to reconcile inconsistent versions and resolve communication anomalies.
Data inconsistency problems are exacerbated when copies of a document are inaccessible. For example, when multiple copies of a document are kept at different positions on the network, network security systems, such as conventional firewall or firewall technology, compromise the accessibility of the data. That is, a user can access only one particular location of these network locations. Without access to the other sites, the user cannot confirm that the version on an accessible site is the most recent draft.
The problems of data consistency and accessibility arise in the area of electronic mail (e-mail). For example, a user could maintain a database of emails at work. Based on the security systems implemented by the work intranet network, it is possible that the user cannot access the databases and thus cannot read or respond to e-mails until returning to work. Additionally, a traveling user currently working at a remote terminal may not have the dedicated application programs necessary to enable intranet network security. Also, when multiple sites are maintained, the travel user has the burden of keeping track of all procedures and passwords to bypass the security system at each site.
These problems are further aggravated when e-mail programs are used from different providers and which implement different protocols. For example, the Nestcape Navigator ™ email client and the Outlook Express ™ email client each handle email over computer networks. However, each email client uses different formats, stores emails in different files, and implements different protocols. Thus, the emails are not easily interchangeable.
Therefore, a system and procedure is needed to provide users with the consistency and accessibility of e-mail over a computer network.
The document entitled "Lotus Notes Internet Cookbook for Notes Release 4" published on February 14, 1996, describes the integration of Lotus Notes on the Internet. Lotus Notes provides a mechanism to route e-mails, in a network called Notes, inside or outside of it; in addition, Lotus Notes provides a mechanism for database replication on a network called Notes and between networks called Notes. E-mails that are addressed to and delivered to a Notes recipient are stored in a mail file for the recipient. This mail file is a database and is stored on a Notes server. Database replication involves copying, between databases, changes to the content of a database from a previous replication case; this process of copying changes occurs only on a manual or scheduled basis, and is independent of the data type and therefore replicating data types in the database.
Summary of the invention
This is defined in the appended claims.
More particularly, according to a first aspect of the present invention, a method of synchronizing e-mails is provided between a mail memory at a first site, the e-mails being addressed to a client at a first site, and a portable remote terminal in a second place, the procedure comprising the use of a synchronization system to determine whether to synchronize e-mails in the mail memory in the first place and to send e-mails to be synchronized, and to receive modifications to e-mails that are to be synchronized. must synchronize, through a communication channel, the synchronization system being located at the first site, in which the remote terminal includes an e-mail module to read and compose e-mails, RAM memory and a data storage device,
ES 2 315 960 T3 in which the mail memory at the first site is on a mail server, the first site comprises a Local Area Network (LAN) protected from the Internet by a LAN firewall, and the second site is external to the LAN firewall, where the procedure comprises:
providing the synchronization system at the first site separate from the mail server, the system being included in a computer that is a client of the mail server and being coupled to the mail server via the LAN;
arrange the synchronization system at the first site:
to retrieve an e-mail to be synchronized from the mail server to the synchronization system via the LAN;
to send the e-mail to be synchronized from the synchronization system, and to receive modifications of e-mails to be synchronized to the synchronization system, through the communication channel through the LAN firewall, the channel having been established communication via the Internet with a server at a third site external to the LAN firewall using a protocol that enables communication through the LAN firewall, the server at the third site being connected to the LAN firewall via the Internet; and to use an initiation criterion to determine when the synchronization should start, the initiation criterion comprising whether or not a predetermined number of e-mails have been received;
arranging the remote terminal, at the second site, to be in communication with the server at the third site; and arranging the e-mail module in the remote terminal to download the e-mail to be synchronized from the server at the third site and to store the downloaded e-mail in the data storage device. According to a further aspect of the invention, an e-mail synchronization system and a portable remote terminal are provided for executing an e-mail synchronization procedure between a mail memory at a first site, the e-mails being addressed to a client at the first site, and the remote terminal at a second site, the synchronization system being adapted at the first site to determine whether to synchronize e-mails in the mail memory at the first site and to send e-mails to be synchronized, and to receive e-mail modifications to be synchronized. must synchronize through the communication channel, including the remote terminal an e-mail module to read and compose e-mails, the RAM memory and a data storage device, wherein the mail memory at the first site is on a mail server, the first site comprises a Local Area Network (LAN) protected from the Internet by a LAN firewall, and the second site is external to the firewall of LAN, in which the synchronization system is provided at the first site separate from the mail server, the synchronization system being included in a computer that is a client of the mail server and being coupled to the mail server through the LAN, the synchronization system being adapted:
To retrieve an e-mail to be synchronized from the mail server to the synchronization system via the LAN:
to send the e-mail to be synchronized from the synchronization system, and to receive the modifications of e-mails to be synchronized to the synchronization system, through the communication channel through the LAN firewall, having established the communication channel through the Internet with a server at the third external site with respect to the LAN firewall using a protocol that allows communication through the LAN firewall, the server at the third site being connected to the LAN firewall via the Internet, wherein the remote terminal, at the second site, is in communication with the server at the third site; and to use an initiation criterion to determine when the synchronization should start, the initiation criterion comprising whether or not a predetermined number of e-mails have been received; and wherein the e-mail module in the remote terminal is adapted to download the e-mail to be synchronized from the server at the third site and to store the downloaded e-mail on the data storage device.
In addition, the system may include a communication module to establish a communication channel with the server at the third site. If the server at the third site is protected by a firewall, the communications module may be authorized to establish a secure communications link through the firewall with the server at the third site. Furthermore, the system may also comprise a web engine to use the Hypertext Transfer Protocol (HTTP) to send the e-mail through the communication channel to the server at the third site. The system can be stored on a computer-readable storage medium.
The system and procedure preferably use a trusted third party to allow email synchronization over a network. The server at the third site can be a global server. By
Consequently, a user who maintains for example a work site, a main presentation site and the global server site can synchronize emails between the three sites. The roaming user can access and reply to e-mails while away from the addressed site. Since the system and procedure operate over the Internet, synchronization can occur over any distance. Since the system and the method include the translation of formats, it is possible to merge emails between different application programs and different platforms.
Furthermore, since user preferences can be pre-set, the present system and method can operate without the need for customer user attention.
Brief description of the drawings
Figure 1 is a block diagram illustrating a computer network not in accordance with the present invention;
Figure 2 is a block diagram illustrating details of a service server depicted in Figure 1
Figure 3 is a block diagram illustrating details of the desktop computer of Figure 1;
Figure 4 is a block diagram illustrating details of the base system of Figure 1;
Figure 5 is a block diagram illustrating details of the sync agent depicted in Figure 1;
Figure 6 is a graphical representation of an example marker in global format;
Figure 7 is a flow chart illustrating a procedure for synchronizing multiple copies of a workspace item on a secure network;
Figure 8 is a block diagram illustrating a computer network in accordance with an embodiment of the present invention;
Figure 9 is a block diagram illustrating details of a customer depicted in Figure 8;
Figure 10 is a block diagram illustrating details of the base system depicted in Figure 9;
Figure 11 is a block diagram illustrating details of a global server depicted in Figure 8;
Figure 12 is a block diagram illustrating details of the sync agent depicted in Figure 8;
Figure 13 is a block diagram illustrating details of the remote terminal depicted in Figure 8;
Figure 14 is a flow chart illustrating a procedure for synchronizing an email on a computer network; Y
Figure 15 is a flow chart illustrating a procedure for accessing an email from the global server depicted in Figure 8.
Detailed description of the preferred embodiment example
Figure 1 is a block diagram illustrating a computer network 100, not in accordance with the present invention, and comprising a first node, such as a remote computer terminal 102, coupled through a communication channel 104 , such as the Internet network, to a global server 106. The global server 106 is coupled, in turn, through a communication channel 108, such as the Internet network, to a second node, such as an Area Network Local (LAN) 110. The global server 106 is protected by a global firewall 112 and the LAN 110 is protected by a LAN network firewall 114.
The LAN 110 includes a system bus 126 that couples the LAN network firewall 114 to an email server 128 that has an email folder 138 containing emails, to a file server 132, which has an email folder. files 142 that contain files, to a calendar server 130 that has a calendar folder 140 that contains calendar data, and to a desktop computer 134 having a web browser 152 and a bookmark folder 144 containing bookmarks. It will be appreciated that the e-mail folder 138, the file folder 142, the calendar folder 140, and the bookmark folder 144, or parts thereof, may be stored in different locations, such as on the desktop computer 134. E-mail folder 138, file folder 142, calendar folder 140, and bookmark folder 144 are, by way of example, grouped by similar information and are collectively referred to in this description as "workspace data. ”136. Those skilled in the art will recognize that workspace data 136 may include other types of data, such as a
ES 2 315 960 T3 application program, such as Microsoft Word 6.0.1 and the documents created using them. It will further be appreciated that e-mail folder 138, file folder 142, calendar folder 140, and bookmark folder 144 can each be divided into workspace items, wherein each space item folder The workspace or each individual workspace element is identified by particular version information 255 (described below with reference to Figure 2). According to each e-mail or e-mail folder, file or file folder, calendar or calendar folder, bookmark or bookmark folder, document or document folder, etc., may be referred to as “a space item of work".
Each element of workspace data workspace 136 on LAN 110 is kept in a predetermined format, referred to as format A, which is based on the service engine 245 (Figure 2) that created it. For example, the web browser 152 on the desktop computer 134 may be the Netscape Navigator ™ web browser and the bookmarks in the bookmarks folder 144 thus created are kept in the A format. Although format A is described as a single format, one of skill in the art knows that format A actually includes a format for each type of information, for example, there will be a format A for bookmarks, a format A for files, a format A for calendar data, an A format for emails, etc.
Remote terminal 102 stores service engines 154 for maintaining workspace data 116, which may include information common to information in workspace data 136. Data in workspace 116 is maintained in one format, referred to as format B, which may be different from Format A. Additionally, Format B is based on the service engines 154 that create the workspace elements. For example, if one of the service engines 154 is the Internet Explorer ™ web browser (not shown), then the bookmarks (not shown) thus created are kept in format B. Although format B is being described as a single format , one of ordinary skill in the art knows that format B actually includes one format for each type of information. In addition, the data in workspace 116 also includes version information 150 similar to version information 255 described below with reference to Figure 2.
It will be appreciated that remote terminal 102 may comprise a smartphone, a Personal Data Assistant (PDA), such as the PalmPilot system manufactured by US Robotics, Inc., a laptop computer, etc. In the case of a smartphone, the data in workspace 116 can include phone numbers and emails. Like a PDA, the data in workspace 116 can comprise addresses, calendar data, and emails. Like a laptop, the data in workspace 116 may comprise the same types of information as data in workspace 136.
The global server 106 acts as a third party administrator. Global server 106 stores independently modifiable copies of selected portions of workspace data 136 and 116, collectively referred to herein as workspace data 120. Accordingly, the workspace data 120 includes an independently modifiable copy of each workspace item in the selected portions of the workspace 136 and 116 data and an independently modifiable copy of each corresponding version information 255 (Figure 2 ) and 150. The version information copies are collectively referred to in this specification as version information 148 and are also described with reference to Figure 2.
The global server 106 maintains the data in workspace 120 in a format, referred to as a "global format", that is selected to be easily translatable by the global translator 122 to and from format A and to and from format B. Although the global format is being described as a single format, one skilled in the art knows that the global format actually comprises a global format for each type of information, for example, there will be a global format for bookmarks, a global format for files, a global format for calendar data, a global format for emails, etc. An example of a bookmarks workspace element, in global format, is described in detail below with reference to Figure 6.
In addition, the network 100 comprises synchronization means, comprising a base system 146 stored within the LAN 110 and for example, on the desktop computer 134. In addition, the network 100 includes a Synchronization Agent 124 stored outside the firewall of LAN network 114 and preferably on global server 106. The base system 146 and the synchronization agent 124 cooperate to synchronize selected portions of the data in the workspace 136 with selected portions of the data in the workspace 120. The synchronization means may individually synchronize elements of the workspace, for example , specific word processor documents, or can sync workspace item folders, for example, a bookmarks folder. In general, the base system 146 manages the selected portion of the workspace 136 data within the LAN 110 and the sync agent 124 manages the selected portions of the workspace 120 data within the global server 106. You will appreciate that the global translator 122 cooperates with the synchronization means to translate data formats to and from the global format. As described in greater detail below with reference to Figure 4, the base system 190 preferably initiates and controls data synchronization.
The synchronization means may further include, stored in the remote terminal 102, a base system 118 that operates in a similar way to the base system 146. The base system 118, in the remote terminal 102, cooperates with the synchronization agent 124 to synchronize selected parts of the data in workspace 116 with selected parts of the data in workspace 120. As described in greater detail below with reference to Figure 4, the base system 118, at the remote terminal 102, preferably initiates and controls the
ES 2 315 960 T3 data synchronization with the global server 106. Furthermore, it is noted that the distribution of tasks between the base system 118 at the remote terminal 102 and the synchronization agent 124 at the global server 106 can vary. Sometimes, especially when the remote terminal 102 is a relatively less computationally powerful device (such as a smartphone or PDA), most of the real computationally intensive work will occur within the sync agent 124 on the server. global 106. In other situations, for example when remote terminal 102 is a fully configured PC, most of the computationally intensive work will occur locally on base system 118 at remote terminal 102.
Accordingly, the synchronization means independently synchronizes the selected parts of the data in the workspace 116 and 136 with the selected parts of the data in the workspace 120. Thus, the synchronization means indirectly synchronizes the data in the workspace 136 with data from workspace 116.
Figure 2 is a block diagram illustrating details of a service server 200, where each of e-mail server 145, file server 150, calendar server 155, and desktop computer 160 is an example. from said server. The service server 200 includes a Central Processing Unit (CPU) 205 such as an Intel Pentium® microprocessor or a Motorla Power PC® microprocessor. An input device 210 such as a keyboard and mouse, and an output device 215 such as a cathode ray tube (CRT) monitor, are coupled via a signal bus 220 to the CPU 205. A communications interface 225 (such as an Ethernet port), a data storage device 230 (such as a magnetic disk), and a random access memory (RAM) 235 are further coupled via signal bus 200 to CPU 205.
An operating system 240 comprises a program for controlling processing by CPU 205 and is typically stored in data storage device 230 and loaded into RAM 235 for execution. A service engine 245 includes a program for performing a particular service such as maintaining an email database, a file database, a calendar database, or a bookmark database. Service engine 245 may also be stored in data storage device 230 and loaded into RAM 235 for execution.
To perform a service, the service engine 245 creates service data 250 (for example, an e-mail or an e-mail folder 138 containing e-mails, a file or a file folder 142 containing files, data from calendars or a calendar folder 140 containing calendar data, a bookmark or a bookmark folder 144 containing bookmarks, etc.) in format A according to predetermined protocols. The service engine 245 stores the data 250 in the data storage device 250. The service data 250 comprises version information 255 indicating the date and time of the last modification and the state at the time of the last interaction with the device. global server 106.
For example, if service data 250 is created and selected for merging with data from the global server workspace 120, then the 255 version information for service data 250, may comprise the last modified date and an empty set, indicating the status as of the last interaction with the global server 106. From the version information 255, the base system 146 determines that the service data 250, in its entirety, was not merged with the data from the global server workspace 120. Similarly, if the service data 255 included the items 1, 2, and 3 from the last modification, then the status prior to the last interaction will indicate that the 255 service data included items 1, 2, and 3. If the service data 255 currently includes items 2, 3, and 4, then the base system 140 will determine that, since the last synchronization, item 1 was deleted and item 4 was added.
It will be appreciated that the version information 148 on the global server 106 includes information similar to the version information 255. That is, the version information 148 will include information indicating the date and time the version was last modified and the status at the time of the last interaction with each customer. Service engine 245 operates to update version 255 information after modifications are made and after synchronization occurs.
Figure 3 is a block diagram illustrating details of desktop computer 160, comprising a CPU 305, an input device 310, an output device 315, a communication interface 325, a storage device 330, and RAM memory 335. , each coupled to a signal bus 320.
An operating system 340 includes a program to control processing by CPU unit 305 and is typically stored in data storage device 330 and loaded into RAM 335 for execution. A web browser 152 (that is, a particular service engine 245, Figure 2) includes a service program in format A to manage the bookmark folder 144 (that is, data of particular services 250, Figure 2) that includes information on version 350 (that is, particular version information 255, Figure 2). Web browser 152 may also be saved to data storage device 330 and loaded into RAM 335 for execution. Bookmark folder 144 may be saved to data storage device 330. As noted above with reference to Figure 1, base system 146 operates to synchronize data from workspace 136 (comprising bookmark folder 144) with data from workspace 120. Base system 146 can also be saved to data storage device 330 and loaded into RAM 335 for execution.
ES 2 315 960 T3
Figure 4 is a block diagram illustrating details of base system 400, which is an example of base systems 146 and 118. Base system 400 includes communication module 405, user interface module 410, location modules 415 , a synch-start module 420, a general sync module 425, and a content-based sync module 430. For simplicity, each module is illustrated as communicating with each other via a signal bus 440.
Communication module 405 includes routines for compressing data and routines for communicating through communication interface 325 (Figure 3) with synchronization agent 124 (Figure 1). In addition, the communications module 405 may include routines to apply Secure Socket Layer - Secure Socket Layer (SSL) technology and user identification and authentication techniques (eg, digital certificates) to establish a secure communication channel through global firewall 112. Examples of 405 communications modules may include TCP / IP stacks or the Apple Talk protocol<sup>®</sup>.
User interface module 410 includes routines for communicating with a user and may include a conventional Graphical User Interface (GUI). User interface module 410 cooperates with the other components of the system as described herein.
Location modules 415 include routines for identifying the memory locations of workspace elements in workspace 136 or 116 data and in workspace 120 data. Identifying memory locations of elements The workspace can be done using intelligent software, eg, current memory addresses or the system registry, or using dialog boxes to query a user. More particularly, the location modules 415 in the base system 146 determine the memory addresses of the e-mail folder 138, the file folder 142, the calendar folder 140 and the bookmark folder 144 and the memory addresses of the items in the workspace it contains. The location modules 415 further determine the corresponding memory addresses of the corresponding folders in the data of the workspace 120 and the corresponding elements of the workspace existing there. Similarly, the location modules 415 in the base system 118 determine the memory locations of the data workspace elements in the workspace 116 and the memory locations of the corresponding workspace elements in the data workspace. workspace 120.
It will be appreciated that the location modules 415 may include location modules 415 specifically dedicated to each folder or type of data in the workspace. That is, the location modules 415 may include a location module 415 dedicated to locating bookmarks, a location module 415 dedicated to locating emails, a location module 415 dedicated to locating files, a location module 415 dedicated to locating appointments. of calendars, etc. In addition, it will be appreciated that location modules 415 may perform workspace element memory location identification at system startup or after each communication with global server 120 to keep memory addresses of space elements up-to-date. of work.
Synchronization initiation module 420 includes routines for determining when to initiate synchronization of workspace 136 or 116 data with workspace 120 data. For example, the synchronization initiation module 420 can initiate data synchronization at the user's request, at a particular time of day, after a predetermined period of time elapses, after a predetermined number of changes, after an action. such as a user exit or similar criteria. Synchronization initiation module 420 initiates data synchronization by instructing general synchronization module 425 (described below) to initiate execution of its routines. It will be appreciated that communication with the sync agent 124 is preferably initiated from within the LAN 110, because the typical firewall 114 prevents inbound communications and allows outbound communications.
The general synchronization module 425 includes routines for receiving version information 148 for modified versions from the synchronization agent 124 (Figure 1) and routines for examining version information 255 or 150 against a last synchronization signature 435 (such as a last date and time of synchronization) to determine which versions have been modified. In addition, the general synchronization module 425 includes routines for examining the 148 version information and the 255 or 150 version information to determine whether one or both versions of a particular workspace item or workspace item folder have been modified.
In addition, the general timing module 425 includes routines for performing an appropriate timing sensitive action. Appropriate synchronization sensitive actions may include, if only one version of a workspace item has been modified in workspace 136 or 116 data, then sending the modified version (as the preferred version) to the other memories. storage or determine and submit only the changes made. The computation of the changes made can be done by examining the current state against the previous state at the time of the last synchronization or by comparing the two versions. It will be appreciated that no content-based review of changes is needed. It will be appreciated that one memory preferably only sends changes to the other memory to optimize the use of processor power and minimize data communications over communication channel 108 or 104.
ES 2 315 960 T3
Other appropriate synchronization sensitive actions may include, if two versions of a workspace item have been independently modified, then instructing the synchronization module based on the contents 430 (described below) to execute its routines. That is, if two versions of the same workspace item have been modified independently, then a content-based review of changes is preferable. Upon completion of the data synchronization, the general synchronization module 425 updates the signature of the last synchronization 435.
The content-based synchronization module 430 includes routines for reconciling two or more modified versions of a workspace item. For example, if a user has independently modified the original and the copy of a workspace item since the last modification, then the content-based synchronization module 430 determines an appropriate responsive action. The content-based synchronization module 430 can ask the user to select a preferred one of the modified versions or can respond based on pre-established preferences, eg, by storing both versions in both memories or preferably, integrating the modified versions into a preferred version. unique, which replaces each modified version in both reports.
The content-based synchronization module 430 examines the changes made to each version and determines if there are any conflicts. When integrating versions, a conflict may arise if incompatible modifications were made such as deleting a paragraph in one version and modifying the same paragraph in the other version that has been made. If there is a conflict, then the content-based synchronization module 430 attempts to reconcile the conflict, for example, by prompting the user for selection or by saving both versions in both memories. Conversely, if there is no conflict, then the content-based sync module 430 integrates the changes for each of the versions and updates the 148, 150, or 255 version information accordingly.
Figure 5 is a block diagram illustrating details of the synchronization agent 124 comprising a communication module 505 (similar to the communication module 405 described above with reference to Figure 4) and a general synchronization module 515 (similar to the module general synchronization 425 described above also with reference to Figure 4).
Communication module 505 includes routines for compressing data and routines for communication over communication channel 108 with base system 146 or via communication channel 104 with base system 118. In addition, communication module 505 may comprise routines to establish a secure communication channel through global firewall 112 and through LAN network firewall 114 with communication module 405.
Similar to the general synchronization module 425, the general synchronization module 515 comprises routines for examining the version information 148 and the signature of the last synchronization 435 (Figure 4) to determine which versions have been modified and the changes made. It will be appreciated that the general sync module 515 may maintain its own copy of the last sync signature 435 (not shown) or it may request the last sync signature 435 from the base system 146 or 118. In addition, general synchronization module 515 includes routines for sending specified workspace 120 data to be modified to general synchronization module 425 and routines for receiving preferred versions of workspace data from workspace 136 or 116 items or simply, the changes from the general timing module 425.
Figure 6 illustrates an example of a bookmark workspace in the global format. The global translator 122 incorporates all the information necessary for both formats (format A and format B) to create the Global Format. For example, if a marker in format A requires elements X, Y, and Z and a markup in format B requires elements W, X, and Y, the global translator 122 incorporates elements W, X, Y, and Z to create a marker in the Global Format. In addition, the global translator 122 incorporates the information that is needed by the synchronization means such as the last modified date. Consequently, a marker in the Global Format includes a user identification (ID) 605, an input identification 610, a parent identification 615, a folder indicator 620, a name 625, a description 630, the Uniform Resource Locator ( URL) 635, position 640, a delete flag 645, a last modified date 650, a date created 655, and a separation flag 660.
Figure 7 is a flow chart illustrating a procedure 700 for using a global translator 122 to synchronize multiple copies of a workspace item on a secure network 100. Procedure 700 begins with the user interface module 410 at the step 705 allowing a user to select items from the data workspace from workspace 136 and 118 for the synchronization means to perform its task of synchronizing. The location modules 415 in step 710, identify the memory locations of the workspace elements in workspace data 136 and 116 and the corresponding memory locations in workspace data 120. If a space element The selected workspace does not have a corresponding memory location, such as in the case of adding a new workspace item to the global server 106, then one of those items is selected. The selected memory location can be an existing workspace item or a new workspace item. As noted above, identifying the memory locations of workspace items can be done using smart software or dialog boxes. The general synchronization module 425 and the synchronization module 515 in step 715, establish the
ES 2 315 960 T3 previous state of workspace elements equal to empty set. Setting the state before the empty set indicates that all the information for the workspace item was added.
Synchronization initiation module 420, at step 720, determines whether predetermined criteria have been met, indicating that synchronization of the selected workspace items should be initiated at step 705. If not, then the synchronization initiation module 420, at step 725, waits and loops back to step 720. If not, the communication module 405 and the communication module 505, in step 730, establish a secure communication channel between them.
The general synchronization module 425 and the general synchronization module 515, in step 735, determine if any elements of the workspace were modified. That is, the general synchronization module 425, in step 740, examines the 255 or 150 version information of each selected workspace item in the 136 or 116 workspace data against the signature of the last synchronization 435 to locate the modified workspace items. This comparison can include comparing the last modified date with the last synchronization date, or it can include a comparison between the current state and the previous state at the time of the last interaction. Similarly, the general sync module 515 examines the version information 148 of each corresponding workspace item in workspace 120 data and the last sync signature 435 to locate the modified workspace items.
If in step 735 no modified workspace items or folders are located, then the general synchronization modules 425 and 515, in step 760, update the signature of the last synchronization 435 and end the procedure 700. Otherwise , the general synchronization module 425, in step 740, determines whether more than one version of an item in the workspace has been modified since the last synchronization.
If only one version was modified, then the corresponding general synchronization module 425 or 515, in step 745 determines the changes made. As indicated above, the determination of the changes made can be made by comparing the current state of the workspace element against the previous state of the workspace element at the time of the last interaction between them. If the changes were made only in the version of the data in workspace 120, then the global translator 122, in step 750, translates the changes to the format used by the other memory and the general synchronization module 515, in step 755, sends the translated changes to general sync module 425 to update the stale workspace item into workspace 136 or 116 data. If the updated version is a workspace item in workspace 136 or 116 data, then the general synchronization module 425 sends the changes to the updated version to the global translator 122 for translation and then to the synchronization module. general 515 to update the stale workspace item in workspace 120 data. The general synchronization module 425 and the general synchronization module 515, in step 757, update the previous state to reflect the current state at the time of this interaction. Next, procedure 700 returns to step 735.
If the general synchronization module 425, in step 740, determines that multiple versions were modified, then, the general synchronization module 425, in step 765, computes the changes to each version and in step 770, instructs the module content-based synchronization 430 to examine the content to determine if any conflicts exist. For example, the content-based synchronization module 430 may determine that a conflict exists if a user deletes a paragraph in one version and modifies the same paragraph in another version. The content-based synchronization module 430 can determine that there is no conflict if a user deletes different paragraphs in each version. If no conflict is found, then procedure 700 jumps to step 750 to translate and send the changes in each version to the other memory. However, if a conflict is found, then the content-based synchronization module 430, in step 775, reconciles the modified versions. As indicated above, reconciliation may comprise requesting instructions given by the user or based on preselected preferences and performing sensible actions such as storing both versions in both memories. Next, procedure 700 continues with step 750
It will be appreciated that, at step 710, the new workspace elements and the pre-existing workspace elements, to which the new workspace elements will be merged, are set to "modified" and the old state. is set as the empty set. Thus, the general synchronization module 425, in step 740, will determine that more than one version was modified and the content-based synchronization module 430, in step 770, will determine that there is no conflict. The changes in each version will be translated and sent to the other memory. Consequently, the two versions will be effectively merged and stored in each memory.
For example, if a first bookmark folder was created by web browser 152 on desktop computer 134, a second folder was created by web browser (not shown) on remote terminal 102, no previous folder pre-existed on server global 106 and the user selected each of these folders for synchronization, then the synchronization means will effectively merge the first and second folders. That is, the general synchronization module 425, in the desktop computer 134, will determine that the first folder has been modified and that the previous state is equal to the empty set. The general synchronization module 425 will determine and send the changes, that is, all workspace items in the first folder, to a new global folder on the global server 106. Similarly, the general synchronization module 425, in the remote terminal 102 will determine that, at the time of its last interaction, the previous state of each of the second and of the folders
ES 2 315 960 T3 global is the empty set. The general synchronization module 425 will instruct the content-based synchronization module 430 to examine the changes made to each folder to determine if there is a conflict. Since there will be no conflict, the general synchronization module 425 will send the changes to the global folder and the general synchronization module 515 will send its changes to the second memory, thereby merging the items in the workspace of the first and second folders in the global and second folders. The general synchronization module 515 will inform the general synchronization module 425 that the global folder was modified in relation to the last interaction and will send the new changes to the first folder. In this way, the first and second folders will be merged and stored in each memory.
For a second example, the user can select an exemplary document on the LAN 110 to be synchronized. The general synchronization module 425 will send the document to the global server 106. Similarly, the user can select the same document for synchronization at the remote terminal 102. The general synchronization module 515 will send the document to the remote terminal 102. If changes were made to the documents independently, then the content-based synchronization module 430 will examine the contents of the documents to determine if there is a conflict. If there is no conflict, then as described above, the general synchronization modules 425 and 515 will effect the merging of the documents. Conversely, if there is a conflict, the content-based synchronization module 430 will reconcile the changes and then the general synchronization modules 425 and 515 will send the reconciled changes to each other.
Figure 8 is a block diagram illustrating a computer network 800, in accordance with an embodiment of the present invention, comprising a local area network (LAN) 810, coupled via a communications channel 815 to a computer network 820, such as the Internet network. The computer network 820 is coupled, in turn, through a communications channel 825 to a global server 830, through a communications channel 835 to a remote terminal 805 and through a communications channel 893 to a mail server 894 of the Provider Internet services (ISP). ISP 894's mail server is in turn coupled to another 897 client. The global server 830 is protected by a global firewall 880 and the LAN 810 is protected by a LAN 870 firewall.
The LAN 810 includes a network server 845 that couples the LAN firewall 870, via a system bus 855, to a client 840 and a mail server 850. The mail server 850 receives and stores, in one or more more folder structures, the customer's 875 email (e-mails) from the 820 computer network and addressing the 840 customer. The client 840 comprises an email synchronization system 860 for downloading the client's emails 875 from the mail server 850 and storing them locally in one or more folder structures as "downloaded emails" 865. For communication between them, the email server 850 and the email engine 965 must both use the same transmission protocol, such as the third version of the Post Office Protocol (POP3), the Vendor - Independent Messaging Protocol (VIM ) developed by Lotus Development Corporation or the Messaging Application Program Interface (MAPI) protocol developed by Microsoft Corporation. Each email on the LAN 810 is stored in a predetermined format, referred to as Format A, which is determined by the email engine 965 (Figure 9) on the LAN 810 that performed the download.
It will be appreciated that, after downloading, the e-mails from the client 875 corresponding to the downloaded e-mails 865 can be deleted from the mail server 850. The e-mail synchronization system 860 further synchronizes the e-mails. downloaded 865, the e-mails from the client 875 or possibly only the e-mails from a specific folder structure (eg, an unanswered mail folder or a so-called user joke folder) with the global server 830. The email synchronization system 860 is described in greater detail below with reference to Figure 9.
The ISP 894 mail server and the 897 client operate in a similar way to the mail server 850 and the client 840. In general, the ISP 894 mail server receives e-mails from the computer network 820 that are addressed to the client. 897 and stores them locally in one or more folder structures as "customer emails" 896. The 897 client's email synchronization system 898 uses an email engine 965 (Figure 9) to download emails from the 896 Client and store them locally in one or more folder structures as "downloaded emails" 899. The 897 client's email engine 965 stores emails in Format B, which may be different from Format A. The email synchronization system 898 synchronizes emails from the client 896, downloaded emails 899, or possibly emails from specific folder structures with the global server 830.
Each e-mail, stored on mail server 850, client 840, mail server 894 (described below), or client 897 (described below), may include a source identifier (eg, a source address), a creation date, a date received by mail server 850 or 894, and a date the download occurred to the 840 or 897 client. The date the download to the 840 or 897 client occurred can be the date the 860 or 898 email synchronization system downloads the emails from the 875 or 896 client for synchronization with the 830 global server.
The global server 830 comprises a synchronization agent 885 to cooperate with the email synchronization system 860 or the email synchronization system 898 to synchronize email between them. Based on your configuration, the 860 or 898 email synchronization system translates and sends to the 885 synchronization agent a copy or the original (that is, not keeping a copy) of a downloaded 865 or 899 email or an email. -customer email
ES 2 315 960 T3
875 or 896. The global server 830 stores the copies or originals of the downloaded e-mails 865 or 899 in one or more folder structures as “downloaded e-mails” 832 and stores the copies or originals of the client's e-mails 875 or 896 in one or more folder structures such as "client emails" 895. The global server 830 stores emails in a global format, which can be the same as Format A or Format B or can include the combined elements of both formats. It will be appreciated that the email synchronization system 860 or 898 can send, and the global server 830 can store customer emails 875 or 896 and downloaded emails 865 or 897 together without distinction. In addition, customer emails 875 or 896 and downloaded emails 865 from the corresponding specific folders together without distinction. Also, global server 830 can be configured to store client 840 and client 897 e-mails together without distinction. The global server 830 further includes a web engine interface 890 that allows HTTP-based web engine access to the content therein including access to customer emails 895, downloaded emails 832 and folder structures in those that are stored.
As described in greater detail above with reference to Figure 4, and then with reference to Figure 10, the email synchronization system 860 preferably initiates and controls data synchronization. Other components and features of the 830 Global Server are also described.
Remote terminal 1505 includes a web engine 833 for reading Internet files including emails. Remote terminal 102 may include a smartphone, a Personal Data Assistant (PDA) such as the PalmPilot system from US Robotics Inc., a laptop computer, and the like. Thus, as long as a user of remote terminal 1505 can be identified and can access global server 830, the user can access emails 895 and 897. In addition, as long as the 895 and 832 customer emails are synchronized with the 865, 875, 896 and 899 emails, the user can access all the emails that are addressed to the 840 customer and the 897 customer.
Figure 9 is a block diagram illustrating details of client 900, serving as an example for client 840 and client 897. Client 900 includes a central processing unit (CPU) 905 such as an Intel Pentium microprocessor<sup>®</sup> or a Motorola Power PC microprocessor<sup>®</sup>. An input device 910 such as a keyboard and mouse and an output device 915 such as a cathode ray tube (CRT) monitor are coupled via a signal bus 920 to the CPU 905. A communication interface 925 (such as such as an Ethernet port), a data storage device 930 (such as a magnetic disk), and a random access memory (RAM) 935 are further coupled, via signal bus 920, to CPU 905. Communications interface 925 is coupled to signal bus 855 (Figure 8).
An operating system 950 includes a program to control the process by CPU 905 and is typically stored in data storage device 930 and loaded into RAM 935 (as illustrated) for execution. The RAM memory 935 stores an e-mail synchronization system 953 (exemplifying the e-mail synchronization system 860 or the e-mail synchronization system 898), having means to download the client's e-mails 875 or 896, means for reading downloaded emails 943 (exemplifying downloaded emails 865 or 899), means for synchronizing emails 865, 875, 896 or 899 (which have been downloaded) with the global 830 server and means to synchronize e-mail from specific folder structures. For example, the email synchronization system 953 comprises a web engine 955 for its communication with the web servers. The web engine 955 comprises an e-mail module 960 for reading and writing the e-mail. The email synchronization system 953 further comprises an email engine 955 for communication with the mail server 850 or 894 to download, read and write emails. The email engine 965 communicates using a conventional protocol such as POP3, VIM, or MAPI. The downloaded e-mails 943 are stored in a data storage device 930 (Figure 9). In addition, the email engine 965 provides access to an address book 945 containing email address entries, which is also stored in the data storage device 930.
The email synchronization system 953 further includes a base system 970 for translating emails from Format A or Format B to the global format and for initiating and controlling the synchronization of emails with the global server 830. The Translation may comprise the containment of e-mails formatted, on the mail server, in HTTP (Hypertext Transfer Protocol) packets. The base system 970 is described in greater detail with reference to Figure 10 and in the cross-referenced patent application.
It will be appreciated that the means for e-mail retrieval can be interpreted to include operating system 950 when retrieving downloaded e-mails 865 or 899, e-mail engine 965 when retrieving client e-mails 875 or 896, module of e-mails 960 from the web engine 955 when e-mails are retrieved from a website 820 or combinations thereof.
Figure 10 is a block diagram illustrating details of the base system 970. The base system 970 includes a communication module 1005, a user interface module 1010, location modules 1015, a synchronization initiation module 1020, and a module. e-mail synchronization module 1030. For simplicity, each module is illustrated as communicating with another via a signal bus 1030.
Communication module 1005 includes routines for compressing data and routines for establishing a communication link, through communication interface 925 (Figure 9), with synchronization agent 885 (Figure 8). Communications module 1005 may also include routines to apply Secure Socket Layer technology.
ES 2 315 960 T3 (SSL) and user identification and authentication techniques (that is, digital certificates) to establish a secure communication channel through the 880 global firewall. Since synchronization is initiated from within the firewall and uses commonly enabled protocols, such as Hypertext Transfer Protocol (HTTP), the typical firewall, which prevents incoming communications in general and some outgoing protocols, does not act as an impediment to e-mail synchronization. Examples of 1005 communication modules may comprise TCP / IP stacks or the AppleTalk protocol<sup>®</sup>.
User interface module 1010 comprises routines for communicating with a user and may comprise a conventional Graphical User Interface (GUI). The user interface module 1010 cooperates with the other components of the system as described herein.
The 1015 location modules include routines to identify the memory locations of e-mails on the LAN 810 of Figure 8 (eg, 875 e-mails on the 850 mail server and 865 e-mails on the 840 client), e-mail memory locations 896 on ISP mail server 894, email memory locations 899 on client 897, email memory locations on global server 830 (eg, customer emails 895 and downloaded emails 832) and the memory locations of the folder structures in which the emails are stored. The identification of the e-mail memory locations can be done using intelligent software, that is, preset memory locations or the system registry or using dialog boxes for querying a user. It will be appreciated that the location modules 1015 may perform the identification of e-mail locations at system initialization or after each communication with the global server 830 to maintain up-to-date memory locations.
Synchronization initiation module 1020 includes routines for determining when to initiate email synchronization. The synchronization initiation module 1020 initiates an e-mail synchronization, after receiving a predetermined number of e-mails. Synchronization initiation module 1020 initiates an email synchronization by instructing email synchronization module 1025 (described below) to initiate execution of its routines. It will be appreciated that communication with the sync agent 885 is preferably initiated from within the LAN 810, because a security system, such as the typical firewall 870, prevents inbound communications and allows outbound communications. The synchronization initiation module 1020 may instruct the communication module 1005 to establish the communication link with the synchronization agent 885 of the global server 830.
The 1025 email synchronization module includes routines to instruct the 965 email engine (Figure 9) to retrieve the 875 or 896 client emails from the 850 or 894 mail server or from specific folders on the server. email address 850 or 894. The email synchronization module 1025 also includes routines for storing retrieved emails in one or more folder structures such as downloaded emails 865 or 899. Email engine 965 may include means to identify a transmission protocol also known to mail server 850 or 894, for example, email engine 965 may request configuration information from mail server 850 or 894 indicating the protocol, eg, pOp3, that is being used. Consequently, the email engine 965 implements the identified protocol when the emails are downloaded.
The email synchronization module 1025 also includes routines to compare the date of receipt of each downloaded email 865 or 899 against a signature of the last synchronization 1035 (such as the date and time of the last synchronization) to determine which emails have not been sent to the global 830 server. It will be appreciated that, in an embodiment that deletes emails from the client 875 or 896 after they are downloaded from the mail server 850 or 894, the email synchronization module 1025 does not need to perform a comparison test on the emails. 875 or 896 customer emails downloaded during synchronization. These customer emails 875 or 896, in this embodiment, were not inherently sent.
The email synchronization module 1025 further includes routines for performing an appropriate synchronization action. Appropriate synchronization responsive actions may include instructing the communication module 1005 to establish a communication link with the synchronization agent 885 of the global server 830, sending copies of each e-mail to the global server 830, redirecting (that is, sending without keeping a copy) only e-mails from client 875 or 896 to global server 830, or by redirecting downloaded emails 865 or 899 and customer emails 875 or 896 to the global server 830. To send a copy or an original of an email, the email synchronization module 1025 includes a translator 1040 to translate the e-mail from format A or format B to the global format. Next, the email synchronization module 1025 instructs the email module 960 of the web engine 955 to send the translated emails to the global server 830.
Email synchronization may include synchronization of other information pertaining to email. For example, the e-mail synchronization module 1025 may include routines for examining and synchronizing the address book 945 with an address book 1130 (Figure 11) on the global server 830. The operations of examining and synchronizing the entries of The address book is made as described below with reference to Figures 1 to 7. In general, the 1025 e-mail synchronization module can examine the version information that indicates the date and time of the last modification of the 945 address book on the 900 client and the version information that indicates the date and time. of the last synchronization of the address book 1130 (Figure 11) on the global server 830. Based on the examination, the email synchronization module 1025 performs
ES 2 315 960 T3 an appropriate responsive synchronization action such as sending the updated email address entries to the other memory. The email synchronization module 1025 may comprise a general synchronization module 425 (Figure 4) and a content-based synchronization module 430 (Figure 4).
Figure 11 is a block diagram illustrating details of the global server 830, including a CPU 1105, a communication interface 1110, a data storage device 1120, and a RAM memory 1125, each coupled to a signal bus 1115 Communication interface 1110 is coupled, via global firewall 880 (Figure 8) to communication channel 825.
An operating system 1135 includes a program to control processing by CPU 1105 and is typically saved to data storage device 1120 and loaded into RAM 1125 (as illustrated) for execution. A web engine interface 890 is a program for communicating with the web engine 833 or the web engine 955 and to facilitate access to predetermined content, which may include customer emails 895, downloaded emails 832, and the address book. addresses 1130. The 890 web engine interface includes an 1140 e-mail module interface for communication with the 960 e-mail module or 1355 e-mail module (Figure 13) and to facilitate mail reading and writing functions. electronic
Synchronization agent 885, as best depicted in Figure 12, is also stored in data storage device 1120 and loaded into RAM 1125 for execution. Synchronization agent 885 communicates with email synchronization module 1025 to synchronize emails, specific folder structure emails, and possibly to synchronize address book 945. Synchronization agent 885 is described in more detail below with reference to Figure 12 and in the cross-referenced patent application.
Figure 12 is a block diagram illustrating details of the synchronization agent 885, including a communication module 1205 (similar to the communication module 1005 described above with reference to Figure 10) and an email synchronization module 1210. (similar to the 1025 email sync module also described above with reference to Figure 10).
Communications module 1205 includes routines for compressing data and routines for communicating via computer network 820 (Figure 8) with communications module 1005 (Figure 10). Communications module 1205 may further include routines for establishing a secure communications channel through global firewall 880 and through LAN network firewall 870 with communications module 1005.
Similar to the email synchronization module 1025 (Figure 10), the email synchronization module 1210 includes routines for examining information to determine if emails have been added or modified and not synchronized with a client 840 (Figure 8 ). Consequently, the email synchronization module 1210 can determine whether any addresses in the address book 1130 (Figure 11) are to be copied and sent to a client 900. Additionally, if the system 1500 syncs emails at each of the customer sites, then the email sync module 1210 also determines if any of the 895 or 832 emails have been added or modified and not synced with a 900 customer.
It will be appreciated that the email sync module 1210 may maintain its own copy of the last sync signature 1035 (not shown) or may request the last sync signature 1035 from the base system 970. The email sync module 1210 also includes routines to send the determined information to be modified or simply the changes to the e-mail synchronization module 1025.
Figure 13 is a block diagram illustrating details of remote terminal 1505. Remote terminal 1505 includes a central processing unit (CPU) 1305 such as an Intel Pentium® microprocessor or a Motorla Power PC® microprocessor. An input device 1310 such as a keyboard and mouse, and an output device 1315 such as a cathode ray tube (CRT) monitor, are coupled via a signal bus 1320 to the CPU 1305. A communications interface 1325 (such as an Ethernet port), a data storage device 1330 (such as a magnetic disk), and a random access memory (RAM) 1335 are further coupled via signal bus 1320 to CPU 1305. Communication interface 1325 is coupled to signal bus 835 (Figure 8).
An operating system 1350 includes a program to control processing by CPU 1305 and is typically saved to data storage device 1330 and loaded into RAM 1335 (as illustrated) for execution. Additionally, web engine 833 is typically stored on data storage device 1330 and loaded into RAM 1335 (as illustrated) for execution. The web engine 833 includes an e-mail module 1355 for reading and writing e-mail. After the remote terminal 1505 connects to the global server 830, the email module 1355 communicates with the interface of the email module 1140 to select and download the client's 895 emails or downloaded emails 832. The e-mail module 1355 stores the e-mails downloaded from the global server 830 to the data storage device 1330 as "downloaded e-mails" 1340. The e-mails module 1355 allows the user to read, reply, send, redirect, etc., emails 1340. Similarly, the web engine 833 may allow access to the address book 945 so that the user can access their email address entries otherwise stored only in the address book. LAN 810.
ES 2 315 960 T3
Figure 14 is a flow chart illustrating a procedure 1400 for synchronizing emails on a computer network 1500. Procedure 1400 begins with the email server 850 or 894 at step 1405 receiving emails addressed to a customer 840 or 897. The mail server 850 or 894, at step 1410, stores the received e-mails in one or more folder structures as client e-mails 875 or in one or more folder structures as client e-mails 896 (Figure 8). Email engine 965, at step 1415, allows a user to select customer emails 875 or 896 for download from mail server 850 or 894. If emails are selected, then the email engine 965, at step 1420, downloads the emails from the selected customer 875 or 896 and stores them in one or more folder structures as downloaded emails 865 or in a or more folder structures such as downloaded emails 899 (Figure 8). If, in step 1415, no emails are selected, then procedure 1400 jumps to step 1425.
In step 1425, the synchronization initiation module 1020 determines whether the predetermined initiation criteria have been met, indicating that it is time for e-mail synchronization. The predetermined initiation criteria are satisfied after receiving a particular number of emails. If it is not the time for synchronization, then the synchronization initiation module 1020 in step 1430 waits. If, on the other hand, it is time for synchronization, the email synchronization module 1025, in step 1435, instructs the email engine 965 to download the customer's emails 875 or 896 or the emails -customer emails 875 or 896 from specific folder structures.
The email synchronization module 1025, in step 1440, determines whether any of the downloaded emails 865 or 899 (which include the recently downloaded 875 or 896 client emails) have not been sent to the global server 830. This comparison can be made by examining the time and date the e-mail was received against a last sync signature 1035 indicating the date and time of the last sync. For example, if an e-mail was received after the date and time of the last synchronization, the e-mail was not sent. It will be appreciated that, in an exemplary embodiment that deletes e-mails from client 875 and 896 from mail server 850 or 894 after downloading them to client 840 or 897, e-mail engine 965 may automatically conclude that these e-mails are not they were sent to the global 830 server.
If all the e-mails (intended for synchronization) have been sent to the global server 830, then procedure 1400 ends. If not, if at least one e-mail has not been sent, then the e-synchronization module mails 1025, at step 1445, uses translator 1040 to translate unsent emails 865 or 899 from format A or format B to global format. The email synchronization module 1025, in step 1450, instructs the web engine 955 to send the translated email to the global server 830 to be stored with the web engine interface 890. Next, the procedure 1400 ends. .
Figure 15 is a flow chart illustrating a procedure 1500 for accessing emails from the global server 830. The procedure 1500 begins with the email synchronization module 1210, at step 1505, receiving emails. from the client 840 or 897. The email synchronization module 1210, at step 1510, stores the emails on the data storage device 1120 in one or more folder structures as client emails 895 and downloaded e-mails 832. The email engine interface 890, at step 1515, uses HTML to allow access from the email module to selected content from global server 830. Access to selected content is described in more detail below with reference to Figures 1
Contents6
15 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15
107 members in 14 offices
Priority claims5
| Document | Office | Kind | Date |
|---|---|---|---|
| 19970897888 | United States of America | – | |
| 89788897 | United States of America | A | |
| 89788897 | United States of America | A | |
| 06009953897888 | – | – | – |
| US19970897888 | – | – | – |
Members107
| Document | Office | Kind | |
|---|---|---|---|
| WO9826344A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO9826344A3 | World Intellectual Property Organization (WIPO) | A3 | |
| CA2296432A1 | Canada | A1 | |
| WO9905620A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO9905813A2 | World Intellectual Property Organization (WIPO) | A2 | |
| CA2297969A1 | Canada | A1 | |
| CA2616759A1 | Canada | A1 | |
| CA2617304A1 | Canada | A1 | |
| WO9906900A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO9906900A3 | World Intellectual Property Organization (WIPO) | A3 | |
| US5961590A | United States of America | A | |
| US5968131A | United States of America | A | |
| WO9905813A3 | World Intellectual Property Organization (WIPO) | A3 | |
| US6023708A | United States of America | A | |
| CA2340711A1 | Canada | A1 | |
| WO0011567A1 | World Intellectual Property Organization (WIPO) | A1 | |
| EP0996905A1 | European Patent Office (EPO) | A1 | |
| US6085192A | United States of America | A | |
| EP1018066A2 | European Patent Office (EPO) | A2 | |
| CN1268233A | China | A | |
| CN1269032A | China | A | |
| US6131116A | United States of America | A | |
| EP0996905A4 | European Patent Office (EPO) | A4 | |
| HK1028283A1 | Hong Kong, China | A1 | |
| IL134138D0 | Israel | D0 | |
| IL134231D0 | Israel | D0 | |
| EP1105811A1 | European Patent Office (EPO) | A1 | |
| JP2001511611A | Japan | A | |
| JP2001512260A | Japan | A | |
| EA200100258A1 | Eurasian Patent Organization (EAPO) | A1 | |
| CN1310823A | China | A | |
| IL141493D0 | Israel | D0 | |
| US2002035618A1 | United States of America | A1 | |
| JP2002523827A | Japan | A | |
| EA002956B1 | Eurasian Patent Organization (EAPO) | B1 | |
| CN1139040C | China | C | |
| US6708221B1 | United States of America | B1 | |
| JP3532854B2 | Japan | B2 | |
| IL134138A | Israel | A | |
| US2004139178A1 | United States of America | A1 | |
| US6766454B1 | United States of America | B1 | |
| EP1018066A4 | European Patent Office (EPO) | A4 | |
| EP1105811A4 | European Patent Office (EPO) | A4 | |
| CN1222886C | China | C | |
| US7039679B2 | United States of America | B2 | |
| EP0996905B1 | European Patent Office (EPO) | B1 | |
| EP1667042A2 | European Patent Office (EPO) | A2 | |
| AT327547T | Austria | T | |
| ATE327547T1 | Austria | T1 | |
| DE69834640D1 | Germany | D1 | |
| ES2256949T3 | Spain | T3 | |
| EP1667042A3 | European Patent Office (EPO) | A3 | |
| PT996905E | Portugal | E | |
| DK0996905T3 | Denmark | T3 | |
| US2006195595A1 | United States of America | A1 | |
| EP1722321A1 | European Patent Office (EPO) | A1 | |
| DE69834640T2 | Germany | T2 | |
| EP1783675A2 | European Patent Office (EPO) | A2 | |
| EP1783675A3 | European Patent Office (EPO) | A3 | |
| EP1785927A1 | European Patent Office (EPO) | A1 | |
| US7225231B2 | United States of America | B2 | |
| US2007174433A1 | United States of America | A1 | |
| CN100338606C | China | C | |
| US7287271B1 | United States of America | B1 | |
| EP1923828A1 | European Patent Office (EPO) | A1 | |
| AT411571T | Austria | T | |
| AT411572T | Austria | T | |
| AT411573T | Austria | T | |
| ATE411571T1 | Austria | T1 | |
| ATE411572T1 | Austria | T1 | |
| ATE411573T1 | Austria | T1 | |
| EP1722321B1 | European Patent Office (EPO) | B1 | |
| EP1783675B1 | European Patent Office (EPO) | B1 | |
| EP1785927B1 | European Patent Office (EPO) | B1 | |
| DE69840137D1 | Germany | D1 | |
| DE69840138D1 | Germany | D1 | |
| DE69840139D1 | Germany | D1 | |
| ES2315960T3This record | Spain | T3 | |
| ES2316123T3 | Spain | T3 | |
| ES2316125T3 | Spain | T3 | |
| JP2009163755A | Japan | A | |
| US2009307362A1 | United States of America | A1 | |
| US2010005125A1 | United States of America | A1 | |
| US2010005157A1 | United States of America | A1 | |
| US2010005195A1 | United States of America | A1 | |
| US2010023630A1 | United States of America | A1 | |
| EP2172852A2 | European Patent Office (EPO) | A2 | |
| EP2224673A2 | European Patent Office (EPO) | A2 | |
| EP2224673A3 | European Patent Office (EPO) | A3 | |
| EP1018066B1 | European Patent Office (EPO) | B1 | |
| JP4563488B2 | Japan | B2 | |
| AT483204T | Austria | T | |
| ATE483204T1 | Austria | T1 | |
| EP2249263A1 | European Patent Office (EPO) | A1 | |
| DE69841918D1 | Germany | D1 | |
| ES2353255T3 | Spain | T3 | |
| EP2302872A2 | European Patent Office (EPO) | A2 | |
| US2011153779A1 | United States of America | A1 | |
| EP2172852A3 | European Patent Office (EPO) | A3 | |
| US8117344B2 | United States of America | B2 |
Numbers
- Publication
- 2315960
- Publication, DOCDB
- 2315960
- Publication, EPODOC
- ES2315960T
- Application
- 6009953
- Application, DOCDB
- 06009953
- Application, EPODOC
- ES20060009953T
Titles2
- Spanish
- SISTEMA Y PROCEDIMIENTO PARA SINCRONIZAR CORREO ELECTRONICO A TRAVES DE UNA RED.
- English
- SYSTEM AND PROCEDURE FOR SYNCHRONIZING EMAIL THROUGH A NETWORK.
Classification
- CPC, 10
- H04L63/02
- G06Q10/107
- H04L29/06
- H04L63/04
- H04L51/22
- H04L63/0823
- H04L63/10
- H04L69/04
- H04L51/42
- H04L9/40
- IPC, 4
- G06F13 00
- G06Q10 00
- H04L12 58
- H04L29 06