Nova Patents
EP2377031A2

Realtime kernel

Abstract

This record has no abstract on file.

Term

Projected expiry 4 December 2029.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

135 claims: 38 independent, 97 dependent

  1. 1
    Claims of equivalent WO 2010065848 A2 CLAJMS 1 . A compuler-implemented method of remote-controlled realtime data stream handling, comprising:at a locai network node (12), receiving one or more stream handling instructions from a remote network node (16), wherein the one or more stream handling instructions comprise a specification of a stream handier (22) for processing at least one realtime data stream;at the iocal network node (16), creating a stream handier (22) in accordance with the specification;and producing a resultant data stream at the locai network node (16), wherein the producing comprises processing a realtime data stream through the created stream handler (22).
  2. 6
    The method of ciaim 4, wherein the instantiating comprises instantiating a mixing object specified in the one or more stream handling instructions, and the producing comprises executing the mixing object to produce a mixed realtime data stream from a combination of the realtime data stream and at least one other realtime data stream.
  3. 8
    8 The method of ciaim 4, wherein the one or more stream handling instructions specify the processing objects with respective unique identifiers and the instantiating comprises issuing to a processing object application program interface procedure (APS) calls comprising respective ones of the identifiers.
  4. 11
    1 1 . The method of ciaim 10 1 wherein the one or more stream handling instructions comprise realtime position information describing the respective positions of the first and second objects in the virtual area (28), and the producing comprises determining configuration parameter values from the reaitime position information and configuring the stream handier (22) with the configuration parameter vaiues.
  5. 12
    The method of ciaim 1 1 , further comprising receiving a second realtime data stream from a third remote network node that is associated with a third object in the virtual area (28), wherein the creating comprises building the stream handier (22) with a mixing function specified in the one or more stream handling instructions, and the producing comprises combining the first reaitime data stream and the second realtime data stream in accordance with the mixing function.
  6. 14
    14, The method of ciaim 10, wherein:the one or more stream handling instructions comprise realtime position information describing the respective positions of the first and second objects in the virtual area (28);the creating comprises building the stream handler (22) with cne or more object attribute processing functions that are specified in the one or more stream handling instructions;the producing comprises determining object configuration parameter values from the realtime position information, and dynamically configuring the one or more object attribute processing functions with the object configuration parameter values while producing the resultant data stream;and the generating comprises rendering a visible output comprising visual representations of the first and second objects in the virtual area (28) based at least in part on the resultant data stream,
  7. 16
    The method of ciaim 1 , wherein the specified data type is audio and the generating comprises generating an audible output.
  8. 22
    The method of ciaim 1 , further comprising generating a human-perceptible output at the local network node (16) based at least in part on the resultant data stream.
  9. 23
    23, Apparatus, comprising:a computer-readable medium storing computer-readable instructions;and a data processing unit coupied 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 at a iocal network node (16), receiving one or more stream handling instructions from a remote network node, wherein the one or more stream handling instructions comprise a specification of a stream handler (22) for processing at least one realtime data stream, at the Socal network node (16), creating a stream handler (22) in accordance with the specification, and producing a resultant data stream at the iocai network node (16), wherein the producing comprises processing a realtime data stream through the created stream handier (22).
  10. 24
    24, At ieast one computer-readable medium having computer-readable program code embodied therein, the computer-readable program code adapted to be executed by a computer to impiement a method comprising;at a Iocai network node (16), receiving one or more stream handling instructions from a remote network node, wherein the one or more stream handling instructions comprise a specification of a stream handier (22) for processing at least one realtime data stream;at the iocai network node (16), creating a stream handier (22) in accordance with the specification;and producing a resultant data stream at the iocai network node (18), wherein the producing comprises processing a realtime data stream through the created stream handier (22).
  11. 25
    25, A computer-impiemented method of realtime data stream handling, comprising:parsing a specification of a realtime stream handier (206) from one or more stream handling instructions (210), wherein the parsing comprises parsing an input source identifier, an output sink identifier, and a respective identifier of each of one or more data processing objects from the one or more stream handing instructions (210);instantiating reaitime stream handling objects corresponding to respective ones of the identifiers;creating a directed graph (212) comprising ones of the instantiated reaitime stream handling objects in accordance with the specification;receiving a reaitime data stream from an input source corresponding to the input source identifier;and prodυcing a resultant data stream at an output sink corresponding to the output sink identifier, wherein the producing comprises processing the realtime data stream through the directed graph (212),
  12. 33
    The method of ciaim 32, wherein the first input source corresponds to a definition of an incoming reaitime data stream (214) from a first remote network node, and the second input source corresponds to a definition of an incoming realtime data stream (214) from a second remote network node,
  13. 34
    The method of ciaim 25, wherein:the parsing comprises parsing a second specification of a second realtime stream handier (22) from the one or more stream handiing instructions (210), the second specification comprising a second input source identifier, a second output sink identifier, and a respective identifier of each of one or more data processing objects, the creating comprises creating a second directed graph from ones of the instantiated realtime stream handiing objects in accordance with the second specification;the receiving comprises receiving a second realtime data stream from a second input source corresponding to the second input source identifier, wherein the first and second realtime data streams are deferent in terms of data type;and the producing comprises processing the second reaitime data stream through the second directed graph to a second output sink corresponding to the second output sink identifier,
  14. 35
    The method of ciaim 34, wherein the first realtime data stream and the second realtime data stream are processed concurrentiy.
  15. 41
    The method of ciaim 38, wherein:the parsing comprises extracting identifiers of graphic object appearance processing objects from the one or more stream handling instructions (210);and the producing comprises processing the reaitime data stream through one or more instantiated graphic object appearance processing objects corresponding to respective ones of the extracted identifiers, and dynamicaily configuring the instantiated graphic object appearance processing objects to controi a visual representation of the first object in terms of at least one of orientation, position, movement, and pose based at least in part on the position of the first object in the virtual area (28).
  16. 42
    42, The method of ciaim 25, wherein the parsing, the instantiating ! the creating, the receiving, the producing, and the generating are performed on a remote network node, and further comprising associating interface elements of a user-levei application executing on a local network node (16) with the reaitime data stream, and transmitting the realtime data stream from the local network node (16) to the remote network node,
  17. 43
    The method of ciaim 42, further comprising transmitting the one or more stream handing instructions from the iocaS network node (16) to the remote network node.
  18. 44
    The method of ciaim 43, wherein the user-ievei application is a desktop application program.
  19. 51
    Apparatus, comprising;a computer-readable medium storing computer-readable instructions;and a data processing unit coupled to the memory, operable to execute the instructions, and based at least in part on the execution of the instructions operabie to perform operations comprising parsing a specification of a realtime stream handier (22) from one or more stream handling instructions (210), wherein the parsing comprises parsing an input source identifier, an output sink identifier and a respective identifier of each of one or more data processing objects from the one or more stream handing instructions, instantiating realtime stream handling objects corresponding to respective ones of the identifiers, creating a directed graph (212) comprising ones of the instantiated realtime stream handling objects in accordance with the specification, receiving a reaitime data stream (214) from an input source corresponding to the input source identifier, and producing a resultant data stream at an output sink corresponding to the output sink identifier, wherein the producing comprises processing the reaitime data stream through the directed graph (212).
  20. 52
    At ϊeast one computer-readable medium having computer-readable program code embodied therein, the computer-readable program code adapted to be executed by a computer to implement a method comprising:parsing a specification of a realtime stream handier {22} from one or more stream handling instructions (210), wherein the parsing comprises parsing an input source identifier, an output sink identifier, and a respective identifier of each of one or more data processing objects from the one or more stream handing instructions;instantiating reaitime stream handling objects corresponding to respective ones of the identifiers;creating a directed graph (212) comprising ones of the instantiated reaitime stream handling objects in accordance with the specification;receiving a reaitime data stream (214) from an input source corresponding to the input source identifier;and producing a resultant data stream at an output sink corresponding to the output sink identifier, wherein the producing comprises processing the realtime data stream through the directed graph (212),
  21. 53
    A computer-implemented method of realtime data stream handling, comprising:estabiishing at ieast one realtime data stream connection between a iocai network node (16) and at least one remote network node (230);at the ϊocal network node (16), processing at least one realtime data stream sourced by the remote network node r wherein the processing comprises processing the at least one realtime data stream through one or more realtime data processing operations to produce a resultant data stream (232);monitoring the processing (234);and in response to a determination based on the monitoring that the processing deviates from a performance target, modifying the processing in accordance with a realtime performance targeting routine (236).
  22. 54
    The method of ciairn 53, wherein the modifying (236) comprises omitting the processing of one or more portions of the realtime data stream in response to a determination that the processing fails to satisfy the performance target.
  23. 57
    57, The method of ciaim 55, wherein ones of the data processing operations are assigned respective priority values, and the omitting comprises preferentially omitting one or more of the data processing operations based on the assigned priority values.
  24. 61
    The method of ciaim 53, wherein the modifying (236) comprises iteratively modifying the processing υnti! the processing is within the specified performance target.
  25. 75
    The method of ciaim 53, wherein the performance target comprises a time- based threshoid on production of the resultant data stream.
  26. 80
    The method of ciaim 79, wherein the processing (232) comprises processing the frames of the realtime data stream during each of successive fixed length intervals that are set in accordance with a local clock.
  27. 86
    Apparatus, comprising:a computer-readable medium storing computer-readable instructions;and a data processing unit 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 establishing at least one realtime data stream connection between a local network node (16) and at ieast one remote network node (230), at the local network node (16), processing at least one realtime data stream sourced by the remote network node : wherein the processing comprises processing the at least one realtime data stream through one or more realtime data processing operations to produce a resultant data stream (232);monitoring the processing (234), and in response to a determination based on the monitoring that the processing deviates from a performance target, modifying the processing in accordance with a realtime performance targeting routine (236).
  28. 87
    Af least one computer-readable medium having computer-readable program code embodied therein, the computer-readable program code adapted to be executed by a computer to implement a method comprising:establishing at least one realtime data stream connection between a local network node (16) and at least one remote network node (230);at the local network node (16), processing at least one realtime data stream sourced by the remote network node, wherein the processing comprises processing the at least one realtime data stream through one or more realtime data processing operations to produce a resultant data stream (232);monitoring the processing (234);and in response to a determination based on the monitoring that the processing deviates from a performance target, modifying the processing in accordance with a realtime performance targeting routine (236).
  29. 88
    A computer-implemented method, comprising:on a local network node (16), establishing a first session with a remote network node on a transport stream in accordance with a connectionless transport protocol (362);on behalf of one or more software entities on the local network node (16), automatically opening one or more channels over which data is transmitted between the local network node (16) and the remote network node in the first session (364);in the first session, maintaining a table identifying open ones of the channels and associating respective attribute values with the identified channels (366);in response to a determination that the first session has failed, automatically attempting to establish a second session with the remote network node on a second transport stream in accordance with the connectionless transport protocol (368);and in response to successful establishment of the second session, automatically opening each of the channels identified in the table (370).
  30. 106
    Apparatus, comprising;a computer-readable medium storing computer-readable instructions;and a data processing unit 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 on a Sαcai network node (16), establishing a first session with a remote network node on a transport stream in accordance with a connectionless transport protocol (362);on behalf of one or more software entities on the local network node (16), automatically opening one or more channels over which data is transmitted between the local network node (16) and the remote network node in the first session (364);iπ the first session, maintaining a table identifying open ones of the channels and associating respective attribute values with the identified channels (366);in response to a determination that the first session has failed, automatically attempting to establish a second session with the remote network node on a second transport stream in accordance with the connectionless transport protocol (368);and in response to successful establishment of the second session, automatically opening each of the channels identified in the table (370).
  31. 107
    At least one computer-readable medium having computer-readable program code embodied therein, the computer-readable program code adapted to be executed by a computer to implement a method comprising:on a local network node (16), establishing a first session with a remote network node on a transport stream in accordance with a connectionless transport protocol (362);on behalf of one or more software entities on the local network node (16), automatically opening one or more channels over which data is transmitted between the local network node (16) and the remote network node in the first session (364);in the first session, maintaining a table identifying open ones of the channels and associating respective attribute values with the identified channels (366);in response to a determination that the first session has failed, automatically attempting to establish a second session with the remote network node on a second transport stream in accordance with the connectionless transport protocol (368);and in response to successful establishment of the second session, automatically opening each of the channels identified in the table (370).
  32. 108
    A method performed on a local network node (16), the method comprising;parsing a list of kernel components comprising one or more kernel service components (320);determining all the kerne! components in the parsed list that are missing from a local repository (322);retrieving each of the kernel components determined to be missing (324);instantiating kernel services from ones of the kernel service kernel components (326);executing (328) the instantiated kernel services to communicate with one or more remote network nodes in a communication environment defined with respect to a virtual area (28).
  33. 109
    The method of ciairn 108, whereϊn the instantiating (326) comprises instantiating a stream connection kernel service, and the executing (328) comprises executing the stream connection kerne! service to dynamicaily load at least one stream transport piugin providing at ieast one of a reliability function, an authentication function, and an encryption function.
  34. 114
    118, The method of claim 114, wherein the one or more remote network nodes are associated with respective objects in the virtual area (28), and the configuring comprises determining configuration parameter values based on positions of objects in the virtual area (28) and configuring ones of the plugins in the stream handler (22) with the configuration parameter values.
  35. 120
    124. Apparatus, comprising:a computer-readable medium storing computer-readabie instructions;and a data processing unit coupied 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 parsing a list of kerne! components comprising one or more kernel service components (320), determining all the kernel components in the parsed iist that are missing from a local repository (322), retrieving (324) each of the kernel components determined to be missing, instantiating kernel services from ones of the kernel service kernel components (326), and executing (326) the instantiated kernel services to communicate with one or more remote network nodes in a communication environment defined with respect to a virtual area (28).
  36. 121
    125. At ieast one computer-readable medium having computer-readable program code embodied therein, the computer-readable program code adapted to bs executed by a computer to impiement a method comprising:parsing a list of kernel components comprising one or more kernel service components (320);determining all the kerne! components in the parsed iist that are missing from a local repository (322);retrieving each of the kernel components determined to be missing (324);instantiating kernel services from ones of the kernel service kernel components (326);and executing (328) the instantiated kernel services to communicate with one or more remote network nodes in a communication environment defined with respect to a virtual area (28).
  37. 122
    126. A method performed on a iocal network node (16), comprising:configuring the local network node (16) to support realtime communications with at least one remote network node in a context defined by a virtual area (28), wherein the configuring comprises in response to a call to enumerate all plugins that support a specified application programming interface (APl) 1 returning a list comprising identifiers of all plugins associated with the specified APi in a plugin database (442), in response to a call to enumerate variants of a given APi supported by an identified one of the plugins, delivering a list comprising identifiers of all variants of the given API that are supported by the identified piugin (446), and in response to a call to instantiate an identified one of the variants of an identified API supported by an identified one of the plugins, loading thβ identified plugin and providing a pointer to an instance of the identified variant (450);and establishing at ieast one realtime data stream connection between the configured local network node (16) and the at least one remote network node.
  38. 126
    130. The method of claim 126, wherein the returning, the delivering , and the loading, are performed independently of API type.
  39. 132
    136. The method of claim 132, wherein the communicating comprises instantiating at least one of the plugins that provides a collision detection function.
  40. 134
    138. Apparatus, comprising:a computer-readable medium storing computer-readable instructions;and a data processing unit 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 configuring the local network node (16) to support realtime communications with at least one remote network node in a context defined by a virtual area (28), wherein the configuring comprises in response to a call to enumerate all plugins that support a specified application programming interface (API), returning a list comprising identifiers of all plugins associated with the specified API in a pSugin database (442), in response to a call to enumerate variants of a given APi supported by an identified one of the plugins, delivering a list comprising identifiers of ali variants of the given APi that are supported by the identified plυgin (446), and in response to a cali to instantiate an identified one of the variants of an identified AP! supported by an identified one of the piugins, loading the identified plugin and providing a pointer to an instance of the identified variant (450);and estabiishing at ieast one realtime data stream connection between the configured locaS network node (16) and the at ieast one remote network node.
  41. 135
    139, At ieast one computer-readable medium having computer-readable program code embodied therein, the computer-readable program code adapted to be executed by a computer to impiement a method comprising:configuring the local network node (18) to support realtime communications with at least one remote network node in a context defined by a virtual area (28), wherein the configuring comprises in response to a cali to enumerate ali piugins that support a specified application programming interface (APi), returning a list comprising identifiers of ail piugins associated with the specified API in a plugin database (442), in response to a cali to enumerate variants of a given API supported by an identified one of the piugins, delivering a iist comprising identifiers of ail variants of the given API that are supported by the identified piugin (448), and in response to a cali to instantiate an identified one of the variants of an identified API supported by an identified one of the piugins, loading the identified piugin and providing a pointer to an instance of the identified variant (450);and estabiishing at ieast one realtime data stream connection between the configured local network node (16) and the at least one remote network node.
Independent claims41