US2013212228A1PendingUtilityA1

Routing virtual area based communications

Assignee: SOCIAL COMMUNICATIONS COPriority: Feb 11, 2012Filed: Feb 11, 2013Published: Aug 15, 2013
Est. expiryFeb 11, 2032(~5.5 yrs left)· nominal 20-yr term from priority
H04L 67/131H04L 65/765H04L 65/61G06T 15/205G06T 2207/10016G06T 2215/16G06T 2200/04H04L 45/54G06T 19/20G06T 2207/10012G06T 2219/2004G06T 2207/10072G06T 19/006G06T 17/05G06T 2219/024G06T 11/60G06T 13/40G06T 2207/30196H04L 65/605
52
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

In association with a virtual area, a first network connection is established with a first network node present in the virtual area and a second network connection is established with a second network node present in the virtual area. Based on stream routing instructions, a stream router is created between the first network node and the second network node. The stream router includes a directed graph of processing elements operable to receive network data, process the received network data, and output the processed network data. On the first network connection, an input data stream derived from output data generated by the first network node is received in association with the virtual area. The input data stream is processed through the stream router to produce an output data stream. On the second network connection, the output data stream is sent to the second network node.

Claims

exact text as granted — not AI-modified
1 . A method, comprising:
 in association with a virtual area, an intermediate network node establishing a first network connection with a first network node present in the virtual area and establishing a second network connection with a second network node present in the virtual area;   based on stream routing instructions, the intermediate network node creating between the first network node and the second network node a stream router comprising a directed graph of processing elements operable to receive network data, process the received network data, and output the processed network data;   on the first network connection, the intermediate network node receiving an input data stream derived from output data generated by the first network node in association with the virtual area;   the intermediate network node processing the input data stream through the stream router to produce an output data stream; and   on the second network connection, the intermediate network node sending the output data stream to the second network node.   
     
     
         2 . The method of  claim 1 , wherein the stream routing instructions specify the processing elements and an arrangement of the processing elements, and the creating comprises the intermediate network node instantiating the specified processing elements and assembling the instantiated processing elements into the directed graph in accordance with the specified arrangement. 
     
     
         3 . The method of  claim 1 , wherein the stream routing instructions specify configuration parameter values for the processing elements, and the creating comprises the intermediate network node configuring the processing elements with the specified configuration parameter values. 
     
     
         4 . The method of  claim 1 , wherein the directed graph comprises: an input processing element receiving the input data stream on an input socket; and an output processing element for sending the output data stream on an output socket different from the input socket. 
     
     
         5 . The method of  claim 1 , wherein the directed graph comprises: a decoder processing element for decoding data derived from the input data stream; and an encoder processing element for encoding data derived from the decoded data. 
     
     
         6 . The method of  claim 1 , wherein the directed graph comprises a mixing processing element for mixing data with data derived from the input data stream. 
     
     
         7 . The method of  claim 1 , wherein the directed graph comprises a recording processing element for storing data derived from the input data stream in a computer-readable medium. 
     
     
         8 . The method of  claim 1 , wherein the input data comprises audio data, and the directed graph comprises an audio processing element for processing audio data derived from the input data stream. 
     
     
         9 . The method of  claim 1 , wherein the input data comprises video data, and the directed graph comprises a video processing element for processing video data derived from the input data stream. 
     
     
         10 . The method of  claim 1 , further comprising:
 based on the stream routing instructions, the intermediate network node creating between the first network node and the second network node a second stream router comprising a second directed graph of processing elements operable to receive network data, process the received network data, and output the processed network data   on the first network connection, the intermediate network node receiving a second input data stream derived from output data generated by the first network node in association with the virtual area;   the intermediate network node processing the second input data stream through the second stream router to produce a second output stream; and   on the second network connection, the intermediate network node sending the second output data stream to the second network node   
     
     
         11 . The method of  claim 10 , further comprising by the intermediate network node storing definitions of respective channels that logically divide data transported on first and second connections by data stream content type; wherein the receiving comprises receiving the first and second input data streams on the first connection in respective channels according to content types of the first and second input data streams, and the sending comprises sending the first and second output data streams on the second connection in respective channels according to content types of the first and second output data streams. 
     
     
         12 . The method of  claim 11 , wherein each of the channel definitions comprises a respective unique content identifier that identifies a respective data stream content type assigned to the respective channel, the receiving comprises receiving the first and second input data streams on respective channels in packets containing respective ones of the content identifiers corresponding to the content types of the first and second input data streams, and the sending comprises sending the first and second output data streams on respective channels in packets containing respective ones of the content identifiers corresponding to the content types of the first and second output data streams. 
     
     
         13 . The method of  claim 12 , wherein the first input data stream and the first output data stream are audio content data streams, and the second input data stream and the second output data stream are video content data streams. 
     
     
         14 . The method of  claim 10 , wherein at least one of the processing elements is shared by both the first and second data processing routes. 
     
     
         15 . The method of  claim 1 , further comprising
 in association with the virtual area, the intermediate network node establishing a third network connection with a third network node present in the virtual area;   based on the stream routing instructions, the intermediate network node creating between the third network node and the second network node a second directed graph of processing elements operable to receive network data, process the received network data, and output the processed network data; and   on the third network connection, the intermediate network node receiving a second input data stream derived from output data generated by the third network node in association with the virtual area.   
     
     
         16 . The method of  claim 15 , further comprising:
 the intermediate network node processing the second input data stream through the second directed graph to produce a second output stream; and   on the second network connection, the intermediate network node sending the second output data stream to the second network node.   
     
     
         17 . The method of  claim 15 , wherein the intermediate network node processes the first and second input data streams through the first and second directed graphs to produce a mixed data stream from the first and second data streams, and sends the mixed data stream to the second network node. 
     
     
         18 . The method of  claim 15 , wherein the first directed graph and the second directed graph share at least one of the processing elements. 
     
     
         19 . The method of  claim 18 , wherein the first directed graph and the second directed graph share a mixing processing element, and the intermediate network node processes data derived from the first and second input data streams through the mixing processing element to produce a mixed data stream. 
     
     
         20 . The method of  claim 19 , wherein the first and second directed graphs share an output processing element, and the intermediate network node processes the mixed data stream through the output processing element to produce the output data stream. 
     
     
         21 . The method of  claim 20 , wherein the first directed graph comprises a first input processing element for receiving the first input data stream on a first input socket, and the second directed graph comprises a second input processing element for receiving the second input data stream on a second input socket different from the first input socket. 
     
     
         22 . The method of  claim 1 , wherein the establishing of the first network connection and the establishing of the second network connection are performed concurrently with data transmission on a peer-to-peer network connection between the first network node and the second network node. 
     
     
         23 . The method of  claim 22 , further comprising:
 the intermediate network node reporting establishment of each of the first network connection and the second network connection; and   based on the reporting of the establishment of each of the first network connection and the second network connection, tearing down the peer-to-peer network connection between the first network node and the second network node and transmitting data between the first and second network nodes on the first and second connections with the intermediate node.   
     
     
         24 . The method of  claim 1 , further comprising a third network node respectively establishing a first control session with the first network node, a second control session with the second network node, and a third control session with the intermediate node, wherein on the first, second, and third control sessions the third network node transmits to the first, second, and intermediate network nodes control messages that administer the establishing of the first and second network connections and the transmission of data on the first and second network connections. 
     
     
         25 . The method of  claim 24 , wherein each of the control sessions is assigned a respective unique session identifier that is associated with the virtual area, and the third network node communicates the respective session identifiers with the control messages that are sent to the first, second, and intermediate network nodes on the first, second, and third control sessions. 
     
     
         26 . The method of  claim 24 , further comprising the third network node sending the stream routing instructions to the intermediate network node on the third control session. 
     
     
         27 . The method of  claim 26 , wherein the stream routing instructions specify the processing elements, an arrangement of the processing elements, and configuration parameter values for the processing elements; and the creating comprises the intermediate network node instantiating the specified processing elements, assembling the instantiated processing elements into the directed graph in accordance with the specified arrangement, and configuring the processing elements with the specified configuration parameter values. 
     
     
         28 . The method of  claim 26 , further comprising the third network node determining the stream routing instructions based a specification of the virtual area and locations of presence of the first and second network nodes in the virtual area. 
     
     
         29 . The method of  claim 28 , wherein the virtual area specification maps references to generic sub-routes to node-type-specific processing element configurations, and the determining comprises the third network node ascertaining the generic sub-routes associated with the locations of presence of the first and second nodes in the virtual area, ascertaining the node-type-specific element configurations corresponding to node types of the first and second network nodes, and creating the stream routing instructions based on the ascertained node-type-specific element configurations. 
     
     
         30 . The method of  claim 26 , further comprising the third network node sending a source stream router specification to the first network node and a sink stream router specification to the second network node; wherein the source stream router specification defines a source stream router comprising a directed graph of processing elements operable to process local data generated by the first network node and output the processed local data to the intermediate network node on the first network connection, and the sink stream router specification defines a sink stream router comprising a directed graph of processing elements operable to receive network data from the intermediate node on the second network connection and process the received network data into local data. 
     
     
         31 . The method of  claim 30 , wherein the stream routing instructions and the source and sink stream router specifications reference a common specification of processing element definitions. 
     
     
         32 . The method of  claim 24 , wherein the third network node is a server network node. 
     
     
         33 . The method of  claim 24 , wherein the third network node is a network switch. 
     
     
         34 . The method of  claim 33 , further comprising the network switch forwarding realtime data stream packets between network nodes based at least in part on a routing table comprising network topology information describing routes to network destinations. 
     
     
         35 . The method of  claim 1 , wherein the intermediate network node is present in the virtual area. 
     
     
         36 . The method of  claim 35 , wherein the intermediate network node is associated with an object that represents a communicant in the virtual area. 
     
     
         37 . The method of  claim 1 , further comprising the intermediate network node determining public network addresses and ports of network address translators through which the first and second network nodes respectively operate, and transmitting the public network addresses and ports to the first and second network nodes. 
     
     
         38 . The method of  claim 37 , further comprising the first and second network nodes establishing a peer-to-peer network connection with one another based on the transmitted public network addresses and ports. 
     
     
         39 . Apparatus, comprising:
 a memory storing processor-readable instructions; and   a processor coupled to the memory, operable to execute the instructions, and based at least in part on the execution of the instructions operable to perform operations comprising
 in association with a virtual area, establishing a first network connection with a first network node present in the virtual area and establishing a second network connection with a second network node present in the virtual area; 
 based on stream routing instructions, creating between the first network node and the second network node a stream router comprising a directed graph of processing elements operable to receive network data, process the received network data, and output the processed network data; 
 on the first network connection, receiving an input data stream derived from output data generated by the first network node in association with the virtual area; 
 processing the input data stream through the stream router to produce an output data stream; and 
 on the second network connection, sending the output data stream to the second network node. 
   
     
     
         40 . At least one non-transitory computer-readable medium comprising processor-readable instructions which, when executed by a processor, causes the processor to perform operations comprising:
 in association with a virtual area, establishing a first network connection with a first network node present in the virtual area and establishing a second network connection with a second network node present in the virtual area;   based on stream routing instructions, creating between the first network node and the second network node a stream router comprising a directed graph of processing elements operable to receive network data, process the received network data, and output the processed network data;   on the first network connection, receiving an input data stream derived from output data generated by the first network node in association with the virtual area;   processing the input data stream through the stream router to produce an output data stream; and   on the second network connection, sending the output data stream to the second network node.

Join the waitlist — get patent alerts

Track US2013212228A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.