Source: http://www.google.com/patents/US7680885?dq=7,446,777
Timestamp: 2014-10-22 14:52:46
Document Index: 527796621

Matched Legal Cases: ['Application No. 2005239573', 'Application No. 2005239573', 'Application No. 2005239573', 'Application No. 05736265', 'Application No. 06760217', 'Application No. 05736265']

Patent US7680885 - Methods and apparatus for synchronization of data set representations in a ... - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inAdvanced Patent SearchPatentsA bandwidth-adaptive method for synchronizing a consumer node representation of a dynamic data set and the source node representation of the dynamic data includes the step of receiving, from a source node, metadata information identifying a plurality of data packets that represent a state of at least...http://www.google.com/patents/US7680885?utm_source=gb-gplus-sharePatent US7680885 - Methods and apparatus for synchronization of data set representations in a bandwidth-adaptive mannerAdvanced Patent SearchPublication numberUS7680885 B2Publication typeGrantApplication numberUS 10/709,142Publication dateMar 16, 2010Filing dateApr 15, 2004Priority dateApr 15, 2004Fee statusPaidAlso published asCA2563235A1, EP1735948A2, EP1735948A4, US8375087, US20050232168, US20100146124, WO2005107189A2, WO2005107189A3Publication number10709142, 709142, US 7680885 B2, US 7680885B2, US-B2-7680885, US7680885 B2, US7680885B2InventorsKlaus E. Schauser, Bernd Oliver Christiansen, Thorsten Von Eicken, Albert Alexandrov, Rafael H. SaavedraOriginal AssigneeCitrix Systems, Inc.Export CitationBiBTeX, EndNote, RefManPatent Citations (101), Non-Patent Citations (26), Referenced by (2), Classifications (13), Legal Events (2) External Links: USPTO, USPTO Assignment, EspacenetMethods and apparatus for synchronization of data set representations in a bandwidth-adaptive mannerUS 7680885 B2Abstract A bandwidth-adaptive method for synchronizing a consumer node representation of a dynamic data set and the source node representation of the dynamic data includes the step of receiving, from a source node, metadata information identifying a plurality of data packets that represent a state of at least a portion of a changing data set at a point in time. At least one of the identified data packets is received from the source node and at least one of the received data packets is selected responsive to the received metadata information. The metadata information and the selected at least one data packet are transmitted to a consumer node.
1. A bandwidth-adaptive method for synchronizing consumer node representations of a dynamic data set and a source node representation of the dynamic data set, the method comprising the steps of:
(a) receiving, at a communications service from a source node, a metadata packet identifying a plurality of data packets that represent a state of at least a portion of a changing data set at a point in time;
(b) receiving, at the communications service from the source node, at least one of the identified data packets;
(c) selecting first and second sets of the identified data packets responsive to the received metadata packet, the first and second sets being different from one another;
(d) transmitting, from the communications service to a first consumer node, the metadata packet and the first set of identified data packets for synchronization of a first dynamic data set represented at the first consumer node with the state of the changing data set represented at the source node at the point in time; and
(e) transmitting, from the communications service to a second consumer node having a different bandwidth connection with the communications service than the first consumer node has with the communications service, the metadata packet and the second set of identified data packets for synchronization of a second dynamic data set represented at the second consumer node with the state of the changing data set represented at the source node at the point in time.
2. The method of claim 1 further comprising the step of, before step (c), receiving a request from at least one of the first and second consumer nodes for a current state of the changing data set.
3. The method of claim 2 further comprising the step of repeating steps (a) and (b) until the request is received.
4. The method of claim 3 wherein selecting a set of the identified data packets in step (c) comprises the steps of:
(c-a) selecting one of the received metadata packets; and
(c-b) selecting at least one of the received data packets identified by the selected metadata packet.
5. The method of claim 1 wherein selecting a set of the identified data packets in step (c) comprises selecting a plurality of the received data packets responsive to the received metadata packet.
6. The method of claim 5 wherein step (d) comprises transmitting to the first consumer node each of the selected plurality of data packets.
7. The method of claim 1 wherein step (b) comprises receiving, at the communications service from the source node, at least one of the identified data packets in encrypted form.
8. The method of claim 1 further comprising the step of storing the received metadata packet in a memory device.
9. The method of claim 1 further comprising the step of storing at least one received data packet in a memory device.
10. The method of claim 9 wherein selecting a set of the identified data packets in step (c) comprises:
(c-a) selecting at least one of the received data packets responsive to the received metadata packet; and
(c-b) selecting at least one of the stored data packets responsive to the received metadata packet.
11. The method of claim 10 where step (d) comprises:
(d-a) transmitting to the first consumer node the selected at least one of the received data packets; and
(d-b) transmitting to the first consumer node the selected at least one of the stored data packets.
12. The method of claim 1 further comprising the step of storing, in a memory element, metadata information identifying a data packet transmitted to one of the first and second consumer nodes.
13. The method of claim 12 wherein selecting a set of the identified data packets in step (c) comprises selecting at least one of the received data packets that is responsive to the received metadata packet and to the stored metadata information.
14. A bandwidth-adaptive system for synchronizing consumer node representations and a source node representation of a changing data set, the system comprising:
a source node for transmitting a metadata packet identifying a plurality of data packets that represent a current state of a changing data set at a point in time, and for transmitting at least one of the identified data packets; and
a communications service in communication with the source node, the communications service for:
a)selecting, in response to the received metadata packet, a first set of the identified data packets for transmission to a first consumer node and a second set of the identified data packets, different from the first set, for transmission to a second consumer node having a different bandwidth connection with the communications service than the first consumer node has with the communications service;
b) transmitting the first set of the identified data packets, along with the metadata packet, to the first consumer node for synchronization of a first dynamic data set represented at the first consumer node with the state of the changing data set represented at the source node at the point in time; and
c) transmitting the second set of the identified data packets, along with the metadata packet, to the second consumer node for synchronization of a second dynamic data set represented at the second consumer node with the state of the changing data set represented at the source node at the point in time.
15. The system of claim 14 further comprising the first consumer node, and wherein the first consumer node requests the current state of the changing data set from the communications service.
16. The system of claim 15 wherein the communications service selects the first set of identified data packets in response to the request made by the first consumer node.
17. The system of claim 15 further comprising the second consumer node, and wherein the second consumer node requests the current state of the changing data set from the communications service.
18. The system of claim 17 wherein the source node transmits a plurality of metadata packets, each of the plurality of metadata packets representing one state of the changing data set.
19. The system of claim 18 wherein the communications service selects a first metadata packet to transmit to the first consumer node and a second metadata packet to transmit to the second consumer node.
20. The system of claim 14 wherein the communications service further comprises a memory element.
21. The system of claim 20 wherein the memory element is a persistent storage device.
22. The system of claim 20 wherein the communications service stores the received metadata packet in the memory element.
23. The system of claim 20 wherein the communications service stores the received at least one data packet in the memory element.
24. The system of claim 20 wherein the communications service stores in the memory element information regarding transmission of data packets to the first consumer node.
25. The system of claim 14 wherein the source node encrypts the at least one data packet before transmission.
26. A communications service for synchronizing consumer node representations and a source node representation of a changing data set, the service comprising:
a receiving subsystem for receiving i) metadata packet identifying a plurality of data packets representing a current state of a changing data set and ii) at least one data packet identified by the received metadata packet;
a synchronization engine for selecting, in response to the received metadata packet, first and second sets of the identified data packets, the first and second sets being different from one another; and
a transmission subsystem for transmitting i) the metadata packet and the first set of identified data packets to a first consumer node, and ii) the metadata packet and the second set of identified data packets to a second consumer node having a different bandwidth connection with the communications service than the first consumer node has with the communications service.
27. The communications service of claim 26 further comprising a memory element.
28. The communications service of claim 26 wherein the synchronization engine selects the first set of identified data packets in response to a request received from the first consumer node.
29. A method for synchronizing a consumer node representation of a dynamic data set and a source node representation of the dynamic data set, the method comprising the steps of:
(a) receiving from a source node a first metadata packet identifying a first plurality of data packets that represent a state of at least a portion of a changing data set at a first point in time;
(b) receiving from the source node a second metadata packet identifying a second plurality of data packets that represent a state of at least a portion of a changing data set at a second point in time;
(c) generating, by determining the difference between the first metadata packet and the second metadata packet, a third metadata packet identifying a third plurality of data packets;
(d) transmitting to a consumer node the third metadata packet; and
(e) transmitting to the consumer node at least one of the identified third plurality of data packets for synchronization of a dynamic data set represented at the consumer node with the state of the changing data set represented at the source node at the second point in time. Description
FIELD OF THE INVENTION The present invention relates generally to synchronization of source node and consumer node data sets and, more particularly, to techniques and apparatus for synchronizing, in a bandwidth-adaptive manner, each of a plurality of consumer node representations of a dynamic data set with a source node representation of the dynamic data set.
BACKGROUND OF THE INVENTION The promise of using the global computer network, colloquially referred to as the Internet, to allow many different individuals from disparate geographic and temporal regions to communicate and collaborate in real-time or near real-time remain largely unfulfilled. Differing bandwidths of different connections result in difficulties sharing time-sensitive information. The simplest example of this effect is �screen sharing,� that is, updating the screens of multiple clients such that each one mirrors a server's screen as closely as possible. Either screen updates are limited to the speed of the slowest connection, or users communicating over lower-bandwidth connections are �left behind� by those with higher-bandwidth connections. Further, in order to be useful, a system should support several simultaneous information sources and many information consumers, e.g., one or more screen broadcasts to hundreds of viewers. Additionally, a system should allow information consumers to �join late,� that is, to begin receiving information from the information source at a point in time later than the beginning of the information flow.
BRIEF SUMMARY OF THE INVENTION The present invention enables synchronization of dynamic data sets to multiple consumer nodes that adapts to available bandwidth by discarding transient states of the data set. The system fully utilizes the bandwidth available to each consumer node and is simple, efficient, and reliable. The system also has the ability to host multiple one-to-many sessions and allows consumer nodes to join an ongoing one-to-many session at any time. The system also supports end-to-end encryption of data.
In yet another aspect, the present invention relates to a communications service synchronizing consumer node representations and a source node representation of a changing data set. The communications service includes a receiving subsystem, a synchronization engine, and a transmission subsystem. The receiving subsystem receives at least one metadata packet identifying at least one data packet representing the current state of a changing data set and at least one data packet identified by the received at least one metadata packet. The synchronization engine selects one of the at least one metadata packet and the at least one data packet. The transmission subsystem transmits the selected one of the at least one metadata packet and the at least one data packet. In some embodiments, the communications service also includes a memory element. In still other embodiments, the synchronization engine selects one of the at least one metadata packet and the at least one data packet in response to a request received from a consumer node.
In still another aspect, the present invention relates a bandwidth-adaptive method for synchronizing a consumer node representation of a dynamic data set and the source node representation of the dynamic data set. First metadata information is received from a source node that identifies a first plurality of data packets that represent a state of at least a portion of a changing data set at a first point in time. Second metadata information is received from a source node that identifies a second plurality of data packets that represent a state of at least a portion of a changing data set at a second point in time. Third metadata information is generated that represents the difference between the first set of identified data packets and the second set of identified data packets, the third metadata information identifying a third plurality of data packets. The third metadata information at least one of the identified data packets from the third plurality of data packets is transmitted to a consumer node.
DETAILED DESCRIPTION OF THE INVENTION Referring now to FIG. 1, a networked system having a source node 100 in communication with a number of consumer nodes 150, 150′, 150″ is depicted. As shown in FIG. 1, the consumer nodes 150, 150′, 150″ may communicate with the source node 100 via networks of differing bandwidth. In the embodiment shown in FIG. 1 consumer node 150 communicates with the source node 100 via a high-bandwidth network 160, such as a local area network (LAN). Consumer node 150″ communicates with the source node 100 via a low-bandwidth network 180, such as a wireless network. Consumer node 150′ communicates with the source node 100 via a network 170 having bandwidth between the low-bandwidth network 180 and the high-bandwidth network 160, such as a Digital Subscriber Line (DSL) connection. Although only one source node 100 and three consumer nodes 150, 150′, 150″ are depicted in the embodiment shown in FIG. 1, it should be understood that the system may provide multiple ones of any or each of those components. For example, in one embodiment, the system includes multiple, logically-grouped source nodes 100, each of which may be available to provide data to a consumer node 150, 150′, 150″. In these embodiments, the logical group of source nodes 100 may be referred to as a �server farm� or �content farm.� In other embodiments, the source node 100 is a multi-user server having a virtual frame buffer, i.e., a presentation server.
The central processing unit 202 is any logic circuitry that responds to and processes instructions fetched from the main memory unit 204. In many embodiments, the central processing unit is provided by a microprocessor unit, such as: the 8088, the 80286, the 80386, the 80486, the Pentium, Pentium Pro, the Pentium II, the Celeron, or the Xeon processor, all of which are manufactured by Intel Corporation of Mountain View, Calif.; the 68000, the 68010, the 68020, the 68030, 68040, the PowerPC 601, the PowerPC604, the PowerPC604e, the MPC603e, the MPC603ei, the MPC603ev, the MPC603r, the MPC603p, the MPC740, the MPC745, the MPC750, the MPC755, the MPC7400, the MPC7410, the MPC7441, the MPC7445, the MPC7447, the MPC7450, the MPC7451, the MPC7455, the MPC7457 processor, all of which are manufactured by Motorola Corporation of Schaumburg, Ill.; the Crusoe TM5800, the Crusoe TM5600, the Crusoe TM5500, the Crusoe TM5400, the Efficeon TM8600, the Efficeon TM8300, or the Efficeon TM8620 processor, manufactured by Transmeta Corporation of Santa Clara, Calif.; the RS/6000 processor, the RS64, the RS 64 II, the P2SC, the POWER3, the RS64 III, the POWER3-11, the RS 64 IV, the POWER4, the POWER4+, the POWER5, or the POWER6 processor, all of which are manufactured by International Business Machines of White Plains, N.Y.; or the AMD Opteron, the AMD Athalon 64 FX, the AMD Athalon, or the AMD Duron processor, manufactured by Advanced Micro Devices of Sunnyvale, Calif.
In some embodiments the consumer node 150, 150′, 150″ is a mobile device, such as aJAVA-enabled cellular telephone or personal digital assistant (PDA), such as the i50sx, i55sr, i58sr, i85s, i88s, i90c, i95cl, or the im11000, all of which are manufactured by Motorola Corp. of Schaumburg, Ill., the 6035 or the 7135, manufactured by Kyocera of Kyoto, Japan, or the i300 or i330, manufactured by Samsung Electronics Co., Ltd., of Seoul, Korea. In other embodiments in which the client device 140 is mobile, it may be a personal digital assistant (PDA), such as the Tungsten W, the VII, the VIIx, the i705, or a combination PDA/telephone device such as the Treo 180, Treo 270 or Treo 600, all of which are manufactured by palmOne, Inc. of Milpitas, Calif.
In these embodiments, the consumer nodes 150, 150′, 150′ connect to the source node 100 using any one of a number of well-known protocols from the GSM or CDMA families, such as W-CDMA. These protocols support commercial wireless communication services and W-CDMA, in particular is the underlying protocol supporting i-Mode and mMode services, offered by NTT DoCoMo.
The source node 100 creates metadata information that identifies each of the data packets representing the current state of the dynamic data set. In the embodiment shown in FIG. 3, the metadata information comprises a metadata packet 310, 320, 330. Metadata packet 310 is created at time t1, and indicates that the state of the dynamic data set at time t1 is represented by data packet 0, data packet 1, and data packet 2. Similarly, metadata packet 330 indicates that state of the dynamic data set at time t2 is represented by data packet 0, data packet 4, and data packet 5. In other embodiments, instead of creating metadata packets that store metadata information, metadata information is included in data packets. For example, each data packet comprising a data set update may include a �metadata information header� identifying the update set with which the data packet is associated.
FIG. 3 also depicts the packet stream sent to a consumer node that �joins late.� As shown in FIG. 3, a consumer that joins at time t3 will receive the third metadata packet 330, as well as all the data packets identified by the third metadata packet. The data packets transmitted to the consumer node 150, 150′, 150″ by the communications service 300 may be retrieved from the storage element 310, recently received from the source node 100, or some combination of the two.
Delivery of data set updates from the communications service 300 may be performed using a �push� model, a �pull� model, or an �atomic push� model. In the �push� models, the communication service 300 transmits metadata information and data packets to the consumer node 150, 150′, 150″. The difference between the �push� model and the �atomic push� model is that, in the �atomic push� model, the communications service 300 commits to transmit every data packet identified by transmitted metadata information before beginning transmission of another data set. There is no such commitment in the �push� model, which means that data packets not successfully transmitted from a previous data set update may never be sent to the consumer node 150, 150′, 150″. In the �pull� model, the consumer node 150, 150′, 150″ receives from the communications service 300 the metadata information and then requests specific data packets from the communications service 300.
In certain embodiments, the information in metadata packets is encoded incrementally. In these certain embodiments, the �wire� representations of metadata packets may differ despite the fact that they encode the same information. A short example shows why this is the case. Over time, the source node 100 sends three metadata packets to the communications service 300. The contents of the metadata packets are sets of data packet numbers (1, 2, 3), (2, 3, 4) and (3, 4, 5). On the �wire,� each set is represented as a delta from the previous set. Thus, the source node 100 transmits the following metadata packets to the communications service 300: (1, 2, 3), (−1, +4) and (−2, +5), where �−� and �+� indicate removal or addition of a packet number from/to the previous set. If a consumer node 150 skips the contents of the second metadata packet, it receives metadata information describing sets (1, 2, 3) and (3, 4, 5). On the �wire,� these two sets are represented incrementally as (1, 2, 3) and (−1, +4, −2, +5). While the source node 100 transmitted the contents of the second metadata packet to the communications service 300 as (−2, +5), the communications service 300 transmitted the same information to the consumer node 150 as (−1, +4, −2, +5).
In this embodiment, each pair of communication services 300 agrees between themselves on a direction for data flow. For example, communication service 300 and communication service 300′ may agree between themselves that, for the purposes of their point-to-point link, communication service 300 is the �sender� and communication service 300′ is the �receiver,� meaning that the �sender� will perform the role of the communication service 300 described in connection with FIG. 3 and the �receiver� will perform the role of the consumer node 150 described in connection with FIG. 3. The communication server 300′, however, will perform the role of a �sender� when communicating with consumer nodes 150, 150′, 150″
EXAMPLES The following examples of content-sharing systems are intended to illustrate the various ways in which the described systems and methods can be used and not to limit the scope of the described invention.
Example 1 The described systems and methods can be used to implement a system for sharing screen data that allows several client machines to display the screen data from a single server. This system is useful in a number of broadcast or �multicast� contexts and, in particular, it is useful in a conferencing context to allow multiple individuals to view the same graphical data during the conference.
In one particular embodiment, metadata information is formatted into packets and metadata packets are associated with monotonically increasing numbers. As described above, each metadata packet describes the set of tiles comprising the current screen display state. In this embodiment the communications service 300 stores, for each consumer node 150, the number of the latest metadata packet that has been transmitted to that consumer node 150, as well as the set of all data packets that have been delivered to the consumer node. When the communications service 300 determines that it is time to send an update to a consumer node 150, or upon receiving a request from a consumer node 150 for a screen update, the communications service first determines if the latest metadata packet (that is, the metadata packet having the highest number associated with it) has been transmitted to the consumer node 150. If not, the communications service 300 transmits the most recent metadata packet to the consumer node 150. The communications service 300 also transmits the set of data packets identified by the metadata packet, unless a particular data packet has already been transmitted to the consumer node 150.
Example 2 In another example the described synchronization systems and methods are used to implement a chat system. In this system, a chat participant adds text or other content to an on going session and identifies the added content as a data packet. In one embodiment, the participant also associates a timestamp with the added content. The participant then transmits metadata information identifying the current state of the chat. In one embodiment, the metadata information identifies the current state of the chat session as the recently added packet together with every previous data packet added to the chat.
A �late joiner� to the chat session will receive metadata information identifying all data packets representing the chat session. The late joiner will either request (i.e., pull) or be sent (i.e., push) all the data packets identified by the metadata information and will display in them in timestamp order.
Example 3 In another example, the synchronization systems and methods described above may be used to implement a remote presentation system. In this example, a presenter converts a slide presentation into a series of page-by-page images. As the presenter displays a slide, the page image representing that slide is transmitted to all viewers. In many embodiments, each slide is represented by multiple data packets.
In this example, the presenter atomically pushes the currently displayed slide by atomically pushing metadata information identifying each data packet representing the slide and pushing each data packet not yet transmitted to the receiver. The presenter may also push the previous slide and the next slide. In further embodiments, viewers may �pull� other pages in the presentation if extra bandwidth is available. Information that may be inserted into a laser pointer data packet includes, x coordinate, y coordinate, time, document, or page number.
In addition to multicasting slide presentation, this exemplary embodiment may be used to share other page-based documents. This exemplary embodiment may also support a �laser pointer� feature in which the position of a presenters �laser pointer� is also transmitted to all viewers, allowing the presenter to direct viewer's attention to areas of interest in the document.
Example 4 In still another example, the synchronization methods and systems described above may be used to implement a system allowing multiple users to annotate a document. In this example, each annotation is represented by a data packet. Annotation data packets may include information regarding the time the annotation was made and by whom. Other annotation data packet information may include the document on which the annotation is made, the page number of the document on which the annotation is made, the pen used to make the annotation, the x coordinate of the annotation, or the y coordinate of the annotation.
In this example, the metadata information identifies all annotation data packets. In this manner, a �late joiner� will receive all annotations made to the document.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS4479195Sep 7, 1982Oct 23, 1984At&T Bell LaboratoriesData conference systemUS4650929Feb 28, 1985Mar 17, 1987Heinrich-Hertz-Institut Fur Nachrichtentechnik Berlin GmbhCommunication system for videoconferencingUS4748618May 21, 1986May 31, 1988Bell Communications Research, Inc.Telecommunications interfaceUS4922486Mar 31, 1988May 1, 1990American Telephone And Telegraph CompanyUser to network interface protocol for packet communications networksUS4928247Apr 20, 1988May 22, 1990Digital Equipment CorporationMethod and apparatus for the continuous and asynchronous traversal and processing of graphics data structuresUS4937036Mar 21, 1988Jun 26, 1990Xerox CorporationConcurrent display of data from two different display processors and user interface thereforeUS4956819Mar 16, 1988Sep 11, 1990Siemens AktiengesellschaftCircuit configuration and a method of testing storage cellsUS4965819Sep 22, 1988Oct 23, 1990Docu-Vision, Inc.Video conferencing system for courtroom and other applicationsUS4995071May 30, 1989Feb 19, 1991Telenorma Telefonbau Und Normalzeit GmbhVideo conference installationUS5072412Mar 25, 1987Dec 10, 1991Xerox CorporationUser interface with multiple workspaces for sharing display system objectsUS5072442Feb 28, 1990Dec 10, 1991Harris CorporationMultiple clock rate teleconferencing networkUS5252056Aug 6, 1992Oct 12, 1993Ciba-Geigy CorporationContact lens casting mouldUS5253056Jul 2, 1992Oct 12, 1993At&T Bell LaboratoriesSpatial/frequency hybrid video coding facilitating the derivatives of variable-resolution imagesUS5293470Jan 28, 1991Mar 8, 1994International Business Machines CorporationData processing system for defining and processing objects in response to system user operationsUS5315633Dec 20, 1991May 24, 1994Unisys CorporationDigital video switch for video teleconferencingUS5357511Mar 22, 1993Oct 18, 1994Peak Audio, Inc.Distributed processing in a digital audio mixing networkUS5371544Feb 7, 1992Dec 6, 1994At&T Corp.Geometric vector quantizationUS5382972Sep 8, 1992Jan 17, 1995Kannes; DenoVideo conferencing system for courtroom and other applicationsUS5392223Jul 29, 1992Feb 21, 1995International Business Machines Corp.For coupling workstation units in a systemUS5392284Mar 3, 1994Feb 21, 1995Canon Kabushiki KaishaMulti-media communication deviceUS5408274Mar 11, 1993Apr 18, 1995The Regents Of The University Of CaliforniaMethod and apparatus for compositing compressed video dataUS5416520Nov 30, 1993May 16, 1995Intel CorporationMultiple encoder output buffer apparatus for differential coding of video informationUS5446491Dec 21, 1993Aug 29, 1995Hitachi, Ltd.Multi-point video conference system wherein each terminal comprises a shared frame memory to store information from other terminalsUS5586257May 5, 1994Dec 17, 1996Perlman; Stephen G.Network architecture to support multiple site real-time video gamesUS5689666Jul 12, 1996Nov 18, 19973MMethod for handling obscured items on computer displaysUS5758110Apr 30, 1997May 26, 1998Intel CorporationApparatus and method for application sharing in a graphic user interfaceUS5838664Jul 17, 1997Nov 17, 1998Videoserver, Inc.For receiving compressed video signals from terminalsUS5896500Jun 7, 1996Apr 20, 1999Collaboration Properties, Inc.System for call request which results in first and second call handle defining call state consisting of active or hold for its respective AV deviceUS5909559Apr 4, 1997Jun 1, 1999Texas Instruments IncorporatedBus bridge device including data bus of first width for a first processor, memory controller, arbiter circuit and second processor having a different second data widthUS5915091Jun 11, 1996Jun 22, 1999Collaboration Properties, Inc.Synchronization in video conferencingUS5938724Apr 2, 1997Aug 17, 1999Ncr CorporationRemote collaboration system that stores annotations to the image at a separate location from the imageUS5990852Oct 31, 1996Nov 23, 1999Fujitsu LimitedDisplay screen duplication system and methodUS6016535Oct 11, 1995Jan 18, 2000Citrix Systems, Inc.Method for dynamically and efficiently caching objects by subdividing cache memory blocks into equally-sized sub-blocksUS6112085Sep 4, 1997Aug 29, 2000Amsc Subsidiary CorporationVirtual network configuration and management system for satellite communication systemUS6155840Sep 18, 1998Dec 5, 2000At Home CorporationSystem and method for distributed learningUS6157935Dec 17, 1996Dec 5, 2000Tran; Bao Q.Remote data access and management systemUS6167432Feb 29, 1996Dec 26, 2000Webex Communications, Inc.,Method for creating peer-to-peer connections over an interconnected network to facilitate conferencing among usersUS6202060Oct 29, 1996Mar 13, 2001Bao Q. TranData management systemUS6226618Aug 13, 1998May 1, 2001International Business Machines CorporationElectronic content delivery systemUS6233606Dec 1, 1998May 15, 2001Microsoft CorporationAutomatic cache synchronizationUS6256773Aug 31, 1999Jul 3, 2001Accenture LlpSystem, method and article of manufacture for configuration management in a development architecture frameworkUS6289382Aug 31, 1999Sep 11, 2001Andersen Consulting, LlpSystem, method and article of manufacture for a globally addressable interface in a communication services patterns environmentUS6295551May 7, 1997Sep 25, 2001Cisco Technology, Inc.Call center system where users and representatives conduct simultaneous voice and joint browsing sessionsUS6308199Aug 7, 1998Oct 23, 2001Fuji Xerox Co., Ltd.Cooperative work support system for managing a window displayUS6324647Aug 31, 1999Nov 27, 2001Michel K. Bowman-AmuahSystem, method and article of manufacture for security management in a development architecture frameworkUS6329984Nov 26, 1997Dec 11, 2001Intel CorporationUser input routing with remote control application sharingUS6332163Sep 1, 1999Dec 18, 2001Accenture, LlpMethod for providing communication services over a computer network systemUS6339832Aug 31, 1999Jan 15, 2002Accenture LlpException response table in environment services patternsUS6343313Mar 25, 1997Jan 29, 2002Pixion, Inc.Computer conferencing system with real-time multipoint, multi-speed, multi-stream scalabilityUS6370573Aug 31, 1999Apr 9, 2002Accenture LlpSystem, method and article of manufacture for managing an environment of a development architecture frameworkUS6397036Aug 22, 2000May 28, 2002Mindblazer, Inc.Systems, methods and computer program products for collaborative learningUS6400996Feb 1, 1999Jun 4, 2002Steven M. HoffbergAdaptive pattern recognition based control system and methodUS6405364Aug 31, 1999Jun 11, 2002Accenture LlpBuilding techniques in a development architecture frameworkUS6430567Jun 30, 1998Aug 6, 2002Sun Microsystems, Inc.Method and apparatus for multi-user awareness and collaborationUS6434568Aug 31, 1999Aug 13, 2002Accenture LlpInformation services patterns in a netcentric environmentUS6434628Aug 31, 1999Aug 13, 2002Accenture LlpCommon interface for handling exception interface name with additional prefix and suffix for handling exceptions in environment services patternsUS6438594Aug 31, 1999Aug 20, 2002Accenture LlpDelivering service to a client via a locally addressable interfaceUS6442748Aug 31, 1999Aug 27, 2002Accenture LlpSystem, method and article of manufacture for a persistent state and persistent object separator in an information services patterns environmentUS6473794May 27, 1999Oct 29, 2002Accenture LlpSystem for establishing plan to test components of web based framework by displaying pictorial representation and conveying indicia coded components of existing network frameworkUS6477580Aug 31, 1999Nov 5, 2002Accenture LlpSelf-described stream in a communication services patterns environmentUS6477665Aug 31, 1999Nov 5, 2002Accenture LlpSystem, method, and article of manufacture for environment services patterns in a netcentic environmentUS6496850Aug 31, 1999Dec 17, 2002Accenture LlpClean-up of orphaned server contextsUS6502213Aug 31, 1999Dec 31, 2002Accenture LlpSystem, method, and article of manufacture for a polymorphic exception handler in environment services patternsUS6514085Jul 30, 1999Feb 4, 2003Element K Online LlcMethods and apparatus for computer based training relating to devicesUS6519571May 27, 1999Feb 11, 2003Accenture LlpDynamic customer profile managementUS6529909Aug 31, 1999Mar 4, 2003Accenture LlpMethod for translating an object attribute converter in an information services patterns environmentUS6529948Aug 31, 1999Mar 4, 2003Accenture LlpMulti-object fetch componentUS6536037May 27, 1999Mar 18, 2003Accenture LlpIdentification of redundancies and omissions among components of a web based architectureUS6539396Aug 31, 1999Mar 25, 2003Accenture LlpMulti-object identifier system and method for information service pattern environmentUS6549949Aug 31, 1999Apr 15, 2003Accenture LlpFixed format stream in a communication services patterns environmentUS6550057Aug 31, 1999Apr 15, 2003Accenture LlpPiecemeal retrieval in an information services patterns environmentUS6567813Dec 29, 2000May 20, 2003Webex Communications, Inc.Quality of service maintenance for distributed collaborative computingUS6570590Oct 6, 1999May 27, 2003Microsoft CorporationApplication sharing in a frameUS6571282Aug 31, 1999May 27, 2003Accenture LlpBlock-based communication in a communication services patterns environmentUS6573907Oct 4, 1999Jun 3, 2003Obvious TechnologyNetwork distribution and management of interactive video and multi-media containersUS6578068Aug 31, 1999Jun 10, 2003Accenture LlpLoad balancer in environment services patternsUS6584493Sep 14, 1999Jun 24, 2003Microsoft CorporationMultiparty conferencing and collaboration system utilizing a per-host model command, control and communication structureUS6584569Mar 5, 2001Jun 24, 2003Sanctum Ltd.System for determining web application vulnerabilitiesUS6601087Nov 17, 1999Jul 29, 2003Webex Communications, Inc.Instant document sharingUS6601192Aug 31, 1999Jul 29, 2003Accenture LlpAssertion component in environment services patternsUS6601234Aug 31, 1999Jul 29, 2003Accenture LlpAttribute dictionary in a business logic services environmentUS6606660Aug 31, 1999Aug 12, 2003Accenture LlpStream-based communication in a communication services patterns environmentUS6606744Nov 22, 1999Aug 12, 2003Accenture, LlpProviding collaborative installation management in a network-based supply chain environmentUS6615166May 27, 1999Sep 2, 2003Accenture LlpPrioritizing components of a network framework required for implementation of technologyUS6615199Aug 31, 1999Sep 2, 2003Accenture, LlpAbstraction factory in a base services pattern environmentUS6615253Aug 31, 1999Sep 2, 2003Accenture LlpEfficient server side data retrieval for execution of client side applicationsUS6629081Dec 22, 1999Sep 30, 2003Accenture LlpAccount settlement and financing in an e-commerce environmentUS6636242Aug 31, 1999Oct 21, 2003Accenture LlpView configurer in a presentation services patterns environmentUS6640145Jun 3, 2002Oct 28, 2003Steven HoffbergMedia recording device with packet data interfaceUS6640238Aug 31, 1999Oct 28, 2003Accenture LlpActivity component in a presentation services patterns environmentUS6640244Aug 31, 1999Oct 28, 2003Accenture LlpRequest batcher in a transaction services patterns environmentUS6640249Aug 31, 1999Oct 28, 2003Accenture LlpPresentation services patterns in a netcentric environmentUS6654032Dec 23, 1999Nov 25, 2003Webex Communications, Inc.Instant sharing of documents on a remote serverUS6662357Aug 31, 1999Dec 9, 2003Accenture LlpManaging information in an integrated development architecture frameworkUS6669485May 28, 2002Dec 30, 2003Mindblazer, Inc.Systems, methods and computer program products for collaborative learningUS6671818Nov 22, 1999Dec 30, 2003Accenture LlpProblem isolation through translating and filtering events into a standard object format in a network based supply chainUS6697824Aug 31, 1999Feb 24, 2004Accenture LlpRelationship management in an E-commerce application frameworkUS6701345Apr 13, 2000Mar 2, 2004Accenture LlpProviding a notification when a plurality of users are altering similar data in a health care solution environmentUS6715145Aug 31, 1999Mar 30, 2004Accenture LlpProcessing pipeline in a base services pattern environmentUS7222305 *Mar 13, 2003May 22, 2007Oracle International Corp.Method of sharing a desktop with attendees of a real-time collaborationUS7233592 *Feb 17, 2000Jun 19, 2007Fujitsu LimitedPacket transfer control circuit* Cited by examinerNon-Patent CitationsReference1"Video Code Chip Set Provides MPEG, p.*64 and JPEG Compliance," Electrical Design News, 37(9): 103-104, 1992.2Cabri et al. "Supporting cooperative WWW browsing: a proxy based approach," Proceedings Euromicro Workshop on Parallel and Distributed Processing, Feb. 3, 1999.3Communication Relating to the Results of the Partial International Search for PCT Application No. PCT/US2006/019368; mailed on Nov. 13, 2006. (3 pgs.).4Examination Report issued in Australian Patent Application No. 2005239573, mailed Jun. 25, 2009, 16 pages.5Examination Report issued in Australian Patent Application No. 2005239573, mailed Nov. 20, 2008, 2 pages.6Examination Report issued in Australian Patent Application No. 2005239573, mailed Sep. 5 ,2008, 2 pages.7Examination Report issued in European Patent Application No. 05736265.9, mailed Oct. 26, 2009, 7 pages.8Examination Report issued in European Patent Application No. 06760217.7, mailed Oct. 22, 2008, 3 pages.9Gharavi, H. and Partovi, M.H., "Video Coding And Distribution Over ATM For Multipoint Teleconferencing," IEE, 1-7, 1993.10Gorokhovsky et al. "Windows User Interface Technical Articles: Layered Windows" [online] Microsoft Corporation, Jan. 2000 [retrieved Nov. 8, 2007], Retreived from the Internet: , 7 pgs.11Gorokhovsky et al. "Windows User Interface Technical Articles: Layered Windows" [online] Microsoft Corporation, Jan. 2000 [retrieved Nov. 8, 2007], Retreived from the Internet: <http://msdn2.microsoft.com/en-us/library/ms997507(d=printer).aspx>, 7 pgs.12Gorokhovsky, V. et al. "Layered Windows-A New Way to Use Translucency and Transparency Effects in Windows Applications" [online], [retrieved on Oct. 24, 2006]. Retrieved from the Internet: (4 pgs.).13Gorokhovsky, V. et al. "Layered Windows�A New Way to Use Translucency and Transparency Effects in Windows Applications" [online], [retrieved on Oct. 24, 2006]. Retrieved from the Internet: <URL: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwui/html/layerwin.asp> (4 pgs.).14Horn, et al., "A Standards-Based Multimedia Conferencing Bridge," AT&T Techn. Jour., 41-49, 1993.15International Search Report for PCT Application No. PCT/US2005/011905, mailed on Jul. 25, 2005, 3 pages.16International Search Report for PCT Application No. PCT/US2006/019368, mailed on Nov. 14, 2007, 5 pages.17International Search Report for PCT Application No. PCT/US2006/019370; mailed on Sep. 26, 2006 (4 pgs.).18International Search Report for PCT Application No. PCT/US2006/019540, mailed on Dec. 20, 2006, 2 pgs.19International Searching Authority, "International Search Report," PCT Application No. PCT/US05/12078, mailed on Jan. 25, 2006, 3 pgs.20International Searching Authority, "Written Opinion," PCT Application No. PCT/US05/12078, mailed on Jan. 25, 2006, 7 pgs.21Krause, R., "Indo, H.320 Silicon Pursued," Electronic News, 40(2023): 1-2, 1994.22Supplemental European Search Report issued in European Patent Application No. 05736265.9, mailed Jun. 18, 2009, 6 pages.23Written Opinion for PCT Application No. PCT/US2005/011905, mailed on Jul. 25, 2005, 6 pages.24Written Opinion for PCT Application No. PCT/US2006/019368, mailed on Nov. 14, 2007, 7 pages.25Written Opinion for PCT Application No. PCT/US2006/019540, mailed on Dec. 20, 2006, 6 pgs.26Written Opinion of the International Searching Authority for PCT Application No. PCT/US2006/019370; mailed on Sep. 26, 2006 (7 pgs.).Referenced byCiting PatentFiling datePublication dateApplicantTitleUS7970017 *Jul 13, 2005Jun 28, 2011At&T Intellectual Property I, L.P.Peer-to-peer synchronization of data between devicesUS8407605Apr 3, 2009Mar 26, 2013Social Communications CompanyApplication sharing* Cited by examinerClassifications U.S. Classification709/205, 370/260International ClassificationH04L12/56, H04Q11/00, G06F15/16, H04L12/16Cooperative ClassificationH04L67/1095, H04L12/56, G06Q10/10, H04L12/1822European ClassificationH04L12/56, H04L12/18D2, H04L29/08N9RLegal EventsDateCodeEventDescriptionAug 21, 2013FPAYFee paymentYear of fee payment: 4Sep 13, 2004ASAssignmentOwner name: CITRIX SYSTEMS, INC., FLORIDAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SCHAUSER, KLAUS E.;CHRISTIANSEN, BERND OLIVER;VON EICKEN, THORSTEN;AND OTHERS;REEL/FRAME:015120/0696;SIGNING DATES FROM 20040902 TO 20040908Owner name: CITRIX SYSTEMS, INC.,FLORIDAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SCHAUSER, KLAUS E.;CHRISTIANSEN, BERND OLIVER;VON EICKEN, THORSTEN AND OTHERS;SIGNED BETWEEN 20040902 AND 20040908;US-ASSIGNMENT DATABASE UPDATED:20100316;REEL/FRAME:15120/696Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SCHAUSER, KLAUS E.;CHRISTIANSEN, BERND OLIVER;VON EICKEN, THORSTEN;AND OTHERS;SIGNING DATES FROM 20040902 TO 20040908;REEL/FRAME:015120/0696RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services©2012 Google