Method, apparatus and program storage device for a client and adaptive synchronization and transformation server
First Claim
1. An adaptive sync server for synchronizing data between a client and a remote host replica, which stores a replica of data on the client, comprising:
- sync acceptor logic for identifying a replica host and a sync logic which is application specific to a data type associated with the client and the remote host;
wherein the sync logic can be located anywhere on a network remote to the sync server and the remote host, in response to a sync request; and
sync handler logic, coupled to the sync acceptor logic, for retrieving remote sync logic from the network, connecting to the remote host and synchronizing the data between the client and the remote host using retrieved sync logic.
2 Assignments
0 Petitions
Accused Products
Abstract
A sync proxy or sync server logic, process and apparatus employing sync logic and/or transformation codes distributed in the network to increase the scalability and improve the manageability of synchronization between a client such as: an Internet appliance; a handheld or palmtop device; a smart phone or intelligent pager; and their remote replica sources. An example of an adaptive sync server for synchronizing data between a client and a remote host replica, which stores a replica of data on the client includes sync acceptor logic for identifying a replica host and a sync logic which is application specific to a data type associated with the client and the remote host; wherein the sync logic can be located anywhere on a network remote to the sync server and the remote host, in response to a sync request; and sync handler logic, coupled to the sync acceptor logic, for retrieving remote sync logic from the network, connecting to the remote host, and synchronizing the data between the client and the remote host using the retrieved sync logic. The sync request could explicitly (or by default) identify the replica host and the sync logic or could include an address of a directory service storing information for identifying the replica host and the sync logic. The sync request could also or alternatively include information for identifying a (local or remote) device specific transformation code for converting data between the client and the remote host during synchronization; and means for retrieving the transformation code based on the information and converting the data between the client and the remote host based on the device specific transformation code.
274 Citations
110 Claims
-
1. An adaptive sync server for synchronizing data between a client and a remote host replica, which stores a replica of data on the client, comprising:
-
sync acceptor logic for identifying a replica host and a sync logic which is application specific to a data type associated with the client and the remote host;
wherein the sync logic can be located anywhere on a network remote to the sync server and the remote host, in response to a sync request; and
sync handler logic, coupled to the sync acceptor logic, for retrieving remote sync logic from the network, connecting to the remote host and synchronizing the data between the client and the remote host using retrieved sync logic. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
the sync handler logic further comprises means for retrieving the information, in response to the sync request.
-
-
5. The server of claim 1, wherein the sync request includes information for identifying a device specific transformation code for converting data between the client and the remote host during synchronization;
- and
the sync handler logic comprises means for retrieving the transformation code based on the information and converting the data between the client and the remote host based on the device specific transformation code.
- and
-
6. The server of claim 5, wherein the device specific transformation code can be remotely located anywhere on the network.
-
7. The server of claim 5, wherein the sync request includes an address of a directory service storing information for identifying the device specific transformation code for transforming the data between the client and the remote host;
- and
the sync handler logic comprises means for retrieving remote transformation code based on the information and converting the data between the client and the remote host based on the device specific transformation code.
- and
-
8. The server of claim 5, wherein the transformation code comprises means for one or more of filtering;
- transforming; and
changing the data so that it can be used and processed in different computing devices having one or more of different CPU powers, memory capacities, and physical constructs.
- transforming; and
-
9. The server of claim 1, further comprising:
cache manager means, coupled to the sync handler, for retrieving and storing the sync logic into a cache memory.
-
10. The server of claim 9, wherein said cache manager means further comprises means for presetting and storing the sync logic into the cache memory.
-
11. The server of claim 1, wherein identifying information comprises a URL.
-
12. The server of claim 11, wherein the network is the world wide web and the sync server is a proxy server and wherein the client is selected from a group consisting of handheld device;
- a smart phone, or an intelligent pager.
-
13. An adaptive sync server for synchronizing data between a client and a remote host replica, which stores a replica of data on the client, comprising:
-
sync acceptor logic for identifying a replica host and a sync logic which is application specific to a data type associated with the client and the remote host;
wherein the sync logic can be located anywhere on a network remote to the sync server and the remote host, in response to a sync request;
sync handler logic, coupled to the sync acceptor logic, for retrieving remote sync logic from the network, connecting to the remote host and synchronizing the data between the client and the remote host using retrieved sync logic;
a load manager, coupled to the acceptor logic, for monitoring a server computation load and a server computation capacity and sharing the computation load and the computation capacity with collaborating sync servers; and
said load manager comprising logic for diverting the sync request to a less loaded server, when the server computation load exceeds a threshold. - View Dependent Claims (14)
-
-
15. An adaptive server for transforming data between a client and a remote host replica, which stores a replica of data on the client, comprising:
-
sync acceptor logic for identifying the remote replica host and a device specific transformation code for transforming the data on the remote host to that of a device type associated with the client, wherein the transformation code can be located anywhere on a network remote to the sync server and the remote host, in response to a sync request; and
sync handler logic, coupled to the sync acceptor logic, for retrieving remote transformation code and transforming the data between the client and the remote host based on the device specific transformation code. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
the sync handler logic further comprises means for retrieving the information, in response to the sync request.
-
-
18. The server of claim 15, wherein the transformation code comprises means for one or more of filtering;
- transforming; and
changing the data so it can be used and processed in different computing devices having one or more of different CPU powers, memory capacities, and physical constructs.
- transforming; and
-
19. The server of claim 15, wherein the transformation code further comprises means for filtering an image or transforming a resolution of the image included in a web page sent from the remote host to the handheld device so that the page can be shown on a screen on the handeld device within the memory constraints of the handheld device.
-
20. The server of claim 15, wherein the sync request includes information for identifying a sync logic which is application specific to a data type associated with the client and the remote host, in response to a sync request;
- and
the sync handler logic comprising means for retrieving the sync logic, connecting to the remote host based on the information, and synchronizing the data between the client and the remote host.
- and
-
21. The server of claim 20, wherein the sync logic comprises means for one or more of:
- resolving a conflict;
specifying an overriding direction; and
taking certain actions to fulfill a specific need of the application.
- resolving a conflict;
-
22. The server of claim 20, wherein the sync logic can be remotely located anywhere on the network.
-
23. The server of claim 22, wherein the sync request includes an address of a directory service storing information for identifying the sync logic;
- and
the sync handler logic comprises means for retrieving remote sync logic based on the information and synchronizing the data between the client and the remote host based on the sync logic.
- and
-
24. The server of claim 15, further comprising:
cache manager means, coupled to the sync handler, for retrieving and storing the sync logic into a cache memory.
-
25. The server of claim 24, wherein said cache manager means further comprises means for presetting and storing the sync logic into the cache memory.
-
26. The server of claim 15, wherein identifying information comprises a URL.
-
27. The server of claim 26, wherein the network is the world wide web and the sync server is a proxy server and wherein the client is selected from a group consisting of handheld device;
- a smart phone, or an intelligent pager.
-
28. An adaptive sync server for transforming data between a client and a remote host replica, which stores a replica of data on the client, comprising:
-
sync acceptor logic for identifying the remote replica host and a device specific transformation code for transforming the data on the remote host to that of a device type associated with the client, wherein the transformation code can be located anywhere on a network remote to the sync server and the remote host, in response to a sync request;
sync handler logic, coupled to the sync acceptor logic, for retrieving remote transformation code and transforming the data between the client and the remote host based on the device specific transformation code;
a load manager, coupled to the acceptor logic, for monitoring a server computation load and a server computation capacity and sharing the computation load and the computation capacity with collaborating sync servers; and
said load manager comprising logic for diverting the sync request to a less loaded server, when the server computation load exceeds a threshold.
-
-
29. A client device adapted for connection to a sync server wherein synchronization of data is performed between the client and a remote host replica storing a replica of the data on the client, comprising:
-
a central processing unit (CPU);
a memory, coupled to the CPU, storing executable code for execution on the CPU, said code comprising;
a sync initiator for communicating to a sync server a sync request for identifying the replica host and a sync logic which is application specific to a data type associated with the client and the remote host;
wherein the sync logic can be located anywhere on a network remote to the sync server and the remote host; and
sync handler logic, coupled to the sync initiator logic, for communicating synchronized data with the remote host via the sync server; and
a data manager, coupled to the sync handler, for processing one or more of data management and replica management functions. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42)
-
-
43. A client device adapted for connection to an adaptive server wherein transformation of data is performed between the client and a remote host replica storing a replica of the data on the client, comprising:
-
a central processing unit (CPU);
a memory, coupled to the CPU, storing executable code for execution on the CPU, said code comprising;
a sync initiator for communicating to the server a request for identifying the replica host and a device specific transformation code for transforming data between the client and the remote host;
wherein the transformation code can be located anywhere on a network remote to the server and the remote host; and
sync handler logic, coupled to the sync initiator logic, for communicating transformed data with the remote host via a remote server; and
a data manager, coupled to the sync handler, for processing one or more of data management and replica management functions. - View Dependent Claims (44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54)
-
-
55. In an adaptive sync server, a method for adaptively synchronizing data between a client and a remote host replica storing a replica of data on the client, the method comprising the steps of:
-
identifying a replica host and a sync logic which is application specific to a data type associated with the client and the remote host;
wherein the sync logic can be located anywhere on a network remote to the sync server and the remote host, in response to a sync request;
retrieving remote sync logic from the network based on the request; and
connecting to the remote host and synchronizing the data between the client and the remote host using retrieved remote sync logic. - View Dependent Claims (56, 57, 58, 59, 60, 61, 62, 63, 64, 65)
receiving from the client the sync request including information for identifying the replica host and the remote sync logic.
-
-
57. The method of claim 55, wherein the sync logic further comprising the steps selected from the group consisting of one or more of:
- resolving a conflict;
specifying an overriding direction; and
taking certain actions to fulfill a specific need of the application.
- resolving a conflict;
-
58. The method of claim 55, wherein the sync request includes an address of a directory service storing information for identifying the replica host and the sync logic, further comprising the step of retrieving the information, in response to the sync request.
-
59. The method of claim 55, wherein the sync request includes information for identifying a device specific transformation code for converting data between the client and the remote host during synchronization, further comprising the steps of:
-
retrieving the transformation code based on the information; and
converting the data between the client and the remote host based on the device specific transformation code.
-
-
60. The method of claim 59, wherein the device specific transformation code can be remotely located anywhere on the network.
-
61. The method of claim 59, wherein the sync request includes an address of a directory service storing information for identifying the device specific transformation code for transforming the data between the client and the remote host, further comprising the steps of:
-
retrieving remote transformation code based on the information; and
converting the data between the client and the remote host based on the device specific transformation code.
-
-
62. The method of claim 59, wherein the transformation code further comprises steps selected from the group consisting of one or more of:
- filtering;
transforming; and
changing the data for use and processing in different computing devices having one or more of different CPU powers, memory capacities, and physical constructs.
- filtering;
-
63. The method of claim 55, further comprising the steps of retrieving and storing the sync logic into a cache memory.
-
64. The method of claim 63, further comprising the steps of presetting and storing the sync logic into the cache memory.
-
65. The method of claim 55, wherein identifying information comprises a URL.
-
66. In an adaptive sync server, a method for synchronizing data between a client and a remote host replica, storing a replica of data on the client, the method comprising the steps of:
-
identifying a replica host and a sync logic which is application specific to a data type associated with the client and the remote host;
wherein the sync logic can be located anywhere on a network remote to the sync server and the remote host, in response to a sync request;
retrieving remote sync logic from the network based on the request;
connecting to the remote host and synchronizing the data between the client and the remote host using retrieved sync logic;
monitoring a server computation load and a server computation capacity;
sharing the computation load and the computation capacity with collaborating sync servers; and
diverting the sync request to a less loaded server, when the server computation load exceeds a threshold. - View Dependent Claims (67)
-
-
68. In an adaptive server, a method for transforming data between a client and a remote host replica storing a replica of data on the client, further comprising the steps of:
-
identifying the remote host replica and a device specific transformation code for transforming the data on the remote host to that of a device type associated with the client, wherein the transformation code can be located anywhere on a network remote to the server and the remote host, in response to a request; and
retrieving remote transformation code, in response to the request; and
transforming the data between the client and the remote host based on the device specific transformation code. - View Dependent Claims (69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81)
filtering an image;
or transforming a resolution of the image included in a web page sent from the remote host to the handheld device so that the page can be shown on a screen of the handeld device within the memory constraints of the handheld device.
-
-
73. The method of claim 68, wherein the request includes information for identifying a sync logic which is application specific to a data type associated with the client and the remote host, in response to a sync request, further comprising the steps of:
-
retrieving the sync logic;
connecting to the remote host based on the information; and
synchronizing the data between the client and the remote host.
-
-
74. The method of claim 73, wherein the sync logic further comprising the steps selected from the group consisting of one or more of:
- resolving a conflict;
specifying an overriding direction;
or taking certain actions to fulfill a specific need of the application.
- resolving a conflict;
-
75. The method of claim 73, wherein the sync logic can be remotely located anywhere on the network.
-
76. The method of claim 75, wherein the request includes an address of a directory service storing information for identifying the sync logic, further comprising the steps of:
-
retrieving remote sync logic based on the information; and
synchronizing the data between the client and the remote host based on the sync logic.
-
-
77. The method of claim 68, further comprising the steps of retrieving and storing the sync logic into a cache memory.
-
78. The method of claim 77, further comprising the steps of:
- presetting and storing the sync logic into the cache memory.
-
79. The method of claim 68, wherein identifying information comprises a URL.
-
80. The method of claim 79, wherein the network is the world wide web and the sync server is a proxy server and wherein the client is selected from a group consisting of handheld device;
- a smart phone, or an intelligent pager.
-
81. The method of claim 68, wherein the network is the world wide web and the sync server is a proxy server and wherein the client is selected from a group consisting of handheld device;
- a smart phone, or an intelligent pager.
-
82. In an adaptive sync server for transforming data between a client and a remote host replica storing a replica of data on the client, comprising the steps of:
-
identifying the remote host replica and a device specific transformation code for transforming the data on the remote host to that of a device type associated with the client, wherein the transformation code can be located anywhere on a network remote to the sync server and the remote host, in response to a sync request;
retrieving remote transformation code, in response to the request;
transforming the data between the client and the remote host based on the device specific transformation code;
monitoring a server computation load and a server computation capacity;
sharing the computation load and the computation capacity with collaborating sync servers; and
diverting the sync request to a less loaded server, when the server computation load exceeds a threshold.
-
-
83. A program storage device readable by a machine, tangibly embodying a program of instructions executable by a sync server to perform method steps for adaptively synchronizing data between a client and a remote host replica storing a replica of data on the client, said method steps comprising:
-
identifying a replica host and a sync logic which is application specific to a data type associated with the client and the remote host;
wherein the sync logic can be located anywhere on a network remote to the sync server and the remote host, in response to a sync request;
retrieving remote sync logic from the network; and
connecting to the remote host and synchronizing the data between the client and the remote host using retrieved remote sync logic. - View Dependent Claims (84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94)
receiving from the client the sync request including information for identifying the replica host and the remote sync logic.
-
-
85. The program storage device of claim 83, the sync logic further comprising steps selected from the group consisting of one or more of:
- resolving a conflict;
specifying an overriding direction; and
taking certain actions to fulfill a specific need of the application.
- resolving a conflict;
-
86. The program storage device of claim 83, wherein the sync request includes an address of a directory service storing information for identifying the replica host and the sync logic, further comprising the step of retrieving the information, in response to the sync request.
-
87. The program storage device of claim 83, wherein the sync request includes information for identifying a device specific transformation code for converting data between the client and the remote host during synchronization, further comprising the steps of:
-
retrieving the transformation code based on the information; and
converting the data between the client and the remote host based on the device specific transformation code.
-
-
88. The program storage device of claim 87, wherein the device specific transformation code can be remotely located anywhere on the network.
-
89. The program storage device of claim 87, wherein the sync request includes an address of a directory service storing information for identifying the device specific transformation code for transforming the data between the client and the remote host, further comprising the steps of:
-
retrieving remote transformation code based on the information; and
converting the data between the client and the remote host based on the device specific transformation code.
-
-
90. The program storage device of claim 87, wherein the transformation code further comprises steps selected from the group consisting of one or more of:
- filtering;
transforming; and
changing the data for use and processing in different computing devices having one or more of different CPU powers, memory capacities, and physical constructs.
- filtering;
-
91. The program storage device of claim 83, wherein the network includes one or more of an intranet and Internet wherein the transformation code further comprises steps selected from the group consisting of one or more of:
- filtering an image;
or transforming a resolution of the image included in a web page sent from the remote host to the handheld device so that the page can be shown on a screen on the handeld device within the memory constraints of the handheld device.
- filtering an image;
-
92. The program storage device of claim 83, further comprising the steps of retrieving and storing the sync logic into a cache memory.
-
93. The program storage device of claim 92, further comprising the steps of presetting and storing the sync logic into the cache memory.
-
94. The program storage device of claim 83, wherein identifying information comprises a URL.
-
95. A program storage device readable by machine, tangibly embodying a program of instructions executable by a sync server, to perform method steps for adaptively synchronizing data between a client and a remote host replica storing a replica of data on the client, the method comprising the steps of:
-
identifying a replica host and a sync logic which is application specific to a data type associated with the client and the remote host;
wherein the sync logic can be located anywhere on a network remote to the sync server and the remote host, in response to a sync request;
retrieving remote sync logic from the network based on the request;
connecting to the remote host and synchronizing the data between the client and the remote host using retrieved sync logic;
monitoring a server computation load and a server computation capacity;
sharing the computation load and the computation capacity with collaborating sync servers; and
diverting the sync request to a less loaded server, when the server computation load exceeds a threshold.
-
-
96. A program storage device readable by a machine, tangibly embodying a program of instructions executable by a server to perform method steps for adaptively transforming data between a client and a remote host replica storing a replica of data on the client, said method steps comprising:
-
identifying the remote host replica and a device specific transformation code for transforming the data on the remote host to that of a device type associated with the client, wherein the transformation code can be located anywhere on a network remote to the sync server and the remote host, in response to a request; and
retrieving remote transformation code; and
transforming the data between the client and the remote host based on the device specific transformation code. - View Dependent Claims (97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109)
filtering an image;
or transforming a resolution of the image included in a web page sent from the remote host to the handheld device so that the page can be shown on a screen of the handeld device within the memory constraints of the handheld device.
-
-
101. The program storage device of claim 96, wherein the request includes information for identifying a sync logic which is application specific to a data type associated with the client and the remote host, in response to a sync request, further comprising the steps of:
-
retrieving the sync logic;
connecting to the remote host; and
synchronizing the data between the client and the remote host.
-
-
102. The program storage device of claim 101, wherein the sync logic further comprising the steps selected from the group consisting of one or more of:
- resolving a conflict;
specifying an overriding direction;
or taking certain actions to fulfill a specific need of the application.
- resolving a conflict;
-
103. The program storage device of claim 101, wherein the sync logic can be remotely located anywhere on the network.
-
104. The program storage device of claim 103, wherein the sync request includes an address of a directory service storing information for identifying the sync logic, further comprising the steps of:
-
retrieving remote sync logic based on the information; and
synchronizing the data between the client and the remote host based on the sync logic.
-
-
105. The program storage device of claim 96, further comprising the steps of retrieving and storing the transformation code into a cache memory.
-
106. The program storage device of claim 105, further comprising the steps of presetting and storing the transformation code into the cache memory.
-
107. The program storage device of claim 96, wherein identifying information comprises a URL.
-
108. The program storage device of claim 107, wherein the network is the world wide web and the server is a proxy server and wherein the client is selected from a group consisting of handheld device;
- a smart phone, or an intelligent pager.
-
109. The program storage device of claim 96, wherein the network is the world wide web and the server is a proxy server and wherein the client is selected from a group consisting of handheld device;
- a smart phone, or an intelligent pager.
-
110. A program storage device readable by a machine, tangibly embodying a program of instructions executable by a server to perform method steps for adaptively transforming data between a client and a remote host replica storing a replica of data on the client, said method steps comprising:
-
identifying the remote host replica and a device specific transformation code for transforming the data on the remote host to that of a device type associated with the client, wherein the transformation code can be located anywhere on a network remote to the sync server and the remote host, in response to a sync request;
retrieving remote transformation code, in response to the request;
transforming the data between the client and the remote host based on the device specific transformation code;
monitoring a server computation load and a server computation capacity;
sharing the computation load and the computation capacity with collaborating sync servers; and
diverting the sync request to a less loaded server, when the server computation load exceeds a threshold.
-
Specification