throbber
(12) United States Patent
`US 7,062,765 B1
`(10) Patent No.:
`Pitzel et al.
`(45) Date of Patent:
`Jun. 13, 2006
`
`US007062765B1
`
`(54)
`
`(75)
`
`SYSTEM AND METHOD FOR UPDATING
`INFORMATION VIA A NETWORK
`
`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 HIS)
`
`( * )
`
`Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(21)
`
`Appl. No.: 09/318,438
`
`(22)
`
`Filed:
`
`May 25, 1999
`
`Int. Cl.
`
`(51)
`
`(2006.01)
`G06F 9/445
`(2006.01)
`G06F 15/16
`(2006.01)
`G06F 9/44
`US. Cl.
`...................... 717/177; 709/201; 709/203;
`717/175; 717/176; 717/178; 717/168
`Field of Classification Search .................... 717/1,
`717/11, 1687178, 125, 103; 709/220, 223,
`709/201, 203; 713/1, 178; 711/133
`See application file for complete search history.
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`(52)
`
`(58)
`
`(56)
`
`4,558,413
`5,019,963
`5,155,847
`5,247,683
`5,339,432
`5,408,619
`5,421,009
`5,421,017
`5,457,778
`5,473,772
`5,493,728
`5,537,596
`5,557,798
`
`*
`
`A * 12/1985
`5/1991
`10/1992
`9/1993
`8/1994
`4/1995
`5/1995
`5/1995
`* 10/1995
`12/1995
`2/1996
`7/1996
`9/1996
`
`>>>>>>>>>>>>
`
`..
`
`........... 707/203
`Schmidt et a1.
`........... 364/200
`Alderson et a1.
`..... 395/600
`Kirouac et a1.
`..
`..... 395/700
`Holmes et a1.
`..
`
`........ 713/1
`Crick ..........
`
`Oran ...............
`........... 395/325
`Platl ................
`........... 395/600
`Scholz et a1.
`..... 395/700
`
`Sieffert
`............
`..... 345/501
`
`..... 395/650
`Halliwell et a1.
`
`........... 395/250
`Solton et a1.
`Yu et a1.
`..........
`........... 395/700
`Skeen et a1.
`.....
`........... 395/650
`
`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 a1.
`4/1997 Nonaka et a1.
`............. 395/800
`.....
`.. 395/200.5
`9/1997 Metz et a1.
`
`..
`......... 395/616
`10/1997 Siljestroemer
`
`........... 395/187.01
`12/1997 Baker et a1.
`1/1998 Barbara et a1.
`.
`395/200.09
`
`1/1998 Dedrick ..........
`395/200.47
`2/1998 Dedrick ............... 395/613
`
`.............. 395/712
`3/1998 Kullick et a1.
`
`(Continued)
`OTHER PUBLICATIONS
`
`TITLE: Client-Server Computing, author: Alok Sinha,
`ACM, Jul. 1992*
`TITLE: Managing Update Conflicts in Bayou, A Weakly
`Connected Replicated Storage System, author: Terry et al,
`ACM, 1995*
`
`(Continucd)
`
`Primary Examiner%hameli C. Das
`(74) Attorney, Agent,
`or Firmisteven C. Stewart,
`RealNetworks, Inc.
`
`(57)
`
`ABSTRACT
`
`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
`begin the upgrade, the client computer reads a configuration
`file that identifies the components for downloading. Upon
`receipt of the configuration file, the client computer deter-
`mines the hardware and software configuration of the client
`computer. The client computer automatically communicates
`with a component server via a network and requests one or
`more components for downloading to the client computer
`based upon the configuration file and the hardware and
`software conditions of the client computer.
`
`51 Claims, 7 Drawing Sheets
`
`502
`
`50H
`
`CLIENT REQUEST
`UPGRADE
`
`
`
`
`504
`
`VALID
`CONFIGURATIO
`FILE7
`YES
`
`”0
`
`
`IGNORE
`
`FILE
`
`
`
`
`.515
`5/2
`DETERMINE
`GENERATE
` UPGRADE
`NO
`WHETHER FILE IS
`HANDOFF
`TO BE ANALYZED
`
`
`BY CLIENT
`REQUEST
`
`9
`520
`
`DETERMINE
`GENERATE MISSING
`
`CLIENT
`COMPONENT
`
`CONDITIONS
`
`
`UPGRADE REQUEST
`
`
`
`
`
`APPLE
`

`EXHIBIT 1005 - PAGE 0001
`    
`

`
`

`

`US 7,062,765 B1
`
`Page 2
`
`US. PATENT DOCUMENTS
`
`OTHER PUBLICATIONS
`
`3/1998 He. ............................. 395/619
`5,734,898 A
`
`.
`av1s e a .
`33/57/1121
`1133: Emmy e: 3:
`2'322'333 g
`’
`’
`
`..
`. 395/172
`5/1998 Cole etal.
`5,752,042 A
`
`5/1998 Gregerson .....
`.. 707/10
`5,758,342 A
`6/1998 Kullick et al.
`395/712
`5,764,992 A
`
`.. 395/200.79
`6/1998 Metz et al.
`.
`5,768,539 A
`.. 395/200.51
`8/1998 Sadowsky
`5,790,796 A
`
`8/1998 LIIhCh """"""" 395/703
`5790356 A
`
`3133: $2311); ’51"""3953/331322
`2,3833% g
`
`9/1998 Stupek et 31.
`395/500
`5,809,287 A
`
`
`10/1998 Bredenberg
`707/2
`5,826,253 A
`11/ 1998 Olds .......................... 395/712
`5,832,275 A
`11/1998 OldS et al.
`.................... 707/10
`5,832,487 A
`
`'5'953/‘21393
`ii;133:
`lljeel 6331'
`g'gjg'gg g
`
`..
`awce
`.
`,
`,
`
`12/1998 Collins, III etal.
`395/200.51
`5,845,090 A
`12/1998 Marsh et a1.
`............. 705/14
`5,848,397 A
`
`12/1998 Northrup
`.. 395/20033
`5,850,518 A
`1/1999 Cuomo et al.
`...... 345/326
`5,861,883 A
`l/l999 Reed et al.
`.
`395/200.3l
`5,862,325 A
`
`................. 395/712
`2/1999 Todd et al.
`5,867,714 A
`2/1999 Beyda ........................ 395/712
`5,870,610 A
`
`7/1999 Ma et 31'
`' 717/171
`59205725 A
`18/1333 iu§t?ntetlal' ”””””””” 717/11
`2232i?! g
`5,978,911 A * “/1999 K506861211
`713/1
`6,009,274 A * 12/1999 Fletcher et a1.
`............. 395/712
`6,038,601 A 4
`3/2000 Lambert et 31.
`709/226
`
`6,058,445 A *
`5/2000 chm et a1.
`. 710/103
`...................... 711/133
`6,073,214 A *
`6/2000 Fawcett
`6,128,656 A * 10/2000 Matchefts et al.
`...... 709/223
`6,144,992 A *
`11/2000 Turpin et al.
`..
`. 709/208
`
`6,151,643 A :
`11/2000 Cheng et al.
`................. 710/36
`25133523261 3i *
`$5881 gllsrahet 31' ““““““““ 33%;;
`
`'
`'
`,,
`011° “e
`3/2001 Donohue .................... 717/173
`6,202,207 B1
`6 233 341 Bl *
`5/2001 Riggins ...................... 380/277
`
`6:246:770 B1 4
`6/2001 Stratton et 31.
`. 380/281
`.............. 709/223
`6,253,240 Bl *
`6/2001 Axberg et al.
`6,256,668 B1 *
`7/2001 Slivka et al.
`............... 709/220
`6263364 31*
`7/2001 Najork et 31.
`..
`. 709/217
`
`.............. 717/171
`6,314,565 B1 :
`11/2001 Kenner et a1.
`6'330'600 Bl * 12/2001 MatChefis et 31'
`""" 709/223
`
`6,34l,373 Bl *
`l/2002 Shaw ............
`717/173
`6/2002 Miron ........................ 707/203
`6,401,239 B1
`6 463 433 B1 * 10/2002 Baclawski
`7075
`
`6,463,473 Bl * 10/2002 Gubbi
`. 709/225
`6,496,875 B1* 12/2002 Cheng et al.
`.................. 710/1
`6,505,058 B1*
`1/2003 Willey ........................ 455/574
`
`6,512,954 B1 *
`1/2003 Fox et a1.
`607/31
`........................... 370/256
`6,535,490 B1 *
`3/2003 Jain.
`25:53:45? 3i : 13/388: 8:528:21
`703/22):
`
`6,871,221 B1 *
`3/2005 Styles
`........................ 709/221
`
`TITLE Efl’icient Transparent Application Recovery in C1i-
`ent-Server Information Systems, author: Lomet et al, ACM,
`1998*
`“
`,,
`Barry Nance: When Pugh comes to serVe BYTE: JUL
`1998,1311 98-102
`Pete Loshin, “Tune I11, Turn 011 the Web” BYTE, Feb. 1997,
`Pp 145-146.
`Michael Fisk, “Automating the Administration of Hetero-
`geneous LANs” USENIX AssociationiProceedings of the
`Tenth Systems Admlnlstratlon Conference Sep.-Oct. 1996,
`1311 181-186
`Gansheimer,
`and Wilfried
`Osel
`Peter
`W.
`“OpenDistilncremental Software Distribution” USENIX
`AssociationiProceedings of the Ninth Systems Adminis-
`-
`_
`tranonconferencefi‘sell 1995’ pp‘ 181 193‘.
`Atsushl Futakata, Patch Control Mechanism for Large
`Scale Software” USENIX AssociationiProceedings of the
`Nmth Systems Admlmstratlon Conference, SEll 1995, PB
`213-219.
`for Flexible Software
`Thomas Eirich, “Beam: A Tool
`Update” LISA, Sep. 1994, pp. 75-82.
`John Lockard and Jason Larke, “Synctree for Single Point
`Installation, Upgrades,
`and OS
`Patches” USENIX
`AssociationiProceedings of the Twelfth Systems Admin-
`Imam“ Conference, 1330' 1998: 1313' 2611270
`.
`Ram R. Vangata, Michale Cnpps and Raj .G. VaradaraJan,
`“Software Dlstrlbutlon and Management in a Networked
`Environment” USENIX AssociationiProceedings of the
`Sixth Systems Administration Conference, Oct. 1992, pp.
`163-170.
`Bobby Krupczak, Kenneth L. Calvert and Mostafa Ammar,
`“Implementing Protocols in Java: The Price of Portability”
`IEEE Infocom ’98, vol. 2, pp. 765-773.
`.
`.
`.
`“
`.
`.
`Vlnay Kamtkar and Alex Dells: Real'TIme Chem'serVer
`Push Strategies: Specification and Evaluation” IEEE Com-
`puter SOClety Techmcal Commmee 011 Real-Tlme Systemsa
`1998, pp. 179-188.
`Yun—Wu Huang and Philip S. Yu, “A Bandwidth-Sensitive
`Update Scheduling Method for Internet Push” IEEE Com-
`puter Society Technical Committee on Distributed Process-
`ing, May 1998, pp. 303-310.
`.
`“
`.
`,,
`Cliff Berg, How Do I Create a Slgned Castanet Channel?
`DP DOPb’S Journal, J31113199551311 1.21430
`.
`Llng L111: Canon Pu: W61 Tang, DaYId Buttlers John Blggss
`Tong Zhou, Paul Bennlnghoff, Wel Han and Fenghua Yu,
`“CQ: A Personalized Update Monitoring Toolkit” Sigmod’
`987Proceedings of ACM SIGMOD International Confer-
`ence on Management of Data, Jun. 1998, pp. 547-549.
`* cited by examiner
`
`APPLE
`

`EXHIBIT 1005 - PAGE 0002
`    
`

`
`

`

`U.S. Patent
`
`Jun. 13, 2006
`
`Sheet 1 0f 7
`
`US 7,062,765 B1
`
`755
`
`COMPONENT
`
`DATABASE
`
`
`
`
`775
`
`COMPONENT SERVER
`
`7.34
`
`UPGRADE
`
`HANDLER
`
`CONHGURAWON
`
`
`
`
` MODULE
`SERVER
`
`
`CONNECUON
`
`
`
`
`MANAGER
`
`MODULE
`
`CONHGURAWON
`
`FlE
`
`
`
`COMPONENT i
`
`DOWNLOAD
`
`SERVER
`
`7/5
`
`
`
`
`COMPUTER
`
`CUENT
`
`PROHLE
`
`
`
`
`
` CUENT
`
`
`720
`
`
`
`
`
`
`SETUP
`UPGRADE
`USER
`MANAGER
`MANAGER
`INTERFACE
`
`
`
`MODULE
`MODULE
`MODULE
`
`
`
`
`
`
`
`247637
`
`APPLE
`

`EXHIBIT 1005 - PAGE 0003
`    
`

`
`

`

`U.S. Patent
`
`Jun. 13, 2006
`
`Sheet 2 0f 7
`
`US 7,062,765 B1
`
`7/4\
`
`204
`
`206’
`
`202
`
`
`
`2/2
`
`
`
`
`
`
`
`
`
`
`
`
`< COMPONENT IDENTIFIER N >
`
`< EXPIRATION TIME >
`
`F/éi2
`
`APPLE
`

`EXHIBIT 1005 - PAGE 0004
`    
`

`
`

`

`U.S. Patent
`
`Jun. 13, 2006
`
`Sheet 3 0f 7
`
`US 7,062,765 B1
`
`CLIENT PROFILE
`
`504
`
`PRODUCT
`
`INFORMATION
`
`LAST
`
`UPDATE
`
`324
`
`.328
`
`IDENTIFIER
`
`OPERATING SYSTEM
`
`INFORMATION
`
`LANGUAGE
`
`IDENTIFIER
`
`.332
`
`DISTRIBUTION
`
`CODES
`
`COUNTRY
`
`IDENTIFIER
`
`5.35
`
`USER
`
`STATE
`
`IDENTIFICATION
`
`W35
`
`APPLE
`

`EXHIBIT 1005 - PAGE 0005
`    
`

`
`

`

`U.S. Patent
`
`Jun. 13, 2006
`
`Sheet 4 0f 7
`
`US 7,062,765 B1
`
`400
`
`START
`
`404
`
`USERINYHATES
`
`UPGRADE REQUEST
`
`405’
`
`CUENT GENERATES AN
`
`SENDSIT TO THE SERVER
`
`UPGRADE REQUEST AND
`
`4 72
`
`475
`
`SERVER ANALYZES THE REQUEST
`
`AND SENDS AN UPGRADE RESPONSE
`
`
`
`BACK TO THE CUENT
`
`CUENT PARSES THE RESPONSE
`AND DOWN LOADS/INSTALLS
`
`REQUESTED UPGRADE
`
`420
`
`END
`
`F/6i4’
`
`APPLE
`

`EXHIBIT 1005 - PAGE 0006
`    
`

`
`

`

`U.S. Patent
`
`Jun. 13, 2006
`
`Sheet 5 0f 7
`
`US 7,062,765 B1
`
`500
`
`502
`
`CLIENT REQUEST
`
`UPGRADE
`
`
`
`
`
`
`
`
`
`?
`
`504’
`
`508
`
`CONFIGURATIO
`
`FILE
`
`IGNORE
`
`FILE
`
`GEN ERATE
`
`DETERMINE
`
`
`WHETHER FILE IS
`
`TO BE ANALYZED
`
`UPGRADE
`BY CLIENT
`REQUEST
`
`
`9
`
`
`HANDOFF
`
`
`
`5.20
`
`DETERMINE
`
`
`
`
`
`
`GENERATE MISSING
`
`CLIENT
`COMPONENT
`CONDITIONS
`UPGRADE REQUEST
`
`
`
`
`SEND UPGRADE
`REQUEST
`
`
`
`
`
`RETURN
`
`F7675
`
`APPLE
`

`EXHIBIT 1005 - PAGE 0007
`    
`

`
`

`

`U.S. Patent
`
`Jun. 13, 2006
`
`Sheet 6 of 7
`
`US 7,062,765 B1
`
`
`
`START
`
`660
`
`
`
`DENY
`UPGRADE
`UPGRADE
`
`
`REQUEST
`REQUEST
`
`
`
`EXMRED
`
`
`
` SELECT
`
`COMPONENTS
`
`
`
`6U4
`
`
`
`5L?
`
`ACCORWNG TO
`
`CUENT PROHLE
`AND/OR
`OPERABLE
`
`DEPENDENOES
`
`6h?
`
`
`
`COMPONENTS
`IDENWHEDIN
`
`DATABASE
`
`
`
`
`
`
` 62%
`
`d2?
`
`
`
`SEND UPGRADE
`
`RESPONSE
`
`IDENWFflNG
`
`COMPONENTS
`
`#636”
`
`APPLE
`

`EXHIBIT 1005 - PAGE 0008
`    
`

`
`

`

`U.S. Patent
`
`Jun. 13, 2006
`
`Sheet 7 0f 7
`
`US 7,062,765 B1
`
`700
`
`UPGRADE
`
`
`
`REQUEST HAVE
`NOHFY USER ,
`
`AVAlABLE COMPONENT
`THAT UPGRADE
`
`
`
`INFORMAWON
`
`
`
`?
`
`DOWNLOAD
`
`COMPONENT
`
`AUTHENWCATE
`
`COMPONENT
`
`DECOMPRESS
`
`COMPONENT
`
` START
`
`
` 705’
`FAlED
`
`
`
`
`
`
`
`
`
`
`LAST
`COMPQNENT
`
`'
`INSTALL
`COMPONENTS
`
`
`/‘7Z2
`
`,77
`
`APPLE
`

`EXHIBIT 1005 - PAGE 0009
`    
`

`
`

`

`US 7,062,765 B1
`
`1
`SYSTEM AND METHOD FOR UPDATING
`INFORMATION VIA A NETWORK
`
`
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`
`The field 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 method for
`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 programs are often customized toward a
`particular geographic speaking region. A computer user in
`France expects to see help menus and other infom1ation
`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 and install 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, uscrs arc oftcn confuscd and download thc incorrcct
`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.
`
`SUMMARY OF THE INVENTION
`
`The present invention has several aspects, no single one
`of which is solely responsible for its desirable attributes.
`Without limiting the scope of this invention as expressed by
`the claims which follow, its more prominent features will
`now be discussed briefly.
`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
`
`10
`
`15
`
`20
`
`5
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`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 comprising a first
`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 of the 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
`more installable 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
`
`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 component identifiers, 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 components that are to be installed
`in the client computer shown in FIG. 1.
`FIG. 3 is a block diagram illustrating a client profile that
`defines the client conditions of the client computer shown in
`FIG. 1.
`
`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 B1
`
`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 respect to 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 numbering in the tens of thousands and
`upwards.
`The client computer 104 is connected via a network 108
`to a configuration scrvcr 112. Furthcrmorc, thc clicnt com-
`puter 104 and the configuration server 112 are operably
`connected to a component server 116. The component server
`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 microproccssor such as a Pcntium® proccssor, 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 component server 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 intemet, a private
`internet, a secure intemet, 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
`embodiment of 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 may be arbitrarily 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 FORTRAN are 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
`user identification number. In one embodiment of the 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 handles the 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
`performs other 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 configuration file 114. For
`example, the configuration server 112 can be any traditional
`“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 B1
`
`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. Auser can
`traverse the Virtual pages and download data by “clicking”,
`with a mouse or other 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 embodiment of 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 configuration file 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 and install the software upon accessing
`the configuration file 114.
`In one embodiment of 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 may be 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
`component servers, 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
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`configuration file 114 may be stored as any type of file, such
`as, for example: a text file, an HTML file, 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 configuration file identifier 202 identifies
`the format of the remainder of the configuration file 114. In
`one embodiment of the invention, at least two types of
`configuration files exist: a client readable configuration file
`(CR file) and a server configuration file (SR file). The CR file
`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 SR file is not parsed by the client computer 104 (other
`than reading the configuration file identifier), but is instead
`forwarded unparsed to the component server 116. Advanta-
`geously, to be contrasted with the CR file, any changes in
`format of the SR file requires no corresponding change to the
`upgrade manager module 124 on each of the 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
`components field 204 and one or more component identifiers
`208. The number of components field 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 which the installation process must be completed,
`otherwise, the component server 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 used to 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 be selected.
`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 information field 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.
`It
`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 and that other
`data fields may optionally be added.
`A description of each of the data fields in the client profile
`128 is as follows. The produ

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