`(12)
`(10) Patent No.:
`US 6,832,373 B2
`O'Neill
`(45) Date of Patent:
`Dec. 14, 2004
`
`
`US006832373B2
`
`(54) SYSTEM AND METHOD FOR UPDATING
`AND DISTRIBUTING INFORMATION
`
`(75)
`
`Inventor: Patrick J. O’Neill, Dana Point, CA
`(US)
`
`3/1999 Bealkowskiet al.
`5,878,256 A
`........ 395/652
`
`9/1999 Tamori et al.
`.
`5,960,445 A
`707/203
`5,968,182 A * 10/1999 Chen etal. ...
`a. TI4/S
`
`6,009,497 A
`12/1999 Wells et al...
`711/103
`
`6,038,636 A
`3/2000 Brown,III etal.
`711/108
`6,064,814 A
`............. 395/701
`5/2000 Capriles et al.
`
`(73) Assignee: Bitfone Corporation, Laguna Nigel,
`CA (US
`(US)
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`US.C. 154(b) by 0 days.
`
`(*) Notice:
`
`CA
`JP
`KR
`KR
`
`(21) Appl. No.: 10/404,601
`
`(List continued on next page.)
`FOREIGN PATENT DOCUMENTS
`2339923
`3/2000
`8202626
`8/1996
`2002-0034228
`5/2000
`2001-0100328
`11/2001
`
`OTHER PUBLICATIONS
`
`(22)
`(65)
`
`Filed:
`
`Apr. 1, 2003
`:
`ar
`Prior Publication Data
`US 2004/0215755 AL Oct. 28, 2004
`
`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.)
`Related U.S. Application Data
`Primary Examiner—lodd Ingberg
`(63) Continuation of application No. PCT/US01/44034, filed on
`(74) Attorney, Agent, or Firm—McAndrews, Held &
`Nov. 19, 2001.
`Malloy, Ltd.
`7
`(SL) Unt, C0 oe ceeeeeecce reece eeeeeeeereneeereeeeeers GO6F 9/44
`ABSTRACT
`(52) US. Che cscssssssssssseneen T7/I71; 714/807; 714725 ©)
`(58) Field of Search... cece 717/171, 170;
`The present invention discloses efficient devices, systems,
`714/25, 807
`and methods for updating digital information sequencesthat
`are comprised bysoftware (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 embeddedstorage
`locations. The disclosed invention is thus suitable for updat-
`ing manytypes 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.
`
`(56)
`
`.
`References Cited
`U.S. PATENT DOCUMENTS
`
`5,084,816 A *
`5,261,055 A
`5,442,771 A
`5,479,637 A
`§,579,522 A
`5,596,738 A
`5,598,534 A
`5,608,910 A
`5,623,604 A
`5,666,293 A
`§,752,039 A
`5,778,440 A
`5,790,974 A
`
`1/1992 Boese ct al. wee T14/4
`
`11/1993 Moranetal.
`395/275
`
`......
`«.. 395/650
`8/1995 Filepp etal.
`12/1995 Lisimaque etal.
`w- 395/430
`.. 395/652
`11/1996 Christesonet al.
`
`+ 395/430
`1/1997 Pope ...cce
`
`. 395/200.09
`1/1997 Haas.......
`3/1997 Shimakura ..
`.. 395/670
`4/1997 Russell et al.
`.. 395/200.1
`
`.
`.. 395/200.5
`9/1997 Melz el al.
`
`5/1998 ‘Tanimura....
`«-- 395/712
`
`...
`vw FUL/1S4
`7/1998 Yiu ct al.
`8/1998 Tognazzini oo... 701/204
`
`10
`
`evant
`
`55 Claims, 16 Drawing Sheets
`
`7A 1802
`1504
`—/\,
`
`
`
`SETCURRENTEANK
`‘TC BEGINING 3F UPDATE
`PACKASE
`CALCULATECRE OF
`
`CURRENT BANKOF MEBORY
`
`hake vextaane|SN HI?
`CURREN” BANS
`
`
`aL
`
`no.
`¥
`we a 189
`x
`Ki
`7Nyi808
`YES.
`DOESCURRENT
`_-~TS CURRENTBANK”,
`IN
`>
`IC MATCH
`aANK Cr
`ae
`“~. UPDATE PACKADE,
`
`\yonnte SKCKAGE2~ aNe
`
`PACKAOE
`ves
`
`CO
`
`cunrentpanics wexr
`"TOBE UPCATEC
`
`ss4
`
`|S
`
`Apple Ex. 1011, p. 1
`Apple Ex. 1011, p. 1
` Apple v. Fintiv
`Apple v.Fintiv
`IPR2020-00019
`IPR2020-00019
`
`
`
`US 6,832,373 B2
`
`Page 2
`
`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,153
`6,311,322
`6,438,585
`6,668,336
`6,725,392
`2001/0029178
`2001/0047363
`2001/0048728
`2002/0078209
`
`U.S. PATENT DOCUMENTS
`
`PPPPrrrrrrr
`
`*
`
`6/2000
`6/2000
`7/2000
`8/2000
`8/2000
`8/2000
`10/2000
`10/2000
`10/2000
`12/2000
`12/2000
`3/2001
`8/2001
`10/2001
`8/2002
`12/2003
`4/2004
`10/2001
`11/2001
`12/2001
`6/2002
`
`
`Piwonkael al.
`............ 711/102
`
`Faweett oo... eee 711/133
`
`Hasbun ct al. oo... 711/103
`+. 709/223
`Hayes, Jr.
`..
`
`Almond et al. oo... 395/703
`Chatterjee et aloo... WOW
`Bi et al.
`.......
`395/200.51
`
`........00.. 711/103
`Estakhri et al.
`Nolet oo... eceeeee 714/25
`. 365/52
`Yoo ....
`
`Lindgren ..........00 340/825.44
`
`..
`« 455/561
`Shin et al.
`. 17/11
`Bi et al...
`
`Ikeda et al.
`.
`we FATA
`
`
`Mousseau et al.
`709/206
`
`. 7114/5
`Lasser .......
`Freyetal.
`. 7714/6
`
`Criss et al.
`« 455/419
`Peng ...
`707/104.1
`
`. 375/354
`Peng
`PONE coesccscccssecsrereesees 709/227
`
`2002/0116261 Al
`8/2002 Moskowitzct al.
`wee 705/14
`2002/0131404 Al
`9/2002 Mehta et al.
`
`.... «. 370/352
`.. 700/234
`2002/0152005 A1
`10/2002 Bagnordi
`...
`
`709/217
`2002/0156863 Al
`10/2002 Peng ...
`
`10/2002 Anton,Jr. .....
`. FLFAT8
`2002/0157090 Al
`2/2003 Rajaram et al. «0.0... 717/173
`2003/0033599 AL
`2/2003 Iannigan et al.
`........... 707/500
`2003/0037075 AL
`3/2003 Nakatani... 709/245
`2003/0061384 Al
`OTHER PUBLICATIONS
`
`“Client Server computing in mobile environments”, J. Jing
`et al, ACM pp. 117-159, 1999.
`“ESW4:cnhanced scheme for WWW computing in wireless
`communication environments”, S. [adjesthmiades et al,
`
`ACMpp. 24-35, 1999.*
`
`“Introducing Quality—-of-Service and tra
`
`fic classes into
`wireless modile n tworks”, J. Sevanto et al, ACM,pp. 21-29,
`1998.*
`“Any Network, Any Terminal, anywhere”, A. Fasbender et
`al, 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
`IPR2020-00019
`IPR2020-00019
`
`
`
`U.S. Patent
`
`Dec. 14, 2004
`
`Sheet 1 of 16
`
`US 6,832,373 B2
`
`
`
`quay—.SUOIPSIUNUILUOS
`
`
`
`UCISIBA‘japow
`
`arr
`
`
`
` ‘Jeimoeynuew|“Bra)uoNeUojuy|Ayjuap|
`
`i
`
`
`(201Aap(OANOU
`
`atsbexpedaiepdn
`
`‘aObL
`
`
`
`aoinagEIDSIN‘}S4y)Jayuap!
`
`SSOjQIIMSS9/DIIMJOJBUJa]U]SeJoyesauesd
`“Ba)yonswiomjauoygnd‘Ba)(adA}‘(pucossayepdn
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`UdISI9AISUI-4
`
`YLanBi4
`
`Apple Ex. 1011, p. 3
`Apple Ex. 1011, p. 3
` Apple v. Fintiv
`Apple v.Fintiv
`IPR2020-00019
`IPR2020-00019
`
`
`
`
`
`U.S. Patent
`
`Dec. 14, 2004
`
`Sheet 2 of 16
`
`US 6,832,373 B2
`
`_
`
`(pucoas|an1naqoyqnd*6:9)eipayysiy)sayquapl
`
`
`
`
`
`wadSUdIedUNWWOgoa
`“Ba)SEUONSOma(adéy
`
`
`
`
`UOISJ9A‘}apow
`
`
`
`(alAap(yromMjou
`
`
`
`SS3|BIIMSSO[QIIMJOJaWAzUY
`
`
`
`
`
`uorjeuoyuyALUap}
`
`
`
`‘aunyoeynuew“6:a)
`
`ajepdn
`
`
`
`
`
`uoneuouyANUAap]
`
`eet“~2b
`
`
`
`
`
`wangSUONEDIUNWLUOTlanias
`
`
`
`
`
`
`
`aolnaqEIpaWAediy
`
`3>b01Zheb
`
`GObb
`
`
`
`adeyedajyepdn
`
`
`
`aanaqeIpaly
`
`aidsuoyeoiunwwoy
`
`VONBUIOSU]AUap|
`
`
`
`aBeyoeyajepdn
`
`JObL
`
`
`
`ebeyoedajyepdy
`
`SOL
`
`
`
`abeyoeyajepdy
`
` aBexyoegayepdnCgots
`
`soye13Ua5
`
`ayepdn
`
`BOL}
`
`-ZOL
`
`Nat
`
`aLaun6i4
`
`Apple Ex. 1011, p. 4
`Apple Ex. 1011, p. 4
` Apple v. Fintiv
`Apple v.Fintiv
`IPR2020-00019
`IPR2020-00019
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Aeuyiaaiasajepdn
`
`ajepdn
`
`aolAag
`
`JaA8S
`
`a
`SEL
`
`“-g€L
`
`ajepdn
`
`juawaBeuey
`
`jusuodwo9
`
`
`
`2103Sajepdn
`
`
`
`U.S. Patent
`
`Dec. 14, 2004
`
`Sheet 3 of 16
`
`WUsI|D
`
`ao1aq
`
`US 6,832,373 B2
`
`
`
`etS
`
`
`
`-OCF
`
`OfaunBly
`
`ajepdy
`
`JOJEIQUSS)
`
`Apple Ex. 1011, p. 5
`Apple Ex. 1011, p. 5
` Apple v. Fintiv
`Apple v.Fintiv
`IPR2020-00019
`IPR2020-00019
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Dec. 14, 2004
`
`Sheet 4 of 16
`
`US 6,832,373 B2
`
`
`JBIiLooa|\9bOL:
`
`
`
`
`L____]
`
`
` yual]Dryaeroiaolaag§|AdE
`wIAager
`Co$ot!aniaag|Acobd
`
`
`
`
`
`
`a0laaqoa
`qayyne—P2ZtL
`Wad,Toor
`
`wag(+
`:
`wand
`soragg=|
`SAag
`ao1nag
`do1nag
`ao1Aag
`Wad
`ya
`yao
` “Le8b0b
`7\4POLsett
`\-PROL
`
`yuo,NbE
`
`
`
`
`i
`
`j/AS:3B10‘/frobel}ysORANaepdnOV:
`waAsas
`ao1nag|ayepdn,yo —BSel—Aesiy
`
`tansagayepdn)
`28N8S|/-—-
`
`
`
`erendn
`aaaag
`Janias
`
` “>
`
`—a9et
`
`
`
`
`
`81015ayepdy
`
`Jl
`
`
`
`
`
`quauadwoy
`
`quaweBbeueyw|
`
`:aiepdy
`
`erl
`
`“OPb
`
`ay&nbi4
`
`Apple Ex. 1011, p. 6
`Apple Ex. 1011, p. 6
` Apple v. Fintiv
`Apple v.Fintiv
`IPR2020-00019
`IPR2020-00019
`
`
`
`
`
`
`U.S. Patent
`
`Dec.14, 2004
`
`Sheet 5 of 16
`
`US 6,832,373 B2
`
`Figure 2A
`
`200 ~
`
`START
`
`ESTABLISH
`COMMUNICATION
`
`POLL SERVER
`MANIFEST
`(e.g. retrieve metadata)
`
`
`
`COMPARE UPDATE
`SIGNATURE
`
`ZZ “Nr
`UrPDATE NEEDED?
`< (e.g., halt update based on
`NN
`metadata?)
`~~
`
`
`
`a 212
`REQUEST UPDATE
`
`
`
`YN» 202
`
`
`
`
`
`208
`
`NO
`
`Apple Ex. 1011, p. 7
`Apple Ex. 1011, p. 7
` Apple v. Fintiv
`Apple v.Fintiv
`IPR2020-00019
`IPR2020-00019
`
`
`
`U.S. Patent
`
`Dec. 14, 2004
`
`Sheet 6 of 16
`
`US 6,832,373 B2
`
`Figure 2B
`
`250 ~
`
`ESTABLISH
`COMMUNICATION
`
`REQUEST UPDATE
`INFORMATION QUERY
`
`
`
`
`
`
`
`
`7 255
`
`I\_) 258
`
`RECEIVE AND PROCESS
`UPDATE INFORMATION
`
`
`
`
` | A
`
`K, 260
`oe
`_-
`pn AVAILA
`
`“
`
`270
`
`Apple Ex. 1011, p. 8
`Apple Ex. 1011, p. 8
` Apple v. Fintiv
`Apple v.Fintiv
`IPR2020-00019
`IPR2020-00019
`
`oN
`PO SN 22
`
`0 CLIENT
`ALLOCATE MEMORY ON
`<
`MEMORY
`
`“AVAILABLE?
`CLIENT FOR UPDATE
`
`™N
`’aa
`ey a SORT
`“
`(\) 264 7
`MORY
`.
`REQUEST UPDATE ——— ae >
`YES
`
`-
`
`v
`
`i
`\
`
`Y
`RECEIVE UPDATE
`
`
`(\_, 266
`
`aa
`Nol
`|
`
`INSTALL UPDATE
`
`, 268
`
`T |
`
`280
`rny
`aa,
`
`
`
`
`
`
`U.S. Patent
`
`Dec.14, 2004
`
`Sheet 7 of 16
`
`US 6,832,373 B2
`
`Figure 3
`
`OPEN EXISTING FILE
`
`BUILD DATABASE FROM
`EXISTING VERSION
`
`PROCEED TO INSTRUCTION
`SET GENERATION
`SEQUENCE
`
`ENCODE, COMPRESS, ANDO
`ENCRYPT FILE
`
`306
`
`308
`
`310
`
`312
`
`314
`
`316
`
`SAVE/ PUBLISHFILE
`
`Apple Ex. 1011, p. 9
`Apple Ex. 1011, p. 9
` Apple v. Fintiv
`Apple v.Fintiv
`IPR2020-00019
`IPR2020-00019
`
`
`
`U.S. Patent
`
`Dec. 14, 2004
`
`Sheet 8 of 16
`
`US 6,832,373 B2
`
`Figure 4
`
`3305,
`hash array
`
`
`
` address "b”.
`address "d" +ae “K+—‘s*
`0~REETo(tof
`Cm te
`
`address "nh" + address "w”
`
`Apple Ex. 1011, p. 10
`Apple Ex. 1011, p. 10
` Apple v. Fintiv
`Apple v.Fintiv
`IPR2020-00019
`IPR2020-00019
`
`
`
`U.S. Patent
`
`Dec. 14, 2004
`
`Sheet 9 of 16
`
`US 6,832,373 B2
`
`400~
`
`(
`
`START
`
`y
`
`402
`
`Figure 5
`
`NO
`
`~404
`
`INITALIZE POINTER TO
`START OF FILE
`
`
`
`
`
`NO
`DEFAULT INSTRUCTION
`
`FUNCTION
`
`414
`
`Apple Ex. 1011, p. 11
`Apple Ex. 1011, p. 11
` Apple v. Fintiv
`Apple v.Fintiv
`IPR2020-00019
`IPR2020-00019
`
`
`
`
`
`416
`
`
`
`YES
`
`RETURN TO CALLER
`
`
`
`
`
`
`
`418
`
`
`
`
`
`First Word Sequence
`
`
`
`First Word Sequence
`
`f
` $12 oS
`
`sz
`q
`Gtmmrn fh
` Second Word Saquance (N=4}
`
`510
`
`U.S. Patent
`
`Dec. 14, 2004
`
`Sheet 10 of16
`
`US 6,832,373 B2
`
`Figure 6A
`
`Figure 6B
`
`rfmalwapoy
`.
`.
`506
`word sequence not changed /
`word Sequance-consecutive string /
`“run length encoding® instruciion for N word Jength
`"existing sequence” instruction for N word length
`
`RLE
`oo: WIN.
`EXS
`N
`500-
`S06
`. 508
`510-
`
`514
`
`. 518
`
`Figure 6C
`
`First Word Sequence
`
`520 \
`
`
`
`word sequence pra-axists alsewhero /
`“hash”instruction for N werdlength
`
`
`Figure 6D
`
`First Word Sequence ,
`
`
`
`
`[sisLay{i|i|29|
`
`word sequence not found alsawhere /
`default instruction
`
`=} W15, WIG, Wi7, W138, W19, W20
`
`DEF
`
`530~
`
`538
`
`Apple Ex. 1011, p. 12
`Apple Ex. 1011, p. 12
` Apple v. Fintiv
`Apple v.Fintiv
`IPR2020-00019
`IPR2020-00019
`
`
`
`U.S. Patent
`
`Dee. 14, 2004
`
`Sheet 11 of 16
`
`US 6,832,373 B2
`
`Figure 7
`
`SN
`Word-wise Update Sequenca
`Teererarpfgrefrypathonnenlrnen earerneherhy
`
`fefefelolol[f=[=lei@folole|efeletsstelslsis)
`
`504
`
`_ 14
`
`524
`
`534
`
`§52
`
`\ Instruction Set
`
`500 —~ RLE
`
`W1,6
`
`sequential application of instructions
`to generate desired Word sequence
`
`S1I0™- ES
`520 ——- HSH
`530 -~ DEF
`
`4
`b8
`W15, W16, W17, W18, W493, W20
`
`Apple Ex. 1011, p. 13
`Apple Ex. 1011, p. 13
` Apple v. Fintiv
`Apple v.Fintiv
`IPR2020-00019
`IPR2020-00019
`
`
`
`U.S. Patent
`
`Dec. 14, 2004
`
`Sheet 12 of 16
`
`US 6,832,373 B2
`
`Figure 8A
`
`4008“
`
`1006 “\_/
`
`1002 5
`¢
`NON-VOLATILE MEMORY
`OR STORAGE AREA
`
`
`
`
`1000
`
`1004
`
`112
`c~
`ADDRESS
`
`VOLATILE MEMORY
`OR STORAGE AREA
`f
`
`32CK
`256K
`128K
`64K
`
`OE
`oD
`oc
`0B
`0A
`
`im?
`1010
`
`
`
`,
`
`1010 ,
`
`DOWNLOAD AGENT “\_ 1020
`
`NON-VOLATILE
`MEMORY OR
`STORAGE AREA
`
`STATUS
`
`ON TABLE
`(é.g., change
`
`indicator) FeDATA
`1008
`SECTION
`
`
`
`SECTION
`
`—_
`
`
`Figure 8B
`
`1050
`
`,
`
`1020 “\_» DOWNLOAD AGENT
`
`1025 ”\_» UPDATE AGENT
`
`UPDATE ~
`AGENT©~~ 1025
`
`Apple Ex. 1011, p. 14
`Apple Ex. 1011, p. 14
` Apple v. Fintiv
`Apple v.Fintiv
`IPR2020-00019
`IPR2020-00019
`
`
`
`U.S. Patent
`
`Dec. 14, 2004
`
`Sheet 13 of 16
`
`US 6,832,373 B2
`
`[S4110
`
`RECEIVE
`UPDATE
`(set change indicatorto ‘notidle’
`
`upan receipt)
`Tt
`
`UPDATE
`r\_ 1148
`TRANSFER
`
`
`
`
`MEMORY
`
`ALLOCATION
`
`aSnes
`BANK
`TRANSFER
`
`
`| Nu1420
`
`\_1125
`
`'
`APPLY UPDATE
`INSTRUCTIONS
`
`r\1130
`
`
`
`
`
`Figure 9
`
`j
`
`!
`!
`
`|
`
`
`
`—
`
`ns
`UPDATED
`1138
`BANK
`BACKUP
`: pe
`neSe
`UPDATED
`
`BANK
`STORAGE
`
`1145
`
`
`
`INCREMENT
`
`BANK
`
`POINTER
`
`S150
`emt
`~
`TOLERANT
`UPDATE
`COMPLETE?
`
`NO
`
`UY
`~
`
`™
`
`YES
`
`RESET CHANGEINDICATOR
`(e.g., set to ‘idle”)
`
`, 1152
`
`
`
`“\ 1100
`
`\AN
`PND 1128
`Interruption may
`occur; no saving
`of status
`information
`required
`
`/i
`
`Apple Ex. 1011, p. 15
`Apple Ex. 1011, p. 15
` Apple v. Fintiv
`Apple v.Fintiv
`IPR2020-00019
`IPR2020-00019
`
`
`
`U.S. Patent
`
`Dec.14, 2004
`
`Sheet 14 of 16
`
`US 6,832,373 B2
`
`UPDATE
`
`
`
`PACKAGE
`(including, e.g., CRC,
`
`digital fingerprint,
`signature, message
`digest)
`
`1002
`
`«
`ELASH
`
`
`1224
`Y
`1250
`A
`2
`APPLY UPDATE
`
`INSTRUCTIONS
`{e.g., generate
`1222
`new code)
`
`1004
`
`q
`
`Be
`RAM
`ff
`
`?
`
`1270 c
`UPDATED
`BANK
`STORAGE
`1232
`120
`
`/3322 1242
`
`ge
`MEMORY
`ALLOCATION
`
`
`
`1025
`
`FLASH
`
`‘224~
`f/f. cee
`Ey esu
`
`1234
`
`INCREMENT
`BANK
`BANK
`TRANSFER —=
`1232
`POINTER
`.
`—— L
`—— “ XN|;-——-~]
`
`4992
`1246-)
`1942
`--———
`™
`[J
`
`Apple Ex. 1011, p. 16
`Apple Ex. 1011, p. 16
` Apple v. Fintiv
`Apple v.Fintiv
`IPR2020-00019
`IPR2020-00019
`
`
`
`Figure [0
`
`_
`1224—
`i
`1210
`
`J
`-
`peo
`UPDA
`
`4120
`
`1025 J
`
`FLASH
`
`s
`
`UPDATE
`TRANSFER
`
`Change indicator
`set upon receipt
`of update
`
`1260
`
`UPDATED
`
`.
`322
`
`
`package 1220
`oe
`
`
`
`U.S. Patent
`
`Dec. 14, 2004
`
`Sheet 15 of 16
`
`US 6,832,373 B2
`
`
`
` INITIALIZE
`
`1302
`
`CLIENT DEVICE Detect state of change
`
`ae
`
`Ny
`
`NO
`
`-
`PROCEED TO
`NORMAL OPERATION
`
`} 1308
`
`indicator during period after
`after poweris supplied and
`So until client device begins
`operation for intended use
`|
`y
`by usera1304
`OPDATE STATE
`RECOGNIZED?
`ackage
`“ (eg. update p
`avait)
`ae
`YES |
`
`Y
`
`1308
`
`PRE-UPDATE
`
`VALIDATION PASSED?
`EXIT SEQUENCE a“
`
`4 1310
`(e.g., update package
`me
`YES y
`——__+———_
`DETERMINE NEXT
`BANK TO BE UPDATED
`
`
`Y\_, 1312
`
`
`
`
`PERFORM
`BANK UPDATE
`
`U\_) 1344
`<<,
`
`Sy
`OOS 4316
`a Se
`a UPDATE
`~
`“... VALIDATION PASSED?
`NN
`
`NO
`
`NL
`YES |
`
`NO
`
`“a
`
`a CN1318
`UPDATE
`COMPLETE?
`
`
`
`os
`
`1320
` REINITIALIZE
`
`CLIENT DEVICE
`
`
`
`Apple Ex. 1011, p. 17
`Apple Ex. 1011, p. 17
` Apple v. Fintiv
`Apple v.Fintiv
`IPR2020-00019
`IPR2020-00019
`
`Figure 11
`
`Detect state of change
`indicator during period after
`client device is reset and
`until client device begins
`operationfor intended use
`by user
`
`1300 1.
`
`
`
`
`
`U.S. Patent
`
`Dec. 14, 2004
`
`Sheet 16 of 16
`
`US 6,832,373 B2
`
`Figure 13
`
`mu"
`
`a
`
`(
`
`START
`
`\y 1502
`
`
`y
`SET CURRENT BANK
`TO BEGINNING OF UPDATE
`PACKAGE
`
`
`en
`[SY 1508
`CALCULATE CRC OF
`CURRENT BANK OF MEMORY [“
`
`(\_, 1604
`
`
`
`
`
`OKSt808
`DOESCURRENT
`UPDATE PACKAGE,
`
`<< BANK CRC MATCH
`CRC?
`Ne
`NO
`
`J 1532
`
`|
`
`— M
`
`AKE NEXT BANK
`CURRENT BANK
`
`|
`_, 1810
`iSCURRENT=>
`~“OATPACED
`
`LAST BANKIN
`
`ia
`
`
`
`CURRENT BANK IS NEXT
`BANK TO BE UPDATED
`
`1514
`
`Apple Ex. 1011, p. 18
`Apple Ex. 1011, p. 18
` Apple v. Fintiv
`Apple v.Fintiv
`IPR2020-00019
`IPR2020-00019
`
`
`
`US 6,832,373 B2
`
`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/US01/44034,filed Nov. 19, 2001,
`which designates the United States, and which in turn claims
`priority to U.S. Provisional Application Ser. No. 60/249,606,
`filed Nov. 17, 2000.‘his application is also a Continuation
`Application of U.S. 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 PCTapplication
`number PCT/US01/44034, filed Nov. 19, 2001, which in
`turn claims priority to U.S. 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 gencrally 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 manydevices 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 memoryconstraints and bandwidthrestrictions.
`Furthermore, portable electronic devices often lack the abil-
`ity to perform automated update operations in a convenient
`and reliable manner.As a result, therc is an ongoing needfor
`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 memoryconstraints 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
`
`30
`
`35
`
`40
`
`45
`
`So
`
`annh
`
`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.
`Someof 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 problemexists 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 customeris able to retrieve the update,
`he is faced with the problem of insuring its proper installa-
`tion. Improper installation of an update package mayresult
`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 updatefile 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 suffer
`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 ccllular phones arc 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 minimumin 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
`uscr 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. 'urthermore, 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
`IPR2020-00019
`IPR2020-00019
`
`
`
`US 6,832,373 B2
`
`3
`A further problem exists with update management sys-
`tems that rely on publicly accessible scrvcrs to provide
`updates to large number of users. These servers often
`become busyor crowded and reducethe 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 ‘bugfixes’ 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 con-
`sume an inordinate percentage of developer resources.
`Therefore there is an ongoing need to reduce the time,
`resources, and personnel neededto service existing software
`while at the same time insuring the customers are presented
`with the most up-to-daie 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 newversion 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 maybe a disser-
`vice to the customer due to the limited numberof updates,
`which may be released only when there arc substantial
`cnough changes and/or improvements to warrant the cre-
`ation and disbursementof 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. Additionallythere is a need
`for an automated process that provides a convenient trouble-
`free methodforinstalling desired updates to both hardware
`and software systemsalike.
`SUMMARYOF THE INVENTION
`
`‘lhe present invention satisfies aforementioned needs for
`efficient updating of digital information sequences that com-
`prise software, devices, and data. Further,
`these digital
`information sequences may be stored and used in various
`forms, including but not limited to files, memorylocations,
`or embedded storage locations. The system and methods
`described hercin 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
`whichis 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 comprisinga first plurality of digital
`information sequences wherein each of the plurality of
`electronic devices include a resident operating code com-
`
`be a
`
`eya
`
`35
`
`45
`
`So
`
`ac
`)
`
`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 ofthe
`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 packageto the
`electronic devices such that the update package is reccived
`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 and
`wherein the instruction set of the update package is executed
`by the client modulesso as to generate the updated operating
`code by utilizing a least a portion of the sccond plurality o
`digital information sequences from the resident operating
`code.
`
`
`
`
`
`In another aspect the invention comprises a system for
`updating an clectronic device containing a first plurality o
`data sequences comprising a first code version ta a secon
`code version comprising a second plurality of data
`wc
`} sequences using a update package comprising a plurality of
`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 second
`code version ta identify pattern differcnces bctween the firs
`plurality of data sequences and the second plurality of data
`sequences, wherein the identified pattern differences are
`encoded using the transformation instructions which iden-
`uly portions ofthe first plurality of data sequences that can
`be used in the construction of the identified pattern
`
`
`differences, 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 thal 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 systemfor
`updating a plurality of distributed electronic devices with an
`updated operating code that comprises a plurality of data
`blocks wherein eachofthe 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 andis
`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
`IPR2020-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 comprisesa plurality of data
`blocks wherein eachof 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 different between the update
`operating code and the resident operating code wherein the
`update generator generates an update package comprising an
`instruction set whichindicates 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 codec. The
`system further comprises a distribution system that includes
`the update package and is accessible by each ofthe plurality
`of distributed electronic devices. The system further com-
`prises a plurality of client modules that are respectively
`resident on eachofthe plurality of distributed electronic set,
`wherein the plurality of client modules accesses the distri-
`bution system so asto 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 the
`step of copying a portion of the resident operating code into
`a second storage section. The method further comprises the
`step of updating the portion of the resident operating code
`stored in the second storage section using the transforma