US20090300136A1 - Scalable Transfer Feedback - Google Patents
Scalable Transfer Feedback Download PDFInfo
- Publication number
- US20090300136A1 US20090300136A1 US12/127,016 US12701608A US2009300136A1 US 20090300136 A1 US20090300136 A1 US 20090300136A1 US 12701608 A US12701608 A US 12701608A US 2009300136 A1 US2009300136 A1 US 2009300136A1
- Authority
- US
- United States
- Prior art keywords
- service
- download
- remote management
- client device
- firmware
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- Technical Report 069 (TR-069) is the Digital Subscriber Line (DSL) Forum technical specification entitled CPE WAN Management Protocol (CWPM) that defines an application layer protocol for remote management of customer premise equipment, client devices, and/or end-user devices. The remote management protocol specification aggregates a session function, a remote management function, and a firmware download service function into a single remote procedure call interface. The remote management protocol specification provides for communication between auto-configuration servers and customer premise equipment for the remote management and configuration of the devices.
- This summary is provided to introduce simplified concepts of scalable transfer feedback. The simplified concepts are further described below in the Detailed Description. This summary is not intended to identify essential features of the claimed subject matter, nor is it intended for use in determining the scope of the claimed subject matter.
- Scalable transfer feedback is described. In embodiment(s), a remote management service can establish a client session with a client device and provide an address that redirects the client device to a firmware download service to download executable program code. The firmware download service can initiate a download of the executable program code to the client device when the client device initiates a request for the executable program code. The firmware download service can also communicate a download status indicator to the client device when the download of the executable program code is initiated, and receive the download status indicator back from the client device when the download of the executable program code is complete.
- In other embodiment(s), the download status indicator is a cascaded feedback indication from the client device to the firmware download service, to the remote management service, and to an auto-configuration service that includes, as delegates, the firmware download service and the remote management service. The remote management service can initially allocate the device locate service to the firmware download service that then provides the download status indicator to the client device.
- Embodiments of scalable transfer feedback are described with reference to the following drawings. The same numbers are used throughout the drawings to reference like features and components:
-
FIG. 1 illustrates an example remote management system in which embodiments of scalable transfer feedback can be implemented. -
FIG. 2 illustrates another example remote management system in which embodiments of scalable transfer feedback can be implemented. -
FIG. 3 illustrates another example remote management system in which embodiments of scalable transfer feedback can be implemented. -
FIG. 4 illustrates example method(s) for scalable transfer feedback in accordance with one or more embodiments. -
FIG. 5 illustrates example method(s) for scalable transfer feedback in accordance with one or more embodiments. -
FIG. 6 illustrates various components of an example device which can implement embodiments of scalable transfer feedback. -
FIG. 7 illustrates an example media content distribution system in which embodiments of scalable transfer feedback can be implemented. - Embodiments of scalable transfer feedback provide a remote management system that includes an auto-configuration service for remote management and auto-configuration of various client devices, customer premise equipment, and end-user devices. The remote management system includes a remote management service and a firmware download service that can each be implemented as separate delegates of the auto-configuration service, or as cascaded service delegates.
- The remote management service and the firmware download service can be implemented as interfaces that are instantiated as separate components at a network node, or alternatively, as independent components at different network nodes (e.g., on separate networked devices). Session functions of the auto-configuration service combined with functions of the remote management service can be partitioned, or otherwise isolated, from session functions of the auto-configuration service combined with functions of the firmware download service such that the remote management service and the firmware download service are separate remote procedure call interfaces.
- In one or more embodiments, the auto-configuration service, remote management service, and firmware download service of a remote management system can leverage the message set from the remote management protocol specification (i.e., the Digital Subscriber Line (DSL) Forum technical specification for CPE WAN Management Protocol). The remote management protocol specification messages can be utilized to implement features of firmware cache coherence to cache executable program code, and/or to implement features of scalable transfer feedback to cascade feedback indications via the services of the remote management system.
- While features and concepts of the described systems and methods for scalable transfer feedback can be implemented in any number of different environments, systems, and/or various configurations, embodiments of scalable transfer feedback are described in the context of the following example systems and environments.
-
FIG. 1 illustrates an exampleremote management system 100 in which various embodiments of scalable transfer feedback can be implemented. In this example,system 100 includes an auto-configuration service 102, aremote management service 104, and afirmware download service 106. Theremote management service 104 and thefirmware download service 106 can each be implemented as separate delegates of the auto-configuration service 102 to facilitate remote management and auto-configuration of various client devices, such asclient device 108. Theclient device 108 may be any type of customer premise equipment, television client device, and/or end-user device that is implemented for network communication with the auto-configuration service 102 and/or the delegates for remote management, configuration, updates, status reporting, diagnostics, and the like. - In this example, the
remote management service 104 and thefirmware download service 106 can be implemented as interfaces that are instantiated as separate components at a network node, or alternatively, as independent components at different network nodes (e.g., on separate networked devices). In an embodiment, session functions of the auto-configuration service 102 combined with the functions of theremote management service 104 can be partitioned, or otherwise isolated, from session functions of the auto-configuration service 102 combined with the functions of thefirmware download service 106 such that theremote management service 104 and thefirmware download service 106 are separate remote procedure call interfaces. - The client device 108 (e.g., any type of customer premise equipment) can interact with the
remote management service 104 to configure device context 110 (e.g., device configuration), and can interact with thefirmware download service 106 to configure device code 112 (e.g., executable code files that are independent of the configuration context). As described herein, “device code” and “executable program code” can include any implementation of software, firmware, programs, applications, or any combination thereof. In an embodiment, the auto-configuration service 102 can be partitioned intodevice context instances 114 anddevice download instances 116 that correspond to respective client device contexts (e.g.,device context 110 of client device 108) and to respective client device code (e.g.,device code 112 of client device 108). - The auto-configuration service 102 configures both the
device context 110 and thedevice code 112 of theclient device 108. The auto-configuration service 102 can instruct theclient device 108, via theremote management service 104, as to which downloads of executable program code are available, as well as when and where to initiate a request for the downloads. The auto-configuration service 102 also can also export a file transport interface, such as File Transfer Protocol (FTP) or other data protocol transports. In this example configuration, communication between theremote management service 104 and thefirmware download service 106 is not direct, but rather, state information can be communicated between the delegates via the auto-configuration service 102. - The auto-configuration service 102 can be implemented as an independent service, or as a component of a service provider, such as a television content distributor that distributes media content to various client devices that are remotely managed and configured by the content distributor. Where the auto-configuration service 102 is implemented several layers into a network or service provider, the
remote management service 104 and thefirmware download service 106 that are the delegates of the auto-configuration service can be “closer” to the client devices for faster communication, less latency when responding to commands, for higher bandwidth to download executable program code updates, and the like. - In one or more embodiments, one service of the
remote management system 100 can transfer control to another of the services (e.g., the auto-configuration service 102,remote management service 104, and/or firmware download service 106). For example,client device 108 can initiate a session request to establish a client session with auto-configuration service 102 via theremote management service 104, and the remote management service can establish the client session with the client device. - The
remote management service 104 can establish the client session and configure theclient device 108 with an Internet address and state information. Theremote management service 104 can also provide an address of thefirmware download service 106 that redirects theclient device 108 to thefirmware download service 106 when the client device next initiates communication with the remote management system 100 (e.g., the auto-configuration service 102 via the remote management service 104). The client redirection is transparent to theclient device 108, and from the perspective of the client device, communication with theremote management system 100 appears to be fully conforming to the remote management protocol specification. - The
remote management service 104 can transfer control to thefirmware download service 106 to facilitate a download of executable program code to theclient device 108. Thefirmware download service 106 can then transfer control back to theremote management service 104 in anticipation of subsequent network management. A message set to transfer control between the services includes session functions associated with the auto-configuration service 102, management functions associated with theremote management service 104, and download functions associated with thefirmware download service 106. - In an embodiment of firmware cache coherence, the services of the remote management system 100 (e.g., the auto-configuration service 102,
remote management service 104, and the firmware download service 106) leverage the “inform” and “download” messages from the remote management protocol specification (i.e., the Digital Subscriber Line (DSL) Forum technical specification for CPE WAN Management Protocol). Thefirmware download service 106 can receive a network location of a firmware package, or other executable program code, via message exchanges with the auto-configuration service 102 and/or theremote management service 104. The firmware download service messages can also be used to cascade transfer feedback to the auto-configuration service 102 and/or to theremote management service 104 in one or more embodiments of scalable transfer feedback. In addition, authentication can be implemented at a transport layer security portion of the stack for firmware download service identification with an “inform” message for client device management. -
FIG. 2 illustrates another exampleremote management system 200 in which various embodiments of scalable transfer feedback can be implemented. In this example,system 200 includes an auto-configuration service 202, aremote management service 204, and afirmware download service 206. Examples of the services and various functionality are described with reference to the respective auto-configuration service 102,remote management service 104, andfirmware download service 106 shown inFIG. 1 . In this exampleremote management system 200, however, theremote management service 204 can be implemented as a delegate of the auto-configuration service 202, and thefirmware download service 206 can then be implemented as delegate of theremote management service 204. The separate delegates facilitate remote management, configuration, updates, status reporting, diagnostics, and the like for various client devices, such asclient device 208. - In this example, the
remote management service 204 and thefirmware download service 206 can be implemented as interfaces that are instantiated as separate components at a network node, or alternatively, as independent components at different network nodes (e.g., on separate networked devices). In an embodiment, session functions of the auto-configuration service 202 combined with the functions of theremote management service 204 can be partitioned, or otherwise isolated, from session functions of the auto-configuration service 202 combined with the functions of thefirmware download service 206 such that theremote management service 204 and thefirmware download service 206 are separate remote procedure call interfaces. In this example configuration, state information can be communicated directly between theremote management service 204 and thefirmware download service 206. Optionally, thefirmware download service 206 can also communicate state information directly to the auto-configuration service 202. - The client device 208 (e.g., any type of customer premise equipment) can interact with the
remote management service 204 to configure device context 210 (e.g., device configuration), and can interact with thefirmware download service 206 to configure device code 212 (e.g., executable code files that are independent of the configuration context). In an embodiment, the auto-configuration service 202 can be partitioned intodevice context instances 214 and device downloadinstances 216 that correspond to respective client device contexts (e.g.,device context 210 of client device 208) and to respective client device code (e.g.,device code 212 of client device 208). - Although not shown, an auto-configuration service of a remote management system (e.g., auto-configuration service 102 shown in
FIG. 1 , or auto-configuration service 202 shown inFIG. 2 ) can be implemented to control or manage multiple pairs of service delegates (e.g., a remote management service and corresponding firmware download service) to facilitate remote management and auto-configuration of multiple client devices. -
FIG. 3 illustrates another exampleremote management system 300 in which various embodiments of scalable transfer feedback can be implemented. In this example,system 300 includes an auto-configuration service 302, aremote management service 304, and afirmware download service 306. Examples of the services and various functionality are described with reference to the respective auto-configuration service 102,remote management service 104, andfirmware download service 106 shown inFIG. 1 . Additional examples of the services and various functionality are described with reference to the respective auto-configuration service 202,remote management service 204, andfirmware download service 206 shown inFIG. 2 . - The
remote management system 300 can be implemented for remote management and auto-configuration of various devices, such asmedia devices 308,client devices customer premise equipment 314 that are networked via communication network(s) 316. Theclient device 312 may be any type of customer premise equipment, television client device, and/or end-user device that is implemented for network communication with the auto-configuration service 302 and/or the delegates for remote management, configuration, updates, status reporting, diagnostics, and the like. - Communication network(s) 316 can be implemented to include any type of a DSL network, data network, voice network, broadcast network, and/or an IP-based network that facilitates data communication for remote management and auto-configuration of the various media and client devices. The communication network(s) 316 can be implemented using any type of network topology and/or communication protocol, and can be represented or otherwise implemented as a combination of two or more networks. Any one or more of the arrowed communication links facilitate two-way data communication, such as from the
remote management service 304 toclient device 312 and vice-versa. - In this
example system 300, theremote management service 304 and thefirmware download service 306 can each be implemented as separate delegates of the auto-configuration service 102 as described with reference to the exampleremote management system 100 shown inFIG. 1 to facilitate remote management and auto-configuration ofclient device 312. Alternatively, theremote management service 304 can be implemented as a delegate of the auto-configuration service 302, and thefirmware download service 306 can then be implemented as a delegate of theremote management service 304 as described with reference to the exampleremote management system 200 shown inFIG. 2 to facilitate remote management and auto-configuration ofclient device 312. - In this example, the
remote management service 304 and thefirmware download service 306 can be implemented as interfaces that are instantiated as separate components at a network node, or alternatively, as independent components at different network nodes (e.g., on separate networked devices). In an embodiment, session functions of the auto-configuration service 302 combined with the functions of theremote management service 304 can be partitioned, or otherwise isolated, from session functions of the auto-configuration service 302 combined with the functions of thefirmware download service 306 such that theremote management service 304 and thefirmware download service 306 are separate remote procedure call interfaces. - The client device 312 (e.g., any type of customer premise equipment) can interact with the
remote management service 304 to configure device context 318 (e.g., device configuration), and can interact with thefirmware download service 306 to configure device code 320 (e.g., executable code files that are independent of the configuration context). In an embodiment, the auto-configuration service 302 can be partitioned intodevice context instances 322 and device downloadinstances 324 that correspond to respective client device contexts (e.g.,device context 318 of client device 312) and to respective client device code (e.g.,device code 320 of client device 312). - The
client device 312 can initiate asession request 326 to establish a client session with auto-configuration service 302 via theremote management service 304. Theremote management service 304 can establish theclient session 328 and configure theclient device 312 with an Internet address and state information. Theremote management service 304 can also provide adownload service address 330 of thefirmware download service 306 that redirects theclient device 312 to thefirmware download service 306 when the client device next initiates communication with the remote management system 300 (e.g., the auto-configuration service 302 via the remote management service 304). - The
remote management system 300 can include anetworked storage media 332 that maintains or storesexecutable program code 334, such as software, firmware, programs, applications, or any combination thereof. Thefirmware download service 306 can facilitate a download of theexecutable program code 334 to theclient device 312 when the client device initiates adownload request 336 for the executable program code. Theclient device 312 communicates thedownload request 336 to the firmware download service 306 (e.g., via the communication networks 316) based on thedownload service address 330 provided by theremote management service 304. - In this
example system 300, thefirmware download service 306 includes acache 338, or other storage media implemented as any type of memory, random access memory (RAM), read only memory (ROM), any type of magnetic or optical disk storage, and/or other suitable electronic data storage. In an embodiment of firmware cache coherence, thefirmware download service 306 can cache (e.g., maintain or store) theexecutable program code 334 as cachedexecutable program code 340 for download to the various devices, such asclient device 312. Theremote management service 304 can instruct thefirmware download service 306 to cache theexecutable program code 334 prior to the clientdevice download request 336 for the executable program code. Theremote management service 304 can also provide a download schedule message to theclient device 312 to indicate when the client device can initiate thedownload request 336 for theexecutable program code 334 or the cachedexecutable program code 340 from thefirmware download service 306. - In an event that the
firmware download service 306 has not cached theexecutable program code 334 when requested by theclient device 312, thefirmware download service 306 can communicate a download message to theclient device 312 that enables the client device to resolve the location from which to download theexecutable program code 334. For example, thefirmware download service 306 can provide theclient device 312 an address of thenetworked storage media 332 from which theclient device 312 can request to download theexecutable program code 334. Thefirmware download service 306 can then cache theexecutable program code 334 from thestorage media 332 prior to receiving another download request for the executable program code from any of the other various devices. - In an event that the location of the
executable program code 334 is unknown to thefirmware download service 306 when theclient device 312 initiates thedownload request 336, thefirmware download service 306 can communicate an inform message to the auto-configuration service 302 to indicate that the location of theexecutable program code 334 is unknown to the firmware download service. Thefirmware download service 306 can communicate directly with the auto-configuration service 302 when theremote management system 300 is configured as shown inFIG. 1 . Thefirmware download service 306 can then receive a download message from the auto-configuration service 302 that includes the location of thenetworked storage media 332 which enables thefirmware download service 306 to cache the executable program code. - Alternatively, the
firmware download service 306 can communicate an inform message to theremote management service 304 to indicate that the location of theexecutable program code 334 is unknown to the firmware download service. Thefirmware download service 306 can communicate directly with theremote management service 304 when theremote management system 300 is configured as shown inFIG. 2 and the service delegates are cascaded. For example, thefirmware download service 306 is a delegate of theremote management service 304 which, in turn, is a delegate of the auto-configuration service 302. Thefirmware download service 306 can then receive a download message from theremote management service 304 that includes the location of thenetworked storage media 332 which enables the firmware download service to cache the executable program code. - The
remote management service 304 can receive an inform message from thefirmware download service 306 that indicates the location of theexecutable program code 334 is unknown to thefirmware download service 306. In an embodiment, the inform message from the firmware download service can include an identifier of theclient device 312 from which thedownload request 336 is received. Theremote management service 304 can then communicate the inform message to the auto-configuration service 302 to indicate that the location of theexecutable program code 334 is also unknown to the remote management service. Theremote management service 304 can then receive a download message from the auto-configuration service 302 that indicates the location of the executable program code (e.g., provides an address of the storage media 332), and communicate the download message to thefirmware download service 306 that enables the firmware download service to resolve the location from which to cache theexecutable program code 334. - In an embodiment of firmware cache coherence, the services of the remote management system 100 (e.g., the auto-configuration service 302,
remote management service 304, and the firmware download service 306) leverage the “inform” and “download” messages from the remote management protocol specification (i.e., the Digital Subscriber Line (DSL) Forum technical specification for CPE WAN Management Protocol). Thefirmware download service 306 can receive a network location of theexecutable program code 334, or other executable program code, via message exchanges with the auto-configuration service 302 and/or theremote management service 304. The firmware download service messages can also be used to cascade transfer feedback to the auto-configuration service 302 and/or to theremote management service 304 in one or more embodiments of scalable transfer feedback. - In an embodiment of scalable transfer feedback, the
firmware download service 306 includesdownload status indicators 342 that can be used as a scoring or tracking system to track which of the various media devices, client devices, and/or end-user devices receive a download or upgrade of theexecutable program code 334. Thefirmware download service 306 can communicate adownload status indicator 342 to theclient device 312 when a download of theexecutable program code 334 or the cachedexecutable program code 340 is initiated. Thefirmware download service 306 can then receive thedownload status indicator 342 back from theclient device 312 when the download of the executable program code is complete. Thefirmware download service 306 can then communicate thedownload status indicator 342 that is received from theclient device 312 to theremote management service 304. - In an embodiment, the
remote management service 304 is implemented to allocate thedownload status indicators 342 to thefirmware download service 306 that then provides a download status indicator to theclient device 312. When theremote management service 304 receives adownload status indicator 342 back from thefirmware download service 306, the remote management service can then communicate thedownload status indicator 342 to the auto-configuration service 302. Thedownload status indicator 342 is a cascaded feedback indication from thefirmware download service 306, to theremote management service 304, and to the auto-configuration service 302. The auto-configuration service 302 can then track which of various devices download theexecutable program code 334 by the respectivedownload status indicators 342 that are received as cascaded feedback from theremote management service 304 via thefirmware download service 306. - In one or more embodiments, the auto-configuration service 302,
remote management service 304, andfirmware download service 306 of theremote management system 300 can leverage the remote management protocol specification and the message set of the Digital Subscriber Line (DSL) Forum technical specification for CPE WAN Management Protocol which defines an application layer protocol for remote management of customer premise equipment, client devices, and/or end-user devices. Although embodiments of scalable transfer feedback scales to other network designs, various aspects and features of the remote management protocol specification are described following. - In an embodiment, scalable transfer feedback can conform to the remote management protocol specification, and includes protocols to initialize a Dynamic Host Configuration Protocol (DHCP) of a device state, resolve Domain Name System (DNS) network locations to network addresses, and synchronize Network Time Protocol (NTP) time references. Additional protocols can include the Simple Object Access Protocol (SOAP), HyperText Transfer Protocol (HTTP), Transport Layer Security (TLS), Transmission Control Protocol (TCP), File Transfer Protocol (FTP), and/or the Trivial File Transfer Protocol (TFTP). The Dynamic Host Configuration Protocol (DHCP) initializes a device context, such as the location of the DNS service, the location of the NTP service, and the location of the
remote management service 304. - The content of the interface messages of the auto-configuration service 302 can be implemented as eXtensible Markup Language (XML), and the protocol stack can be implemented in an order of: XML, SOAP, HTTP, TLS, TCP, IP, and DSL. For the message transport, the standard can include Simple Object Access Protocol (SOAP) over HyperText Transfer Protocol (HTTP) over Transport Layer Security (TLS) over Transmission Control Protocol (TCP) over Internet Protocol (IP). In the context of Digital Subscriber Line Forum specifications, the network protocol below the Internet strata can be a variation of the Digital Subscriber Line.
- Although embodiments of scalable transfer feedback can be implemented to conform to the remote management protocol specification, the message set is partitioned. Table A includes the message set from the perspective of the customer premise equipment (e.g., client device 312). The request column indicates that the customer premise equipment initiates an exchange with one of the request messages, while the response column indicates that the customer premise equipment terminates the exchange with one of the response messages. The notations for the request column and the response column in Table A (and for the other message sets included herein) are: “M” is must, “S” is should, “O” is optional, “SN” is should not, and “MN” is must not, as applicable for respective requests and/or responses.
-
TABLE A Method Request Response Inform M MN GetRPCMethods M M GetParameterNames MN M GetParameterValues MN M SetParameterValues MN M GetParameterAttributes MN M SetParameterAttributes MN M GetOptions MN O SetVochers MN O AddObject MN M DeleteObject MN M Download MN M Upload MN O TransferComplete M MN RequestDownload O MN ScheduleInform MN O GetQueuedTransfers MN O Reboot MN M FactoryReset MN O Kicked MN O Connect* MN M Close* M M - The “Connect” message and the “Close” message in Table A are fictitious. These functions are part of the HTTP message exchange rather than the SOAP message exchange. To signal the close of the session, for example, the service responds to a previous http.post without message content. Table A includes the “Connect” message and the “Close” message in anticipation of message exchange patterns described in more detail below.
- The message set is partitioned into the three functions corresponding to the auto-configuration service 302 (e.g., the session function), the remote management service 304 (e.g., the remote management function for the configuration of device network state), and the firmware download service 306 (e.g., the firmware download function). The session message set is shown in Table B, the remote management message set is shown in Table C, and the firmware download message set is shown in Table D. The firmware download function supports the detection of available firmware downloads, the publication of the firmware location (e.g., as firmware file(s) or package(s)), and confirmation of file transfer status. The firmware download function can also share the message of the remote management function that transfers control between the firmware download function (e.g., corresponding to the firmware download service 306) and the remote management function (e.g., corresponding to the remote management service 304).
-
TABLE B Session Method Request Response Inform M MN GetRPCMethods M M ScheduleInform MN O Connect MN M Close M M -
TABLE C Remote Management Method Request Response GetParameterNames MN M GetParameterValues MN M SetParameterValues MN M GetParameterAttributes MN M SetParameterAttributes MN M GetOptions MN O AddObject MN M DeleteObject MN M Reboot MN M FactoryReset MN O Kicked MN O -
TABLE D Firmware Download Method Request Response GetParameterAttributes MN S SetParameterAttributes MN M SetVochers MN O Download MN M Upload MN O TransferComplete M MN RequestDownload O MN GetQueuedTransfers MN O - When an embodiment of scalable transfer feedback is implemented to conform to the remote management protocol specification, two interfaces can be defined that combine the three functions which correspond to the auto-configuration service 302 (e.g., the session function), the remote management service 304 (e.g., the remote management function), and the firmware download service 306 (e.g., the firmware download function). A remote management interface for the
remote management service 304 combines the session function and the remote management function. A firmware download interface for thefirmware download service 306 can combine the session function and the firmware download function. Table E includes the message set of the remote management interface from the perspective of theclient device 312, and Table F includes the message set of the firmware download interface from the perspective of theclient device 312. -
TABLE E Remote Management Service Interface Method Request Response Inform M MN GetRPCMethods M M GetParameterNames MN M GetParameterValues MN M SetParameterValues MN M GetParameterAttributes MN M SetParameterAttributes MN M GetOptions MN O AddObject MN M DeleteObject MN M ScheduleInform MN O Reboot MN M FactoryReset MN O Kicked MN O Connect MN M Close M M -
TABLE F Firmware Download Service Interface Method Request Response Inform M MN GetRPCMethods M M GetParameterAttributes MN S SetParameterAttributes MN M SetVochers MN O Download MN M Upload MN O TransferComplete M MN RequestDownload O MN ScheduleInform MN O GetQueuedTransfers MN O Connect MN M Close M M - When an embodiment of scalable transfer feedback is implemented to conform to the remote management protocol specification, the remote management interface and the firmware download interface conform to the message exchanges of the protocol specification, but with separate interfaces for the
remote management service 304 and thefirmware download service 306. - ACS-RMS Message Exchange: Bootstrap Session. For a message exchange between the auto-configuration service (ACS) 302 and the remote management service (RMS) 304, the ACS bootstraps the RMS through the session. The message exchange configures the network state of the RMS. The message exchange also provides the location of the file(s) or package(s) that instruct the RMS with respect to its remote management role, and instruct the FDS with respect to its firmware download role. The ACS initiates the download exchange to publish the directives, and while the download exchange conforms to the auto-configuration service standard, the file name and the file format of the directives is private to the ACS, RMS, and FDS.
- The message exchange sequence below is an example, but omits some message arguments except where the arguments relate to the preconditions for subsequent message exchanges:
-
RMS.INFORM(RMS_INFO, BOOTSTRAP) ACS.INFORM_RESPONSE(MAX_ENVELOPES) ACS.GET_PARAMETER_NAMES( ) RMS.GET_PARAMETER_NAMES_RESPONSE( ) ACS.GET_PARAMETER_VALUES( ) RMS.GET_PARAMETER_VALUES_RESPONSE( ) ACS.SET_PARAMETER_VALUES( ) RMS.SET_PARAMETER_VALUES_RESPONSE( ) ACS.GET_PARAMETER_ATTRIBUTES( ) RMS.GET_PARAMETER_ATTRIBUTES_RESPONSE( ) ACS.SET_PARAMETER_ATTRIBUTES(CONTEXT) RMS.SET_PARAMETER_ATTRIBUTES_RESPONSE( ) ACS.DOWNLOAD(COMMAND_KEY, RMS_FILE_URL,RMS_FILE_NAME) RMS.DOWNLOAD_RESPONSE(STATUS, START_TIME, COMPLETE_TIME) ACS.DOWNLOAD(COMMAND_KEY, FDS_FILE_URL, FDS_FILE_NAME) RMS.DOWNLOAD_RESPONSE(STATUS, START_TIME, COMPLETE_TIME) ACS.SET_PARAMETER_ATTRIBUTES(ACS_CONTROL_URL) RMS.SET_PARAMETER_ATTRIBUTES_RESPONSE( ) ACS.SCHEDULE_INFORM(ACS_SESSION_TIME) RMS.SCHEDULE_INFORM_RESPONSE(MAX_ENVELOPES) ACS.CLOSE( ) - In the message exchange sequence, the
INFORM (RMS —INFO, BOOTSTRAP ) exchange initiates the session. TheRMS —INFO field represents the first field of the message that identifies the device, and theBOOTSTRAP field represents the second field of the message that encodes the reason for the session. In the first steps of the session, the ACS installs the network state of the RMS itself, and the ACS initiates theDOWNLOAD (COMMAND —KEY, RMS —FILE —URL, RMS —FILE —NAME ) exchange to signal a location of the file(s) or package(s) that contain the directives the RMS can realize to configure the network state of the CPE. TheCOMMAND —KEY field represents the first field of theDOWNLOAD message and this string can serve to scoreboard the download instances. TheRMS —FILE —URL field is the third field of theDOWNLOAD message that encodes the location of the directives file. TheRMS —FILE —NAME field is the seventh field of theDOWNLOAD message and represents the target file name. - The ACS initiates the
DOWNLOAD (COMMAND —KEY, FDS —FILE —URL, FDS —FILE —NAME ) exchange to signal the location of the file(s) or package(s) that contain the directives the FDS can implement to download firmware to the CPE. The notation for the fields are the same as for the previousDOWNLOAD message. The ACS can initiate theSET —PARAMETER —ATTRIBUTES (ACS —CONTROL —URL ) exchange to configure the ACS control location, and the RMS can resolve the location to initiate subsequent ACS-RMS sessions. The ACS can also initiate theSCHEDULE —INFORM (RMS —SESSION —TIME ) exchange to define the time at which to initiate the next ACS-RMS session. In an implementation, theSCHEDULE —INFORM (ACS —SESSION —TIME ) exchange is an optimization. - The message exchange sequence above is just one of multiple valid message exchanges, and the message exchange can create the preconditions for subsequent ACS-RMS sessions. The preconditions can include: the file(s) or package(s) location that contain the directives the RMS can realize to configure the network state of the FDS and the CPE; the file(s) or package(s) location that contain the directives the FDS can realize to download firmware to the CPE; the location the RMS can resolve to initiate the subsequent ACS-RSM sessions; and/or a time of the next ACS-RMS session.
- RMS-FDS Message Exchange: Bootstrap Session. For a message exchange between the remote management service (RMS) 304 and the firmware download service (FDS) 306, the RMS controls the message exchange to initialize the FDS. The ACS can perform the FDS initialization, given that the preconditions for subsequent ACS-FDS sessions are realized. the message exchange sequence below is an example:
-
FDS.INFORM(FDS_INFO, BOOTSTRAP) RMS.INFORM_RESPONSE(MAX_ENVELOPES) RMS.GET_PARAMETER_NAMES( ) FDS.GET_PARAMETER_NAMES_RESPONSE( ) RMS.GET_PARAMETER_VALUES( ) FDS.GET_PARAMETER_VALUES_RESPONSE( ) RMS.SET_PARAMETER_VALUES( ) FDS.SET_PARAMETER_VALUES_RESPONSE( ) RMS.GET_PARAMETER_ATTRIBUTES( ) FDS.GET_PARAMETER_ATTRIBUTES_RESPONSE( ) RMS.SET_PARAMETER_ATTRIBUTES(CONTEXT) FDS.SET_PARAMETER_ATTRIBUTES_RESPONSE( ) RMS.DOWNLOAD(COMMAND_KEY, FDS_FILE_URL, FDS_FILE_NAME) FDS.DOWNLOAD_RESPONSE(STATUS, START_TIME, COMPLETE_TIME) RMS.SET_PARAMETER_ATTRIBUTES(RMS_CONTROL_URL) FDS.SET_PARAMETER_ATTRIBUTES_RESPONSE( ) RMS.SCHEDULE_INFORM(RMS_SESSION_TIME) FDS.SCHEDULE_INFORM_RESPONSE(MAX_ENVELOPES) RMS.CLOSE( ) - In the exchange, the RMS can install the network state of the FDS. The RMS initiates the
DOWNLOAD (COMMAND —KEY, FDS —FILE —URL, FDS —FILE —NAME ) exchange to provide the location of the file(s) or package(s) that contain the directives the FDS can realize to download firmware to the CPE. The RMS can initiate theSET —PARAMETER —ATTRIBUTES (RMS —CONTROL —URL ) exchange to configure the RMS control location. The FDS can resolve the location to initiate subsequent RMS-FDS sessions. The RMS can also initiate theSCHEDULE —INFORM (RMS —SESSION —TIME ) exchange to define the time at which to initiate the next RMS-FDS session. - The message exchange sequence above is just one of multiple valid message exchanges, and the message exchange can create the preconditions for subsequent RMS-FDS sessions. The preconditions can include: the file(s) or package(s) location with the directives that instruct the FDS to download firmware to the CPE; the location that the FDS is to resolve to initiate subsequent RMS-FDM sessions; and/or the time of the next RMS-FDS session.
- RMS-CPE Message Exchange: Bootstrap Session. For a message exchange between the remote management service (RMS) 304 and the customer premise equipment (CPE) (e.g., client device 312), the RMS bootstraps the CPE through the message exchange. The sequence below is an example of a message exchange:
-
CPE.INFORM(CPE_INFO, BOOTSTRAP) RMS.INFORM_RESPONSE(MAX_ENVELOPES) RMS.GET_PARAMETER_NAMES( ) CPE.GET_PARAMETER_NAMES_RESPONSE( ) RMS.GET_PARAMETER_VALUES( ) CPE.GET_PARAMETER_VALUES_RESPONSE( ) RMS.SET_PARAMETER_VALUES( ) CPE.SET_PARAMETER_VALUES_RESPONSE( ) RMS.GET_PARAMETER_ATTRIBUTES( ) CPE.GET_PARAMETER_ATTRIBUTES_RESPONSE( ) RMS.SET_PARAMETER_ATTRIBUTES( ) CPE.SET_PARAMETER_ATTRIBUTES_RESPONSE(CONTEXT) RMS.SET_PARAMETER_ATTRIBUTES(RMS_CONTROL_URL) CPE.SET_PARAMETER_ATTRIBUTES_RESPONSE( ) RMS.SCHEDULE_INFORM(RMS_SESSION_TIME) FDS.SCHEDULE_INFORM_RESPONSE(MAX_ENVELOPES) RMS.CLOSE( ) - The message exchange of the RMS-CPE session is comparable to the message exchange of the ACS-RMS session or the message exchange of the RMS-FDS session. The first message exchanges configure the network state of the CPE, and the RMS can then initiate the
RMS.SET —PARAMETER —ATTRIBUTES (RMS —CONTROL —URL ) exchange to provide the RMS control location. The CPE can resolve the location to initiate subsequent RMS-CPE sessions. The RMS can also initiate theSCHEDULE —INFORM (RMS —SESSION —TIME ) exchange to define the time at which to initiate the next RMS-CPE session. The interactions with the CPE can be separated into a bootstrap event and a subsequent download initialization event (which may also be combined in an alternate embodiment). - RMS-CPE Message Exchange: Download Session. For another message exchange between the remote management service (RMS) 304 and the customer premise equipment (CPE) (e.g., client device 312), the CPE can download executable program code after network configuration of the CPE is complete via the previous message exchange. The message exchange can transfer control from the RMS to the FDS, which then executes the firmware (e.g., or other executable program code) downloads. Once a download session is complete, the FDS can transfer control back to the RMS. The sequence below is an example of the message exchange:
-
CPE.INFORM(CPE_INFO, SCHEDULED) RMS.INFORM_RESPONSE(MAX_ENVELOPES) RMS.SET_PARAMETER_ATTRIBUTES(FDS_CONTROL_URL) CPE.SET_PARAMETER_ATTRIBUTES_RESPONSE( ) RMS.SCHEDULE_INFORM(FDS_SESSION_TIME) FDS.SCHEDULE_INFORM_RESPONSE(MAX_ENVELOPES) RMS.CLOSE( ) - In the example message exchange, the RMS can provide the location that the CPE resolves to initiate subsequent FDS-CPE sessions. The RMS can also initiate the
RMS.SCHEDULE —INFORM (RMS —SESSION —TIME ) exchange to define the time of a subsequent FDS-CPE session. - FDS-CPE Message Exchange: Download Session. A message exchange between the firmware download service (FDS) 306 and the customer premise equipment (CPE) (e.g., client device 312), can be implemented when a location of the file(s) or packages(s) for the CPE are known to the FDS. The sequence below is an example of the message exchange:
-
CPE.INFORM(CPE_INFO, SCHEDULED) FDS.INFORM_RESPONSE(MAX_ENVELOPES) FDS.DOWNLOAD(COMMAND_KEY, CPE_FILE_URL, CPE_FILE_NAME) CPE.DOWNLOAD_RESPONSE(STATUS, START_TIME, COMPLETE_TIME) FDS.SET_PARAMETER_ATTRIBUTES(RMS_CONTROL_URL) CPE.SET_PARAMETER_ATTRIBUTES_RESPONSE( ) FDS.SCHEDULE_INFORM(RMS_SESSION_TIME) CPE.SCHEDULE_INFORM_RESPONSE(MAX_ENVELOPES) FDS.CLOSE( ) - The FDS can publish the firmware for the CPE via the
FDS.DOWNLOAD (COMMAND —KEY, CPE —FILE —URL, CPE —FILE —NAME ) exchange. The message exchange sequence can be implemented when a CPE returns a status code (e.g., a download status indicator 342) to signal that a download of executable program code is complete. The FDS can then transfer control back to the RMS, and the FDS can initiate theSET —PARAMETER —ATTRIBUTES (RMS —CONTROL —URL ) exchange to configure the location of the RMS for subsequent RMS-CPE sessions. The FDS can also initiate theFDS.SCHEDULE —INFORM (RMS —SESSION —TIME ) exchange to define the time to initiate the subsequent RMS-CPE session. - An alternative message exchange sequence below can be implemented when the
CPE.DOWNLOAD —RESPONSE (STATUS, START —TIME, COMPLETE —TIME ) message signals or otherwise indicates that a download of executable program code is in process. An example of the first FDS-CPE session for this instance is the message exchange sequence: -
CPE.INFORM(CPE_INFO, SCHEDULED) FDS.INFORM_RESPONSE(MAX_ENVELOPES) FDS.DOWNLOAD(COMMAND_KEY, CPE_FILE_URL, CPE_FILE_NAME) CPE.DOWNLOAD_RESPONSE(STATUS, START_TIME, COMPLETE_TIME) FDS.CLOSE( ) - Once a download of executable program code completes, the CPE can initiate another FDS-CPE session to report the download status. The message exchange is shown below.
-
CPE.INFORM(CPE_INFO, TRANSFER_COMPLETE) FDS.INFORM_RESPONSE(MAX_ENVELOPES) CPE.TRANSFER_COMPLETE(COMMAND_KEY, FAULT_STRUCT) FDS.TRANSFER_COMPLETE_RESPONSE( ) FDS.SET_PARAMETER_ATTRIBUTES(RMS_CONTROL_URL) CPE.SET_PARAMETER_ATTRIBUTES_RESPONSE( ) FDS.SCHEDULE_INFORM(RMS_SESSION_TIME) CPE.SCHEDULE_INFORM_RESPONSE(MAX_ENVELOPES) FDS.CLOSE( ) - The
TRANSFER —COMPLETE field of theCPE.INFORM (CPE —INFO, TRANSFER —COMPLETE ) message signals that the reason for the session is to report the download status. The CPE can initiate theTRANSFER —COMPLETE exchange to signal the status, theCOMMAND —KEY field can encode a specific download instance, and theFAULT —STRUCT field can encode the download status. - If a download of executable program code is successful, the FDS can transfer control back to the RMS. The FDS can initiate the
SET —PARAMETER —ATTRIBUTES (RMS —CONTROL —URL ) exchange to provide a location the CPE can resolve to create subsequent RMS-CPE sessions. The FDS can also initiate theFDS.SCHEDULE —INFORM (RMS —SESSION —TIME ) exchange to define a time for a subsequent RMS-CPE session. - RMS-FDS Message Exchange: Firmware Cache Session. A message exchange between the remote management service (RMS) 304 and the firmware download service (FDS) 306 can be implemented when the appropriate firmware downloads are not known to the FDS, or the FDS has not cached the firmware. For example, the FDS may not have received a directive from the RMS with respect to applicable firmware for the CPE; the FDS has received directives from the RMS with respect to the applicable firmware for the CPE, but the expiration time of the firmware has past; and/or the FDS has received instructions from the RMS with respect to the applicable firmware for the CPE, the expiration time of the firmware has not past, but the firmware does not reside at the FDS. The FDS can consult with the RMS to determine whether the location known to the FDS is stale.
- In the last instance, the FDS could provide the remote location to the CPE, which the CPE resolves to download from the remote location. However, if the firmware is also appropriate for download to other CPE, it is efficient for the FDS to download and cache the firmware to itself in anticipation of future sessions and download requests for the firmware (e.g., the cached executable program code 340).
- An embodiment of scalable transfer feedback can leverage the standard message exchanges when the HTTP:TLS:TCP:IP stack below the RMS:SOAP stack provides multiple mechanisms for the FDS to describe (and authenticate) itself. The TLS protocol, for example, allows the FDS to authenticate itself to the RMS. Once completed, the FDS can initiate a cache coherence session to the RMS with the
FDS.INFORM (CPE —INFO, REASON ) message. In this instance, the first field of the message is theCPE —INFO field rather than theFDS —INFO field. The RMS can interpret this distinction to mean that the FDS requires download instructions not for itself, but for the CPE that theINFORM describes. An example of the message sequence: -
FDS.INFORM(CPE_INFO, REASON) RMS.INFORM_RESPONSE(MAX_ENVELOPES) RMS.DOWNLOAD(COMMAND_KEY, CPE_FILE_URL, CPE_FILE_NAME) FDS.DOWNLOAD_RESPONSE(STATUS, START_TIME, COMPLETE_TIME) RMS.CLOSE( ) - The
REASON field of theFDS.INFORM message can be implemented as one of the valid codes other than theBOOTSTRAP andTRANSFER —COMPLETE codes of previous exchanges. TheFDS.INFORM (CPE —INFO, REASON ) exchange instructs the RMS as to which CPE requests firmware (e.g., or other executable program code) downloads. TheRMS.DOWNLOAD (COMMAND —KEY, CPE —FILE —URL, CPE —FILE —NAME ) exchange instructs the FDS as to the firmware instance for the specific CPE. If the firmware is known to the FDS, but does not reside on the FDS, the available responses can include any of the following three responses. - First response: the FDS can initiate the
FDS.DOWNLOAD (COMMAND —KEY, CPE —FILE —URL, CPE —FILE —NAME ) exchange with the CPE where theCPE —FILE —URL is the remote location. The CPE can then resolve the remote location and download the firmware (e.g., executable program code). - Second response: the FDS can initiate the
FDS.DOWNLOAD (COMMAND —KEY, CPE —FILE —URL, CPE —FILE —NAME ) exchange with the CPE where theCPE —FILE —URL is the remote location. The CPE can resolve the remote location and download the firmware (e.g., executable program code). The FDS can also resolve theCPE —FILE —URL location and download the firmware to itself as cached executable program code. The FDS can then retain the firmware for future download sessions, and in anticipation of future download sessions, the FDS can communicate the location of the firmware to theCPE —FILE —URL field of theDOWNLOAD (COMMAND —KEY, CPE —FILE —URL, CPE —FILE —NAME ) message. - Third response: Before the FDS initiates the
FDS.DOWNLOAD (COMMAND —KEY, CPE —FILE —URL, CPE —FILE —NAME ) exchange with the CPE, the FDS can resolve theCPE —FILE —URL location and download the firmware to itself. The FDS can retain the firmware for future download sessions. The FDS can communicate the location of the firmware to theCPE —FILE —URL field of theDOWNLOAD (COMMAND —KEY, CPE —FILE —URL, CPE —FILE —NAME ) message. The FDS can then initiate theFDS.DOWNLOAD (COMMAND —KEY, CPE —FILE —URL, CPE —FILE —NAME ) exchange with the CPE that resolves the firmware location and downloads the firmware. -
Example methods FIGS. 4 and 5 in accordance with one or more embodiments of scalable transfer feedback. Generally, any of the functions, methods, procedures, components, and modules described herein can be implemented using hardware, software, firmware, fixed logic circuitry, manual processing, or any combination thereof. A software implementation of a function, method, procedure, component, or module represents program code that performs specified tasks when executed on a computing-based processor.Example methods - The method(s) may also be practiced in a distributed computing environment where functions are performed by remote processing devices that are linked through a communication network. In a distributed computing environment, computer-executable instructions may be located in both local and remote computer storage media, including memory storage devices. Further, the features described herein are platform-independent such that the techniques may be implemented on a variety of computing platforms having a variety of processors.
-
FIG. 4 illustrates example method(s) 400 of scalable transfer feedback. The order in which the method is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method, or an alternate method. - At block 402, a remote management service is instantiated as a delegate of an auto-configuration service. For example,
remote management service 104 is instantiated as a delegate of the auto-configuration service 102 in the remote management system 100 (FIG. 1 ). Similarly,remote management service 204 is instantiated as a delegate of the auto-configuration service 202 in the remote management system 200 (FIG. 2 ). - At
block 404, a determination is made as to whether the remote management system will be implemented with cascaded service delegates. The service delegates are “cascaded” when a firmware download service is implemented as a delegate of a remote management service which, in turn, is implemented as a delegate of an auto-configuration service. If the remote management system will be implemented with cascaded service delegates (i.e., “yes” from block 404), then atblock 406, a firmware download service is instantiated as a delegate of the remote management service. For example,firmware download service 206 is instantiated as a delegate of theremote management service 204 in theremote management system 200. The service delegates are “cascaded” and thefirmware download service 206 is a delegate of theremote management service 204 which, in turn, is a delegate of the auto-configuration service 202. - If the remote management service will not be implemented with cascaded service delegates (i.e., “no” from block 404), then at block 408, a firmware download service is also instantiated as a delegate of the auto-configuration service. For example,
firmware download service 106 is instantiated as a delegate of the auto-configuration service 102 in theremote management system 100. -
FIG. 5 illustrates example method(s) 500 of scalable transfer feedback. The order in which the method is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method, or an alternate method. - At
block 502, a download status indicator is allocated to a firmware download service. For example, theremote management service 304 of the remote management system 300 (FIG. 3 ) allocates adownload status indicator 342 to thefirmware download service 306 that can then communicate thedownload status indicator 342 to aclient device 312 when adownload request 336 to downloadexecutable program code 334 or cachedexecutable program code 340 is received from the client device. - At
block 504, a session request is received from a client device at a remote management service that establishes a client session with the client device. For example, theremote management service 304 receives asession request 326 fromclient device 312 and establishes a client session with the client device. Atblock 506, an address is provided to the client device that redirects the client device to a firmware download service that facilitates a download of executable program code. For example, theremote management service 304 communicates anaddress 330 of thefirmware download service 306 to theclient device 312 to redirect the client device for a download or update of executable program code (e.g., theexecutable program code 334 or the cachedexecutable program code 340 maintained at the firmware download service 306). - At
block 508, the executable program code is cached at the firmware download service for download to the client device. For example, thefirmware download service 306 caches theexecutable program code 334 and maintains the cachedexecutable program code 340 for download to theclient device 312 when the client device initiates thedownload request 336. Atblock 510, a download of the executable program code to the client device is initiated from the firmware download service. For example, thefirmware download service 306 downloads the cachedexecutable program code 340 to theclient device 312 when the client device initiates thedownload request 336 for the executable program code. - At
block 512, the download status indicator is communicated to the client device when the download of the executable program code is initiated. For example, thefirmware download service 306 communicates thedownload status indicator 342 received from theremote management service 304 to theclient device 312 when theexecutable program code 334 or the cachedexecutable program code 340 is downloaded to theclient device 312. Atblock 514, the download status indicator is received back from the client device when the executable program code is downloaded. For example, thefirmware download service 306 receives thedownload status indicator 342 back from theclient device 312 when the download of the executable program code is complete. - At
block 516, the download status indicator is communicated back to the remote management service after the download status indicator is received back from the client device when the download of the executable program code is complete. For example, thefirmware download service 306 communicates thedownload status indicator 342 back to theremote management service 304 after receiving thedownload status indicator 342 back from theclient device 312 when the download of the executable program code is completed at theclient device 312. - At
block 518, the download status indicator is communicated to an auto-configuration service after the download status indicator is received back from the firmware download service. For example, theremote management service 304 is a delegate of the auto-configuration service 302 and communicates thedownload status indicator 342 to the auto-configuration service 302 after receiving it from thefirmware download service 306. Thedownload status indicator 342 is a cascaded feedback indication from theclient device 312, to thefirmware download service 306, to theremote management service 304, and to the auto-configuration service 302. - At
block 520, multiple client devices that download the executable program code are tracked by respective download status indicators that are received from the remote management service. For example, the auto-configuration service 302 tracks and/or monitors which of multiple client devices (e.g., thevarious media devices 308,client devices 310, and customer premise equipment 314) download theexecutable program code 334 to correlate updates and/or downloads with the various devices. -
FIG. 6 illustrates various components of anexample device 600 that can be implemented as any form of a computer, electronic, appliance, and/or media device to implement various embodiments of scalable transfer feedback.Device 600 can include one or moremedia content interfaces 602 via which any type of audio, video, and/or image media content can be received from a media content source and/or distributed to various devices, such as media devices, client devices, and customer premise equipment. Themedia content interfaces 602 can include Internet Protocol (IP) inputs over which streams of media content are received and/or distributed via an IP-based network. -
Device 600 further includes one ormore communication interfaces 604 that can be implemented as any one or more of a serial and/or parallel interface, a wireless interface, any type of network interface, a modem, and as any other type of communication interface. The communication interfaces 604 provide a connection and/or communication links betweendevice 600 and communication network(s) by which other communication, electronic, and computing devices can communicate data and media content withdevice 600, such as remote management and auto-configuration data. -
Device 600 can include one or more processors 606 (e.g., any of microprocessors, controllers, and the like) which process various computer-executable instructions to control the operation ofdevice 600 and to implement embodiments of scalable transfer feedback. Alternatively or in addition,device 600 can be implemented with any one or combination of hardware, firmware, or fixed logic circuitry that is implemented in connection with signal processing and control circuits which are generally identified at 608. -
Device 600 can also include computer-readable media 610, such as one or more memory components, examples of which include random access memory (RAM), non-volatile memory (e.g., any one or more of a read-only memory (ROM), flash memory, EPROM, EEPROM, etc.), and a disk storage device. A disk storage device can include any type of magnetic or optical storage device, such as a hard disk drive, a recordable and/or rewriteable compact disc (CD), any type of a digital versatile disc (DVD), and the like.Device 600 may also include astorage media 612 to maintainexecutable program code 614 for software, program, application, and/or firmware downloads and updates to various media devices, client devices, and/or customer premise equipment. - Computer-
readable media 610 provides data storage mechanisms to storevarious device applications 616 and any other types of information and/or data related to operational aspects ofdevice 600. For example, anoperating system 618, adevice manager 620, and aremote service component 622 of a remote management system can each be maintained as a computer application and/or software module with the computer-readable media 610 and executed on theprocessors 606 to implement various embodiments of scalable transfer feedback. Theremote service component 622 can be implemented as a module or interface and can include any one of an auto-configuration service 624, aremote management service 626, and/or afirmware download service 628 that is implemented at a network node (e.g., at a networked computing device). - Although not shown,
device 600 can include a system bus or data transfer system that couples the various components within the device. A system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures. -
FIG. 7 illustrates an example mediacontent distribution system 700 in which various embodiments of scalable transfer feedback can be implemented.System 700 includes one or morecontent distributors 702 that communicate, distribute, or otherwise provide media content 704 (e.g., live television content and/or recorded television content) to any number of various media devices via communication network(s) 706. The various media devices can includewireless media devices 708 as well as other client devices 710 (e.g., wired and/or wireless devices) that are implemented as components invarious client systems 712 in the media content distribution system. Any of the various media devices can receive media content, television content, recorded content, program guide data, advertising content, closed captions data, content metadata, and any other audio, video, and/or image content from content server(s) 714 of acontent distributor 702. - Communication network(s) 706 can be implemented to include any type of a DSL network, a data network, voice network, broadcast network, an IP-based network, and/or a
wireless network 716 that facilitates content distribution as well as data and/or voice communication between thecontent distributor 702,wireless media devices 708, andother client devices 710. The communication network(s) 706 can be implemented using any type of network topology and/or communication protocol, and can be represented or otherwise implemented as a combination of two or more networks. Any one or more of the arrowed communication links facilitate two-way data communication, such as from thecontent distributor 702 to aclient system 712 and vice-versa. - The media content 704 (to included recorded media content) can include any type of audio, video, and/or image content received from any type of media content source, and can include television programs (or programming), advertisements, commercials, music, movies, and on-demand media content or assets. Other media content can include interactive games, network-based applications, and any other audio, video, and/or image content (e.g., to include program guide data, user interface data, search results and/or recommendations, and the like).
-
Content distributor 702 can also include aremote management system 718 that can be implemented as computer-executable instructions and executed by processor(s) to implement the various embodiments and/or features of scalable transfer feedback as described herein. Theremote management system 718 can be implemented for remote management and to distributeexecutable program code 720 for auto-configuration of the variouswireless media devices 708 and/orother client devices 710. Theremote management system 718 can be implemented as any one of theremote management systems FIGS. 1-3 . Thecontent distributor 702 can include an auto-configuration service 722, aremote management service 724, and/or afirmware download service 726 of theremote management system 718. -
Content distributor 702 can also be implemented with other various content distribution components to facilitate media content processing and distribution, such as a subscriber manager and a device monitor. The subscriber manager can manage subscriber data for users associated with the various media and client devices, and the device monitor can maintain client state information and monitor the various media devices and other client devices. In addition, acontent distributor 702 can be implemented with any number and combination of differing components as further described with reference to the example device shown inFIG. 6 . - The
wireless media devices 708 can include any type of device implemented to receive and/or communicate wireless data, such as any one or combination of a mobile phone device 728 (e.g., cellular, VoIP, WiFi, etc.), aportable computer device 730, a media device 732 (e.g., a personal media player, portable media player, etc.), and/or any other wireless media device that can receive media content in any form of audio, video, and/or image data. Each of theclient systems 712 include a respective client device anddisplay device 734 that together render or playback any form of audio, video, and/or image content, media content, and/or television content. - A
display device 734 can be implemented as any type of a television, high definition television (HDTV), LCD, or similar display system. A client device in aclient system 712 can be implemented as any one or combination of a television client device 736 (e.g., a television set-top box, a digital video recorder (DVR), etc.), acomputer device 738, agaming system 740, an appliance device, an electronic device, and/or as any other type of client device that may be implemented to receive television content or media content in any form of audio, video, and/or image data in a media content distribution system. - Any of the
wireless media devices 708 andother client devices 710 can be implemented with one or more processors, communication components, memory components, signal processing and control circuits, and a media content rendering system. A media or client device may also be associated with a user or viewer (i.e., a person) and/or an entity that operates the device such that a media or client device describes logical devices that include users, software, and/or a combination of devices. - Although embodiments of scalable transfer feedback have been described in language specific to features and/or methods, it is to be understood that the subject of the appended claims is not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as example implementations of scalable transfer feedback.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/127,016 US7788351B2 (en) | 2008-05-27 | 2008-05-27 | Scalable transfer feedback |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/127,016 US7788351B2 (en) | 2008-05-27 | 2008-05-27 | Scalable transfer feedback |
Publications (2)
Publication Number | Publication Date |
---|---|
US20090300136A1 true US20090300136A1 (en) | 2009-12-03 |
US7788351B2 US7788351B2 (en) | 2010-08-31 |
Family
ID=41381147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/127,016 Active 2028-09-10 US7788351B2 (en) | 2008-05-27 | 2008-05-27 | Scalable transfer feedback |
Country Status (1)
Country | Link |
---|---|
US (1) | US7788351B2 (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090300135A1 (en) * | 2008-05-27 | 2009-12-03 | Microsoft Corporation | Firmware Cache Coherence |
US20110106874A1 (en) * | 2009-11-03 | 2011-05-05 | Oto Technologies, Llc | System and method for redirecting client-side storage operations |
US20110145723A1 (en) * | 2009-12-16 | 2011-06-16 | Oto Technologies, Llc | System and method for redirecting client-side storage operations |
US20190306222A1 (en) * | 2018-03-30 | 2019-10-03 | Microsoft Technology Licensing, Llc | Download progress information for composite files |
US11336736B2 (en) * | 2016-11-22 | 2022-05-17 | Airwatch Llc | Management service migration using managed devices |
US11336537B2 (en) | 2016-11-22 | 2022-05-17 | Airwatch Llc | Management service migration for managed devices |
US11562074B2 (en) * | 2020-01-10 | 2023-01-24 | Beijing Xiaomi Mobile Software Co., Ltd. | Firmware upgrade method and device, and storage medium |
KR102592152B1 (en) * | 2022-09-30 | 2023-10-20 | 주식회사 코드잇 | Method for, and system for scalable remote code execution |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6314465B1 (en) * | 1999-03-11 | 2001-11-06 | Lucent Technologies Inc. | Method and apparatus for load sharing on a wide area network |
US6389462B1 (en) * | 1998-12-16 | 2002-05-14 | Lucent Technologies Inc. | Method and apparatus for transparently directing requests for web objects to proxy caches |
US6405256B1 (en) * | 1999-03-31 | 2002-06-11 | Lucent Technologies Inc. | Data streaming using caching servers with expandable buffers and adjustable rate of data transmission to absorb network congestion |
US6584074B1 (en) * | 1999-08-11 | 2003-06-24 | Covad Communitions Group, Inc. | System and method for remote configuration and management of customer premise equipment over ATM |
US20040073902A1 (en) * | 2002-10-11 | 2004-04-15 | Ambit Microsystems Corporation | Firmware upgrade method for network device through digital subscriber line |
US20040148379A1 (en) * | 2002-09-24 | 2004-07-29 | Masaaki Ogura | Remote management system, intermediary apparatus therefor, and method of updating software in the intermediary apparatus |
US20050132061A1 (en) * | 2003-12-12 | 2005-06-16 | Alcatel | Method for autoconfiguring CPEs in DSL networks |
US20050213581A1 (en) * | 2000-07-31 | 2005-09-29 | Cisco Technology, Inc., A California Corporation | ATM permanent virtual circuit and layer 3 auto-configuration for digital subscriber line customer premises equipment |
US20060077423A1 (en) * | 2004-10-08 | 2006-04-13 | Rono Mathieson | Methods and systems for imaging device remote application interaction |
US20060120305A1 (en) * | 2004-12-06 | 2006-06-08 | Alcatel | Remote management method, a related auto configuration server, a related further auto configuration server, a related routing gateway and a related device |
US20060235949A1 (en) * | 2005-04-15 | 2006-10-19 | Ta-Wen Tai | Firmware update method for automatically updating firmware of a plurality of electronic devices and network thereof |
US20060256813A1 (en) * | 2005-05-12 | 2006-11-16 | Verizon Services Corp. | Automatic configuration of network devices for network services |
US20060271666A1 (en) * | 2003-08-04 | 2006-11-30 | Sbc Knowledge Ventures, L.P. | System and method to identify customer premise equipment devices |
US20070025341A1 (en) * | 2005-07-28 | 2007-02-01 | Texas Instruments Incorporated | Device, system and/or method for provisioning a device in a packet network |
US20070201508A1 (en) * | 2006-02-24 | 2007-08-30 | Siemens Aktiengesellschaft | Proxy agent for providing remote management of equipment in a communication network |
US20070220093A1 (en) * | 2006-03-15 | 2007-09-20 | Alcatel Lucent | TR69 Based Service Interface For OSGI Bundles |
US20080065816A1 (en) * | 2006-09-07 | 2008-03-13 | Samsung Electronics Co., Ltd. | Firmware update method for mobile terminal and mobile terminal using the same |
US7376870B2 (en) * | 2004-09-30 | 2008-05-20 | Intel Corporation | Self-monitoring and updating of firmware over a network |
US20090300135A1 (en) * | 2008-05-27 | 2009-12-03 | Microsoft Corporation | Firmware Cache Coherence |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2298322A1 (en) | 1999-03-10 | 2000-09-10 | Lucent Technologies Inc. | Dynamic configuration of communications devices for varying dsl protocols |
WO2006108685A2 (en) | 2005-04-15 | 2006-10-19 | Thomson Licensing | Remote management method of a distant device, and corresponding video device |
US8009665B2 (en) | 2005-10-04 | 2011-08-30 | Assia, Inc. | DSL system |
-
2008
- 2008-05-27 US US12/127,016 patent/US7788351B2/en active Active
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6389462B1 (en) * | 1998-12-16 | 2002-05-14 | Lucent Technologies Inc. | Method and apparatus for transparently directing requests for web objects to proxy caches |
US6314465B1 (en) * | 1999-03-11 | 2001-11-06 | Lucent Technologies Inc. | Method and apparatus for load sharing on a wide area network |
US6405256B1 (en) * | 1999-03-31 | 2002-06-11 | Lucent Technologies Inc. | Data streaming using caching servers with expandable buffers and adjustable rate of data transmission to absorb network congestion |
US6584074B1 (en) * | 1999-08-11 | 2003-06-24 | Covad Communitions Group, Inc. | System and method for remote configuration and management of customer premise equipment over ATM |
US20050213581A1 (en) * | 2000-07-31 | 2005-09-29 | Cisco Technology, Inc., A California Corporation | ATM permanent virtual circuit and layer 3 auto-configuration for digital subscriber line customer premises equipment |
US20040148379A1 (en) * | 2002-09-24 | 2004-07-29 | Masaaki Ogura | Remote management system, intermediary apparatus therefor, and method of updating software in the intermediary apparatus |
US20040073902A1 (en) * | 2002-10-11 | 2004-04-15 | Ambit Microsystems Corporation | Firmware upgrade method for network device through digital subscriber line |
US20060271666A1 (en) * | 2003-08-04 | 2006-11-30 | Sbc Knowledge Ventures, L.P. | System and method to identify customer premise equipment devices |
US20050132061A1 (en) * | 2003-12-12 | 2005-06-16 | Alcatel | Method for autoconfiguring CPEs in DSL networks |
US7376870B2 (en) * | 2004-09-30 | 2008-05-20 | Intel Corporation | Self-monitoring and updating of firmware over a network |
US20060077423A1 (en) * | 2004-10-08 | 2006-04-13 | Rono Mathieson | Methods and systems for imaging device remote application interaction |
US20060120305A1 (en) * | 2004-12-06 | 2006-06-08 | Alcatel | Remote management method, a related auto configuration server, a related further auto configuration server, a related routing gateway and a related device |
US20060235949A1 (en) * | 2005-04-15 | 2006-10-19 | Ta-Wen Tai | Firmware update method for automatically updating firmware of a plurality of electronic devices and network thereof |
US20060256813A1 (en) * | 2005-05-12 | 2006-11-16 | Verizon Services Corp. | Automatic configuration of network devices for network services |
US20070025341A1 (en) * | 2005-07-28 | 2007-02-01 | Texas Instruments Incorporated | Device, system and/or method for provisioning a device in a packet network |
US20070201508A1 (en) * | 2006-02-24 | 2007-08-30 | Siemens Aktiengesellschaft | Proxy agent for providing remote management of equipment in a communication network |
US20070220093A1 (en) * | 2006-03-15 | 2007-09-20 | Alcatel Lucent | TR69 Based Service Interface For OSGI Bundles |
US20080065816A1 (en) * | 2006-09-07 | 2008-03-13 | Samsung Electronics Co., Ltd. | Firmware update method for mobile terminal and mobile terminal using the same |
US20090300135A1 (en) * | 2008-05-27 | 2009-12-03 | Microsoft Corporation | Firmware Cache Coherence |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090300135A1 (en) * | 2008-05-27 | 2009-12-03 | Microsoft Corporation | Firmware Cache Coherence |
US7783731B2 (en) | 2008-05-27 | 2010-08-24 | Microsoft Corporation | Firmware cache coherence |
US20110106874A1 (en) * | 2009-11-03 | 2011-05-05 | Oto Technologies, Llc | System and method for redirecting client-side storage operations |
US8738711B2 (en) | 2009-11-03 | 2014-05-27 | Oto Technologies, Llc | System and method for redirecting client-side storage operations |
US20110145723A1 (en) * | 2009-12-16 | 2011-06-16 | Oto Technologies, Llc | System and method for redirecting client-side storage operations |
US11336736B2 (en) * | 2016-11-22 | 2022-05-17 | Airwatch Llc | Management service migration using managed devices |
US11336537B2 (en) | 2016-11-22 | 2022-05-17 | Airwatch Llc | Management service migration for managed devices |
US20190306222A1 (en) * | 2018-03-30 | 2019-10-03 | Microsoft Technology Licensing, Llc | Download progress information for composite files |
US11064010B2 (en) * | 2018-03-30 | 2021-07-13 | Microsoft Technology Licensing, Llc | Download progress information for composite files |
US11562074B2 (en) * | 2020-01-10 | 2023-01-24 | Beijing Xiaomi Mobile Software Co., Ltd. | Firmware upgrade method and device, and storage medium |
KR102592152B1 (en) * | 2022-09-30 | 2023-10-20 | 주식회사 코드잇 | Method for, and system for scalable remote code execution |
Also Published As
Publication number | Publication date |
---|---|
US7788351B2 (en) | 2010-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7788351B2 (en) | Scalable transfer feedback | |
US8490126B2 (en) | System and method of restricting access to video content | |
AU2012338881B2 (en) | System comprising a publish/subscribe broker for a remote management of end-user devices, and respective end-user device | |
US9063814B2 (en) | Binding user data files | |
US9883251B2 (en) | Method and apparatus for managing connection between broadcast receiving device and another device connected by network | |
US9769538B2 (en) | Systems and methods for content delivery | |
CN103782572A (en) | System and method for providing message and event based video services control plane | |
CN103782571A (en) | System and method for providing a message and an event based video services control plane | |
CN106301865A (en) | It is applied to data processing method and the equipment of service providing device | |
JP2004537094A (en) | Data distribution | |
JPWO2018034172A1 (en) | INFORMATION PROCESSING APPARATUS, CLIENT APPARATUS, AND DATA PROCESSING METHOD | |
CN109845276A (en) | Information processing unit and information processing method | |
US7783731B2 (en) | Firmware cache coherence | |
US8843644B2 (en) | Method and apparatus for enabling a management system to interface with managed devices | |
KR100675130B1 (en) | Method for providing contents to set-top box by third party's action and system thereof | |
Carlson et al. | An ad-hoc smart gateway platform for the web of things | |
US9678736B2 (en) | Method and system for updating a software image at a client device | |
US8972558B1 (en) | Lightweight polling technique | |
WO2011005051A2 (en) | Method and apparatus for remotely controlling and upgrading firmware | |
KR101591534B1 (en) | Peer to Peer Transmittance System for Hierarchical Tracker and Tracker Apparatus therefor | |
KR100651169B1 (en) | Multimedia room operating system and its method by 2-way data providing mechanism | |
US20080155097A1 (en) | Centralized processing system for connect homes devices | |
CN105187867A (en) | Media stream control method and device thereof | |
EP2150019A1 (en) | Internet protocol television server | |
US20230171441A1 (en) | Method providing to a user terminal a target multimedia content available at a master server |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICROSOFT CORPORATION,WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:VAN LOO, JAMES;REEL/FRAME:020998/0440 Effective date: 20080521 Owner name: MICROSOFT CORPORATION, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:VAN LOO, JAMES;REEL/FRAME:020998/0440 Effective date: 20080521 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034564/0001 Effective date: 20141014 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552) Year of fee payment: 8 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |