IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0735590
(2003-12-12)
|
등록번호 |
US-7426578
(2008-09-16)
|
발명자
/ 주소 |
- Jones,Dan
- Vernon,Todd
- Kriese,Jeffrey
|
출원인 / 주소 |
|
인용정보 |
피인용 횟수 :
36 인용 특허 :
72 |
초록
▼
A source communication device comprises a cluster manager to group destination device connections into a plurality of performance clusters. The cluster manager then causes a synchronization mechanism to be generated for each performance cluster. Each synchronization cluster can then allow data to be
A source communication device comprises a cluster manager to group destination device connections into a plurality of performance clusters. The cluster manager then causes a synchronization mechanism to be generated for each performance cluster. Each synchronization cluster can then allow data to be optimally shared between the source device and destination devices within a given cluster.
대표청구항
▼
What is claimed: 1. A method for sharing and synchronizing data between a source device and a plurality of destination devices in a network communication system, the method comprising: determining performance similarities for a plurality of communication connections, each communication connection c
What is claimed: 1. A method for sharing and synchronizing data between a source device and a plurality of destination devices in a network communication system, the method comprising: determining performance similarities for a plurality of communication connections, each communication connection connecting the source device and at least one of the plurality of destination devices; creating, dynamically, one or more performance clusters based on performance similarities; assigning each of the plurality of communication connections into one of the performance clusters based on the determined performance similarities; and assigning a synchronization mechanism to each of the performance clusters, wherein each synchronization mechanism is coupled with a source data buffer in the source device, the source data buffer containing the data to be shared with each destination device wherein a destination device that does not respond within a timeout threshold is removed from its performance cluster but when the removed destination device responds to the timeout threshold it receives full-buffer updates until such point as a recent average latency performance of the responding destination device is at a level that merits insertion back into one of the performance clusters. 2. The method of claim 1, wherein determining the performance similarities for the plurality of communication connections comprises determining the bandwidth capabilities for each of the plurality of communication connections. 3. The method of claim 1, wherein determining the performance similarities for the plurality of communication connections comprises determining the latency associated with each of the plurality of communication connections. 4. The method of claim 1, wherein determining the performance similarities for the plurality of communication connections comprises determining connection security associated with each of the plurality of communication connections. 5. The method of claim 1, wherein determining the performance similarities for the plurality of communication connections comprises determining an error rate associated with each of the plurality of communication connections. 6. The method of claim 1, further comprising detecting a change in performance capabilities for one of the plurality of communication connections and assigning the communication connection to another performance cluster based on the performance capabilities subsequent to the change. 7. The method of claim 1, further comprising detecting a new communication connection, determining performance capabilities of the new communication connection, and adding the new communication connection to a performance cluster based on the performance capabilities of the new communication connection. 8. The method of claim 1, further comprising replicating the entire source data buffer on each of the plurality of destination devices and then updating the destination devices only when data in the source data buffer has changed. 9. The method of claim 1, further comprising replicating the entire source data buffer on each of the plurality of destination devices assigned to a performance cluster, and then updating such destination devices when at least one of the destination devices assigned to a performance cluster requests an update. 10. The method of claim 1, further comprising replicating the entire source data buffer on the each of the plurality of destination devices assigned to a performance cluster, and updating such destination devices when all such destination devices have requested an update. 11. The method of claim 1, wherein determining the performance similarities for each of the plurality of communication connections comprises: assigning all of the plurality of communication connections to a primary performance cluster; and gathering an average latency for each of the plurality of communication connections. 12. The method of claim 11, further comprising assigning the plurality of communication connections into the performance clusters based on the average latency of each of the plurality of communication connections. 13. The method of claim 12, wherein assigning the plurality of communication connections into the performance clusters further comprises: determining a mean latency for the primary performance cluster based on the average latencies for each of the plurality of communication connections; determining a standard deviation of the average latency for each of the plurality of communication connections; relative to the mean latency for the primary performance cluster; and determining the number of performance clusters required based on the mean latency for the primary performance cluster and standard deviation of the average latency of each of the plurality of communication connections. 14. The method of claim 1, wherein assigning the plurality of communication connections into performance clusters further comprises assigning the communication connections using a sum-of-squares determination. 15. A source device in communication with a plurality of destination devices in a collaborative communication session, each destination device in communication with the source device via an associated communication connections such that data in the source device can be shared with each destination device in a timely manner, the source device comprising: a cluster manager configured to: determine connection characteristics for each of the plurality of destination devices and associated communication connections, dynamically create one or more performance clusters based on the determined connection characteristics, and assign each of the communication connections to one of the created performance clusters based on performance similarities of the determined connection characteristics of the destination devices and associated communication connections assigned to each performance cluster; a source data buffer containing the data to be shared with each of the plurality of destination devices; and a plurality of synchronization mechanisms coupled with the source data buffer, each of the plurality of synchronization mechanisms corresponding to one of the performance clusters, wherein each of said synchronization mechanisms is coupled with the source data buffer thereby synchronizing for each performance cluster the data sent to the destination devices associated with communication connections assigned to said performance cluster wherein a destination device that does not respond within a timeout threshold is removed from its performance cluster but when the removed destination device responds to the timeout threshold it receives full-buffer updates until such point as a recent average latency performance of the responding destination device is at a level that merits insertion back into one of the performance clusters. 16. The source device of claim 15, wherein the cluster manager is further configured to assign a synchronization mechanism to each of the performance clusters. 17. The source device of claim 16, wherein at least one of the plurality of synchronization mechanisms is further configured to replicate the entire source data buffer on each of the destination devices assigned to the synchronization mechanism performance cluster and then update the destination devices only when the data in the source data buffer has changed. 18. The source device of claim 16, wherein at least one of the plurality of synchronization mechanisms is further configured to replicate the entire source data buffer on each of the destination devices assigned to the synchronization mechanism performance cluster and then update the destination devices only when at least one of such destination devices requests an update. 19. The source device of claim 16, wherein at least one of the plurality of synchronization mechanisms is further configured to replicate the entire source data buffer on each of the destination devices assigned to the synchronization mechanism performance cluster, and wherein each of the plurality of synchronization mechanisms is further configured to update the destination devices interfaced with the synchronization mechanism only when all such destination devices have requested an update. 20. The source device of claim 15, wherein each of the plurality of synchronization mechanisms is configured to provide computations and protocols needed to communicate the data from the source device to each destination device over the plurality of communication connections. 21. The source device of claim 15, wherein the performance clusters include a high performance cluster. 22. The source device of claim 15, wherein the performance clusters include an intermediate performance cluster. 23. The source device of claim 15, wherein the performance clusters include a low performance cluster. 24. The source device of claim 15, wherein at least one of the performance similarities for the plurality of communication connections is determined based on the bandwidth capability of each of the plurality of communication connections. 25. The source device of claim 15, wherein at least one of the performance similarities for the plurality of communication connections is determined based on the latency of each of the plurality of communication connections. 26. The source device of claim 15, wherein at least one of the performance similarities is determined based on the connection security of each of the plurality of communication connections. 27. The source device of claim 15, wherein at least one of the performance similarities is determined based on the error rate of each of the plurality of communication connections. 28. The source device of claim 15, wherein the cluster manager is further configured to detect a change in connection characteristics for any of the plurality of communication connections and to assign the communication connection to one of the performance clusters based on the changed connection characteristics. 29. The source device of claim 15, wherein the cluster manager is further configured to detect a new communication connection, determine the performance capabilities of the new communication connection, and add the new communication connection to one of the performance clusters based on the performance capabilities of the new communication connection. 30. The source device of claim 15, wherein the performance similarities for the plurality of communication connections are determined through the steps of: assigning all of the plurality of communication connections to a primary performance cluster; and gathering an average latency for each of the plurality of communication connections. 31. The source device of claim 30, wherein the cluster manager is further configured to assign the plurality of communication connections into each of the performance clusters based on the average latency of each of the plurality of communication connections. 32. The source device of claim 30, wherein the plurality of communication connections are assigned into the performance clusters through the steps of: determining time-average latencies for each of the plurality of communication connections; determining a primary cluster mean latency for the primary performance cluster based on the time-average latencies for each of the plurality of communication connections assigned to the primary cluster; determining the standard deviation of the time-average latencies for each of the plurality of communication connections relative to the primary cluster mean latency; and determining the number of performance clusters required based on the primary cluster mean latency and the standard deviations of the time-average latencies for each of the plurality of communication connections. 33. The source device of claim 32, wherein the plurality of communication connections are assigned into the performance clusters through further steps of: (a) creating a number of performance clusters; (b) assigning each of the communication connections to one of the performance clusters; (c) calculating the cluster mean latency for each performance cluster based on the time-average latency of each of the connections assigned to the performance cluster; (d) repeating step (c) for all the of the created performance clusters; (e) assigning each communication connection to the performance cluster wherein the cluster mean latency is closest to the connection time-average latency; and (f) repeating steps (c), (d) and (e) until no change in cluster assignment occurs in step (e). 34. The source device of claim 1, wherein the cluster manager is further configured to determine the number of performance clusters to be created and synchronization mechanisms to be assigned by applying a pre-determined function, the function comprising: a source device resource priority corresponding to the relative importance of minimizing resource usage on the source device; and a destination device service priority corresponding to the relative importance of providing timely updates to the plurality of connected destination devices. 35. The source device of claim 34, wherein the cluster manager is further configured to determine the number of the performance clusters and synchronization mechanisms by selecting the minimum of: the maximum number corresponding to the resources available on the source device; a number corresponding to a pre-determined percentage of available source device resources; the minimum number that provides timely updates to all of the plurality of destination devices; and a pre-defined limit number. 36. The source device of claim 34, wherein the cluster manager is further configured to increase the number of performance clusters if the destination device service priority is higher than the source device resource priority, and decrease the number of performance clusters if the destination device service priority is lower than the source device resource priority. 37. The source device of claim 1, wherein each of the performance clusters is pre-defined to be associated with a subset of communication connections having similar performance capabilities. 38. The source device of claim 1, wherein the data in the source data buffer comprises audio and video data in the collaborative communication session. 39. The source device of claim 1, wherein the data in the source data buffer comprises image data shared in the collaborative communication session. 40. The source device of claim 39, wherein the image data represents a region displayed on a computer screen, wherein said region and said shared image data are updated at least once while being shared. 41. The source device of claim 1, wherein the sharing of data in the source data buffer with the destination devices provides a display sharing function in the collaborative communication session. 42. A network communication system for facilitating data synchronization in a collaborative web session, the system comprising: a source device configured to communicate with a plurality of destination devices, each via one of a plurality of communication connections, wherein each destination device has a destination synchronization mechanism and a destination data buffer, the source device comprising: a cluster manager configured to determine performance similarities for the plurality of communication connections and to assign each of the plurality of communication connections into one of pre-defined performance clusters based on the determined performance similarities, and wherein the cluster manager is further configured to dynamically create performance clusters as system requirements dictate; a source data buffer containing data to be shared with each destination data buffer of each of the plurality of the destination devices; and a plurality of source synchronization mechanisms coupled with the source data buffer, further coupled with the plurality of communication connections, each of the plurality of source synchronization mechanisms corresponding to one of the performance clusters wherein a destination device that does not respond within a timeout threshold is removed from its performance cluster but when the removed destination device responds to the timeout threshold it receives full-buffer updates until such point as a recent average latency performance of the responding destination device is at a level that merits insertion back into one of the performance clusters. 43. The network communication system of claim 42, wherein the cluster manager is further configured to assign one of the plurality of source synchronization mechanisms to each of the performance clusters. 44. The network communication system of claim 43, wherein each of the plurality of source synchronization mechanisms and each of the destination synchronization mechanisms are configured to provide computations and protocols needed to communicate data over the plurality of communication connections. 45. The network communication system of claim 42, wherein some of the plurality of destination devices use high bandwidth connections with the source device, and wherein some of the performance clusters are high performance clusters configured to service the high bandwidth connections. 46. The network communication system of claim 42, wherein some of the plurality of destination devices use intermediate bandwidth connections with the source device, and wherein some of the performance clusters are intermediate performance clusters configured to service the intermediate bandwidth connections. 47. The network communication system of claim 42, wherein some of the plurality of destination devices use low bandwidth connections with the source device, and wherein some of the performance clusters are low performance clusters configured to service the low bandwidth connections. 48. The network communication system of claim 42, wherein the performance similarities for each of the plurality of communication connections are determined based on the bandwidth of each of the plurality of communication connections. 49. The network communication system of claim 42, wherein the performance similarities for the plurality of communication connections are determined based on the latency of each of the plurality of communication connections. 50. The network communication system of claim 42, wherein the performance similarities for the plurality of communication connections are determined based on the connection security of each of the plurality of communication connections. 51. The network communication system of claim 42, wherein the performance similarities for the plurality of communication connections are determined based on the error rate of each of the plurality of communication connections. 52. The network communication system of claim 42, wherein the cluster manager is further configured to detect a change in performance capabilities for one of the plurality of communication connections and to assign the communication connection to another performance cluster based on the performance capabilities subsequent to the change. 53. The network communication system of claim 42, wherein the cluster manager is further configured to detect a new communication connection, determine the performance capabilities of the new communication connection, and add the new communication connection to a performance cluster based on the performance capabilities of the new communication connection. 54. The network communication system of claim 42, wherein at least one of the plurality of synchronization mechanisms is further configured to replicate the entire source data buffer on each of the destination devices assigned to the synchronization mechanism performance cluster and then update the destination devices only when the data in the source data buffer has changed. 55. The network communication system of claim 42, wherein at least one of the plurality of synchronization mechanisms is further configured to replicate the entire source data buffer on each of the destination devices assigned to the synchronization mechanism performance cluster and then update the destination devices only when at least one of such destination devices requests an update. 56. The network communication system of claim 42, wherein at least one of the plurality of synchronization mechanisms is further configured to replicate the entire source data buffer on each of the destination devices assigned to the synchronization mechanism performance cluster, and wherein each of the plurality of synchronization mechanisms is further configured to update the destination devices interfaced with the synchronization mechanism only when all such destination devices have requested an update. 57. The network communication system of claim 42, wherein the performance similarities for the plurality of connections are determined through the steps of: assigning all of the plurality of communication connections to a primary performance cluster; and gathering an average latency for each of the plurality of communication connections. 58. The network communication system of claim 57, wherein the cluster manager is further configured to assign the plurality of communication connections into performance clusters based on the average latency of each of the plurality of communication connections. 59. The network communication system of claim 57, wherein the plurality of communication connections are assigned into performance clusters through the steps of: determining a mean latency for the primary performance cluster based on the average latencies for each of the plurality of communication connections; determining a standard deviation of the average latency for each of the plurality of communication connections relative to the mean latency for the primary performance cluster; determining the number of performance clusters required based on the mean latency and standard deviation. 60. The network communication system of claim 42, wherein the plurality of communication connections are assigned into performance clusters via a further step of assigning the communication connections using a sum-of-squares determination. 61. The network communication system of claim 42, wherein the cluster manager is further configured to determine the number of performance clusters to be created and synchronization mechanisms to be assigned by applying a pre-determined function, the function comprising: a source device resource priority corresponding to the relative importance of minimizing resource usage on the source device; and a destination device service priority corresponding to the relative importance of providing timely updates to the plurality of connected destination devices. 62. The network communication system of claim 61, wherein the cluster manager is further configured to increase the number of the performance clusters if the destination device service priority is higher than the source device resource priority, and decrease the number of the performance clusters if the destination device service priority is lower than the source device resource priority. 63. The network communication system of claim 42, further comprising a remote source device, the remote source device configured to communicate with the plurality of destination devices via the source device. 64. The network communication system of claim 63, wherein the remote source device comprises a remote source data buffer and a remote synchronization mechanism coupled with the remote source data buffer, the remote source data buffer containing data to be shared with the source buffer. 65. The network communication system of claim 64, wherein the source device further comprises an intermediate synchronization mechanism in communication with the remote synchronization mechanism via a remote communication connection. 66. The network communication system of claim 65, wherein both the intermediate synchronization mechanism and the remote synchronization mechanism are configured to provide computations and protocols needed to communicate data over the remote communication connection. 67. The network communication system of claim 66, wherein the remote synchronization mechanism is further configured to replicate the data in the remote source data buffer on the source data buffer so that the data will be shared with each of the plurality of destination devices via the plurality of synchronization mechanisms of the source device. 68. The network communication system of claim 67, wherein the data comprises audio and video data shared in the collaborative communication session. 69. The network communication system of claim 67, wherein the data comprises application data shared in the collaborative communication session. 70. The network communication system of claim 67, wherein the data comprises image data shared in the collaborative communication session, wherein the image data represents a region displayed in a computer screen. 71. The network communication system of claim 70, wherein said region and said image data are updated at least once while being shared. 72. A source device in communication with a plurality of destination devices in a collaborative communication session, each destination device in communication with the source device via an associated communication connection such that data in the source device can be shared with each destination device in a timely manner, the source device comprising: a cluster manager configured to determine connection characteristics for each of the plurality of destination devices and associated communication connections, further configured to create one or more performance clusters, and further configured to assign each of the plurality of communication connections into one of the created performance clusters based on performance similarities of the determined connection characteristics of the destination devices and associated communication connections assigned to each performance cluster; the cluster manager further configured to vary the number of performance clusters based on a service priority level of the destination device and a resource priority level of the source device; a source data buffer containing the data to be shared with each of the plurality of destination devices; and a plurality of synchronization mechanisms coupled with the source data buffer, each of the plurality of synchronization mechanisms corresponding to one of the performance clusters, wherein said synchronization mechanism is coupled with the source data buffer thereby synchronizing for each performance cluster the data sent to the destination devices associated with communication connections assigned to said performance cluster wherein a destination device that does not respond within a timeout threshold is removed from its performance cluster but when the removed destination device responds to the timeout threshold it receives full-buffer updates until such point as a recent average latency performance of the responding destination device is at a level that merits insertion back into one of the performance clusters.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.