|
Claims  |
|
|
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. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
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 | | |