`Oberhaus et al.
`
`USOO6983308B1
`(10) Patent No.:
`US 6,983,308 B1
`(45) Date of Patent:
`Jan. 3, 2006
`
`(54) MAIL SYNCHRONIZATION OF REMOTE
`AND LOCAL MAIL SYSTEMS
`(75) Inventors: Jared M. Oberhaus, Sunnyvale, CA
`SES SNR, s Ms.
`(
`aul A. Smetners, Uupertino,
`A S. Russell S. Greer, Los Gatos,
`
`(*) Notice:
`
`2- Y----
`
`CCCZ C a
`
`- - -
`
`5,758,354 A 5/1998 Huang et al.
`5,802,510 A 9/1998 Jones
`5,826,039 A 10/1998 Jones
`s: A : E. S. et al... "O.
`5,966,714 A * 10/1999 Huang et al. .....
`... 707/201
`6,018,762 A * 1/2000 Brunson et al. ............ 709/206
`6,052,735 A * 4/2000 Ulrich et al. .....
`... 709/236
`6,131,096 A * 10/2000 Ng et al. ...................... 707/10
`6,304.881. B1 * 10/2001 Halim et al. ...
`... 707/201
`6,401,112 B1 * 6/2002 Boyer et al. ...
`... 709/206
`(73) Assignee: Openwave Systems, Inc., Redwood
`6,442,570 B1
`8/2002 Wu ............................ 707/201
`City, CA (US)
`OTHER PUBLICATIONS
`Subject to any disclaimer, the term of this
`Hild et al., Mobilizing Applications, IEEE Personal Com
`patent is extended or adjusted under 35
`munications, Oct. 1997, pp. 26-34.
`U.S.C. 154(b) by 589 days.
`* cited by examiner
`(21) Appl. No.: 09/219,072
`Primary Examiner-Hosain Alam
`(22) Filed:
`Dec. 22, 1998
`Assistant Examiner Philip B. Tran
`(74) Attorney, Agent, or Firm-Beyer Weaver & Thomas,
`Related U.S. Application Data
`LLP
`(60) Provisional application No. 60/109,088, filed on Nov. 19,
`(57)
`ABSTRACT
`1998.
`(51) Int. Cl.
`tralia for years SE el
`(2006.01)
`G06F 15/16
`mal mailboxeS facCOuntS) Of a uSer are discloSed. The uSer
`is able to effectively. See and interact with only a single
`(52) U.S. Cl. ........................ 709,206. 709/248; 709/217
`“virtual' mailbox, which is the synchronized combination of
`(58) Field of Classification Search s
`709/2O6
`the two different electronic mailboxes. The electronic mail
`709/217, 106,203 227329.24s:707710.
`boxes are used to receive, Store, read and Send electronic
`s
`s
`s
`s
`s
`s
`See application file for complete Search ...?" mail over a network to electronic mailboxes associated with
`recipients. The electronic mail can include electronic mes
`Sages that contain text, graphics or Video. The Synchroniza
`h
`hi
`ideo. Th
`hroni
`tion of the two different electronic mailboxes can be per
`formed automatically in a two-way manner without user
`interaction. The Synchronization can also be performed
`Securely even though electronic messages are transmitted
`over a public network.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`5,483,352 A
`1/1996 Fukuyama et al.
`5,625.818 A 4/1997 Zarmer et al.
`5,710,922 A * 1/1998 Alley et al. ................. 707/201
`5,742,763 A 4/1998 Jones
`5,757,669 A * 5/1998 Christie et al. ............. 709/205
`
`21 Claims, 21 Drawing Sheets
`
`
`
`
`
`USER'S
`COMPUTER
`
`PROXY
`SERVER
`(FIREWALL)
`
`WIRELESS
`MA
`SYSTEM
`
`LOCALNETWORK
`
`SYNC,
`CLENT
`
`LOCAL
`MAL
`SERVER
`
`120
`
`
`
`118
`
`BANK OF AMERICA ET AL. EXHIBIT 1031
`
`Page 1 of 35
`
`
`
`U.S. Patent
`U.S. Patent
`
`Jan. 3, 2006
`
`Sheet 1 of 21
`
`US 6,983,308 B1
`US 6,983,308 B1
`
`SSATSuIM
`
`VA
`
`WALSAS
`
`cbb
`
`OOL
`
`Y3SAggS
`
`(TWvMaHlS)
`
`901S.Y3asn
`
`
`
`AXOWdYSLNdNOD
`
`cb
`ZZ ).
`
`L‘big
`
`YaledeVO
`
`MYOMLIN
`
`tfy
`
`bh
`
`r
`
`Z01IVA“ONAS
`WooTVA
`
`
`
`YSAdSSIN3I19
`
`WMHOMLINW901
`
`POL
`
`8 || ||
`
`SLL
`
`
`
`
`
`Page 2 of 35
`
`Page 2 of 35
`
`
`
`
`
`
`U.S. Patent
`
`Jan. 3, 2006
`
`Sheet 2 of 21
`
`US 6,983,308 B1
`
`
`
`MA
`SYNCHRONIZATION
`SERVER
`
`206
`
`WIRELESS DEVICE
`MAIL SERVER
`
`204
`
`WIRELESS DEVICE
`MAIL APPLICATION
`202
`
`2OO
`
`Fig. 2A
`
`Page 3 of 35
`
`
`
`U.S. Patent
`
`Jan. 3, 2006
`
`Sheet 3 of 21
`
`US 6,983,308 B1
`
`
`
`SYNC.
`CLIENT
`PROCESS
`
`210
`
`ACTION LIST
`215
`
`CLIENT
`MAPPING
`TABLE
`
`212
`
`2O8
`
`Fig. 2B
`
`Page 4 of 35
`
`
`
`U.S. Patent
`
`Jan. 3, 2006
`
`Sheet 4 of 21
`
`US 6,983,308 B1
`
`
`
`MAIL SYNC. SERVER
`
`216
`
`SYNC.
`SERVER
`PROCESS
`
`218
`
`SYNC.
`MESSAGE
`OUTEOX
`222
`
`OUTGOING
`SYNC.
`
`1211
`
`ACTION.
`LIST
`
`GARBAGE
`COLLECTOR
`
`224
`
`Fig. 2C
`
`Page 5 of 35
`
`
`
`U.S. Patent
`
`Jan. 3, 2006
`
`Sheet S of 21
`
`US 6,983,308 B1
`
`(STARD
`
`1? 3OO
`
`ESTABLISH SECURE CONNECTION WITH MAL
`SYNCHRONIZATION SERVER (MSS) WITH
`MAIL SYNCHRONIZATION CLIENT (MSC)
`
`
`
`302
`
`
`
`
`
`304
`
`306
`
`
`
`MSC
`PREVIOUSLY
`SYNCED
`
`
`
`NO
`
`REOUEST MSS TO INDICATE WHETHER
`PREVIOUSLY SYNC'ED WITH MSC
`
`308
`
`
`
`
`
`MSS
`PREVIOUSLY
`SYNCED
`
`
`
`31 O
`
`
`
`PERFORM UPDATE SYNCHRONIZATION
`BETWEEN MSC AND MSS
`
`312
`
`314
`
`PERFORM NITIAL SYNCHRONIZATION
`BETWEEN MSC AND MSS
`
`GEND)
`
`Fig. 3A
`
`Page 6 of 35
`
`
`
`U.S. Patent
`
`Jan. 3, 2006
`
`Sheet 6 of 21
`
`US 6,983,308 B1
`
`NITIAL SYNCHRONIZATION
`PROCESSING
`
`NORMALIZATION PROCESSING
`
`
`
`
`
`PULL SYNCHRONIZATION
`PROCESSING
`
`
`
`322
`
`324
`
`326
`
`Fig. 3B
`
`Page 7 of 35
`
`
`
`U.S. Patent
`
`Jan. 3, 2006
`
`Sheet 7 of 21
`
`US 6,983,308 B1
`
`UPDATE SYNCHRONIZATION
`PROCESSING
`
`
`
`
`
`
`
`PULL SYNCHRONIZATION
`PROCESSING
`
`
`
`332
`
`334
`
`Fig. 3C
`
`Page 8 of 35
`
`
`
`U.S. Patent
`
`Jan. 3, 2006
`
`Sheet 8 of 21
`
`US 6,983,308 B1
`
`(STARD
`
`-400
`
`4O2
`
`OBTAIN COMPUTER'S MESSAGE LIST
`
`404
`
`REGUEST PHONE'S MESSAGE LIST
`
`NO
`
`YES
`
`408
`
`COMPARE COMPUTER'S MESSAGE LIST
`WITH PHONE'S MESSAGE LIST TO
`IDENTIFY MISSING MESSAGE
`
`'0N REQUEST MISSING MESSAGES FROM MSS
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`RECEIVE
`INSERT
`TRANSACTION
`?
`
`NO
`
`414
`
`YES
`PERFORM INSERTION OF MESSAGE
`NTO INBOX
`
`416
`
`YES
`
`
`
`MORE
`MISSING
`MESSAGES
`
`
`
`NO
`
`CEND)
`
`Fig. 4
`
`Page 9 of 35
`
`
`
`U.S. Patent
`
`Jan. 3, 2006
`
`Sheet 9 of 21
`
`US 6,983,308 B1
`
`(STARD
`
`1? 500
`
`502
`
`
`
`
`
`RECEIVE
`TELEPHONE
`MESSAGE
`LIST
`REQyEST
`YES
`SEND TELEPHONE MESSAGE LIST TO MSC
`
`NO
`
`50
`4.
`
`506
`
`
`
`
`
`RECEIVE
`MISSING
`MESSAGES
`REayEST
`
`NO
`
`YES
`
`508
`
`MORE
`MISSING
`NO
`MESSAGE
`CEND)
`YES
`SELECT NEXT MISSING MESSAGE
`510
`
`PREPARE INSERT TRANSACTION
`FOR SELECTED MISSING MESSAGE
`
`512
`
`SEND INSERT TRANSACTION TO MSC
`
`
`
`
`
`
`
`
`
`
`
`
`
`YES
`
`520
`
`Fig. 5
`
`Page 10 of 35
`
`
`
`U.S. Patent
`
`Jan. 3, 2006
`
`Sheet 10 of 21
`
`US 6,983,308 B1
`
`OBTAIN MAXIMUM NUMBER OF
`MESSAGES IN PHONE NBOX
`(MAX MSGS)
`
`
`
`602
`
`SET COUNT = 925
`SET i = 25
`
`604
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`IS
`COMPUTER
`MESSAGE(i)
`PHONE
`NBOX
`
`606
`
`608
`
`INCREMENT COUNT
`
`NCREMENT
`
`61O
`
`612
`
`NO
`
`YES
`
`614
`
`DELETE COUNT = MAX MSGS - COUNT
`
`(C)
`
`Fig. 6A
`
`Page 11 of 35
`
`
`
`U.S. Patent
`
`Jan. 3, 2006
`
`Sheet 11 of 21
`
`US 6,983,308 B1
`
`
`
`IS
`COMPUTER
`MESSAGE (i)
`PHONE
`INBOX P
`
`PREPARE DELETE TRANSACTION FOR
`PHONE MESSAGE ( i)
`
`SEND DELETE TRANSACTION TO MSS
`
`DECREMENT DELETE COUNT
`
`INCREMENT i
`
`IS
`i
`>
`TOTAL
`COMPUTER
`Msgs.
`
`Page 12 of 35
`
`
`
`U.S. Patent
`
`Jan. 3, 2006
`
`Sheet 12 of 21
`
`US 6,983,308 B1
`
`SET i = gas
`
`
`
`
`
`
`
`
`
`
`
`708
`
`
`
`
`
`
`
`
`
`S
`NUMBER
`OF
`FREE
`SLOTS
`D
`$75
`NO
`
`
`
`RECEIVE
`NUMBER
`FSEE
`SLOTS
`
`YES
`
`IS
`COMPUTER
`
`MESSAGE(i)
`PHONE
`INBOX
`
`
`
`710
`
`YES
`
`PREPARE INSERT TRANSACTION REOUEST
`FOR A NEW PHONE MESSAGE CORRESPONDING
`TO COMPUTER MESSAGE (i)
`
`712
`
`SEND INSERT TRANSACTION REOUEST TO MSS
`
`714
`
`
`
`
`
`
`
`716
`
`
`
`ACKED
`WITH
`PHONE
`MSG
`D
`
`YES
`
`GD)
`
`NO
`
`Fig. 7A
`
`Page 13 of 35
`
`
`
`U.S. Patent
`
`Jan. 3, 2006
`
`Sheet 13 of 21
`
`US 6,983,308 B1
`
`718
`
`720
`
`CORRELATE THE PHONE MESSAGE ID
`WITH THE COMPUTER MESSAGE ID
`
`DECREMENT NUMBER OF FREE SLOTS
`
`722
`
`NCREMENT i
`
`724
`
`
`
`
`
`
`
`
`
`IS
`i
`o
`TOTAL
`COMPUTER
`MSGS,
`
`YES
`
`NO
`
`CEND)
`
`Fig. 7B
`
`Page 14 of 35
`
`
`
`U.S. Patent
`
`Jan. 3, 2006
`
`Sheet 14 of 21
`
`US 6,983,308 B1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`RECEIVE
`FREE
`SLOTS
`REQyEST
`
`
`
`RECEIVE
`INSERT
`TRANSACTION
`REQyEST
`
`DETERMINE NUMBER OF
`FREE SLOTS
`
`SEND NUMBER OF
`FREE SLOTS TO MSC
`
`806
`
`810
`
`PERFORM INSERTION OF
`MESSAGE INTO PHONE
`NBOX
`
`GENERATE PHONE
`MESSAGE ID
`
`SEND ACKNOWLEDGEMENT
`ALONG WITH PHONE MESSAGE
`ID TO MSC
`
`
`
`Fig. 8
`
`Page 15 of 35
`
`
`
`U.S. Patent
`
`Jan. 3, 2006
`
`Sheet 15 0f 21
`
`US 6,983,308 B1
`
`"Y,
`
`(staRD
`
`CREATE ACTION LIST DESCRIBNG
`CHANGES SINCE LAST SYNCHRONIZED
`
`902
`
`904
`
`YES
`
`ACTION
`LIST
`
`EMETY
`
`SELECT NEXT ACTION FROM ACTION LIST
`
`PREPARE SYNCHRONIZATION ACTION
`MESSAGE FOR THE SELECTED ACTION
`
`906
`
`908
`
`SEND SYNCHRONIZATION ACTION
`MESSAGE TO MSS
`
`912
`
`914
`
`ACK"EO
`WITH
`PHONE
`MSG.
`D
`
`NO
`
`YES
`
`CORRELATE THE PHONE MESSAGE ID
`WITH THE COMPUTER MESSAGE D
`
`918
`
`ERROR CONDITION
`
`REMOVE SELECTED ACTION FROM
`THE ACTION LIST
`
`922
`
`Fig. 9A
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Page 16 of 35
`
`
`
`U.S. Patent
`
`Jan. 3, 2006
`
`Sheet 16 of 21
`
`US 6,983,308 B1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`SEND SWAP REGUEST TO MSS
`
`924
`
`NO
`
`9
`
`ACTION
`MESSAGE
`RECEIVED NO
`
`PERFORM SYNCHRONIZATION ACTION
`REGUESTED BY SYNCHRONIZATION
`ACTION MESSAGE
`
`SEND ACKNOWLEDGEMENT MESSAGE
`TO MSS
`
`930
`
`932
`
`Fig. 9B
`
`Page 17 of 35
`
`
`
`U.S. Patent
`
`Jan. 3, 2006
`
`Sheet 17 Of 21
`
`US 6,983,308 B1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ACTION
`MESSAGE
`
`REC5IVED/No
`
`NO 4 1014
`REQyEST
`
`SWAP
`
`YES
`
`
`
`PERFORMSYNCHRONIZATION ACTION
`REGUESTED BY SYNCHRONIZATION ACTION
`MESSAGE
`
`IS
`NEW
`PHONE
`
`MESSAGE
`
`NEEDED
`
`1 OO4
`
`
`
`
`
`1008
`
`SEND ACKNOWLEDGEMENT
`MESSAGE TO MSC
`
`GENERATE PHONE MESSAGE ID
`
`SEND ACKNOWLEDGEMENTALONG WITH
`THE PHONE MESSAGE D TO MSC
`
`Fig. 10A
`
`Page 18 of 35
`
`
`
`U.S. Patent
`
`Jan. 3, 2006
`
`Sheet 18 of 21
`
`US 6,983,308 B1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`CREATE ACTION LIST DESCRIBING
`CHANGES SINCE LAST SYNCHRONIZED
`
`1016
`
`1018
`
`1038
`
`YES
`
`SEND SYNCHRONIZATION
`COMPLETE MESSAGE
`
`ACTION
`LIST
`EMPTY
`
`NO
`
`102O
`
`SELECT NEXT ACTION FROM
`ACTION LIST
`
`CEND)
`
`PREPARE SYNCHRONIZATION ACTION
`MESSAGE FOR THE SELECTED ACTION
`
`1022
`
`SEND SYNCHRONIZATION ACTION
`MESSAGE TO MSC
`
`<> YES
`
`ERROR CONDITION
`
`REMOVE SELECTED ACTION
`FROM THE ACTION LIST
`
`1032
`
`1030
`
`Fig. 10B
`
`Page 19 of 35
`
`
`
`U.S. Patent
`
`Jan. 3, 2006
`
`Sheet 19 of 21
`
`US 6,983,308 B1
`
`
`
`
`
`
`
`1102
`
`MANUAL
`SYNC.
`
`REQyEST
`
`AUTOMATICALLY GENERATE SPECIAL |
`SYNCHRONIZATION ELECTRONIC
`MAIL MESSAGE
`
`0
`
`SEND SPECIAL SYNCHRONIZATION
`ELECTRONIC MAIL MESSAGE TO MSC
`
`1106
`
`
`
`Fig. 11A
`
`Page 20 of 35
`
`
`
`U.S. Patent
`
`Jan. 3, 2006
`
`Sheet 20 of 21
`
`US 6,983,308 B1
`
`
`
`
`
`
`
`
`
`
`
`1152
`
`SPECIAL
`SYNC. MSG.
`RECEIVED
`
`DELETE SPECIAL SYNCHRONIZATION
`ELECTRONIC MAL MESSAGE FROM
`COMPUTER'S INBOX
`
`1154
`
`1156
`
`INITIATE SYNCHRONIZATION
`
`
`
`Fig. 11B
`
`Page 21 of 35
`
`
`
`U.S. Patent
`
`Jan. 3, 2006
`
`Sheet 21 of 21
`
`US 6,983,308 B1
`
`(STARD 1? 1200
`
`PREPARE OUTGONG ELECTRONIC
`MAL MESSAGE
`
`12O2
`
`1204
`
`
`
`
`
`
`
`SEND
`VA
`SYNC.
`REQUESTED YES
`
`1210
`
`12O6
`
`
`
`NO
`
`STORE ELECTRONIC MAL
`MESSAGE IN OUTGOING
`SYNCHRONIZATION OUEUE
`
`
`
`
`
`
`
`SENSEESA L
`INTERNET OVER SMTP
`
`ADD DELVERY ACTION
`TO ACTION LIST
`
`PLACE ELECTRONIC MAIL
`MESSAGE IN TELEPHONE'S
`SEND MESSAGES BOX
`
`1208
`
`ADD SENT MESSAGE
`ACTION TO ACTION LIST
`
`1212
`
`SYNCHRONIZE
`ELECTRONIC MAMESSAGE
`TO COMPUTER'S OUTBOX
`
`SEND ELECTRONIC MA
`MESSAGE FROM COMPUTER
`
`1209
`
`MOVE ELECTRONIC MAIL
`MESSAGE TO COMPUTER'S
`SEND MESSAGES BOX
`
`CEND)
`
`Fig. 12
`
`Page 22 of 35
`
`
`
`1
`MAIL SYNCHRONIZATION OF REMOTE
`AND LOCAL MAIL SYSTEMS
`
`CROSS REFERENCE TO RELATED
`APPLICATION
`This application claims the benefit of U.S. Provisional
`Application No. 60/109,088, filed Nov. 19, 1998, and
`entitled “MAIL SYNCHRONIZATION OF REMOTE AND
`LOCAL MAIL SYSTEMS", the content of which is hereby
`incorporated by reference.
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`The present invention relates to electronic mail Systems
`and, more particularly, to Synchronization of electronic mail
`Systems.
`2. Description of the Related Art
`Today, various types of hand-held computing devices are
`commonly used. Examples of hand-held computing devices
`include pagers, mobile phones, personal digital assistants
`(PDAS), palm-top computers and electronic Schedulers.
`One popular hand-held computing device is PalmPilot
`produced by 3COM Corporation. The PalmPilot provides
`calendaring functions. A Synchronization operation is
`requested by a user after the user physically connects the
`PalmPilot to the desktop computer over a dedicated cord or
`wire (e.g., typically using a cradle device). The Synchroni
`zation operation allows (i) dates previously entered by a user
`into the PalmPilot to be synchronized with a calendaring
`program operating on a desktop computer and (ii) dates
`previously entered by the user of the desktop computer to be
`synchronized with the PalmPilot.
`Some hand-held computing devices are able to Send and
`receive electronic mail. The users of these devices typically
`have a desktop computer that connects to a network and
`enables the user to read, compose and Send electronic mail.
`AS Such, these users have two mailboxes for receiving
`electronic mail, one for the hand-held computing device and
`another for the desktop computer. Conventionally, with
`respect to electronic mail, a user with multiple mailboxes for
`receiving electronic mail is able to forward electronic mail
`received in one mailbox to another mailbox (one-way
`forwarding). In addition, Some hand-held computer devices
`(e.g., PalmPilot) are able to Synchronize electronic mail
`when manually requested by a user. These Systems provid
`ing for Synchronization of electronic mail also do So over
`dedicated wires between the hand-held computer devices
`and the desktop computer.
`Thus, there is a need for improved techniques for Syn
`chronizing different electronic mail accounts of a user.
`
`SUMMARY OF THE INVENTION
`Broadly Speaking, the invention relates to improved tech
`niques for Synchronizing different electronic mail mailboxes
`(accounts) of a user. The user thus effectively sees and
`interacts with only a single “virtual” mailbox, which is the
`synchronized combination of the two different electronic
`mailboxes.
`The electronic mailboxes are used to receive, Store, read
`and Send electronic mail over a network to electronic
`mailboxes associated with recipients. Electronic mail
`includes electronic messages that contain text, graphics,
`audio, Video or other digitally encoded data. The Synchro
`nization of the two different electronic mailboxes includes,
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,983,308 B1
`
`2
`for example, insertion of new messages that arrive on one
`mailbox into the other mailbox, deletion of existing mes
`Sages from the other mailbox if done on one mailbox,
`restoration of deleted messages on the other mailbox if
`restored on one mailbox, and marking of read/unread Status
`in the other mailbox as done on one mailbox. The synchro
`nization could also include delivery of a message from one
`mailbox to the other mailbox where the message is auto
`matically Sent.
`The invention can be implemented in numerous ways,
`including as a method, an apparatus, a computer readable
`medium, and a computer System. Several embodiments of
`the invention are discussed below.
`As a method for automatically Synchronizing messages
`between first and Second electronic mail Systems that com
`municate over a network, one embodiment of the invention
`includes the acts of: automatically initiating Synchronization
`of message lists associated with the first and Second elec
`tronic mail Systems, providing a connection between the first
`and Second electronic mail Systems through the network
`after the Synchronization is initiated; and transmitting mes
`Sage information from the Second electronic mail System to
`the first electronic mail System via the connection.
`Optionally, the connection is a Secure connection, and the
`Second electronic mail System provides mail Services to
`mobile devices in a wireleSS manner.
`As a method for Synchronization of a Second mail System
`and a first mail System, where the Second mail System
`communicates with the first mail System through a public
`network, one embodiment of the invention includes the acts
`of maintaining a first inbox for the first mail System, the first
`inbox having a first message list associated therewith; estab
`lishing a secure connection between the first mail system
`and the Second mail System through the public network;
`requesting a Second message list from the Second mail
`System over the Secure connection, the Second message list
`being associated with a Second inbox for the Second mail
`System; comparing the first message list with the Second
`message list to identify missing messages, the missing
`messages are those messages that are identified as being
`present in the Second inbox but not also present in the first
`inbox, requesting the missing messages from the Second
`mail System over the Secure connection; receiving the miss
`ing messages from the Second mail System over the Secure
`connection through the public network, and inserting the
`missing messages that have been received into the first inbox
`of the first mail system.
`As a method for Synchronizing a first inbox of a first
`electronic mail application with a Second inbox of a Second
`electronic mail application, where the first electronic mail
`application and the Second electronic mail application are
`connected through a public network, one embodiment of the
`invention includes the acts of obtaining an action entry from
`an action list, the action list indicating changes that have
`occurred at the Second inbox since last Synchronization;
`preparing a Synchronization action message based on the
`action entry; Sending the Synchronization action message to
`the first electronic mail application through the public net
`work So that the first electronic mail application is able to
`perform the Synchronization action of the Synchronization
`message to render the first inbox more consistent with the
`Second inbox, receiving an acknowledgement from the first
`electronic mail application that the Synchronization action
`has been performed; and thereafter removing the action
`entry from the action list when the acknowledgement has
`been received.
`As a method for initiating Synchronization between first
`and Second mailboxes, the first mailbox being associated
`
`Page 23 of 35
`
`
`
`US 6,983,308 B1
`
`1O
`
`15
`
`25
`
`3
`with a first computing device coupled to a data network
`protected by a firewall, and the Second mailbox being
`asSociated with a Second computing device, one embodi
`ment of the invention includes the acts of receiving a
`request at the Second computing device to initiate a Syn
`chronization Session between the first and Second mailboxes,
`generating a Synchronization requesting electronic mail
`message; Sending the Synchronization requesting electronic
`mail message from the Second mailbox to the first mailbox;
`and thereafter initiating Synchronization between first and
`Second mailboxes via the first computing device as
`requested by the Synchronization requesting electronic mail
`meSSage.
`As a method for automatically Sending an electronic mail
`message during a Synchronization Session between first and
`Second mailboxes, the first mailbox being associated with a
`first computing device, and the Second mailbox being asso
`ciated with a Second computing device, one embodiment of
`the invention includes: providing an electronic mail message
`on the Second computing device that is to be sent to a
`destination address, Storing the electronic mail message at
`the Second computing device; delivering the electronic mail
`message to the first computing device during a Synchroni
`Zation Session between the first and Second mailboxes, and
`Subsequently automatically Sending the delivered electronic
`mail message to the destination address from the first
`computing device.
`As a mail Synchronization System, one embodiment of the
`invention includes: a remote mail System for providing
`electronic mail Services to a mobile device, and a local mail
`System for providing electronic mail Services to a desktop
`computer. The remote mail system includes a mobile device
`mail application, a mobile device mail Server and a mail
`Synchronization Server. The mobile device mail Server man
`ages Storage, receipt and delivery of electronic mail mes
`35
`sages with respect to the mobile device. The mobile device
`is capable of displaying a list of electronic mail messages in
`a remote inbox. The list of the electronic mail messages for
`the remote inbox is stored in the mobile device mail server
`and made available to the mobile device by the mobile
`device mail application. The local mail System includes a
`local mail Server and a mail Synchronization client. The local
`mail Server manages Storage, receipt and delivery of elec
`tronic mail messages with respect to the desktop computer.
`The desktop computer is capable of displaying a list of
`electronic mail messages in a local inbox. The list of the
`electronic mail messages for the local inbox is Stored in the
`local mail Server and made available to the desktop com
`puter. The mail Synchronization client and the mail Synchro
`nization Server interact to Synchronize the list of the elec
`tronic mail messages for the local inbox and the list of the
`electronic mail messages for the remote inbox maintained by
`the local mail Server and the remote mail Server, respec
`tively.
`AS a computer readable medium including computer
`program code for automatically Synchronizing first and
`Second electronic mail Systems that communicate over a
`network, one embodiment of the invention includes: com
`puter program code configured to automatically initiate
`Synchronization of message lists associated with the first and
`Second electronic mail Systems, computer program code
`configured to provide a connection between the first and
`Second electronic mail Systems through the network after the
`Synchronization is initiated; and computer program code
`configured to transmit message information from the Second
`electronic mail System to the first electronic mail System via
`the connection.
`
`4
`The advantages of the invention are numerous. Different
`embodiments or implementations may yield one or more of
`the following advantages. One potential advantage of the
`invention is that a user is able to use two different electronic
`mail accounts (mailboxes) as if they are the same electronic
`mail account. Another potential advantage of the invention
`is that the two different electronic mail accounts are able to
`be automatically Synchronized without user interaction. Still
`another potential advantage of the invention is Synchroni
`Zation between two different electronic mail accounts can be
`achieved through a public network. Yet another potential
`advantage of the invention is that an outgoing message can
`be automatically sent from the mailbox that receives the
`message in conjunction with Synchronization.
`Other aspects and advantages of the invention will
`become apparent from the following detailed description
`taken in conjunction with the accompanying drawings which
`illustrate, by way of example, the principles of the invention.
`BRIEF DESCRIPTION OF THE DRAWINGS
`The invention will be readily understood by the following
`detailed description in conjunction with the accompanying
`drawings, wherein like reference numerals designate like
`Structural elements, and in which:
`FIG. 1 is a block diagram of a mail Synchronization
`System according to an embodiment of the invention;
`FIG. 2A is a block diagram of a wireleSS mail System
`according to one embodiment of the invention;
`FIG. 2B is a block diagram of a mail synchronization
`client according to one embodiment of the invention;
`FIG. 2C is a block diagram of a mail synchronization
`Server according to one embodiment of the invention;
`FIG. 3A is a flow diagram of Synchronization processing
`according to one embodiment of the invention;
`FIG. 3B is a flow diagram of initial synchronization
`according to one embodiment of the invention;
`FIG. 3C is a flow diagram of update synchronization
`according to one embodiment of the invention;
`FIG. 4 is a flow diagram of client-side initial synchroni
`Zation processing according to one embodiment of the
`invention;
`FIG. 5 is a flow diagram of server-side initial synchroni
`Zation processing according to one embodiment of the
`invention;
`FIGS. 6A and 6B is a flow diagram of normalization
`processing for the mail Synchronization client;
`FIGS. 7A and 7B are flow diagrams of client-side pull
`Synchronization according to one embodiment of the inven
`tion;
`FIG. 8 is a flow diagram of server-side pull synchroniza
`tion according to one embodiment of the invention;
`FIGS. 9A and 9B are flow diagrams of client-side update
`Synchronization processing according to one embodiment of
`the invention; and
`FIGS. 10A and 10B are flow diagrams of server-side
`update Synchronization processing according to an embodi
`ment of the invention;
`FIG. 11A is a flow diagram of server-side synchronization
`initiation processing according to one embodiment of the
`invention;
`FIG. 11B is a flow diagram of client-side synchronization
`initiation processing according to one embodiment of the
`invention; and
`FIG. 12 is a flow diagram of outgoing mail Synchroniza
`tion processing according to an embodiment of the inven
`tion.
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Page 24 of 35
`
`
`
`US 6,983,308 B1
`
`15
`
`25
`
`35
`
`40
`
`S
`DETAILED DESCRIPTION OF THE
`INVENTION
`The invention relates to improved techniques for Synchro
`nizing different electronic mail mailboxes (accounts) of a
`user. The user thus effectively Sees and interacts with only a
`single “virtual' mailbox, which is the synchronized
`(mirrored) combination of the two different electronic mail
`boxes.
`The electronic mailboxes are used to receive, Store, read
`and Send electronic mail over a network to electronic
`mailboxes associated with recipients. Electronic mail
`includes electronic messages that contain text, graphics,
`audio, Video or other digitally encoded data. The Synchro
`nization of the two different electronic mailboxes includes,
`for example, insertion of new messages that arrive on one
`mailbox into the other mailbox, deletion of existing mes
`Sages from the other mailbox if done on one mailbox,
`restoration of deleted messages on the other mailbox if
`restored on one mailbox, and marking of read/unread Status
`in the other mailbox as done on one mailbox. The synchro
`nization could also include delivery of a message from one
`mailbox to the other mailbox where the message is auto
`matically Sent.
`The electronic mail boxes are typically provided on
`computing devices for the benefit of users. The computing
`devices can be any of a wide variety devices with different
`sizes, performances and mobilities. The invention is particu
`larly suitable for use with mobile devices that support
`electronic mail message operations. Examples of mobile
`devices (mobile computing devices or wireless devices)
`include pagers, mobile phones, personal digital assistants
`(PDAS), palm-top computers, electronic Schedulers, and
`other information appliances. In Such case, one mailbox is
`associated with a mobile device and the other mailbox is
`associated with a personal computer (e.g., a desktop
`computer). All messages are held in the computer's mailbox
`because it has greater Storage capacity than the telephones
`mailbox. The telephone's mailbox represents a window of a
`fixed number of the topmost messages of the virtual mail
`box.
`Embodiments of this aspect the invention are discussed
`below with reference to FIGS. 1-12. However, those skilled
`in the art will readily appreciate that the detailed description
`given herein with respect to these figures is for explanatory
`purposes as the invention extends beyond these limited
`embodiments.
`FIG. 1 is a block diagram of a mail Synchronization
`system 100 according to an embodiment of the invention.
`The mail synchronization system 100 operates to synchro
`nize a remote mail system 102 with a local mail system 104.
`The remote mail system 102 communicates with the local
`mail system 104 through the Internet 106. More generally,
`the Internet 106 can be any network but the invention is
`particularly well suited for use with public networks.
`Examples of networks include intranets and the Internet.
`The remote mail system 102 includes mobile devices 108
`that communicate through a carrier network 110 with a
`wireless mail system 112. The wireless mail system 112
`connects to the Internet 106. In one embodiment, the wire
`leSS mail System 112 is provided with a gateway Server or a
`proxy server that allows the mobile device 108 to commu
`nicate with the Internet 106. The wireless mail system
`provides electronic mail services to the mobile devices 108.
`The local mail system 104 includes a user's computer 114,
`a local mail Server 116, and a mail Synchronization client
`118. The user's computer 114 typically couples to the local
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`mail server 116 and the mail synchronization client 118
`through a local network 120. In one embodiment, the mail
`synchronization client 118 is provided within the user's
`computer 114. As an example, the local mail Server 116 can
`be an Exchange-type server (e.g., Microsoft Exchange-type)
`or a SMTP-type server. The local network 120 is, for
`example, a local area network (LAN) or other type of Small
`Scale network. In one embodiment, the local network can be
`provided by an organization with the user being one user
`within the organization and with the mail server 116 pro
`Viding mail Services to the employees of the organization. In
`another embodiment, the local network 120 and a separate
`local mail server are not needed and the local mail server 116
`and the mail synchronization client 118 are all provided on
`the user's computer 114. The local mail system 104 can also
`include a proxy server 122 (or firewall server) that couples
`the local network 120 to the Internet 106. The proxy server
`122 can act as a firewall to protect the access to the local
`network 120 and any resources residing on the local network
`120.
`FIG. 2A is a block diagram of a wireless mail system 200
`according to one embodiment of the invention. The wireleSS
`mail system 200 is, for example, suitable for use as the
`wireless mail system 112 illustrated in FIG. 1.
`The wireless mail system 200 includes a wireless device
`mail application 202, a wireless device mail server 204 and
`a mail synchronization server 206. The wireless device mail
`application 202 provides mail processing for the mobile
`devices 108 of the remote mail system 102. In other words,
`the mobile devices 108 typically only provide a limited
`amount of processing capacity and, thus, much of the mail
`application processing is performed by the wireless device
`mail application 202 residing on a Server computer located
`remotely with respect to the mobile devices 108. In this
`embodiment, the Server computer is the Server computer that
`supports the wireless mail system 200. Hence, the wireless
`device mail application 202 communicates with the mobile
`devices 108 through the carrier network 110. The wireless
`device mail application also communicates with the wireleSS
`device mail server 204.
`The wireless device mail server 204 is provided in the
`wireless mail system 200 to manage the receipt and delivery
`of electronic mail with respect to users of the mobile devices
`108. In this regard, the wireless device mail server 204
`communicates to local mail servers through the Internet 106.
`The mail synchronization server 206 is provided in the
`wireless mail system 200 to manage the synchronization of
`the wireless device mail server 204 with the local mail server
`116 of the local mail system 104. The mail synchronization
`server 206 also couples to the Internet 106.
`FIG. 2B is a block diagram of a mail synchronization
`client 208 according to one embodiment of the invention.
`The mail synchronization client 208 is, for example, Suitable
`for use as the mail synchronization client 118 illustrated in
`FIG.1. The mail synchronization client 208 includes a mail
`Synchronization client proceSS 210 that provides operations
`asSociated with Synchronizing the wireleSS device mail
`server 204 with the local mail server 116. To facilitate the
`Synchronization operations performed by the mail Synchro
`nization client process 210, the mail Synchronization client
`208 also includes a client mapping table 212, an inbox State
`table 214, and an action list 215. The client mapping table
`212 is used to associate electronic mail messages on mobile
`devices 108 with those on the user's computer 114. The
`inbox