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 PDF

Info

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
Application number
US11/202,987
Inventor
Roland J. Schemers, III
Ross Dargahi
Satish Dharmaraj
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
VMware LLC
Original Assignee
Zimbra Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zimbra Inc filed Critical Zimbra Inc
Priority to US11/202,987 priority Critical patent/US20090094332A1/en
Assigned to ZIMBRA, INC. reassignment ZIMBRA, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: DHARMARAJ, SATISH, DARGAHI, ROSS, SCHEMERS III, ROLAND J.
Assigned to YAHOO! INC. reassignment YAHOO! INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ZIMBRA, INC.
Publication of US20090094332A1 publication Critical patent/US20090094332A1/en
Assigned to VMWARE, INC. reassignment VMWARE, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: YAHOO! INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99937Sorting

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

A system and method provide online and offline 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. 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, and send outbound messages 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.

Description

    RELATED APPLICATIONS
  • 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.
  • BACKGROUND OF THE INVENTION
  • 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.
  • SUMMARY OF THE INVENTION
  • 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.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • 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.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • 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. 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.
  • During synchronization, 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. 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 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.
  • 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 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:
      • 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 the remote 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 the remote 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 the remote web server 160 by the local web server application 130 (step 230). As indicated above, the local web server application 130 and remote 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 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). When the user's computer 170 is online and the remote 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). 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). When the user's computer 170 is online and the remote web server 160 and local web server application 130 are synchronizing data, the remote 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 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. When the user's computer 170 is online, 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). In one embodiment, 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.
  • If this is the first time the local web server application and remote web server are performing synchronization, the synchronization module 150 on the remote 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 the remote web server 160 after such last piece of data, 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).
  • 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 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 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 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). In response to receiving such sync token, 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 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 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). In one embodiment, 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. 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, 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). In one embodiment the MTA 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 the Mailbox Interface 1670.
  • 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. In response to receiving such requests, 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. Like the software on the remote server, 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. 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 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. Consequently, 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.
  • Like the remote web server 160, 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. In one embodiment, the Email 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)

1. A method for providing online and offline email services to a user, the method comprising:
running a client email application in a browser on a user's computer;
using a local web server application running on the user's computer to store user mailbox information on the user's computer, to respond to requests from the client email application for user mailbox information, and to receive changes to user mailbox information made by the user via the client email application; wherein the local web server application is able to respond to the client email application regardless of whether the user's computer is online or offline; and
using a remote web server to remotely store user mailbox information, to receive incoming email messages for the user and to send outbound email messages that are composed by the user and sent to the remote web server by the local web server application, wherein the local web server application and remote web server synchronize user mailbox information periodically when the user's computer is online and wherein the local web server application stores, searches, and indexes user mailbox information in the same manner as the remote web server.
2. The method of claim 1, wherein the client email application is a collaboration application and wherein the local web server application and the remote web server provide collaboration functionality to the user, including a calendar and a contacts directory for the user.
3. The method of claim 2, wherein the remote web server receives calendaring changes made by authorized third parties to the calendar, updates the user mailbox information stored on the remote web server to reflect such changes, and provides such changes to the local web server application during synchronization, where, in response to receiving such changes, the local web server application updates the user mailbox information stored on the user's computer to reflect such changes.
4. The method of claim 2, wherein the local web server application receives calendaring changes made by the user to the calendar, updates the user mailbox information stored on the user's computer accordingly, and provides such changes to the remote web server during synchronization, where, in response to receiving such changes, the remote web server updates the user mailbox information stored on the remote web server to reflect such changes.
5. The method of claim 2, wherein the remote web server receives changes made by authorized third parties to the contacts directory, updates the user mailbox information stored on the remote web server to reflect such changes, and provides such changes to the local web server application during synchronization, where, in response to receiving such changes, the local web server application updates the user mailbox information stored on the user's computer to reflect such changes.
6. The method of claim 2 wherein the local web server application receives changes made by the user to the contacts directory, updates the user mailbox information stored on the user's computer to reflect such changes, and provides such changes to the remote web server during synchronization, where, in response to receiving such changes, the remote web server updates the user mailbox information stored on the remote web server to reflect such changes.
7. The methods of claim 5 wherein the local web server application receives changes made by the user to the contacts directory, updates the user mailbox information stored on the user's computer to reflect such changes, and provides such changes to the remote web server during synchronization, where, in response to receiving such changes, the remote web server updates the user mailbox information stored on the remote web server to reflect such changes.
8. A computer-implemented system for providing offline and online email functionality to a user, the system comprising:
a client application that executes within a browser on a user's computer;
a local web server application that communicates with the client application via the browser and that stores user mailbox information on the user's computer, responds to requests from the client application for user mailbox information, and receives changes to user mailbox information made by the user via the client application; wherein the local web server application is able to respond to the client application regardless of whether the user's computer is online or offline;
a remote web server that remotely stores user mail box information, receives incoming email messages for the user and sends outbound email messages from the user, wherein such outbound email messages are sent to the remote web server by the local web server application and wherein the local web server application and remote web server synchronize user mailbox information periodically when the user's computer is online.
9. A computer-implemented collaboration system for providing online and offline collaboration functionality comprising:
a client collaboration application that executes within a browser on a user's computer;
a local web server application that executes on the user's computer, that is capable of communicating with the client collaboration application via the browser, and that provides collaboration functionality to the user by storing, retrieving, and processing user mailbox information on the user's computer;
a remote web server that also stores, retrieves and processes the user's mailbox information;
wherein:
the remote web server and the local web server application communicate via a network and, when the user's computer is on the network, the local web server application and the remote web server periodically synchronize the user mailbox information; and
the local web server application can communicate with the client collaboration application regardless of whether the user's computer is on the network or off the network, enabling the user to have collaboration functionality offline.
10. The computer-implemented collaboration system of claim 9, wherein the client collaboration application appears the same to the user regardless of whether the browser in which the client collaboration application executes is in communication with the local web server application or the remote web server.
11. A computer-implemented collaboration system comprising:
a client collaboration application that executes within a browser on a user's computer;
a local web server application that executes on the user's computer and that communicates with the client collaboration application to provide collaboration application functionality to the user by storing and processing user mailbox information on the user's computer; and
a remote web server that also stores and processes the user mailbox information, where the remote web server communicates with the local web server application via a network and, when the user's computer is on the network, the local web server application and remote web server synchronize the user mailbox information;
wherein the local web server application processes the user mailbox information in the same way as the remote web server and wherein the local web server application communicates with the browser regardless of whether or not the user's computer is on the network.
12. (canceled)
13. (canceled)
14. A method for providing online and offline collaboration suite services to a user, the method comprising:
running a client collaboration suite application in a browser on a user's computer; and using a local web server application running on the user's computer to store user mailbox information on the user's computer, to respond to requests from the client collaboration suite application for user mailbox information, and to receive changes to user mailbox information made by the user via the client collaboration suite application; wherein the local web server application is able to respond to the client collaboration suite application regardless of whether the user's computer is online or offline, and wherein the local web server synchronizes user mailbox data with a remote server when the user's computer is online, and upon the occurrence of a pre-specified event.
15. The method of claim 14, wherein the pre-specified is one of a group comprised of:
(1) a certain amount of time passing since a previous synchronization; (2) the remote web server indicating to the local web server application that a change has occurred on the remote web server; and (3) a certain amount of time passing since the user made a change to the user mailbox information.
16. The method of claim 14, further comprising:
passing a sync token between the remote web server and the local web server application.
17. The method of claim 16, wherein the sync token is modified by the remote web server when there is a change to the user mailbox information stored on the remote web server.
18. The method of claim 16, wherein the sync token is modified by the local web sewer application when there is a change to the user mailbox information stored on the user's computer.
US11/202,987 2004-09-02 2005-08-12 System and method for enabling offline use of email through a browser interface Abandoned US20090094332A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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