Automated real-time data stream switching in a shared virtual area communication environment
First Claim
Patent Images
1. A method of switching real-time data stream connections between network nodes sharing a virtual area, comprising:
- ascertaining a set of real-time data streams that enable a given one of the network nodes that is associated with a respective position in the virtual area to participate in a communication session with one or more other ones of the network nodes that are associated with respective positions in the virtual area;
determining one or more real-time data stream connections that deliver the set of real-time data streams to the given network node based at least in part on bandwidth capabilities of the given network node;
establishing the one or more determined real-time data stream connections between the given network node and one or more of the other ones of the network nodes; and
storing a virtual area specification comprising a description of one or more switching rules each defining a respective connection between sources of a respective real-time data stream type and sinks of the real-time data stream type in terms of positions in the virtual area, wherein at least one of the ascertaining and the determining is based on the switching rules.
2 Assignments
0 Petitions
Accused Products
Abstract
In one aspect, one or more real-time data stream connections that deliver a set of real-time data streams to a given network node are determined based at least in part on bandwidth capabilities of the given network node. In another aspect, for each of one or more recipient network nodes, a respective link over which to transmit a respective transmission set of one or more real-time data streams is determined. For each of the links, the respective link bandwidth is apportioned between one or more channels that are respectively allocated to the one or more real-time data streams in the respective transmission set.
75 Citations
31 Claims
-
1. A method of switching real-time data stream connections between network nodes sharing a virtual area, comprising:
-
ascertaining a set of real-time data streams that enable a given one of the network nodes that is associated with a respective position in the virtual area to participate in a communication session with one or more other ones of the network nodes that are associated with respective positions in the virtual area; determining one or more real-time data stream connections that deliver the set of real-time data streams to the given network node based at least in part on bandwidth capabilities of the given network node; establishing the one or more determined real-time data stream connections between the given network node and one or more of the other ones of the network nodes; and storing a virtual area specification comprising a description of one or more switching rules each defining a respective connection between sources of a respective real-time data stream type and sinks of the real-time data stream type in terms of positions in the virtual area, wherein at least one of the ascertaining and the determining is based on the switching rules. - View Dependent Claims (2, 3, 4, 24, 25)
-
-
5. A method of switching real-time data stream connections between network nodes sharing a virtual area, comprising:
-
ascertaining a set of real-time data streams that enable a given one of the network nodes that is associated with a respective position in the virtual area to participate in a communication session with one or more other ones of the network nodes that are associated with respective positions in the virtual area; determining one or more real-time data stream connections that deliver the set of real-time data streams to the given network node based at least in part on bandwidth capabilities of the given network node, wherein the determining comprises discovering the bandwidth capabilities of one or more of the other network nodes and selecting the one or more real-time data stream connections based on the discovered bandwidth capabilities; and establishing the one or more determined real-time data stream connections between the given network node and one or more of the other ones of the network nodes, wherein the establishing comprises establishing the one or more selected real-time data stream connections.
-
-
6. A method of switching real-time data stream connections between network nodes sharing a virtual area, comprising:
-
ascertaining a set of real-time data streams that enable a given one of the network nodes that is associated with a respective position in the virtual area to participate in a communication session with one or more other ones of the network nodes that are associated with respective positions in the virtual area; determining one or more real-time data stream connections that deliver the set of real-time data streams to the given network node based at least in part on bandwidth capabilities of the given network node; establishing the one or more determined real-time data stream connections between the given network node and one or more of the other ones of the network nodes; and switching real-time data streams over the one or more established real-time data stream connections, wherein the switching comprises switching real-time data streams between ones of the network nodes in a first set through a central network node and switching real-time data streams over direct peer-to-peer network connections between ones of the network nodes in a second set.
-
-
7. A method of switching real-time data stream connections between network nodes sharing a virtual area, comprising:
-
ascertaining a set of real-time data streams that enable a given one of the network nodes that is associated with a respective position in the virtual area to participate in a communication session with one or more other ones of the network nodes that are associated with respective positions in the virtual area; determining one or more real-time data stream connections that deliver the set of real-time data streams to the given network node based at least in part on bandwidth capabilities of the given network node; establishing the one or more determined real-time data stream connections between the given network node and one or more of the other ones of the network nodes; and transmitting a mixed real-time data stream over the one or more established real-time data stream connections to the given network node, wherein the mixed real-time data stream comprises real-time data stream data derived from real-time data streams transmitted from ones of the other network nodes.
-
-
8. A method of switching real-time data stream connections between network nodes sharing a virtual area, comprising:
-
ascertaining a set of real-time data streams that enable a given one of the network nodes that is associated with a respective position in the virtual area to participate in a communication session with one or more other ones of the network nodes that are associated with respective positions in the virtual area; determining one or more real-time data stream connections that deliver the set of real-time data streams to the given network node based at least in part on bandwidth capabilities of the given network node; and establishing the one or more determined real-time data stream connections between the given network node and one or more of the other ones of the network nodes; wherein the determining comprises determining the one or more real-time data stream connections that deliver the set of real-time data streams to the given network node and maximize delivery of unmixed real-time data streams to the given network node, and the determined one or more real-time data stream connections that maximize delivery of unmixed real-time data streams are the one or more real-time data stream connections that are established.
-
-
9. A non-transitory computer-readable medium storing computer-readable instructions for switching real-time data stream connections between network nodes sharing a virtual area, the computer-readable instructions being operable to cause a computer to perform operations comprising:
-
ascertaining a set of real-time data streams that enable a given one of the network nodes that is associated with a respective position in the virtual area to participate in a communication session with one or more other ones of the network nodes that are associated with respective positions in the virtual area; determining one or more real-time data stream connections that deliver the set of real-time data streams to the given network node based at least in part on bandwidth capabilities of the given network node; establishing the one or more determined real-time data stream connections between the given network node and one or more of the other ones of the network nodes; and storing a virtual area specification comprising a description of one or more switching rules each defining a respective connection between sources of a respective real-time data stream type and sinks of the real-time data stream type in terms of positions in the virtual area, wherein at least one of the ascertaining and the determining is based on the switching rules.
-
-
10. A method of switching real-time data stream connections between network nodes sharing a virtual area, comprising:
-
for each of one or more recipient ones of the network nodes, determining a respective link over which to transmit a respective transmission set of multiple real-time data streams, wherein each of the links has a respective link bandwidth, wherein the determining comprises for each of the links, allocating the respective link bandwidth to the multiple real-time data streams in the respective transmission set in an amount determined based on an attribute associated with the respective recipient network node; and for each of the links, apportioning the respective link bandwidth between multiple channels respectively allocated to the multiple real-time data streams in the respective transmission set and transmitting the multiple real-time data streams in the respective transmission set to the respective recipient network node over the respectively allocated channels. - View Dependent Claims (21, 29, 30, 31)
-
-
11. A method of switching real-time data stream connections between network nodes sharing a virtual area, comprising:
-
for each of one or more recipient ones of the network nodes, determining a respective link over which to transmit a respective transmission set of multiple real-time data streams, wherein each of the links has a respective link bandwidth, wherein the determining comprises for each of the links, ascertaining for each of the multiple real-time data streams in the respective transmission set multiple respective bandwidth levels and allocating the respective link bandwidth to the link based on the ascertained bandwidth levels; and for each of the links, apportioning the respective link bandwidth between multiple channels respectively allocated to the multiple real-time data streams in the respective transmission set and transmitting the multiple real-time data streams in the respective transmission set to the respective recipient network node over the respectively allocated channels. - View Dependent Claims (12, 13, 26, 27, 28)
-
-
14. A method of switching real-time data stream connections between network nodes sharing a virtual area, comprising:
-
for each of one or more recipient ones of the network nodes, determining a respective link over which to transmit a respective transmission set of one or more real-time data streams, wherein each of the links has a respective link bandwidth; and for each of the links, apportioning the respective link bandwidth between one or more channels respectively allocated to the one or more real-time data streams in the respective transmission set and transmitting the one or more real-time data streams in the respective transmission set to the respective recipient network node over the respectively allocated channels; wherein the determining comprises for each of the links, ascertaining for each of the one or more real-time data streams in the respective transmission set one or more respective bandwidth levels and allocating the respective link bandwidth to the link based on the ascertained bandwidth levels; and wherein, for each of the links the ascertaining comprises, for each of one or more of the real-time data streams in the respective transmission set, identifying at least two respective bandwidth levels in a respective preference hierarchy ordered from a respective first preferred bandwidth level to a respective second preferred bandwidth level, and calculating a respective target link bandwidth level based at least in part on the identified first preferred bandwidth levels and calculating a respective fallback link bandwidth level based at least in part on the identified second preferred bandwidth levels. - View Dependent Claims (15, 16)
-
-
17. A method of switching real-time data stream connections between network nodes sharing a virtual area, comprising:
-
for each of one or more recipient ones of the network nodes, determining a respective link over which to transmit a respective transmission set of multiple real-time data streams, wherein each of the links has a respective link bandwidth, wherein the determining comprises for each of the recipient network nodes, trying to establish the respective link to the recipient network node at a respective candidate link bandwidth level, and in response to a failure to establish the respective link to the recipient network node at the respective candidate link bandwidth level, dropping at least one optional real-time data stream in the transmission data set; and for each of the links, apportioning the respective link bandwidth between multiple channels respectively allocated to the multiple real-time data streams in the respective transmission set and transmitting the multiple real-time data streams in the respective transmission set to the respective recipient network node over the respectively allocated channels.
-
-
18. A method of switching real-time data stream connections between network nodes sharing a virtual area, comprising:
-
for each of one or more recipient ones of the network nodes, determining a respective link over which to transmit a respective transmission set of multiple real-time data streams, wherein each of the links has a respective link bandwidth, wherein the determining comprises for each of the recipient network nodes, trying to establish the respective link to the recipient network node at a respective candidate link bandwidth level, and in response to a failure to establish the respective link to the recipient network node at the respective candidate link bandwidth level, establishing a link for transmitting the one or more real-time data streams in the respective transmission set to the recipient network node over a network route mediated by one or more of the other network nodes; and for each of the links, apportioning the respective link bandwidth between multiple channels respectively allocated to the multiple real-time data streams in the respective transmission set and transmitting the multiple real-time data streams in the respective transmission set to the respective recipient network node over the respectively allocated channels.
-
-
19. A method of switching real-time data stream connections between network nodes sharing a virtual area, comprising:
-
for each of one or more recipient ones of the network nodes, determining a respective link over which to transmit a respective transmission set of multiple real-time data streams, wherein each of the links has a respective link bandwidth, wherein the determining comprises for each of the recipient network nodes, trying to establish the respective link to the recipient network node at a respective candidate link bandwidth level, and in response to a failure to establish the respective link to the recipient network node at the respective candidate link bandwidth level, establishing a link that delivers one or more of the real-time data streams in the respective transmission set to the recipient network node in the form of one or more mixed real-time data streams derived from a combination of real-time data streams transmitted from other ones of the network nodes; and for each of the links, apportioning the respective link bandwidth between multiple channels respectively allocated to the multiple real-time data streams in the respective transmission set and transmitting the multiple real-time data streams in the respective transmission set to the respective recipient network node over the respectively allocated channels.
-
-
20. A method of switching real-time data stream connections between network nodes sharing a virtual area, comprising:
-
for each of one or more recipient ones of the network nodes, determining a respective link over which to transmit a respective transmission set of multiple real-time data streams, wherein each of the links has a respective link bandwidth; and for each of the links, apportioning the respective link bandwidth between multiple channels respectively allocated to the multiple real-time data streams in the respective transmission set and transmitting the multiple real-time data streams in the respective transmission set to the respective recipient network node over the respectively allocated channels, wherein, for each of the links, the apportioning of the respective link bandwidth between the multiple channels respectively allocated to the multiple real-time data streams in the respective transmission set is based on one or more stream priority levels respectively associated with the one or more real-time data streams in the respective transmission set.
-
-
22. A non-transitory computer-readable medium storing computer-readable instructions for switching real-time data stream connections between network nodes sharing a virtual area, the computer-readable instructions being operable to cause a computer to perform operations comprising:
-
for each of one or more recipient ones of the network nodes, determining a respective link over which to transmit a respective transmission set of multiple real-time data streams, wherein each of the links has a respective link bandwidth, wherein the determining comprises for each of the links, allocating the respective link bandwidth to the multiple real-time data streams in the respective transmission set in an amount determined based on an attribute associated with the respective recipient network node; and for each of the links, apportioning the respective link bandwidth between multiple channels respectively allocated to the multiple real-time data streams in the respective transmission set and transmitting the multiple real-time data streams in the respective transmission set to the respective recipient network node over the respectively allocated channels.
-
-
23. A network adapter for switching real-time data stream connections between network nodes sharing a virtual area, comprising:
-
computer-readable memory; and a processing unit coupled to the computer-readable memory and operable to perform operations comprising for each of one or more recipient ones of the network nodes, determining a respective link over which to transmit a respective transmission set of multiple real-time data streams, wherein each of the links has a respective link bandwidth, wherein the determining comprises for each of the links, allocating the respective link bandwidth to the multiple real-time data streams in the respective transmission set in an amount determined based on an attribute associated with the respective recipient network node; and for each of the links, apportioning the respective link bandwidth between multiple channels respectively allocated to the multiple real-time data streams in the respective transmission set and transmitting the multiple real-time data streams in the respective transmission set to the respective recipient network node over the respectively allocated channels.
-
Specification