WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method and apparatus for scaling large electronic mail databases for devices with limited storage    
United States Patent5966714   
Link to this pagehttp://www.wikipatents.com/5966714.html
Inventor(s)Huang; Chu-Yi (Beaverton, OR); Romrell; David A. (Hillsboro, OR); Tso; Michael Man-Hak (Hillsboro, OR)
AbstractA method and an apparatus for scaling E-mail (electronic mail) address book databases for devices with limited storage capacity and synchronization of a first set of mail with a second set of mail at the message/folder level. A memory contains a mail subsetter for automatically generating a default personal address book and a mail synchronizer for application independent E-mail synchronization. A pseudo unique identification is generated for each message or folder in the mail boxes to be synchronized. An event log is then generated for each mail box. The memory also has a Synchronization mechanism for making the first set of data and the second set of data equivalent by using the information in the Change List generated by the Change Detection Mechanism. A processor runs the mail synchronizer.
   














 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 5966714
Method and apparatus for scaling large electronic mail databases for

     devices with limited storage - US Patent 5966714 Drawing
Method and apparatus for scaling large electronic mail databases for devices with limited storage
Inventor     Huang; Chu-Yi (Beaverton, OR); Romrell; David A. (Hillsboro, OR); Tso; Michael Man-Hak (Hillsboro, OR)
Owner/Assignee     Intel Corporation (Santa Clara, CA)
Patent assignment
All assignments
Publication Date     October 12, 1999
Application Number     08/640,334
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     April 30, 1996
US Classification     707/201 707/200 714/20 718/1 719/310
Int'l Classification     G06F 017/30
Examiner     Fetting; Anton
Assistant Examiner     Corrielus; Jean M.
Attorney/Law Firm     Blakely, Sokoloff, Taylor & Zafman
Address
Parent Case     This application is a Continuation-In-Part of application Ser. No. 08/431,500 entitled APPLICATION INDEPENDENT RECORD LEVEL SYNCHRONIZATION filed Apr. 28, 1995, now U.S. Pat. No. 5,706,509.
Priority Data    
USPTO Field of Search     395/617 395/182.18 395/670 395/676 395/680 364/200 707/200 707/201
Patent Tags     scaling large electronic mail databases for devices limited storage
   
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
5592664
Starkey
707/1
Jan,1997

[0 after 0 votes]
5490270
Devarakonda
707/201
Feb,1996

[0 after 0 votes]
5473772
Halliwell
717/171
Dec,1995

[0 after 0 votes]
5469503
Butensky
379/265.02
Nov,1995

[0 after 0 votes]
5452448
Sakuraba

Sep,1995

[0 after 0 votes]
5434994
Shaheen

Jul,1995

[0 after 0 votes]
5377354
Scannell
718/103
Dec,1994

[0 after 0 votes]
4875159
Cary
707/203
Oct,1989

[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. An apparatus for scaling large electronic or mail databases for devices with limited storage, said apparatus comprising:

a storage device which contains,

a mail subsetter configured to automatically generate a personal address book containing a first set of address entries, said first set of address entries obtained from at least one data source, and

a mail synchronizer configured to synchronize said first set of address entries with a second set of address entries, said mail synchronizer configured to produce the same synchronization results regardless of whether one or both of said first and second sets of address entries are modified prior to synchronization, said mail synchronizer coupled to said mail subsetter; and

a processor for running said mail subsetter and said mail synchronizer coupled to said processor.

2. The apparatus of claim 1 wherein said mail subsetter comprises:

a device address book image containing said first set of addresses;

a creation mechanism configured to create said personal address book and said device address book image and coupled to said personal address book; and

an update mechanism configured to update said personal address book from a data source using said mail synchronizer and by processing new mail and coupled to said personal address book.

3. The apparatus of claim 2 wherein said device address book image is a subset of said personal address book.

4. The apparatus of claim 2 wherein said data source is a personal information manager.

5. The apparatus of claim 2 wherein said data source is a master address book.

6. The apparatus of claim 2 wherein said data source is user input through manual entry of data.

7. The apparatus of claim 1 wherein said mail synchronizer comprises:

a pseudo unique identification generator configured to generate an identification for each said message/folder;

an event log generator configured to generate an event for an event log for each said mail/folder with said identification, said event log generator coupled to said pseudo unique identification generator; and

a synchronization mechanism configured to synchronize said first set of mail and said second set of mail to be equivalent, said synchronization mechanism coupled to said event log.

8. The apparatus of claim 1 wherein said synchronization mechanism comprises a change detection mechanism configured to generate a change list for said first and second sets of mail, said change list listing the changes made at a message/folder level to said first and second sets of data.

9. The apparatus of claim 1 wherein said change detection mechanism further comprises:

a semi-unique identification mechanism configured to identify whether a message/folder in a given mail box is a duplicate of a corresponding message/folder in a modified mail box by using the contents of individual fields in a record; and

an error correction mechanism configured to identify said duplicate which was not identified by said semi-unique identification mechanism.

10. The apparatus of claim 1 further comprising a change existing mail mechanism configured to identify a message/folder to update or delete without requiring said message/folder in said first and second set of mail to contain system assigned unique identifiers.

11. An apparatus for scaling large electronic mail databases for devices with limited storage, said apparatus comprising:

storage means which contains,

means for automatically generating a personal address book containing a first set of address entries, said set address entries obtained from at least one data source, and

means for synchronizing said first set address entries and a second set of address entries equivalent by using the information in said change list generated by said change detection mechanism, said means for synchronizing producing the same synchronization results regardless of whether one both of said first and second sets of address entries are modified prior to synchronization, said means for synchronizing coupled to said means for generating; and

means for running said means for automatically generating and said means for synchronizing, said means for running coupled to said storage means.

12. The apparatus of claim 11 wherein said means for generating comprises of:

means for containing said first set of address entries;

means for creating said personal address book and said means for containing said first set of address entries and coupled to said personal address book; and

means for updating said personal address book from said at least one data source using said means for synchronizing and by processing new mail and coupled to said personal address book.

13. The apparatus of claim 12 wherein said means for containing said first set of address entries is a subset of said personal address book.

14. The apparatus of claim 12 wherein said data source is a personal information manager.

15. The apparatus of claim 12 wherein said data source is a master address book.

16. The apparatus of claim 12 wherein said data source is user input through manual entry of data.

17. The apparatus of claim 11 wherein said means for making further comprises:

means for identifying whether a message/folder in a given mail box is a duplicate of a corresponding message/folder in a modified mail box by using the contents of individual fields in a record; and

means for identifying said duplicate which was not identified by said semi-unique identification mechanism.

18. The apparatus of claim 11 further comprising means for correctly identifying a message/folder to update or delete without requiring said message/folder in said first and second set of address entries to contain system assigned unique identifiers.

19. A system for scaling large electronic mail databases for devices with limited storage, said system comprising:

a storage device which contains,

mail subsetter configured to automatically generate a default personal address book containing a first set of address entries, said first set of address entries obtained from at least one data source, and

a mail synchronizer configured to synchronize said first set of address entries with a second set of address entries; and

a processor for running said mail subsetter and said mail synchronizer, said processor coupled to said storage device.

20. The system of claim 19 wherein said mail subsetter comprises of:

a device address book image containing said first set of addresses;

a creation mechanism configured to create said personal address book and said device address book image and coupled to said personal address book; and

an update mechanism for updating said personal address book from a data source using said mail synchronizer and by processing new mail and coupled to said personal address book.

21. The system of claim 20 wherein said device address book image is a subset of said personal address book.

22. The system of claim 20 wherein said data source is a personal information manager.

23. The system of claim 20 wherein said data source is a master address book.

24. The system of claim 20 wherein said data source is user input through manual entry of data.

25. The system of claim 19 wherein said mail synchronizer comprises:

a pseudo unique identification generator configured to generate an identification for each said message/folder;

an event log generator configured to generate an event for an event log for each said mail/folder with said identification, said event log generator coupled to said pseudo unique identification generator; and

a synchronization mechanism configured to synchronize said first set of mail and said second set of mail to be equivalent, said synchronization mechanism coupled to said event log.

26. The system of claim 19 wherein said synchronization mechanism comprises a change detection mechanism configured to generate a change list for said first and second sets of mail, said change list listing the changes made at a message/folder level to said first and second sets of data.

27. The system of claim 19 wherein said change detection mechanism further comprises:

a semi-unique identification mechanism configured to identify whether a message/folder in a given mail box is a duplicate of a corresponding message/folder in a modified mail box by using the contents of individual fields in a record; and

an error correction mechanism configured to identify said duplicate which was not identified by said semi-unique identification mechanism.

28. The system of claim 19 further comprising a change existing mail mechanism configured to identify a message/folder to update or delete without requiring said message/folder in said first and second set of mail to contain system assigned unique identifiers.

29. A method for scaling large electronic mail databases for a client system with limited storage, said method comprising the steps of:

automatically generating a personal address book containing a first set of address entries, said first set of address entries obtained from at least one data source; and

synchronizing said first set of address entries with a second set of address entries using a first change list generated for said first set of address entries and a second change list generated for said second set of address entries, said step of synchronizing producing the same synchronization results regardless of whether one or both of said first and second sets of address entries are modified prior to synchronization.

30. The method of claim 29 wherein said step for generating comprises of:

creating said personal address book and said first set of address entries; and

updating said personal address book from said at least one data source using said step for synchronizing and by processing new mail.

31. The method of claim 30 wherein said data source is a personal information manager.

32. The method of claim 30 wherein said data source is a master address book.

33. The method of claim 30 wherein said data source is user input through manual entry of data.

34. The method of claim 30 further comprising the step of obtaining user settings for said personal address book.

35. The method of claim 34 further comprising the step of selecting data fields to be included in said device address book.

36. The method of claim 35 further comprising the step of selecting a ranking profile for ranking each address entry in said personal address book.

37. The method of claim 36 further comprising the step of sorting address entries in said personal address book by said ranking profile.

38. The method of claim 37 further comprising the step of opening a mailbox to retrieve new message.

39. The method of claim 37 wherein said new message is in a folder.

40. The method of claim 39 further comprising the step of updating ranking of an address entry for said new message in said personal address book if said address entry is found in said personal address book, said address being a new address entry if not found in said personal address book.

41. The method of claim 40 further comprising the step of obtaining information regarding said new address entry from said data source.

42. The method of claim 41 further comprising the step of adding said information and an information source identification to said personal address book, said information source identification referencing said data source.

43. The method of claim 42 further comprising the step of creating a device address book image for said client system.

44. The method of claim 43 further comprising the step of determining storage space available on said client system.

45. The method of claim 44 further comprising the step of adding address and field information to said device address book image from said personal address book, number of said address and field entries added to said device address book image depending upon said storage space available on said client system.

46. The method of claim 45 further comprising the step of creating a device address book equivalent to said device address book image, said device address book residing in said host system coupled to said client system.

47. The method of claim 46 further comprising the step of synchronizing said device address book and said device address book image with said personal address book every time said personal address book is changed.

48. A system for scaling large electronic mail databases for devices with limited storage, including code stored on a computer-readable medium and executable by a computer, comprising:

a mail subsetter code configured to automatically generate a personal address book containing a first set of address entries, said first set of address entries obtained from at least one data source, and

a mail synchronizer code configured to synchronize said first set of address entries with a second set of address entries, said mail synchronizer configured to produce the same synchronization results regardless of whether one or both of said first and second set of address entries are modified prior to synchronization, said mail synchronizer code coupled to said mail subsetter code.

49. The method of claim 29 wherein said first set of address entries is a subset of said personal address book.

50. The method of claim 29 wherein said step of synchronizing further comprises the step of generating a first change list comprising a list of changes made to said first set of address entries and a second change list comprising a list of changes made to said second set of address entries.

51. The method of claim 29 wherein said step of generating further comprising the steps of:

identifying whether a message/folder in a given mail box is a duplicate of another message/folder in a modified mail set, said first set of mail and said second set of mail being said given mail box and said first set of mail and said second set of mail with changes being said modified mail set; and

identifying said duplicate which was not identified is said step of identifying a record.

52. The method of claim 29 wherein said step of synchronizing further comprising the step of changing messages/folders in said first set of mail and messages/folders in said second set of mail for synchronizing messages/folders in said first set of mail and said second set of mail.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

1. Field of the Invention

The invention relates to E-mail (electronic mail) systems. More particularly, the present invention is related to the method and apparatus for scaling E-mail address book databases for devices with limited storage capacity.

2. Background

E-mail (electronic mail) is one of the most popular data use application for data and voice telephones, in particular, for cellular telephones. However, telephones are typically limited in storage capacity. An average advanced cellular phone (such as a SmartPhone) being designed has less than one mega byte (MB) of storage available for use by a user. In contrast, a typical electronic address database using corporate environments are very large.

Given the storage constraints of devices such as a SmartPhone and the desirability for access to a large electronic address database, it is desirable to have some type of a default personal address book. Currently, there are a couple of E-mail systems which may be used to offer some type of method for generating a default personal address book. However, neither of the systems are easy to use. For example, cc: Mail Mobile System from Lotus Development Corporation and cc: Mail Remote System from Lotus Development Corporation duplicate the address database (generally several mega-bytes in size) on a notebook PC (Personal Computer), or require the user to generate their own address book there is no subsetting offered by the systems. Additionally the E-mail systems do not work with devices with limited storage such as is found in SmartPhones.

MS Mail system from Microsoft allows subsetting using personal address books, however, with this method and apparatus, the user must manually select and move entries in the network database to his or her personal address book. Additionally, the method and apparatus clearly does not scale to large databases such as for corporations, where there may be a large number of employees. More specifically, manually finding, selecting and moving, for example one hundred people regularly from a large list of employees is not only inefficient and slow but ultimately unusable in a corporate or large organizational environment, e.g. with tens of thousands of employees.

Additionally, MS Mail does not provide synchronization for the personal address book and the network database. For example, if John Doe is in both a user's personal address book and in a network database and if John Doe's name is deleted from the network database, his name will remain in the user's personal address book. Hence, the user will not know that John Doe is no longer available until a mail is transmitted to him and the mail is returned as "undeliverable" or "user unknown".

CC: Mail from Lotus Development Corporation provides synchronization but it is very inefficient. Synchronization is performed on-line with CC: Mail, i.e. when a user is connected and requires that the entire database be reconciled. Exemplary circumstances requiring reconciliation include when new records are added such as for new employees, when records have been deleted such as to account for employee attrition, and when updates are made such as for changed telephone numbers. Scanning a large database for change takes tens of minutes and since synchronization must be performed periodically, use of CC: Mail Remote or Mobile in a large organizational environment becomes impractical.

Therefore it is desirable to have a method and an apparatus for scaling E-mail address book databases for devices with limited storage capacity by providing an easy to use method for generating default personal address books automatically and to provide an efficient method for keeping the personal address books synchronized with a main database.

BRIEF SUMMARY OF THE INVENTION

A method and an apparatus for scaling E-mail (electronic mail) address book databases for devices with limited storage capacity and synchronization of a first set of mail with a second set of mail at the message/folder level. A memory contains a mail subsetter for automatically generating a default personal address book and a mail synchronizer for application independent E-mail synchronization. A pseudo unique identification is generated for each message or folder in the mail boxes to be synchronized. An event log is then generated for each mail box. The memory also has a Synchronization mechanism for making the first set of data and the second set of data equivalent by using the information in the Change List generated by the Change Detection Mechanism. A processor runs the mail synchronizer.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1a illustrates the architecture of the present invention.

FIG. 1b illustrates an exemplary system block diagram with an implementation of the present invention.

FIG. 1c illustrates an exemplary system block diagram of the present invention.

FIG. 1d illustrates an exemplary personal address book.

FIG. 1e illustrates the general steps followed in an exemplary installation procedure installing the present invention's client device address book (DAB).

FIG. 2a illustrates an exemplary block diagram of the mail synchronizer of the present invention.

FIG. 2b illustrates a block diagram of the identification (ID) generator illustrated in FIG. 2a.

FIG. 2c is a block diagram of event log generator 334 illustrated in FIG. 2a.

FIG. 2d is an exemplary block diagram of the synch mechanism of the present invention.

FIG. 3a illustrates the general steps followed by the creation mechanism (creator) 122 illustrated in FIG. 1c.

FIG. 3b illustrates general steps followed in obtaining user settings (step 301 of flow diagram in FIG. 3a).

FIG. 3c illustrates the general steps followed including a personal address book (PAB) (step 302 illustrated in flow diagram FIG. 3a).

FIG. 3d describes the general steps followed in processing the message (step 338 in FIG. 3c).

FIG. 3e describes the general steps by which an address is processed (step 346 of flow diagram illustrated in FIG. 3d).

FIG. 3f illustrates the general steps followed including a device address book image (DABI) (step 303 of flow diagram illustrated in FIG. 3a).

FIG. 3g illustrates general steps in creating a DAB (step 304 of flow diagram of FIG. 3a).

FIG. 3h describes the general steps followed by the update mechanism (updator 123 illustrated in FIG. 1c) of the present invention.

FIG. 3i illustrates the general steps followed in processing changes in the MAB (step 371 of FIG. 3h).

FIG. 3i illustrates the general steps followed in processing changes in the mailbox (step 372 of FIG. 3h).

FIG. 3j illustrates the general steps followed in synchronizing PAB with the data source (step 373 of FIG. 3h).

FIG. 3k illustrates the general steps followed by the address synchronizer.

FIG. 4a illustrates an exemplary source ID table 410.

FIG. 4b illustrates an exemplary change list 420 for DAB 132.

FIG. 4c illustrates an exemplary change list for DABI 130.

FIG. 4d illustrates an exemplary merged list created by merging and sorting by time the change list for DAB illustrated in FIG. 4b and the change list for DABI illustrated in FIG. 4c.

FIG. 5a is a block diagram illustrating an exemplary synchronization apparatus of the present invention.

FIG. 5b is a flow diagram illustrating the general steps followed by the apparatus illustrated in FIG. 5a.

FIG. 5c illustrates exemplary data structures for exemplary Change Lists CL0 and CL1.

FIGS. 5d-5f are alternate embodiments of a system block diagram illustrating the mail synchronization method and apparatus of the present invention.

FIGS. 5g and 5h are state transition diagrams illustrating how a change log is truncated to result in exactly one change flag marked for each record.

FIG. 6a illustrates the general steps followed by the mail synchronizer of the present invention.

FIG. 6b describes the general steps followed by the present invention in generating a pseudo unique ID for each mail in a mail box to be synchronized with another mail box.

FIG. 6c describes the general steps followed by the present invention in generating an event log for a mail.

FIGS. 6d and 6e illustrate the general steps followed by the present invention in generating an event log for folders.

FIG. 7a is a flow chart describing the general steps followed by a SUID mechanism.

FIGS. 7b and 7c are flow charts describing the general steps followed by a Change Detection mechanism.

FIG. 7d illustrates an exemplary data structure modified by the steps described in FIG. 7b.

FIGS. 8a-8d are flow charts describing the general steps followed by an Error Correction mechanism.

FIGS. 9a-9e, and 10a and 10b are flow charts describing the general steps followed by a Synchronization mechanism.

FIGS. 11a-11c are flow charts describing the general steps followed by a Change Existing Data mechanism.

FIG. 12 is a table illustrating the mail synchronization method of the present invention.

FIG. 13 is a table illustrating exemplary mail synchronization scenarios where there are messages/folders with the same Key Field values.

DETAILED DESCRIPTION OF THE INVENTION

The present invention provides a method and an apparatus for a storage efficient mechanism such that users can address E-mail off-line on their SmartPhones or Personal Digital Assistant's (PDA's), without devoting a large amount of storage space for a database or having to frequently consult a remote database for extra E-mail related information such as by looking up E-mail addresses on a network server. The method and the apparatus of the present invention involves automatically generating, storing and maintaining a subset of a large address book containing E-mail addresses locally on a client device with limited storage space such as a SmartPhone. The advantage of storing the E-mail addresses locally on the client device is that users can address and compose E-mail off-line. This reduces connection time and cost required to send messages. Periodically, the data in the personal address book is synchronized with data in a master address book. The present invention therefore provides an easy-to-use method for generating a default personal address book automatically and an efficient method for keeping a personal address book synchronized with a master database.

FIG. 1a is an exemplary system block diagram illustrating the method and apparatus of the present invention. The present invention stores a subset of a given large address book (also referred herein as a master address book) locally on a SmartPhone or any other client device such as a PDA (Personal Digital Assistant) to decrease connection time and enhance responsiveness to E-mail address requests.

E-mail agent 100 runs continuously on a user's PC (personal computer) or network server 102, periodically checking for new messages. Additionally, E-mail agent 100 takes appropriate actions such as to notify the user if a message is urgent. E-mail agent 100 is coupled to MAPI (Messaging Application Programming Interface) 105 which is a standard API (Application Programming Interface) for transferring and manipulating mail messages, MS Mail 101 which is an application used to access mail through MAPI (Mail Application Program Interface), VIM (Vendor Independent Messaging) 109 which is also a standard API for transferring and manipulating mail messages and cc: Mail 103 which is an application based on VIM for accessing mail. The system is designed so that other mail API's and applications can be supported.

E-mail client application 104 runs on client device 106 such as a SmartPhone and allows a user to compose messages, access his or her network E-mails and to manage message folders. Periodically, E-mail client application 104 and E-mail agent 100 connect through a telephone call (or through serial cable, LAN, etc.) to synchronize their states.

FIG. 1b illustrates an exemplary system block diagram of the present invention. Computer 102 has memory 114 coupled to CPU 116. Memory 114 has mail synchronization 112 and various other elements 110 (also referred herein as subsetter 110) for subsetting a large E-mail address book to generate a smaller E-mail address book for client device 106. Further, computer 102 may have various peripheral devices 118 such as a keyboard and/or a display device. Computer 102 is also coupled to client device 118 as was illustrated in FIG. 1a.

FIG 1c illustrates various components of the present invention residing on host device 102 and client device 106 respectively. Host device (desktop or server) 102 has PIM (Personal Information Manager) 120 which stores contact names and numbers (i.e. addressing information). Host PC 102 also has creator 122 for initial creation of personal address book (PAB) 128, updator 123 for maintaining changes to PAB 128 based on new messages and changes in the network databases, mailbox 124 for storing all received and sent mail messages and MAB (master address book) 126 for storing E-mail directory information. MAB 126 may be a corporate address book if a user is on a LAN (local area network) or may be a personal "master address book" of a user if the user is at a stand alone PC. PAB (Personal Address Book) 128 in host device 102 is for storing addresses, names, numbers, etc., (i.e. addressing information). PAB 128 may be periodically updated for changes to its address entries. Source ID (identification) table 127 is a list of sources from which data for PAB 128 may be obtained. Sources of data for PAB 128 may be by user manual entry, from MAB 126, from PIM 120, etc. Each source is given a unique identifying number. Additionally, host device 102 also has DABI (Device Address Book Image) 130 which may be stored in PAB 128 and is equivalent to the size of the limited storage area of DAB (Device Address Book) 132 of client device 106.

More specifically, DABI 130 of host device 102 is a mirror image of DAB 132 of client device 106. In one embodiment of the present invention, DABI 130 is part of PAB 128 (i.e. a subset of PAB 128). In this embodiment, whenever PAB 128 is updated, DABI 130 is automatically updated as well. In another embodiment of the present invention, DABI 130 may be separate from PAB 128. In this alternate embodiment, DABI 130 may be updated according to the changes made to PAB 128. In both embodiments, whenever DABI 130 of host device 102 is updated, DABI 130 of host device 102 and DAB 132 of client device 106 are synchronized with each other using address synchronizer 121. During synchronization, if an address in DAB 132 of host device 102 is no longer in DABI 130 of client device 106, then the corresponding entry in DAB 132 is deleted. Otherwise, if an address in DAB 132 of host device 102 is in DABI 130 of client device 106, then the entire corresponding entry in DAB 132 is replaced with the corresponding updated entry in DABI 130.

Client device 106 may be various remote client devices such as a SmartPhone, a PDA or a notebook PC. Both host PC 102 and client device 106 have an application (e.g. E-mail systems), app0 134 and app1 136 respectively, for which the subsetting and the synchronization of the address books are being performed.

PIM 120, Mailbox 124 and MAB 126 may reside on network server 127 instead of on host PC 102. More specifically, modules illustrated in host PC 102 may exist locally (on host PC 102) or remotely (on network server 127) and it is assumed that a network will take care of remote access if needed (i.e. for Mounting Network Volumes, Remote Procedure Calls, etc.). Such network implementation may be understood by a person skilled in the art given the detailed description of the present invention illustrated herein.

FIG. 1d illustrates an exemplary PAB 128 of the present invention. Each address entry 133 has various fields 135, source IDs 137 and address entry ranking score 139. The illustrated exemplary fields 135 are E-mail address field, name field and home phone field. Each field 135 has a corresponding source ID 137 which identifies what the source of the contents of field 135 is.

DABI 130 of host device 102 and DAB 132 of client device 132 are subsets of PAB 128 and are formatted similar to PAB 128 with various fields 135 associated with selected address entries 133.

With the present invention, it is assumed that a user of client and host device 106 and 102 is likely to want to communicate with those users with whom he or she has communicated with in the past. As part of installation module 131 for installing a client device E-mail host device connection (described in FIG. 1e and the accompanying description), all the E-mail messages in a given user's E-mail folders and archives are scanned and a list of E-mail addresses including mailing list names which are all the cohorts the user has corresponded with are compiled. The list also includes all the recipients copied on the messages.

The names and mailing lists of cohorts communicated with are then used to match against the names in MAB 126 of a E-mail system such as CC: Mail 103 or MS Mail 101. The matching address entries are then automatically pulled out to form PAB 128. Each matching address entry 133 in PAB 128 contains the same information as the corresponding MAB 126 entry, such as phone numbers, mail stops, etc. Additional information may also be retrieved from other applications (i.e. sources) which include address books, such as external contact databases or personal information managers (PIMs) 120. For non-matching entries' (cohorts that are not in MAB 126) additional information such as phone number, mail stop, etc. for fields 135, may be retrieved from other sources (e.g. a contact database or PIM 120). The user may also be prompted to manually add additional information that was not included in MAB 126, the contact database, or PIM 120.

Further, a user may optionally edit, add or delete address entries 133 from PAB 128 The user can also optionally specify PIM 120 to be used to import additional contact information for the records in MAB 126. PIM 120 is also used if there is no data in the corporate address book.

Since client device 106 such as SmartPhones have limited storage that may not be able to store the entire PAB 128, two capabilities are used to resolve this problem. First, only selected fields 135 of the additional information for address entries 135 are copied to DAB 132 of client device 106 from PAB 128 (i.e. DABI 130), minimizing the memory used by each address entry 133. Second, PAB 128 is maintained as a ranked list according to address ranking score 139, and only the highest ranked entries (most likely used) are copied into DAB 132 of client device 106.

To keep PAB 128 synchronized automatically, the present invention stores a duplicate of the user's PAB 128 on his or her PC 102 or network server 127. When a new E-mail is received, the present invention automatically checks if the sender and other users copied on the message are in the compiled PAB 128. If so, the present invention updates the priority listing by updating address ranking score 139. If not, the addresses are added to PAB 128 in the same manner as described above. Periodically, such as once a day, the present invention checks the PC copy of the user's PAB 128 against MAB 126.

Any entries including mailing lists which have been deleted from the network database (e.g. when a given user is no longer with the company) are deleted from the user's PAB 128. Any entries which have been changed such as when a user has a new phone number are updated. Likewise, changes in fields from contact databases or PIM's are also deleted and updated. The changes to the PAB are queued on PC 102 and periodically transmitted to client device 106 for updates. Since it is very time consuming to periodically check the PC copy of the user's PAB 128 against MAB 126 and to perform the deletion and updates, updates to PAB 128 may be performed when the user is not using his or her PC 102.

Additionally, a user may manually add additional information (i.e. contents of fields 135 of PAB 128) when new entries are added to PAB 128. Since the update is being performed as a background task (possibly on the server), the manually added fields 135 are left blank and a queue of address entries 133 needing information is kept so the user can later be notified and add the fields 135.

Occasionally, a user may need to address a person not in his or her PAB 128. In this case the user is given two options. The first option is to have E-mail client application 104 dial-up to connect to E-mail agent 100 and browse the entries stored in PAB 128, MAB 126, or PIM 120. The second option is to allow the user to manually type and use an address without searching any address books. The latter option is useful for new contacts that would not be in an address book.

FIG. 1e illustrates the general steps followed in an exemplary installation procedure installing the present invention's client device E mail host device connection. In step 151, a user's E-mail folders are scanned to find all the cohorts that have been communicated with. Each cohort is added to PAB 128 with a numeric score reflecting how the address was used (i.e. author of received message, destination of sent message, copied on sent message, etc.). If the cohort was already in the list, then the score is increased. The result is a ranked list of all cohorts communicated with in the form of address ranking score 139.

In step 152, MAB 126 is scanned. For illustration purposes, it is assumed that MAB 126 is a corporate E-mail directory. As entries are found that match the cohorts' addresses, additional information in the corporate E-mail directory is copied to PAB 128. For example, the full name of the address is copied, along with the employee ID, mail stop, department, and phone number. For those address entries not found in the corporate E-mail directory (for example, off-site E-mail cohorts and recent new hires), no additional information is added during this stage of the installation procedure.

In step 153, the user is given the option to include additional information that was not included in the corporate E-mail directory. If this option is selected, then the user is prompted for PIM 120, contact database, or manual entry as the source (or sources) of this additional information. Installation module 131 scans the known sources for the cohorts communicated with. For example, a user may select to find additional information from a PIM such as ECCO from NetManage or from manual entry if empty fields are found.

The additional fields selected in ECCO contain home phone numbers, cellular phone numbers and mail addresses. As entries are found in the ECCO database, they are also copied into PAB 128. Along with each file stored in PAB 128, there is a corresponding identifier 137 that indicates the source of the information contained in that field (MAB 126, PIM, Database, Manual Entry, etc.). The identifier is used later for synchronization of changes back to the source as will be described later. After scanning all known sources of additional information, there may still be empty fields. The user can optionally enter this information manually.

In step 154, installation module 131 copies a portion of PAB 128 (i.e. DABI 130) to client device 106. The result is DAB 132. First the user selects which fields of the PAB 128 should be included in DAB 132. For example, only the full name, work number, cellular number and home phone number fields of PAB 128 may be selected. Installation module 131 then computes h