US20090094332A1 - System and method for enabling offline use of email through a browser interface - Google Patents
System and method for enabling offline use of email through a browser interface Download PDFInfo
- Publication number
- US20090094332A1 US20090094332A1 US11/202,987 US20298705A US2009094332A1 US 20090094332 A1 US20090094332 A1 US 20090094332A1 US 20298705 A US20298705 A US 20298705A US 2009094332 A1 US2009094332 A1 US 2009094332A1
- Authority
- US
- United States
- Prior art keywords
- user
- web server
- application
- computer
- mailbox information
- 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.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000012545 processing Methods 0.000 claims description 4
- 238000003490 calendering Methods 0.000 claims description 3
- 238000012546 transfer Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000012552 review Methods 0.000 description 2
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/107—Computer-aided management of electronic mailing [e-mailing]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99937—Sorting
Definitions
- This invention relates generally to email applications and more specifically to a system and method for enabling offline use of a client email application executing within a browser.
- Accessing one's email account through a browser interface is known in the art.
- a user uses a browser to go to a website associated with the user's email account. For instance, in Yahoo Mail, a user accesses his email by logging into Yahoo's website.
- the present invention provides a system and method for providing online and offline email functionality (and/or other collaboration suite functionality).
- a local web server application running on the user's computer serves an email client on the user's computer, where the email client executes within a browser.
- the browser sends requests to the local web server application for user mailbox information, and the local web server application responds to such requests. Because the local web server application executes on the user's computer, it is able to serve the email client regardless of whether the user's computer is online or offline.
- the local web server application also communicates with a remote web server, where the remote web server has the capability to receive incoming messages from a Mail Transfer Agent and to send outbound message to a Mail Transfer Agent.
- the remote web server and local web server application periodically (although not necessarily at regular intervals) synchronize their user mailbox information.
- the local web server application and remote web server application store, search, and index user mailbox information in the same manner.
- FIG. 1 illustrates a block diagram of an email system according to one embodiment of the present invention.
- FIG. 2 illustrates a method for providing online and offline use of email through a browser interface.
- FIG. 3 illustrates a method for sending an outbound email message that is composed when the user is offline.
- FIG. 4 illustrates a method for processing inbound email messages that are received when the user is offline.
- FIGS. 5 a - 5 b illustrate a method for synchronizing user mailbox information stored by the local web server application and the remote web server.
- FIG. 6 a is a block diagram of an example remote web server application that provides email/collaboration functionality.
- FIG. 6 b is a block diagram of an example local web server application that provides email/collaboration functionality.
- FIG. 1 illustrates a block diagram of an email system 100 according to one embodiment of the present invention.
- the system includes a remote web server 160 and a local web server application 130 , where the local web server application runs on a user's computer.
- the remote web server 160 and local web server application 130 execute code that provides email server functionality. Such code may also provide additional functionality associated with collaboration applications, such as a calendar and “contacts” directory (i.e., an electronic address book).
- Both the local web server application 130 and the remote web server 160 store user mailbox information and process user mailbox information in the same way.
- the local web server application 130 serves an email client application 110 that runs within browser 120 on the user's computer 170 (i.e., with email client code 110 , the browser 120 becomes the email client).
- the local web server application 130 responds to requests from the browser 120 to retrieve or process user mailbox information.
- the remote web server 160 communicates with a Mail Transfer Agent (MTA) 180 to receive inbound email messages for the user and to send the user's outbound message.
- MTA Mail Transfer Agent
- the local web server application 160 and remote web server 160 include synchronization modules 150 , 140 , respectively, that synchronizes the user mailbox information stored by each.
- the remote web server 160 provides the local web server application 130 with changes to user mailbox information made on the remote web server 160 .
- changes to user mailbox information that may occur on the remote web server include the receipt of new, incoming email messages in the user's mailbox, or appointments made in the user's calendar by authorized third parties.
- the local web server application 130 provides the remote web server 160 with changes to user mailbox information made on the user computer 170 . Examples of changes to user mailbox information that may occur on the user computer 170 include a user composing and sending a message, or a user adding a person to his contacts.
- the email system 100 can provide more than just email functionality. It can provide other collaboration application functionality, such as calendaring functionality and a contacts directory.
- the methods described herein with respect to storing, processing, retrieving, and synchronizing email data can also apply to other user mailbox content, such as calendar appointments and contact files.
- FIG. 2 illustrate a method for using the local web server application 130 and the remote web server 160 to provide both online and offline email functionality (and/or other collaboration application functionality) to the user.
- the method comprises the following:
- the local web server application 130 responds to the email client 110 in the browser 120 , the user can access, view, and search his mailbox information through the browser 120 even when he is offline.
- the messages he will be able to view, search, and otherwise manipulate are those that were received the last time the user was online.
- Messages composed when the user is offline are automatically sent to the designated addresses (via the remote web server 160 ) when the user is back online.
- the user will be able to retrieve and search messages faster by the fact that the local web server application 130 responds to requests from the browser 120 as opposed to the remote web server 160 .
- FIG. 3 illustrates how a composed message is handled by the email system 100 according to one embodiment of the present invention.
- a user composes a message (step 310 ), and the email client 110 sends it to the local web server application 130 via the browser 120 (step 320 ).
- the local web server application 130 stores the message on the user's computer 170 and updates the user's “Outbox” folder on the user's computer 170 accordingly (step 330 ).
- the local web server application 130 sends the composed message to the remote web server 160 (step 340 ).
- the remote web server 160 then sends the composed message out to the applicable MTA 180 , which forwards the message to the appropriate destination (step 350 ).
- the remote web server 160 updates the user's “Sent Items” folder on the remote web server to include the sent message (step 350 ).
- the local web server application 130 updates the “Sent Items” folder on the user's computer 170 during the next data synchronization with the remote web server 160 (step 360 ).
- FIG. 4 illustrates how a received inbound message for the user is handled by the email system 100 according to one embodiment of the present invention.
- the remote web server 160 receives an incoming message from the MTA 180 (step 410 ).
- the remote web server 160 then stores the message and updates the user's “Inbox” on the remote web server 160 accordingly (step 420 ).
- the remote web server 160 sends the incoming message to the local web server application 130 (step 430 ).
- the local web server application 130 stores the message on the user's computer and updates the user's “Inbox” folder on such computer 170 to include the message (step 440 ).
- the local web server application 130 sends the updated Inbox to the user when the user opens the client application 110 .
- FIGS. 5 a - b illustrate an example of the way in which the synchronization modules 140 , 150 synchronize user mailbox information on the user's computer 170 and the remote web server 160 .
- the method described with respect to FIG. 5 is just one method and other data synchronization methods may be employed.
- the synchronization module 150 on the local web server application 170 will periodically (but not necessarily at regular intervals) send a request to synchronize data (“a data sync request”) to the remote web server 160 (step 510 ).
- the local web server application will send a data sync request when one of the following scenarios occurs: (1) the remote web server 160 informs the local web server application 130 that a change to the user's mailbox has occurred (such as when the user receives a message); (2) a certain amount of time has passed; or (3) a certain amount of time has passed after the user has made a change to the user mailbox information stored by the local web server application 130 .
- a sync token is a unique string.
- the sync token is a unique, numeric string associated with the last piece of data to be sent to the local web server application 130 .
- the remote web server 160 increments the numeric string by one and associates such new numeric string with such content or metadata change (where each content or metadata changes is associated with a string that is one greater than the string associated with the previous content or metadata change).
- the data sync request by the synchronization module 140 on the user's computer 170 includes the last sync token provided to the local web server application 130 by the remote web server 160 (step 530 ).
- the synchronization module 150 on the remote web sever 160 then provides the local web server application 130 with the metadata changes and content changes that have occurred since the last synchronization, where the remote web server 160 uses the sync token to identify such changes (step 540 ).
- the sync response also includes a new sync token (step 540 ).
- the local web server application 130 determines if there are any conflicts between the data provided by the remote web server 160 and changes made the user on the user's computer 170 since the last synchronization (step 550 ).
- the local web server application 130 may ask the user to resolve conflicts or it may follow rules for resolving the conflict itself (step 560 ).
- the synchronization module 140 on the local web server application 130 sends the remote web server 160 mailbox changes made by the user on the user's computer 170 (and stored by the local web server application 130 ) since the last data synchronization (step 570 ).
- Synchronization module 140 also sends the remote web server 160 a sync request with the latest sync token (step 580 ).
- the remote web server 160 provides the local web server application 130 with changes made to the user's mailbox on the remote web server since such sync token was created (step 585 ).
- the remote web server 160 also provides the local web server application 130 with a new sync token (if changes have occurred since step 540 ).
- the local web server application 130 determines if a conflict exists (step 590 ). If one exists, the conflict is resolved through either rules or user intervention, as applicable ( 595 ), and steps 570 - 590 are repeated. Otherwise, the data synchronization ends (step 598 ).
- FIG. 6 a illustrates an example of email server software running on the remote server 160 .
- the software on the remote web server 160 can be thought of as divided into various functional modules. These modules include a Mailbox Interface 1670 , a Query Parser 1630 , an Indexer 1635 , a Database Management Module 1640 , a Message Store Interface 1645 , a MTA Interface 1620 , an Email Client Interface 1615 , and a Synchronization Module 1680 . In one embodiment these modules are coded in Java. Those skilled in the art will appreciate that an email application will include additional, well-known functionality not represented by the above modules (such as functionality related to security, user log in, global address lists, etc.). Moreover, FIGS. 6 a and 6 b are examples of one way to implement the local web server application 130 and the email server software running on the remote web server 160 , and such local web server application and email server software may be implemented in other ways.
- the Database Management Module 1640 is a set of routines for managing, storing and retrieving information in a relational Database 1655 (e.g., MySQL).
- the Database 1655 includes information about each provisioned email user's mailbox that is used to generate a view of the user's mailbox. It stores a listing of the contents of a user's mailbox (with a reference to the actual storage location of the messages in the Message Store 1660 ), and it includes mutable information about such content, such as which folder each message resides (inbox, sent items, user-created folders, etc.) or which messages have been read.
- the Message Store Interface 1645 is software for storing and retrieving email messages in a Message Store 1660 .
- the Message Store (often referred to as the “BLOB Store” in the industry) stores the actual email messages, including any attachments embedded within email messages. If the remote web server 160 provides collaboration functionality, then the message store also stores content related to other mailbox items, such as calendar appointments and contacts. Techniques for storing and retrieving email messages, as well as storing and retrieving user-specific mailbox information to generate a view of a user's mailbox, are well known in the art.
- the Indexer 1635 indexes email messages based on the content of the messages and on the metadata in the headers of the email messages.
- the Indexer 1635 also may index email attachments based on content and metadata. If the remote web server 160 provides collaboration application functionality other than just email, than the Indexer 1635 may also index other mailbox items, such as calendar appointments and contact files.
- the Indexer 1635 stores the indexes in Index 1650 . In an alternate embodiment, the functionality of the Indexer 335 and the Database Management Module 1640 are combined, and the indexes and user mailbox information are stored in one database.
- the Email Client Interface 1615 is the interface through which remote web server communicates with browsers when there is no local web server application 130 on the user computers (in such scenario, the methods described with respect to FIGS. 2-5 are not used, and there is no offline email functionality).
- the Email Client Interface 1615 when a user logs into the web server, the Email Client Interface 1615 send the user's browser an initial web page that includes JavaScript code. The JavaScript code is downloaded into a user's browser to become the email client application 110 .
- Email Client Interface 1615 processes inbound and outbound communications with such email client.
- the Email Client Interface 1615 communicates with Email Clients via SOAP.
- the MTA Interface 1620 receives incoming messages for provisioned users (i.e., users who have mailboxes with the email application on the remote web server 160 ) from a Mail Transfer Agent (MTA) (not shown).
- MTA Mail Transfer Agent
- the MTA Interface 1620 uses the Local Mail Transfer Protocol (LMTP) to communicate with an MTA that uses the Simple Mail Transfer Protocol (SMTP).
- LMTP Local Mail Transfer Protocol
- SMTP Simple Mail Transfer Protocol
- the Mailbox Interface 1670 processes incoming email messages, including parsing email message headers for metadata.
- the Mailbox Interface 1670 sends the metadata to the Indexer 1635 and Database Management Module 1640 , as applicable.
- the Mailbox Interface 1670 includes a Synchronization Module 1680 which performs the synchronization described with respect to FIG. 5 .
- the Mailbox Interface 1670 also includes a Query Parser 1630 , which parses all requests that involve searching the Index 1650 or the Database 1655 .
- the Query Parser 1630 creates appropriate query trees and sends them to either the Indexer 1635 or the Database Management Module 1640 , depending on whether or not the Index 1650 or the Database 1655 has the appropriate information.
- the Query Parser 1630 receives, and if necessary, assembles the responses to the query trees from the Indexer 1635 and Database Management Module 1640 and forwards it to the appropriate interface for transmittal to the requesting systems.
- FIG. 6 b illustrates an example of the local web server application 130 .
- the local web server application includes a Mailbox Interface 1370 , a Query Parser 1330 , an Indexer 1335 , a Database Management Module 1340 , a Message Store Interface 1345 , and a Synchronization Module 1380 .
- These modules process user mailbox information the same as the corresponding modules on the remote web server 160 .
- the user experience with his mailbox is the same regardless of whether the email client communicates with the local web server application 130 or the remote web server 160 .
- the local web server application 130 uses the file system on the hard drive of the user's computer 170 to store the index and the messages associated with the user's mailbox.
- the Indexer 1335 and Message Store Interface 1345 respectively store the index and mailbox content in the file system of the user's computer 170 .
- the Database Management Module 1340 uses an embedded database on the user's computer 170 to store the same type of user mailbox information that the Database Management Module 1640 on the remote web server 160 stores in the Database 1655 .
- local web server application 130 also includes an Email Client Interface 1315 .
- Email Client Interface 1315 processes inbound and outbound communications with the email client application 110 in the web browser 120 .
- the Email Client Interface 1315 communicates with the email client application 110 via SOAP.
- the first web page provided to the browser 120 by the Email Client Interface includes JavaScript code. The JavaScript code is downloaded into a user's browser to become the email client application 110 .
Abstract
Description
- This application claims the benefit of U.S. Provisional Application No. 60/606,862, filed on Sep. 2, 2004, and titled “Email System and Methods for Viewing, Searching, Tracking, and Indexing Email,” the contents of which are incorporated by reference as if fully disclosed herein.
- 1. Field of the Invention
- This invention relates generally to email applications and more specifically to a system and method for enabling offline use of a client email application executing within a browser.
- 2. Description of the Background Art
- Accessing one's email account through a browser interface is known in the art. In such cases, a user uses a browser to go to a website associated with the user's email account. For instance, in Yahoo Mail, a user accesses his email by logging into Yahoo's website.
- In known systems, email accounts accessed through a browser are available only when the user's computer is online. There is no ability to access such systems through a browser interface when the user's computer is offline.
- It is desirable for one to be able to review, search, and compose email messages when the one's computer is offline, such as when one is on an airplane. Currently, the only way to do this is to use a separate email client application (other than the browser interface) to view one's email. Microsoft Outlook and Outlook Express are examples of such an application. One disadvantage of this is that a user has a separate email interface for when the user is offline and online. Consequently, when a user is offline, it is desirable to enable the user to review and search email messages received prior to the user going offline and to compose messages that will be saved and automatically sent when the user is back online, where such functionality is provided through the same browser interface that the user uses when he is online.
- The present invention provides a system and method for providing online and offline email functionality (and/or other collaboration suite functionality). A local web server application running on the user's computer serves an email client on the user's computer, where the email client executes within a browser. The browser sends requests to the local web server application for user mailbox information, and the local web server application responds to such requests. Because the local web server application executes on the user's computer, it is able to serve the email client regardless of whether the user's computer is online or offline.
- The local web server application also communicates with a remote web server, where the remote web server has the capability to receive incoming messages from a Mail Transfer Agent and to send outbound message to a Mail Transfer Agent. When the user's computer is online, the remote web server and local web server application periodically (although not necessarily at regular intervals) synchronize their user mailbox information. The local web server application and remote web server application store, search, and index user mailbox information in the same manner.
-
FIG. 1 illustrates a block diagram of an email system according to one embodiment of the present invention. -
FIG. 2 illustrates a method for providing online and offline use of email through a browser interface. -
FIG. 3 illustrates a method for sending an outbound email message that is composed when the user is offline. -
FIG. 4 illustrates a method for processing inbound email messages that are received when the user is offline. -
FIGS. 5 a-5 b illustrate a method for synchronizing user mailbox information stored by the local web server application and the remote web server. -
FIG. 6 a is a block diagram of an example remote web server application that provides email/collaboration functionality. -
FIG. 6 b is a block diagram of an example local web server application that provides email/collaboration functionality. -
FIG. 1 illustrates a block diagram of anemail system 100 according to one embodiment of the present invention. The system includes aremote web server 160 and a local web server application 130, where the local web server application runs on a user's computer. Theremote web server 160 and local web server application 130 execute code that provides email server functionality. Such code may also provide additional functionality associated with collaboration applications, such as a calendar and “contacts” directory (i.e., an electronic address book). Both the local web server application 130 and theremote web server 160 store user mailbox information and process user mailbox information in the same way. - The local web server application 130 serves an email client application 110 that runs within browser 120 on the user's computer 170 (i.e., with email client code 110, the browser 120 becomes the email client). The local web server application 130 responds to requests from the browser 120 to retrieve or process user mailbox information.
- The
remote web server 160 communicates with a Mail Transfer Agent (MTA) 180 to receive inbound email messages for the user and to send the user's outbound message. The localweb server application 160 andremote web server 160 includesynchronization modules - During synchronization, the
remote web server 160 provides the local web server application 130 with changes to user mailbox information made on theremote web server 160. Examples of changes to user mailbox information that may occur on the remote web server include the receipt of new, incoming email messages in the user's mailbox, or appointments made in the user's calendar by authorized third parties. Also during synchronization, the local web server application 130 provides theremote web server 160 with changes to user mailbox information made on the user computer 170. Examples of changes to user mailbox information that may occur on the user computer 170 include a user composing and sending a message, or a user adding a person to his contacts. - As indicated above, the
email system 100 can provide more than just email functionality. It can provide other collaboration application functionality, such as calendaring functionality and a contacts directory. The methods described herein with respect to storing, processing, retrieving, and synchronizing email data can also apply to other user mailbox content, such as calendar appointments and contact files. -
FIG. 2 illustrate a method for using the local web server application 130 and theremote web server 160 to provide both online and offline email functionality (and/or other collaboration application functionality) to the user. The method comprises the following: -
- 1. Running a client email application 110 in a browser 120 on the user's computer (step 210). In one embodiment, the email client application 110 is in the form of JavaScript downloaded into a user's browser that makes SOAP (Simple Object Access Protocol) calls to the local web server application 130. The email client 110 is configured to send user-mailbox-related requests to the local web server application 130.
- 2. Using the local web server application 130 running on the user's computer 170 to store and process user mailbox information on the user's computer 170, to respond to requests from the client application 110 for user mailbox information, and to receive changes to user mailbox information made by the user via the client application 110 (step 220). The local web server application 130 can search, store, and index user mailbox information in the same manner as the
remote web server 160. Consequently, the local web server application 130 enables a user to view, search, and compose messages in the same manner as if the client application 110 were communicating with theremote web server 160. The local web server application 130 stores use mailbox information on the hard drive on the user's computer 170. Changes made to the user's mailbox information on the user's computer 170 are periodically sent to theremote web server 160 and vice versa. - 3. Using the
remote web server 160 to remotely store and process user mailbox information, to receive incoming email messages for the user from a MTA 180, and to send outbound email messages to a MTA 180 that are composed by the user and sent to theremote web server 160 by the local web server application 130 (step 230). As indicated above, the local web server application 130 andremote web server 160 synchronize user mailbox information periodically when the user's computer is online (step 230).
- Because the local web server application 130 responds to the email client 110 in the browser 120, the user can access, view, and search his mailbox information through the browser 120 even when he is offline. The messages he will be able to view, search, and otherwise manipulate are those that were received the last time the user was online. Messages composed when the user is offline are automatically sent to the designated addresses (via the remote web server 160) when the user is back online. The user will be able to retrieve and search messages faster by the fact that the local web server application 130 responds to requests from the browser 120 as opposed to the
remote web server 160. -
FIG. 3 illustrates how a composed message is handled by theemail system 100 according to one embodiment of the present invention. A user composes a message (step 310), and the email client 110 sends it to the local web server application 130 via the browser 120 (step 320). The local web server application 130 stores the message on the user's computer 170 and updates the user's “Outbox” folder on the user's computer 170 accordingly (step 330). When the user's computer 170 is online and theremote web server 160 and local web server application 130 are synchronizing data, the local web server application 130 sends the composed message to the remote web server 160 (step 340). Theremote web server 160 then sends the composed message out to theapplicable MTA 180, which forwards the message to the appropriate destination (step 350). Theremote web server 160 updates the user's “Sent Items” folder on the remote web server to include the sent message (step 350). The local web server application 130 updates the “Sent Items” folder on the user's computer 170 during the next data synchronization with the remote web server 160 (step 360). -
FIG. 4 illustrates how a received inbound message for the user is handled by theemail system 100 according to one embodiment of the present invention. Theremote web server 160 receives an incoming message from the MTA 180 (step 410). Theremote web server 160 then stores the message and updates the user's “Inbox” on theremote web server 160 accordingly (step 420). When the user's computer 170 is online and theremote web server 160 and local web server application 130 are synchronizing data, theremote web server 160 sends the incoming message to the local web server application 130 (step 430). After receiving the message, the local web server application 130 stores the message on the user's computer and updates the user's “Inbox” folder on such computer 170 to include the message (step 440). The local web server application 130 sends the updated Inbox to the user when the user opens the client application 110. -
FIGS. 5 a-b illustrate an example of the way in which thesynchronization modules remote web server 160. The method described with respect toFIG. 5 is just one method and other data synchronization methods may be employed. When the user's computer 170 is online, thesynchronization module 150 on the local web server application 170 will periodically (but not necessarily at regular intervals) send a request to synchronize data (“a data sync request”) to the remote web server 160 (step 510). In one embodiment, the local web server application will send a data sync request when one of the following scenarios occurs: (1) theremote web server 160 informs the local web server application 130 that a change to the user's mailbox has occurred (such as when the user receives a message); (2) a certain amount of time has passed; or (3) a certain amount of time has passed after the user has made a change to the user mailbox information stored by the local web server application 130. - If this is the first time the local web server application and remote web server are performing synchronization, the
synchronization module 150 on theremote web server 160 sends the local web server application 130 all of the applicable user's mailbox information, as well as a “sync token” (step 520). In one embodiment, a sync token is a unique string. In a further embodiment, the sync token is a unique, numeric string associated with the last piece of data to be sent to the local web server application 130. For each content or metadata change to the user's mailbox received at theremote web server 160 after such last piece of data, theremote web server 160 increments the numeric string by one and associates such new numeric string with such content or metadata change (where each content or metadata changes is associated with a string that is one greater than the string associated with the previous content or metadata change). - If this is not the first time the local web server application 130 and
remote web server 160 are performing a synchronization, the data sync request by thesynchronization module 140 on the user's computer 170 includes the last sync token provided to the local web server application 130 by the remote web server 160 (step 530). Thesynchronization module 150 on the remote web sever 160 then provides the local web server application 130 with the metadata changes and content changes that have occurred since the last synchronization, where theremote web server 160 uses the sync token to identify such changes (step 540). The sync response also includes a new sync token (step 540). - The local web server application 130 then determines if there are any conflicts between the data provided by the
remote web server 160 and changes made the user on the user's computer 170 since the last synchronization (step 550). The local web server application 130 may ask the user to resolve conflicts or it may follow rules for resolving the conflict itself (step 560). - After any conflicts have been resolved, the
synchronization module 140 on the local web server application 130 sends theremote web server 160 mailbox changes made by the user on the user's computer 170 (and stored by the local web server application 130) since the last data synchronization (step 570).Synchronization module 140 also sends the remote web server 160 a sync request with the latest sync token (step 580). In response to receiving such sync token, theremote web server 160 provides the local web server application 130 with changes made to the user's mailbox on the remote web server since such sync token was created (step 585). Theremote web server 160 also provides the local web server application 130 with a new sync token (if changes have occurred since step 540). The local web server application 130 then determines if a conflict exists (step 590). If one exists, the conflict is resolved through either rules or user intervention, as applicable (595), and steps 570-590 are repeated. Otherwise, the data synchronization ends (step 598). -
FIG. 6 a illustrates an example of email server software running on theremote server 160. The software on theremote web server 160 can be thought of as divided into various functional modules. These modules include aMailbox Interface 1670, aQuery Parser 1630, anIndexer 1635, aDatabase Management Module 1640, aMessage Store Interface 1645, aMTA Interface 1620, anEmail Client Interface 1615, and aSynchronization Module 1680. In one embodiment these modules are coded in Java. Those skilled in the art will appreciate that an email application will include additional, well-known functionality not represented by the above modules (such as functionality related to security, user log in, global address lists, etc.). Moreover,FIGS. 6 a and 6 b are examples of one way to implement the local web server application 130 and the email server software running on theremote web server 160, and such local web server application and email server software may be implemented in other ways. - The
Database Management Module 1640 is a set of routines for managing, storing and retrieving information in a relational Database 1655 (e.g., MySQL). The Database 1655 includes information about each provisioned email user's mailbox that is used to generate a view of the user's mailbox. It stores a listing of the contents of a user's mailbox (with a reference to the actual storage location of the messages in the Message Store 1660), and it includes mutable information about such content, such as which folder each message resides (inbox, sent items, user-created folders, etc.) or which messages have been read. - The
Message Store Interface 1645 is software for storing and retrieving email messages in aMessage Store 1660. The Message Store (often referred to as the “BLOB Store” in the industry) stores the actual email messages, including any attachments embedded within email messages. If theremote web server 160 provides collaboration functionality, then the message store also stores content related to other mailbox items, such as calendar appointments and contacts. Techniques for storing and retrieving email messages, as well as storing and retrieving user-specific mailbox information to generate a view of a user's mailbox, are well known in the art. - The
Indexer 1635 indexes email messages based on the content of the messages and on the metadata in the headers of the email messages. TheIndexer 1635 also may index email attachments based on content and metadata. If theremote web server 160 provides collaboration application functionality other than just email, than theIndexer 1635 may also index other mailbox items, such as calendar appointments and contact files. TheIndexer 1635 stores the indexes inIndex 1650. In an alternate embodiment, the functionality of the Indexer 335 and theDatabase Management Module 1640 are combined, and the indexes and user mailbox information are stored in one database. - The
Email Client Interface 1615 is the interface through which remote web server communicates with browsers when there is no local web server application 130 on the user computers (in such scenario, the methods described with respect toFIGS. 2-5 are not used, and there is no offline email functionality). In one embodiment, when a user logs into the web server, theEmail Client Interface 1615 send the user's browser an initial web page that includes JavaScript code. The JavaScript code is downloaded into a user's browser to become the email client application 110. When an email client application communicates directly with the remote web server 170,Email Client Interface 1615 processes inbound and outbound communications with such email client. In one embodiment, theEmail Client Interface 1615 communicates with Email Clients via SOAP. - The
MTA Interface 1620 receives incoming messages for provisioned users (i.e., users who have mailboxes with the email application on the remote web server 160) from a Mail Transfer Agent (MTA) (not shown). In one embodiment theMTA Interface 1620 uses the Local Mail Transfer Protocol (LMTP) to communicate with an MTA that uses the Simple Mail Transfer Protocol (SMTP). The MTA forwards incoming email message to theMailbox Interface 1670. - The
Mailbox Interface 1670 processes incoming email messages, including parsing email message headers for metadata. TheMailbox Interface 1670 sends the metadata to theIndexer 1635 andDatabase Management Module 1640, as applicable. TheMailbox Interface 1670 includes aSynchronization Module 1680 which performs the synchronization described with respect toFIG. 5 . - The
Mailbox Interface 1670 also includes aQuery Parser 1630, which parses all requests that involve searching theIndex 1650 or the Database 1655. In response to receiving such requests, theQuery Parser 1630 creates appropriate query trees and sends them to either theIndexer 1635 or theDatabase Management Module 1640, depending on whether or not theIndex 1650 or the Database 1655 has the appropriate information. TheQuery Parser 1630 receives, and if necessary, assembles the responses to the query trees from theIndexer 1635 andDatabase Management Module 1640 and forwards it to the appropriate interface for transmittal to the requesting systems. -
FIG. 6 b illustrates an example of the local web server application 130. Like the software on the remote server, the local web server application includes aMailbox Interface 1370, aQuery Parser 1330, anIndexer 1335, aDatabase Management Module 1340, aMessage Store Interface 1345, and aSynchronization Module 1380. These modules process user mailbox information the same as the corresponding modules on theremote web server 160. Thus, the user experience with his mailbox is the same regardless of whether the email client communicates with the local web server application 130 or theremote web server 160. The local web server application 130 uses the file system on the hard drive of the user's computer 170 to store the index and the messages associated with the user's mailbox. Consequently, theIndexer 1335 andMessage Store Interface 1345 respectively store the index and mailbox content in the file system of the user's computer 170. TheDatabase Management Module 1340 uses an embedded database on the user's computer 170 to store the same type of user mailbox information that theDatabase Management Module 1640 on theremote web server 160 stores in the Database 1655. - Like the
remote web server 160, local web server application 130 also includes anEmail Client Interface 1315.Email Client Interface 1315 processes inbound and outbound communications with the email client application 110 in the web browser 120. In one embodiment, theEmail Client Interface 1315 communicates with the email client application 110 via SOAP. Also, in one embodiment, the first web page provided to the browser 120 by the Email Client Interface includes JavaScript code. The JavaScript code is downloaded into a user's browser to become the email client application 110. - As will be understood by those familiar with the art, the invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Accordingly, the disclosure of the present invention is intended to be illustrative and not limiting of the invention.
Claims (18)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/202,987 US20090094332A1 (en) | 2004-09-02 | 2005-08-12 | System and method for enabling offline use of email through a browser interface |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US60686204P | 2004-09-02 | 2004-09-02 | |
US11/202,987 US20090094332A1 (en) | 2004-09-02 | 2005-08-12 | System and method for enabling offline use of email through a browser interface |
Publications (1)
Publication Number | Publication Date |
---|---|
US20090094332A1 true US20090094332A1 (en) | 2009-04-09 |
Family
ID=40524248
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/202,918 Active 2028-07-15 US7596594B2 (en) | 2004-09-02 | 2005-08-12 | System and method for displaying and acting upon email conversations across folders |
US11/202,987 Abandoned US20090094332A1 (en) | 2004-09-02 | 2005-08-12 | System and method for enabling offline use of email through a browser interface |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/202,918 Active 2028-07-15 US7596594B2 (en) | 2004-09-02 | 2005-08-12 | System and method for displaying and acting upon email conversations across folders |
Country Status (1)
Country | Link |
---|---|
US (2) | US7596594B2 (en) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060080303A1 (en) * | 2004-10-07 | 2006-04-13 | Computer Associates Think, Inc. | Method, apparatus, and computer program product for indexing, synchronizing and searching digital data |
US20080046449A1 (en) * | 2006-08-18 | 2008-02-21 | Hon Hai Precision Industry Co., Ltd. | System and method for downloading hypertext markup language formatted web pages |
US20090037523A1 (en) * | 2007-07-31 | 2009-02-05 | Kolke Daniel J | System and Method for Synchronizing an Offline Web-Based Application with an Online Web-Based Application |
US20090234911A1 (en) * | 2008-03-14 | 2009-09-17 | Yahoo! Inc. | System and method for creating an efficient and scalable cache mode for a collaboration suite application |
US20090248695A1 (en) * | 2008-03-31 | 2009-10-01 | Microsoft Corporation | Online and offline applications |
US20100169407A1 (en) * | 2008-12-29 | 2010-07-01 | Industrial Technology Research Institute | Web application execution method |
US20100228765A1 (en) * | 2009-03-04 | 2010-09-09 | International Business Machines Corporation | Querying database clients utilizing email messages |
US20110138059A1 (en) * | 2009-12-03 | 2011-06-09 | Microsoft Corporation | Communication channel between web application and process outside browser |
US20120254282A1 (en) * | 2004-12-02 | 2012-10-04 | Microsoft Corporation | System and method for replicating offline scheduling transactions from a client to a server |
US20130132463A1 (en) * | 2011-11-21 | 2013-05-23 | Microsoft Corporation | Client application file access |
US20130185362A1 (en) * | 2012-01-17 | 2013-07-18 | Microsoft Corporation | Installation and Management of Client Extensions |
US8554753B1 (en) | 2012-03-28 | 2013-10-08 | Google Inc. | Maintaining database transaction priority between web pages in the absence of direct communication between the pages |
US8554729B2 (en) | 2011-08-31 | 2013-10-08 | Google Inc. | System and method for synchronization of actions in the background of an application |
US8843822B2 (en) | 2012-01-30 | 2014-09-23 | Microsoft Corporation | Intelligent prioritization of activated extensions |
WO2014153540A1 (en) * | 2013-03-22 | 2014-09-25 | Dropbox, Inc. | Local server for synced online content management system |
US20140317746A1 (en) * | 2013-03-15 | 2014-10-23 | Rudolf H. Hendel | System and Method for the Protection of Computers and Computer Networks Against Cyber Threats |
US8959425B2 (en) | 2011-12-09 | 2015-02-17 | Microsoft Corporation | Inference-based extension activation |
US9201921B2 (en) * | 2007-11-02 | 2015-12-01 | Adobe Systems Incorporated | Methods and systems for offline execution of rich internet applications |
US20160014107A1 (en) * | 2014-07-10 | 2016-01-14 | Canon Kabushiki Kaisha | Data synchronizing system, control method thereof, authorization server, and storage medium thereof |
US9256445B2 (en) | 2012-01-30 | 2016-02-09 | Microsoft Technology Licensing, Llc | Dynamic extension view with multiple levels of expansion |
US9449112B2 (en) | 2012-01-30 | 2016-09-20 | Microsoft Technology Licensing, Llc | Extension activation for related documents |
US9965640B1 (en) * | 2011-09-23 | 2018-05-08 | PubNub Inc. | Real-time distribution of messages via a network with multi-region replication in a hosted service environment |
CN111950921A (en) * | 2020-08-20 | 2020-11-17 | 江苏杰瑞信息科技有限公司 | Multi-person collaborative review method based on offline networking environment |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6826729B1 (en) * | 2001-06-29 | 2004-11-30 | Microsoft Corporation | Gallery user interface controls |
US9715678B2 (en) | 2003-06-26 | 2017-07-25 | Microsoft Technology Licensing, Llc | Side-by-side shared calendars |
US8799808B2 (en) | 2003-07-01 | 2014-08-05 | Microsoft Corporation | Adaptive multi-line view user interface |
US7716593B2 (en) * | 2003-07-01 | 2010-05-11 | Microsoft Corporation | Conversation grouping of electronic mail records |
US7707255B2 (en) | 2003-07-01 | 2010-04-27 | Microsoft Corporation | Automatic grouping of electronic mail |
US10437964B2 (en) | 2003-10-24 | 2019-10-08 | Microsoft Technology Licensing, Llc | Programming interface for licensing |
US7814155B2 (en) | 2004-03-31 | 2010-10-12 | Google Inc. | Email conversation management system |
US7269621B2 (en) | 2004-03-31 | 2007-09-11 | Google Inc. | Method system and graphical user interface for dynamically updating transmission characteristics in a web mail reply |
US9819624B2 (en) | 2004-03-31 | 2017-11-14 | Google Inc. | Displaying conversations in a conversation-based email system |
US7912904B2 (en) | 2004-03-31 | 2011-03-22 | Google Inc. | Email system with conversation-centric user interface |
US7703036B2 (en) | 2004-08-16 | 2010-04-20 | Microsoft Corporation | User interface for displaying selectable software functionality controls that are relevant to a selected object |
US9015621B2 (en) | 2004-08-16 | 2015-04-21 | Microsoft Technology Licensing, Llc | Command user interface for displaying multiple sections of software functionality controls |
US8146016B2 (en) | 2004-08-16 | 2012-03-27 | Microsoft Corporation | User interface for displaying a gallery of formatting options applicable to a selected object |
US8117542B2 (en) | 2004-08-16 | 2012-02-14 | Microsoft Corporation | User interface for displaying selectable software functionality controls that are contextually relevant to a selected object |
US8255828B2 (en) | 2004-08-16 | 2012-08-28 | Microsoft Corporation | Command user interface for displaying selectable software functionality controls |
US7895531B2 (en) | 2004-08-16 | 2011-02-22 | Microsoft Corporation | Floating command object |
US7747966B2 (en) | 2004-09-30 | 2010-06-29 | Microsoft Corporation | User interface for providing task management and calendar information |
US7886290B2 (en) * | 2005-06-16 | 2011-02-08 | Microsoft Corporation | Cross version and cross product user interface |
US8239882B2 (en) | 2005-08-30 | 2012-08-07 | Microsoft Corporation | Markup based extensibility for user interfaces |
US8689137B2 (en) | 2005-09-07 | 2014-04-01 | Microsoft Corporation | Command user interface for displaying selectable functionality controls in a database application |
US9542667B2 (en) | 2005-09-09 | 2017-01-10 | Microsoft Technology Licensing, Llc | Navigating messages within a thread |
US7739259B2 (en) * | 2005-09-12 | 2010-06-15 | Microsoft Corporation | Integrated search and find user interface |
US8627222B2 (en) | 2005-09-12 | 2014-01-07 | Microsoft Corporation | Expanded search and find user interface |
US7627561B2 (en) * | 2005-09-12 | 2009-12-01 | Microsoft Corporation | Search and find using expanded search scope |
AU2006319738B2 (en) * | 2005-11-29 | 2012-07-05 | Coolrock Software Pty Ltd | A method and apparatus for storing and distributing electronic mail |
US8472430B2 (en) * | 2006-04-03 | 2013-06-25 | Microsoft Corporation | VoIP packet prioritization |
US8280015B2 (en) * | 2006-04-06 | 2012-10-02 | Microsoft Corporation | Providing contextual information with a voicemail message |
US8605090B2 (en) * | 2006-06-01 | 2013-12-10 | Microsoft Corporation | Modifying and formatting a chart using pictorially provided chart elements |
US9727989B2 (en) | 2006-06-01 | 2017-08-08 | Microsoft Technology Licensing, Llc | Modifying and formatting a chart using pictorially provided chart elements |
US20080003941A1 (en) * | 2006-06-30 | 2008-01-03 | Microsoft Corporation | VoIP two-way broadcasting |
US8817955B2 (en) * | 2006-06-30 | 2014-08-26 | Microsoft Corporation | Peer-to-peer broadcasting in a VoIP system |
US7921176B2 (en) * | 2007-01-03 | 2011-04-05 | Madnani Rajkumar R | Mechanism for generating a composite email |
US8201103B2 (en) | 2007-06-29 | 2012-06-12 | Microsoft Corporation | Accessing an out-space user interface for a document editor program |
US8762880B2 (en) | 2007-06-29 | 2014-06-24 | Microsoft Corporation | Exposing non-authoring features through document status information in an out-space user interface |
US8484578B2 (en) | 2007-06-29 | 2013-07-09 | Microsoft Corporation | Communication between a document editor in-space user interface and a document editor out-space user interface |
US20090234924A1 (en) * | 2008-03-14 | 2009-09-17 | Microsoft Corporation | Automatic Association of Messages with Conversations |
US9588781B2 (en) | 2008-03-31 | 2017-03-07 | Microsoft Technology Licensing, Llc | Associating command surfaces with multiple active components |
US7930356B2 (en) * | 2008-05-15 | 2011-04-19 | International Business Machines Corporation | Management of email threads |
US9665850B2 (en) | 2008-06-20 | 2017-05-30 | Microsoft Technology Licensing, Llc | Synchronized conversation-centric message list and message reading pane |
US8402096B2 (en) | 2008-06-24 | 2013-03-19 | Microsoft Corporation | Automatic conversation techniques |
US7904525B2 (en) * | 2009-03-15 | 2011-03-08 | International Business Machines Corporation | Displaying or hiding folders in an e-mail client based on user defined timings |
WO2010107476A1 (en) * | 2009-03-19 | 2010-09-23 | Duke University | Inhibiting gsnor |
US8799353B2 (en) * | 2009-03-30 | 2014-08-05 | Josef Larsson | Scope-based extensibility for control surfaces |
US9046983B2 (en) | 2009-05-12 | 2015-06-02 | Microsoft Technology Licensing, Llc | Hierarchically-organized control galleries |
US9767438B2 (en) * | 2009-07-14 | 2017-09-19 | Bitvore Corp. | Presentation and sorting of email |
US8315602B2 (en) | 2010-02-05 | 2012-11-20 | Research In Motion Limited | Communications system including aggregation server for determining updated metadata of e-mail messages and related methods |
US8407181B2 (en) | 2010-05-26 | 2013-03-26 | Research In Motion Limited | Email system providing enhanced conversation and category search features and related methods |
US8302014B2 (en) | 2010-06-11 | 2012-10-30 | Microsoft Corporation | Merging modifications to user interface components while preserving user customizations |
US8458271B2 (en) * | 2010-11-09 | 2013-06-04 | International Business Machines Corporation | Handling email communications having human delegate prepared summaries |
US9251508B2 (en) | 2010-12-09 | 2016-02-02 | At&T Intellectual Property I, L.P. | Intelligent message processing |
US8775429B2 (en) * | 2011-04-04 | 2014-07-08 | Northwestern University | Methods and systems for analyzing data of an online social network |
US9037601B2 (en) * | 2011-07-27 | 2015-05-19 | Google Inc. | Conversation system and method for performing both conversation-based queries and message-based queries |
US8533275B2 (en) * | 2011-08-19 | 2013-09-10 | Microsoft Corporation | Synchronizing conversation structures in web-based email systems |
US8943071B2 (en) | 2011-08-23 | 2015-01-27 | At&T Intellectual Property I, L.P. | Automatic sort and propagation associated with electronic documents |
US9076130B2 (en) * | 2012-09-10 | 2015-07-07 | International Business Machines Corporation | Identifying a webpage from which an E-mail address is obtained |
US9870554B1 (en) | 2012-10-23 | 2018-01-16 | Google Inc. | Managing documents based on a user's calendar |
US20140122621A1 (en) * | 2012-10-31 | 2014-05-01 | Jedediah Michael Feller | Methods and systems for organizing electronic messages |
US9842113B1 (en) | 2013-08-27 | 2017-12-12 | Google Inc. | Context-based file selection |
US9973462B1 (en) | 2013-10-21 | 2018-05-15 | Google Llc | Methods for generating message notifications |
US10454872B2 (en) * | 2015-06-22 | 2019-10-22 | Microsoft Technology Licensing, Llc | Group email management |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020099727A1 (en) * | 2001-01-24 | 2002-07-25 | Kadyk Donald J. | Accounting for update notifications in synchronizing data that may be represented by different data structures |
US20020198951A1 (en) * | 1997-12-17 | 2002-12-26 | Microsoft Corporation | Method for continuously processing electronic messages throughout a transition between online and offline states |
US20030158947A1 (en) * | 2002-01-16 | 2003-08-21 | Bloch Eric D. | Enabling online and offline operation |
US6615276B1 (en) * | 2000-02-09 | 2003-09-02 | International Business Machines Corporation | Method and apparatus for a centralized facility for administering and performing connectivity and information management tasks for a mobile user |
US20050097225A1 (en) * | 2003-11-03 | 2005-05-05 | Glatt Darin C. | Technique for configuring data synchronization |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7035903B1 (en) * | 2000-11-22 | 2006-04-25 | Xerox Corporation | Systems and methods for the discovery and presentation of electronic messages that are related to an electronic message |
US7469280B2 (en) * | 2002-11-04 | 2008-12-23 | Sun Microsystems, Inc. | Computer implemented system and method for predictive management of electronic messages |
US7421690B2 (en) * | 2003-06-23 | 2008-09-02 | Apple Inc. | Threaded presentation of electronic mail |
US7716593B2 (en) * | 2003-07-01 | 2010-05-11 | Microsoft Corporation | Conversation grouping of electronic mail records |
US8275839B2 (en) * | 2004-03-31 | 2012-09-25 | Google Inc. | Methods and systems for processing email messages |
US9819624B2 (en) * | 2004-03-31 | 2017-11-14 | Google Inc. | Displaying conversations in a conversation-based email system |
US8554844B2 (en) * | 2004-07-16 | 2013-10-08 | Blackberry Limited | System and method for managing informational objects on mobile devices |
US8150926B2 (en) * | 2004-09-09 | 2012-04-03 | Microsoft Corporation | Organizing electronic mail messages into conversations |
-
2005
- 2005-08-12 US US11/202,918 patent/US7596594B2/en active Active
- 2005-08-12 US US11/202,987 patent/US20090094332A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020198951A1 (en) * | 1997-12-17 | 2002-12-26 | Microsoft Corporation | Method for continuously processing electronic messages throughout a transition between online and offline states |
US6615276B1 (en) * | 2000-02-09 | 2003-09-02 | International Business Machines Corporation | Method and apparatus for a centralized facility for administering and performing connectivity and information management tasks for a mobile user |
US20020099727A1 (en) * | 2001-01-24 | 2002-07-25 | Kadyk Donald J. | Accounting for update notifications in synchronizing data that may be represented by different data structures |
US20030158947A1 (en) * | 2002-01-16 | 2003-08-21 | Bloch Eric D. | Enabling online and offline operation |
US20050097225A1 (en) * | 2003-11-03 | 2005-05-05 | Glatt Darin C. | Technique for configuring data synchronization |
Cited By (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8126895B2 (en) * | 2004-10-07 | 2012-02-28 | Computer Associates Think, Inc. | Method, apparatus, and computer program product for indexing, synchronizing and searching digital data |
US20060080303A1 (en) * | 2004-10-07 | 2006-04-13 | Computer Associates Think, Inc. | Method, apparatus, and computer program product for indexing, synchronizing and searching digital data |
US9183547B2 (en) * | 2004-12-02 | 2015-11-10 | Microsoft Technology Licensing, Llc | System and method for replicating offline scheduling transactions from a client to a server |
US20120254282A1 (en) * | 2004-12-02 | 2012-10-04 | Microsoft Corporation | System and method for replicating offline scheduling transactions from a client to a server |
US20080046449A1 (en) * | 2006-08-18 | 2008-02-21 | Hon Hai Precision Industry Co., Ltd. | System and method for downloading hypertext markup language formatted web pages |
US7702814B2 (en) * | 2006-08-18 | 2010-04-20 | Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd. | System and method for downloading hypertext markup language formatted web pages |
US20090037523A1 (en) * | 2007-07-31 | 2009-02-05 | Kolke Daniel J | System and Method for Synchronizing an Offline Web-Based Application with an Online Web-Based Application |
US9201921B2 (en) * | 2007-11-02 | 2015-12-01 | Adobe Systems Incorporated | Methods and systems for offline execution of rich internet applications |
US20090234911A1 (en) * | 2008-03-14 | 2009-09-17 | Yahoo! Inc. | System and method for creating an efficient and scalable cache mode for a collaboration suite application |
US9262750B2 (en) * | 2008-03-14 | 2016-02-16 | Vmware, Inc. | System and method for creating an efficient and scalable cache mode for a collaboration suite application |
US20090248695A1 (en) * | 2008-03-31 | 2009-10-01 | Microsoft Corporation | Online and offline applications |
US9003059B2 (en) * | 2008-03-31 | 2015-04-07 | Microsoft Technology Licensing, Llc | Running applications in an online or offline mode based on the availability of the connection to the remote web server |
US7966367B2 (en) * | 2008-12-29 | 2011-06-21 | Industrial Technology Research Institute | Web application execution method |
US20100169407A1 (en) * | 2008-12-29 | 2010-07-01 | Industrial Technology Research Institute | Web application execution method |
US9406047B2 (en) * | 2009-03-04 | 2016-08-02 | International Business Machines Corporation | Querying database clients utilizing email messages |
US20100228765A1 (en) * | 2009-03-04 | 2010-09-09 | International Business Machines Corporation | Querying database clients utilizing email messages |
US10552411B2 (en) | 2009-03-04 | 2020-02-04 | International Business Machines Corporation | Email service adapter |
US20110138059A1 (en) * | 2009-12-03 | 2011-06-09 | Microsoft Corporation | Communication channel between web application and process outside browser |
US9390172B2 (en) * | 2009-12-03 | 2016-07-12 | Microsoft Technology Licensing, Llc | Communication channel between web application and process outside browser |
US9015117B2 (en) | 2011-08-31 | 2015-04-21 | Google Inc. | System and method for synchronization of actions in the background of an application |
US8554729B2 (en) | 2011-08-31 | 2013-10-08 | Google Inc. | System and method for synchronization of actions in the background of an application |
US10691820B1 (en) | 2011-09-23 | 2020-06-23 | PubNub Inc. | Real-time distribution of messages via a network with multi-region replication in a hosted service environment |
US9965640B1 (en) * | 2011-09-23 | 2018-05-08 | PubNub Inc. | Real-time distribution of messages via a network with multi-region replication in a hosted service environment |
US20130132463A1 (en) * | 2011-11-21 | 2013-05-23 | Microsoft Corporation | Client application file access |
US9355115B2 (en) * | 2011-11-21 | 2016-05-31 | Microsoft Technology Licensing, Llc | Client application file access |
US8959425B2 (en) | 2011-12-09 | 2015-02-17 | Microsoft Corporation | Inference-based extension activation |
US10922437B2 (en) | 2012-01-17 | 2021-02-16 | Microsoft Technology Licensing, Llc | Installation and management of client extensions |
US9679163B2 (en) * | 2012-01-17 | 2017-06-13 | Microsoft Technology Licensing, Llc | Installation and management of client extensions |
US20130185362A1 (en) * | 2012-01-17 | 2013-07-18 | Microsoft Corporation | Installation and Management of Client Extensions |
US8843822B2 (en) | 2012-01-30 | 2014-09-23 | Microsoft Corporation | Intelligent prioritization of activated extensions |
US9256445B2 (en) | 2012-01-30 | 2016-02-09 | Microsoft Technology Licensing, Llc | Dynamic extension view with multiple levels of expansion |
US10459603B2 (en) | 2012-01-30 | 2019-10-29 | Microsoft Technology Licensing, Llc | Extension activation for related documents |
US9449112B2 (en) | 2012-01-30 | 2016-09-20 | Microsoft Technology Licensing, Llc | Extension activation for related documents |
US10503370B2 (en) | 2012-01-30 | 2019-12-10 | Microsoft Technology Licensing, Llc | Dynamic extension view with multiple levels of expansion |
US8554753B1 (en) | 2012-03-28 | 2013-10-08 | Google Inc. | Maintaining database transaction priority between web pages in the absence of direct communication between the pages |
US9501645B2 (en) * | 2013-03-15 | 2016-11-22 | Rudolf H. Hendel | System and method for the protection of computers and computer networks against cyber threats |
US20140317746A1 (en) * | 2013-03-15 | 2014-10-23 | Rudolf H. Hendel | System and Method for the Protection of Computers and Computer Networks Against Cyber Threats |
US10277673B2 (en) | 2013-03-22 | 2019-04-30 | Dropbox, Inc. | Local server for synced online content management system |
US9451022B2 (en) | 2013-03-22 | 2016-09-20 | Dropbox, Inc. | Local server for synced online content management system |
US9088573B2 (en) | 2013-03-22 | 2015-07-21 | Dropbox, Inc. | Local server for synced online content management system |
WO2014153540A1 (en) * | 2013-03-22 | 2014-09-25 | Dropbox, Inc. | Local server for synced online content management system |
US10237255B2 (en) * | 2014-07-10 | 2019-03-19 | Canon Kabushiki Kaisha | Data synchronizing system, control method thereof, authorization server, and storage medium thereof |
US20160014107A1 (en) * | 2014-07-10 | 2016-01-14 | Canon Kabushiki Kaisha | Data synchronizing system, control method thereof, authorization server, and storage medium thereof |
CN111950921A (en) * | 2020-08-20 | 2020-11-17 | 江苏杰瑞信息科技有限公司 | Multi-person collaborative review method based on offline networking environment |
Also Published As
Publication number | Publication date |
---|---|
US20090100009A1 (en) | 2009-04-16 |
US7596594B2 (en) | 2009-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20090094332A1 (en) | System and method for enabling offline use of email through a browser interface | |
US11509613B2 (en) | System and method for enabling an external-system view of email attachments | |
US8032598B1 (en) | Methods and systems of electronic message threading and ranking | |
CN102521733B (en) | Mark dialogue and message in the e-mail system based on dialogue | |
JP5383660B2 (en) | Synchronization of email messages between external email servers and / or local email servers and / or wireless devices | |
EP1447765B1 (en) | Method, apparatus, and user interface for managing electronic mail and alert messages | |
US8606854B2 (en) | System and method for opportunistic image sharing | |
US8161120B2 (en) | Method of populating a collaborative workspace and a system for providing the same | |
US20080270548A1 (en) | Apparatus and method for caching email messages within a wireless data service | |
US20140046961A1 (en) | Systems and methods for re-ranking displayed conversations | |
US8533275B2 (en) | Synchronizing conversation structures in web-based email systems | |
US9961032B2 (en) | Extended email functionality | |
EP1915704A1 (en) | Annotating shared contacts with public descriptors | |
WO2003070214A2 (en) | Method of automatically populating contact information fields for a new contact added to an electronic contact database | |
US9929996B2 (en) | Common email database for a plurality of users | |
US9319243B2 (en) | Message server that retains messages deleted by one client application for access by another client application | |
US20060095476A1 (en) | Method and system for providing one-to-one email collaboration | |
US20090177748A1 (en) | System and method for automatic opportunistic data and image sharing | |
US7653631B1 (en) | Method for synchronizing information in multiple case management systems | |
US20230308521A1 (en) | Management device, management method, and recording medium | |
WO2016148814A1 (en) | Extended email functionality | |
JP2003198631A (en) | Mail server system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ZIMBRA, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DARGAHI, ROSS;SCHEMERS III, ROLAND J.;DHARMARAJ, SATISH;REEL/FRAME:016895/0397;SIGNING DATES FROM 20050809 TO 20050812 |
|
AS | Assignment |
Owner name: YAHOO| INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ZIMBRA, INC.;REEL/FRAME:020214/0690 Effective date: 20071114 |
|
AS | Assignment |
Owner name: VMWARE, INC.,CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:YAHOO| INC.;REEL/FRAME:024309/0557 Effective date: 20100204 Owner name: VMWARE, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:YAHOO| INC.;REEL/FRAME:024309/0557 Effective date: 20100204 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |