throbber
United States Patent
`(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

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