IP Library Granted Patent US 8,880,709
Granted Patent B2
US 8,880,709 · App. 10/147,010 · Granted Nov 4, 2014

Method and system for scheduled streaming of best effort data

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,880,709
App. No.
10/147,010
Granted
Nov 4, 2014
Kind
B2
Abstract

A system is provided for controlling the transmission of best-effort filed data or programs on channels from one of plural controllers to one or more client nodes. A program is a group of files and has program information indicating to a client node how to use the files of the program. A channel is a virtual path, wherein a client node can receive program files from different channels in a separable fashion. Channels also have channel information. Multiple controllers are provided which self configure in rank order to control the scheduled transmission of programs files on channels. Client nodes receive announcements of programs and channels from the controllers and selectively subscribe to the channels and programs. Client nodes can be instructed to positively acknowledge receipt of programs and also send back negative acknowledgements for ranges of data words in program files not received. The negative acknowledgements can be consolidated to reduce the number of packets on the network. The format of packets carrying program files and acknowledgement/negative acknowledgement messages are specified.

Claims (76)

1. A method for communicating files using a plurality of control nodes comprising the steps of:

(a) one control node, of a plurality of control nodes, designating itself to be a primary control node, and at least one other control node designating itself to be an assistant control node, each designation being undetermined until the control node making the respective designation is started,

(b) establishing a connection between the primary control node and each assistant control node,

(c) scheduling at least one job for execution, including at least one transmit job for transmitting, from one of the control nodes to at least one client node that is different from the control nodes on a specific channel at a specific time, a program comprising a group of one or more files that can be used by the client node, and program information specifying a manner by which the client node can use the files, the channel being a distinct path for communicating a program and having channel information specifying one of plural different ways for communicating the program to the client node, wherein said scheduling step includes designating, for each said respective job, respective time information indicative of at least one fixed execution time at which said respective job is to be executed,

(d) if one of the scheduled jobs is to be executed by one of the assistant control nodes, issuing one or more messages from the primary control node to the one assistant control node for causing the assistant control node to execute the job, and

(e) a designated control node executing the scheduled transmit job by, at the scheduled time of the job, communicating at least one program of the job, via the particular channel of the job, to at least one client node.

2. The method of claim 1 wherein each channel information designates one or more particular control nodes, wherein each of the control nodes is ranked from the primary control node to lower ranking assistant control nodes, and wherein the primary control node designates the highest ranked control node specified by the channel information of the scheduled job for executing the scheduled job.

3. The method of claim 1 wherein each program information specifies one or more of: a manner of announcing the scheduled transmission of the program to the client nodes, a location at which to store the files of the program, an expiration time of the program, a command to be executed upon receipt of the program and one or more graphical icons to display as representing the program.

4. The method of claim 1 wherein each channel information specifies one or more of: a bandwidth by which a program is to be communicated, the name of each assistant control node that can communicate in the manner defined by this channel information, an endpoint of a program carried according to the channel information, a packetization format for a program carried according to the channel information, a network layer protocol for a program carried according to the channel information, a transport layer protocol for a program carried according to the channel information, support for requesting retransmission of packets, the ability to multiplex more than one program contemporaneously according to the same channel information, a manner by which recipient nodes can subscribe to the channel, destination address and port information for the channel and error recovery capabilities for the channel.

5. The method of claim 1 wherein each control node is ranked from the primary control node to each lower ranked assistant control node, the method further comprising the steps of:

(f) periodically transmitting a heartbeat message from the primary control node to each assistant control node, and

(g) in response to the assistant control node ranked immediately below the primary control node failing to receive a heartbeat message within a certain predetermined time interval, the assistant control node ranked immediately below the primary control node assuming the role of the primary control node.

6. The method of claim 1 wherein said step of executing further comprises:

(f) if the channel of the scheduled job is a transmit channel, then transmitting the program of the scheduled job via the channel, and

(g) if the channel of the scheduled job is a fetch channel, then retrieving one or more files of the program of the scheduled job from a location specified by its respective program information.

7. The method of claim 1 further comprising the steps of:

(f) issuing from an operator console module, on a network connecting the operator console module, the primary control node and a database, one or more instructions for scheduling a new job for execution at a particular scheduled time, the new job specifying a specific program to be transmitted on a specific channel, and

(g) detecting at the primary control node the new job and choosing one of the control nodes to execute the job.

8. The method of claim 7 further comprising the step of:

(h) connecting the operator console module to the network via a wide area network.

9. The method of claim 1 wherein the step of one control node designating itself to be a primary control node further comprises the steps of:

the one control node detecting whether or not another control node has started, and

if the one control node fails to detect that another control node has started, the one control node designating itself to be the primary control node.

10. The method of claim 1 wherein the step of at least one other control node designating itself to be an assistant control node further comprises the steps of:

the at least one other control node detecting that another control node has started, and

the at least one other control node assigning itself a rank lower than the detected other started control node, according to a ranking order.

11. The method of claim 1 wherein the step of one control node designating itself to be a primary control node further comprises the steps of:

the one control node searching for other control nodes already started, and

if no other control node is detected as already started in said searching step, the one control node designates itself to be a primary control node.

12. The method of claim 1 wherein the step of one control node designating itself to be an assistant control node further comprises the steps of:

the one control node searching for other control nodes already started, and

if at least one other control node is detected as already started in said searching step, the control node designates itself to be an assistant control node.

13. A control node comprising:

a processor, and

a communication device connected to the processor,

wherein the processor is operable to designate the control node, itself, to be a primary control node or to designate the control node, itself, to be an assistant control node, the designation being undetermined until the control node is started,

wherein, when the processor designates the control node to be the primary control node:

the processor and the communication device are operable to establish a connection with each of one or more assistant control nodes,

the processor is operable to schedule at least one job for execution including at least one transmit job for transmitting from one of the control nodes to at least one client node that is different from the control nodes, on a specific channel at a specific time, a program comprising a group of one or more files that can be used by the client node, and program information specifying a manner by which the client node can use the files, the channel being a distinct path for communicating a program and having channel information specifying one of plural different ways for communicating the program to the client node, wherein said processor is operable to schedule said at least one job for execution by operations including designating, for each said respective job, respective time information indicative of at least one fixed execution time at which said respective job is to be executed, and

if one of the scheduled jobs is to be executed by one of the assistant control nodes, the communications device is operable to issue one or more messages from the primary control node to the one assistant control node for causing the assistant control node to execute the job, and

wherein, when the processor designates the control node to be the assistant control node:

the processor and communication device are operable to establish a connection with the primary control node, and

the processor and communication device are operable to execute the scheduled transmit job by, at the scheduled time of the job, communicating at least one program of the job, via the particular channel of the job to at least one client node.

14. The control node of claim 13 wherein said control node designates itself to be a primary control node by:

searching for other control nodes already started, and

if no other control node is detected as already started in said searching step, designating itself to be a primary control node.

15. The control node of claim 13 wherein said control node designates itself to be an assistant control node by:

searching for other control nodes already started, and

if at least one other control node is detected as already started in said searching step, designating itself to be an assistant control node.

16. The control node of claim 13 wherein said control node designates itself to be a primary control node by:

detecting whether or not another control node has started, and

if said control node fails to detect that another control node has started, said control node designates itself to be the primary control node.

17. The control node of claim 13 wherein said control node designates itself to be an assistant control node by:

detecting that another control node has started, and

said control node assigning itself a rank lower than the detected other started control node, according to a ranking order.

18. A method of controlling job execution at a control node comprising the steps of:

(a) the control node designating itself to be either a primary control node or an assistant control node, the designation being undetermined until the control node is started,

(b) if the control node is ehesen designated to be the primary control node:

(b1) establishing a connection with each of one or more assistant control nodes,

(b2) scheduling at least one job for execution including at least one transmit job for transmitting from one of the control nodes to at least one client node that is different from the control nodes, on a specific channel at a specific time, a program comprising a group of one or more files that can be used by the client node, and program information specifying a manner by which the client node can use the files, the channel being a distinct path for communicating a program and having channel information specifying one of plural different ways for communicating the program to the client node, wherein said scheduling step includes designating, for each said respective job, respective time information indicative of at least one fixed execution time at which said respective job is to be executed, and

(b3) if one of the scheduled jobs is to be executed by one of the assistant control nodes, issuing one or more messages to the one assistant control node for causing the assistant control node to execute the job, and

(c) if the control node is designated to be the assistant control node:

(c1) establishing a connection with the primary control node, and

(c2) executing a scheduled transmit job by, at the scheduled time of the job, communicating at least one program of the job, via the particular channel of the job, to at least one client node.

19. The method of claim 18 wherein the step of one control node designating itself to be a primary control node further comprises the steps of:

the one control node searching for other control nodes already started, and

if no other control node is detected as already started in said searching step, the one control node designates itself to be a primary control node.

20. The method of claim 18 wherein the step of one control node designating itself to be an assistant control node further comprises the steps of:

the one control node searching for other control nodes already started, and

if at least one other control node is detected as already started in said searching step, the control node designates itself to be an assistant control node.

21. The method of claim 18 wherein the step of one control node designating itself to be a primary control node further comprises the steps of:

the one control node detecting whether or not another control node has started, and

if the one control node fails to detect that another control node has started, the one control node designating itself to be the primary control node.

22. The method of claim 18 wherein the step of at least one other control node designating itself to be an assistant control node further comprises the steps of:

the at least one other control node detecting that another control node has started, and

the at least one other control node assigning itself a rank lower than the detected other started control node, according to a ranking order.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Oct 14, 2025
From: CITIBANK, N.A., AS AGENT
To: MK SYSTEMS USA INC.
Reel/Frame 073070/0114 →
SECURITY INTEREST Recorded Oct 10, 2025
From: MK SYSTEMS USA INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 073062/0487 →
SECURITY INTEREST Recorded Apr 3, 2020
From: MK SYSTEMS USA INC.
To: CITIBANK, N.A., AS AGENT
Reel/Frame 052312/0567 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2019
From: MK SYSTEMS US SUB-HOLDCO INC.
To: MK SYSTEMS USA INC.
Reel/Frame 050277/0946 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2019
From: MK SYSTEMS US HOLDCO INC.
To: MK SYSTEMS US SUB-HOLDCO INC.
Reel/Frame 050272/0448 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2019
From: LEONE MEDIA INC.
To: MK SYSTEMS US HOLDCO INC.
Reel/Frame 050265/0490 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2019
From: ERICSSON AB
To: LEONE MEDIA INC.
Reel/Frame 050237/0248 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2018
From: ERICSSON TELEVISION INC.
To: ERICSSON AB
Reel/Frame 047794/0512 →
CHANGE OF NAME Recorded Jan 5, 2011
From: SKYSTREAM NETWORKS, INC.; TANDBERG TELEVISION, INC.
To: ERICSSON TELEVISION INC.; ERICSSON TELEVISION, INC.
Reel/Frame 025587/0781 →