Techniques for upgrading software in a video content network
It is determined that a substantial portion of set-top terminals connected to a video content network require a software upgrade. In-band video bandwidth (e.g., video-on-demand or switched digital video) is allocated for the software upgrade. The software upgrade is broadcast to the set-top terminals from a carousel in a first remote node of the video content network, via the allocated in-band video bandwidth, until a predetermined number of the set-top terminals have received the software upgrade. Subsequent to the predetermined number of set-top terminals receiving the software upgrade, the in-band video bandwidth is de-allocated and the software upgrade is made available out-of-band to the remaining portion of the set-top terminals, via individual sessions with an application server in a second remote node of the video content network. An exemplary system, which can implement the method, includes a controller, a dynamic bandwidth allocation device, the carousel, and the application server.
1. A method comprising the steps of:
determining that a substantial portion of set-top terminals connected to a video content network require a software upgrade;
allocating in-band video bandwidth for said software upgrade;
broadcasting said software upgrade to said set-top terminals from a carousel in a first remote node of said video content network, via said allocated in-band video bandwidth, until a predetermined number of said set-top terminals have received said software upgrade; and
subsequent to said predetermined number of said set-top terminals receiving said software upgrade, de-allocating said in-band video bandwidth and making said software upgrade available out-of-band, to a remaining portion of said set-top terminals, via individual sessions with an application server in a second remote node of said video content network,
wherein said application server has a threshold capacity of a certain number of downloads of said software upgrade per unit time, further comprising monitoring, during said broadcasting step, a number of said set-top terminals downloading said software upgrade from said carousel per unit time, wherein said predetermined number corresponds to a number of said set-top terminals which have received said software upgrade from said carousel at a point in time when said number of said set-top terminals downloading said software upgrade from said carousel per unit time is no greater than said threshold capacity.
2. The method of claim 1 , wherein said application server comprises a hypertext transfer protocol server and said carousel comprises a digital storage media command and control object carousel.
3. The method of claim 1 , wherein said application server comprises a trivial file transfer protocol server and said carousel comprises a common download carousel.
4. The method of claim 1 , wherein said first and second remote nodes are identical and comprise a head end of said video content network.
5. The method of claim 1 , wherein:
said allocating of said in-band video bandwidth comprises a controller:
requesting said in-band video bandwidth, for said carousel, from a dynamic bandwidth allocation device; and
indicating, in a transport field of an extended application information table broadcast to said set-top terminals, that said software upgrade is available on said allocated in-band video bandwidth; and
said de-allocating of said in-band video bandwidth comprises said controller:
advising said dynamic bandwidth allocation device to de-allocate said bandwidth from said carousel; and
indicating in said transport field of said extended application information table broadcast to said set-top terminals that said software upgrade is now available via said individual sessions with said application server.
6. A system for interacting with a plurality of set-top terminals over a video content network, said system comprising:
a controller configured to facilitate determining that a substantial portion of the set-top terminals connected to the video content network require a software upgrade;
a dynamic bandwidth allocation device, coupled to said controller, configured to allocate in-band video bandwidth on the video content network for said software upgrade;
a carousel, coupled to said controller and said dynamic bandwidth allocation device, configured to broadcast said software upgrade to the set-top terminals, via said allocated in-band video bandwidth, until a predetermined number of the set-top terminals have received said software upgrade; and
an application server coupled to said dynamic bandwidth allocation device and said controller;
wherein said controller and said dynamic bandwidth allocation device are cooperatively configured such that, subsequent to said predetermined number of said set-top terminals receiving said software upgrade, said in-band video bandwidth is de-allocated and said software upgrade is made available out-of-band, to a remaining portion of said set-top terminals, via individual sessions with said application server over the video content network,
wherein said application server has a threshold capacity of a certain number of downloads of said software upgrade per unit time, and wherein said controller is further configured to monitor, during said broadcasting, a number of the set-top terminals downloading said software upgrade from said carousel per unit time, wherein said predetermined number corresponds to a number of the set-top terminals which have received said software upgrade from said carousel at a point in time when said number of the set-top terminals downloading said software upgrade from said carousel per unit time is no greater than said threshold capacity.
7. The system of claim 6 , wherein said application server comprises a hypertext transfer protocol server and said carousel comprises a digital storage media command and control object carousel.
8. The system of claim 6 , wherein said application server comprises a trivial file transfer protocol server and said carousel comprises a common download carousel.
9. The system of claim 6 , wherein said controller, said dynamic bandwidth allocation device, said carousel, and said application server are located in a head end of the video content network.
10. The system of claim 6 , wherein:
said controller allocates said in-band video bandwidth by:
requesting said in-band video bandwidth, for said carousel, from said dynamic bandwidth allocation device; and
indicating, in a transport field of an extended application information table broadcast to the set-top terminals, that said software upgrade is available on said allocated in-band video bandwidth; and
said controller de-allocates said in-band video bandwidth by:
advising said dynamic bandwidth allocation device to de-allocate said bandwidth from said carousel; and
indicating in said transport field of said extended application information table broadcast to the set-top terminals that said software upgrade is now available via said individual sessions with said application server.
11. An apparatus comprising:
means for determining that a substantial portion of set-top terminals connected to a video content network require a software upgrade;
means for allocating in-band video bandwidth for said software upgrade;
means for broadcasting said software upgrade to said set-top terminals from a carousel in a first remote node of said video content network, via said allocated in-band video bandwidth, until a predetermined number of said set-top terminals have received said software upgrade; and
means for, subsequent to said predetermined number of said set-top terminals receiving said software upgrade, de-allocating said in-band video bandwidth and making said software upgrade available out-of-band, to a remaining portion of said set-top terminals, via individual sessions with an application server in a second remote node of said video content network, wherein said application server has a threshold capacity of a certain number of downloads of said software upgrade per unit time, further comprising computer readable program code configured to monitor, during said broadcasting step, a number of said set-top terminals downloading said software upgrade from said carousel per unit time, wherein said predetermined number corresponds to a number of said set-top terminals which have received said software upgrade from said carousel at a point in time when said number of said set-top terminals downloading said software upgrade from said carousel per unit time is no greater than said threshold capacity;
wherein said means for determining, said means for allocating, said means for broadcasting, and said means for de-allocating each comprise at least one of:
hardware modules; and
software modules, said software modules being:
stored in a non-transitory manner in a tangible computer-readable recordable storage medium,
loaded into a memory, and
executed on at least one hardware processor coupled to said memory.
12. A computer program product comprising a tangible computer readable recordable storage medium having computer readable program code stored thereon in a non-transitory manner, said computer readable program code comprising:
computer readable program code configured to determine that a substantial portion of set-top terminals connected to a video content network require a software upgrade;
computer readable program code configured to allocate in-band video bandwidth for said software upgrade;
computer readable program code configured to broadcast said software upgrade to said set-top terminals from a carousel in a first remote node of said video content network, via said allocated in-band video bandwidth, until a predetermined number of said set-top terminals have received said software upgrade; and
computer readable program code configured to, subsequent to said predetermined number of said set-top terminals receiving said software upgrade, de-allocate said in-band video bandwidth and making said software upgrade available out-of-band, to a remaining portion of said set-top terminals, via individual sessions with an application server in a second remote node of said video content network,
wherein said application server has a threshold capacity of a certain number of downloads of said software upgrade per unit time, further comprising computer readable program code configured to monitor, during said broadcasting step, a number of said set-top terminals downloading said software upgrade from said carousel per unit time, wherein said predetermined number corresponds to a number of said set-top terminals which have received said software upgrade from said carousel at a point in time when said number of said set-top terminals downloading said software upgrade from said carousel per unit time is no greater than said threshold capacity.
13. The computer program product of claim 12 , wherein said application server comprises a hypertext transfer protocol server and said carousel comprises a digital storage media command and control object carousel.
14. The computer program product of claim 12 , wherein said application server comprises a trivial file transfer protocol server and said carousel comprises a common download carousel.
15. The computer program product of claim 12 , wherein said first and second remote nodes are identical and comprise a head end of said video content network.
16. The computer program product of claim 12 , wherein:
said computer readable program code configured to allocate said in-band video bandwidth comprises:
computer readable program code configured to request said in-band video bandwidth, for said carousel, from a dynamic bandwidth allocation device; and
computer readable program code configured to indicate, in a transport field of an extended application information table broadcast to said set-top terminals, that said software upgrade is available on said allocated in-band video bandwidth; and
said computer readable program code configured to de-allocate said in-band video bandwidth comprises:
computer readable program code configured to advise said dynamic bandwidth allocation device to de-allocate said bandwidth from said carousel; and
computer readable program code configured to indicate in said transport field of said extended application information table broadcast to said set-top terminals that said software upgrade is now available via said individual sessions with said application server.