System and method for data streaming and synchronization in multimedia groupware applications
First Claim
1. A system for providing collaboration among a multi-user distributed computing environment comprising:
- a local client computer having first collaboration space comprising at least one first stream;
a plurality of remote client computers each having remote collaboration space comprising a replica of said at least one first stream;
at least one server for serving said local and said plurality of remote client computers, said serving comprising handling of information relating to said at least one first stream among said at least one local and said plurality of remote client computers; and
network means connecting said at least one server and said client computers.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for temporal synchronization of media streams in multimedia collaborative applications (i.e., a multi-user distributed applications used for interaction, both in the synchronous and asynchronous fashion among a group of users) in a wide-area distributed environment. The invention presents two abstractions; event streams and collaboration space, that together provide for coarse-grained temporal synchronization by using separate streams for different media and synchronizing the streams at the client location. VCR-like controls are also provided on groups of components in a collaborative application. The event stream provides many services such as replication, persistence, buffering, reading, and writing to archive. By implementing simple interfaces, existing collaborative applications, media players, and encoders become components that can be used to build complex multimedia collaborative applications. To efficiently implement a seeking function on a data component, the present invention introduces a framework for application-specific updates to a component state.
357 Citations
23 Claims
-
1. A system for providing collaboration among a multi-user distributed computing environment comprising:
-
a local client computer having first collaboration space comprising at least one first stream;
a plurality of remote client computers each having remote collaboration space comprising a replica of said at least one first stream;
at least one server for serving said local and said plurality of remote client computers, said serving comprising handling of information relating to said at least one first stream among said at least one local and said plurality of remote client computers; and
network means connecting said at least one server and said client computers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14)
at least one event buffer;
at least one event sequence generator;
registry list of associated client computers; and
event distributor means.
-
-
7. The system of claim 4 wherein said each of said client computers comprises:
- operating system layer;
middleware layer; and
application layer, and wherein said application layer comprises at least said collaboration space having data components and media components.
- operating system layer;
-
8. The system of claim 7 wherein said middleware layer comprises multimedia collaborative client component comprising at least said event stream, said media stream and coordinator means.
-
9. The system of claim 8 wherein said coordinator means comprises at least one clock object and component registry.
-
10. The system of claim 9 wherein said at least one clock object comprises a source clock object and a sink clock object.
-
12. The system of claim 8 wherein said coordinator means comprises at least one control event distributor to receive and distribute a plurality of control events.
-
13. The system of claim 5 wherein said reflector comprises at least one buffer and network connection means for each client.
-
14. The system of claim 7 wherein each of said client computers additionally comprises an event queue for queuing said event streams.
-
11. The system of claim 11 further comprising a client clock selection policy at said client coordinator.
-
15. A method for providing for collaboration among users at client computers, each of said client computers having at least one data component, on a client-server network having at least one local client computer, a plurality of remote client computers and at least one server for serving said at least one local client computer and said Plurality of remote client computers by handling information relating to said at least one first stream among said at least one local and said plurality of remote client computers comprising the steps of:
-
creating an event stream at a first data component on a first of said client computers; and
providing said event stream to a first server for said server to handle said event stream among said at least one local and said plurality of remote client computers. - View Dependent Claims (16, 17, 18)
said stream object sending the current state of the event stream, comprising said replica, to said requesting client computer;
said stream object registering said replica for update notification;
creating an event stream replica at said requesting client computer; and
initializing an event queue at said requesting client computer.
-
-
19. In a client server system comprising at least one first local client computer having an event stream replicated in at least one event stream replica located in at least one remote client computer, each of said client computers having at least one data component and an event queue and being associated with at least one server having a stream object associated to said event stream, a method for posting an event from said event stream comprising the steps of:
-
said event stream attaching a sync marker to said event;
said event stream sending said event and said sync marker to said stream object on said at least one server;
said stream object attaching a sequence number to said event; and
said stream object multicasting said event to said at least one event stream replica. - View Dependent Claims (20, 21)
-
-
22. In a client server system comprising at least one first local client computer having an event stream replicated in at least one event stream replica located in at least one remote client computer, each of said client computers having at least one data component and an event queue and being associated with at least one server having a stream object associated to said event stream, a method for updating said event stream comprising the steps of:
-
said at least one first local client computer communicating updated event stream to said stream object; and
said server communicating said update to each of said at least one event stream replica. - View Dependent Claims (23)
said at least one client computer updating said media stream;
said at least one client computer communicating said updated media stream to said reflector server; and
said reflector server multicasting said updated media stream to said at least one media stream replica.
-
Specification