1. A system for automatically discovering nodes on a network comprising:
announcer logic configured to transmit a first announcement packet to all known nodes having a static type in a list of known nodes, the first announcement packet comprising a node address and a forward counter associated with each known node in the list having a corresponding forward count greater than zero, the forward counter initialized from the corresponding forward count;
listener logic configured to receive a second announcement packet comprising a node address and a forward counter, the listener logic further configured to add to the list of known nodes a received node having a discovered type, the received node associated with the node address and a corresponding forward count defined by the decremented forward counter; and
forwarder logic configured to transmit a third announcement packet to all known nodes in the list of known nodes when the forward count associated with the received node is greater than zero, the third announcement packet comprising the node address associated with the received node and a forward counter initialized from the forward count corresponding to the received node.
2. The system of claim 1, wherein the announcer logic is further configured to transmit the node address and the forward counter using a unicast address.
3. The system of claim 1, wherein the forward counter of the second announcement packet is decremented upon receipt.
4. The system of claim 1, wherein the forward counter of the second announcement packet is the decremented before transmission.
5. The system of claim 1, further comprising a network interface configured to transmit and receive data on the network.
6. The system of claim 5, wherein the announcer logic is further configured to transmit the first announcement packet via the network interface.
7. The system of claim 1, wherein the node address is an IP address.
8. The system of claim 1, wherein the announcement packet is an ICMP packet with type Echo Request.
9. A method for automatically discovering nodes on a network comprising:
initializing a first known node list;
transmitting a first announcement packet to all known nodes in the first list, the first announcement packet comprising a node address and a forward counter associated with each known node having a corresponding forward count greater than zero, the forward counter initialized from the corresponding forward count;
receiving from the network a second announcement packet, the second announcement packet comprising a node address and a forward counter associated with a discovered node;
adding to a second list of discovered nodes the discovered node, where the discovered node is associated with a forward count defined by the decremented forward counter; and
transmitting a third announcement packet to all known nodes in the first list and all discovered nodes in the second list when the forward count associated with the discovered node is greater than zero, the third announcement packet comprising the node address associated with the discovered node and a forward counter initialized from the forward count associated with the discovered node.
10. The method of claim 9, wherein transmitting onto the network to all known nodes further comprises transmitting the network node address and the forward counter using a unicast address.
11. The method of claim 9, wherein transmitting onto the network to all known nodes and all discovered nodes further comprises transmitting the node address and the forward counter using a unicast address.
12. The method of claim 9, wherein transmitting an announcement packet to all known nodes further comprises decrementing the forward counter before transmission.
13. The method of claim 9, further comprising:
detecting an unreachable node;
deleting from the second list, responsive to detecting the unreachable node, each node with a discovery source matching the unreachable node; and
announcing, to each node in the first and second lists, the deletion of each deleted node.
14. The method of claim 9, further comprising:
receiving a deletion announcement, wherein the deletion announcement comprises at least one node to be deleted; and
deleting from the second list, responsive to receiving the deletion announcement, each node corresponding to the node to be deleted.
15. The method of claim 14, further comprising forwarding, to each node in the first and second lists, the at least one node to be deleted.
16. A system for automatically discovering nodes on a network comprising:
a list of static nodes, wherein each static node comprises a node address and a corresponding forward count;
announcer logic configured to transmit to all static nodes the node address of each static node in the list having a corresponding forward count greater than zero and a corresponding forward counter initialized from the corresponding forward count;
a list of discovered nodes, wherein each discovered node comprises a node address and a corresponding forward count;
listener logic configured to receive an announcement packet comprising at least one node address and at least one corresponding forward counter, the listener logic further configured to add to the list of discovered nodes at least one discovered node comprising the at least one node address and a corresponding forward count defined by the decremented at least one corresponding forward counter of the announcement packet; and
forwarder logic configured to transmit to all static nodes and to all discovered nodes, via the network interface, the node address of the at least one discovered node and a corresponding forward counter initialized from the corresponding forward count when the corresponding forward count is greater than zero.
17. The system of claim 16, wherein the announcer logic is further configured to transmit the node address and the corresponding forward counter using a unicast address.
18. The system of claim 16, wherein the forwarder logic is further configured to transmit the node address and the corresponding forward counter using a unicast address.
19. The system of claim 16, wherein the corresponding forward counter of the announcement packet is decremented upon receipt.
20. The system of claim 16, wherein the corresponding forward counter of the announcement packet is decremented before transmission.
21. The system of claim 16, further comprising a network interface configured to transmit and receive data on the network.
22. The system of claim 21, wherein the announcer logic is further configured to transmit the node address and the corresponding forward counter via the network interface.
23. The system of claim 21, wherein the forwarder logic is further configured to transmit the node address and the corresponding forward counter via the network interface.
24. The system of claim 21, wherein the listener logic is further configured to receive the announcement packet via the network interface.
25. The system of claim 16, wherein the node address is an IP address.
26. The system of claim 16, wherein the announcement packet is an ICMP packet with type Echo Request.
27. A system for automatically discovering nodes on a network comprising:
means for initializing a first known node list;
means for transmitting a first announcement packet to all known nodes in the first list, the first announcement packet comprising a node address and a forward counter associated with each known node having a corresponding forward count greater than zero, the forward counter initialized from the corresponding forward count;
means for receiving from the network a second announcement packet, the second announcement packet comprising a node address and a forward counter associated with a discovered node;
means for adding to a second list of discovered nodes the discovered node, where the discovered node is associated with a forward count defined by the decremented forward counter; and
means for transmitting a third announcement packet to all known nodes in the first list and all discovered nodes in the second list when the forward count associated with the discovered node is greater than zero, the third announcement packet comprising the node address associated with the discovered node and a forward counter initialized from the forward count associated with the discovered node.
28. The system of claim 27, wherein means for transmitting further comprises means for decrenting the forward counter before transmission.
29. The system of claim 27, wherein means for receiving further comprises means for decrenting the forward counter upon receipt.
30. The system of claim 27, further comprising:
means for detecting an unreachable node;
means for deleting from the second list, responsive to detecting the unreachable node, each node with a discovery source matching the unreachable node; and
means for announcing, to each node in the first and second lists, the deletion of each deleted node.
31. The system of claim 27, further comprising:
means for receiving a deletion announcement, wherein the deletion announcement comprises at least one node to be deleted; and
means for deleting from the second list, responsive to receiving the deletion announcement, each node corresponding to the node to be deleted.
32. The system of claim 31, further comprising means for forwarding, to each node in the first and second lists, the at least one node to be deleted.
33. The system of claim 27, further comprising means for interfacing with a network to transmit and receive data.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A data structure comprising:
media data; and
at least one event message associated with a particular time index of the media data, wherein the at least one event message is adapted to cause a processor including script engine to modify an in-memory representation of a graphical user interface (GUI) in which the media data is presented.
2. The data structure of claim 1, wherein the media data comprises video data.
3. The data structure of claim 1, wherein the at least one event message is further adapted to cause the script engine to determine content of the GUI by accessing the in-memory representation of the GUI.
4. The data structure of claim 3, wherein the at least one event message is further adapted to cause the script engine to access additional media content based on the content of the GUI.
5. The data structure of claim 3, wherein the at least one event message is further adapted to cause the media content to be presented in a particular order based on the content of the GUI.
6. The data structure of claim 1, wherein the GUI comprises a page displayed via a browser application.
7. The data structure of claim 1, wherein the in-memory representation of the GUI comprises a data structure stored in a memory, wherein the data structure includes a plurality of objects used to create the GUT.
8. A method comprising:
receiving, from a media engine presenting media data via a graphical user interface (GUI), a first event message associated with the media data; and
executing an instruction in response to the first event message, wherein executing the instruction causes an in-memory representation associated with the GUI in which the media data is being presented to be modified.
9. The method of claim 8, wherein the first event message is associated with a particular time index of the media data.
10. The method of claim 8, wherein modifying the in-memory representation associated with the GUI comprises changing a location in the GUI at which the media data is presented.
11. The method of claim 8, wherein modifying the in-memory representation associated with the GUI comprises loading data related to subject matter of the media data.
12. The method of claim 8, further comprising:
receiving a second event message related to the modification of the in-memory representation of the GUI; and
executing a second instruction in response to the second event message, wherein the second instruction modifies display of the media data.
13. The method of claim 12, wherein the second event message relates to subject matter of content displayed via the GUI, and wherein the display of media data is modified to relate to the subject matter.
14. A method comprising
receiving, from a media engine presenting media data via a graphical user interface (GUI), a first event message associated with the media data;
executing a first instruction in response to the first event message, wherein executing the first instruction causes content of an in-memory representation associated with the GUI to be determined; and
executing a second instruction based on the content of the in-memory representation, wherein executing the second instruction causes the presentation of the media data to be modified.
15. The method of claim 14, wherein determining the content of the in-memory representation comprises determining subject matter of one or more display elements displayed via the GUI.
16. The method of claim 15, wherein modifying the presentation of the media data comprises accessing additional media data related to the subject matter of the one or more display elements.
17. The method of claim 15, wherein modifying the presentation of the media data comprises modifying a time index associated with presentation of the media data to present a portion of the media data related to the subject matter of the one or more display elements.
18. The method of claim 15, wherein the in-memory representation associated with the GUI comprises a Document Object Model.
19. A method comprising:
receiving a first event message associated with a graphical user interface (GUI);
executing a first instruction in response to the first event message, wherein executing the first instruction causes an in-memory representation associated with the GUT to be modified; and
executing a second instruction, wherein executing the second instruction causes a presentation of media data in the GUI to be modified.
20. The method of claim 19, wherein the first event message comprises a user interaction event message.
21. The method of claim 19, wherein the first event message comprises a mouse event message.
22. The method of claim 21, wherein the mouse event message indicates a mouseover event.
23. The method of claim 19, wherein the first event message comprises a keyboard event message.
24. The method of claim 19, wherein the first event message comprises a touch screen event message.
25. The method of claim 19, further comprising executing a third instruction in response to the modification of the presentation of the media data, wherein executing the third instruction causes the in-memory representation associated with the GUT to be modified.
26. A method comprising:
presenting media data via a graphical user interface (GUI); and
sending an event message associated with a time index of the media data to a script engine, wherein the event message includes an instruction to modify an in-memory representation associated with the GUI.
27. The method of claim 26, further comprising:
receiving an instruction from the script engine to modify presentation of the media data in response to a modification of the in-memory representation associated with the GUI; and
modifying the presentation of the media data in response to the instruction.
28. The method of claim 26, further comprising receiving the media data and the event message via a plurality of data packets from a media server.
29. The method of claim 26, wherein the media data includes a Shockwave Flash object with embedded FLEX code.
30. The method of claim 29, wherein the FLEX code is adapted to send event messages to the script engine to cause particular functions to be executed.
31. The method of claim 26, wherein the script engine includes an ECMAScript engine.
32. The method of claim 26, wherein the script engine includes an Javascript engine.
33. A computer-readable medium comprising:
instructions that, when executed by a processor, cause the processor to receive, from a media engine presenting media data via a graphical user interface (GUI), an event message associated with the media data; and
instructions that, when executed by the processor, cause the processor to execute a function in response to the first event message, wherein the function modifies an in-memory representation associated with the GUI in which the media data is being presented.
34. A computer-readable medium comprising:
instructions that, when executed by a processor, cause the processor to receive, from a media engine presenting media data via a graphical user interface (GUI), a first event message associated with a time index of the media data;
instructions that, when executed by the processor, cause the processor to execute a first function in response to the first event message, wherein the first function determines content of an in-memory representation associated with the GUI; and
instructions that, when executed by the processor, cause the processor to execute a second function based on the content of the in-memory representation, wherein the second function modifies the presentation of the media data.
35. A computer-readable medium comprising:
instructions that, when executed by a processor, cause the processor to receive a first event message associated with a graphical user interface (GUI);
instructions that, when executed by the processor, cause the processor to execute a first function in response to the first event message, wherein the first function modifies an in-memory representation associated with the GUI; and
instructions that, when executed by the processor, cause the processor to execute a second function, wherein the second function modifies a presentation of media data in the GUI.
36. A computer-readable medium comprising:
instructions that, when executed by a processor, cause the processor to present media data via a graphical user interface (GUI); and
instructions that, when executed by the processor, cause the processor to send an event message associated with a time index of the media data to a script engine, wherein the event message includes an instruction to modify an in-memory representation associated with the GUI.