throbber
United States Patent
`US 7,062,765 B1
`(10) Patent No.:
`(12)
`Pitzel et al.
`(45) Date of Patent:
`Jun. 13, 2006
`
`
`US007062765B1
`
`(54) SYSTEM AND METHOD FOR UPDATING
`INFORMATION VIA A NETWORK
`
`(75)
`
`Inventors: Bradley John Pitzel, Seattle, WA (US);
`Stanislav Bobrovskiy, Lake Forest
`Park, WA (US); William A. Roberts
`>
`.
`Seattle, WA (US)
`
`,
`
`.
`(73) Assignee: RealNetworks, Inc., Seattle, WA (US)
`.
`.
`.
`a
`(*) Notice:
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`U.S.C, 154(b) by 0 days.
`(21) Appl. No.: 09/318,438
`(22)
`Filed:
`May25, 1999
`
`(51)
`
`Int. Cl.
`(2006.01)
`GOOF 9/445
`(2006.01)
`GO6F 15/16
`(2006.01)
`GO6F 9/44
`(52) US. Cheeee 717/177; 709/201; 709/203;
`717/175; 717/176; 717/178; 717/168
`(58) Field of Classification Search ........0....0... 171,
`TIT/AL, 168-178, 125, 103; 709/220, 223,
`oo,
`709/201, 203; 713/1, 178; 711/133
`See application file for complete search history.
`References Cited
`
`(56)
`
`U.S. PATENT DOCUMENTS
`
`5,602,582 A
`5,619,716 A
`5,666,293 A
`5,682,533 A
`5,696,898 A
`5,706,435 A
`5,710,884 A
`5,717,923 A
`5,732,275 A
`
`...... 348/12
`2/1997 Wanderscheid et al.
`4/1997 Nonakaet al... 395/800
`
`.....
`.. 395/200.5
`9/1997 Metz et al.
`
`.............. 395/616
`10/1997 Siljestroemer
`12/1997 Baker et al. w..... 395/187.01
`1/1998 Barbara etal.
`......... 395/200.09
`
`1/1998 Dedrick ..........
`... 395/200.47
`2/1998 Dedric ccesessssseseees 395/613
`
`3/1998 Kullick et al. oo. 395/712
`
`(Continued)
`
`OTHER PUBLICATIONS
`TITLE: Client-Server Computing, author: Alok Sinha,
`ACM,Jul. 1992.*
`TITLE: Managing Update Conflicts in Bayou, A Weakly
`eamesgPlcated Storage System, author: Terry et al,
`
`(Continued)
`Primary Examiner—Chameli C. Das
`(74) Attorney, Agent,
`or Firm—Steven C. Stewart,
`RealNetworks, Inc.
`
` ©7)
`
`ABSTRACT
`
`51 Claims, 7 Drawing Sheets
`
`The present invention includes a system and a method for
`updating components in a client computer. The invention
`includes a method for upgrading software for various users,
`each of the users having diverse hardware and software
`configurations. The invention includes a method for auto-
`matically determining the hardware and software configu-
`ration of the client computer without user intervention. To
`4,558,413 A * 12/1985 Schmidt et al... 707/203
`begin the upgrade, the client computer reads a configuration
`5,019,963 A
`5/1991 Alderson et al.
`.......... 364/200
`file that identifies the components for downloading. Upon
`10/1992 Kirouac et al. 0... 395/600
`5,155,847 A
`
`receipt of the configuration file, the client computer deter-
`9/1993 Holmeset al. «0.0.0.0... 395/700
`5,247,683 A
`5,339,432 A * 8/1994 Crick woe. cececeeeeeeeee TA3/1
`
`mines the hardware and software configuration ofthe client
`
`A995 Oran coe. ceeeec ees cece 395/325
`5,408,619 A
`computer. The client computer automatically communicates
`5,421,009 A
`5/1995 Plalleee 395/600
`with a componentserver via a network and requests one or
`
` 5/1995 Scholz et al... 395/700
`5,421,017 A
`more components for downloading to the client computer
`5,457,778 A * 10/1995 Sieffert 0... eee 345/501
`
`based upon the configuration file and the hardware and
`12/1995 Halliwell et al... 395/650
`5,473,772 A
`
`software conditions of the client computer.
`2/1996 Solton et al... 395/250
`5,493,728 A
`5,537,596 A
`TN996 Yu et al. wee 395/700
`5,557,798 A
`9/1996 Skeen et al... 395/650
`
`
`
`
`GENERATE
`HANDOFF
`UPGRACE
`REQUEST
`
`
`
`TO BE ANALYZED
`BY CLIENT
`
`?
`
`
`
`
`
`520.
`DETERMINE
`CLIENT
`CONDITIONS,
`
`
`
`
`
`
`GENERATE MISSING
`COMPONE!
`NT
`UPGRADE REQUEST
`
`BIO
`
`
`
`APPLE
`

`EXHIBIT 1005 - PAGE 0001
`    
`

`
`

`

`US 7,062,765 B1
`
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`OTHER PUBLICATIONS
`
`
`
`TITLE: Efficient Transparent Application Recovery in Cli-
`3/1998 He debe cee sec eeeseveneseneenens 395/619
`5,734,898 A
`
`ent-Server Information Systems, author: Lometet al, ACM,
`“yor5
`4hoon Reilly . “
`2ieno A
`.
`avis et al.
`
`1998.*
`eS
`

`.
`..
`. 395/172
`5/1998. Cole et al.
`5,752,042 A
`Barry Nance,
`“When Push Comes to Serve” BYTE, Jul.
`5/1998. Gregerson.....
`.. 707/10
`5,758,342 A
`
`6/1998 Kullick etal.
`.. 395/712-1998, pp. 98-102.
`5,764,992 A
`.. 395/200.79
`6/1998 Metz etal.
`.
`Pete Loshin, “Tune In, Turn on the Web” BYTE, Feb. 1997,
`5,768,539 A
`
`8/1998 Sadowsky ...
`. 395/200.51
`pp. 145-146.
`5,790,796 A
`
`8/1998 Lillich .....sssesseseseeees 395/703
`Michael Fisk, “Automating the Administration of Hetero-
`5,790,856 A
`
`9Looe Mase ae30eoooes
`geneous LANs” USENIX Association—Proceedings of the
`nen ‘
`_.. 395/500
`9/1998 Stupek et al.
`Tenth Systems Administration Conference Sep.-Oct. 1996,
`5,809,287 A
`
`10/1998 Bredenberg ....
`wa 707/2,——s
`pp. 181-186.
`5,826,253 A
`
`Gansheimer,
`and Wilfried
`Osel
`T1/1998 Olds wee eee 395/712
`Peter
`W.
`5,832,275 A
`11/1998 Oldset al. oe 707/10
`“OpenDist—Incremental Software Distribution’? USENIX
`5,832,487 A
`Iyhoon nee ral
`“e004,
`Association—Proceedings of the Ninth Systems Adminis-
`ree A
`
`
`.
`aweett
`...
`.
`:
`.
`5845,
`
`12/1998 Collins, Il etal,
`... 395/200.51
`‘ation Conference, Sep. 1995, pp. 181-193.
`5,845,090 A
`................. 705/14
`12/1998 Marsh etal.
`Atsushi Futakata,
`“Patch Control Mechanism for Large
`5.848.397 A
`12/1998 Northrup ....
`.. 395/200.33
`Scale Software” USENIX Association—Proceedings of the
`5,850,518 A
`1/1999 Cuomo et al.
`veesccececee 345/326
`Ninth Systems Administration Conference, Sep. 1995, pp.
`5,861,883 A
`1/1999 Reed et al.
`.
`395/200.31
`213-219.
`5,862,325 A
`for Flexible Software
`2/1999 Todd etal.
`....... eee 395/712
`Thomas Eirich, “Beam: A Tool
`5,867,714 A
`2/1999 Beyda oo. eee 395/712
`Update” LISA, Sep. 1994, pp. 75-82.
`5,870,610 A
`
`7/1999 Maet al.
`....
`- TTA
`John Lockard and Jason Larke, “Synctree for Single Point
`5,920,725 A :
`IoL999 Buxtonefal serteeeeceeecees TTL
`Installation, Upgrades,
`and OS
`Patches” USENIX
`eenaed A
`11/1999 Knox at aL
`13/1
`Association—Proceedings of the Twelfth Systems Admin-
`5,978.9 tl A *
`
`6,009,274 A * 12/1999 Fletcheret al. veces. 395/712_istration Conference, Dec. 1998, pp. 261-270. ;
`6,038,601 A *
`3/2000 Lambert et al.
`709/226
`Ram R. Vangata, Michale Cripps and Raj G. Varadarajan,
`
`. 710/103
`6,058,445 A *
`5/2000 Chari etal.
`....
`“Software Distribution and Management in a Networked
`....... cece 711/133
`6,073,214 A *
`6/2000 Faweett
`Environment” USENIX Association—Proceedings of the
`6,128,656 A * 10/2000 Matchefts et al.
`.......... 709/223
`Sixth Systems Administration Conference, Oct. 1992, pp.
`6,144,992 A *
`11/2000 Turpin etal. ..
`. 709/208
`163-170.
`
`6,151,643 A *
`11/2000 Cheng et al. vnennen 710/36
`Robby Krupezak, Kenneth L. Calvert and Mostafa Ammar,
`oreooo BI x
`Seoot vistaet AL.
`sesseesseeeeeee eee
`“Implementing Protocols in Java: The Price of Portability”
`
`6,202,207 BL*
`3/2001 Donohue717173
`IBBEInfocom *98, vol. 2, pp. 765-773.
`
`6,233,341 BL* 5/2001 Riggins se... 380/277_Vinay Kanitkar and Alex Delis, “Real-Time Client-Server
`6,246,770 B1*
`6/2001 Stratton et al.
`_ 380/281
`Push Strategies: Specification and Evaluation” IEEE Com-
`
`6/2001 Axberg et al. veces 709/223
`6,253,240 B1*
`puter Society Technical Committee on Real-Time Systems,
`6,256,668 BIL*
`7/2001 Slivka et al.
`.....000.. 709/220
`1998, pp. 179-188.
`6,263,364 B1*
`7/2001 Najorket al.
`..
`- 709/217
`Yun-Wu Huang and Philip S. Yu, “A Bandwidth-Sensitive
`
`11/2001 Kenneret al. ow... TAVAT1
`6,314,565 Bl .
`Update Scheduling Method for Internet Push’ IEEE Com-
`12/2001 Matchefts et al.
`.......... 709/223
`6,330,600 Bl
`puter Society Technical Committee on Distributed Process-
`
`6,341,373 Bl .
`1/2002 Shaw seeeeeeeeeee
`wee TLT/LT3
`ing, May 1998, pp. 303-310.
`1p
`b:
`d
`.
`6/2002 Miron .....cceeceeceeeeeeeeee 707/203
`6,401,239 Bl
`litt

`6,463,433 BL* 10/2002 Baclawski0... 7o7/5
`Clift Berg,
`“How DoI Create a Signed Castanet Channel?
`6,463,473 Bl* 10/2002 Gubbi
`~ 709/225
`-Dr. Dobb’s Journal, Jan. 1998, pp. 121-130.
`
`6,496,875 BL* 12/2002 Chenget al. oo... 710/1
`Ling Liu, Calton Pu, Wei Tang, David Buttler, John Biggs,
`6,505,058 BL*
`1/2003 Willey vv. 455/574
`Tong Zhou, Paul Benninghoff, Wei Han and Fenghua Yu,
`... 607/31
`6,512,954 BL*
`1/2003 Fox etal.
`“CQ: A Personalized Update Monitoring Toolkit” Sigmod’
`
`3/2003 Jain deseecenceeeeceeceeaeeaeeas 370/256
`6,535,490 BI*
`98—Proceedings of ACM SIGMODInternational Confer-
`Oeeee RI : oonea natinetal
`ees
`ence on Managementof Data, Jun. 1998, pp. 547-549.
`
`3/2005 Styles oc eeeee 709/221
`6,871,221 BL*
`* cited by examiner
`
`APPLE
`

`EXHIBIT 1005 - PAGE 0002
`    
`

`
`

`

`U.S. Patent
`
`Jun. 13, 2006
`
`Sheet 1 of 7
`
`US 7,062,765 B1
`
`COMPONENT
`DATABASE
`
`IGS
`
`176
`
`COMPONENT SERVER
`
`734
`
`UPGRADE
`HANDLER
`
`
`
`
`
`
` MODULE
`CONFIGURATION
`
`SERVER
`
`
`
`CONNECTION
`
`
`CONFIGURATION
`
`MANAGER
`
`
`FILE
`
`
`COMPONENT r
`
`
`
`MODULE
`
`
`
`TIE
`
`
`
`
`
`COMPUTER
`
`CUIENT
`PROFILE
`
`DOWNLOAD
`
`SERVER
`
` CLIENT
`
`
`
`
`120.
`
`
`
`
`
`
`SETUP
`UPGRADE
`USER
`
`
`
`MANAGER
`MANAGER
`INTERFACE
`MODULE
`MODULE
`MODULE
`
`
`
`
`
`f/G,
`
`7
`
`APPLE
`

`EXHIBIT 1005 - PAGE 0003
`    
`

`
`

`

`U.S. Patent
`
`Jun. 13, 2006
`
`Sheet 2 of 7
`
`US 7,062,765 B1
`
`(a
`
`LOF
`
`£08
`
`LOL
`
`
`
`22
`
`
`
`
`
`
`
`
`
`
`
`
`< COMPONENT IDENTIFIER N >
`
`< EXPIRATION TIME >
`
`-/CL 2
`
`APPLE
`

`EXHIBIT 1005 - PAGE 0004
`    
`

`
`

`

`U.S. Patent
`
`Jun. 13, 2006
`
`Sheet 3 of 7
`
`US 7,062,765 B1
`
`CUENT PROFILE
`
`PRODUCT
`INFORMATION
`
`LAST
`UPDATE
`
`ILA
`
`ILE
`
`IDENTIFIER
`
`OPERATING SYSTEM
`INFORMATION
`
`LANGUAGE
`IDENTIFIER
`
`DISTRIBUTION
`
`IDENTIFICATION
`
`COUNTRY
`IDENTIFIER
`
`IIS
`
`STATE
`
`FIG, F
`
`APPLE
`

`EXHIBIT 1005 - PAGE 0005
`    
`

`
`

`

`U.S. Patent
`
`Jun. 13, 2006
`
`Sheet 4 of 7
`
`US 7,062,765 B1
`
`400
`
`START
`
`404
`
`USER INITIATES
`UPGRADE REQUEST
`
`4OE
`
`CLIENT GENERATES AN
`UPGRADE REQUEST AND
`
`SENDS IT TO THE SERVER
`
`$I2
`
`SERVER ANALYZES THE REQUEST
`AND SENDS AN UPGRADE RESPONSE
`BACK TO THE CLIENT
`
`REQUESTED UPGRADE
`
`CLIENT PARSES THE RESPONSE
`AND DOWNLOADS/INSTALLS
`
`#20
`
`END
`
`f/G. F
`
`APPLE
`

`EXHIBIT 1005 - PAGE 0006
`    
`

`
`

`

`U.S. Patent
`
`Jun. 13, 2006
`
`Sheet 5 of 7
`
`US 7,062,765 B1
`
`START
`
`
`
`CONFIGURATIO
`FILE
`
`SOF
`
`IGNORE
`FILE
`
`300
`?
`
`
`DETERMINE
`GENERATE
`
`WHETHER FILE IS
`HANDOFF
`
`TO BE ANALYZED
`UPGRADE
`BY CLIENT
`
`
`REQUEST
`?
`
`
`
`320
`
`
`
`
`DETERMINE
`GENERATE MISSING
`CLIENT
`COMPONENT
`CONDITIONS
`
`
`
`UPGRADE REQUEST
`
`
`
`
`SEND UPGRADE
`REQUEST
`
`
`
`RETURN
`
`-/G, 3
`
`APPLE
`

`EXHIBIT 1005 - PAGE 0007
`    
`

`
`

`

`U.S. Patent
`
`Jun. 13, 2006
`
`Sheet 6 of 7
`
`US 7,062,765 B1
`
`600
`
`START
`
`
`
`
`DENY
`UPGRADE
`REQUEST
`
`
`
`
`604
`
`
`
`
`677
`
` SELECT
`
`
`
`COMPONENTS
`ACCORDING TO
`CLIENT PROFILE
`AND /OR
`OPERABLE
`DEPENDENCIES
`
`
`
`
`
`
` O24
`
`676
`
`
`
`COMPONENTS
`IDENTIFIED IN
`DATABASE
`
`
`
`620
`
`
`
`SEND UPGRADE
`RESPONSE
`IDENTIFYING
`COMPONENTS
`
`FIG. 6
`
`APPLE
`

`EXHIBIT 1005 - PAGE 0008
`    
`

`
`

`

`U.S. Patent
`
`Jun. 13, 2006
`
`Sheet 7 of 7
`
`US 7,062,765 B1
`
`START
`
`“00
`
`SOS
`
`
`UPGRADE
`REQUEST HAVE
`
`
`NOTIFY USER _
`FAILED
`THAT UPGRADE
`
`
` INFORMATION
`
`?
`
`
`
`
`DOWNLOAD
`
`
`
`COMPONENT
` AUTHENTICATE
`COMPONENT
`
`
` DECOMPRESS
`
`COMPONENT
`
`
`
`
`LAST
`
`
`INSTALL
`
`
`
`
`
`
`FIC. 7
`
`APPLE
`

`EXHIBIT 1005 - PAGE 0009
`    
`

`
`

`

`US 7,062,765 Bl
`
`1
`SYSTEM AND METHOD FOR UPDATING
`INFORMATION VIA A NETWORK
`
`
`
`BACKGROUNDOF THE INVENTION
`
`2
`more components for installation on the computer based
`upon the request and the system conditions.
`Another embodiment of the invention includes a com-
`
`puter system having a hardware and software configuration
`subject to change over time, the system comprisingafirst
`1. Field of the Invention
`computer having one or more system resources, a second
`computer operably connected to the first computer,
`the
`second computer associated with one or more installable
`components, a configuration file that is readable by first
`computer, the configuration file identifying at least one of
`said one or more installable components, an upgrade man-
`ager executing on the first computer, the upgrade manager
`configured to transmit
`information about
`the system
`resources ofthe first computer to the second computer, and
`an upgrade handler executing on the second computer, the
`upgrade handler configured to transmit the location of one or
`moreinstallable components from the second computer to
`the first computer based upon the contents of the configu-
`ration file and the system resources of the first computer.
`Yet another embodiment of the invention includes a
`
`Thefield of the invention relates to transmitting computer
`programs and data to a computer via a network. More
`particularly, the invention relates to a system and methodfor
`updating computer programs and data over a computer
`network, the updating based upon client-specific informa-
`tion.
`
`2. Description of the Related Art
`In designing software, developers often need to customize
`computer programs to many varied hardware and software
`configurations, as well to other specific considerations. For
`example, computer programsare often customized toward a
`particular geographic speaking region. A computer user in
`France expects to see help menus and other information
`displayed in French instead of English. Further, for example,
`computer programs are often designed to operate under a
`particular operating system, or even a particular version of
`an operating system.
`As improvements are made in a computer program, many
`of the users are interested in receiving and upgrading to the
`latest version of the computer program. With the advent of
`the Internet, it is now possible for users to almost instanta-
`neously download andinstall such improvements on their
`computers.
`Typically, the user visits an “update”server that hosts the
`improved computer programs. The update server presents to
`the user a list of the different versions of the computer
`programs that are available for installation. Due to the
`number of possible versions that are available for down-
`loading, users are often confused and downloadthe incorrect
`version of the requested software. Although the user may be
`able to readily identify that he is interested in a “French”
`version, the user may not know the version of an operating
`system. Another problem that is encountered is that even if
`the user knows which version is required for operation, the
`user may not know what other computer programs are
`required for proper operation of the upgrade. Disadvanta-
`geously, if the user chooses a version of computer program
`that is incompatible with his particular hardware and/or
`software configuration, possible damage can occur to the
`user’s hardware and/or other software components.
`Therefore, there is a need for a system and a method for
`automatically downloading an appropriate version of an
`computer program without user intervention. Further, the
`system and method should automatically determine the
`hardware and/or the software configuration of the client
`computer and select the appropriate version of the computer
`program.
`
`SUMMARYOF THE INVENTION
`
`The present invention has several aspects, no single one
`of which is solely responsible for its desirable attributes.
`Without limiting the scope ofthis invention as expressed by
`the claims which follow, its more prominent features will
`now bediscussedbriefly.
`One embodiment of the invention includes a method of
`
`the
`selecting components for installation on a computer,
`method comprising receiving a request for the upgrade of
`one or more components, determining one or more system
`conditions regarding the computer, and identifying one or
`
`system for installing one or more components on a client
`computer, the system including a network, a client computer
`operably connected to the network, a configuration file
`identifying at least one of the components, a client computer
`for identifying or more client conditions, and a component
`server for receiving the client conditions and the configu-
`ration file from the client computer, the component server
`identifying the location of one or more components based
`upon the components identified by the configuration file and
`the client conditions.
`Yet another embodiment of the invention includes a
`system for selecting components for installation on a com-
`puter, the system comprising means for receiving a request
`for the upgrade of one or more components, means for
`determining one or more system conditions regarding the
`computer, and means for identifying one or more compo-
`nents based upon the request and the system conditions.
`Yet another embodiment of the invention includes a
`configuration file identifying one or more components for
`installation on a client computer,
`the configuration file
`comprising a plurality of componentidentifiers, each of the
`component identifiers identifying at least one of said one or
`more components, and an expiration time identifying a time
`by which the components must be installed in the client
`computer.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a high-level block diagram illustrating an
`architectural overview of one embodiment of the present
`invention for updating a client computer.
`FIG.2 is a block diagram illustrating a configuration file
`that is used to specify the componentsthatare to be installed
`in the client computer shown in FIG.1.
`FIG. 3 is a block diagramillustrating a client profile that
`defines the client conditions of the client computer shown in
`FIG.1.
`
`30
`
`35
`
`40
`
`45
`
`55
`
`FIG.4 is a high level flowchart illustrating a process for
`updating the client computer of FIG. 1, the process including
`receiving a user request, transmitting an upgrade request
`from the client computer to the server computer, analyzing
`the upgrade request, and installing one or more components
`identified in the upgrade request.
`FIG.5 is a flowchart illustrating in further detail the steps
`that occur in FIG. 4 with respect to transmitting the upgrade
`request.
`
`APPLE
`

`EXHIBIT 1005 - PAGE 0010
`    
`

`
`

`

`US 7,062,765 Bl
`
`3
`FIG.6 is a flowchart illustrating in further detail the steps
`that occur in FIG. 4 with respect to analyzing the upgrade
`request.
`FIG.7 is a flowchart illustrating in further detail the steps
`that occur in FIG. 4 with respectto installing the one or more
`components.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`
`FIG. 1 is a high-level block diagram illustrating an
`architectural overview of one embodiment of the present
`invention. The system is configured to install one or more
`components 102 on a client computer 104. As used herein,
`the term “components” can include any item of executable
`code or data, or group of such items, that is capable of being
`processed by a computer. As a non-limiting example, the
`components 102 can include: a computer program, a DLL,
`an object code module, a data file, a text file, a Hyper Text
`Markup Language (HTML)file, a graphic or multimedia
`file, a streaming media file, or other such program and/or
`data. The components 102 may optionally be stored in
`compressed form. Further, although only one client com-
`puter 104 is shown in FIG. 1,
`the present
`invention is
`capable for installing the components 102 on a plurality of
`client computers 104 numberingin the tens of thousands and
`upwards.
`The client computer 104 is connected via a network 108
`to a configuration server 112. Furthermore, the client com-
`puter 104 and the configuration server 112 are operably
`connected to a componentserver 116. The componentserver
`116 identifies the location of each the components 102 may
`be installed on a client computer 104. The client computer
`104 is also connected via a network 108 to a download
`server 118. The download server 118 maintains the compo-
`nents 102.
`
`Optionally, the configuration server 112, the component
`server 116, the download server 118, or some combination
`thereof, may be integrated on a single computer platform.
`Further, it is noted the configuration server 112, the com-
`ponent server 116, and the download server 118 may not
`necessarily be located in the same room, building or com-
`plex. In fact, the configuration server 112, the component
`server 116, and the download server 118 could be located in
`different states or countries.
`
`The client computer 104, the configuration server 112, the
`component server 116, and the download server 118 may
`each have any conventional general purpose single- or
`multi-chip microprocessor such as a Pentium® processor, a
`Pentium® Pro processor, a 8051 processor, a MPS® pro-
`cessor, a Power PC® processor, or an ALPHA® processor.
`In addition, the microprocessor may be any conventional
`special purpose microprocessor such as a digital signal
`processor or a graphics processor. Furthermore, the client
`computer 104, the configuration server 112, the component
`server 116, and the download server 118 may be desktop,
`server, portable, hand-held,set-top, or any other desired type
`of configuration. Furthermore, the client computer 104, the
`configuration server 112, and the componentserver 116, and
`the download server 118 each may be used in connection
`with various operating systems such as: UNIX, LINUX,
`Disk Operating System (DOS), OS/2, Windows 3.X, Win-
`dows 95, Windows 98, and Windows NT.
`The network 108 may include any type of electronically
`connected group of computers including, for instance, the
`following networks: Internet, Intranet, Local Area Networks
`(LAN) or Wide Area Networks (WAN). In addition,
`the
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`connectivity to the network may be, for example, remote
`modem, Ethernet (IEEE 802.3), Token Ring (IEEE 802.5),
`Fiber Distributed Datalink Interface (FDDI) or Asynchro-
`nous Transfer Mode (ATM). As used herein, the Internet
`includes network variations such as public internet, a private
`internet, a secure internet, a private network, a public
`network, a value-added network, an intranet, and the like.
`The client computer 104 comprises a user interface mod-
`ule 120, an upgrade manager module 124, and a setup
`manager module 126. As can be appreciated by one of
`ordinary skill in the art, each of the modules 120, 124, and
`126 comprise various sub-routines, procedures, definitional
`statements, and macros. In one embodiment of the inven-
`tion, each of the modules 120, 124, and 126 are made
`available in a shareable dynamic link library. In another
`embodimentof the invention, each of the modules 120, 124,
`and 126 are separately compiled and linked into a single
`executable program. Therefore, the following description of
`each of the modules 120, 124, and 126 is used for conve-
`nience to describe the functionality of the client computer
`104. However, the processes that are undergone by each of
`the modules 120, 124, and 126 maybearbitrarily redistrib-
`uted to one of the other modules or combined together in a
`single module. Furthermore, the user interface module 120,
`the upgrade manager module 124, and the setup manager
`module 126 may be written in any programming language
`such as C, C++, BASIC, Pascal, Java, and FORTRAN.C,
`C++, BASIC, Pascal, Java, and FORTRANare industry
`standard programming languages for which many commer-
`cial compilers can be used to create executable code.
`The function of the modules in the client computer 104 is
`as follows. The user interface module 120 contains routines
`that for handling dialog boxes, message boxes, and other
`routines for presenting information to the user via a com-
`puter display (not shown). The upgrade manager module
`124 handles the communication between the configuration
`server 112 and the component server 116. The upgrade
`manager module 124 also handles communication protocol,
`such as TCP/IP, between program servers, component down-
`loading, and component authentication.
`Furthermore,
`the upgrade manager module 124 deter-
`mines the client conditions of the client computer 104 prior
`to downloading selected ones of the components 102. As
`used herein, the term “client conditions” includes, among
`other things: a preferred operating language, e.g., French,
`English, German,etc., the name of the operating system of
`the client computer 104, any version number that may be
`associated with the operating system, the existence of one or
`more other components of the client computer 104, and/or a
`useridentification number. In one embodiment ofthe inven-
`
`tion, the client conditions are permanently stored in a client
`profile 128. In another embodiment of the invention, the
`client profile 128 is dynamically generated upon each
`upgrade request by the user.
`The setup manager module 126 handlesthe installation of
`the components 102 after the components are transmitted to
`the client computer 104. Furthermore, if necessary, the setup
`manager module 126 registers the downloaded components
`with the operating system on the client computer 104 and
`performsother installation housekeeping.
`The configuration server 112 includes at least one con-
`figuration file 114. It is noted that the term “configuration
`server” is used for convenience to describe any computer
`that can maintain and transmit the configurationfile 114. For
`example, the configuration server 112 can be anytraditional
`“web server” that hosts media content for viewing by users.
`In one embodiment, the configuration server 112 includes a
`
`APPLE
`

`EXHIBIT 1005 - PAGE 0011
`    
`

`
`

`

`US 7,062,765 Bl
`
`5
`plurality of web pages that are viewable by a user at the
`client computer 104. The web pages are virtual documents
`that each have embedded links which link portions of the
`virtual pages to other virtual pages and other data. A user can
`traverse the virtual pages and downloaddata by “clicking”,
`with a mouseorother input device a predetermined portion
`of the virtual page.
`According to this embodiment, at least one of the web
`pages includes a “download” hyperlink or icon that
`is
`associated with a configuration file 114. The configuration
`file 114 (FIG. 1) contains the configuration information for
`the installation of one or more components 102 on the client
`computer 104. For example, to advertise a word processing
`component, named “FOOBAR,” a download hyperlink is
`displayed to the user “RECEIVE OUR LATEST PROD-
`UCT, FOOBAR.”If the user is interested in the FOOBAR
`component, the user can simply “click” on the phrase to
`download the configuration file 114 and initiate the down-
`load process.
`In one embodimentof the invention, each of the configu-
`ration files 114 is associated with one of the components
`102. The format of the configuration file 114 can be arbi-
`trary, so long as it is readable by the client computer 104.
`One embodiment of the configuration file 114 is set forth
`below with reference to FIG. 2. The configurationfile 114 is
`adapted such that it may be copied and stored on other
`computers. Advantageously, if one of the components 102 is
`freely distributed or is considered “shareware”, the configu-
`ration file 114 that is associated with such component may
`be copied and distributed to others, and thereby enable
`others to download andinstall the software upon accessing
`the configuration file 114.
`In one embodimentof the invention, before the configu-
`ration file 114 is transmitted from the configuration server
`112 to the client computer 104, the configuration server 112
`requests various items of information from the user for
`registration and demographic tracking purposes.
`The component server 116 manages information about
`each of the components 102 that are installable on the client
`computer 104. To facilitate management and access to the
`information, the component information maybe stored in a
`component database 135. In one embodiment of the inven-
`tion, the components 102 are maintained on the component
`server 116. In another embodiment of the invention, the
`components 102 are maintained on one or more other
`componentservers, such as the download server 118.
`The component server 116 includes at least two modules:
`a connection manager module 130 and an upgrade handler
`module 134. Similar to the modules describes above with
`
`reference to the client computer 104, the processes that are
`undergone by each of the modules 130 and 134 may be
`arbitrarily redistributed to one of the other modules, com-
`bined together in a single module, or made available in a
`shareable dynamic link library. In summary, the function of
`the modules is as follows. The connection manager 130
`handles communication with multiple client computers 104.
`The connection manager 130 packages requested informa-
`tion for transmission across the network 108. The upgrade
`handler 134 is in operable communication with the connec-
`tion manager module 130. The upgrade handler 134 iden-
`tifies components to be downloaded to the client computer
`104 based upon the contents of the client profile 128 and the
`contents of the configuration file 114.
`FIG.2 is a block diagram illustrating the elements of one
`embodiment of the configuration file 114 (FIG. 1). The
`configuration file 114 identifies one or more components for
`downloading to the client computer 104 (FIG. 1). The
`
`35
`
`40
`
`45
`
`50
`
`55
`
`6
`configurationfile 114 maybestored as any type offile, such
`as, for example: a text file, an HTMLfile, or a Java Archive
`(JAR)file. It will be appreciated by one of ordinary skill in
`the art that the configuration file 114 may contain other
`information or have a different format.
`
`The configuration file 114 includes a configuration file
`identifier 202. The configurationfile identifier 202 identifies
`the format of the remainderof the configuration file 114. In
`one embodiment of the invention, at least two types of
`configuration files exist: a client readable configurationfile
`(CRfile) and a server configuration file (SR file). The CRfile
`is configured to be read by the upgrade manager module 124
`(FIG. 1), which parses its contents, and subsequently
`requests the components from the component server 116.
`The SRfile is not parsed by the client computer 104 (other
`than reading the configuration file identifier), but is instead
`forwarded unparsed to the componentserver 116. Advanta-
`geously, to be contrasted with the CR file, any changes in
`formatofthe SRfile requires no corresponding changeto the
`upgrade manager module 124 on each ofthe client comput-
`ers 104. This feature is especially advantageous when used
`in a system having thousands of client computers and
`wherein the upgrade manager module 124 of each of the
`client computers would otherwise have to be upgraded.
`The configuration file 114 also contains a number of
`componentsfield 204 and one or more component identifiers
`208. The number of componentsfield 204 identifies the total
`number of component
`identifiers 208 that are contained
`within the configuration file 114. Each of the component
`identifiers 208 identifies one or more of the components 102
`(FIG. 1). The configuration file 114 also includes an expi-
`ration time field 212. The expiration time field 212 contains
`a time by whichtheinstallation process must be completed,
`otherwise, the componentserver 116 refuses to complete the
`transaction. Since the configuration file 114 may be copied
`to other computers,
`the use of the expiration time can
`advantageously be usedto limit the lifespan of the configu-
`ration file 114, and prevent others from hosting the configu-
`ration file 114.
`FIG.3 is a block diagram illustrating the contents of the
`client profile 128. The client profile 128 identifies client
`conditions, such that when one of the components 102 (FIG.
`1) is designated for installation, a version of the component
`that is compatible with the client conditions may beselected.
`The client profile 128 includes a number of data field
`elements. The data field elements include: a product infor-
`mation field 304, an operating system informationfield 312,
`a distribution codes field 316, a user identification field 320,
`a last update field 324, a language identifier field 328, a
`country identifier field 332, and a state identifier field 336.
`Tt
`is noted that the data fields of the client profile are
`presented for exemplary purposes, and that selected data
`fields of the client profile 128 can be removed andthat other
`data fields may optionally be added.
`A description of each ofthe datafields in theclient profile
`128 is as follows. The production information field 304
`contains product information about one or more components
`that are currently installed in the client computer 104 (FIG.
`1). The product information may include a version number
`and a componentserial number for each installed compo-
`nent. The operating system information field 312 identifies
`the type of operating system that is executing on the client
`computer 104 as well as any version information that is
`associated with the operating system. The distribution codes
`field 316 identifies the distributor of the currently installed
`components. The user identification field 320 contains a
`unique identifier that uniquely identifies the client computer
`
`APPLE
`

`EXHIBI

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