`
`DROPBOX EX. 1001
`
`
`
`
`
`(12) United States Patent
`
`Multer et al.
`
`(54) DATA TRANSFER AND SYNCHRONIZATION
`SYSTEM
`
`(75)
`
`Inventors: David L. Multer, Santa Cruz, CA
`(US); Robert E. Garner,
`Lawrenceville, GA (US); Leighton A.
`Ridgard, Ellenwood, GA (US); Liam
`J. Stannard, Lawrenceville, GA (US);
`
`Donald W. Cash, Dunwoody, GA (US);
`
`Richard M. On yon, San Jose, CA (US)
`
`(73) Assignee: fusionOne, Inc., San Jose, CA (US)
`
`( *) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(21) Appl. No. : 09/491,694
`
`(22) Filed:
`
`Jan. 26, 2000
`
`(51) Int. Cl? ................................................ G06F 13/00
`(52) U.S. Cl. ....................... 710/100; 710/200; 710/220;
`710/1; 707 /201; 707 /203; 711!162
`(58) Field of Search ............................ 710/100, 1, 220,
`710/300; 707/8, 201, 203; 711!162
`
`U.S. PATENT DOCUMENTS
`
`(56)
`
`5,392,390 A
`5,519,606 A
`5,628,005 A *
`5,630,081 A
`5,666,553 A
`5,682,524 A
`5,684,990 A
`5,694,596 A
`5,701,423 A
`5,710,922 A
`5,727,202 A
`5,729,743 A
`5,742,792 A *
`5,745,906 A
`5,768,597 A
`5,771,354 A
`
`2/1995
`5/1996
`5/1997
`5/1997
`9/1997
`10/1997
`11/1997
`12/1997
`12/1997
`1!1998
`3/1998
`3/1998
`4/1998
`4/1998
`6/1998
`6/1998
`
`References Cited
`
`Croz ier ....................... 395/161
`Frid-Nielsen et a!. ....... 364/401
`.......................... 707/8
`Ryb icki et a!. ............. 395/348
`Croz ier ....................... 395/803
`Freund et a!. .............. 395/605
`..................... 395/619
`Croz ier ....................... 395/335
`Alley et a!. ................. 395/617
`Kucala ....................... 395/610
`....................... 395/619
`Yana i et a!. ................... 710/1
`....................... 707/203
`
`Hurv ig
`
`Boothby
`Campbell
`
`Squibb
`
`Squibb
`S imm
`Crawford
`
`111111
`
`(10) Patent No.:
`(45) Date of Patent:
`
`Dec. 30, 2003
`
`1111111111111111111111111111111111111111111111111111111111111
`US006671757Bl
`US 6,671,757 Bl
`7/1998 Frid-Nielsen et a!. .......... 705/9
`5,778,346 A
`5,787,247 A
`7/1998 Norin eta!.
`5,787,262 A
`7/1998 S hakib eta!.
`5,809,497 A
`9/1998 Freund eta!.
`5,812,773 A
`9/1998 Norin
`5,812,793 A
`9/1998 S hakib eta!.
`0 986 225 A1
`3/2000
`EP
`wo 99/05813
`2/1999
`wo
`wo 99/06900
`2/1999
`wo
`wo 99/36870
`7/1999
`wo
`wo 99/45451
`9/1999
`wo
`wo 99/45484
`9/1999
`wo
`wo 99/50761
`10/1999
`wo
`wo 00!11832
`3/2000
`wo
`wo 01!71539
`9/2001
`wo
`www.starfishsoftware .com/solutions/ data/data.html. *
`Primary Examiner---Gopal C. Ray
`Assistant Examiner-Justin I. King
`(74) Attorney, Agent, or Firm-Vierra Magen Marcus
`Harmon & DeNiro LLP
`
`(List continued on next page.)
`
`FOREIGN PATENT DOCUMENTS
`
`OTHER PUBLICATIONS
`
`Starfish, "TrueSync Data Synchronization", Software, http://
`
`(57)
`
`ABSTRACT
`
`A system and method for synchronizing devices which can
`couple to the Internet, or any network. The system includes
`a first sync engine on the first system interfacing with data
`on the first system to provide difference information. A data
`store is coupled to the network and in communication with
`the first and second systems. A second sync engine is
`provided on the second system coupled to receive the
`difference information from the data store via the network,
`and interface with data on the second system to update said
`data on the second system with said difference information.
`Difference information is transmitted to the data store by the
`first sync engine and received from the data store from the
`second sync engine.
`
`29 Claims, 13 Drawing Sheets
`
`Dropbox Ex. 1001
`
`
`
`Page 2
`
`US 6,671,757 Bl
`10/2000 Bodnar eta!.
`6,141,011 A
`10/2000 Boothby
`6,141,664 A
`Kucala . . . . . . . . . . . . . . . . . . . . . . . . 707/10
`11/2000 Mendez
`6,151,606 A
`Hawkins eta!. ............ 707/201
`1!2001 C hristie et a!.
`6,182,117 B1
`3/2001 Benson et a!.
`6,202,085 B1
`Squibb ....................... 707/203
`3/2001 Kruglikov et a!.
`6,205,448 B1
`4/2001 Boothby et a!.
`6,212,529 B1
`Ca possela et a!. . . . . . . . . . . 707/203
`4/2001 L iu et a!.
`6,216,131 B1
`4/2001 Lazarid is et a!.
`6,219,694 B1
`Boothby ..................... 707/201
`4/2001 Boothby et a!.
`6,223,187 B1
`5/2001 Ma hajan et a!.
`6,226,650 B1
`Mendez eta!. ............. 709/246
`6/2001 Feague
`6,247,135 B1
`8/2001 Bodnar et a!.
`6,275,831 B1
`6,295,541 B1 * 9/2001 Bodnar eta!. .............. 707/203
`6 304 881 B1
`10/2001 Hal im et a!.
`6,324,544 B1 * 11/2001 Alam eta!. ................. 707/201
`6' 330,568 B1
`12/2001 Boothby et a!.
`6,401,104 B1 * 6/2002 LaRue eta!. ............... 707/203
`Mendez et a!. . . . . . . . . . . . . . 707/203
`6' 405,218 B1
`McCormick et a!. .......... 707/1
`6/2002 Boothby
`6,449,622 B1 * 9/2002 LaRue eta!. ............... 707/201
`Boothby eta!. ............ 707/201
`6:487:560 B1 * 11/2002 LaRue eta!. ............... 707/203
`
`C hase, Jr .
`Hawkins et a!.
`Hawkins et a!.
`Bodnar
`Zhang eta!.
`
`Ulric h eta!.
`Bodnar
`Ng eta!.
`R iggins et a!.
`
`* cited by examiner
`
`U.S. PATENT DOCUMENTS
`
`Bauer eta!.
`
`Veg hte eta!.
`
`Campbell
`
`Mendez eta!.
`
`5,832,489 A
`5,884,323 A
`5,884,325 A
`5,893,119 A
`5,897,640 A
`5,897,642 A *
`5,937,405 A
`5,943,676 A
`5,961,590 A
`5,968,131 A
`5,974,238 A
`6,000,000 A
`6,006,274 A
`6,012,063 A
`6,016,478 A
`6,023,708 A
`6,023,723 A *
`6,044,381 A *
`6,052,735 A
`6,061,790 A
`6,131,096 A
`6,131,116 A
`
`11/1998
`3/1999
`3/1999
`4/1999
`4/1999
`4/1999
`8/1999
`8/1999
`10/1999
`10/1999
`10/1999
`12/1999
`12/1999
`1!2000
`1!2000
`2/2000
`2/2000
`3/2000
`4/2000
`5!2000
`10/2000
`10/2000
`
`Dropbox Ex. 1001
`
`
`
`U.S. Patent
`
`100
`
`Dec. 30, 2003
`
`110
`
`Sheet 1 of 13
`
`US 6,671,757 Bl
`
`Figure1
`Figure 2
`
`Figure 3
`
`System B
`104
`
`104
`
`Figure 5
`
`�
`102�
`1\ I -<:IN
`
`10( r·�·�l
`
`Dropbox Ex. 1001
`
`
`
`U.S. Patent
`
`Dec. 30, 2003
`
`Sheet 2 of 13
`
`US 6,671,757 Bl
`
`300
`System c
`104
`
`�ste�l
`102�1 1 _j <:f'
`
`Figure 6
`� L___f
`
`100
`
`Figure 7
`
`Browser
`
`Dropbox Ex. 1001
`
`
`
`U.S. Patent
`
`Dec. 30, 2003
`
`Sheet 3 of 13
`
`US 6,671,757 Bl
`
`Figure 8
`
`�
`
`Storage Server
`
`��--------------- ;�
`I ---- ____---�
`I
`850
`'"--
`710 ----------�-=-...y.------�-
`�-"-----=-��:= c:�.------�--------
`..
`Device Engl::s � ,1· !: Device Engine/Windows:
`:!
`!i
`,
`, ���
`I!
`: l::
`............ J : t
`1L ............. ..
`i
`866
`·: 864
`:it��-==-�-�-'"-
`·=-.,-4j
`: l;::_-·_:·:·::_-·
`r!:��i!�ll
`·_:·:·::_-::_-·_:]:
`I I
`32
`1 :1
`1 ,
`•
`,II
`1
`1 1·--......_ _____.-/ I I
`t
`i I It
`11 1
`1
`II
`I
`1 1.
`1.
`II
`1:
`1 I
`I'
`I
`828 '
`1
`1 I
`I
`I I Windows Outlook ACT I
`I 1
`1 11 Gold mine', Organi�er, IE: I
`I
`11
`I llr----'----1
`I·
`Palm applications
`I
`I II'
`I 1
`I Web portal applications I
`I I
`1
`I
`'
`I
`II
`I
`I I
`812
`I
`II
`I I
`I
`Ill
`I I
`Maximizer Eudora
`I
`II
`I
`Nets�ape
`ll
`I
`1
`L----;----�s:
`!Lr---� ____ J �(-�---�-----) 838
`I
`816
`11
`I
`I
`I
`T.[� .. 802 ---11\---':s 1\
`Jl:J�
`I
`1111\
`804
`1:-\
`���
`806
`?�
`��e���
`\
`'
`�
`Windows 95198/NT
`
`Device Engine/Web
`
`868
`
`Application data
`826
`
`Application data
`
`II
`
`1il
`
`II
`
`Server
`Client
`MAP I storage
`Cellular database
`
`IMAP interface
`Palm database
`Web database
`XMLdata
`etc.
`
`818
`
`I
`I
`I
`
`I
`
`I
`
`I'
`
`Application data
`
`Application data
`
`822
`
`I
`I
`
`I
`
`Cellular contacts,
`appointments, tasks
`
`__
`
`I
`
`I
`
`824
`
`814
`
`Dropbox Ex. 1001
`
`
`
`Dec. 30, 2003
`
`U.S. Patent
`Figure 9A
`Desktop
`Device Engine
`
`User interface
`
`Sheet 4 of 13
`
`US 6,671,757 Bl
`
`''-----=1
`,
`Storage Server
`850
`'
`
`'r,;:=_=--�
`j
`'---�
`
`Encryption
`
`960
`
`Conflict resolution
`
`Filtering
`
`Field mapping
`
`930 �-"1""--
`---�-
`.------�--=-==----��
`'
`,, _ _____::::a..__ __ -,
`i I
`�.
`�
`i
`I
`��35
`940
`945
`.--------
`'-----��--_j '------,-____j
`'� " \
`!
`�'",, \
`I
`--� \
`II
`' \ �\I
`
`Versioning
`
`915
`
`Events
`925
`
`"'----,,'----,,'---
`1 P��-ous
`',
`1 Univ. Data
`I L_____
`____ L
`1
`;
`""''''"'"" 0.�1
`I
`;
`i
`910
`I
`---------�---------------------------
`
`Application Object
`Store (AOS)
`920
`
`'---
`
`r Application
`
`810
`
`Dropbox Ex. 1001
`
`
`
`U.S. Patent
`
`Dec. 30, 2003
`
`Sheet 5 of 13
`
`US 6,671,757 Bl
`
`Figure 98
`Data Center (Service Provider)
`
`1080
`
`Palm
`
`Dropbox Ex. 1001
`
`
`
`U.S. Patent
`
`Dec. 30, 2003
`
`Sheet 6 of 13
`
`US 6,671,757 Bl
`
`Device Engine/Windows
`Figure 10 �i
`i Storage Server i
`: �'
`r
`sso
`----------------------
`--------------,----------------------�
`'
`Encryption
`950 t
`Compression
`/ / )I
`970
`
`Dropbox Ex. 1001
`
`
`
`U.S. Patent
`
`Dec. 30, 2003
`
`Sheet 7 of 13
`
`US 6,671,757 Bl
`
`Figure 11
`
`Aplication Object
`
`Connector
`1110
`
`Dropbox Ex. 1001
`
`
`
`U.S. Patent
`
`Dec. 30, 2003
`
`Sheet 8 of 13
`
`US 6,671,757 Bl
`
`Figure 12
`
`Object Hierarchy
`
`Network
`1210
`Settings
`Devices
`Deltas
`
`I
`
`1
`
`Network information
`/L peruser
`Web
`I Windows
`!/ /
`l Palm
`/,/!1
`Phone
`�Files & Folders
`Contacts
`/
`1
`/'
`1
`Macintosh
`Calendar
`WindowsCE
`Tasks
`Linux
`Clevice
`Notes
`Word processing ,-----/
`1220
`Favorites
`I Application
`Spreadsheets
`I Settings
`11 Presentations
`1230
`I
`L_ Databases
`\
`1
`Folder
`1240
`\\ \ I ��::.
`Settings
`Items Deltas
`\\
`\\
`//
`I
`\
`\
`\ \
`\
`\ \
`I \\ I
`\\
`I
`\\ I
`Type
`Signature
`Add Copy
`Delete
`End
`
`,
`
`1v
`
`!Meta-data deltas
`epresented as a
`ary delta from the
`prev1ous versJon
`
`File Folder
`Contact
`Calendar
`Task Note
`Favorite
`Word processing
`Presentation
`Spreadsheet
`Database
`Item Field
`1260
`Settings
`Deltas
`/
`Binary delta or
`L_ Record delta
`
`��lders and items
`JFolders contain
`
`Settings
`Item fields
`Deltas
`
`Type
`Signature
`Add Copy Delete
`End
`
`Dropbox Ex. 1001
`
`
`
`Dec. 30, 2003
`
`Sheet 9 of 13
`
`US 6,671,757 Bl
`
`U.S. Patent
`Figure 13
`
`Email Item
`
`1320
`
`Outlook Version
`
`Read
`S1ze
`Subject
`
`1330
`
`rT�<O� l
`
`i
`
`Priority
`
`Sensitivity
`Size
`start Date
`Status
`Subject
`Team Task
`To
`Total Work
`
`-------
`Account
`%Complete
`Attachment
`Actual Work
`Bee
`Assigned
`Created
`Billing
`Attachment
`Do Not
`Information
`Billing
`,
`AutoArch ive
`Categories
`Information
`Icon
`Cc
`Categories
`In Folder
`Changed By
`Com pany
`Message Class
`Conversation
`Complete
`Modified
`Created
`Contacts
`Outlook Internal Defer Until
`Conversation
`Version
`Do Not
`Created
`AutoArchive
`Date Completed
`Download state
`Do Not
`Due By
`AutoArchive
`Expires
`Due Date
`Flag Status
`leon
`Follow Up Flag
`In Folder
`From
`Message Class
`Have Replies
`Mileage
`Sent To
`Modified
`Icon
`Outlook Internal
`Attendees
`Importance
`Version
`Organizer
`In Folder
`Outlook Version
`Junk E-mail
`Owner
`Type
`Priority
`Message Class
`Read
`Mileage
`Recurring
`Modified
`Reminder
`Outlook Internal
`Reminder
`Version
`Override Defau It
`Outlook Version
`Reminder Sound
`Read
`Remtnder Sound
`Received
`File
`Remote Status
`Reminder Time
`Retrieval T1me
`Request Status
`Sens1t1v1ty
`Requested By
`Sent
`Role
`Size
`Schedule+
`Subject
`To
`Tracking Status
`
`1340
`Information
`Created
`AutoArch1ve
`Duration
`Icon
`Importance
`1370
`Opttonal
`Outlook Internal Version
`
`Calendar
`Item
`
`All Day Event
`Attachment
`Billing
`
`Categories
`Conversabon
`
`Do Not
`
`End
`
`In Folder
`Location
`Meeting Status
`Message Class
`Mileage
`Modified
`
`Version
`Outlook Version
`Read
`Recurrence
`Recurrence
`Pattern
`Recurrence
`Range End
`Recurrence
`Range Start
`Recurring
`
`Remmd
`
`Beforehand
`Reminder
`Reminder
`Overnde Default
`Reminder Sound
`Reminder Sound
`File
`Reqwred
`Attendees
`Resources
`Response
`Requested
`Sens1tivrty
`Show Time As
`S1ze
`Slart
`Subject
`
`Bookmark
`Item
`
`Name
`1350
`Version
`
`URL
`Created
`Modified
`Icon
`In Folder
`
`SiZe
`
`Channel
`Item
`
`Name
`URL
`Created
`Modified
`Icon
`ln Folder
`
`Size
`
`File lteml
`Na�
`1
`136o
`I
`Version
`1
`
`Type
`
`Size
`Created
`Modified
`Accessed
`Permissions
`Parent
`ID
`Attributes
`Icon
`Shortcut key
`
`Start in
`
`Run type
`Sharing
`
`Folder Item
`
`1380
`
`Name
`Type
`Version
`Size
`Created
`Modified
`Accessed
`Perm1ss1ons
`Parent
`ID
`Attributes
`Icon
`Shanng
`
`Contact Item
`
`Accourr.
`Addrf.lssS919Cled
`
`AsSI!IIaf'1fs�emf.l
`Ais••h•nfsPhon"
`Allachmeti
`
`Blimglntormellcn
`B•rtnoav
`
`SUSIIleSSAddrMS
`BuslnessAddrEOssC.Iy
`8LJSir\EISSAdai"EISS
`
`Couruy
`
`Busmess Ado:htss Post111
`
`BusuwssAaoressStme
`
`8LISII19SSAdOresSSI:r9111
`8JS,f1QSSFlll<
`6u<J•nf.lssHom&P!!19e
`
`Bustn&ss�on&
`
`Ce.lback
`earPhone
`
`City
`Compsny
`Company M�1n Phor'le
`
`1390
`Ad drf.lssSf.lfector
`ArF"'J119'50r)l
`8LJS111f.ISSAddressPOBo-.:
`Bus1nessPhone 2
`C!!leQOil�S
`Chk!rer�
`Computer Network Mime
`Cowl'llr,o
`c�!!l��
`DtopiYirrwi
`E-ma112
`Flag Statu!;
`G�rrl'l"''!ftiDNuiT'�'
`Homo Ad dre�s Cit•y
`Homft Address Courtr�
`Home Address Postal
`HOm&AddrossStriiQt
`HomoFlll<
`Homa P�<:lfla
`'"�
`lnFoldar
`
`E-ma�l
`
`E-mllll3
`
`E-meiiSf.llf.lcted
`
`r'"lleAi
`
`F1rstNeme
`
`FoiiOWUpFklg
`FTP S11e
`
`Gencer
`
`HomaAcorass
`
`NomaAddressPOBo>c
`
`Horr,IIMdros>Stm&
`
`HornePhO"'l2
`
`hi..,me!Free/Susy
`Address
`ISD'J
`
`Jot> Title
`LE!nguag&
`Last Name
`MetOn�;�Address
`Ma1�n9 Address lnd•clllor
`
`Manag9t'$Namo
`Mlo:lol&Nflll'll:l
`Me!is ege Ciass
`
`Ml&e<;Je
`MootlePhone
`Modified
`
`Of!IC&locali()!"
`
`Org&rHabonaiiDNu:nl>&r
`O!herAddress
`Olt1arAddrvos01y
`Othei'"Address Countr�
`Ott1erAddrassPOBcx
`
`otllerAcdrE!ssPostal
`
`Other Address strae�
`Phot1& 1 So<OCIOr
`
`Other Fa-.:
`Outlooklntemal'vEor'SIOI"
`QLJtjookVersrol'l
`P&!)!lr
`Persorn!IHomeP11ge
`Phone1 S919CIII!l
`
`PMne2SeiE!cled
`Ptlon�1S�Ie�r
`
`Pho�e 3 Sa�ecror
`
`Phooe4S<nactGd
`
`;:onone6SIIIector
`
`Phone7 Sele¢ted
`
`onone 7 S�leclor
`Ramnderlop�c
`s�;!'llt)l
`S&ndPIIInl&x!Onty
`T•�
`TTY!TDD <>none
`ll5erFiek!2
`ZIP!PostBICodo
`
`Pr,onaBS€o•acror
`POSO•
`P�l"18ry Prone
`
`Pnvam
`Proress1on
`Roo1oPhone
`R��a;,�&�y
`
`Read
`
`RemnderT1me
`
`Spouse
`Slate
`SUI>f'!'Ct
`Surf•�
`"'"
`UserF1ok11
`us�F•ak13
`Us&rF•eld4
`
`We0P11g11
`
`Dropbox Ex. 1001
`
`
`
`U.S. Patent
`
`Dec. 30, 2003
`
`Sheet 10 of 13
`
`US 6,671,757 Bl
`
`Figure 14
`
`I
`
`Any
`Device
`Engine
`
`HTTP
`HTTP FTP
`
`FTP
`
`server
`
`Dropbox Ex. 1001
`
`
`
`U.S. Patent
`
`Dec. 30, 2003
`
`Sheet 11 of 13
`
`US 6,671,757 Bl
`
`Pull Synchronization
`
`confirm
`
`,
`
`1425
`
`1
`
`newverslon
`
`'
`
`1445
`
`)
`
`Figure 15
`//�
`/
`�
`""
`�\
`connect /�
`�------........ "-...
`\ user via MS )
`I
`( A���enticate\ authenticate \
`\
`ss
`I
`(Acquire MS \ �"
`'-_ ___./
`1415 ) �_/
`lack
`1
`\
`1
`J
`\ 1420
`I
`\
`/� -
`.
`)
`//"'
`/
`I
`acquire \
`1
`/ '"�/
`�
`\
`'
`\
`// (.��
`; /
`I
`r- _.,/
`\
`/� \��
`//�'�/ , .•. � //
`------�
`/
`,///
`/ /
`��
`((�)���version
`�
`-------
`\'gl ..__________
`-
`--
`lock
`(
`\1440 ) � --__/
`-�·
`I
`continue
`1\
`(Disconnect\
`from SS
`.. I �a delta
`\".___/
`..----------...,
`\\
`/
`\
`(Resolve\ � �
`\
`/' Apply filters and
`\ 1450
`( Get delta )
`skip
`conflicts ) -
`'--- mappings
`\
`/'
`delta
`/ �/
`------�---- ·�
`/
`apply / //
`r��) �
`�
`I
`\
`/�
`// //
`\�______/ ;��
`I
`t
`\
`I
`"":::--�, //
`\, ,
`. /
`.�ntinue
`II
`/
`_/con!inu�---..
`\
`II
`�
`Y..
`�
`/¢ontlnue
`I
`qontinue
`''-...'-... / ���
`/
`.
`applicati��elta ��network�: �
`lj
`item d�lta
`)</
`l
`\\,
`)"......._
`I"�
`/ \
`I
`·,."'
`I -�
`\
`/
`"-..
`��
`/
`/�·,
`/
`I Update \
`',
`( application \
`\ device
`'
`J
`Update
`( Update item \
`\
`I
`�....
`1470 ) �
`"',�_/ /
`\ 1460 J
`.... .........__ _/_/
`
`1455
`
`1435
`
`�
`
`1465
`
`....
`
`Dropbox Ex. 1001
`
`
`
`U.S. Patent
`
`Dec. 30, 2003
`
`Sheet 12 of 13
`
`US 6,671,757 Bl
`
`1510
`
`event
`
`cancel
`
`Push Synchronization
`
`1525
`
`continue/__.-
`
`(
`
`.
`
`change -..
`
`, application
`delta
`)
`
`continue
`
`Figure 16
`Crea�tj'
`/ Create \
`/�-"-
`//�""\
`\
`I �__.
`'--"�
`device delta
`( network delta )
`, /
`"
`J
`Confirm \
`/
`1520 J
`- netw¢k chanM d.Qvlce change /
`/
`/ contrn�e /
`"'-----/
`(-----� -�
`confirm
`/ /
`1
`Sync 1
`_/
`/�
`/
`(. Create \
`\
`_./"'
`( Check deltas '. �-----� application
`_/'
`.______/
`\
`/
`"
`-
`'i
`/
`/�-�--- /
`\
`.
`\
`1515
`"-----//
`\
`\�/
`/_--------'"'---
`delta !
`
`( Create item\
`1535
`
`I
`\
`'-�
`
`;
`
`!0
`I from SS I
`\0
`I
`4
`/'--------
`1
`.
`\
`\
`'
`1
`\
`contmue , Release MS \
`�
`�\��/
`�continue
`1 Upload \
`'-,"'"''-------- ��'-.
`�
`\
`-------..
`!
`�� continue � '-..__
`/ �
`r l d• � �
`___ __..
`�
`/
`/
`
`\.
`. �- '-. ��
`p oa nem \
`/
`�
`",
`\ d�vice u.rlta ·-._
`---
`,.
`1
`, "'
`cr;>n lnue ·�
`'"
`delta -
`'-._
`\
`·,
`item de�
`continue 1
`·--------�,
`··-,..___ network delta
`:
`./
`._
`.,.
`1
`,
`}
`/
`/1lpplicatirelta
`-�·
`\\
`��
`\�
`!/
`device \
`1565 /1
`delta i
`\
`�
`delta 1
`��-
`I
`\
`\�/
`
`continue
`
`lock
`
`-----------"'
`failure ��------,
`1 user via MS 1 -� -..
`J
`.,
`/ authenicate
`�____/
`��
`I, Acquire MS \
`\
`. lock I
`1550 J
`"--�'
`
`connect"
`
`/Authenticate\
`\
`1545
`
`1575
`
`deltas )
`1 555
`!
`
`"-..continue
`
`�
`
`( application
`
`1
`•
`( Upload\,
`
`delta) �
`( network \
`�\
`\
`
`Dropbox Ex. 1001
`
`
`
`U.S. Patent
`
`Dec. 30, 2003
`
`Sheet 13 of 13
`
`US 6,671,757 Bl
`
`Figwre
`17
`
`Info __ _
`
`Forgot password
`
`Email pas��
`"-._
`1
`I
`
`Lookup password
`
`Lookup user
`
`�! Provider
`1752
`
`Database
`
`-------, I I I I I I I I I I I I I I I I I I I I I I I I I I I I I
`
`-------------------------�
`
`Dropbox Ex. 1001
`
`
`
`US 6,671,757 Bl
`
`2
`Microsoft ' s Outlook® computer-based client and
`Microsoft's Windows CE "Pocket Outlook" application, is
`possible. Nevertheless, in both cases, synchronization
`occurs through direct connection between a personal corn-
`
`s puter and the personal computing device. While this con
`
`1
`DATA TRANSFER AND SYNCHRONIZATION
`SYSTEM
`
`LIMITED COPYRIGHT WAIVER
`
`A portion of the disclosure of this patent document
`contains material to which the claim of copyright protection
`is made. The copyright owner has no objection to the
`facsimile reproduction by any person of the patent document
`or the patent disclosure, as it appears in the U.S. Patent and
`Trademark Office file or records, but reserves all other rights
`whatsoever
`
`BACKGROUND OF THE INVENTION
`
`nection is generally via a cable directly connecting, for
`example, Palm® device in a cradle to the personal computer,
`the connection may be wireless as well.
`One component of these synchronization systems is that
`10 the synchronization process must be able to delineate
`between when changes are made to specific databases and
`must make a decision about whether to replace the changed
`field. Normally, this is measured by a change in one
`database, and no-change in a second database. In some
`15 cases, both databases will have changed between syncs. In
`this case, the sync operation must determine which of the
`two changes which has been made is to "win" and replace
`the other during the sync. Generally, this determinant of
`whether a conflict exists allows some means for letting the
`20 user resolve the conflict.
`In a technical sense, synchronization in this manner is
`generally accomplished by the copying of full records
`between systems. At some level, a user is generally required
`to map data fields from one application to another and
`25 specify which data fields are assigned to which correspond
`ing field in a different device. Less mapping is required
`where developers more robustly support various platforms
`of applications.
`In many instances, the data to be synchronized is gener-
`ally in the form of text data such as records of addresses,
`contact information, calendar information, notes and other
`types of contact information. In certain instances, data to be
`synchronized will be binary format of executable files or
`word processor-specific documents. In many cases where
`document synchronization is required, the synchronization
`routine simply determines whether or not the documents in
`question have changed, and uses a time-based representation
`to determine which of the two files is newer, and replaces the
`older file with the newer file to achieve synchronization, as
`long as the older of the two files was in fact not changed.
`This is the model used in the familiar "Briefcase" function
`in Microsoft Windows-based systems. If both files have
`changed, then the synchronization routine presents the
`option of conflict resolution to the user.
`Such synchronization schemes are generally relatively
`inefficient since they require full band-width of the docu
`ment or binary file to be transferred via the synchronization
`link. In addition, at some level the synchronization programs
`require interaction by the user to map certain fields between
`different programs.
`One of the difficulties in providing synchronization
`between different computing devices is that the applications
`and platforms are somewhat diverse.
`Nevertheless, all synchronization programs generally
`require certain functions in order to be viable for widespread
`usage. In particular, synchronization programs must work
`with popular applications on various platforms. Sync appli
`cations must allow for conflicts resolution when changes are
`60 made to the same information on different devices between
`syncing events. They must provide synchronization for all
`types of formats of data, whether it be text data in the form
`of contacts, e-mails, calendar information, memos or other
`documents, or binary data in the form of documents or
`65 programs in particular types of formats.
`In a broader sense, applications which efficiently synchro
`nize data between disparate types of devices can provide
`
`1. Field of the Invention
`The invention relates to the transference of data between
`two systems independent of the form in which the data is
`kept on the respective systems, and in particular to providing
`an efficient means of communicating data between systems
`and devices.
`2. Description of the Related Art
`The growth of computing-related devices has not been
`limited to personal computers or work stations. The number
`of personal computing devices has grown substantially in
`both type and format. Small, hand-held computers carry a
`multitude of contact, personal, document, and other infor
`mation and are sophisticated enough to allow a user to fax,
`send e-mails, and communicate in other ways wirelessly.
`Even advanced cellular phones carry enough memory and
`processing power to store contact information, surf the web,
`and provide text messaging. Along with the growth in the
`sophistication of these devices, the need to transfer infor
`mation between them has grown significantly as well.
`With a multitude of different device types on the market,
`keeping information between the different devices synchro
`nized has become increasingly problematic. For example, if
`an individual keeps a calendar of information on a personal
`computer in his or her office using a particular personal 40
`information manager application, the individual would gen
`erally like to have the same information available in a
`cellular phone, hand-held organizer, and perhaps a home
`personal computer. The individual may additionally have a
`notebook computer which requires synchronizing file data 45
`such as presentations or working documents between the
`notebook and the office computer.
`Until now, synchronization between both documents and
`personal information managers has occurred through direct
`
`30
`
`35
`
`connection between the devices, and generally directly so
`
`between applications such as a personal information man
`ager in one device and a personal information manager in
`another device or using an intermediary sync-mapping pro
`gram.
`
`One example of this is the prevalent use of the 3Com ss
`
`Palm® OS-based organizer, such as the 3Com Palm® series
`of computing devices, which uses its own calendaring
`system, yet lets users synchronize the data therein with a
`variety of different personal information manager software
`
`packages, such as Symantec's ACT! ™, Microsoft's
`
`Outlook®, and other systems. In this example, an interme
`diary synchronization program such as Puma Technology,
`Inc.'s Intellisync® is required. Intellisync® is an application
`program which runs on both the hand-held device and the
`computer which stores the information data and maps data
`systems between non-uniform data records. In other cases,
`direct transfer between applications such as transfer between
`
`Dropbox Ex. 1001
`
`
`
`US 6,671,757 Bl
`
`3
`advantages in applications beyond synchronizing individual,
`personal information between, for example, a personal infor
`mation manager hardware device such as a Palm® comput
`ing device, and a personal computer. The same objectives
`which are prevalent in developing data transfer between
`personal information management (PIM) devices and desk
`top systems lend themselves to furthering applications
`requiring data transfer between other types of devices, on
`differing platforms. These objectives include speed, low
`bandwidth, accuracy, and platform independence.
`For example, current e-mail systems use a system which
`is somewhat akin to the synchronization methods used for
`disparate devices in that an entire message or file is trans
`ferred as a whole between different systems. When a user
`replies to an e-mail, generally the entire text of the original
`message is returned to the sender, who now has two copies
`of the e-mail text he/she originally sent out. The same is true
`if an e-mail attachment is modified and returned. All of the
`text which is the same between both systems is essentially
`duplicated on the originator's system.
`
`SUMMARY OF THE INVENTION
`
`4
`interfaces with data on the system on which it resides to
`update said data on said system on which it resides with said
`difference information, and interfaces with data on said
`system on which it resides to provide difference data infor-
`5 mation from the system on which it resides to the data store.
`In a further embodiment, the invention comprises a sys
`tem including a first device, a data store and a second device.
`The first device includes at least a first data file and first
`differencing code having an input and an output coupled to
`10 a network to receive first device data change transactions,
`based on said at least one data file, from and provide change
`transactions to, said network. The data store is coupled to the
`network and has at least one data structure coupled to store
`change transactions. The second device includes at least a
`second data file and second differencing code having an
`15 input and an output coupled to the network to receive said
`first device data change transactions, and provide second
`change transactions based on said at least second data file to
`said data store.
`In a further embodiment, the invention comprises a
`20 method for synchronizing at least a first and a second
`resident on a first and a second systems, respectively,
`coupled to the Internet, respectively. The method includes
`the steps of: determining difference data resulting from
`changes to the first file on the first system; transmitting the
`25 difference data to a server via the Internet; querying the
`server from a second system to determine whether difference
`data exists for files on the second system; retrieving the
`difference data to the second system; and updating the
`second file on the second system with the difference data.
`In a still further aspect, the invention comprises an
`Internet synchronization system. The system includes a
`storage server having an Internet connection; a first device
`coupled to the Internet and including a device sync engine;
`and a second device coupled to the Internet and including a
`35 second device sync engine. A management server may
`further be provided. In this aspect, each device sync engine
`may comprise an application object, an application object
`store, and a delta engine.
`
`The invention comprises a system and method for
`efficiently, quickly and easily synchronizing devices which
`can couple to the Internet, or any network. Synchronization
`of the devices can occur at independent times using an
`intervening network based storage server to store changes to
`data for all the different devices in the system in a data
`independent format, and provide the data on request to the
`
`device requesting a sync at the time requested. Hence, two 30
`
`devices need not be coupled to each other to perform a sync.
`In one aspect the invention comprises a system for
`synchronizing data between a first system and a second
`system. The system includes a first sync engine on the first
`system interfacing with data on the first system to provide
`difference information. A data store is coupled to network
`and in communication with the first and second systems. A
`second sync engine is provided on the second system
`coupled to receive the difference information from the data
`
`store via the network, and interfacing with data on the 40
`
`second system to update said data on the second system with
`said difference information.
`Difference information is transmitted to the data store by
`the first sync engine and received from the data store from 45
`the second sync engine. The difference information is trans
`mitted to the data store at a first point in time, and received
`from the data store at a second, subsequent point in time. In
`a further aspect, the second sync engine can interface with
`said data on the second system to provide second difference 50
`information to the data store and the first sync engine may
`thereafter couple to the data store to retrieve the second
`difference information and interface with the data on the first
`system to update said data on the first system with said
`second difference information.
`The system may include a management server coupled to
`the network and in communication with the first sync
`engine, the second sync engine and the data store.
`In a further aspect, the system may include a first device,
`
`coupled to the first system via the network, providing said 60
`
`data to the first system. In such instance, the first system may
`be a sync server.
`The system may include a plurality of sync engines on a
`respective plurality of systems, each of said plurality of
`engines being coupled to receive difference information 65
`from each of said first, second and plurality of sync engines
`from the data store via the network. Each said engine
`
`55
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`The invention will be described with respect to the
`particular embodiments thereof. Other objects, features, and
`advantages of the invention will become apparent with
`reference to the specification and drawings in which:
`FIGS. 1-7 are block diagrams of various configurations of
`the system of the present invention utilizing the differencing
`routines of the present invention.
`FIG. 8 is an overview of one embodiment of the system
`architecture in accordance with the present invention.
`FIG. 9A is a block diagram of the desktop device engine
`of the present invention.
`FIG. 9B is a block diagram of the configuration of server
`side device engines utilized in accordance with the present
`invention.
`FIG. 10 is a block diagram of one embodiment of the
`device engine in an operating system such as Windows.
`FIG. 11 is a block diagram of an application object
`incorporated into the device engine of the present invention.
`FIG. 12 is a diagram of storage object hierarchy of a
`universal data format utilized with the system of the present
`invention.
`FIG. 13 is a listing of exemplary item objects used in
`accordance with the routines of the present invention.
`FIG. 14 is a block diagram of a management storage
`server architecture for used in the system of the present
`invention.
`
`Dropbox Ex. 1001
`
`
`
`US 6,671,757 Bl
`
`6
`includes a functional block 102 representing the differencing
`receiver in accordance with the present invention.
`The differencing transmitter 100, upon receipt of a control
`signal enabling operation of the transmitter, examines a
`5 specified data structure of information which is to be trans
`mitted to system B. Differencing transmitter 100 extracts
`such information from System A and converts the informa
`tion extracted into difference information ll.. Difference
`information ll. comprises only the changes to System B's
`10 data which have occurred on System B and instructions for
`implementing those changes. Hence, if the data to be trans
`ferred is a change to a file which exists on system B,
`difference information ll. comprises only the differences in
`such file and where such differences occur. If the data does
`not exist at all on System B, the difference information ll.
`will be the entire file. Difference information ll. received by
`differencing receiver 102 at System B is reconstructed at
`System B, and the changes reflected therein are updated on
`System B.
`For example, if System A and System B are two comput-
`ers and an update for certain binary files on System A is
`required, the differencing t