Method and apparatus for proxy replication
First Claim
1. A method in a distributed data processing system for providing universal plug and play services, the method comprising:
- processing requests, by a primary proxy, using a shared memory in the distributed data processing system;
detecting a challenge from a secondary proxy to the primary proxy;
determining whether the secondary proxy has absolute priority over the primary proxy;
responsive to the determining of whether the secondary proxy has absolute priority over the primary proxy, storing a priority of the secondary proxy; and
responsive to the secondary proxy having absolute priority over the primary proxy, allowing the secondary proxy to access the shared memory.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus in a distributed data processing system for providing proxy services. Requests are processed by a primary proxy, using a shared memory in the distributed data processing system. A challenge from a secondary proxy to the primary proxy is detected. A determination is made as to whether the secondary proxy has priority over the primary proxy. This may be determined using priorities assigned to the proxies. Responsive to determining whether the secondary proxy has priority over the primary proxy, a priority of the secondary proxy is stored. Responsive to the secondary proxy having priority over the primary proxy, the secondary proxy to is allowed access the shared memory. Further, the secondary proxy is then allowed to multi-cast a message to clients indicating the secondary proxy'"'"'s location. This message indicates that the secondary proxy is now the primary proxy.
77 Citations
30 Claims
-
1. A method in a distributed data processing system for providing universal plug and play services, the method comprising:
-
processing requests, by a primary proxy, using a shared memory in the distributed data processing system;
detecting a challenge from a secondary proxy to the primary proxy;
determining whether the secondary proxy has absolute priority over the primary proxy;
responsive to the determining of whether the secondary proxy has absolute priority over the primary proxy, storing a priority of the secondary proxy; and
responsive to the secondary proxy having absolute priority over the primary proxy, allowing the secondary proxy to access the shared memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
responsive to the secondary proxy having priority over the primary proxy, allowing the secondary proxy to multi-cast the message.
-
-
3. The method of claim 1, wherein the message includes a name and a location.
-
4. The method of claim 1, wherein the secondary proxy is an aproxy.
-
5. The method of claim 1, wherein the distributed data processing system is a universal plug and play network.
-
6. The method of claim 1, wherein the priority of the secondary proxy is stored in a data structure located in the shared memory.
-
7. The method of claim 6, wherein the data structure is a vector having a plurality of entries, wherein each entry includes a location of a secondary proxy, a unique identifier, and the priority of the secondary proxy.
-
8. The method of claim 6, wherein the data structure is a vector having a plurality of entries, wherein each entry includes a location of a secondary proxy and a unique identifier, and wherein the priority of the secondary proxy is indicated by a location of the entry relative to other entries within the plurality of entries.
-
9. The method of claim 1 further comprising:
-
responsive to the primary proxy having priority over the secondary proxy, caching requests to the primary proxy; and
determining whether the secondary proxy is selected to become the primary proxy.
-
-
10. The method of claim 1, wherein the primary proxy stores processed requests in the shared memory and further comprising:
-
responsive to the secondary proxy being selected to become the primary proxy, comparing cached requests with processed requests in the shared memory to identified unprocessed requests; and
servicing the unprocessed requests.
-
-
11. A method in a server for handling requests from a plurality of clients in a distributed data processing system, the method comprising:
-
generating a challenge to be a proxy server for providing universal plug and play services in the distributed data processing system;
responsive to a failure to become the proxy server, logging requests from the plurality of clients handled by the proxy server to form a set of logged requests;
monitoring for a change in status of the server to become the proxy server;
responsive detecting a change in status, comparing the set of logged requests to a set of processed requests in a shared memory to identify an unprocessed request; and
responsive to identifying an unprocessed request, processing the unprocessed request. - View Dependent Claims (12, 13)
responsive to detecting a change status, processing requests from the plurality of clients; and
responsive to processing a request from the plurality of clients, logging request in the shared memory.
-
-
13. The method of claim 11 further comprising
responsive to detecting a change in status, multi-casting a message including a name and a location, wherein the name identifies the server as the proxy server.
-
14. A method in a server for handling requests from a plurality of clients in a distributed data processing system, the method comprising:
-
generating a challenge to be a proxy server;
responsive to a failure to become the proxy server, logging requests from the plurality of clients handled by the proxy server to form a set of logged requests;
monitoring for a change in status of the server to become the proxy server;
responsive detecting a change in status, comparing the set of logged requests to a set of processed requests in a shared memory to identify an unprocessed request;
responsive to identifying an unprocessed request, processing the unprocessed request; and
responsive to processing the unprocessed request, adding unprocessed request to the set of processed requests in the shared memory.
-
-
15. A distributed data processing system for providing universal plug and play services, the distributed data processing system comprising:
-
processing means for processing requests, by a primary proxy, using a shared memory in the distributed data processing system;
detecting means for detecting a challenge from a secondary proxy to the primary proxy;
determining means for determining whether the secondary proxy has absolute priority over the primary proxy;
storing means, responsive to the determining of whether the secondary proxy has absolute priority over the primary proxy, for storing a priority of the secondary proxy; and
allowing means, responsive to the secondary proxy having absolute priority over the primary proxy, for allowing the secondary proxy to access the shared memory. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24)
second allowing means, responsive to the secondary proxy having priority over the primary proxy, for allowing the secondary proxy to multi-cast the message.
-
-
17. The distributed data processing system of claim 16, wherein the message includes a name and a location.
-
18. The distributed data processing system of claim 16, wherein the secondary proxy is an aproxy.
-
19. The distributed data processing system of claim 16, wherein the distributed data processing system is a universal plug and play network.
-
20. The distributed data processing system of claim 16, wherein the priority of the secondary proxy is stored in a data structure located in the shared memory.
-
21. The distributed data processing system of claim 20, wherein the data structure is a vector having a plurality of entries, wherein each entry includes a location of a secondary proxy, a unique identifier, and the priority of the secondary proxy.
-
22. The distributed data processing system of claim 20, wherein the data structure is a vector having a plurality of entries, wherein each entry includes a location of a secondary proxy and a unique identifier, and wherein the priority of the secondary proxy is indicated by a location of the entry relative to other entries within the plurality of entries.
-
23. The distributed data processing system of claim 16 further comprising:
-
caching means, responsive to the primary proxy having priority over the secondary proxy, for caching requests to the primary proxy; and
second selecting means for determining whether the secondary proxy is selected to become the primary proxy.
-
-
24. The distributed data processing system of claim 15, wherein the primary proxy stores processed requests in the shared memory and further comprising:
-
comparing means, responsive to the secondary proxy being selected to become the primary proxy, for comparing cached requests with processed requests in the shared memory to identified unprocessed requests; and
servicing means for servicing the unprocessed requests.
-
-
25. A server for handling requests from a plurality of clients in a distributed data processing system, the server comprising:
-
generating means for generating a challenge to be a proxy server for providing universal plug and play services in the distributed data processing system;
logging means, responsive to a failure to become the proxy server, for logging requests from the plurality of clients handled by the proxy server to form a set of logged requests;
monitoring means for monitoring for a change in status of the server to become the proxy server;
comparing means, responsive detecting a change in status, for comparing the set of logged requests to a set of processed requests in a shared memory to identify an unprocessed request; and
processing means, responsive to identifying an unprocessed request, for processing the unprocessed request. - View Dependent Claims (26)
second processing means, responsive to detecting a change status, for processing requests from the plurality of clients; and
second logging means, responsive to processing a request from the plurality of clients, for logging request in the shared memory.
-
-
27. A server for handling requests from a plurality of clients in a distributed data processing system, the server comprising:
-
generating means for generating a challenge to be a proxy server;
logging means, responsive to a failure to become the proxy server, for logging requests from the plurality of clients handled by the proxy server to form a set of logged requests;
monitoring means for monitoring for a change in status of the server to become the proxy server;
comparing means, responsive detecting a change in status, for comparing the set of logged requests to a set of processed requests in a shared memory to identify an unprocessed request;
processing means, responsive to identifying an unprocessed request, for processing the unprocessed request, and adding mean, responsive to processing the unprocessed request, for adding unprocessed request to the set of processed requests in the shared memory. - View Dependent Claims (28)
multi-casting means, responsive to detecting a change in status, for multi-casting a message including a name and a location, wherein the name identifies the server as the proxy server.
-
-
29. A computer program product in a computer readable medium for providing universal plug and play services in a distributed data processing system, the computer program product comprising:
-
first instructions for processing requests, by a primary proxy, using a shared memory in the distributed data processing system;
second instructions for detecting a challenge from a secondary proxy to the primary proxy;
third instructions for determining whether the secondary proxy has absolute priority over the primary proxy;
fourth instructions, responsive to the determining of whether the secondary proxy has absolute priority over the primary proxy, for storing a priority of the secondary proxy; and
fifth instructions, responsive to the secondary proxy having absolute priority over the primary proxy, for allowing the secondary proxy to access the shared memory.
-
-
30. A computer program product in a computer readable medium for handling requests from a plurality of clients in a distributed data processing system in a server, the computer program product comprising:
-
first instructions for generating a challenge to be a proxy server for providing universal plug and play services in the distributed data processing system;
second instructions, responsive to a failure to become the proxy server, for logging requests from the plurality of clients handled by the proxy server to form a set of logged requests;
third instructions for monitoring for a change in status of the server to become the proxy server;
fourth instructions, responsive detecting a change in status, for comparing the set of logged requests to a set of processed requests in a shared memory to identify an unprocessed request; and
fifth instructions, responsive to identifying an unprocessed request, for processing the unprocessed request.
-
Specification