throbber
(12) United States Patent
`(10) Patent N0.:
`US 6,832,373 B2
`O’Neill
`(45) Date of Patent:
`Dec. 14, 2004
`
`U8006832373B2
`
`(54)
`
`(75)
`
`SYSTEM AND METHOD FOR UPDATING
`AND DISTRIBUTING INFORMATION
`
`Inventor:
`
`Patrick J. O’Neill, Dana Point, CA
`(US)
`
`(73)
`
`Assignee:
`
`Bitfone Corporation, Laguna Nigel,
`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)
`
`(22)
`
`(65)
`
`App]. N0.: 10/404,601
`Filed:
`
`Apr. 1, 2003
`Prior Publication Data
`
`US 2004/0215755 A1 Oct. 28, 2004
`
`Related U.S. Application Data
`
`( 63)
`
`Continuation of application No. PCT/U801/44034, filed on
`Nov. 19, 2001.
`
`(51)
`(52)
`(58)
`
`(56)
`
`Int. Cl.7 .................................................. G06F 9/44
`U.S. Cl.
`.......................... 717/171; 714/807; 714/25
`Field of Search ................................. 717/171, 170;
`714/25, 807
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,084,816
`5,261,055
`5,442,771
`5,479,637
`5,579,522
`5.596,738
`5,598,534
`5,608,910
`5,623,604
`5,666,293
`5,752,039
`5,778,440
`
`5.790974>>>>>>>>>>>>>
`
`*
`
`’ 1’1992
`11/1993
`8/1995
`12/1995
`11/1996
`1/1997
`1/1997
`3/1997
`4/1997
`9/1997
`5/1998
`7/1998
`8/1998
`
`Boese et al.
`................... 714/4
`
`Moran et al.
`395/275
`Filepp et a1.
`......
`.. 395/650
`
`.. 395/430
`Lisimaque et al.
`.
`Christeson et a1.
`.. 395/652
`
`395/430
`Pope .............
`. 395/20009
`Haas .......
`Shimakura ..
`395/670
`Russell et a1.
`395/2001
`
`.
`.. 395/2005
`MetA et a].
`
`'l'animura
`395/712
`Yiu et a].
`711/154
`
`................. 701/204
`Tognazzini
`
`
`
`.5611
`
`sum
`
`3/1999 Bealkowski et al.
`........ 395/652
`5,878,256 A
`.
`707/203
`9/1999 Tainori et al.
`5,960,445 A
`
`5,968,182 A * 10/1999 Chen et a].
`714/5
`..
`711/103
`6,009,497 A
`12/1999 Wells et a1.
`
`3/2000 Brown, III et al.
`711/103
`6,038,636 A
`
`395/701
`6,064,814 A
`5/2000 Capriles et al.
`
`(List continued on next page.)
`FOREIGN PATENT DOCUMENTS
`
`CA
`JP
`KR
`KR
`
`3/2000
`2339923
`8/1996
`8202626
`5/2000
`2002-0034228
`11/2001
`2001-0100328
`OTHER PURI .ICATIONS
`
`Computer Dictionary Micrsoft Press Third Edition, pp. 88,
`190, 1997*
`“Focus on OpenView A guide to Hewlett—Packard’s Net-
`work and Systems Management Platform”, Nathan J. Muller
`pp. 1—291, published 1995*
`(List continued on next page.)
`Primary Examiner—Todd Ingberg
`(74) Attorney, Agent, or Firm—McAndrews, Held &
`Malloy, Ltd.
`
`(57)
`
`ABSTRACT
`
`The present invention discloses efficient devices, systems,
`and methods for updating digital information sequences that
`are comprised by software (110a), devices (104C), and data
`(110C). In addition, these digital information sequences may
`be stored and used in various forms,
`including but not
`limited to files, memory locations, and/or embedded storage
`locations. The disclosed invention is thus suitable for updat-
`ing many types of digital information sequences and in the
`context of updating software comprised of multiple files.
`Furthermore, the devices, systems, and methods described
`herein provide a developer skilled in the art with an
`improved ability to generate update information as needed
`and, additionally, allow users to proceed through a simpli-
`fied update path, which is not error-prone, and may be
`performed more quickly than through the use of existing
`technologies.
`
`55 Claims, 16 Drawing Sheets
`
`R] MD}
`/\_,15M
`
`sErWERE"! my.
`7: asewum 2r wens
`mm:
`ULCU‘AWFCHEDF
`
`mammx
`“9“"
`cunszu' aw
`
`\
`LAsr BANKw
`>
`/<mazmmx\
`mm: >ACKAGE1/
`\\ //
`V55
`
` cmw BANKo: Memom
`
`vEs
`//nuzscmz»>\
`< nmmcwrcu />—>z
`\prmri ”0665/
`cm /\ /
`NO
`cumwBAH/<18 szr
`
`1514
`
`saunas; 9mm
`
`Apple Ex. 1011, p. 1
`Apple Ex. 1011, p. 1
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`

`

`US 6,832,373 132
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`>>>>>>>>>>>
`
`6,073,206
`6,073,214
`6,088,759
`6,105,063
`6,112,024
`6,112,197
`6,126,327
`6.128,695
`6,138,249
`6,157,559
`6,163,274
`6,198,946
`6,279,1 53
`6,311,322
`6.438585
`6,668,336
`6,725,392
`2001/0029178
`2001/0047363
`2001/0048728
`2002/0078209
`
`6/2000
`6/2000
`7/2000
`8/2000
`8/2000
`8/2000
`1 0/2000
`1 0/2000
`1 0/2000
`1 2/2000
`1 2/2000
`3/200 1
`8/2()( l 1
`1 0/200 1
`8/2002
`1 2/2003
`4/2004
`1 0/200 1
`1 1/200 1
`1 2/200 1
`6/2002
`
`
`Piwonka et a1.
`..... 711/102
`
`Fawcett
`................... 711/133
`
`Hasbun ct a1.
`.
`..... 711/103
`.. 709/223
`Hayes, Jr.
`..
`
`Almond et al.
`..
`..... 395/703
`Chatterjee et al.
`............. 707/3
`Bi et al.
`........
`395/20051
`
`........ 711/103
`Estakhri et al.
`.......................... 714/25
`Nolet
`Yoo
`365/52
`
`Lindgren ............... 340/825.44
`
`..
`.. 455/561
`Shin el al.
`.717/11
`..
`Iii et al.
`
`Ikeda et al.
`.
`.. 717/1
`
`
`Mousseau et a .
`709/206
`.
`Lassei
`.......
`
`. 7 1 4/5
`. 71 4/6
`.
`Frey et a].
`.. 455/419
`Criss et a].
`
`707/104.1
`Peng
`
`.. 375/354
`Peng
`Pcng .......................... 709/227
`
`2002/0116261 A1
`705/14
`8/2002 Moskowitz ct a1.
`2002/0131404 A1
`
`9/2002 Mehta et al. .. 370/352
`.. 700/234
`2002/0152005 A1
`10/2002 Bagnordi
`.. 709/217
`
`2002/0156863 A1
`10/2002 I’eng
`
`10/2002 Anton, Jr.
`.....
`.. 717/178
`2002/0157090 A1
`2/2003 Rajaram et a].
`............ 717/173
`2003/0033599 A1
`2/2003 Ilannigan et a1,
`........... 707/500
`2003/0037075 A1
`3/2003 Nakatani
`.................... 709/245
`2003/0061384 A1
`OTHER PUBLICATIONS
`
`“Client Server computing in mobile environments", J. Jing
`et :11, ACM pp. 1177159, 1999.1
`“ESW4zcnhanccd scheme for WW computing in wireless
`communication environments”, S. IIadjesthmiades et al,
`
`ACM pp. 24—35, 1999*
`
`“Introducing Quality—Of—Service and tra
`
`‘ic classes into
`wireless modile n tworks”, J. Sevanto et a1, ACM, pp. 21—29,
`1998*
`“Any Network, Any Terminal, anywhere”, A. Fasbender et
`31, IEEE, pp. 22—30, Apr. 1999*
`* Cited by examiner
`
`Apple Ex. 1011, p. 2
`Apple Ex. 1011, p. 2
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`

`

`US. Patent
`
`1
`
`t
`
`2B373,238,6SU
`
`
`
`
`
`
`
`2:.43:527.W_2{14amS
`Iuefl.LflaofiscmE,..m.wv
`
`8sz.85
`
`w229D<_.u
`
`
`
`
`
`
`
`€25Bus—BE%22—0AmcgmuEzEEoo%83mmgums.codmhm>.BvoE.565)“BE
`:25£059.253pm3393328392:5pmmmflwzimam—93>._o«MEREmm35.5ch1ram:
`
`
`
`
`
`
`
`M303%9.92m:1linmonmfiuunfiTco_.m.m>ucoomw
`
`
`
`m1o:
`
`Apple Ex. 1011, p. 3
`Apple Ex. 1011, p. 3
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`
`

`

`U. S. Patent
`
`Dec. 14, 2004
`
`Sheet 2 0f 16
`
`US 6,832,373 B2
`
`A838
`
`A
`
`
`
`322:5$225,1.0EEEE
`
`
`
`82252:.£52
`
`Sung:
`
`
`
`
`
`29.0wcozmoEzEEoo3me
`
`
`
`congrats>552
`
`Fix:{3
`
`:
`
`
`
`
`
`Em=omcozmoEzEEoo..
`
`
`
`
`.Aucooow#8S2”.233..m.$:98mm53£033:Amub£85.#2.:6.52%.,F.our
`
`
`
`quUmScmE:mdv
`
`
`
`:o_m.m>.EuoE
`
`92:5
`
`
`
`mmmxomn.Baum:
`
`mo:
`
`-Now
`
`ENE:
`
`83550
`
`
`
`
`
`
`
`8:60flaw—2>92
`
`szo
`
`mo_>mo
`
`mcozmoEaEEoo
`
`.2me
`
`on:an:
`
`no:
`
`85552:.£52
`
`
`
`mmmxomaEmma:
`
`co:
`
`
`
`wmmxommSana:
`
`
`
`wmmxoma28a:
`
`Apple Ex. 1011, p. 4
`Apple Ex. 1011, p. 4
` Apple v. Fintiv
`Apple v. Fintiv
`IPR2020-00019
`IPR2020-00019
`
`
`
`
`
`
`
`
`
`

`

`US. Patent
`
`40024a1ceD
`
`230
`
`2B373,238,6SU
`
`3teehS
`
`m
`
`0Em=0
`
`fmo_>mo
`
`220
`
`magma
`
`moSwQ
`
`
`
`mm:<BammEwan: 22m,
`
`mm—
`
`/‘_m2
`
`22:5
`
`EmEmmmcmE
`
`Emcanoo
`
`Emma:
`
`
`
`
`
`Fm?F
`
`.09
`
`29:3
`
`2mg:
`
`.Bfimcmo
`
`
`
`Apple Ex. 1011, p. 5
`Apple Ex. 1011, p. 5
` Apple v. Fintiv
`Apple v. Fintiv
`IPR2020-00019
`IPR2020-00019
`
`
`
`
`

`

`US. Patent
`
`Dec. 14, 2004
`
`Sheet 4 0f 16
`
`US 6,832,373 132
`
`
`
`
`
`
`
`
`
`
`:26HxrMj
` c21111]]a_oH23%/
`|K33,,
`
`
` as_MamT1L:26[a2%:/_,.,1,mII(x£2mJI,W.,ME:
`
`11\fl\$3a:WE38587m,
`1.1H,EoEmmmcmE,,N,
`:2632m23%
`«250I![17_
`3:60;,LIL,,
`:26WFow:W,
`3:8,lrN283W,
`
`m_.:L,38:3rlL‘3”an,3111,5323
`
`
`
`
`75.5114/111mll<mum—E:/_1J<\7/v?«I”11:;v9253
`E263411m1NE
`
`
`
`1R:m/mr\88mP132F13?m
` (mL\
`
`
` 1mm?>5252mmEgg:
`
`
`
`
`[41
`
`8:60
`
`
`
`
`
`:26
`
`8:60
`
`
`
`
`
`
`
`vu_>vn_#
`
`E25
`
`838
`
`
`
`
`
`
`
`magma
`LwEww
`
`
`
`
`
`
`
`
`n:mama
`
`Apple Ex. 1011, p. 6
`Apple Ex. 1011, p. 6
` Apple v. Fintiv
`Apple v. Fintiv
`IPR2020-00019
`IPR2020-00019
`
`
`
`

`

`US. Patent
`
`Dec. 14,2004
`
`Sheet 5 0f 16
`
`US 6,832,373 132
`
`Figure 2A
`
`200 \
`
`START
`
`V \ .
`
`
`
`ESTABLISH
`
`COMMUNICATION
`
`
`
`
`
`
`
`POLL SERVER
`MANIFEST
`(ag, retlieve metadata)
`
`
`
`
`COMPARE UPDATE
`SIGNATURE
`
`204
`
`208
`
`208
`
`212
`
`NO
`
`
`
`/’ \wo
`//{PDATE NEEDED?
`< (69., halt update based on
`\
`metadala?)
`
`
`
`WW7
`REQUEST UPDATE
`
`
`
`214
`
` 216
`
`
`
`Apple Ex. 1011, p. 7
`Apple Ex. 1011, p. 7
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`

`

`US. Patent
`
`Dec. 14, 2004
`
`Sheet 6 0f 16
`
`US 6,832,373 132
`
`Figure 28
`
`250 \
`
`ESTABLISH
`COMMUNICATION
`
`252
`
`(\st4
`
`RECEIVE AND PROCESS
`UPDATE INFORMATION
`
`
`
`
` |
`
`
`
`REQUEST UPDATE
`INFORMATION QUERY
`
`
`
`
`
`“\J 255
`
`”\T 258
`
`//'\(M 250
`VI/
`——-——.—-/UPDATE AVAILABR
`NO \ //
`\\
`\\/
`YES
`
`I L
`
`/
`
`Q
`
`/’ \/\ 252
`CLIENT
`
`ALLOCATE MEMORY ON
`
`CLIENT FOR UPDATE
`
`
`
`MEMORY
`
`/
`
`YES ;
`‘I___W
`I
`REQUEST UPDATE
`
`I v
`
`RECEIVE UPDATE
`
`INSTALL UPDATE
`
`I I
`
`/—L——J\
`END
`
`>{
`
`
`
`Y
`// \’\,272
`/// \
`M RY
`ALIIIISCSTED"
`
`’>
`
`/
`‘
`N01
`
`N 254
`<———<
`YES
`
`”\J 266
`
`1253
`
`280J
`
`Apple Ex. 1011, p. 8
`Apple Ex. 1011, p. 8
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`

`

`US. Patent
`
`Dec. 14, 2004
`
`Sheet 7 0f 16
`
`US 6,832,373 B2
`
`Figure 3
`
`OPEN EXISTING FILE
`
`BUILD DATABASE FROM
`3511MB VERSION
`
`PROCEED TO INSTRLKITION
`SET GENERATTON
`SEQUENCE
`
`ENCOOE COMPRESS.AND
`ENCRYPT nus
`
`306
`
`303
`
`310
`
`312
`
`314
`
`316
`
`SAVE I PUBLISHFILE
`
`Apple Ex. 1011, p. 9
`Apple Ex. 1011, p. 9
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`

`

`US. Patent
`
`Dec. 14, 2004
`
`Sheet 8 0f 16
`
`US 6,832,373 B2
`
`Figure 4
`
`wmwmmb
`
`“1o
`
`Apple Ex. 1011, p. 10
`Apple Ex. 1011, p. 10
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`

`

`US. Patent
`
`Dec. 14, 2004
`
`Sheet 9 0f 16
`
`US 6,832,373 B2
`
`Figure 5
`
`N07
`
`40° \
`
`{_
`
`sum
`
`)‘
`
`402
`
`. ,404
`
`lHITXALlZE POINTERTO
`START OF FILE
`
`406 I
`
`408
`
`
`
`
` 4‘18
`
`NO
`
`DEFAULT rmmucnorq
`
`' FUNCTION
`
`I
`
`410
`
`416
`
`POWER
`AT END OF
`FILE?
`
`YES
`
`414
`
`
`
`.
`
`Apple Ex. 1011, p. 11
`Apple Ex. 1011, p. 11
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`

`

`US. Patent
`
`Dec. 14, 2004
`
`Sheet 10 01'16
`
`US 6,832,373 B2
`
`Figure 6A
`
`Figure 68
`
`Flrlenrd Sequence
`
`f 500
`-----
`502 \T'MH-r«---7------‘ ----
`'ws W6
`"
`._....L__....
`.
`
`
`
`
`
`
`
`f 510
`'
`'
`'
`First Word Sequence
`......,......
`512
`-.'
`
`
`
`
`Second Word Sequence (N=4)
`Sacand Ward Sequence (NSE)
`—_*—
`_———-—
`
`
`I-Ill'lll
`m M II
`504
`.
`-
`506
`word sequance nol changcdl
`word sequenceconsaculiva smng/
`‘mn lengm encoding‘ inslmc‘jon for N word lenglh
`'exlsling sequenca‘ instruction [or N word length
`
`
`.4
`
`,
`
`514
`
`RLE
`500j
`
`g W1,N .
`506 j
`t 508
`
`EXS
`5103
`
`N
`C 515
`
`Figure 6C
`
`520 \
`Fixsl Word Sequence
`_-—_—— L
`—
`“I.-
`
`'r
`,__ L
`
`
`
`
`
`word acquancn pro-gist: elsewhere I
`"hash' instruction to? N word_ length
`
`HSH
`5
`b,N
`
`Figure SD
`
`First Word Sequence I
`
`
`
`word sequence not fauna elsewhere!
`default instruclion
`
`E W15, WIE.W17. W13. wws, W20
`:
`t535
`
`DEF
`530/
`
`Apple Ex. 1011, p. 12
`Apple Ex. 1011, p. 12
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`

`

`US. Patent
`
`Dec. 14, 2004
`
`Sheet 11 0f 16
`
`US 6,832,373 B2
`
`Figure 7
`
`55° \
`Word-wise Updat: Sequenca
`‘._—_-_--__-—-_—--
`fifinnnnnunnnunnnnnllllunni
`L_____r____| L__’_._J L__._.___ ..___.__
`.J
`|
`504
`_ 514
`524
`
`534
`
`552
`
`\ lnsh'ucliun Sal
`
`5(1) "\- RUE
`
`W1,8
`
`acquanfial applimuon or insuucnuns
`Lo generals dusirad Word sequenca
`
`510 ’V as
`520 w HSH
`530 N DEF
`
`4
`b 8
`W15, W16, W17, W18, W19, W20
`
`Apple Ex. 1011, p. 13
`Apple Ex. 1011, p. 13
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`

`

`US. Patent
`
`Dec. 14, 2004
`
`Sheet 12 0f 16
`
`US 6,832,373 B2
`
`Figure 8A
`
`1008 ”\
`
`1006 F\\_/
`
`1002 W
`<‘
`NON—VOLAT LE MEMORY
`OR STORAGE AREA
`
`i,
`
`" '
`
`.'
`
`7*
`
`‘fi
`
`"" BAIQK4
`BANK}
`m ,, ”Vi
`BAN53M2;
`BANK 1
`
`\
`(
`
`BANK o ,7,
`
`
`
`1000
`8
`
`1004
`
`VOLATILE MEMORY
`
`(KV
`11012
`ADDRESS
`
`OR STORAGE AREA
`/
`
`SZCK
`256K
`128K
`64K
`
`.
`
`0E
`0D
`00
`DB
`
`0A
`
`
`
`7
`
`/
`
`m,
`‘
`1010
`
`Figure 88
`
`1050
`
`,
`
`NON-VOLATILE
`M EMORY OR
`STORAGE AREA
`
`STATUS
`
`/\’/ TABLE
`(2.9., change
`"WWW,"
`indicator) 7 ,DATA
`
`1003 A SECTION
`
`
`1020 ”\V/ DOWNLOAD AGENT
`
`1025 ”V UPDATE AGENT
`
`SECTION
`b
`
`
`
`DOWNLOAD AGENT /\/ 1020
`
`@a
`
`UPDATE A
`AGENT V 1025
`
`Apple Ex. 1011, p. 14
`Apple Ex. 1011, p. 14
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`

`

`US. Patent
`
`Dec. 14, 2004
`
`Sheet 13 0f 16
`
`US 6,832,373 132
`
`11110
`
`"\J 1100
`
`RECEIVE
`UPDATE
`(set change indicator to “not idle’
`
`upon receipt)
`1
`
`{\Jms
`UPDATE
`TRANSFER
`
`
`Figure 9
`
`
`
`”’44’
`
`”0
`
`EDA
`
`L
`
`
`
`
`
`MEMORY
`ALLOCATION
`
`
`
`
`___._____
`
`______!
`BANK
`TRANSFER
`
`
`1
`APPLY UPDATE
`INSTRUCWONS
`
`V\\J1130
`
`l
`
`\4‘120
`
`”\J1125
`
`/
`
`V\\J1135
`
`UPDATED
`BANK
`BACKUP
`, ETEEEEEEA_E,.
`IEEEE,
`ED,
`UPDATED
`
`BANK
`STORAGE
`
`/
`
`\\
`//> ’\\J1123
`Interruption may
`occur; no saving
`of status
`information
`required
`
`1145
`
`
`
`
`INCREMENT
`BANK
`POINTER
`
`//'
`\
`
`
`,1
`////
`\\\<§Jn50
`FAULT
`\
`TOLERANT
`UPDATE
`\\\\\£fjWPLETE?
`\\
`YES
`
`RESET CHANGE 1NDICATOR
`(69., set to ‘idle")
`
`
`
`,1152
`
`Apple Ex. 1011, p. 15
`Apple Ex. 1011, p. 15
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`

`

`US. Patent
`
`Dec. 14, 2004
`
`Sheet 14 0f 16
`
`US 6,832,373 132
`
`1002
`
`
`
`UPDATE
`PACKAGE
`
`(including, 6.9 , CRC.
`(1191151 fingerplint,
`signature, message
`
`
`12502
`K
`APPLY UPDATE
`
`INSTRUCTIONS
`
`
`(#1222 new code)
`
`RECEIVE
`UPDATE
`
`
`
`Change indicato:
`set upon receipt
`of update
`package
`
`1242’]
`1025~
`
`(e.g,, generate
`
`1‘ 1220
`UPDATE
`TRANSFER
`
`
`
`’\\/1234
`
`1260 '1
`L
`UPDATED
`BANK
`BACKUP
`
`\
`“/1222
`
`1025
`
`RAM
`I
`
`1270,,I
`UPDATED
`BANK
`STORAGE
`1242
`
`1232
`/,\
`1222
`
`1230
`
`,
`( a1
`1120< IIII====
`[K
`
`E F
`
`LASH
`
`vff
`MEMORY
`ALLOCATION
`
`Apple Ex. 1011, p. 16
`Apple Ex. 1011, p. 16
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`1234
`1
`280_)
`L
`NCREMENT
`BANK
`POINTER
`
`\
`1222
`
`’1
`
`
`
`1025
`
`/
`
`”
`
`IN EBANK
`
`——
`
`EEEEIIIIIE
`1242fi §
`1025 a»E
`
`

`

`US. Patent
`
`Dec. 14, 2004
`
`Sheet 15 0f 16
`
`US 6,832,373 B2
`
` iNiTiALiZE
`
`CLIENT DEVICE
`
`1302
`
`Figure 11
`
`Detect state of change
`indicator during period after
`client device is reset and
`until client device begins
`operation for intended use
`by user
`
`1300”L
`
`
`
`
`I
`
`Detect state of change
`indicator during period afler
`after power is supplied and
`
`until client device begins
`
`operation for intended use
`by user
`
`.
`
`7
`
`\
`
`\‘
`U
`
`1304
`
`_
`
`NC
`
`PROCEEDTO
`
`NORMAL OPERATION
`
`1306
`
`\J
`
`T
`FDA E STATE
`/2ECOGNIZED?
`\ (eg, update package
`‘\available?/
`\\/
`YES |
`V
`
`PRE-UPDATE
`VALIDATION PASSED?
`EXIT SEQUENCE
`
`(9.9., update package
`
`
`
`YESV‘
`filer!
`DETERMINE NEXT
`BANK TO BE UPDATED
`
`
`/\_, ‘312
`
`
`
`
`PERFORM
`BANK U PDATE
`
`r\J 1 31 44__.¥
`
`/1\
`/ \C\\, 1316
`UPDATE
`\
`\ VALIDATION PASSED?
`\
`
`N0
`
`_\‘
`
`\
`YES 1
`
`,1
`
`”0
`
`/’
`UPDATE
`COMPLETE?
`
`N1 31 a
`
`1320
`RElNITlALIZE
`
`
`CLlENT DEVICE
`
`
`4,1310
`
`Apple Ex. 1011, p. 17
`Apple Ex. 1011, p. 17
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`

`

`U.S. Patent
`
`Dec. 14, 2004
`
`Sheet 16 0f 16
`
`US 6,832,373 132
`
`Figure 13
`
`15001
`
`/A
`
`(
`
`START
`
`\, 1502
`
`/\J 1505
`CALCULATE CRC OF
`CURRENT BANK OF MEMORY “‘ '
`
`”\J 1504
`
`
`
`
`1
`SET CURRENT BANK
`TO BEGINNING OF UPDATE
`PACKAGE
`
`
`_._J—.i
`
`
`
`BANK CRC MATCH
`
`CRC7/
`
`CURRENT BANK IS NEXT
`BANK TO BE UPDATED
`
`/,R\1508
`/DOES CURRENT
`UPDATE PACKAG/E
`\\N\ //
`
`
`
`'
`END
`
`1516
`J
`
`J 1512
`
`\
`
`— M
`
`AKE NEXT BANK
`CURRENT BANK
`
`<
`
`\21510
`
`LAST BANK IN
`
`ISCURRENTBANK/
`\UPDATE PACKA/GE7/
`YES
`
`1514
`
`7
`
`Apple Ex. 1011, p. 18
`Apple Ex. 1011, p. 18
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`

`

`US 6,832,373 BZ
`
`1
`SYSTEM AND METHOD FOR UPDATING
`AND DISTRIBUTING INFORMATION
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS/INCORPORATION BY
`REFERENCE
`
`This application is a Continuation Application of PCT
`application number PCT/USOl/44034, filed Nov. 19, 2001,
`which designates the United States, and which in turn claims
`priority to US. Provisional Application Ser. No. 60/249,606,
`filed Nov. 17, 2000. This application is also a Continuation
`Application of US. patent application Ser. No. 10/311,462,
`“SYSTEM AND METHOD FOR UPDATING AND DIS-
`TRIBUTING INFORMATION,” filed on Dec. 13, 2002,
`which is a national phase filing based on a PCT application
`number PCT/USOl/44034, filed Nov. 19, 2001, which in
`turn claims priority to US. Provisional Application Serial
`No. 601249,606 filed Nov. 17, 2000. Each of these appli-
`cations are incorporated herein by reference in their entirety.
`FEDERALLY SPONSORED RESEARCH OR
`DEVELOPMENT
`
`[Not Applicable]
`
`MICROFICHE/COPYRIGHT REFERENCE
`
`[Not Applicable]
`FIELD OF THE INVENTION
`
`invention generally relates to information
`The present
`updating systems, and more particularly,
`to a software
`system and method for updating information which reduces
`the size of an update and distributes the update in a platform
`independent manner.
`DESCRIPTION OF THE RELATED ART
`
`With the rapid and continuous advancement of software
`and hardware technology, maintenance of existing devices
`and software components presents an ever-increasing chal-
`lenge. Routine installation of information updates and
`patches has become a recognized necessity to insure that
`computers, devices, and software applications are kept fully
`functional over their operational lifetimes. Unfortunately,
`for many devices and applications, update management can
`be a cumbersome, time consuming, and error prone process.
`These problems are often exacerbated in portable electronic
`devices such as cellular phones and personal digital assis-
`tants due to memory constraints and bandwidth restrictions.
`Furthermore, portable electronic devices often lack the abil—
`ity to perform automated update operations in a convenient
`and reliable manner. As a result, there is an ongoing need for
`improved update processes that can be used in conjunction
`with both hardware and software systems. Furthermore,
`there is a need for an update methodology that reduces the
`size of the update package to help alleviate potential prob-
`lems that arise due to memory constraints and bandwidth
`limitations.
`
`Increased sophistication of updateable electronic devices
`and software often necessitates frequent maintenance Where
`updates are made available and desirably applied on weekly
`or monthly basis. During the update process, problems often
`arise when the update is improperly performed or inter-
`rupted and may result in data corruption, loss of program
`functionality, or hardware failure. This presents developers
`and consumers alike with significant obstacles to insure that
`available updates are installed in a timely and effective
`
`10
`
`15
`
`20
`
`tom
`
`30
`
`35
`
`40
`
`45
`
`50
`
`LAm
`
`60
`
`65
`
`2
`manner. Additionally, developers must dedicate a substantial
`amount of time and resources to insure their users are
`provided with necessary updates, patches, and new versions
`of existing software and/or hardware components.
`Some of the concerns which the developer must address
`include the substantial amount of resources required to store
`and provide updates to a large customer base,
`technical
`support issues related to helping customers properly apply
`the updates, and the methods by which the updates are
`distributed to the customers in a timely and efficient manner.
`A further problem exists Where a high degree of requisite of
`skill is needed to acquire and install an available update and
`may involve technical skills beyond that of the average
`customer. Even if a customer is able to retrieve the update,
`he is faced with the problem of insuring its proper installa-
`tion. Improper installation of an update package may result
`in software failure or render the device to which the update
`is applied inoperative and place a further burden on the
`developer in resolving customer-related update problems.
`With increased dependence on electronic devices having
`updateable components, there is a need for faster and more
`intuitive updating capabilities and smaller update file sizes
`to insure that updates can be readily retrieved and properly
`installed as necessary or desired. In many instances, the
`ease, reliability, and availability of an update package can
`significantly affect customer number and loyalty and is a
`distinguishing characteristic for a successful developer or
`merchant.
`
`Although the importance of a superior updating system is
`
`
`
`apparent, conventional updating solutions typically su ‘er
`from a number of drawbacks. These problems are particu-
`larly prevalent in portable electronics devices and arise from
`a number of factors related to creation, distribution, and
`installation of the update package. For example, electronic
`devices such as cellular phones are often limited with
`respect to the available memory or storage space available
`for update processing. The size of the update package must
`be kept to a minimum in order to accommodate the reduced
`availability of resources on these devices and, as a result, the
`ability to perform significant alterations or modifications of
`the embedded code in these devices may be limited.
`Furthermore, conventional update methods for portable
`electronic devices which are directed towards complete
`operating system replacement or maintenance require the
`device to be physically connected by a wired connection to
`a dedicated apparatus which applies the update. Updating in
`this manner requires specialized hardware and necessitates
`the device to be updated to be returned to the manufacturer
`or a suitable service location. This is inconvenient for the
`user and may not be practical when the number of devices
`to be updated is large.
`In devices that support Wireless acquisition and installa—
`tion of update packages, problems are frequently encoun—
`tered due to bandwidth limitations needed to distribute
`available update packages. Furthermore, acquisition of the
`update package by wireless methods may take long periods
`of time and be subject to interruption or data corruption.
`Even when the update package has been acquired,
`the
`installation of the update often requires significant technical
`expertise at the user end complicating the proper installation
`of the update package. During this time the user may be
`faced with problems associated with uninstalling a previous
`version of the code to be updated or applying the update in
`manner that will be successful. This can present a further
`problem as it discourages the user from performing update
`operations for long periods of time or in some cases alto-
`gether.
`
`Apple Ex. 1011, p. 19
`Apple Ex. 1011, p. 19
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`

`

`US 6,832,373 BZ
`
`3
`A further problem exists with update management sys-
`tems that rely on publicly accessible servers to provide
`updates to large number of users. These servers often
`become busy or crowded and reduce the efficiency by which
`the update can be acquired. Additional complexities result-
`ing from update requirements arise from shortened product
`version lifecycles. It is not uncommon for new software
`releases to be available every few months (or even weeks, in
`the case of ‘bug fixes’ and intra-version updates). This places
`increased demands on developer resources required to main-
`tain the update services and results in developers expending
`added resources for existing software maintenance poten-
`tially shifting their focus from developing new product
`capabilities to supporting and updating older versions. From
`a business perspective software updating is generally rec—
`ognized as a non-revenue producing activity and may eon-
`sume an inordinate percentage of developer resources.
`Therefore there is an ongoing need to reduce the time,
`resources, and personnel needed to service existing software
`while at the same time insuring the customers are presented
`with the most up-to-date software versions. Attempts to
`make updates faster and more intuitive have led to the
`development of internally—designed and supported update
`solutions. A number of problems are associated with these
`solutions which are typically expensive, proprietary, and
`platform-specific. Other methods for update creation use
`commercial software packages designed to create updates or
`to generate patches for software. Both of these methods have
`inherent problems with flexibility and file size. Commer—
`cially available software updaters can be expensive and
`typically create updates which have unnecessarily large file
`sizes. In some instances, the new version or update gener-
`ated by the updater is actually a fill version of the software
`rather than an actual patch. Because of the problems asso-
`ciated with large update file sizes, developers may be
`hesitant to release frequent patches and as a result, pursue
`longer software development cycles. This may be a disser—
`vice to the customer due to the limited number of updates,
`which may be released only when there are substantial
`enough changes and/or improvements to warrant the cre-
`ation and disbursement of large update files.
`From the foregoing, it can be appreciated that there is an
`ongoing need for a convenient and reliable update manage-
`ment system. To this end, there is a need for a system which
`generates and distributes updates that are of reduced size to
`allow for more rapid acquisition. Additionally there is a need
`for an automated process that provides a convenient trouble—
`free method for installing desired updates to both hardware
`and software systems alike.
`SUMMARY OF THE INVENTION
`
`'lhe present invention satisfies aforementioned needs for
`efficient updating of digital information sequences that C0111-
`prise software, devices, and data. Further,
`these digital
`information sequences may be stored and used in various
`forms, including but not limited to files, memory locations,
`or embedded storage locations. The system and methods
`described herein provide a developer with an improved
`ability to create update information as needed and addition-
`ally allow users to proceed through a simplified update path
`which is not error-prone and can be performed more quickly
`than through the use of existing technologies.
`In one embodiment the invention comprises a system for
`updating a plurality of distributed electronic devices with an
`updated operating code comprising a first plurality of digital
`information sequences wherein each of the plurality of
`electronic devices include a resident operating code com—
`
`LA
`
`10
`
`15
`
`20
`
`toIn
`
`3D
`
`35
`
`45
`
`50
`
`LAm
`
`60
`
`65
`
`4
`prising a second plurality of digital information sequences
`that are stored within the electronic device. The system
`further comprises an update generator that compares an
`image of the first plurality of digital information sequences
`comprising the updated operating code to an image of the
`second plurality of digital information sequences compris—
`ing the resident operating code and identifies differences
`between of the updated operating code and the resident
`operating code and thereafter generates an update package
`comprising an instruction set which specifies how to gen-
`erate the updated operating code utilizing at least a portion
`of the second plurality of digital information sequences of
`the resident operating code. The system further comprises a
`distribution system that distributes the update package to the
`electronic devices such that the update package is received
`by the electronic devices and stored therein. The system
`further comprises a plurality of client modules that are
`respectively resident on each of the plurality of electronic
`devices, wherein the plurality of client modules access the
`distribution system and receive the update package anc
`wherein the instruction set of the update package is executec
`by the client modules so as to generate the updated operating
`code by utilizing a least a portion of the second plurality 0
`digital information sequences from the resident operating
`code.
`
`
`
`
`
`In another aspect the invention comprises a system for
`updating an electronic device containing a first plurality 0
`data sequences comprising a first code version to a secon
`code version comprising a second plurality of data
`sequences using a update package comprising a plurality o ‘
`transformation instructions which transform the first code
`version into the second code version. The system further
`comprises an update generator that performs a version
`comparison between the first code version and the seconc
`code version to identify pattern differences between the firs
`plurality of data sequences and the second plurality of data
`secuences, wherein the identified pattern differences are
`encoded using the transformation instructions which iden-
`tify portions of the first plurality of data sequences that can
`be used in the construction of the identified pattern
`
`
`di erences, and thereafter forming the update package using
`the transformation instructions. The system further com-
`prises a distribution system that receives the update package
`from the update generator and distributes the update package
`to the electronic device. The system further comprises an
`update agent resident on the electronic device that executes
`the transformation instructions of the update package
`thereby transforming the first code version resident in the
`electronic device into the updated second code version.
`In yet another aspect the invention comprises a system for
`updating a plurality of distributed electronic devices with an
`updated operating code that comprises a plurality of data
`blocks wherein each of the plurality of distributed electronic
`devices include a resident operating code that is stored as
`plurality of data blocks. The system further comprises an
`update generator that compares the plurality of data blocks
`of the resident operating code with the plurality of data
`blocks of the updated operating code and thereby generates
`an update package comprising an instruction set which
`indicates how to generate the updated operating code uti—
`lizing at least in part the plurality of data blocks of the
`resident operating code. The system further comprises a
`distribution system that includes the update package and is
`accessible by each of the plurality of distributed electronic
`devices. The system further comprises a plurality of client
`modules that are respectively resident on each of the plu-
`rality of distributed electronic set, wherein the plurality of
`
`Apple Ex. 1011, p. 20
`Apple Ex. 1011, p. 20
` Apple v. Fintiv
`Apple v. Fintiv
`lPR2020-00019
`IPR2020-00019
`
`

`

`US 6,832,373 B2
`
`5
`client modules accesses the distribution system so as to be
`able to receive the update package, wherein the instruction
`set provides instructions to the client modules such that the
`client modules generates at least a portion of the plurality of
`data blocks comprising the updating operating code by
`utilizing the plurality of data blocks comprising the resident
`operating code.
`In still another aspect the invention comprises a system
`for updating a plurality of distributed electronic devices with
`an updated operating code that comprises a plurality of data
`blocks wherein each of the plurality of distributed electronic
`devices include a resident operating code that is stored as
`plurality of data blocks. The system further comprises an
`update generator that compares the plurality of data blocks
`of the resident operating code with the plurality of data
`
`
`blocks of the updated operating code and thereby identifies
`
`
`update data blocks that are di erent between the update
`operating code and the resident operating code wherein the
`update generator generates an update package comprising an
`instruction set which indicates how to transform the resident
`operating code into the updated operating code and how to
`generate the update data blocks utilizing at least in part the
`plurality of data blocks of the resident operating code. The
`system further comprises a distribution system that includes
`the update package and is accessible by each of the plurality
`of distributed electronic devices. The system further corn-
`prises a plurality of client modules that are respectively
`resident on each of the plurality of distributed electronic set,
`wherein the plurality of client modules accesses the distri—
`bution system so as to be able to receive the update package,
`wherein the instruction set provides instructions to the client
`modules such that the client modules modifies the resident
`operating code into the updated operating code and wherein
`the client modules generates at least a portion of the update
`data blocks by utilizing the received instruction set
`to
`perform operations on the data blocks of the resident oper—
`ating code to generate the update data blocks.
`In a further embodiment
`the invention comprises a
`method of updating a resident operating code stored in a first
`storage section of an electronic device into an updated
`operating code. The method further comprises the step of
`developing an update package comprising a plurality of
`transformation operations to transform the resident operat-
`ing code into the updated operating code. The method
`further comprises the step of transferring the update package
`to the electrical device. The method further comprises 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