`
`PCT/US97/O47l9
`
`(22) International Filing Date:
`
`20 March 1997 (20.03.97)
`
`(30) Priority Data:
`08/640,334
`
`30 April 1996 (30.04.96)
`
`US
`
`(81) Designated States: AL, AM, AT, AT (Utility model), AU
`(Petty patent), AZ, BA, BB, BG, BR, BY, CA, CH. CN,
`CU, CZ, CZ (Utility model), DE, DE (Utility model), DK,
`DK (Utility model), EE, EE (Utility model), ES, Fl, Fl
`(Utility model), GB, GE, GH, HU, IL, IS, JP, KE, KG,
`KP, KR, KZ, LK, LR, LS, LT, LU, LV, MD, MG, MK,
`MN, MW, MX, NO, NZ, PL, PT, RO, RU, SD, SE, 86,
`SI, SK, SK (Utility model), TJ, TM, TR, TT, UA, UG, US,
`UZ, VN, YU, ARIPO patent (GH, KE, LS, MW, SD, SZ,
`UG), Eurasian patent (AM, AZ, BY, KG, KZ, MD, RU, TJ,
`TM). European patent (AT, BE, CH, DE, DK, ES, FI, FR,
`GB, GR, IE, IT, LU, MC, NL, PT, SE), OAPI patent (BF,
`BJ, CF, CG, CI, CM, GA, GN, ML, MR, NE, SN, TD, TG).
`
`(74) Agents: TAYLOR, Edwin, H. et al.; Blakely, Sokoloff, Taylor
`& Zafman LLP, 1279 Oakmead Parkway, Sunnyvale, CA
`94086 (US).
`
`WORLD INTELLECTUAL PROPERTY ORGANIZATION
`International Bureau
`
`INTERNATIONAL APPLICATION PUBLISHED UNDER THE PATENT COOPERATION TREATY (PCT)
`(51) International Patent Classification 6:
`(11) International Publication Number:
`WO 97/41520
`G06F 17/30, 13/42, 9/46, 15/16
`
`(43) International Publication Date:
`
`6 November 1997 (06.1 1.97)
`
`(71) Applicant (for all designated States except US): INTEL COR-
`PORATION [US/US]; 2200 Mission College Boulevard,
`Santa Clara, CA 95052 (US).
`(72) Inventors; and
`(75) Inventors/Applicants (for US only): HUANG, Chu-Yi HUS];
`Apartment 12, 10620 S.W. Davies Road, Beaver-ton, OR Published
`97008 (US). ROMRELL, David, A. [US/US]; 2323 NW.
`With international search report.
`188th Avenue #1911, Hillsboro, OR 97124 (US). TSO,
`Before the expiration of the time limit for amending the
`Michael, Man—Hak [AU/US]; 5744 SE. Preston Court,
`claims and to be republished in the event of the receipt of
`Hillsboro, OR 97123 (US).
`amendments.
`
`(57) Abstract
`
`Page 1 of 94
`
`GOOGLE EXHIBIT 1027
`
`
`
`Singapore
`
`Albania
`Armenia
`Austria
`Australia
`Azerbaijan
`Bosnia and Herzegovina
`Barbados
`Belgium
`Burkina Faso
`Bulgaria
`Benin
`Brazil
`Belarus
`Canada
`Central African Republic
`Congo
`Switzerland
`Cbte d‘lvoire
`Cameroon
`China
`Cuba
`Czech Republic
`Germany
`Denmark
`Estonia
`
`FOR THE PURPOSES OF INFORMATION ONLY
`
`Codes used to identify States party to the PCT on the front pages of pamphlets publishing international applications under the PCT.
`
`ES
`Fl
`FR
`GA
`GB
`GE
`Gl-l
`ON
`GR
`HU
`IE
`1L
`IS
`11‘
`JP
`KE
`KG
`KP
`
`KR
`KZ
`LC
`Ll
`LK
`LR
`
`Spain
`Finland
`France
`Gabon
`United Kingdom
`Georgia
`Ghana
`Guinea
`Greece
`Hungary
`Ireland
`Israel
`lceland
`Italy
`Japan
`Kenya
`Kyrgyzstan
`Democratic People‘s
`Republic of Korea
`Republic of Korea
`Kazakstan
`Saint Lucia
`Liechtenstein
`Sri Lanka
`Liberia
`
`LS
`LT
`LU
`LV
`MC
`MD
`MG
`MK
`
`ML
`MN
`MR
`MW
`MX
`NE
`NL
`N0
`NZ
`PL
`PT
`R0
`RU
`51)
`SE
`SG
`
`Lesotho
`Lithuania
`Luxembourg
`Latvia
`Monaco
`Republic of Moldova
`Madagascar
`The former Yugoslav
`Republic of Macedonia
`Mali
`Mongolia
`Mauritania
`Malawi
`Mexico
`Niger
`Netherlands
`Norway
`New Zealand
`Poland
`Portugal
`Romania
`Russian Federation
`Sudan
`Sweden
`
`81
`SK
`SN
`82
`TD
`TG
`TJ
`TM
`TR
`'l‘T
`UA
`UG
`US
`UZ
`VN
`YU
`ZW
`
`Slovenia
`Slovakia
`Senegal
`Swaziland
`Chad
`Togo
`Tajikistan
`Turkmenistan
`Turkey
`Trinidad and Tobago
`Ukraine
`Uganda
`United States of America
`Uzbekistan
`Viet Nam
`Yugoslavia
`Zimbabwe
`
`Page 2 of 94
`
`
`
`WO 97/41520
`
`PCT/U897/04719
`
`-1-
`
`A METHOD FOR SCALING LARGE
`
`E-MAIL DATABASES FOR DEVICES
`
`WITH LIMITED STORAGE
`
`This application is a Continuation-In-Part of pending application serial
`number 08/431,500 entitled APPLICATION INDEPENDENT RECORD LEVEL
`
`SYNCHRONIZATION filed April 28, 1995.
`
`(1)
`
`Field of the Invention
`
`(Personal Computer), or require the user to generate their own address book there
`
`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 Deve10pment Corporation and
`cc: Mail Remote System from Lotus Development Corporation duplicate the
`address database (generally several mega-bytes in size) on a notebook PC
`
`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.
`
`Page 3 of 94
`
`
`
`WO 97/41520
`
`PCT/US97/047l9
`
`-2-
`
`user's personal address book and in a network database and if John Doe’s name is
`
`an easy to use method for generating default personal address books automatically
`
`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
`
`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 sealing E-
`
`mail address book databases for devices with limited storage capacity by providing
`
`Page 4 of 94
`
`
`
`WO 97141520
`
`PCT/US97/047l9
`
`-3-
`
`and to provide an efficient method for keeping the personal address books
`synchronized with a main database.
`
`mm
`
`A method and an apparatus for sealing 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.
`
`illustrated in Figure 2a.
`
`BRIEF DESSEBIEIIQN 52E lflfi; QBAWIMQS
`
`Figure la illustrates the architecture of the present invention.
`Figure lb illustrates an exemplary system block diagram with an
`implementation of the present invention.
`
`Figure 1c illustrates an exemplary system block diagram of the present
`invention.
`
`Figure ld illustrates an exemplary personal address book.
`Figure 1e illustrates the general steps followed in an exemplary installation
`procedure installing the present invention's client device address book (DAB).
`Figure 2a illustrates an exemplary block diagram of the mail synchronizer
`of the present invention.
`
`Figure 2b illustrates a block diagram of the identification (ID) generator
`
`Page 5 of 94
`
`
`
`Figure 2c is a block diagram of event log generator 334 illustrated in
`
`Figure 2a.
`
`Figure 2d is an exemplary block diagram of the synch mechanism of the
`
`present invention.
`
`Figure 3a illustrates the general steps followed by the creation mechanism
`
`(creator) 122 illustrated in Figure 1c.
`
`Figure 3b illustrates general steps followed in obtaining user settings (step
`
`301 of flow diagram in Figure 3a).
`
`Figure 3c illustrates the general steps followed including a personal
`
`address book (PAB) (step 302 illustrated in flow diagram Figure 3a).
`
`Figure 3d describes the general steps followed in processing the message
`
`(step 338 in Figure 3e).
`Figure 3e describes the general steps by which an address is processed
`
`(step 346 of flow diagram illustrated in Figure 3d).
`Figure 3f illustrates the general steps followed including a device address
`
`book image (DABI) (step 303 of flow diagram illustrated in Figure 3a).
`
`Figure 3g illustrates general steps in creating a DAB (step 304 of flow
`
`diagram of Figure 3a).
`Figure 3h describes the general steps followed by the update mechanism
`
`(updater 123 illustrated in Figure 1c) of the present invention.
`Figure 3i illustrates the general steps followed in processing changes in the
`
`mailbox (step 372 of Figure 3h).
`Figure 33' illustrates the general steps followed in synchronizing PAB with
`
`the data source (step 373 of Figure 3h).
`
`Figure 3k illustrates the general steps followed by the address
`
`synchronizer.
`
`Figure 4a illustrates an exemplary source ID table 410.
`
`Figure 4b illustrates an exemplary change list 420 for DAB 132.
`
`W0 97/4152!)
`
`PCTIUS97/047l9
`
`.4-
`
`for DABI illustrated in Figure 4c.
`
`Figure 40 illustrates an exemplary change list for DABI 130.
`Figure 4d illustrates an exemplary merged list created by merging and
`sorting by time the change list for DAB illustrated in Figure 4b and the change list
`
`Page 6 of 94
`
`
`
`WO 97/41520
`
`PCT/US97/04719
`
`-5-
`
`present invention.
`
`Figures 9a - 9e, and 10a and 10b are flow charts describing the general
`steps followed by a Synchronization mechanism.
`Figures 11a - llc are flow charts describing the general steps followed by
`a Change Existing Data mechanism.
`
`Figure 5a is a block diagram illustrating an exemplary synchronization
`apparatus of the present invention.
`
`Figure 5b is a flow diagram illustrating the general steps followed by the
`apparatus illustrated in Figure 5a.
`
`Figure 5c illustrates exemplary data structures for exemplary Change Lists
`CLO and CLl.
`
`Figures 5d - 5f are alternate embodiments of a system block diagram
`illustrating the mail synchronization method and apparatus of the present
`invention.
`
`Figures 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.
`Figure 6a illustrates the general steps followed by the mail synchronizer of
`the present invention.
`
`Figure 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.
`
`Figure 6c describes the general steps followed by the present invention in
`generating an event log for a mail.
`
`Figures 6d and 6e illustrate the general steps followed by the present
`invention in generating an event log for folders.
`Figure 7a is a flow chart describing the general steps followed by a SUID
`mechanism.
`
`Figures 7b and 7c are flow charts describing the general steps followed by
`a Change Detection mechanism.
`
`Figure 7d illustrates an exemplary data structure modified by the steps
`described in Figure 7b.
`
`Figures 8a - 8d are flow charts describing the general steps followed by an
`Error Correction mechanism.
`
`Figure 12 is a table illustrating the mail synchronization method of the
`
`Page 7 of 94
`
`
`
`WO 97/41520
`
`PCT/US97/04719
`
`-6-
`
`Figure 13 is a table illustrating exemplary mail synchronization scenarios
`
`where there are messages/folders with the same Key Field values.
`
`an application used to access mail through MAPI (Mail Application Program
`
`Figure 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)
`
`W
`
`The present invention provides a method and an apparatus for a storage
`
`efficient mechanism such that users can address Email 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-rouse
`
`method for generating a default personal address book automatically and an
`
`efficient method for keeping a personal address book synchronized with a master
`database.
`
`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
`
`Page 8 of 94
`
`
`
`WO 97/41520
`
`PCT/0897104719
`
`-7-
`
`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 Email agent 100 connect through a telephone call (or through serial cable,
`LAN, etc.) to synchronize their states.
`
`Additionally, host device 102 also has DABI (Device Address Book Image) 130
`
`Figure lb illustrates an exemplary system block diagram of the present
`invention. Computer 102 has memory 1 14 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
`Email 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 Figure 1a.
`Figure 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.
`
`Page 9 of 94
`
`
`
`WO 97/41520
`
`PCTlUS97/04719
`
`-8-
`
`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 (ie. a subset of PAB 128).
`
`ln 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), appO 134 and app] 136 respectively,
`
`for which the subsetting and the synchronization of the address books are being
`
`137 which identifies what the source of the contents of field 135 is.
`
`ranking score 139. The illustrated exemplary fields 135 are E-mail address field,
`
`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.
`
`Figure 1d illustrates an exemplary PAB 128 of the present invention. Each
`
`address entry 133 has various fields 135, source DDS 137 and address entry
`
`name field and home phone field. Each field 135 has a corresponding source ID
`
`Page 10 of 94
`
`
`
`.9-
`
`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.
`
`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
`
`WO 97/41520
`
`PCT/USQ7/047l9
`
`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 Figure 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 (PlMs) 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.
`
`is maintained as a ranked list according to address ranking score 139, and only the
`
`Page 11 of 94
`
`
`
`WO 97/41520
`
`PCT/US97/047l9
`
`-10-
`
`In step 151, a user’s E-mail folders are scanned to find all the cohorts
`
`updates to PAB 128 may be performed when the user is not using his or her PC
`102.
`
`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,
`
`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 PlM 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.
`
`Figure 1e illustrates the general steps followed in an exemplary installation
`
`procedure in stalling the present invention's client device E mail host device
`
`connection.
`
`Page 12 of 94
`
`
`
`WO 97/41520
`
`PCT/US97/047l9
`
`-11-
`
`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
`
`PAB 128 may be selected. Installation module 131 then computes how many
`
`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
`
`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, 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
`
`Page 13 of 94
`
`
`
`WO 97/41520
`
`PCT/[1897104719
`
`-12-
`
`entries can be copied onto DAB 132 of client device 106 and copies only these
`
`entries starting with the highest ranking entry.
`
`Figures 2a through 2d, and 5 through 13 illustrate an exemplary method
`
`and apparatus for data synchronization which may be adapted for use in the
`
`present invention’s address synchronization process. Given the detailed
`
`description disclosed herein, such implementation of the address synchronization
`
`process of the present invention may be readily understood by a person skilled in
`the art.
`
`Figure 2a is a block diagram illustrating a mail synchronizer. Mail
`
`synchronizer 112 synchronizes changes made independently on an e-mail system
`
`on two separate computers or two different e-mail systems on the same computer.
`
`Pseudo unique ID (identification) generator 200 generates a pseudo unique ID for
`
`each mail or folder in a mail box for an e—mail system. Event log generator 202
`
`generates an event log by generating events for each ID (i.e. for each mail or
`
`folder). Synch mechanism 204 synchronizes the mail boxes using the generated
`
`event logs.
`
`creates performed by Change Detection mechanism 230. Error conditions
`
`given a mail or a folder. LD creator 208 generates an ID for each mail or folder in a
`mail box.
`
`Figure 2b illustrates a block diagram of the ID generator illustrated in
`
`Figure 2a. ID generator 200 has unique attribute selector 206 and 1D creator 208.
`
`Unique attribute selector 206 selects an attribute that is most likely to be unique
`
`Figure 2c is a block diagram of the event log generator illustrated in Figure
`
`2a. Event log generator 202 has mail event log generator 210 and folder event log
`
`generator 212. Mail event log generator 210 generates an event for the event log
`
`for each mail in mail boxes to be synchronized. Folder event log generator 212
`
`generates an event for the event log for each folder in the mail boxes to be
`
`synchronized.
`
`Figure 2d is a block diagram of the synch mechanism of the present
`
`invention illustrated in Figure 2a. Synch mechanism 204 has sub-parts, Change
`
`Detection mechanism 230, Error Detection mechanism 234, Change Existing Data
`
`mechanism 238 and Synchronization mechanism 236. Change Detection
`
`mechanism 230 detects the changes which have occurred to a given mail box since
`
`the last synchronization. Error Detection 234 identifies incorrect updates and
`
`Page 14 of 94
`
`
`
`WO 97/41520
`
`PCT/US97/D47l9
`
`-13-
`
`In step 301, user setting according to the
`(creator) 122 illustrated in Figure 1c.
`general steps followed in Figure 3b is obtained. (For a detailed description of the
`steps followed, turn to Figure 3b and the accompanying description).
`In step 302,
`PAB (Personal Address Book) 128 is created following the general steps
`illustrated and described in Figure 3c.
`In step 303, DABI (Device Address Book
`
`“BCC” (blind carbon copied) address on an authored message, the “AUTHOR”
`
`triggering Error Detection 234 include when a record's Key Attribute has changed
`
`in MBO’ and/or when more than one message/folder is sharing the same Key
`
`Attribute values (an example of a non-unique identifier case is described in more
`
`detail below). Synchronization mechanism 236, performs the synchronization of
`
`data sets, given information regarding the mail boxes produced by Change
`Detection mechanism 230. Change Existing Data 238 modifies existing data to
`
`make the mail boxes equivalent.
`
`Figure 3a illustrates the general steps followed by the creation mechanism
`
`Image) 130 is created following the general steps illustrated in Figure 3f. In step
`304, DAB (Device Address Book) 132 is created following the general steps
`illustrated and described in Figure 3g.
`
`Figure 3b illustrates the general steps followed in obtaining user settings
`(step 301 of flow diagram in Figure 3a).
`In step 321, additional information
`
`sources are selected. The sources may include, but are not limited to, personal
`information managers, contact databases, or manual entry.
`In step 322, the user
`specifies what data fields are to be included in the device address book. The data
`
`fields are hereinafter referred to as “Additional Information” as they are in addition
`to the required E-mail address field. A sample of what additional fields the user
`
`may select includes, but are not limited to, full name, work address, home
`
`address, work phone numbers, home phone number, cellular number, pager
`number, employee identification, birthday mail stop fields.
`
`In step 323, the ranking profile is selected. The ranking profile consists of
`the score to be given to each entry depending on how an entry was used. For
`example, a cohort that is copied on a message may have a score of one, while a
`
`cohort that is a destination may have a score of three. A sample list of scored
`characteristics in