WO2011106382A2 - Dynamically configurable clusters of apparatuses - Google Patents

Dynamically configurable clusters of apparatuses Download PDF

Info

Publication number
WO2011106382A2
WO2011106382A2 PCT/US2011/025869 US2011025869W WO2011106382A2 WO 2011106382 A2 WO2011106382 A2 WO 2011106382A2 US 2011025869 W US2011025869 W US 2011025869W WO 2011106382 A2 WO2011106382 A2 WO 2011106382A2
Authority
WO
WIPO (PCT)
Prior art keywords
apparatuses
list
cluster
functionalities
resources
Prior art date
Application number
PCT/US2011/025869
Other languages
French (fr)
Other versions
WO2011106382A3 (en
Inventor
Michael Patrick Chrabaszcz
Original Assignee
Rovi Technologies Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US12/713,538 external-priority patent/US20110213810A1/en
Priority claimed from US12/713,596 external-priority patent/US20110213825A1/en
Application filed by Rovi Technologies Corporation filed Critical Rovi Technologies Corporation
Priority to JP2012555101A priority Critical patent/JP2013520754A/en
Priority to EP11747968.3A priority patent/EP2539827A4/en
Priority to CA2791150A priority patent/CA2791150A1/en
Publication of WO2011106382A2 publication Critical patent/WO2011106382A2/en
Publication of WO2011106382A3 publication Critical patent/WO2011106382A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2809Exchanging configuration information on appliance services in a home automation network indicating that an appliance service is present in a home automation network

Definitions

  • FIG. 1 is a diagram illustrating an example system for dynamically configuring an apparatus, according to various embodiments of the invention
  • FIG. 2 is a high-level diagram illustrating an example
  • FIG. 3 is a diagram illustrating an example dynamically configurable apparatus, according to various embodiments of the invention.
  • FIG. 4 is a block diagram illustrating example modules of a dynamically configurable apparatus, according to various embodiments of the invention.
  • FIG. 5 is a flow diagram illustrating an example method of dynamically configuring an apparatus, according to various embodiments of the invention.
  • FIG. 6 is a block diagram illustrating an example architecture of a dynamically configurable CE device, according to various embodiments of the invention.
  • FIG. 7 is a diagram illustrating an example system for dynamically configuring a cluster of apparatuses, according to various embodiments of the invention.
  • FIG. 8 is a block diagram illustrating example modules of a server computer providing service to a dynamically configurable cluster of apparatuses, according to various embodiments of the invention.
  • FIG. 9 is a flow diagram illustrating an example method of providing service to a dynamically configurable cluster of apparatuses, according to various embodiments of the invention.
  • FIG. 10 is a diagram illustrating a diagrammatic representation of a machine in the example form of a computer system. DETAILED DESCRIPTION
  • Some example embodiments including a dynamically
  • a list of identified resources available to the clustered apparatuses may be received from an apparatus of the cluster, also called a configurable chameleon device.
  • the server computer may provide to the apparatus a list of functionalities, including functionalities performable by one or more of the clustered apparatuses, based on the list of identified resources.
  • a selection from the list of functionalities may be received from the apparatus.
  • the server computer may provide one or more of the clustered apparatuses with additional resources, based on the selection.
  • Example methods may include dynamically identifying the list of resources initially such as, for example, after the apparatus is turned on for the first time, and/or upon detecting a change in the resources available to the apparatus such as, for example, when an external resource such as a universal serial bus (USB) is coupled to the apparatus.
  • the resources initially available to the apparatus may include sufficient capabilities to perform an initial bringing up of an operating system and providing a network connection to a server computer.
  • the network includes the Internet or another network.
  • the apparatus at this point is blank in terms of any functionality or feature that is utilized by a user.
  • the apparatus is able to redefine itself, or be defined, by configuring its resources to perform various
  • FIG. 1 is a diagram illustrating an example system 100 for dynamically configuring an apparatus 140, according to various embodiments of the invention.
  • the system 100 may include the apparatus 140, a network 130 and a server computer (hereinafter, also called "server") 120.
  • the apparatus 140 may initially identify a list of resources that may be available to the apparatus 140 as shown, for example, in FIGs. 3 and 4.
  • the apparatus 140 may identify the list of resources dynamically such as, for example, upon detection of a change in the resources.
  • a change in resources may occur, for instance, when the apparatus 140 detects that a device, such as a USB type device, is coupled to or decoupled from the apparatus 140 or replaced with another device, for instance a higher capacity USB type device.
  • the apparatus 140 may communicate with the server 120.
  • the server 120 is maintained and/or operated by a service provider such as, for example, a service provider implemented by RoviTM Corporation of Santa Clara, California.
  • the apparatus 140 may identify itself, for instance, via a registration number, etc., to the server 120 and after some authentication processes, provide the server 120 with a list of identified resources that are available to the apparatus 140.
  • the resources may include hardware and/or software resources.
  • the server 120 may analyze the list of resources received from the apparatus 120 and, based on the potential capabilities of the resources, provide a list of functionalities to the apparatus 140.
  • the server 120 is able to detect the resources available to the apparatus 140 upon coupling of the apparatus 140 to the server 120.
  • the list of resources received from the apparatus 120 may also be added to resources available to the cluster 710 of FIG. 7 and advertised to the apparatuses 140 of the cluster 710.
  • the list of functionalities provided by the server 120 may be presented to a user 150 as configuration/feature options.
  • the list of functionalities may include, for example, functionalities associated with consumer electronic devices such as a television, a digital versatile disk (DVD) player and/or recorder, a compact disk (CD) player and/or recorder, a personal video recorder (PVR), or functionalities of more sophisticated scientific and/or research instruments such as an oscilloscope or a pulse height analyzer (PHA) and so forth.
  • consumer electronic devices such as a television, a digital versatile disk (DVD) player and/or recorder, a compact disk (CD) player and/or recorder, a personal video recorder (PVR), or functionalities of more sophisticated scientific and/or research instruments such as an oscilloscope or a pulse height analyzer (PHA) and so forth.
  • PHA pulse height analyzer
  • the user 150 may select one or more desired configuration and/or feature options. For example, the user 150 may want to use the apparatus 140 as a PVR. In this case, after acquiring the additional resources, the apparatus 140 may redefine itself by configuring its resources to perform as a PVR. The apparatus 140 may perform the functionality of a PVR and at the same time offer features such as, for example, a number and type of controls or displays, etc., that are selected by the user 150.
  • Some currently available consumer electronic devices may be able to download updated files from a server via the Internet and perform the functionalities that are predefined at time of manufacturing.
  • the capabilities discussed above with respect to the apparatus 140 being able to dynamically redefine or configure itself to perform one or more desired functionalities and/or features selected by the user 150 may not be present in many existing devices or instruments.
  • the hardware and software configuration of the apparatus 140 changes, such as, for example, by adding new hardware or downloading new features, the list of available features offered to the user 150 is dynamically adjusted. More details regarding various resources available to the apparatus 140 and additional resources provided by the server 120 are discussed below.
  • FIG. 2 is a high-level diagram illustrating an example
  • the apparatus 140 may initially include resources 220.
  • the existing resources 220 may, for example, include some processing power such as via one or more processors, or some storage capacity, for example, in the form of volatile memory, such as random access memory (RAM), non-volatile memory, such as read only memory (ROM), flash memory, and the like.
  • RAM random access memory
  • ROM read only memory
  • flash memory and the like.
  • the existing resources 220 may also include one or more interfaces such as audio and/or video inputs, outputs, USB interfaces, network and/or Ethernet interfaces, public switched telephone network (PSTN) jacks, high definition multimedia interfaces (HDMI), antennas, etc.
  • PSTN public switched telephone network
  • HDMI high definition multimedia interfaces
  • the apparatus 140 may receive additional resources 240 from the server 120 via the network 130.
  • the additional resources 240 may include software applications and/or one or more databases.
  • the databases may contain libraries, configuration files, images, fonts, and so forth.
  • the software may include various applications and executable programs that are executable by the resources 220. In example embodiments, the applications and executable programs may also employ other components of the additional resources 240, including libraries and databases.
  • FIG. 3 is a diagram illustrating an example dynamically configurable apparatus 140, according to various embodiments of the invention.
  • the dynamic components of the existing resources 220 of FIG. 2 that are available to the apparatus 140 are shown.
  • executable programs 320 may be modified by the server 120 of FIG. 1, or library 350 may be part of the additional resources provided by the server 120 to equip the apparatus 140 with certain functionalities.
  • the configuration 360 may include configuration files that are provided or updated by the server 120. The configuration 360 may also save the current
  • the auxiliary resources 370 are coupled to the apparatus 140 to provide additional functionalities and/or features to the apparatus 140.
  • an auxiliary resource 370 is coupled to and internal within the apparatus 140.
  • the auxiliary resources 370 may include certain internal and/or external interface cards coupled to the apparatus 140.
  • Technical specifications of the auxiliary resources 370 may be reported to the server 120.
  • the server 120 based on the added capabilities of the auxiliary resources 370, provides the apparatus 140 with executable programs, such as drivers and/or libraries (such as dynamic link libraries (DLL)) to enable the apparatus 140 to perform new functionalities.
  • executable programs such as drivers and/or libraries (such as dynamic link libraries (DLL)
  • FIG. 4 is a block diagram illustrating example modules 400 of a dynamically configurable apparatus 140, according to various embodiments of the invention.
  • the apparatus 140 may include an identification module 410, an interface module 420, a user interface device 430, a configuration module 440, a database server 450, a database 460, a network interface device 470 and other interface devices 480.
  • the apparatus 140 may be coupled to the server 120 via the network 130.
  • the identification module 410 preferably identifies the list of existing resources 220 of FIG. 1 initially available to the apparatus 140.
  • the identification module 410 may act dynamically; for example, when an external device such as an auxiliary resource 370 of FIG. 3, for example, is coupled to the apparatus 140, the identification module 410 may identify the external device and update the list of existing resources 220 of FIG. 2.
  • the identification module 410 is further preferably able to detect technical specifications of the existing resources 220 of FIG. 2 and provide information associated with or identifying the technical specifications to the configuration module 440, the database server 450, and/or the network interface device 470.
  • the network interface device 470 may communicate the list of the existing resources 220 of FIG. 2 to the server 120 via the network 130.
  • the network interface device 470 may also communicate a request for a list of functionalities to the server 120.
  • the server 120 may analyze the list of resources 220, and based on the capabilities and capacities of the resources 220, prepare a list of functionalities that the apparatus 140 is able to perform.
  • the list of functionalities is received by the network interface device 470 and passed to the database server 450 to be stored in database 460.
  • the interface module 420 may obtain the list of functionalities from the database 460 and provide an interface to the user interface device 430.
  • the interface may include functionality and/or feature options for presentation to the user 150 of FIG. 1.
  • the user interface device 430 may display the user interface to the user 150.
  • the user 150 may select one or more of the displayed functionality and/or feature options.
  • the selected functionality and/or feature options are communicated by the network interface device 470 to the server 120.
  • the server 120 may provide the apparatus 140 with additional resources 240 of FIG. 2. Using the additional resources 240 and the existing resources 220, the apparatus 140 advantageously performs the functionalities and features desired by the user 150.
  • the other interface devices 480 may include audio and/or video inputs, outputs, USB interfaces, network interfaces, Ethernet interfaces, PSTN jacks, HDMI, antennas, wireless network interfaces, and so forth. Once identified to the server 120, each of the other interface devices 480 may become part of a solution to provide certain functionality to the apparatus 140.
  • the configuration module 440 may configure the apparatus 140 to perform functionalities selected by the user 150 of FIG. 1.
  • the configuration module 440 also preferably stores the current configuration of the apparatus 140 within the database 460.
  • the current configuration may be a temporary configuration that the user 150 uses for a limited time, for example, over a weekend. After that time, the user may select or switch to a different
  • Such temporal services may promote the ability of service providers to rent the functionalities, for example, to apparatuses 140 of the cluster 710 of FIG. 7.
  • CE devices use operations that may allow hackers to break into the device, identify executables and libraries, and reverse engineer the device.
  • An example embodiment may protect the apparatus 140 from such hacking activities by using the database 460 to store configurations, executables and libraries.
  • the database 460 may further protect the apparatus 140 by encrypting stored features.
  • Some embodiments employ a structured query language (SQL) database.
  • SQL structured query language
  • the user 150 may add new hardware that implements, for example, one or more of the auxiliary resources 370 of FIG. 3.
  • the user 150 may further upgrade functionalities that the apparatus 140 is capable of performing.
  • the user 150 may download new functionalities and/or features from the server 120.
  • the user 150 couples a USB device to the apparatus 140 that includes, for example, a digital television.
  • the user 150 advantageously configures the television as a PVR for use of the PVR functions by the user.
  • the alternative configuration may occur at a remote location and/or for a limited time.
  • the alternative configuration for the television and PVR combination device may be during a weekend so that the user 150 is enabled to rent software while visiting a beach vacation house or another temporary location.
  • the configuration module 440 may automatically disable a functionality related to the resource associated with the external device, e.g., the USB device, after the external device is disconnected and/or removed from the apparatus 140.
  • the user 150 may desire to have a certain added functionality within the apparatus 140, but is not sure how the apparatus 140 is able to perform that functionality.
  • the user 150 communicates the desired functionality request to the user interface device 430.
  • the user interface device may pass the desired functionality request to the network interface device 470, which may in turn communicate the desired functionality request to the server 120.
  • the server 120 may analyze the desired functionality request and provide the network interface device 470 with a list of one or more external devices that is coupled to the apparatus 140 to perform the desired functionality.
  • the user interface device 430 may receive the list of one or more external devices and communicate the list to the user 150.
  • the configuration module 440 configures the apparatus 140 to perform the desired functionality.
  • the server 120 communicates warnings to the user 150 with respect to possible performance issues when the apparatus 140 lacks sufficient capabilities or marginally meets the requirements to support a requested functionality.
  • the user 150 may request PVR
  • the server 120 may warn the user 150 of potential poor user experience, based on historical data and/or customer feedback stored in a database.
  • FIG. 5 is a flow diagram illustrating an example method 500 of dynamically configuring an apparatus 140, according to various embodiments of the invention. As shown in FIG. 5, the method 500 begins at operation 510, where the identification module 410 of FIG. 4 dynamically identifies a list of existing resources 220 of FIG. 2 available to the apparatus 140 of FIG. 1.
  • the network interface device 470 may communicate the list of existing resources 220 to the server 120 over the network 130 of FIG. 1.
  • the server 120 receives the list of existing resources 220 from the apparatus 140.
  • the server 120 may analyze the list of existing resources 220 available to the apparatus 120 to prepare a list of functionalities based on the list of resources 220.
  • the server 120 may provide the apparatus 140 with the list of functionalities.
  • the server 120 generates a database to store the list of identified resources 220, the list of functionalities, and a current configuration of the apparatus 140.
  • the server 120 may dynamically update the database.
  • the server 120 may provide the apparatus 140 with promotional materials to present to the user 150.
  • the promotional materials may be in the form of advertisements that promote various functionalities performable by the apparatus 140 to the user 150.
  • the network interface device 470 may receive the list of functionalities from the server 120 over the network 130.
  • the network interface device 470 may pass the list of functionalities to the database server 450 of FIG. 4 to store in the database 460 of FIG. 4.
  • the user interface module 420 of FIG. 4 may obtain the list of functionalities from the database 460 and prepare an interface showing the list of functionalities in a presentable format.
  • the user interface device 430 of FIG. 4 may display the interface to the user 150 and receive a selection made by the user 150 from the list of functionalities.
  • the network interface device 470 may communicate the selection to the server 120 over the network 130.
  • the server 120 may receive the selection from the network interface device 470.
  • the server 120 may, at operation 550, provide additional resources 240 of FIG. 2 to the apparatus 140.
  • the additional resources 240 may be provided based on the selected functionalities by the user 150.
  • the network interface device 470 may receive additional resources 240 and pass them to the database server 450 for storage in the database 460.
  • the configuration module 440 of FIG. 4 may obtain a list of the additional resources from the database 460.
  • the configuration module 440 of FIG. 4 may obtain a list of the additional resources from the database 460.
  • configuration module 440 may configure the apparatus 140 to perform the selected functionalities by using the existing resources 220 available to the apparatus 140 and the additional resources 240 provided by the server 120. The configuration module 440 may also save the current configuration of the apparatus 140 within the database 460.
  • FIG. 6 is a block diagram illustrating an example architecture 600 of a dynamically configurable CE device, according to various embodiments of the invention.
  • the CE device may be an embodiment of the apparatus 140, as shown in FIG. 6.
  • the hardware block 640 may include various hardware, for example, memory, processors, input and/or output devices, interface devices, amplifiers, tuners, and the like.
  • the hardware block 640 may include entire components and/or portions of the components of the apparatus 700, as shown in FIG. 7.
  • FIG. 7 is further discussed below.
  • the hardware block 640 may be modified by a user via coupling external devices, such as various electronic boards, USB devices, network interface devices, and the like.
  • the operating system 630 may include Linux or various other operating systems.
  • the apparatus 140 may be able to bring up this operating system upon powering up at its initial state to enable the apparatus 140 to communicate with the server 120 and the network 130 of FIG. 1.
  • the middleware 620 may be modified to include the additional resources 240.
  • the middleware 620 may comprise a program that coordinates the activities of one or more hardware and/or software components to perform one or more functionalities. For example, in a PVR, the middleware 620 may coordinate activities of one or more encoders, audio/video play backs, graphic outputs, video outputs, storage device adaptors, and the like to perform functionalities of the PVR.
  • the additional resources 240 may include one or more software and/or databases.
  • the databases may contain libraries, configuration files, images and fonts, and so forth.
  • the software may include various applications and executable programs that are executable by the hardware block 640.
  • the applications and executable programs included in the additional resources 240 also employ other components of the additional resources 240, including libraries and databases.
  • the applications and executable programs included in the additional resources 240 may also use contents of applications block 610.
  • the applications block 610 may include software which initially existed in the original configuration of the apparatus 140.
  • FIG. 7 is a diagram illustrating an example system 700 for dynamically configuring a cluster 710 of apparatuses 140, according to various embodiments of the invention.
  • the server 120 may provide service to an environment of dynamically configurable apparatuses 140.
  • the environment may include multiple interconnected apparatuses 140 that form the cluster 710.
  • the cluster 710 may comprise a local cluster including, for instance, a home cluster, a car cluster, a vacation home cluster, and the like.
  • the local clusters may be associated with a user 150 of FIG. 1 and form "associated clusters.”
  • the local clusters may, for example, comprise N apparatuses 140 (e.g., APPARATUS l, APPARATUS_2, through APP ARATUS N) .
  • N apparatuses 140 e.g., APPARATUS l, APPARATUS_2, through APP ARATUS N
  • the apparatuses 140 of different local clusters may or may not be similar.
  • the home cluster may comprise a television, an amplifier, a video cassette recorder (VCR), a PVR, a PC, a network access device, a digital picture frame, a digital media adaptor (DMA), and so forth.
  • the car cluster may, for instance, comprise an AM/FM radio, a DVD player/recorder, a cell phone, a global positioning service (GPS) device, and the like.
  • GPS global positioning service
  • the apparatuses 140 of the cluster 710 may form a local area network (LAN) 730 such as, for example a home or office network.
  • LAN local area network
  • the apparatuses may communicate with the server 120 via a wide area network
  • the apparatuses 140 may use the LAN 730 to communicate with the WAN 750 and/or may have independent communication means such as satellite communication means.
  • the server 120 provides resources such as computer programs to reconfigure each of the apparatuses 140 to enable them to perform specialized functionalities, as described in detail below.
  • the computer programs may be received such as, for example, downloaded by the apparatuses 140.
  • a first apparatus 140 such as, for example,
  • APPARATUS K initiates a communication with the server 120 for the first time and may be assigned a cluster controller role.
  • the apparatus 140 may perform a number of tasks.
  • the cluster controller (that is, the apparatus 140, which is assigned the cluster controller role) may act as an intermediary between other apparatuses 140 of the cluster 710 and the server 120.
  • the cluster controller may act as an agent of the server 120, for instance, in receiving information from other apparatuses 140 of the cluster 710 or delivering information and/or resources to these apparatuses.
  • the apparatuses 140 When turned on for the first time, the apparatuses 140, including the cluster controller, identify themselves to the server 120, and receive a cluster program.
  • the cluster program assists the apparatuses 140 in identifying the other apparatuses 140 in the cluster 710, including the cluster controller.
  • the cluster program may also be used to configure the apparatuses 140 to share resources among themselves and/or with other local clusters of the associated clusters, for instance, through cluster controllers of the associate clusters.
  • the user 150 of FIG. 1 may want to record a television show and the television that is part of the cluster 710 does not have sufficient capability to record the television show.
  • the cluster controller may use a PVR application available from the server 120 to combine the available resources in other apparatuses 140 of the cluster 710 in order to perform PVR functionality.
  • the available resources may, for instance, include audio and video encoders and storage capacity.
  • the storage capacity may be available on a hard drive of a PC, an external hard drive, a flash memory and the like.
  • the apparatuses 140 of the cluster 710 and/or the associated clusters may collaborate to implement a requested functionality. For instance, the apparatuses 140 of the cluster 710 and/or the associated clusters may search for content among themselves and transfer content from one apparatus 140 to one or more apparatuses 140 of the cluster 710 and/or the associated clusters.
  • FIG. 8 is a block diagram illustrating example modules of the server 120 providing service to a dynamically configurable cluster 710 of apparatuses 140 of FIG. 7, according to various embodiments of the invention.
  • the server computer 120 may comprise a communication module 810, a provisioning module 820, a cluster control module 830, a memory 840, a proxy module 850, and a processor 860.
  • the provisional module 820, the cluster control module 830, and the proxy module 850 may be implemented in hardware and/or software.
  • the software may be implemented by the processor 860 or the processor 1060 shown in FIG. 10.
  • the communication module 810 may be implemented in hardware and, for example, operate as the network interface device 470 shown in FIGs. 4 and 10.
  • the communication module 810 may receive from one of the apparatuses 140 of the cluster 710, via a network such as WAN 750 of FIG. 7, a list of identified resources, such as existing resources 220 of FIG. 2 available to one or more of the apparatuses 140.
  • the existing resources 220 may include software and/or hardware such as, for instance, processor, storage device, one or more interfaces, antennas, and the like.
  • the resources 220 may also include some resources associated with one or more external devices that may be coupled to the one or more apparatuses 140.
  • the apparatuses 140 of the cluster 710 may communicate lists of their existing resources 220 to the cluster controller of the cluster 710.
  • the server 120 may then receive the list of existing resources 220 from the cluster controller of the cluster 710.
  • the provisional module 820 may provide the apparatuses 140 of the cluster 710 with a list of functionalities, based on the list of identified existing resources 220.
  • the functionalities may be performable by one or more apparatuses 140 of the cluster 710 by using the existing resources 220.
  • the list of functionalities may include functionalities associated with CE devices such as a television, a DVD player and/or recorder, a CD player and/or recorder, a PVR, or functionalities of more sophisticated scientific and/or research instruments such as an oscilloscope or a PHA and so forth.
  • CE devices such as a television, a DVD player and/or recorder, a CD player and/or recorder, a PVR, or functionalities of more sophisticated scientific and/or research instruments such as an oscilloscope or a PHA and so forth.
  • the communication module 810 may receive from the apparatuses 140 of the cluster 710 a selection from the list of functionalities. For example, the user 150 of FIG. 1 may want to use one of the apparatuses 140 as a PVR. In this case, after receiving the additional resources, the apparatus 140 may redefine itself by configuring its resources to perform as a PVR. The apparatus 140 may perform the functionality of a PVR and at the same time offer features such as, for example, a number and type of controls or displays, etc., that are selected by the user 150.
  • the provisioning module 820 may provide one or more of the apparatuses 140 of the cluster 710 with additional resources 240 based on the selection.
  • the additional resources 240 may include software applications and/or one or more server databases stored in the memory 840.
  • the server databases may contain libraries, configuration files, images, fonts, and so forth.
  • the software may include various applications and executable programs that are executable by the resources 220 of FIG. 2. For example, the software may include a cluster program as discussed below.
  • the server databases may be updated by the processor 860, as supplements to additional resources 240 become available to the server computer 120.
  • the provisioning module 820 may facilitate formation of the cluster 710 and/or associated clusters comprising, for instance, a local cluster such as a home cluster, a car cluster, a vacation home cluster, and the like.
  • the cluster program may assist each apparatus 140 in detecting other apparatuses 140 in the cluster 710, including the cluster controller.
  • the cluster program may also be used to configure the apparatuses 140 to share resources among themselves and/or with other local clusters of the associated clusters, for instance, through cluster controllers of the associate clusters.
  • the provisioning module 820 may facilitate two or more local clusters sharing resources, for instance existing resources 220 and additional resources 240 both of FIG. 2 or content, such as, electronic publications, images, media content including various forms of audio/video content, and so forth.
  • the cluster control module 830 of FIG. 8 may assign a cluster controller role to one of the apparatuses 140 of the cluster 710 of FIG. 7.
  • the cluster controller may perform certain tasks as described above with respect to FIG. 7.
  • the cluster control module 830 may reassign the cluster controller role to another apparatus 140 of the cluster 710.
  • the communication module 810 may receive a request from the other apparatus 140 to act as the cluster controller, when the other apparatus 140 fails to detect a cluster controller.
  • the cluster control module 830 periodically, for instance once a day, monitors the qualifications of apparatuses 140 to find out which apparatus 140 is a better candidate for the cluster controller role.
  • the cluster control module 830 may then assign the cluster controller role to another apparatus 140, when that apparatus 140 is more qualified than a current cluster controller.
  • the more qualified apparatus may, for example, have a longer uptime, more resources such as processing power or storage capacity, or better performance, for instance higher speed, shorter response time, higher amplification, more fidelity, higher resolution, and the like.
  • the cluster controller may identify one of the apparatuses 140 as a standby cluster controller.
  • the standby cluster controller may assume the responsibilities of an active cluster controller in case the active cluster controller is down or otherwise fails to perform one or more of the cluster controller's tasks.
  • the active cluster controller and the standby cluster controller may receive control resources such as programs and databases from the provisioning module 820.
  • the control resources may enable the active cluster controller and the standby cluster controller to perform cluster controller tasks as outlined with respect to FIG. 7.
  • the control resources may also facilitate the cluster controller in identifying existing resources 220 and additional resources 240 as well as functionalities available to each of the apparatuses 140 of the cluster 710 both of FIG. 7.
  • one of the apparatuses 140 of the cluster is selected from the apparatuses 140 of the cluster.
  • the proxy module 850 may permit that apparatus 140 to act as a proxy for the server 120. Each of the apparatuses 140 may volunteer for the proxy role by sending a message to the server 120. The proxy module 850 may facilitate for the apparatus 140 that acts as a proxy for the server 120 to perform one or more of the functionalities associated with the server 120. The proxy module 850 may request from the provisioning module 820 to provide the volunteered apparatus 140, such as a PC, with resources such as programs, libraries, databases, and so forth to enable the volunteered apparatus 140 to perform as a proxy for the server 120.
  • the provisioning module 820 to provide the volunteered apparatus 140, such as a PC, with resources such as programs, libraries, databases, and so forth to enable the volunteered apparatus 140 to perform as a proxy for the server 120.
  • the communication module 810 may receive a selected functionality for one or more of the apparatuses 140 of the cluster 710 both of FIG. 7 from the user.
  • the provisioning module 820 provides a list of a number of external devices to be coupled to each of the one or more apparatuses 140 to enable them to perform the selected functionality.
  • the list may include external memory such as flash memory, a display, a PC, and the like.
  • the provisioning module 820 may, for instance, recommend that the apparatus 140 be coupled to another apparatus 140 of the cluster 170 so that it can perform the selected functionality.
  • FIG. 9 is a flow diagram illustrating an example method 900 of providing service to a dynamically configurable cluster of apparatuses, according to various embodiments of the invention.
  • the method 900 begins at operation 910, where the communication module 810 of FIG. 8 may receive from one of the apparatuses 140 of the cluster 710 of FIG. 7, via the WAN 750 (also of FIG. 7), a list of identified resources, such as existing resources 220 of FIG. 2 available to the apparatuses 140 of the cluster 710.
  • the server 120 of FIG. 7 is able to detect the resources available to the apparatus 140 upon coupling the apparatus 140 to the server 120.
  • the provisioning module 820 of FIG. 8 may provide one of the apparatuses 140 of the cluster 710 with a list of functionalities.
  • the functionalities may be performable by one or more of the apparatuses 140 of the cluster 710, by using the identified resources.
  • the list of functionalities may include, for example, functionalities associated with consumer electronic devices such as a television, a DVD player and/or recorder, a CD player and/or recorder, a PVR, or functionalities of more sophisticated scientific and/or research instruments such as an oscilloscope or a pulse height analyzer, and so forth.
  • the communication module 810 of FIG. 8 may receive from the user 150 of FIG. 1 a selection from the list of functionalities.
  • the provisioning module 820 may provide the one or more apparatuses 140 of the cluster 710 with additional resources 240 of FIG. 2, based on the selection. For instance, the user 150 may want to use the apparatus 140 as a PVR. In this case, after receiving the additional resources 240, the apparatus 140 may redefine itself by configuring its resources to perform as a PVR.
  • the apparatus 140 may perform the functionality of a PVR and at the same time offer features such as, for example, a number and type of controls or displays that are selected by the user 150 of FIG. 1.
  • FIG. 10 is a diagram illustrating a diagrammatic representation of a machine 1000 in the example form of a computer system, within which a set of instructions for causing the machine 1000 to perform one or more of the methodologies discussed herein may be executed.
  • the machine 1000 may operate as a standalone device or be coupled and/or networked to other apparatus.
  • the machine 1000 may operate in the capacity of a server such as the server 120 of FIGs. 1 and 7 or a client apparatus such as the apparatuses 140 of FIG. 7, in a server-client network environment, or as a peer apparatus in a peer-to-peer and/or distributed network environment.
  • the machine 1000 may be a server computer, a client computer, a
  • apparatus capable of executing a set of instructions, sequential or otherwise, that specify actions to be taken by that apparatus.
  • apparatus shall also be taken to include any collection of apparatuses that individually or jointly execute a set, or multiple sets, of instructions to perform any one or more of the methodologies discussed herein.
  • the example machine 1000 may include a processor 1060 such as, for example, a central processing unit (CPU), a graphics processing unit (GPU), or both, a main memory 1070 and a static memory 1080, all of which communicate with each other via a bus 1008.
  • the machine 1000 may further include a video display unit 1010 such as, for example, a liquid crystal display (LCD) or cathode ray tube (CRT) display.
  • the machine 1000 also may include an alphanumeric input device 1020 such as, for example, a keyboard, a cursor control device 1030 such as a mouse,, a disk drive unit 1040, a signal generation device 1050 such as a speaker, and a network interface device 470.
  • the disk drive unit 1040 may include a machine-readable medium 1022 on which is stored one or more sets of instructions 1024 such as, for example, software embodying any one or more of the methodologies or functions described herein.
  • the instructions 1024 may also reside, completely or at least partially, within the main memory 1070 and/or within the processor 1060 during execution thereof by the machine 1000.
  • the main memory 1070 and the processor 1060 also comprise machine-readable media.
  • the instructions 1024 may further be transmitted or received over a network 1075 via the network interface device 470.
  • the network 1075 may operate as the network 130 of FIG. 1 and/or the WAN 750 of FIG. 7.
  • machine-readable medium 1022 is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media such as, for example, media found in a centralized or distributed database, and/or associated caches and servers that store the one or more sets of instructions.
  • the term “machine-readable medium” shall also be taken to include any medium that is capable of storing, encoding, and/or carrying a set of instructions for execution by the apparatus and that cause the apparatus to perform any one or more of the methodologies of the present technology.
  • the term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories and optical and magnetic media.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

A dynamically configurable cluster of apparatuses and methods and systems for dynamically configuring the apparatuses are disclosed. At a server computer, a list of identified resources available to the clustered apparatuses may be received from an apparatus of the cluster. The server computer may provide to the apparatus a list of functionalities including functionalities performable by one or more of the clustered apparatuses, based on the list of identified resources. A selection from the list of functionalities may be received from the apparatus. The server computer may provide one or more of the clustered apparatuses with additional resources, based on the selection. Additional systems and methods are disclosed.

Description

DYNAMICALLY CONFIGURABLE CLUSTERS OF APPARATUSES CLAIM OF PRIORITY
[0001] The present application claims the benefit of priority to U.S.
Patent Application Serial No. 12/713,596, filed on February 26, 2010 entitled, "DYNAMICALLY CONFIGURABLE CLUSTERS OF APPARATUSES," and to U.S. Patent Application Serial No. 12/713,538, filed on February 26, 2010 entitled, "DYNAMICALLY CONFIGURABLE CHAMELEON DEVICE," the benefit of each of which is claimed hereby, and each of which are incorporated by reference herein in its entirety.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] The present application is related to the following patent application assigned to a common assignee:
[0003] United States Patent Application Serial No. 12/622,766, filed on
November 20, 2009 and entitled, "DATA DELIVERY FOR A CONTENT SYSTEM," which is hereby incorporated by reference.
BACKGROUND
[0004] As the market for consumer electronics (CE) expands, more and more sophisticated CE devices become available. Today's CE device manufacturers are facing demands for more advanced features which can only be satisfied with high technology solutions. The use of processing power in many CE devices facilitates providing more technically advanced features in more compact and less expensive CE devices, such as various hand-held devices.
[0005] Also, network connectivity is becoming a new trend in more CE devices. For example, new models of television sets manufactured by various vendors are equipped with Internet capabilities for content delivery without the need for a personal computer (PC). Such Internet connectivity features may drastically improve the functionality of CE devices that utilize this feature. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] Some embodiments of the disclosed technology are illustrated by way of example and not limitation in the figures of the accompanying drawings in which:
[0007] FIG. 1 is a diagram illustrating an example system for dynamically configuring an apparatus, according to various embodiments of the invention;
[0008] FIG. 2 is a high-level diagram illustrating an example
dynamically configurable apparatus, according to various embodiments of the invention;
[0009] FIG. 3 is a diagram illustrating an example dynamically configurable apparatus, according to various embodiments of the invention;
[0010] FIG. 4 is a block diagram illustrating example modules of a dynamically configurable apparatus, according to various embodiments of the invention;
[0011] FIG. 5 is a flow diagram illustrating an example method of dynamically configuring an apparatus, according to various embodiments of the invention;
[0012] FIG. 6 is a block diagram illustrating an example architecture of a dynamically configurable CE device, according to various embodiments of the invention;
[0013] FIG. 7 is a diagram illustrating an example system for dynamically configuring a cluster of apparatuses, according to various embodiments of the invention;
[0014] FIG. 8 is a block diagram illustrating example modules of a server computer providing service to a dynamically configurable cluster of apparatuses, according to various embodiments of the invention;
[0015] FIG. 9 is a flow diagram illustrating an example method of providing service to a dynamically configurable cluster of apparatuses, according to various embodiments of the invention; and
[0016] FIG. 10 is a diagram illustrating a diagrammatic representation of a machine in the example form of a computer system. DETAILED DESCRIPTION
[0017] An example dynamically configurable cluster of apparatuses and methods for dynamically configuring the apparatuses are described. In the following description, for the purpose of explanation, numerous examples having example-specific details are set forth to provide an understanding of example embodiments. It will be evident, however, to one of ordinary skill in the art that the present examples may be practiced without these example- specific details, and/or with different combinations of the details than are given here.
[0018] Some example embodiments including a dynamically
configurable cluster of apparatuses and methods and systems for dynamically configuring the apparatuses are provided. At a server computer, a list of identified resources available to the clustered apparatuses may be received from an apparatus of the cluster, also called a configurable chameleon device. The server computer may provide to the apparatus a list of functionalities, including functionalities performable by one or more of the clustered apparatuses, based on the list of identified resources. A selection from the list of functionalities may be received from the apparatus. The server computer may provide one or more of the clustered apparatuses with additional resources, based on the selection.
[0019] Example methods may include dynamically identifying the list of resources initially such as, for example, after the apparatus is turned on for the first time, and/or upon detecting a change in the resources available to the apparatus such as, for example, when an external resource such as a universal serial bus (USB) is coupled to the apparatus. The resources initially available to the apparatus may include sufficient capabilities to perform an initial bringing up of an operating system and providing a network connection to a server computer. In implementations, the network includes the Internet or another network.
Generally, the apparatus at this point is blank in terms of any functionality or feature that is utilized by a user. However, the apparatus is able to redefine itself, or be defined, by configuring its resources to perform various
functionalities as discussed in more detail below.
[0020] FIG. 1 is a diagram illustrating an example system 100 for dynamically configuring an apparatus 140, according to various embodiments of the invention. The system 100 may include the apparatus 140, a network 130 and a server computer (hereinafter, also called "server") 120. The apparatus 140 may initially identify a list of resources that may be available to the apparatus 140 as shown, for example, in FIGs. 3 and 4. The apparatus 140 may identify the list of resources dynamically such as, for example, upon detection of a change in the resources. A change in resources may occur, for instance, when the apparatus 140 detects that a device, such as a USB type device, is coupled to or decoupled from the apparatus 140 or replaced with another device, for instance a higher capacity USB type device.
[0021] Following the identification of resources, the apparatus 140 may communicate with the server 120. Generally, the server 120 is maintained and/or operated by a service provider such as, for example, a service provider implemented by Rovi™ Corporation of Santa Clara, California. After communicating with the server 120, the apparatus 140 may identify itself, for instance, via a registration number, etc., to the server 120 and after some authentication processes, provide the server 120 with a list of identified resources that are available to the apparatus 140. The resources may include hardware and/or software resources.
[0022] The server 120 may analyze the list of resources received from the apparatus 120 and, based on the potential capabilities of the resources, provide a list of functionalities to the apparatus 140. In an example embodiment, the server 120 is able to detect the resources available to the apparatus 140 upon coupling of the apparatus 140 to the server 120. The list of resources received from the apparatus 120 may also be added to resources available to the cluster 710 of FIG. 7 and advertised to the apparatuses 140 of the cluster 710. The list of functionalities provided by the server 120 may be presented to a user 150 as configuration/feature options. The list of functionalities may include, for example, functionalities associated with consumer electronic devices such as a television, a digital versatile disk (DVD) player and/or recorder, a compact disk (CD) player and/or recorder, a personal video recorder (PVR), or functionalities of more sophisticated scientific and/or research instruments such as an oscilloscope or a pulse height analyzer (PHA) and so forth.
[0023] The user 150 may select one or more desired configuration and/or feature options. For example, the user 150 may want to use the apparatus 140 as a PVR. In this case, after acquiring the additional resources, the apparatus 140 may redefine itself by configuring its resources to perform as a PVR. The apparatus 140 may perform the functionality of a PVR and at the same time offer features such as, for example, a number and type of controls or displays, etc., that are selected by the user 150.
[0024] Some currently available consumer electronic devices may be able to download updated files from a server via the Internet and perform the functionalities that are predefined at time of manufacturing. The capabilities discussed above with respect to the apparatus 140 being able to dynamically redefine or configure itself to perform one or more desired functionalities and/or features selected by the user 150 may not be present in many existing devices or instruments. For example, as the hardware and software configuration of the apparatus 140 changes, such as, for example, by adding new hardware or downloading new features, the list of available features offered to the user 150 is dynamically adjusted. More details regarding various resources available to the apparatus 140 and additional resources provided by the server 120 are discussed below.
[0025] FIG. 2 is a high-level diagram illustrating an example
dynamically configurable apparatus 140, according to various embodiments of the invention. The apparatus 140 may initially include resources 220. The existing resources 220 may, for example, include some processing power such as via one or more processors, or some storage capacity, for example, in the form of volatile memory, such as random access memory (RAM), non-volatile memory, such as read only memory (ROM), flash memory, and the like. The existing resources 220 may also include one or more interfaces such as audio and/or video inputs, outputs, USB interfaces, network and/or Ethernet interfaces, public switched telephone network (PSTN) jacks, high definition multimedia interfaces (HDMI), antennas, etc.
[0026] After reporting the existing resources 220 to the server 120 of FIG.l, the apparatus 140 may receive additional resources 240 from the server 120 via the network 130. The additional resources 240 may include software applications and/or one or more databases. The databases may contain libraries, configuration files, images, fonts, and so forth. The software may include various applications and executable programs that are executable by the resources 220. In example embodiments, the applications and executable programs may also employ other components of the additional resources 240, including libraries and databases.
[0027] FIG. 3 is a diagram illustrating an example dynamically configurable apparatus 140, according to various embodiments of the invention. In the example embodiment shown in FIG. 3, only the dynamic components of the existing resources 220 of FIG. 2 that are available to the apparatus 140 are shown. For example, executable programs 320 may be modified by the server 120 of FIG. 1, or library 350 may be part of the additional resources provided by the server 120 to equip the apparatus 140 with certain functionalities. The configuration 360 may include configuration files that are provided or updated by the server 120. The configuration 360 may also save the current
configuration of the apparatus 140 in certain configuration files.
[0028] The auxiliary resources 370 are coupled to the apparatus 140 to provide additional functionalities and/or features to the apparatus 140. In some cases, an auxiliary resource 370 is coupled to and internal within the apparatus 140. For example, the auxiliary resources 370 may include certain internal and/or external interface cards coupled to the apparatus 140. Technical specifications of the auxiliary resources 370 may be reported to the server 120. The server 120, based on the added capabilities of the auxiliary resources 370, provides the apparatus 140 with executable programs, such as drivers and/or libraries (such as dynamic link libraries (DLL)) to enable the apparatus 140 to perform new functionalities.
[0029] FIG. 4 is a block diagram illustrating example modules 400 of a dynamically configurable apparatus 140, according to various embodiments of the invention. The apparatus 140 may include an identification module 410, an interface module 420, a user interface device 430, a configuration module 440, a database server 450, a database 460, a network interface device 470 and other interface devices 480. The apparatus 140 may be coupled to the server 120 via the network 130.
[0030] The identification module 410 preferably identifies the list of existing resources 220 of FIG. 1 initially available to the apparatus 140.
However, the identification module 410 may act dynamically; for example, when an external device such as an auxiliary resource 370 of FIG. 3, for example, is coupled to the apparatus 140, the identification module 410 may identify the external device and update the list of existing resources 220 of FIG. 2.
[0031] The identification module 410 is further preferably able to detect technical specifications of the existing resources 220 of FIG. 2 and provide information associated with or identifying the technical specifications to the configuration module 440, the database server 450, and/or the network interface device 470. The network interface device 470 may communicate the list of the existing resources 220 of FIG. 2 to the server 120 via the network 130. The network interface device 470 may also communicate a request for a list of functionalities to the server 120. The server 120 may analyze the list of resources 220, and based on the capabilities and capacities of the resources 220, prepare a list of functionalities that the apparatus 140 is able to perform. The list of functionalities is received by the network interface device 470 and passed to the database server 450 to be stored in database 460.
[0032] The interface module 420 may obtain the list of functionalities from the database 460 and provide an interface to the user interface device 430. The interface may include functionality and/or feature options for presentation to the user 150 of FIG. 1. The user interface device 430 may display the user interface to the user 150. The user 150 may select one or more of the displayed functionality and/or feature options. The selected functionality and/or feature options are communicated by the network interface device 470 to the server 120. The server 120 may provide the apparatus 140 with additional resources 240 of FIG. 2. Using the additional resources 240 and the existing resources 220, the apparatus 140 advantageously performs the functionalities and features desired by the user 150.
[0033] The other interface devices 480 may include audio and/or video inputs, outputs, USB interfaces, network interfaces, Ethernet interfaces, PSTN jacks, HDMI, antennas, wireless network interfaces, and so forth. Once identified to the server 120, each of the other interface devices 480 may become part of a solution to provide certain functionality to the apparatus 140.
[0034] Once the additional resources 240 of FIG. 2 are acquired by the apparatus 140, the configuration module 440 may configure the apparatus 140 to perform functionalities selected by the user 150 of FIG. 1. The configuration module 440 also preferably stores the current configuration of the apparatus 140 within the database 460. The current configuration may be a temporary configuration that the user 150 uses for a limited time, for example, over a weekend. After that time, the user may select or switch to a different
functionality, as long as that functionality is provided by the server 120. Such temporal services may promote the ability of service providers to rent the functionalities, for example, to apparatuses 140 of the cluster 710 of FIG. 7.
[0035] Many CE devices use operations that may allow hackers to break into the device, identify executables and libraries, and reverse engineer the device. An example embodiment may protect the apparatus 140 from such hacking activities by using the database 460 to store configurations, executables and libraries. In another example embodiment, the database 460 may further protect the apparatus 140 by encrypting stored features. Some embodiments employ a structured query language (SQL) database.
[0036] Once the apparatus 140 is configured, the user 150 may add new hardware that implements, for example, one or more of the auxiliary resources 370 of FIG. 3. The user 150 may further upgrade functionalities that the apparatus 140 is capable of performing. For instance, the user 150 may download new functionalities and/or features from the server 120. In a particular case, the user 150 couples a USB device to the apparatus 140 that includes, for example, a digital television. Then, the user 150 advantageously configures the television as a PVR for use of the PVR functions by the user. The alternative configuration may occur at a remote location and/or for a limited time. For instance, the alternative configuration for the television and PVR combination device may be during a weekend so that the user 150 is enabled to rent software while visiting a beach vacation house or another temporary location. The configuration module 440 may automatically disable a functionality related to the resource associated with the external device, e.g., the USB device, after the external device is disconnected and/or removed from the apparatus 140.
[0037] In an example embodiment, the user 150 may desire to have a certain added functionality within the apparatus 140, but is not sure how the apparatus 140 is able to perform that functionality. The user 150 communicates the desired functionality request to the user interface device 430. The user interface device may pass the desired functionality request to the network interface device 470, which may in turn communicate the desired functionality request to the server 120.
[0038] The server 120 may analyze the desired functionality request and provide the network interface device 470 with a list of one or more external devices that is coupled to the apparatus 140 to perform the desired functionality. The user interface device 430 may receive the list of one or more external devices and communicate the list to the user 150. Once the one or more external devices are coupled to the apparatus 140, the configuration module 440 configures the apparatus 140 to perform the desired functionality.
[0039] In some embodiments, the server 120 communicates warnings to the user 150 with respect to possible performance issues when the apparatus 140 lacks sufficient capabilities or marginally meets the requirements to support a requested functionality. For example, the user 150 may request PVR
functionality where the apparatus 140 has a flash memory and/or removable memory stick as the only available memory. The server 120 may warn the user 150 of potential poor user experience, based on historical data and/or customer feedback stored in a database.
[0040] FIG. 5 is a flow diagram illustrating an example method 500 of dynamically configuring an apparatus 140, according to various embodiments of the invention. As shown in FIG. 5, the method 500 begins at operation 510, where the identification module 410 of FIG. 4 dynamically identifies a list of existing resources 220 of FIG. 2 available to the apparatus 140 of FIG. 1.
[0041] At operation 520, in response to the identification, the network interface device 470 may communicate the list of existing resources 220 to the server 120 over the network 130 of FIG. 1. At operation 525, the server 120 receives the list of existing resources 220 from the apparatus 140. The server 120 may analyze the list of existing resources 220 available to the apparatus 120 to prepare a list of functionalities based on the list of resources 220. At operation 530, the server 120 may provide the apparatus 140 with the list of functionalities.
[0042] In some embodiments, the server 120 generates a database to store the list of identified resources 220, the list of functionalities, and a current configuration of the apparatus 140. The server 120 may dynamically update the database. The server 120 may provide the apparatus 140 with promotional materials to present to the user 150. The promotional materials may be in the form of advertisements that promote various functionalities performable by the apparatus 140 to the user 150.
[0043] At operation 535, the network interface device 470 may receive the list of functionalities from the server 120 over the network 130. The network interface device 470 may pass the list of functionalities to the database server 450 of FIG. 4 to store in the database 460 of FIG. 4. The user interface module 420 of FIG. 4 may obtain the list of functionalities from the database 460 and prepare an interface showing the list of functionalities in a presentable format.
[0044] At operation 540, the user interface device 430 of FIG. 4 may display the interface to the user 150 and receive a selection made by the user 150 from the list of functionalities. The network interface device 470 may communicate the selection to the server 120 over the network 130. At operation 545, the server 120 may receive the selection from the network interface device 470. The server 120 may, at operation 550, provide additional resources 240 of FIG. 2 to the apparatus 140. The additional resources 240 may be provided based on the selected functionalities by the user 150.
[0045] At operation 555, the network interface device 470 may receive additional resources 240 and pass them to the database server 450 for storage in the database 460. The configuration module 440 of FIG. 4 may obtain a list of the additional resources from the database 460. At operation 560, the
configuration module 440 may configure the apparatus 140 to perform the selected functionalities by using the existing resources 220 available to the apparatus 140 and the additional resources 240 provided by the server 120. The configuration module 440 may also save the current configuration of the apparatus 140 within the database 460.
[0046] FIG. 6 is a block diagram illustrating an example architecture 600 of a dynamically configurable CE device, according to various embodiments of the invention. The CE device may be an embodiment of the apparatus 140, as shown in FIG. 6. In the architecture 600, the hardware block 640 may include various hardware, for example, memory, processors, input and/or output devices, interface devices, amplifiers, tuners, and the like. In example embodiments, the hardware block 640 may include entire components and/or portions of the components of the apparatus 700, as shown in FIG. 7. FIG. 7 is further discussed below. The hardware block 640 may be modified by a user via coupling external devices, such as various electronic boards, USB devices, network interface devices, and the like.
[0047] The operating system 630 may include Linux or various other operating systems. The apparatus 140 may be able to bring up this operating system upon powering up at its initial state to enable the apparatus 140 to communicate with the server 120 and the network 130 of FIG. 1. In example embodiments, the middleware 620 may be modified to include the additional resources 240. The middleware 620 may comprise a program that coordinates the activities of one or more hardware and/or software components to perform one or more functionalities. For example, in a PVR, the middleware 620 may coordinate activities of one or more encoders, audio/video play backs, graphic outputs, video outputs, storage device adaptors, and the like to perform functionalities of the PVR.
[0048] The additional resources 240 may include one or more software and/or databases. The databases may contain libraries, configuration files, images and fonts, and so forth. The software may include various applications and executable programs that are executable by the hardware block 640. In example embodiments, the applications and executable programs included in the additional resources 240 also employ other components of the additional resources 240, including libraries and databases. The applications and executable programs included in the additional resources 240 may also use contents of applications block 610. The applications block 610 may include software which initially existed in the original configuration of the apparatus 140.
[0049] FIG. 7 is a diagram illustrating an example system 700 for dynamically configuring a cluster 710 of apparatuses 140, according to various embodiments of the invention. In some embodiments, the server 120 may provide service to an environment of dynamically configurable apparatuses 140. The environment may include multiple interconnected apparatuses 140 that form the cluster 710. The cluster 710 may comprise a local cluster including, for instance, a home cluster, a car cluster, a vacation home cluster, and the like. The local clusters may be associated with a user 150 of FIG. 1 and form "associated clusters." The local clusters may, for example, comprise N apparatuses 140 (e.g., APPARATUS l, APPARATUS_2, through APP ARATUS N) . The apparatuses 140 of different local clusters may or may not be similar. The home cluster may comprise a television, an amplifier, a video cassette recorder (VCR), a PVR, a PC, a network access device, a digital picture frame, a digital media adaptor (DMA), and so forth. The car cluster may, for instance, comprise an AM/FM radio, a DVD player/recorder, a cell phone, a global positioning service (GPS) device, and the like.
[0050] The apparatuses 140 of the cluster 710 may form a local area network (LAN) 730 such as, for example a home or office network. The apparatuses may communicate with the server 120 via a wide area network
(WAN) 750, such as the Internet. The apparatuses 140 may use the LAN 730 to communicate with the WAN 750 and/or may have independent communication means such as satellite communication means. In embodiments, the server 120 provides resources such as computer programs to reconfigure each of the apparatuses 140 to enable them to perform specialized functionalities, as described in detail below. The computer programs may be received such as, for example, downloaded by the apparatuses 140.
[0051] In the cluster 710, a first apparatus 140 such as, for example,
APPARATUS K, initiates a communication with the server 120 for the first time and may be assigned a cluster controller role. When acting as a cluster controller, the apparatus 140 may perform a number of tasks. For example, the cluster controller (that is, the apparatus 140, which is assigned the cluster controller role) may act as an intermediary between other apparatuses 140 of the cluster 710 and the server 120. In an embodiment, the cluster controller may act as an agent of the server 120, for instance, in receiving information from other apparatuses 140 of the cluster 710 or delivering information and/or resources to these apparatuses.
[0052] When turned on for the first time, the apparatuses 140, including the cluster controller, identify themselves to the server 120, and receive a cluster program. The cluster program assists the apparatuses 140 in identifying the other apparatuses 140 in the cluster 710, including the cluster controller. The cluster program may also be used to configure the apparatuses 140 to share resources among themselves and/or with other local clusters of the associated clusters, for instance, through cluster controllers of the associate clusters. [0053] For example, the user 150 of FIG. 1 may want to record a television show and the television that is part of the cluster 710 does not have sufficient capability to record the television show. In this case, the cluster controller may use a PVR application available from the server 120 to combine the available resources in other apparatuses 140 of the cluster 710 in order to perform PVR functionality. The available resources may, for instance, include audio and video encoders and storage capacity. The storage capacity may be available on a hard drive of a PC, an external hard drive, a flash memory and the like. In some embodiments, the apparatuses 140 of the cluster 710 and/or the associated clusters may collaborate to implement a requested functionality. For instance, the apparatuses 140 of the cluster 710 and/or the associated clusters may search for content among themselves and transfer content from one apparatus 140 to one or more apparatuses 140 of the cluster 710 and/or the associated clusters.
[0054] FIG. 8 is a block diagram illustrating example modules of the server 120 providing service to a dynamically configurable cluster 710 of apparatuses 140 of FIG. 7, according to various embodiments of the invention. The server computer 120 may comprise a communication module 810, a provisioning module 820, a cluster control module 830, a memory 840, a proxy module 850, and a processor 860. The provisional module 820, the cluster control module 830, and the proxy module 850 may be implemented in hardware and/or software. The software may be implemented by the processor 860 or the processor 1060 shown in FIG. 10.
[0055] The communication module 810 may be implemented in hardware and, for example, operate as the network interface device 470 shown in FIGs. 4 and 10. The communication module 810 may receive from one of the apparatuses 140 of the cluster 710, via a network such as WAN 750 of FIG. 7, a list of identified resources, such as existing resources 220 of FIG. 2 available to one or more of the apparatuses 140. The existing resources 220 may include software and/or hardware such as, for instance, processor, storage device, one or more interfaces, antennas, and the like. The resources 220 may also include some resources associated with one or more external devices that may be coupled to the one or more apparatuses 140. [0056] In an embodiment, the apparatuses 140 of the cluster 710 may communicate lists of their existing resources 220 to the cluster controller of the cluster 710. The server 120 may then receive the list of existing resources 220 from the cluster controller of the cluster 710. The provisional module 820 may provide the apparatuses 140 of the cluster 710 with a list of functionalities, based on the list of identified existing resources 220. The functionalities may be performable by one or more apparatuses 140 of the cluster 710 by using the existing resources 220. For example, the list of functionalities may include functionalities associated with CE devices such as a television, a DVD player and/or recorder, a CD player and/or recorder, a PVR, or functionalities of more sophisticated scientific and/or research instruments such as an oscilloscope or a PHA and so forth.
[0057] The communication module 810 may receive from the apparatuses 140 of the cluster 710 a selection from the list of functionalities. For example, the user 150 of FIG. 1 may want to use one of the apparatuses 140 as a PVR. In this case, after receiving the additional resources, the apparatus 140 may redefine itself by configuring its resources to perform as a PVR. The apparatus 140 may perform the functionality of a PVR and at the same time offer features such as, for example, a number and type of controls or displays, etc., that are selected by the user 150.
[0058] The provisioning module 820 may provide one or more of the apparatuses 140 of the cluster 710 with additional resources 240 based on the selection. The additional resources 240 may include software applications and/or one or more server databases stored in the memory 840. The server databases may contain libraries, configuration files, images, fonts, and so forth. The software may include various applications and executable programs that are executable by the resources 220 of FIG. 2. For example, the software may include a cluster program as discussed below. The server databases may be updated by the processor 860, as supplements to additional resources 240 become available to the server computer 120.
[0059] In some embodiments, the provisioning module 820 may facilitate formation of the cluster 710 and/or associated clusters comprising, for instance, a local cluster such as a home cluster, a car cluster, a vacation home cluster, and the like. The cluster program may assist each apparatus 140 in detecting other apparatuses 140 in the cluster 710, including the cluster controller. The cluster program may also be used to configure the apparatuses 140 to share resources among themselves and/or with other local clusters of the associated clusters, for instance, through cluster controllers of the associate clusters. The provisioning module 820 may facilitate two or more local clusters sharing resources, for instance existing resources 220 and additional resources 240 both of FIG. 2 or content, such as, electronic publications, images, media content including various forms of audio/video content, and so forth.
[0060] In some embodiments, the cluster control module 830 of FIG. 8 may assign a cluster controller role to one of the apparatuses 140 of the cluster 710 of FIG. 7. The cluster controller may perform certain tasks as described above with respect to FIG. 7. When the cluster controller is not available, the cluster control module 830 may reassign the cluster controller role to another apparatus 140 of the cluster 710. The communication module 810 may receive a request from the other apparatus 140 to act as the cluster controller, when the other apparatus 140 fails to detect a cluster controller.
[0061] Preferably, the cluster control module 830 periodically, for instance once a day, monitors the qualifications of apparatuses 140 to find out which apparatus 140 is a better candidate for the cluster controller role. The cluster control module 830 may then assign the cluster controller role to another apparatus 140, when that apparatus 140 is more qualified than a current cluster controller. The more qualified apparatus may, for example, have a longer uptime, more resources such as processing power or storage capacity, or better performance, for instance higher speed, shorter response time, higher amplification, more fidelity, higher resolution, and the like. Further, the cluster controller may identify one of the apparatuses 140 as a standby cluster controller.
[0062] The standby cluster controller may assume the responsibilities of an active cluster controller in case the active cluster controller is down or otherwise fails to perform one or more of the cluster controller's tasks. The active cluster controller and the standby cluster controller may receive control resources such as programs and databases from the provisioning module 820. The control resources may enable the active cluster controller and the standby cluster controller to perform cluster controller tasks as outlined with respect to FIG. 7. The control resources may also facilitate the cluster controller in identifying existing resources 220 and additional resources 240 as well as functionalities available to each of the apparatuses 140 of the cluster 710 both of FIG. 7.
[0063] In some embodiments, one of the apparatuses 140 of the cluster
710 may act as a proxy for the server 120 of FIG. 7. The proxy module 850 may permit that apparatus 140 to act as a proxy for the server 120. Each of the apparatuses 140 may volunteer for the proxy role by sending a message to the server 120. The proxy module 850 may facilitate for the apparatus 140 that acts as a proxy for the server 120 to perform one or more of the functionalities associated with the server 120. The proxy module 850 may request from the provisioning module 820 to provide the volunteered apparatus 140, such as a PC, with resources such as programs, libraries, databases, and so forth to enable the volunteered apparatus 140 to perform as a proxy for the server 120.
[0064] In an embodiment, the communication module 810 may receive a selected functionality for one or more of the apparatuses 140 of the cluster 710 both of FIG. 7 from the user. In this case, the provisioning module 820 provides a list of a number of external devices to be coupled to each of the one or more apparatuses 140 to enable them to perform the selected functionality. For example, the list may include external memory such as flash memory, a display, a PC, and the like. The provisioning module 820 may, for instance, recommend that the apparatus 140 be coupled to another apparatus 140 of the cluster 170 so that it can perform the selected functionality.
[0065] FIG. 9 is a flow diagram illustrating an example method 900 of providing service to a dynamically configurable cluster of apparatuses, according to various embodiments of the invention. As shown in FIG. 9, the method 900 begins at operation 910, where the communication module 810 of FIG. 8 may receive from one of the apparatuses 140 of the cluster 710 of FIG. 7, via the WAN 750 (also of FIG. 7), a list of identified resources, such as existing resources 220 of FIG. 2 available to the apparatuses 140 of the cluster 710. In an embodiment, the server 120 of FIG. 7 is able to detect the resources available to the apparatus 140 upon coupling the apparatus 140 to the server 120.
[0066] At operation 920, the provisioning module 820 of FIG. 8 may provide one of the apparatuses 140 of the cluster 710 with a list of functionalities. The functionalities may be performable by one or more of the apparatuses 140 of the cluster 710, by using the identified resources. The list of functionalities may include, for example, functionalities associated with consumer electronic devices such as a television, a DVD player and/or recorder, a CD player and/or recorder, a PVR, or functionalities of more sophisticated scientific and/or research instruments such as an oscilloscope or a pulse height analyzer, and so forth.
[0067] At operation 930, the communication module 810 of FIG. 8 may receive from the user 150 of FIG. 1 a selection from the list of functionalities. At operation 940, the provisioning module 820 may provide the one or more apparatuses 140 of the cluster 710 with additional resources 240 of FIG. 2, based on the selection. For instance, the user 150 may want to use the apparatus 140 as a PVR. In this case, after receiving the additional resources 240, the apparatus 140 may redefine itself by configuring its resources to perform as a PVR. The apparatus 140 may perform the functionality of a PVR and at the same time offer features such as, for example, a number and type of controls or displays that are selected by the user 150 of FIG. 1.
[0068] FIG. 10 is a diagram illustrating a diagrammatic representation of a machine 1000 in the example form of a computer system, within which a set of instructions for causing the machine 1000 to perform one or more of the methodologies discussed herein may be executed. In alternative embodiments, the machine 1000 may operate as a standalone device or be coupled and/or networked to other apparatus. In a networked deployment, the machine 1000 may operate in the capacity of a server such as the server 120 of FIGs. 1 and 7 or a client apparatus such as the apparatuses 140 of FIG. 7, in a server-client network environment, or as a peer apparatus in a peer-to-peer and/or distributed network environment.
[0069] The machine 1000 may be a server computer, a client computer, a
PC, a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a cellular telephone, an Internet or Web appliance, a network router, switch or bridge, or any apparatus capable of executing a set of instructions, sequential or otherwise, that specify actions to be taken by that apparatus. Further, while only a single apparatus is illustrated, the term "apparatus" shall also be taken to include any collection of apparatuses that individually or jointly execute a set, or multiple sets, of instructions to perform any one or more of the methodologies discussed herein.
[0070] The example machine 1000 may include a processor 1060 such as, for example, a central processing unit (CPU), a graphics processing unit (GPU), or both, a main memory 1070 and a static memory 1080, all of which communicate with each other via a bus 1008. The machine 1000 may further include a video display unit 1010 such as, for example, a liquid crystal display (LCD) or cathode ray tube (CRT) display. The machine 1000 also may include an alphanumeric input device 1020 such as, for example, a keyboard, a cursor control device 1030 such as a mouse,, a disk drive unit 1040, a signal generation device 1050 such as a speaker, and a network interface device 470.
[0071] The disk drive unit 1040 may include a machine-readable medium 1022 on which is stored one or more sets of instructions 1024 such as, for example, software embodying any one or more of the methodologies or functions described herein. The instructions 1024 may also reside, completely or at least partially, within the main memory 1070 and/or within the processor 1060 during execution thereof by the machine 1000. Preferably, the main memory 1070 and the processor 1060 also comprise machine-readable media. The instructions 1024 may further be transmitted or received over a network 1075 via the network interface device 470. The network 1075 may operate as the network 130 of FIG. 1 and/or the WAN 750 of FIG. 7.
[0072] While the machine-readable medium 1022 is shown in an example embodiment to be a single medium, the term "machine-readable medium" should be taken to include a single medium or multiple media such as, for example, media found in a centralized or distributed database, and/or associated caches and servers that store the one or more sets of instructions. The term "machine-readable medium" shall also be taken to include any medium that is capable of storing, encoding, and/or carrying a set of instructions for execution by the apparatus and that cause the apparatus to perform any one or more of the methodologies of the present technology. The term "machine-readable medium" shall accordingly be taken to include, but not be limited to, solid-state memories and optical and magnetic media.
[0073] Embodiments of a dynamically configurable cluster of apparatuses and methods for dynamically configuring the apparatuses have been described. Although the present embodiments have been described, it will be evident that various modifications and changes may be made to these embodiments. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.
[0074] The Abstract of the Disclosure is provided to comply with 37
C.F.R. § 1.72(b), requiring an abstract that allows the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the claims. In addition, in the foregoing Detailed Description, it may be seen that various features are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as limiting the claims. Thus, the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separate embodiment.

Claims

CLAIMS What is claimed is:
1. A computerized method comprising:
at a server computer,
receiving from an apparatus of a plurality of apparatuses, via a network, a list of identified resources available to the plurality of apparatuses;
providing to the apparatus of the plurality of apparatuses a list of functionalities including functionalities performable by at least some of the plurality of apparatuses, based on the list of identified resources; receiving from the apparatus of the plurality of apparatuses a selection from the list of functionalities; and
providing one or more of the apparatuses of the plurality of apparatuses with additional resources based on the selection.
2. The method of claim 1, wherein the apparatus comprises one of the plurality of apparatuses from which a first communication is received at the server.
3. The method of claim 1, further comprising facilitating for at least some of the apparatuses of the plurality of apparatuses to form a local cluster, including at least one of a home cluster, a car cluster, or a vacation home cluster.
4. The method of claim 1, wherein the facilitating comprises providing a computer program to be received by the apparatuses of the plurality of apparatuses, and wherein the plurality of apparatuses of the local cluster share at least one of resources or content, among themselves and/or with other local clusters.
5. The method of claim 1, further comprising:
assigning to the apparatus of the plurality of apparatuses a cluster controller role to perform at least one task; and assigning the cluster controller role to another apparatus of the plurality of apparatuses, when a current cluster controller is not available.
6. The method of claim 5, further comprising receiving a request from the other apparatus to act as a cluster controller, when the other apparatus fails to detect the current cluster controller.
7. The method of claim 5, further comprising monitoring qualifications of the plurality of apparatuses and reassigning the cluster controller role to another apparatus of the plurality of apparatuses, when the other apparatus of the plurality of apparatuses is more qualified than a current cluster controller.
8. The method of claim 7, wherein the more qualified apparatus has at least one of a longer uptime, more resources, or better performance.
9. The method of claim 1, further comprising:
setting up a server database to store at least one of the list of identified recourses, the list of functionalities, or current configurations of the plurality of apparatuses; and
dynamically updating a server database.
10. The method of claim 1, further comprising permitting at least one apparatus of the plurality of apparatuses to act as a proxy for the server computer.
11. The method of claim 10, further comprising facilitating for the at least one apparatus to perform at least some functionalities associated with the server computer.
12. The method of claim 1, facilitating for two or more local clusters to share at least one of a resource or content.
13. The method of claim 1, wherein the resources comprise at least one of software, hardware, an interface, a database or a resource associated with an external device connected to at least one of the plurality of apparatuses, and wherein the additional resources include at least one of software or a database, the database including at least one of libraries, configuration files, images or fonts.
14. The method of claim 1, further comprising receiving a selected functionality for at least one of the plurality of apparatuses from a user and providing a list of one or more external devices to be connected to the at least one apparatus to enable the at least one apparatus to perform the selected functionality.
15. The method of claim 1, wherein the functionalities comprise at least one of functionalities associated with one or more consumer electronic apparatuses or functionalities associated with one or more scientific/research instruments.
16. A system comprising:
a server computer including:
a communication module to receive, via a network, from an apparatus of a plurality of apparatuses, a list of identified resources available to the plurality of apparatuses;
a provisioning module to provide to the apparatus of the plurality of apparatuses a list of functionalities including functionalities performable by at least some apparatuses of the plurality of apparatuses, based on the list of identified resources;
the communication module to receive from the apparatus of the plurality of apparatuses a selection from the list of functionalities; and the provisioning module to provide one or more of the apparatuses of the plurality of apparatuses with additional resources based on the selection.
17. The system of claim 16, wherein the provisioning module is to facilitate for at least some of the apparatuses of the plurality of apparatuses to form a local cluster, including at least one of a home cluster, a car cluster, or a vacation home cluster.
18. The system of claim 16, further comprising a cluster control module to assign to the apparatus of the plurality of apparatuses a cluster controller role to perform at least one task, and, wherein the cluster control module is to reassign the cluster controller role to another apparatus of the plurality of apparatuses, when a current cluster controller is not available.
19. A method comprising:
dynamically identifying a list of resources available to an apparatus; in response to the identification,
communicating the list of resources to a server computer;
obtaining from the server computer a list of functionalities performable by the apparatus based on the list of resources;
receiving from a user a selection from the list of functionalities; receiving from the server computer additional resources based on the selection; and
configuring the apparatus to perform selected functionalities by using the additional resources.
20. The method of claim 19, wherein obtaining from the server computer comprises requesting from the server computer the list of functionalities and in response to the requesting, receiving from the server computer the list of functionalities over a network.
PCT/US2011/025869 2010-02-26 2011-02-23 Dynamically configurable clusters of apparatuses WO2011106382A2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012555101A JP2013520754A (en) 2010-02-26 2011-02-23 Computerized method and system
EP11747968.3A EP2539827A4 (en) 2010-02-26 2011-02-23 Dynamically configurable clusters of apparatuses
CA2791150A CA2791150A1 (en) 2010-02-26 2011-02-23 Dynamically configurable clusters of apparatuses

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US12/713,538 US20110213810A1 (en) 2010-02-26 2010-02-26 Dynamically configurable chameleon device
US12/713,596 US20110213825A1 (en) 2010-02-26 2010-02-26 Dynamically configurable clusters of apparatuses
US12/713,538 2010-02-26
US12/713,596 2010-02-26

Publications (2)

Publication Number Publication Date
WO2011106382A2 true WO2011106382A2 (en) 2011-09-01
WO2011106382A3 WO2011106382A3 (en) 2011-11-17

Family

ID=44507536

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2011/025869 WO2011106382A2 (en) 2010-02-26 2011-02-23 Dynamically configurable clusters of apparatuses

Country Status (4)

Country Link
EP (1) EP2539827A4 (en)
JP (1) JP2013520754A (en)
CA (1) CA2791150A1 (en)
WO (1) WO2011106382A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015041424A1 (en) 2013-09-23 2015-03-26 Samsung Electronics Co., Ltd. Method and apparatus for controlling devices for smart home service

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6427163B1 (en) * 1998-07-10 2002-07-30 International Business Machines Corporation Highly scalable and highly available cluster system management scheme
AU2002225810A1 (en) * 2000-11-02 2002-05-15 Sony Electronics Inc. Content and application download based on a home network system configuration profile
US7257638B2 (en) * 2001-12-20 2007-08-14 Microsoft Corporation Distributing network applications
US6950855B2 (en) * 2002-01-18 2005-09-27 International Business Machines Corporation Master node selection in clustered node configurations
JP2004021666A (en) * 2002-06-18 2004-01-22 Hitachi Ltd Network system, server, and server setting method
JP4013740B2 (en) * 2002-11-13 2007-11-28 株式会社デンソー Information processing apparatus, information processing support apparatus, and information processing support system
JP2004348711A (en) * 2003-04-30 2004-12-09 Matsushita Electric Ind Co Ltd Apparatus and method for information management
JP2006020298A (en) * 2004-06-03 2006-01-19 Canon Inc Function-setting system, imaging device, data processing device, function-setting method, and function-setting program
US9843557B2 (en) * 2004-12-09 2017-12-12 Level 3 Communications, Llc Systems and methods for dynamically registering endpoints in a network
US20060242647A1 (en) * 2005-04-21 2006-10-26 Kimbrel Tracy J Dynamic application placement under service and memory constraints
JP5056373B2 (en) * 2007-11-22 2012-10-24 ソニー株式会社 Information processing apparatus and information processing method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
None
See also references of EP2539827A4

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015041424A1 (en) 2013-09-23 2015-03-26 Samsung Electronics Co., Ltd. Method and apparatus for controlling devices for smart home service
CN105580313A (en) * 2013-09-23 2016-05-11 三星电子株式会社 Method and apparatus for controlling devices for smart home service
EP3050253A4 (en) * 2013-09-23 2017-05-17 Samsung Electronics Co., Ltd. Method and apparatus for controlling devices for smart home service
US9686094B2 (en) 2013-09-23 2017-06-20 Samsung Electronics Co., Ltd. Method and apparatus for controlling devices for smart home service
US10020957B2 (en) 2013-09-23 2018-07-10 Samsung Electronics Co., Ltd. Method and apparatus for controlling devices for smart home service
CN105580313B (en) * 2013-09-23 2020-08-14 三星电子株式会社 Method and apparatus for controlling device for smart home service

Also Published As

Publication number Publication date
CA2791150A1 (en) 2011-09-01
EP2539827A2 (en) 2013-01-02
EP2539827A4 (en) 2015-01-07
JP2013520754A (en) 2013-06-06
WO2011106382A3 (en) 2011-11-17

Similar Documents

Publication Publication Date Title
US11416113B2 (en) Apparatus and method for remotely controlling peripheral devices in mobile communication terminal
US9110754B2 (en) Computing device update control
US9097528B2 (en) Managing a datacenter using mobile devices
US10063628B2 (en) Device and method for providing multimedia data in a motor vehicle
US8990703B2 (en) Smart-remote protocol
US9405845B2 (en) Adaptable layouts for social feeds
CN107526610B (en) System, method and apparatus for managing applications on a device
US9106424B2 (en) Method and system for providing users login access to multiple devices via a communication system
EP3968702A1 (en) Communication method and apparatus, entity and computer readable storage medium
US20140289414A1 (en) Api for resource discovery and utilization
EP1528751A2 (en) Simple and dynamic configuration of network devices
US10582261B1 (en) Virtual service delivery platform
US20220100490A1 (en) Firmware updating method, and electronic apparatus and storage media for same
JP2010055275A (en) Information processing apparatus and function expansion method
US9058238B2 (en) Electronic device with customizable embedded software and methods therefor
US20110213825A1 (en) Dynamically configurable clusters of apparatuses
CN114422436B (en) Gateway, gateway control method, gateway control device, electronic equipment and storage medium
US11240562B1 (en) Set-top box reboot and polling tool
WO2011106382A2 (en) Dynamically configurable clusters of apparatuses
US8521840B2 (en) Network system and replay apparatus
CN108141697B (en) Electronic device, corollary device and method for operating electronic device
CN109819334B (en) Display apparatus and menu display method thereof
CN101766027B (en) TV-centric system
US20110213810A1 (en) Dynamically configurable chameleon device
JP6224356B2 (en) Information processing device

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11747968

Country of ref document: EP

Kind code of ref document: A2

ENP Entry into the national phase

Ref document number: 2791150

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 2012555101

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2011747968

Country of ref document: EP