WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
System and method for managing electronic mail messages using a client-based database    
United States Patent6134582   
Link to this pagehttp://www.wikipatents.com/6134582.html
Inventor(s)Kennedy; Kevin Alan (Redmond, WA)
AbstractManaging electronic mail messages in a client-server environment. A database, stored at the client, maintains a central archive of message-related information in connection with messages located on the server to support current and future message communication operations between the client and the server. Message-related information is retrieved from the server. Based on the message-related information, a determination is made as to whether the message has been downloaded from the server to the local message store located at the client. In response to determining that the message has not been downloaded, the message is downloaded from the server to the local message store. Data fields in the client-based database are populated with the message-related information, and indications are provided in the client-based database that the message is present on the server and that the message has been downloaded. During subsequent client-server sessions, the database is then consulted for managing, the messages. The database also supports efficient management of messages having multiple message parts i.e., message re-assembly.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 6134582
System and method for managing electronic mail messages using a
     client-based database - US Patent 6134582 Drawing
System and method for managing electronic mail messages using a client-based database
Inventor     Kennedy; Kevin Alan (Redmond, WA)
Owner/Assignee     Microsoft Corporation (Redmond, WA)
Patent assignment
All assignments
Publication Date     October 17, 2000
Application Number     09/084,597
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     May 26, 1998
US Classification     709/206 709/203 709/219
Int'l Classification    
Examiner     Maung; Zarni
Assistant Examiner     Gebremeskel; Yeshi
Attorney/Law Firm     Jones & Askew, LLP
Address
Parent Case    
Priority Data    
USPTO Field of Search     709/206 709/207 709/219 709/203 379/93.01
Patent Tags     managing electronic mail messages a client-based database
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5937162
Funk et al.

Aug,1999

[0 after 0 votes]
5928333
Landfield et al.

Jul,1999

[0 after 0 votes]
5893087
Wlaschin et al.

Apr,1999

[0 after 0 votes]
5826022
Nielsen

Oct,1998

[0 after 0 votes]
5793972
Shane

Aug,1998

[0 after 0 votes]
5632011
Landfield et al.

May,1997

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. In a distributed computer system including a server and a client, the client including a local message store and a client-based database, a method for managing electronic mail messages based on message-related information corresponding to each message stored in the client-based database, comprising the steps of:

(A) during a client-server session, retrieving from the server the message-related information corresponding to a message;

(B) based on the message-related information, determining whether the message has been downloaded from the server to the local message store located at the client;

(C) in response to determining that the message has not been downloaded from the server to the local message store,

i. downloading the message from the server to the local message store,

ii. populating data fields in the client-based database with the message-related information,

iii. providing an indication in the client-based database that the message is present on the server, and

iv. providing an indication in the client-based database that the message has been downloaded from the server to the local message store;

(D) repeating the steps (A) through (C) for each remaining message on the server; and

(E) consulting the client-based database for managing the messages during subsequent client-server sessions.

2. The method of claim 1, wherein the step of downloading the message from the server to the local message store comprises:

determining whether a size restriction has been set for downloading the message;

in response to determining that a size restriction has been set for downloading the message, determining whether a message size for the message is greater than a predetermined size limit; and

in response to determining that either 1) a size restriction has not been set for downloading the message or 2) the message size for the message is not greater than the predetermined size limit, downloading the message from the server to the local message store.

3. The method of claim 1, further comprising the step of:

in response to determining that the message has been downloaded from the server to the local message store, identifying in the client-based database the message-related information corresponding to the message and providing an indication in the client-based database that the message is present on the server.

4. The method of claim 1, further comprising the steps of:

determining whether the client is in a "leave on server" mode, the "leave on server" mode indicating that the message remains on the server after the message has been downloaded from the server to the local message store; and

in response to determining that the client is not in the "leave on server" mode, providing an indication in the client-based database to delete the message and based on the provided indication, deleting the message-related information for the message from the client-based database and the message from the server.

5. The method of claim 4, further comprising the steps of:

in response to determining that the client is in the "leave on server" mode, determining whether a time expiration has been set for deleting the message;

in response to determining that a time expiration has been set for deleting the message,

i. determining whether the time has expired for the message, and

ii. in response to determining that the time has expired for the message, providing an indication in the client-based database to delete the message and based on the provided indication, deleting the message-related information for the message from the client-based database and the message from the server.

6. The method of claim 5, wherein the step of determining whether the time has expired for the message comprises comparing a date and time for the message to a preset period of time allowed for the message-related information to remain in the client-based database.

7. The method of claim 5, further comprising the steps of:

in response to determining that a time expiration has not been set for deleting the message, determining whether an indication to delete the message has been provided in the client-based database; and

in response to determining that an indication to delete the message has been provided in the client-based database, deleting the message-related information for the message from the client-based database and the message from the server.

8. The method of claim 5, wherein the step of providing an indication to delete the message comprises setting a "delete" flag in the client-based database.

9. The method of claim 1, wherein the message-related information comprises a unique identifier for identifyling the message and a session identifler for indicating the order in which the message is downloaded from the server to the client.

10. The method of claim 9, wherein the message-related information further comprises a message size and a date and time.

11. The method of claim 9, wherein the data fields comprise a unique identification field for storing the unique identifier, a session identification field for storing the session identifier, a message size field for storing the message size, and a date and time field for storing the date and time.

12. The method of claim 11, wherein the step of populating the data fields in the client-based database with the message-related information further comprises the steps of:

populating the unique identification field with the unique identifier;

populating the session identification field with the session identifier;

populating the message size field with the message size; and

populating the date and time field with the date and time.

13. The method of claim 1, wherein the step of providing an indication in the client-based database that the message is present on the server comprises setting an "on server" flag to a true state in the client-based database.

14. The method of claim 13, further comprising the steps of:

clearing a session identifier before each subsequent client-server session; and

changing the "on server" flag from the true state to an unknown state before each subsequent client-server session, the unknown state indicating that the state of the message being present on the server is unknown.

15. The method of claim 14, further comprising the steps of:

during each subsequent client-server session, changing the "on server" flag from the unknown state to a false state when the message associated with the message-related information is not present on the server;

providing an indication in the client-based database to delete the message; and

based on the provided indication, deleting the message-related information for the message from the client-based database after each subsequent client-server session has discontinued.

16. The method of claim 1, wherein the step of providing an indication in the client-based database that the message has been downloaded comprises setting a "download" flag in the client-based database.

17. In a distributed computer system including a server and a client including a local message store and a client-based database, a method for removing from the client-based database message entries for electronic mail messages based on message-related information corresponding to each message stored in the client-based database, comprising the steps of:

(A) consulting the client-based database comprising at least one message entry containing message-related information corresponding to one of a selected message;

(B) determining whether the client is in a "leave on server" mode, the "leave on server" mode indicating that the selected message remains on the server after the selected message has been downloaded from the server to the local message store located at the client;

(C) in response to determining that the client is not in the "leave on server" mode, providing an indication in the corresponding message entry in the client-based database to remove the selected message;

(D) in response to determining that the client is in the "leave on server" mode, determining whether a time expiration has been set for removing the selected message;

(E) in response to determining that a time expiration has been set for removing the selected message,

i. determining whether the time has expired for the selected message, and

ii. in response to determining that the time has expired for the selected message, providing the indication in the corresponding message entry in the client-based database to remove the selected message; and

(F) in response to providing the indication in the corresponding message entry to remove the selected message, removing the corresponding message entry for the selected message from the client-based database and the selected message from the server.

18. The method of claim 17, further comprising the step of:

(G) repeating steps (B) through (F) for each remaining message on the server.

19. The method of claim 17, wherein the step of determining whether the time has expired for the selected message comprises comparing a date and time for the selected message to a preset period of time allowed for the corresponding message entry to remain in the client-based database.

20. The method of claim 17, wherein the step of providing an indication to remove the selected message comprises setting a "delete" flag in the

corresponding message entry in the client-based database.

21. The method of claim 17, wherein the time expiration is set based on user-provided input.

22. The method of claim 17, further comprising the steps of:

providing a user-prompted indication in the corresponding message entry in the client-based database to remove the selected message, where the user-prompted indication is not based on the time expiration or the server mode; and

based on the user-prompted indication, removing the corresponding message entry from the client-based database and the selected message from the server.

23. The method of claim 17, further comprising the step of removing from the client-based database each message entry that does not have an associated message on the server.

24. In a distributed computer system including a server and a client including a local message store and a client-based database, a method for obtaining selected messages based on message-related information stored in the client-based database, comprising the steps of:

A) storing in the client-based database at least one message entry having a unique identifier, each message entry corresponding to one of the selected messages and containing message-related information for the message;

B) retrieving from the server:

i. a session identifier corresponding to the selected message, the session identifier indicating the order in which the selected message is downloaded from the server to the local message store located at the client, and

ii. a unique identifier corresponding to the message, the unique identifier identifying the message;

C) determining whether the unique identifier for the selected message matches the unique identifier of the corresponding message entry;

D) if the unique identifier for the selected message matches the unique identifier of the corresponding message entry, then:

i. appending the session identifier for the selected message to the corresponding message entry, and

ii. providing an indication in the client-based database that the selected message is present on the server, and

E) if the unique identifier for the selected message does not match the unique identifier of the corresponding message entry, then:

i. downloading the selected message from the server to the local message store,

ii. storing the message-related information in the corresponding message entry, the message related information including:

a) the session identifier for the selected message,

b) the unique identifier for the selected message,

c) a message size for the selected message, and

d) a date and time for the selected message,

iii. providing an indication in the corresponding message entry that the selected message is present on the server, and

iv. providing an indication in the corresponding message entry that the selected message has been downloaded from the server to the local message store.

25. The method of claim 24, further comprising the step of repeating the steps B) through E) for each remaining message on the server.

26. The method of claim 24, wherein the step of downloading the message from the server to the local message store comprises:

determining whether a size restriction has been set for downloading the message;

in response to determining that a size restriction has been set for downloading the message, determining whether a message size for the message is greater than a predetermined size limit; and

in response to determining that either 1) a size restriction has not been set for downloading the message or 2) the message size for the message is not greater than the predetermined size limit, downloading the message from the server to the local message store.

27. The method of claim 24, wherein the steps D) ii. and E) iii. comprise setting an "on server" flag in the client-based database to indicate that the selected message is present on the server.

28. The method of claim 24, wherein the step E) iv. comprises setting a "download" flag in the client-based database to indicate that the selected message has been downloaded from the server to the local message store.

29. The method of claim 24, further comprising the step of setting a "delete" flag in the client-based database for the corresponding message entry if the time and date for the selected message has expired.

30. The method of claim 29, further comprising the step of removing the corresponding message entry from the client-based database and the selected message from the server if a "delete" flag for the corresponding message entry has been set in the client-based database.

31. A method for assembling a message at a client, the message having multiple message parts in a local message store located at the client, comprising the steps of:

(A) in a client-based database, storing a corresponding message entry for each of the message parts of the message, each of the corresponding message entries including:

i. a message group identifier for identifying the message parts for the message,

ii. a message part number for identifying the order of each of the message parts for the message, and

iii. a total parts number for indicating the number of message parts in the message;

(B) identifying in the client-based database each message entry having the same message group identifier;

(C) selecting from the local message store the message parts having the same message group identifier based on the identified message entries in the client-based database; and

(D) assembling at the client the message parts in order based on the message part number for each of the corresponding message entries in the client-based database, the assembled parts forming the message.

32. The method of claim 31, wherein the step c) is further based on the total parts number for each of the corresponding message entries in the client-based database, whereby selection of the message parts from the local message store is limited to the total parts number.

33. In a client-server environment, a system for managing electronic mail during a client-server session, comprising:

(A) a server comprising a message and associated message-related information, the associated message-related information including:

i. a unique identifier for identifying the message,

ii. a session identifier for indicating the order in which the message is downloaded from the server during the client-server session,

iii. a message size, and

iv. a date and time for the message; and

(B) a client operative to retrieve the message and the associated message-related information from the server, the client comprising:

i. a local message store operative to store the message retrieved by the client from the server, and

ii. a database operative to store the associated message-related information retrieved by the client from the server,

iii. the database comprising message entries having a plurality of data fields, including:

a. a unique identification field for storing the unique identifier,

b. a session identification field for storing the session identifier,

c. a message size field for storing the message size, and

d. a date and time field for storing the date and time,

wherein the data fields of a selected one of the message entries are populated with the associated message-related information for the message downloaded from the server to the local message store.

34. The system of claim 33, wherein the client consults the database for managing messages on the server during subsequent client-server sessions.

35. The system of claim 34, wherein the client checks the unique identifier for the message in the subsequent client-server sessions to determine whether a subsequent message associated with the subsequent client-server sessions is to be downloaded from the server to the local message store.

36. The system of claim 33, wherein the message includes multiple message parts each message part having a corresponding message entry such that the database comprising the message entries having the plurality of data fields further includes:

a message group field for storing a message group identifier for identifying the message parts for the message;

a message part number field for storing a message part number for identifying the order of each of the message parts for the message; and

a total parts field for storing a total parts number for indicating the number of message parts in the message.

37. The system of claim 33, wherein the database comprising the message entries having the plurality of data fields further includes:

a "delete" flag field for setting a delete flag to mark the message for deletion from the server and associated message-related information for deletion from the database;

an "on server" flag field for setting an "on server" flag to indicate that the message is present on the server; and

a "download" flag field for setting a "download flag" to indicate that the message has been downloaded from the server to the local message store.
 Description Submit all comments and votes
 


TECHNICAL FIELD

The present invention relates to communication and storage of electronic mail messages, and more particularly relates to a system for managing electronic mail messages using a client-based database.

BACKGROUND OF THE INVENTION

Electronic mail (e-mail) is one of the most commonly used applications for distributed computer networks. The benefits of e-mail applications are obvious. Users can quickly communicate with one another. If a person isn't available to pick up a message immediately, the message is stored until that person can review the stored message at a later time. E-mail messages also provide a quick and easy way to package information such as sales reports, graphics, and other data for transfer to another user by simply attaching the information to the message. These days, business users increasingly rely on e-mail messages to share ideas, transmit documents, schedule meetings, and perform a multitude of other everyday tasks.

These tasks may be accomplished by a variety of software programs. For example, e-mail programs facilitate the transmission of messages between users. Messaging-enabled scheduling programs allow users to request and schedule meetings and appointments via electronic messages. Computer programs known as desktop information managers attempt to coordinate the growing stream of electronic communications by incorporating e-mail, a calendar, task management, contact management, notes, and journal features into a single application program.

The increased reliance on electronic messaging has resulted in a great increase in the number of electronic messages a user sends and receives daily. Users who send and receive a large number of e-mail messages would like an effective way to process their e-mail without spending a lot of time sorting through their in-box, deleting, filing, forwarding, and responding to their messages. Hence, a major problem with e-mail is that a user can become inundated with messages without an efficient and effective means to manage them.

Specifically, mail boxes require management to dispose of messages or to archive those that might be required later. Prior electronic message systems have managed message operations by obtaining required message-related information from the message server or by scanning messages maintained in the local message store at the client. These systems typically contain inefficient code in the messaging protocol implementation, which results in unnecessary retrieval of information from the server. In addition, these systems do not have an efficient means for downloading information and deleting unnecessary information.

For example, the Internet Message Access Protocol (IMAP) and version 3.0 of the Post Office Protocol (POP3) are messaging protocols that supports e-mail messages. IMAP defines a method of accessing electronic mail or bulletin board messages that are kept in a message store on a remote mail server. IMAP permits an e-mail client program to access remote message stores as if they were local. Messages stored on an IMAP server can be easily manipulated by a user who uses multiple computers (e.g., a workstation at the office and a notebook on the road) without requiring the user to transfer messages or files back and forth between his or her computers. POP3 does not have as much flexibility as IMAP. Specifically, POP3 typically requires the deletion of messages from the server after downloading these messages to a client. So, the user is unable to maintain messages on the server if the user so desires. In addition, electronic message programs implementing the POP3 and IMAP protocols typically contain inefficient code requiring commands, such as LIST and POP3 STAT, to be sent for messages already downloaded in a local message store at a client.

In prior systems, multiple part messages are assembled in response to scanning the local message store on the client to obtain information required to combine message parts. To assemble a message comprising multiple message parts, prior message systems have examined contents of a local store to locate message parts. These prior message systems assemble the complete message based on the identified message parts. Typically, these message parts are identified by searching the TO:/FROM: fields of messages and a Message Part Number (message 2 of 5) to locate the available sections of a particular message. Searching the local message store, however, is at best an inefficient processing operation because selected fields of all messages in the message store must be reviewed to locate all available message parts at the client. Although the search of the local message store is focused upon a limited set of required information, all messages in the local message store must be "touched" by this searching operation.

Therefore, there is a need for a system that optimizes communication with electronic message servers. There is also a need for a single mechanism for managing messages in a local message store located at a client. In addition, there is a need for a system that efficiently obtains electronic message-related information from a server. There is a further need for a system that reassembles messages without the need for reviewing each message in a local message store.

SUMMARY OF THE INVENTION

The present invention satisfies the above-described needs by providing a system for managing messages in a client-server environment. The present invention efficiently manages messages and optimizes communication between a client and a server by using a database, stored at the client, to maintain a central archive of message-related information in connection with messages located on the server to support current and future message communication operations between the client and the server.

Generally described, the present invention operates in a distributed computer environment, which includes a server and a client including a local message store and a client-based database. The present invention provides a method for managing electronic mail messages based on message-related information stored in a client-based database. During a client-server session, the message-related information corresponding to the message is retrieved from the server. Based on the message-related information, a determination is made as to whether the message has been downloaded from the server to the local message store located at the client. In response to determining that the message has not been downloaded, the message is downloaded from the server to the local message store located at the client. In addition, data fields in the client-based database are populated with the message-related information, and indications are provided in the database that the message is present on the server and that the message has been downloaded from the server to the local message store. The foregoing steps are then repeated for each remaining message on the server. During subsequent client-server sessions, the database is then consulted for managing the messages.

Typically, the step of downloading the message from the server to the client-based local message store can include determining whether a size restriction has been set for downloading the message. If there is a size restriction, another determination is made as to whether a message size

for the message is greater than a predetermined size limit. In response to determining that either 1) a size restriction has not been set for downloading the message or 2) the message size for the message is not greater than the predetermined size limit, the message may then be downloaded from the server to the local message store.

In addition in response to determining that the message has been downloaded from the server to the local message store, the message-related information corresponding to the message may be identified in the client-based database and an indication is generally provided in that database that the message is present on the server.

The message-related information generally includes a unique identifier for identifying the message and a session identifier for indicating the order in which the message is downloaded from the server to the client. The message-related information may also include a message size and a date and time for the message.

For each entry in the client-based database, the data fields Can include a unique identification field for storing the unique identifier, a session identification field for storing the session identifiers a message size field for storing the message size, and a date and time field for storing the date and time. The message-related information obtained from the server can be placed in the respective data fields.

In response to populating the unique identifier and the session identifier in their appropriate data fields in the client-based database, an "on server" flag can be set to a true state in the database to indicate that the message is on the server. In addition, in response to downloading the message from the server to the local message store, a "download" flag can be set in the database to indicate that the message has been downloaded. Before each subsequent client-server session, the session identifiers are usually cleared and the "on server" flag is generally changed from the true state to an unknown state, where the unknown state indicates that the presence of the message on the server is unknown. Finally, during each subsequent client-server session the "on server" flag can be changed from the unknown state to a false state when the message associated with the message-related information is not present on the server. As a result, an indication is provided in the client-based database to delete the message, and the message-related information for the message is removed from the database after each subsequent client-server session is discontinued.

In another aspect, the present invention provides a method for removing from the client-based database message entries for electronic mail messages based on message-related information stored in the database. The client-based database comprises at least one message entry containing message-related information corresponding to one of the selected messages. A determination is made as to whether the client is in a "leave on server" mode, where the "leave on server" mode indicates that the selected message remains on the server after the selected message has been downloaded from the server to the local message store located at the client. If a determination is made that the client is not in the "leave on server" mode, an indication is provided in the corresponding message entry in the database to remove the selected message. For example, a "delete" flag can be set to indicate that the selected message is to be removed. If a determination is made that the client is in the "leave on server" mode, another determination is made as to whether at time expiration has been set for removing the selected message. In response to determining that a time expiration has been set for removing the selected message, a further determination is made as to whether the time has expired for the selected message. Generally, to determine whether the time has expired for a message, a date and time for the message is compared to a preset period of time allowed for the corresponding message entry to remain in the client-based database. In response to determining that the time has expired for the selected message, an indication is provided in the corresponding message entry in the database to remove the selected message. Finally, the corresponding message entry for the selected message is removed from the client-based database and the selected message is removed from the server.

In another aspect, the present invention provides a method for assembling a message at a client, where the message has multiple message parts in a local message store located at the client. In connection with this aspect of the present invention, a corresponding message entry for each of the message parts is stored in a client-based database. Each corresponding message entry includes a message group identifier to identify each part of the message, a message part number to identify the order of the message parts, and a total parts number to indicate the number of parts in the message. Each message entry having the same message group identifier is identified in the database. The message parts having the same message group identifier are selected from the local message store based on the identified message entries in the database. The message parts can then be assembled at the client in order based on the message part number for each of the corresponding message entries in the database.

Advantageously, the present invention provides a system that optimizes communication with electronic message servers by using a client-database to maintain a central archive of message-related information. The present invention provides a single mechanism for managing messages on a client's local message store by accessing archived information in the client-based database during typical message communications operations. In addition, the present invention efficiently reassembles messages without the need for reviewing each message in a local message store by including in the database data fields corresponding to selected fields of a MIME-compatible message to support the assembly of message parts.

These and other objects, features, and advantages of the present invention may be more clearly understood and appreciated from a review of the following detailed description of the disclosed embodiments and by reference to the appended drawings and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a client-server operating environment for an exemplary embodiment of the present invention.

FIG. 2 is a block diagram of an exemplary client system for implementing the present invention.

FIG. 3 is a block diagram illustrating inter-operation of a client and server in accordance with an exemplary embodiment of the present invention.

FIGS. 4a, 4b, 4c, 4d, 4e, 4f, 4g, 4h, 4i, 4j, and 4k, collectively referred to as FIGS. 4a-4k, are diagrams illustrating a message manager database for archiving messages in accordance with an exemplary embodiment of the present invention.

FIGS. 5a, 5b, and 5c are flow diagrams illustrating an exemplary process for an initial download operation utilizing a database in accordance with an exemplary embodiment of the present invention.

FIGS. 6a and 6b are flow diagrams illustrating an exemplary process of populating data fields within a database.

FIGS. 7a, 7b, 7c, and 7d are flow diagrams illustrating an exemplary process of downloading and deleting information subsequent to an initial download operation in accordance with an exemplary embodiment of the present invention.

FIG. 8 is a flow diagram illustrating an exemplary process of reassembling a message having multiple parts in accordance with an exemplary embodiment of the present invention.

DETAILED DESCRIPTION

The present invention provides a system for managing messages communicated within a client-server architecture, such as a distributed computing environment represented by a client and a server. In an exemplary embodiment, the invention is incorporated into the "MICROSOFT OUTLOOK '98" application program, which is produced and distributed by Microsoft Corporation of Redmond, Washington. The "MICROSOFT OUTLOOK '98" application program manages e-mail calendars, contacts, tasks and to-do lists, and documents or files on a hard drive. The present invention, namely a message manager program module ("message manager"), uses a database, stored at the client, to maintain a central archive of message-related information to support current and future message communication operations between the client and the server.

In the present invention, communications with a message server are facilitated by accessing a client-based database representing a central archive of message-related information. The present invention accesses archived information in the client-based database during typical message communications operations, such as message download and delete operations. The client-based database is also used to support efficient management of messages having multiple message parts, i.e., message re-assembly. The database of the present invention includes data fields corresponding to selected fields of a MIME-compatible message to support the assembly of message parts.

Referring now to the drawings, in which like numerals represent like elements throughout the several figures, aspects of the present invention and an exemplary operating environment will be described.

EXEMPLARY OPERATING ENVIRONMENT

The following discussion is intended to provide a general description of a suitable computing, environment in which the invention may be implemented. While the invention will be described in the general context of an application program that runs on an operating system in conjunction with a personal computer and in connection with a server, those skilled in the art will recognize that the invention also may be implemented in combination with other program modules. Generally, program modules include routines, operating systems, application programs, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like.

The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices. Execution of the program modules may occur locally in a stand-alone manner or remotely in a client/server manner. Examples of such distributed computing environments include local area networks of an office, enterprise-wide computer networks, and the Internet.

the Internet, which is a global web of interconnected computers and computer networks, integrates local area networks (LANS) located in various entities, such as businesses, libraries, federal agencies, institutes of learning, and research organizations into a single communication network. The Internet uses a common communication protocol suite, known as a Transmission Control Protocol/Internet Protocol (TCP/IP), which was specifically designed for the interconnection of different computer systems. Internal and external networks are linked by routers that route data packets from a sending network to another router or a receiving network. Gateways handle data transfer and conversion of messages from a sending network to the protocols used by a receiving network. Typically, gateways refer to devices that translate between applications. For example, e-mail gateways translate messages from one vendor's messaging program to another vendor's messaging program so that users with different e-mail programs can share messages over a network.

The Internet uses a message standard, known as a Simple Mail Transfer Protocol (SMTP), which works in conjunction with a user's e-mail program and defines the control messages used by two computers to exchange e-mail messages. Such controls include verification of proper connection, identification of sender, negotiation of transmission parameters, and message transmission. SMTP is responsible for 1) sending mail created by a local user to another computer and 2) receiving mail from other computers on the network and transferring it to the local user's e-mail program.

Typically, the compute