`(12) Patent Application Publication (10) Pub. No.: US 2006/0026304 A1
`Price
`(43) Pub. Date:
`Feb. 2, 2006
`
`US 200600263O4A1
`
`(54) SYSTEM AND METHOD FOR UPDATING
`SOFTWARE IN ELECTRONIC DEVICES
`
`(76) Inventor: Robert M. Price, Seattle, WA (US)
`Correspondence Address:
`BLACKLOWE & GRAHAM, PLLC
`701 FIFTHAVENUE
`SUTE 4800
`SEATTLE, WA 98104 (US)
`(21) Appl. No.:
`11/124,366
`
`(22) Filed:
`
`May 4, 2005
`
`Related U.S. Application Data
`(60) Provisional application No. 60/567,903, filed on May
`4, 2004.
`
`Publication Classification
`
`(51) Int. Cl.
`(2006.01)
`G06F I3/10
`(52) U.S. Cl. .................................................................. 710/8
`(57)
`ABSTRACT
`A System and method for communicating with one or more
`Software-controlled devices.
`
`- -
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`- - - - - - - - - - - - - - - - - - - - - - - - - - -
`4. O O
`Receive Software
`Update
`404
`
`Connect and Activate
`Device
`410
`
`
`
`Build Software Device
`Database 408
`
`Software Update
`Required?
`412
`
`Retreive and load software update to device
`
`416
`
`Use Device
`
`1
`
`APPLE 1009
`
`
`
`Patent Application Publication Feb. 2, 2006 Sheet 1 of 11
`
`US 2006/0026304 A1
`
`O
`N
`
`-
`
`8
`
`3
`
`:
`
`s
`
`/ 3
`
`
`
`2
`
`
`
`Patent Application Publication Feb. 2, 2006 Sheet 2 of 11
`
`US 2006/0026304 A1
`
`
`
`3
`
`
`
`Patent Application Publication Feb. 2, 2006 Sheet 3 of 11
`
`US 2006/0026304 A1
`
`- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
`Connect Device to
`200
`Coordinating
`Computer 204
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Register Device
`
`208
`
`
`
`
`
`
`
`Compare Device Software
`Versions to Available Software
`Database
`210
`
`Software Update
`Required?
`21
`
`Acquire software and load into coordinating Computer
`216
`
`w
`
`Deliver software update from coordination
`computer to software-controlled device
`
`220
`
`Use Device
`
`4
`
`
`
`Patent Application Publication Feb. 2, 2006 Sheet 4 of 11
`
`US 2006/0026304 A1
`
`
`
`ldentify device to receive software updates
`
`204
`
`204-2
`
`Password protect identified devices
`
`- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
`
`Fig. 4
`
`5
`
`
`
`Patent Application Publication Feb. 2, 2006 Sheet 5 of 11
`
`US 2006/0026304 A1
`
`
`
`210
`
`Activate Device
`
`Operate current version software
`
`Register device software
`
`Fig. 5
`
`6
`
`
`
`Patent Application Publication Feb. 2, 2006 Sheet 6 of 11
`
`US 2006/0026304 A1
`
`
`
`210
`
`Ascertain Device Type
`
`Sort Device into Device Groups
`
`210-10
`Associate Software Versions with Device Groups
`
`ASSociate Software Versions with Device Models
`
`210-14
`
`------------------------------------
`
`Fig. 6
`
`7
`
`
`
`Patent Application Publication Feb. 2, 2006 Sheet 7 of 11
`
`US 2006/0026304 A1
`
`- - - - - - - - - - - - - - - - - - -
`- - - - - - - - - - - -
`400
`Receive Software
`Update
`
`404
`
`Begin
`402
`
`
`
`Connect and Activate
`Device
`410
`
`Build Software Device
`Database
`408
`
`
`
`
`
`
`
`Software Update
`Required?
`412
`
`Retreive and load software update to device
`
`416
`
`Use Device
`
`424
`
`End
`428
`
`Fig. 7
`
`8
`
`
`
`Patent Application Publication Feb. 2, 2006 Sheet 8 of 11
`
`US 2006/0026304 A1
`
`o
`
`
`
`404-2
`Coordinating computer communicates with software entity
`
`404
`
`404-6
`Coordinating computer receives software upgrade for device
`
`Fig. 8
`
`9
`
`
`
`Patent Application Publication Feb. 2, 2006 Sheet 9 of 11
`
`US 2006/0026304 A1
`
`408-2
`Associate Software Versions with Device Groups
`
`408
`
`Associate Software Versions with Device models
`
`408-6
`
`to - - - - - - - - - - - - - - - - - - - - -o an - - - - - - - - - - -
`
`Fig. 9
`
`P
`
`
`
`
`
`ldentify device to receive software updates
`
`410
`
`41 O-2
`
`Password protect identified devices
`
`- - - - - - - - - - - - - - - - - - - - - - - -
`
`Fig. 10
`
`10
`
`
`
`Patent Application Publication Feb. 2, 2006 Sheet 10 of 11
`
`US 2006/0026304 A1
`
`
`
`416
`
`Deliver software updates
`
`416-6
`Replace embedded software with current version
`
`
`
`s
`
`e
`
`e
`
`Fig.11
`
`11
`
`
`
`Patent Application Publication Feb. 2, 2006 Sheet 11 of 11
`
`US 2006/0026304 A1
`
`
`
`-
`
`3
`
`s
`
`3
`
`s /
`
`
`
`s
`
`wse O
`
`12
`
`
`
`US 2006/0026304 A1
`
`Feb. 2, 2006
`
`SYSTEMAND METHOD FOR UPDATING
`SOFTWARE IN ELECTRONIC DEVICES
`
`PRIORITY CLAIM
`0001. This application claims priority to U.S. Provisional
`Application Ser. No. 60/567,903 filed May 4, 2004, incor
`porated by reference in its entirety herein.
`
`COPYRIGHT NOTICE
`0002 This disclosure is protected under United States
`and International Copyright Laws. (C) 2005 Robert M. Price.
`All Rights Reserved. A portion of the disclosure of this
`patent document contains material which is Subject to copy
`right protection. The copyright owner has no objection to the
`facsimile reproduction by anyone of the patent document or
`the patent disclosure, as it appears in the Patent and Trade
`mark Office patent file or records, but otherwise reserves all
`copyright rights whatsoever.
`
`FIELD OF THE INVENTION
`0003. This invention relates generally to collecting data
`from, Sending data to, and/or updating Software or digital
`data in electronic devices.
`
`BACKGROUND OF THE INVENTION
`0004 Digital-based devices require software in order to
`interact with other devices, store, and manipulate informa
`tion and to perform its designed task. If the Software is
`deficient or otherwise corrupted, generally So is the ability of
`the device to reliably operate. Digital-based devices often
`require updated Software versions in order to fix poorly
`performing Software that originally was Supplied with the
`device, commonly referred to as Software patches. Other
`Software patches are obtained in order to prevent introduc
`tion of, repair, counter intervene, or otherwise eliminate
`malevolent code hacked in by Vandal Software authors.
`Other Software updating includes version replacement to
`optimize performance and/or broaden utility over what a
`customer had been Satisfactorily using, or introduction of
`additional Software modules to a device. Furthermore, addi
`tion of new data other than executable Software onto a
`device may be useful, for example to add new map data to
`a personal digital assistant or new music to a portable
`music-playing device.
`0005 Digital devices vary in their complexity. Compara
`tively simple devices require only a few hundred lines of
`machine code in an EEPROM (electrically erasable pro
`grammable read-only memory) as commonly found in a
`microwave oven or coffee maker with a simple keypad or a
`timer, and as Such can Support little modification to their
`Software. Moderately complex devices contain a Substantial
`amount of Software, but have no provision for making
`Software updates Simple or notifying the customer when
`they might be necessary. Complex digital devices require
`microprocessors that Sport only the Simplest Software, yet
`require firmware, an operating System, or other device
`specific software. Examples of such devices include DSL
`modems, cable modems, network routers, wireleSS acceSS
`points, digital cameras, MP3 or other music and Video
`players, memory card readers, combination printer/Scanner/
`copier devices, personal digital assistants, certain cellular
`phones, portable game-playing Systems, GPS receivers,
`
`other computers including Special-purpose computerS Such
`as dedicated word processing or calculation or entertainment
`computers, and combination devices which incorporate a
`plurality of one or more of these functions. Additional
`examples of Such devices which are not currently widely
`available include common home and kitchen appliances
`with added Software capability and even running Shoes with
`a microprocessor recently introduced to consumers. These
`moderately complex digital devices require interactions of
`the device user or purchaser to determine if Software updates
`are available, obtain (request and download) Software
`updates for the device, and/or to perform authentication or
`authorization to updated the device.
`0006 These devices often require multiple sessions by a
`user to Search, retrieve, and transfer the current Software
`updates for a device on a device-by-device basis. Such
`manual Search and retrieve process presents a laborious and
`inconvenient burden to the device end-user or owner. In the
`current State of the art Such Software updates are therefore
`infrequently performed, frequently resulting in replacement
`of faulty products, customer return of non-functional prod
`ucts, or telephone-based Support calls to troubleshoot prob
`lems which are time-consuming and expensive to both
`user-purchasers and manufacturers. Furthermore, because
`the process of obtaining device Software and installing it is
`limited, the market for third-party Software add-ons or
`improvements for Such devices is very limited in Scope.
`
`SUMMARY OF THE INVENTION
`0007 Particular embodiments include a system and
`method to enable a user-controlled proxy System or coordi
`nating computer to automatically or Semi-automatically
`communicate with multiple devices, determine the currently
`operating Software contents and versions for each device,
`and automatically or Semi-automatically upgrade each
`device with updated Software without requiring user inter
`vention. The Software may include communication, operat
`ing System or application-specific program codes that
`improve a given device's designed function.
`0008. The coordinating computer is able to search for
`updating Software upon connection with a given device, or
`alternatively, receive and Store updated Software presented
`by an originating Software entity, and automatically deliver
`the Software to a given device upon the device's re-connec
`tion to the proxy System.
`0009. The devices may be homogenously similar, or
`Substantially diverse and heterogeneous. The homogenous
`or heterogeneous digital devices may be in continuous or
`intermittent Signal communication with the proxy-coordi
`nating computer by Wired or wireleSS connections. The
`proxy computer is Similarly accessible by wired and wireleSS
`connection, and acts as an intermediate node for the Software
`updating of devices that may not necessarily have the
`capability to update themselves.
`0010 Alternate embodiments of the system maintain the
`elements of one or more devices and a coordinating com
`puter and employ these elements for other purposes related
`to management of devices. The System as described above is
`preferably optimized for updating Software. The pursuit of
`Such other purposes may include collection of other types of
`device data.
`
`13
`
`
`
`US 2006/0026304 A1
`
`Feb. 2, 2006
`
`These and similar data assist in enabling one or
`0.011
`more or any combination of the following and other actions:
`Software updates, timely product Support, warranty admin
`istration, inventory or insurance or depreciation of devices,
`market research, Sales and promotion of device upgrades or
`replacements or of additional devices or device Software or
`Services or device accessories, design research for improve
`ment of reliability or functionality or compatibility or ease
`of use of current and future devices, and competitive analy
`SS.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`0012. The preferred and alternative embodiments of the
`present invention are described in detail below with refer
`ence to the following drawings.
`0013 FIG. 1 is a schematic of a particular embodiment
`of the Software updating System;
`0.014
`FIG. 2 is a schematic of an alternate embodiment
`of the Software updating System;
`0.015
`FIG. 3 is a schematic of a particular embodiment
`of a method for updating Software in devices,
`0016 FIG. 4 is an expansion of the Connect process
`block of FIG. 3;
`0017 FIG. 5 is an expansion of the Register process
`block of FIG. 3;
`0.018
`FIG. 6 is an expansion of the Compare Software
`Version block of FIG. 3;
`0019 FIG. 7 is an alternate embodiment of a method for
`updating Software in devices,
`0020 FIG. 8 is an expansion of the Receive Software
`Update block of FIG. 7;
`0021 FIG. 9 is an expansion of the Build software
`Device Database block of FIG. 7; and
`0022 FIG. 10 is an expansion of the Connect and Acti
`vate Device block of FIG. 7; and
`0023 FIG. 11 is an expansion of the Retrieve and Load
`Software block of FIG. 7.
`0024 FIG. 12 is an alternate embodiment of a software
`updating System.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENT
`0.025 To facilitate the system, the user will designate one
`device with user interface and communications capabilities
`(typically a PC, but a TiVo-like device, Palm, or Pocket PC
`could work as well, for example). This device serves as a
`central point of communications as a “coordinating PC, and
`hereafter referred to as the proxy System. This device acts as
`a proxy in the common lay Sense of acting on behalf of one
`or more other devices, and may include but does not require
`operation as a proxy server in the particular Sense commonly
`used in discussions of Internet browsing and connectivity. In
`alternate embodiments, the “device' can be a virtual device,
`Such as a Specified domain on the Internet, enabling the user
`to access the System from any device that can access the
`Internet.
`
`0026. One preferable step in the process comprises iden
`tifying to the coordinating PC the Set of one or more devices
`to be kept up-to-date. This can be done by manually entering
`device identification including current Software revision
`levels, or (better) by connecting the device to the coordi
`nating PC via USB/1394/serial/other communications port,
`Wi-Fi, infra-red, Bluetooth, or other wireless means (FM,
`etc.), or even optically (for example, by Scanning a bar code
`on the device or its packaging). In one embodiment, the
`system has the ability to offer the user the option (when a
`device is connected) to omit this device from the collection
`of devices to be kept up-to-date. For example a device that
`is already Subject to update Service is provided by another
`coordinating PC. A further optional embodiment is for the
`coordinating PC to Store an identifying code on the device
`So that if the device having the identifying code is connected
`to other coordinating PCS, these computerS may default to
`not updating the device already having the identifying code.
`0027. Another step, preferably performed at this point or
`later (although in alternate embodiments it could be per
`formed earlier) would be to establish a communications
`channel between the device and the coordinating PC which
`would be used for updates. In addition to a communications
`means, Security could be established, for example by Storing
`on the PC an administrative password for the device (as
`nearly every wireleSS access point, network router, or broad
`band modem has), and/or setting the password on the device
`to a known or determinable value. In Some environments,
`Security may be particularly important in the case where the
`communication was wireleSS. In one embodiment, the Sys
`tem multiple forms of connection, for example establishes a
`physical connection the first time to initiate Security, and
`then uses wireleSS media for Subsequent connections. In
`other embodiments, the Security can be active or dynamic,
`updating periodically or at random intervals, depending on
`user preferences or other variables.
`0028. In a preferred mode of operation, the list of devices
`and their Software revision levels are compared with a list
`installed on or accessible to the coordinating PC or on a
`central Service (e.g., an Internet site maintained for the
`purpose). Based on the comparison it the System has the
`capability of determining that there are optional updates,
`critical updates, or additional Software components available
`for one or more of the devices. Optionally, in addition to
`performing a comparison (which places no private data
`outside the home or office other private space of the user),
`the System optionally Stores a copy of the user's data, So that
`if they change coordinating PCs (for example) no informa
`tion is lost.
`0029 While the system is capable of updating any elec
`tronic devices, in a preferred mode of operation the devices
`to be updated include preferably those having field-replace
`able Software content and a means of connection to the
`proxy update System. The Software content may be of the
`embedded type such as a BIOS (basic input-output system)
`or firmware typically stored in an EEPROM, application
`Software Such as games or Small applications with user
`interface, or indeed all or part of any Stream of digital
`information Such as ring-tones for cellphones or Street maps
`or digital imageS. The means of Storage for this Software
`content may be EEPROM or flash memory, memory cards
`such as SD, XD, CF, or Sony memory stick, volatile
`memory, hard disk, CD or magnetic disk, or other media
`
`14
`
`
`
`US 2006/0026304 A1
`
`Feb. 2, 2006
`
`capable of Saving and/or retrieving digital information.
`Preferably, the system has the capability of providing a
`connection from the device to the proxy update System in
`one or more of multiple different optional ways. For
`example, the connection may be intermittent or continuous,
`and/or may be wired or wireless, and/or may include Serial
`or parallel port, USB or PC1394 ("firewire') connection,
`connection via AC power wiring Such as that found in X-10
`devices, Ethernet, Bluetooth or 802.11 wireless, infrared, or
`any other means, or any combination or Sub-combination of
`the foregoing. The means by which the Software content can
`be updated may vary widely and are discussed below.
`Examples of Such devices include, potentially, cell phones,
`digital cameras, MP3 and Video media players, all-in-one or
`combo printer devices, network routers and wireleSS acceSS
`points, media readerS Such as those for compact flash or chip
`memory, PDAS, and indeed even home appliances Such as
`microwaves with “Smart” features, i.e. a processing chip and
`on-board Software.
`0.030. Another, and preferably the next, step in the pro
`ceSS is an optional notification about the updates. The user
`can optionally Select to be notified that updates are available
`via email, instant message or on-screen pop-up, or other
`means. In Some embodiments, the user can view a list of
`devices and their status at their own initiation, at any time.
`Determination that updates are available can be via “pull”
`where the coordinating PC checks the Service periodically,
`and/or via “push” where the Service learns that a new update
`is available, and optionally notifies all candidate users with
`the appropriate device and (older) Software versions.
`0.031) An optional capability of the system is to bill or
`charge the user for the notification Service or for updated or
`additional software for their devices. In this way, device
`manufacturers either could provide free Support Services to
`their customers or could actually Sell extended Service and
`Support or Software upgrades, or both. Examples include
`Support for new media formats, interface improvements,
`technical improvements (digital Sound processing for audio
`enhancement, for example), additional data (maps, phone
`numbers, Songs), new Software modules, more games on
`one’s iPod, or improved Security (e.g., upgrading a Wi-Fi
`access point from WEP to WPA security). In alternate
`embodiments, Such improvements for devices are offered by
`one or more third parties other than or in addition to the
`devices original manufacturer.
`0.032 Assuming the user wishes to perform any available
`updates, another, and preferably next Step is to transfer the
`new Software to the coordinating computer. The network
`Service in Some embodiments actually Stores the updated
`Software, or (more likely) merely maintains an address for
`obtaining it, for example a link to a file on the website of the
`device manufacturer or other third party. The coordinating
`PC automatically or manually downloads the updated device
`Software onto the PC's storage. The coordinating PC could
`also optionally download a PC application used to update
`the device.
`0033 Preferably next, (although alternative sequences
`are provided in other embodiments) the coordinating PC
`performs the update. It can optionally request that the user
`establish communications with the device to be updated
`(“please connect your Nikon CoolPix 950 camera to your
`Serial port now”) or wait and perform the update automati
`
`cally, the next time the device is connected. It can use a
`Specific application that had been installed or downloaded to
`perform the update, and/or it can use a Standard protocol.
`These protocols can be specified Simply, for example by
`choosing a specific TCP/IP port number and packet
`Sequence for establishing authentication and initiating Soft
`ware upload.
`0034. Upon success or failure of the update, or at any
`other interval, the coordinating PC updates its record of the
`device Status. In addition to maintaining the current list of
`Software installed on each device, it can also maintain an
`update history and allow the user to easily “roll back” to an
`earlier version if the new version has undesirable charac
`teristics (instability, incompatibility, changes in user opera
`tion, Security flaws, etc.) The user might receive a notifica
`tion that an update was performed, especially in the case
`where they did not manually initiate it, and Such notification
`might include details about what was changed or new
`capabilities added to their device.
`0035. Note that in one embodiment of the system, the
`entire update process can be performed with little, or even
`no user intervention at all, or optionally only with a notifi
`cation after-the-fact that an update was performed. For
`example, devices can be Sold with a default "stay current
`Setting (that can be overridden by the users at their option)
`that instructs the device to automatically update itself peri
`odically without user request or intervention.
`0036 With this system in place, an additional capability
`is available, namely the capability to use the communication
`system (from the device through the coordinating PC and
`preferably to the central Service, and thence back to the
`manufacturer or its agent) to perform additional trouble
`shooting. Even after devices have been Sold and are in use
`by customers, manufacturers can Still interact with devices,
`obtain diagnostic information ("dumps” following crashes,
`up-time statistics, configuration data, and So on), and gen
`erally use the communication channel to measure reliability,
`gather information used for making further Software
`improvements, measure the popularity of device features or
`monitor usage profiles (for example, to determine how much
`Storage future models of audio playerS or cameras should
`include or what inventory to produce based on measure
`ments from current customers).
`0037. A preferred embodiment 10A of the software
`updating system is shown in FIG. 1. In the system 10A, a
`coordinating computer 12 is in communication 14 with a
`network 18 in communication 20 with a network data store
`22. Alternatively, the computer 12 is in direct wireleSS
`communication 34 with the network 18 and data store 22.
`The coordinating computer 12 is shown in communication
`with three electronic devices having Software for updating.
`At least one electronic device is preferred for communica
`tion with the computer 12, and communication is not limited
`to three devices as shown. Any number of devices can
`communicate with coordinating computer 12. A first elec
`tronic device 50 is in wireless communication 70 with the
`computer 12. A Second electronic device is in line or wired
`communication 74 with the computer 12. A third electronic
`device 58 includes a barcode 60 that is readable by a barcode
`reader 78 in communication with the computer 12. Alterna
`tively, bar code reader 78 is an optical Scanner that transmits
`the bar code image to the coordinating computer for pro
`
`15
`
`
`
`US 2006/0026304 A1
`
`Feb. 2, 2006
`
`cessing and interpretation later or elsewhere. Alternatively,
`bar code 60 is replaced with an optical or wireleSS radio tag
`as the device identifier. Alternatively, the computer writes
`data on an intermediate form of Storage Such as a compact
`disc, portable hard drive, or memory card (such as USB
`memory drive, compact flash, SD, XD, Sony memory Stick,
`or other type) for later insertion to or connection with the
`device. Alternatively, the computer communicates with the
`device by audible means Such as touch tones or voice
`commands.
`0.038
`Preferably, software code for updating the software
`in the electronic devices is delivered from the data Store 22,
`to the network 18, and then to the coordinating computer 12
`via wired communication 14 or Via direct wireleSS commu
`nication 34 from the network 18, or alternately bypassing the
`network, by delivery from the data store 22 to the computer
`12 Alternatively, software code may be delivered to the
`computer by indirect wireleSS communication. The indirect
`wireleSS communication includes a wireleSS uplink channel
`80 to a radio or cell tower 84, then a downlink channel 88
`to the computer 12.
`0039. Updated software code received by the computer
`12 from either the line communication 14, the direct wireless
`communication 34, or by the downlink channel 88 is pro
`cessed by the computer 12 for delivery to the electronic
`devices. Such processing can optionally include any one or
`more, or any combination of the following: un-compression
`of data, Verification of digital signatures, de-encryption of
`the data, Security authorization, confirmation of payment, if
`any, etc. The processed and/or updated Software code is
`amenable to the Software-controlled devices in communica
`tion with the computer 12. The system preferably accom
`modates any number of devices, and no particular number is
`necessary or required. For explanatory purposes only, an
`example of three devices is described in this Figure. The first
`device 50 receives the processed and/or updated software
`code from the computer 12 via the wireless channel 70.
`Similarly, the second device 54 receives the processed
`and/or updated Software code from the computer 12 via the
`communication line or channel 74. The third device 58 is
`identified by the scanning the barcode 60 affixed to or
`associated with the third device 58 by the barcode reader 78.
`The third device is 58, preferably once identified, receives
`the processed and/or updated Software code from the com
`puter 12 via the line channel 74 or the wireless channel 70
`or using intermediate Storage. Once the updated and pro
`cessed software code is delivered to the first 50, second 54
`and/or, third 58 devices, the Software in these devices is
`updated with the new code.
`0040 Alternatively, coordinating computer 12 can coor
`dinate the updating of Software of one device based on
`relationships with other related devices or with software on
`the communicating computer itself or other computers
`attached via a network interface. For example, if the user
`purchases a new digital camera, and the System of the
`present invention updates the Software on the camera three
`(3) months later, the System will realize (by Scanning its
`inventory of Software on related devices and/or accessing
`related databases) that the digital images generated by the
`camera (now that it has been updated) are no longer com
`patible, or not ideal, or possibly even optional, with the
`version of Photoshop(R) (for example), resident on the local
`PC. The coordinating PC 12 also then updates Photoshop(R)
`
`to resolve the incompatibility or Sub-optimum compatibility.
`In another example involving devices and no conventional
`computer Software, a user might add the capability to a
`Sound-recording device to Support a new Sound-encoding
`format and wish to add capability to decode and play back
`this format to a Sound-replay device.
`0041) A preferred embodiment 10B of the software
`updating system is shown in FIG. 2. In the system 10B, a
`coordinating computer 12 is in communication 14 with a
`network 18 in communication 20 with a data store 22.
`Alternatively, the computer 12 is in direct wireleSS commu
`nication 34 with the network 18 and data store 22. The
`computer 12 is shown in communication with (by way of
`example only) three electronic devices having Software for
`updating, and computer 12 Serves to act as a coordinating
`PC. At least one electronic device is preferred for commu
`nication with the computer 12, and is not limited to three
`devices. A first electronic device 50 is in wireless channel
`communication 70 with the computer 12. A second elec
`tronic device is in line channel communication 74 with the
`computer 12. A third electronic device 58 includes a barcode
`60 that is readable by a barcode reader 78 in communication
`with the computer 12. Software codes for updating the
`Software in the electronic devices is delivered from the
`server 22, to the network 18, and then to the computer 12 by
`line communication 14 or via direct wireleSS communication
`34 from the network 18. Alternatively, Software codes may
`be delivered to the computer by indirect wireless commu
`nication. The indirect wireless communication includes a
`wireless uplink channel 80 to a satellite 94, then a downlink
`channel 88 to the computer 12.
`0042. Updated Software code received by the computer
`12 from either the line communication 14, the direct wireless
`communication 34, or by the downlink channel 88 prefer
`ably can be processed by the computer 12 for delivery to the
`electronic devices. Such processing can include any kind of
`data processing, including by way of example any one or
`more of the following kinds of processing, alone or in any
`kind of combination: uncompression of data, Verification of
`digital signatures, de-encryption of the data, or any other
`kinds of processing, including, without limitation, any pro
`cessing described elsewhere in this application. The pro
`cessed and/or updated Software code is amenable to, or is
`executable by, the Software-controlled devices in commu
`nication with the computer 12. The first device 50 receives
`the processed and/or updated Software code from the com
`puter 12 via the wireless channel 70. Similarly, the second
`device 54 receives the processed and/or updated Software
`code from the computer 12 via the line channel 74. The third
`device 58 is identified by scanning the barcode 60 affixed to
`or associated with the third device 58 by the barcode reader
`78. The third device 58, preferably once identified, receives
`the processed and/or updated Software code from the com
`puter 12 via the line channel 74 or the wireless channel 70.
`Once the updated and/or processed Software code is deliv
`ered to the first 50, second 54 and, third 58 devices, the
`Software in these devices is updated with the new code.
`0043. The coordinating computer 12 which serves as the
`nucleus of a proxy update System preferably has a direct or
`indirect means of connection to or communication with the
`device to be updated, optionally as described above, and
`typically has a means of connection to or communications
`with one or more Sources of Software updates. In a typical
`
`16
`
`
`
`US 2006/0026304 A1
`
`Feb. 2, 2006
`
`case, this System preferably includes a processor, Storage
`mediums, and has a user interface capability. Connection to
`or communication with Sources of update Software from
`primary and Secondary entities is preferably via the Internet
`or intranet and use of hypertext transfer protocol (HTTP)
`and/or file transfer protocol (FTP). The coordinating com
`puter 12 is capable of accepting requests for Specific infor
`mation items or Streams and providing those items or
`Streams on demand, for example, an Internet Server respond
`ing to FTP and/or HTTP requests. This system may often be,
`but need not always be, provided by the manufacturer
`(primary Software entity) of the device to be updated.
`Alternatively, Secondary Software entities, Such as website
`addresses having device Software databases, can Similarly be
`accessed by the coordinating computer 12.
`0044 FIG. 3 is a schematic of a preferred embodiment of
`a method 200 for updating software in devices attached to or
`in communication with a coordinating PC or computer 12.
`A method 200 establishes a coordinating computer 12 to
`function as an agent that runs or provides continuous or
`non-continuous Surveillance of primary and Secondary Soft
`ware entities or Services for Software code upgrades for
`devices, including, without limitation those devices that can
`be or are att