Upgrading digital media servers
OwnerRichard T. Oesterreicher, Craig Murphyinventors
Life of this patent
Estimating the term…
Abstract
A system and method are disclosed for upgrading both hardware and software components of a digital media server without disrupting media delivery services. In a preferred embodiment, the present system and method employ an object-oriented model that allows system servers to remain fully operational while software upgrades at both the operating system and application levels are installed. Additionally, the system and method use redundant or partitionable programmable logic devices to perform firmware upgrades without disrupting media delivery services.
Claims51
A method of upgrading a digital media server comprising an object oriented runtime environment implemented in a memory, the method comprising:
- checking for the existence of an upgrade package comprising new objects;
- identifying the new objects in the upgrade package;
- identifying functions and properties of the new objects;
- evaluating compatibility of the new objects;
- instantiating new objects as applications objects or services objects in the memory;
- determining whether a new object replaces an old object in the object oriented runtime environment;
- and
- if the new object replaces the old object, replacing the old object by:
- locking the old object and the new object;
- copying fields from the old object to the new object;
- establishing links from the new object to objects dependent on the old object;
- rerouting links to the old object from other objects to the new object;
- in response to rerouting the links, unlocking the new object;
- and
- removing the old object.
A method of installing upgrades on a digital media server comprising a general purpose computer and a hardware engine, the computer comprising an object oriented runtime environment, and the hardware engine comprising a programmable logic device having a first active partition in an active state and a second inactive partition in an inactive state, the method comprising,
- checking for the existence of an upgrade package comprising new objects and new logic;
- identifying the new objects in the upgrade package;
- identifying functions and properties of the new objects;
- evaluating compatibility of the new objects;
- instantiating new objects as applications objects or services objects;
- determining whether a new object replaces an old object in the object oriented runtime environment;
- if the new object replaces the old object, replacing the old object;
- identifying the new logic in the upgrade package;
- programming the second inactive partition with the new logic;
- transitioning the second partition from an the inactive state to an the active state and simultaneously assuming data processing functions from the first active partition;
- and
- transitioning the first partition to an the inactive state.
A method of installing upgrades on a digital media server comprising a general purpose computer and a hardware engine, the computer comprising an object oriented runtime environment, and the hardware engine comprising two or more programmable logic devices, each having active and inactive states, the method comprising:
- checking for the existence of an upgrade package comprising new objects and new logic;
- identifying the new objects in the upgrade package;
- identifying functions and properties of the new objects;
- evaluating compatibility of the new objects;
- instantiating the new objects as applications objects or services objects;
- determining whether a new object replaces an old object in the object oriented runtime environment;
- if the new object replaces the old object, replacing the old object;
- identifying the new logic in the upgrade package;
- determining a first set of programmable logic devices that are in the active state;
- programming the new logic into a second set of one or more logic devices in an inactive state;
- transitioning the second set of devices to the active state and simultaneously assuming data processing functions from the first set of devices;
- and
- transitioning the first set of devices to the inactive state.
A digital media server comprising:
- a storage medium comprising an object store;
- and
- a computing device configured to execute an object-oriented, runtime environment, the object-oriented, runtime environment comprising:
- service objects, application objects, and an object manager adapted to facilitate the replacement of the service objects and the application objects without disrupting data processing functionality supplied by the service and application objects by:
- locking an old object and a new object;
- copying fields from the old object to the new object;
- establishing links from the new object to objects dependent on the old object;
- rerouting links to the old object from other objects to the new object;
- in response to rerouting the links, unlocking the new object;
- and
- removing the old object.
A digital media server comprising:
- an object store;
- an object-oriented, runtime environment, comprising:
- service objects, application objects, and an object manager adapted to facilitate the replacement of the service objects and the application objects without disrupting data processing functionality supplied by the service and application objects;
- two or more programmable logic devices, each capable of switching between an active state and an inactive state;
- an input data path;
- and
- an output data path;
- wherein one or more programmable logic devices in the active state processes digital media arriving on the input data path and presents processed digital media to the output data path while one or more programmable logic devices in the inactive state are programmed with new logic.
A digital media server comprising:
- an object store;
- an object-oriented, runtime environment, comprising:
- service objects, application objects, and an object manager adapted to facilitate the replacement of the service objects and the application objects without disrupting data processing functionality supplied by the service and application objects;
- a partitionable programmable logic device having two or more independendy programmable partitions, each partition capable of switching between an active state and an inactive state;
- an input data path;
- and
- an output data path;
- wherein one or more partitions in the active state process digital media arriving on the input data path and present processed digital media to the output data path while one or more partitions in the inactive state are programmed with new logic.
A method of upgrading a digital media server comprising an object oriented runtime environment implemented in a memory, the method comprising:
- tracking logical connections to other objects for each object in the object oriented runtime environment;
- identifying functions and properties of a new object in an upgrade package;
- instantiating the new object as an application object or service object in the memory;
- determining whether the new object replaces an old object in the object oriented runtime environment;
- establishing new logical connections between the new object and the other objects in the object oriented runtime environment;
- in response to establishing the new logical connections, replacing the old object with the new object;
- identifying new logic in the upgrade package;
- programming an inactive programmable logic device partition with the new logic;
- transitioning the inactive programmable logic device partition from an inactive state to an active state and assuming data processing functions from an active programmable logic device partition;
- and
- transitioning the active programmable logic device partition to an inactive state.
A method of upgrading a digital media server comprising an object oriented runtime environment implemented in a memory, the method comprising:
- identifying a new method for an old object in an upgrade package, wherein the old object comprises at least one other method;
- evaluating compatibility of the new method;
- determining whether the new method replaces an old method in the object oriented runtime environment;
- and
- if the new method replaces the old method, replacing the old method while allowing access to the at least one other method by:
- blocking access to the old method,
- replacing the old method with the new method, and
- allowing access to the new method;
- identifying new logic in the upgrade package;
- programming an inactive programmable logic device partition with the new logic;
- transitioning the inactive programmable logic device partition from an inactive state to an active state and assuming data processing functions from an active programmable logic device partition;
- and
- transitioning the active programmable logic device partition to an inactive state.
A method of installing upgrades on a digital media server comprising a general purpose computer and a hardware engine, the computer comprising an object oriented runtime environment, and the hardware engine comprising a programmable logic device having a first partition in an active state, the method comprising:
- detecting an instruction to initiate an upgrade;
- responsive to detecting the instruction to initiate the upgrade, creating a second partition in an inactive state on the programmable logic device;
- identifying a new object in an upgrade package, said new object being for execution in the object oriented runtime environment;
- determining that the new object replaces an old object in the object oriented runtime environment;
- programming the second partition with the new object;
- transitioning the second partition from the inactive state to an active state;
- assuming, by the second partition, data processing functions from the first partition;
- and
- transitioning the first partition to the inactive state.
A method of installing upgrades on a digital media server comprising a general purpose computer and a hardware engine, the computer comprising an object oriented runtime environment, and the hardware engine comprising two or more programmable logic devices, each having active and inactive states, the method comprising:
- identifying a new object in an upgrade package, said new object being for execution in the object oriented runtime environment;
- determining that the new object replaces an old object in the object oriented runtime environment;
- determining that a first programmable logic device is in an active state;
- programming the new object into a second programmable logic device in an inactive state;
- copying the values of at least one field of the old object into at least one field of the new object;
- transitioning the second programmable logic device to the active state;
- assuming, by the second programmable logic device, data processing functions from the first programmable logic device;
- and
- transitioning the first programmable logic device to the inactive state.
A digital media server comprising:
- an object-oriented runtime environment comprising service objects and an object manager, wherein the object manager is configured to:
- identify functions and properties of a new object,
- instantiate the new object as an application object or a service object in a memory,
- determine whether the new object replaces an old object in the object oriented runtime environment,
- establish new logical connections between the new object and other objects in the object oriented runtime environment, and
- in response to establishing the new logical connections between the new object and the other objects, replace the old object with the new object;
- two or more programmable logic devices, each capable of switching between an active state and an inactive state;
- an input data path;
- and
- an output data path;
- wherein one or more programmable logic devices in the active state processes, in the object oriented runtime environment, digital media arriving on the input data path and presents processed digital media to the output data path while one or more programmable logic devices in the inactive state are programmed by the object manager with new logic for execution in the object oriented runtime environment, and wherein the object manager establishes new logical connections between the new logic and objects in the object oriented runtime environment.
A digital media server comprising:
- an object-oriented runtime environment comprising service objects and an object manager, wherein the object manager is configured to:
- identify functions and properties of a new object,
- instantiate the new object as a service object in a memory,
- determine whether the new object replaces an old object in the object oriented runtime environment,
- establish new logical connections between the new object and other objects in the object oriented runtime environment, and
- in response to establishing the new logical connections between the new object and the other objects, replace the old object with the new object;
- a partitionable programmable logic device having two or more independently programmable partitions, each partition capable of switching between an active state and an inactive state, wherein a second partition in the inactive state is created on the partitionable programmable logic responsive to detecting an instruction to initiate an upgrade;
- an input data path;
- and
- an output data path;
- wherein a first partition in the active state processes, in the object oriented runtime environment, digital media arriving on the input data path and presents processed digital media to the output data path while the second partition in the inactive state is programmed with new logic for execution in the object oriented runtime environment.
Dependencies are inferred from the claim text.