throbber
PCT
`
`WORLD INTELLECTUAL PROPERTY ORGANIZATION
`International Bureau
`
`
`
`INTERNATIONAL APPLICATION PUBLISHED UNDER THE PATENT COOPERATION TREATY (PCT)
`(51) International Patent Classification © ;
`(11) International Publication Number:
`WO 97/30549
`HOAN 7/10
`
`(43) International Publication Date:
`
`21 August 1997 (21.08.97)
`
`
`
`(22) International Filing Date:
`
`13 January 1997 (13.01.97)
`
`(21) International Application Number: PCT/US97/00257|(81) Designated States: AL, AM, AT, AU, AZ, BA, BB, BG, BR,
`BY, CA, CH, CN, CU, CZ, DE, DK, EE, ES, FI, GB, GE,
`HU,IL, IS, JP, KE, KG, KP, KR, KZ, LC, LK, LR, LS,
`LT, LU, LV, MD, MG, MK, MN, MW, MX, NO, NZ, PL,
`PT, RO, RU, SD, SE, SG, SI, SK, TJ, TM, TR, TT, UA,
`UG, UZ, VN, ARIPOpatent (KE, LS, MW,SD, SZ, UG),
`Eurasian patent (AM, AZ, BY, KG, KZ, MD, RU,TJ, TM),
`European patent (AT, BE, CH, DE, DK, ES, FI, FR, GB,
`GR, IE, IT, LU, MC, NL, PT, SE), OAPIpatent (BF, BJ,
`CF, CG, CI, CM, GA, GN, ML, MR, NE, SN, TD, TG).
`
`(30) Priority Data:
`601,455
`
`14 February 1996 (14.02.96)
`
`US
`
`[US/US]; Suite 100, 20833
`INC.
`(71) Applicant: POWERTV,
`Stevens Creek Boulevard, Cupertino, CA 95014 (US).
`
`(72) Inventor: MACINNIS, Alexander, G.; 121 Windsor Drive, San|Published
`Carlos, CA 94070 (US).
`With international search report.
`
`(74) Agents: POTENZA,Joseph, M.et al.; Banner & Witcoff, Ltd.,
`Suite 1100, 1001 G Street, N.W., Washington, DC 20001-
`4597 (US).
`
`MENTS
`
` (34) Titles MULTICAST DOWNLOADING OF SOFTWARE AND DATA MODULES AND THEIR COMPATIBILITY REQUIRE-
`
` MFG. MODEL
`|OSVERS."|
`
`
`(57) Abstract
`
`A system for downloading different versions of software or data modules into a plurality of terminals having different compatibility
`interfaces including an authoring component for generating the different module versions (201), a downloading source including a descriptor
`table which associates each module version with a list of compatibility requirements needed to download the module (202), and a plurality
`of terminals coupled to the downloading source (202, 203). The downloading source transmits the descriptor table to each terminal and
`also continuously tranmsits the modules over the network. Each terminal extracts the descriptor table and, based on a match between an
`entry in the descriptor table and an internally stored table, determines which version of the softw are should be downloaded.
`
`:
`
`APPLE
`

`EXHIBIT 1003 - PAGE 0001
`    
`

`
`

`

`
`
`FOR THE PURPOSES OF INFORMATION ONLY
`
`
`
`Codes used to identify States party to the PCT on the front pages of pamphlets publishing international
`applications under the PCT.
`
`Armenia
`
`Austria
`
`Australia
`
`Barbados
`Belgium
`Burkina Faso
`
`Bulgaria
`Benin
`
`Brazil
`Belarus
`
`Canada
`
`Central African Republic
`
`Congo
`Switzerland
`Céte d'Ivoire
`Cameroon
`China
`Czechoslovakia
`Czech Republic
`Germany
`Denmark
`Estonia
`Spain
`Finland
`France
`Gabon
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`AM
`AT
`AU
`BB
`BE
`BF
`BG
`BJ
`BR
`BY
`
`United Kingdom
`Georgia
`Guinea
`Greece
`Hungary
`ireland
`Italy
`Japan
`Kenya
`Kyrgystan
`Democratic People’s Republic
`of Korea
`Republic of Korea
`Kazakhstan
`Liechtenstein
`Sri Lanka
`Liberia
`Lithuania
`Luxembourg
`Latvia
`Monaco
`Republic of Moldova
`Madagascar
`Mali
`Mongolia
`Mauritania
`
`MW
`MX
`NE
`NL
`NO
`NZ
`PL
`PT
`RO
`RU
`sD
`SE
`5G
`Sl
`SK
`SN
`SZ
`TD
`TG
`TJ
`TT
`UA
`UG
`US
`UZ
`VN
`
`
`
`
`
`Malawi
`Mexico
`Niger
`Netherlands
`Norway
`New Zealand
`Poland
`Portugal
`Romania
`Russian Federation
`Sudan
`Sweden
`Singapore
`Slovenia
`Slovakia
`Senegal
`Swaziland
`Chad
`Togo
`Tajikistan
`Trinidad and Tobago
`Ukraine
`Uganda
`United States of America
`Uzbekistan
`Viet Nam
`
`APPLE
`

`EXHIBIT 1003 - PAGE 0002
`    
`

`
`

`

`WO 97/30549
`
`PCT/US97/00257
`
`MULTICAST DOWNLOADING OF SOFTWARE AND DATA
`MODULES AND THEIR COMPATIBILITY REQUIREMENTS
`
`BACKGROUND OF THE INVENTION
`
`1.
`
`Technical Field
`
`This invention relates generally to systems for downloading software and
`
`data modules into terminals over a network, such as home communication
`
`terminals (HCTs) in a cable television network. More specifically, the invention
`
`provides an apparatus and method for selectively downloading different versions
`
`of software modules and data modules to a variety of potentially different
`
`10
`
`terminal types, where the differences may be due to variations in hardware,
`
`operating system versions, or other parameters.
`
`2.
`
`Related Information
`
`Systems capable of downloading computer software into terminals such
`
`as HCTs in a subscriptiontelevision system are well known. For example, U.S.
`
`15
`
`Patent No. 5,440,632, entitied "Reprogrammable Subscriber Terminal" , describes
`
`a
`
`system including means
`
`for
`
`reprogramming subscriber
`
`terminals by
`
`downloading code in a series of transactions. Such systems can be used to add
`
`new applications, or to replace outdated or faulty software. Difficulties and
`
`inefficiencies may arise, however, in networks having different types of terminals
`
`20
`
`which require different versions of software.
`
`For example,in a cable television network, some subscribers may have
`
`the newest HCT model with fast processors, special peripherals and extra
`
`memory, while other subscribers may have older HCTs which do not have such
`
`APPLE
`

`EXHIBIT 1003 - PA
`GE 0003
`    
`

`
`

`

`WO 97/30549
`
`PCT/US97/00257
`
`-2-
`
`interfaces or capabilities. Additionally, some HCTs may be loaded with the
`
`latest version of an operating system, while others may be compatible only with
`
`older versions of the operating system. Similarly, HCTs from different suppliers
`
`with different designs generally require different versions of software.
`
`In such
`
`systems, multiple versions of software and data must be downloaded. Thus
`
`arises a problem in determining which versions of particular modules should be
`
`downloaded into each terminal, and providing an efficient scheme for doing so.
`
`Onepossible method for solving the aforementioned problem is to provide
`
`each terminal with means for requesting only a particular version of a module
`
`10
`
`from the headend.
`
`Unfortunately,
`
`such a
`
`scheme
`
`requires
`
`two-way
`
`communication between the terminals and the headend, which may be expensive
`
`and inefficient to provide, particularly since each terminal would require, at least
`
`temporarily, a dedicated channel for transmitting the requested version of the
`
`software or data.
`
`15
`
`Other downloading schemes involving client-server paradigms in a
`
`network environment are also known. For example, in a network comprising a
`
`server and a plurality of clients, any particular client on the network requiring
`
`a new or updated software module can download such software by making a
`
`request to the server, which provides the requested version over the network.
`
`20
`
`However, as noted above, in networks such as subscription television systems,
`
`such two-way communication may be expensive and difficult to provide, and may
`
`result in increased complexity and reduced download performance. Furthermore,
`
`APPLE
`

`EXHIBIT 1003 - PAGE 0004
`    
`

`
`

`

`WO 97/30549
`
`PCT/US97/00257
`
`-3-
`
`it may be difficult
`
`to coordinate version numbers among different software
`
`applications,
`
`complicating the
`
`task of determining which versions of
`
`complementary software should be downloaded into a particular terminal.
`
`Finally, systems which require communication between the downloading
`source and each terminal impose additional processing requirements upon the
`
`downloading source and onthe terminal.
`
`In a network comprising hundreds of
`
`thousands of terminals and a single downloading source, such added processing
`
`can slow downthe system unacceptably.
`
`The above-described problemswill likely worsen as the variety of HCTs
`
`10
`
`expands to provide consumers with a wider range of terminals of varying
`
`capabilities and prices, and from multiple suppliers with different designs.
`
`Accordingly,
`
`in order to overcome the above and other difficulties, a
`
`means of selectively downloading software and data modules without requiring
`
`two-way client-server communication is desirable. To date, no such suitable
`
`15
`
`approach has been developed.
`
`SUMMARYOF THE INVENTION
`
`The present invention solves the aforementioned problems by providing
`
`a system and methodfor selectively downloading software and data modules to
`
`terminals in a network without requiring communication between the terminal and
`
`20
`
`the downloading source. The term "modules" as used herein includes application
`
`programs, subparts of programs, operating systems, “patches”, data tables,
`
`groups of interpretable instructions, and thelike.
`
`APPLE
`

`EXHIBIT 1003 - PAGE 0005
`    
`

`
`

`

`WO 97/30549
`
`PCT/US97/00257
`
`-4-
`
`According to various aspects of the invention, an authoring source
`
`generates a plurality of module versions according to different
`
`terminal
`
`configurations, operating system versions, or other hardware parameters such as
`
`memory size.
`
`Each different module version has accompanying descriptor
`
`information which identifies the compatibility requirements and/or interfaces
`
`needed to support the module. A transmitting (downloading) source such as a
`
`headendfacility transmits, to a plurality of terminals, descriptors which correlate
`
`each module version with its required interfaces. Each terminal receives the
`
`transmitted descriptors and, by comparing the descriptors with an internal
`
`10
`
`configuration table, selects the "best" module version for that terminal. The
`
`actual module may be downloaded in a "carousel" channel which continuously
`
`broadcasts all
`
`the various versions of modules in a loop, or
`
`it may be
`
`downloaded by other means such as an in-band channel.
`
`According to another aspect of the invention, each terminal may
`
`15
`
`automatically extract the descriptors upon boot-up to automatically find the most
`
`recent version of the operating system to be downloaded for the terminal.
`
`According to yet another aspect of the invention, each terminal may
`
`extract the descriptors after a user selects an application program.
`
`Other features and advantageswill become apparent throughthe following
`
`20
`
`detailed description, the drawings, and the appended claims.
`
`APPLE
`

`EXHIBIT 1003 - PAGE 0006
`    
`

`
`

`

`WO 97/30549
`
`PCT/US97/00257
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`-5-
`
`FIG.
`
`1 shows one possible configuration for a home communication
`
`terminal (HCT) on which various principles of the present invention may be
`
`practiced.
`
`FIG. 2 depicts a system employing various principles of the invention
`
`including an authoring source 201, a transmitting source 202, and a plurality of
`terminals 203 and 204 for receiving module descriptors.
`
`FIG. 3 shows in more detail how information regarding different module
`
`versions may be maintained in a table T and transmitted to a plurality of
`
`10
`
`terminals, each of which maintains an internaltable describing its compatibility
`
`requirements.
`
`FIG. 4 shows various steps which maybecarried outin each terminal to
`
`downloadthe latest version of an operating system into a terminalupon boot-up.
`
`FIG. 5 shows various steps which may becarried out in each terminalto
`
`15
`
`download a compatible module
`
`into the
`
`terminal using the transmitted
`
`descriptors.
`
`DETAILED DES
`
`ION OF THE PREFERRED EMBODIMENTS
`
`FIG. 1 shows a block diagram of a home communication terminal (HCT)
`
`which may be used to practice various principles of the present invention. The
`
`20
`
`HCT mayinclude a CPU card 100, graphics card 101, decoder card 102, display
`
`panel and key pad 103, main processing board 104, front end 105, tuning section
`
`106, and audio section 107.
`
`It is contemplated that the inventive principles may
`
`APPLE
`

`EXHIBIT 1003 - PA
`GE 0007
`    
`

`
`

`

`WO 97/30549
`
`PCT/US97/00257
`
`-6-
`
`be practiced using any suitable CPU 100a such as a PowerPC or Motorola 68000
`
`series, with suitable EPROM 100c and RAM 100b.
`
`It is also contemplated that
`
`application programs executing on CPU 100a can interact with various
`
`peripherals such as a mouse, game controllers, keypads, network interfaces, and
`
`the like, as is well known in the art.
`
`In summary, any particular HCT may
`
`comprise a variety of hardware components, but different HCTs may be equipped
`
`with different compatibility requirements such as memory sizes, processortypes,
`
`audio capabilities, operating system versions, interfaces, and the like.
`
`FIG. 2 shows a system for downloading different module versions to
`
`10
`
`diverse HCTsin accordance with various aspects of the invention.
`
`In FIG. 2,
`
`the system 200 includes an authoring source 201, a transmitting source 202 such
`
`as a headend, a network N suchas a cable television network, and a plurality of
`
`terminals 203 and 204 such as HCTs which are coupled to the network.
`
`In
`
`accordance with various aspects of the invention, authoring source 201 may
`
`15
`
`comprise one or more compilers, assemblers, loaders, debuggers and so forth
`
`represented by 201c. Using these tools, a plurality of modules indicated
`
`generally by 201a and 201b may be generated, corresponding to different
`
`application programs, different versions of the same application program, tuning
`
`tables, program guides, other data tables, and the like.
`
`20
`
`As one example, module 20ia may comprise an executable video game
`
`program compatible with HCTs whichincludeat least 500 kilobytes of memory,
`
`while module 201b may comprise a more elaborate version of the same program
`
`APPLE
`

`EXHIBIT 1003 - PAGE 0008
`    
`

`
`

`

`WO 97/30549
`
`PCT/US97/00257
`
`-7-
`
`which requiresatleast | megabyte of memory (for example, it may include more
`
`sophisticated graphics or provided additional colors). While it is apparent that
`module 201a may operate in HCTs configured to contain either 500 kilobytes or
`| megabyte,
`it is also apparent that module 201b can Only operate properly in
`HCTs configured to contain atleast 1 megabyte of memory.
`
`In accordance with various embodiments of the invention, each module
`
`201a and 201b may be provided to transmitting source 202 and associated with
`
`a module identifier. For example, module 202a is associated with a module
`
`identifier A which identifies it, while module 202b is associated with a module
`
`identifier B which identifies it. A compatibility requirement table T comprises
`entries each including a module identifier M and a list of compatibility
`requirements C which identify compatibility interfaces and/or capabilities
`required in a terminal in order for that terminal to download that module.
`
`Continuing with the example in FIG. 2, suppose that module 202a is a
`
`video game which requires 500 kilobytes of memory in an HCT, while module
`202b is another version of the same video game which requires 1 megabyte of
`
`memory to operate (€.g.,
`
`suppose it has enhanced graphics as compared to
`
`module 202a). Thus, module 202a may have a module identifier such as "Video
`
`Game X" (represented by A in table T) while module 202b may have the same
`
`or a similar module identifier such as "Video Game X" (represented by B in table
`T). Each moduleidentifier preferably includes location information which allows
`
`the module to be located in a data stream, for example. Alternatively,
`
`the
`
`10
`
`15
`
`20
`
`APPLE
`

`EXHIBIT 1003 - PAGE 0009
`    
`

`
`

`

`WO 97/30549
`
`PCT/US97/00257
`
`-8-
`
`location information may be separately stored in table T, or derived by other
`
`means.
`
`Associated with each module identifier in table T is a list of compatibility
`
`requirements C which identifies the requirements needed to download and
`
`execute (or use) the specified module. For example, the entry for module A
`
`would include a field indicating that
`
`the module requires 500 kilobytes of
`
`memory to execute, while the entry for module B would indicate 1 megabyte in
`
`this field.
`
`In accordance with various embodiments of the invention, portions of
`
`10
`
`table T are transmitted continuously from transmitting source 202 over network
`
`N to terminals 203 and 204. Thus, each terminal receivesa list of all modules,
`
`their compatibility interface requirements, and the location where each module
`
`may be found (e.g., an address in a data stream such as an MPEGtransport
`
`stream, or a combination of data stream ID and identification number such as
`
`15
`
`packet and table identifiers within the stream). Each terminalalso has its own
`
`internal table which identifies its own capabilities and/or compatibility interfaces.
`
`By matching the downloadable module requirements with its own internal
`
`capabilities, each terminal can determine what version of the video game
`
`application to download and whereto find it, such as the location within a data
`
`20
`
`carousel or other structure.
`
`The actual downloading procedure may be
`
`accomplished by selectively extracting the module from a separate channel on
`
`which transmitting source 202 continuously broadcasts all versions of all the
`
`APPLE
`

`EXHIBIT 1003 - PAGE 0010
`    
`

`
`

`

`WO 97/30549
`
`PCT/US97/00257
`
`-9-
`
`modules in a loop, or by other means.
`
`In accordance with the foregoing, each
`
`terminal may download the correct version of software and/or data from
`
`transmitting source 202 without making a request to source 202.
`
`As shownin FIG. 2, each terminal may include an internal table such as
`
`table 203a in terminal 203. Table 203 may identify the manufacturer’s model
`
`numberof the terminal, the version numberofthe currently executing operating
`system,
`the amount of memory currently installed, and the current hardware
`
`configuration (for example, interface type such as Ethernet, etc.).
`
`Other fields may also be included, such as CPU RAM (indicating the
`
`10
`
`amount of optional CPU memory installed), CPU flash (indicating the amount of
`
`optional CPU flash memory installed), MPEG RAM (indicating the amount of
`
`MPEGvideo decoder memory installed), graphics RAM (indicating the amount
`
`of graphics RAMinstalled), available CPU RAM (the amountof available CPU
`
`memory installed, or largest loadable block), or the like.
`
`If a terminal
`
`is upgraded to include additional memory or other
`
`capabilities, the terminal's internal table would be correspondingly updated.
`
`in compatibility
`in additional detail how entries
`shows
`3
`FIG.
`requirements table T may be configured to describe the terminal capabilities
`
`required to download each module from downloading source 302. The term
`
`"module descriptors" as used herein refers to the group of compatibility
`requirements associated with a particular version of a module. Compatibility
`
`requirements table T thus correlates moduleidentifiers (and their addresses) with
`
`15
`
`20
`
`APPLE
`

`EXHIBIT 1003 - PA
`GE 0011
`    
`

`
`

`

`WO 97/30549
`
`PCT/US97/00257
`
`- 10 -
`
`capabilities required to download the module. Each of the actual modules is
`
`preferably associated with a module identifier in table T, which is in turn
`
`associated with module descriptors. Other arrangements are of course possible,
`
`and the table configuration shown in FIG. 3 is not
`
`intended to be limiting.
`
`Entries could of course be combined or associated in ways other than that
`
`specifically illustrated.
`
`As shown in FIG. 3, each module can have associated therewith
`
`descriptors for a hardware manufacturer 306, hardware model number 307,
`
`operating system manufacturer 308, operating system version 309, memory
`
`10
`
`capacity 310, audio or other type of card manufacturer 311, and audio or other
`
`type of card model number 312. Additionally, location information 320 may be
`
`associated with each module to indicate the location from which the module may
`
`be downloaded (for example, a channel number with other associated parameters,
`
`an MPEGstream number,or the like). The descriptors shown in FIG. 3 are
`
`15
`
`intended to be exemplary and in no way limiting. More or fewer descriptors
`
`could of course be included, such as network subsystems, encoding/decoding
`
`options, encryption/decryption options, modulation techniques, data formats, and
`
`the like.
`
`As shown in FIG. 3,
`
`for example,
`
`two versions of a video game
`
`20
`
`application known as "Mortal Combat" are shown, each having different module
`
`descriptors.
`
`In order to download the first version of “Mortal Combat", a
`
`terminal must be compatible with hardware manufacturer A, model number
`
`APPLE
`

`EXHIBIT 1003 - PAGE 0012
`    
`

`
`

`

`WO 97/30549
`
`PCT/US97/00257
`
`-11-
`
`greater than or equalto 1.0, must be executing an operating system manufactured
`
`by company X having a version numberof 2.0 or greater, must have at least 500
`
`kilobytes of memory, and must have an audio card manufactured by manufacturer
`
`C with a model numberof 2.2 or greater.
`
`If a terminalin the system meets all
`
`these requirements, it is assured that the indicated version of the application is
`
`compatible with the terminal.
`
`If, however, any oneof the capabilities in the list
`
`fails to match the terminal’s capabilities, the application is presumed to be not
`
`compatible with the terminal.
`
`The second entry, also indicated as "Mortal Combat", has similar
`
`10
`
`compatibility requirements, but requires a higher hardware model number (2.0
`
`or greater), a higher operating system version (3.1 or greater), at
`
`least
`
`|
`
`megabyte of memory, and an audio card within a
`
`range of audio cards
`
`manufactured by C (e.g., models 2.2 through 3.0).
`
`Similarly,
`
`three versions of a video game entitled "Asteroids" are
`
`15
`
`described in table T,
`
`including versions which can operate across different
`
`terminal hardware manufacturers, operating system manufacturers, and audio
`
`cards. Two versions of a chess video game are also shown, neither of which
`
`requires an audio card (note "Don’t Care"entries). The final entry depicts a data
`
`table which can be downloaded by any terminal which includes an operating
`
`20
`
`system manufactured by X; no other capabilities or interfaces are required.
`
`One or more fields may be included in table T which specify how the
`
`comparison between module descriptors and terminal capabilities is to be carried
`
`APPLE
`

`EXHIBIT 1003 - PAGE 0013
`    
`

`
`

`

`WO97/30549
`
`PCT/US97/00257
`
`-12-
`
`out. For example, a field can be included which, when set to a first value,
`indicates that the model and version numberof the terminal must exactly match
`the model number and version number of the module: when set to a second
`
`value, indicates that the model numbers must match exactly but that the module
`
`operating system version number must be equal to or greater than the version
`
`numberof the terminal; when set to a third value, indicates that both the model
`
`number and operating system version numbers of the terminal must be equal to
`
`or greater than the model number and version number of the module. Other
`
`variations are of course possible. As shown in FIG. 3,
`
`for example,
`
`the
`
`10
`
`comparison qualifiers are illustrated as being combined with the compatibility
`
`requirement values in eachfield.
`
`A plurality of modules may be concatenated into a data stream 305 which
`
`is continuously transmitted on a "carousel" type channel, such as an out-of-band
`
`channel or an in-band channel (indeed, the same transmission channel could be
`
`15
`
`used to transmit the descriptor table T). Other techniques of transmitting data
`
`containing the downloadable modules are of course possible, and the invention
`
`is not intended to be limited in this respect.
`
`Four terminals 313 through 316 are illustrated in FIG. 3 as being coupled
`
`to network N.
`
`In accordance with various aspects of the invention, table T may
`
`20
`
`be transmitted continuously over network N to all terminals, which receive the
`
`table and extract
`
`information therefrom to determine which modules are
`
`compatible with the terminal. In order to accomplish this, each terminal includes
`
`APPLE
`

`EXHIBIT 1003 - PAGE 0014
`    
`

`
`

`

`WO 97/30549
`
`PCT/US97/00257
`
`-13-
`
`an internal table such as table 313a including entries which at least overlap with
`
`entries in table T. A computer program or other mechanism 313b receives table
`
`T from the transmitting source 302 and comparesentries in table T with the entry
`in the internal table for that terminal
`in order to select a compatible software
`
`module to be downloaded.
`
`Each terminal may extract information from table T at boot-up time, or
`
`upon initiation of a particular program, orat any other time. For example, each
`
`terminal may operate mechanism 313b upon boot-up to determine whether a
`
`newerversion of the operating system is available for downloading.
`
`(In such a
`
`10
`
`case, the operating system version entry in table T would not be compared, since
`
`the module to be downloadedis the operating system itself, and, as such, it does
`
`not require the previously loaded operating system for compatibility with the
`
`terminal).
`
`15
`
`As depicted in FIG. 3, terminal 313 includes an internal table 313a which
`
`is presently configured as being manufactured by
`indicates that the terminal
`hardware manufacturer A, model 1.0, and executing an operating system
`manufactured by X, version 2.0. Additionally, terminal 313 includes 1 megabyte
`of memory and audio card model 2.2 manufactured by manufacturer C.
`Terminals 314 through 316 include similar tables. Note that terminal 316 does
`
`20
`
`not have an audio card.
`
`Suppose that the user of terminal 313 selects the video game "Mortal
`Combat", whichis not currently resident in terminal 313.
`In accordance with the
`
`APPLE
`

`EXHIBIT 1003 - PAGE 0015
`    
`

`
`

`

`WO 97/30549
`
`PCT/US97/00257
`
`-14-
`
`invention, download mechanism 313b extracts descriptor table T from the
`
`network and locates the two versions of the requested "Mortal Combat" video
`
`game in the table.
`
`By comparing the two version descriptors with the
`
`compatibility requirements of terminal 313, terminal 313 determines that only the
`
`first version of the game can be downloaded, because the second version requires
`
`a hardware model number of 2.0 or greater, which is not compatible with the
`
`entries in table 313a. Accordingly, because the terminal entry in table 313a
`
`satisfies the criteria described in the first entry of table T,
`
`it can and does
`
`download that version of "Mortal Combat" from module data stream 305,
`
`10
`
`without
`
`requiring any requests
`
`to downloading source 302.
`
`Thus, no
`
`communication is required between terminal 313 and downloading source 302 to
`
`identify and coordinate the downloading of the correct version of a video game.
`
`Terminal 313 can extract the proper version of "Mortal Combat" by virtue of an
`
`association between its module namein table T with an address in data stream
`
`15
`
`305.
`
`As another example, suppose that terminal 315 needs to download the
`
`video game "Asteroids". Of the three versions of "Asteroids" included in table
`
`T, the first version cannot be downloaded by terminal 315 because it is only
`
`compatible with terminals manufactured by manufacturer A. However, either of
`
`20
`
`the second two versions would be compatible with the requirements included in
`
`table 315a, the only difference being that the second version requires only 500
`
`kilobytes to be downloaded, while the third version requires 1 megabyte.
`
`In
`
`APPLE
`

`EXHIBIT 1003 - PAGE 0016
`    
`

`
`

`

`WO 97/30549
`
`PCT/US97/00257
`
`-15-
`
`accordance with various aspects of the invention, terminal mechanism 315b may
`
`select the “best” version, which would presumably correspondto the 1 megabyte
`
`version (i.e., it is the version having the highest degree of match).
`
`As yet another example, note that any of terminals 313, 314 and 315 may
`
`download the data table (last entry in table T), but that terminal 316, which
`
`executes an operating system manufactured by manufacturerZ,is not compatible
`
`with the data table. Thus, it is apparent that each terminal can select for itself
`
`-- without communicating to downloading source 302 -- which of several versions
`
`of a software or data module can be downloadedinto that terminal.
`
`10
`
`FIG. 4 shows steps which may be executed by each terminal in order to
`
`automatically upgrade the operating system to the latest version upon boot-up or
`
`other initialization sequence. Beginning in step 401, the terminal boots up or
`
`otherwise commencesaninitialization sequence. This could occur upon power-
`
`up, for example, or upon receiving a command from the network.
`
`15
`
`In step 402, the terminal receives the module descriptor table from the
`
`network from a known channeland location.
`
`In step 403, the terminal compares
`
`all
`
`the operating system modules in the received descriptor table which are
`
`compatible with the particular hardware configuration of the terminal (e.g.,
`
`it
`
`matches terminal manufacturer, model, operating system manufacturer, and
`
`20
`
`memory). Based on the comparison between the operating system modulesin the
`
`received table and the hardware parameters in its internal configuration table, the
`
`terminal finds the highest operating system version number which is compatible
`
`APPLE
`

`EXHIBIT 1003 - PAGE 0017
`    
`

`
`

`

`WO 97/30549
`
`PCT/US97/00257
`
`with the terminal’s hardware parameters.
`
`- 16-
`
`In step 404, a comparison is made between the highest compatible
`
`operating system version numberavailable in the received descriptor table and
`
`the currently executing operating system version numberin the terminal.
`
`If the
`
`highest available operating system version is less than or equal to the version
`
`currently executing in the terminal, then in step 405 the terminal continuesits
`
`normal processing. However, if a newer (higher) version of the operating system
`is available,
`in step 406 the terminal downloads the newer version from the
`
`download data stream, and reboots the terminal in step 407 to install the newer
`
`10
`
`version. The downloading in step 406 can be accomplished by tuning to a
`
`“carousel” channel and locating the newest operating system version according
`
`to its address in the data channel (the module address can be extracted from the
`
`descriptor table).
`
`In step 404,
`
`instead of determining whether a newer version of the
`
`15
`
`operating system is available, the terminal could instead make a determination
`
`that the currently loaded operating system is corrupted or otherwise notsuitable.
`
`In such a circumstance, the terminal could automatically obtain the latest version
`
`of the operating system by locating and downloading it from the data stream.
`
`Instructions to execute the steps shown in FIG. 4 could be installed into ROM
`
`20
`
`to prevent erasure or corruption.
`
`FIG. 5 shows how a terminal may download an application module or
`
`data module in response to selecting an application, whether by user input or
`
`APPLE
`

`EXHIBIT 1003 - PAGE 0018
`    
`

`
`

`

`WO 97/30549
`
`PCT/US97/00257
`
`-l7-
`
`other means(e.g., the operating system mayselect a program or data table for
`
`a purpose). Beginning in step 501, an application module (suchas a video game,
`
`a stock markettool, a billing program, or the like) or a data module (such as a
`
`tuning table, operating system parameter table, screen icon or the like)
`
`is
`
`selected.
`
`In step 502, the terminal extracts the module descriptor table from the
`
`network at a known channel and location.
`
`In Step 503, the termina! finds the
`
`"best" version of the selected application or data module in the received
`
`descriptor
`
`table which is compatible with the terminal’s capabilities and
`
`interfaces. This may include checking all of the fields shown in FIG. 3, a subset
`
`10
`
`of these fields, or additional fields.
`
`In step 504, a comparisonis (optionally) made between the "best" located
`
`version of the selected module and any currently loaded version (if any) of the
`
`module in the terminal.
`
`If a currently loaded version of the module is already
`
`the "best" version for the terminal, then in step 505 the currently loaded version
`
`15
`
`is executed. However, if a newer version (or a version not currently loaded) is
`
`available, then in step 506 the specified version of the module is downloaded
`
`from the network. Thereafter, in step 507, the application is executed or the
`
`downloaded data module is accessed.
`
`In step 501, instead of an application or data module being "selected", the
`
`20
`
`terminal may perform an equivalentstep by terminating an existing application.
`Thus, for example,if a "navigator" program is normally executed bythe terminal
`
`to allow a user to select from among a group of applications,
`
`then at
`
`the
`
`APPLE
`

`EXHIBIT 1003 - PA
`GE 0019
`    
`

`
`

`

`WO 97/30549
`
`PCT/US97/00257
`
`- 18-
`
`completionof any particularapplication, the terminal could automatically execute
`
`the steps shown in FIG. 5 to determine if a newer version of the navigator
`
`program were available.
`
`Such a case might occur where new features were
`
`added to

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