IP Library Granted Patent US 8,280,983
Granted Patent B2
US 8,280,983 · App. 11/743,259 · Granted Oct 2, 2012

Distributed search in a casual network of servers

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,280,983
App. No.
11/743,259
Granted
Oct 2, 2012
Kind
B2
Abstract

Distributed searches in a casual server network may be provided. First it may be determined, at an originating server, that a first request cannot be fulfilled by information associated with the originating server. Then, from the originating server, the first request may be posted to a distributed request ring. Next, at a remote server on the distributed request ring, the first request may be received. The remote server may then query for current data on a data store associated with the remote server that may satisfy the first request. The remote server may next write a foreign reference in the data store. The foreign reference may indicate that the originating server requested the current data. Next, at the originating server, a response may be received to the first request from the remote server. The response may include the current data.

Claims (38)

1. A system for providing a distributed casual search, the system comprising an originating server comprising:

a memory storage; and

a processing unit coupled to the memory storage, wherein the processing unit is operative to:

determine that a first request cannot be fulfilled by information associated with the originating server;

post the first request to a distributed request ring;

receive a response to the first request from a remote server, the response including current data, the remote server having a foreign reference written in response to receiving the first request by the remote server and employed to update the current data on the originating server when;

the current data stored on a data store associated with the remote server is updated,

a predicate created by an owner of the current data is satisfied, the predicate determining whether the updated current data is propagated to the originating server;

save, at the originating server, the response to the first request; receive a second request from a second client; and determine that the second request can be fulfilled by the saved response to the first request.

2. The system of claim 1 , wherein the processing unit is further operative to receive the first request from a first client.

3. The system of claim 1 , wherein the processing unit is further operative to transmit, to a first client, the response to the first request.

4. The system of claim 1 , wherein the processing unit is further operative to transmit, to the second client, the response to the second request.

5. The system of claim 1 , wherein the processing unit being operative to post comprises the processing unit being operative to post to the distributed request ring comprising at least one other server.

6. The system of claim 1 , wherein the processing unit being operative to post comprises the processing unit being operative to post the first request to the distributed request ring wherein the originating server does not know the identity of other servers on the distributed request ring.

7. The system of claim 1 , wherein the processing unit being operative to post comprises the processing unit being operative to post to the distributed request ring information describing the first request and being configured to be received at an application program interface (API) of an operating system (OS) of at least one other server in the distributed request ring and an application program interface (API) of an operating system (OS) of a remote server.

8. A computer-readable storage device which stores a set of instructions which when executed performs a method for providing a distributed casual search, the method executed by the set of instructions comprising:

receiving, at a remote server on a distributed request ring, a first request;

querying, by the remote server, for current data on a data store associated with the remote server that will satisfy the first request;

writing in the data store associated with the remote server, a foreign reference indicating that the originating server requested the current data, wherein writing the foreign reference is triggered in response to receiving the query for the current data on the data store associated with the remote server;

receiving, at the remote server, a command to update the current data, the command including updated data to replace the current data associated with the remote server;

determining, at the remote server, that the foreign reference is associated with the current data; and

transmitting, in accordance to the foreign reference, the updated data to the originating server, wherein transmitting, in accordance to the foreign reference, comprises transmitting the updated data when the foreign reference indicates that a predicate for transmission has been satisfied, the predicate being created by an owner of the updated data and indicating whether the updated data is to be propagated to the originating server.

9. The computer-readable storage device of claim 8 , wherein writing the foreign reference comprises writing the foreign reference identifying the originating server.

10. A method for providing a distributed casual search, the method comprising:

determining that a first request cannot be fulfilled by information associated with an originating server;

posting the first request to a distributed request ring;

receiving a response to the first request from a remote server, the response including current data, the remote server having a foreign reference written in response to receiving the first request by the remote server and employed to update the current data on the originating server when:

the current data stored on a data store associated with the remote server is updated, and

a predicate created by an owner of the current data is satisfied, the predicate determining whether the updated current data is propagated to the originating server;

saving, at the originating server, the response to the first request;

receiving a second request from a second client; and

determining that the second request can be fulfilled by the saved response to the first request.

11. The method of claim 10 , further comprising receiving the first request from a first client.

12. The method of claim 10 , further comprising transmitting, to a first client, the response to the first request.

13. The method of claim 10 , further comprising transmitting, to the second client, the response to the second request.

14. The method of claim 10 , wherein posting comprises posting to the distributed request ring comprising at least one other server.

15. The method of claim 10 , wherein posting comprises posting the first request to the distributed request ring wherein the originating server does not know the identity of other servers on the distributed request ring.

16. The method of claim 10 , wherein posting comprises posting to the distributed request ring information describing the first request and being configured to be received at an application program interface (API) of an operating system (OS) of at least one other server in the distributed request ring and an application program interface (API) of an operating system (OS) of a remote server.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2007
From: LEV, BOAZ
To: MICROSOFT CORPORATION
Reel/Frame 019379/0783 →