throbber
DROPBOX EX. 1001
`
`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
`Email
`/'
`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
`Email
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket