IP Library › Granted Patent US 8,423,581
Granted Patent B2
US 8,423,581 · App. 12/575,056 · Granted Apr 16, 2013

Proxy support for special subtree entries in a directory information tree using attribute rules

Inventors: Kristin Marie Hazlewood (Austin, TX); John Mark McConaughy (Austin, TX); Gary Dale Williams (Driftwood, TX)
Assignee: International Business Machines Corporation
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,423,581
App. No.
12/575,056
Granted
Apr 16, 2013
Kind
B2
Abstract

A mechanism for providing proxy support for special subtree entries in a directory information tree by defining filters at the proxy level to indicate relationships between main subtree entries and associated special subtree entries. A proxy server receives a request from a client for a special subtree entry and determines whether the distinguished name of the main subtree entry can be built using information in the request and pre-defined relationships between the main subtree entry and the requested subtree entry. If so, the proxy server builds the distinguished name of the main subtree entry associated with the special subtree entry and applies a partitioning filter to the distinguished name of the main subtree entry to determine a target directory server in the plurality of backend directory servers that comprise the special subtree. The proxy server then sends the request to the target directory server.

Claims (65)

1. A computer implemented method of locating special subtree entries in a distributed directory environment using a proxy server, the computer implemented method comprising:

receiving, at the proxy server, a request from a client for a special subtree entry, wherein the special subtree entry is stored in a special subtree in one of a plurality of backend directory servers in the distributed directory environment;

retrieving by the proxy server a partitioning filter associated with the requested special subtree entry;

determining whether the request comprises a distinguished name control, wherein the control specifies the distinguished name of a main subtree entry associated with the special subtree entry;

responsive to a determination that the request does not comprise a distinguished name control, building the distinguished name of the main subtree entry associated with the special subtree entry;

applying the partitioning filter to the distinguished name of the main subtree entry to determine a target directory server in the plurality of backend directory servers that comprise the special subtree; and

sending the request to the target directory server, wherein the special subtree entries comprise directory entries that represent changes made to entries in main subtrees.

2. The computer implemented method of claim 1 , further comprising:

determining at least one of a new distinguished name for the special subtree entry or a new search filter for the request;

updating the request with the at least one new distinguished name or new search filter to form a directed search, wherein the directed search retrieves the special subtree entry from the target directory server; and

sending the directed search to the target directory server.

3. The computer implemented method of claim 1 , further comprising:

responsive to a determination that the request comprises a distinguished name control, obtaining the distinguished name of the main subtree entry from the distinguished name control;

applying the partitioning filter to the distinguished name of the main subtree entry to determine a target directory server in the plurality of backend directory servers that comprises the special subtree; and

sending the request to the target directory server.

4. The computer implemented method of claim 1 , wherein building the distinguished name of the main subtree entry associated with the special subtree entry comprises:

determining whether the distinguished name of the main subtree entry can be built using information in the request and pre-defined relationships between the main subtree entry and the requested special subtree entry; and

building the distinguished name of the main subtree entry associated with the special subtree entry in response to a determination that the distinguished name of the main subtree entry can be built.

5. The computer implemented method of claim 4 , further comprising:

sending the request to all directory servers in the plurality of backend directory servers in response to a determination that the distinguished name of the main subtree entry cannot be built.

6. The computer implemented method of claim 5 , further comprising:

determining whether multiple identical entries with the distinguished name of the special subtree entry exist in the plurality of backend directory servers; and

responsive to a determination that multiple identical entries exist, rejecting the request.

7. The computer implemented method of claim 6 , further comprising:

responsive to a determination that multiple copies do not exist, identifying a directory server that contains the special subtree entry as the target directory server; and

sending the request to the target directory server.

8. The computer implemented method of claim 1 , wherein applying the partitioning filter to the original distinguished name further comprises:

applying a hash function to relative distinguished names at a level of the distinguished name of the main subtree entry; and

obtaining a result of the hash function, wherein the result indicates the target directory server that comprises the requested special subtree entry.

9. The computer implemented method of claim 4 , wherein the pre-defined relationships between the main subtree entry and the requested special subtree entry comprise relationships between the distinguished name of the main subtree entry and the distinguished name of the special subtree entry or between the distinguished name of the main subtree entry and an attribute of the special subtree entry.

10. The computer implemented method of claim 1 , wherein the special subtree entry is one of a changelog subtree entry or tombstone subtree entry.

11. An apparatus comprising:

a bus;

a storage device connected to the bus, wherein the storage device contains computer usable code;

at least one managed device connected to the bus;

a communications unit connected to the bus; and

a processing unit connected to the bus, wherein the processing unit executes the computer usable code to receive, at the proxy server, a request from a client for a special subtree entry, wherein the special subtree entry is stored in a special subtree in one of a plurality of backend directory servers in the distributed directory environment; retrieve by the proxy server a partitioning filter associated with the requested special subtree entry; determine whether the request comprises a distinguished name control, wherein the control specifies the distinguished name of a main subtree entry associated with the special subtree entry; build, in response to a determination that the request does not comprise a distinguished name control, the distinguished name of the main subtree entry associated with the special subtree entry; apply the partitioning filter to the distinguished name of the main subtree entry to determine a target directory server in the plurality of backend directory servers that comprise the special subtree; and send the request to the target directory server, wherein the special subtree entries comprise directory entries that represent changes made to entries in main subtrees.

12. A tangible computer usable storage device comprising a computer program product having computer usable program code stored thereon, the computer usable program code for execution by a computer, comprising:

computer usable program code for receiving, at the proxy server, a request from a client for a special subtree entry, wherein the special subtree entry is stored in a special subtree in one of a plurality of backend directory servers in the distributed directory environment;

computer usable program code for retrieving by the proxy server a partitioning filter associated with the requested special subtree entry;

computer usable program code for determining whether the request comprises a distinguished name control, wherein the control specifies the distinguished name of a main subtree entry associated with the special subtree entry;

computer usable program code for building, in response to a determination that the request does not comprise a distinguished name control, the distinguished name of the main subtree entry associated with the special subtree entry;

computer usable program code for applying the partitioning filter to the distinguished name of the main subtree entry to determine a target directory server in the plurality of backend directory servers that comprise the special subtree; and

computer usable program code for sending the request to the target directory server, wherein the special subtree entries comprise directory entries that represent changes made to entries in main subtrees.

13. The tangible computer usable storage device comprising a computer program product of claim 12 , further comprising:

computer usable program code for determining at least one of a new distinguished name for the special subtree entry or a new search filter for the request;

computer usable program code for updating the request with the at least one new distinguished name or new search filter to form a directed search, wherein the directed search retrieves the special subtree entry from the target directory server; and

computer usable program code for sending the directed search to the target directory server.

14. The tangible computer usable storage device comprising the computer program product of claim 12 , further comprising:

computer usable program code for obtaining, in response to a determination that the request comprises a distinguished name control, the distinguished name of the main subtree entry from the distinguished name control;

computer usable program code for applying the partitioning filter to the distinguished name of the main subtree entry to determine a target directory server in the plurality of backend directory servers that comprises the special subtree; and

computer usable program code for sending the request to the target directory server.

15. The tangible computer usable storage device comprising the computer program product of claim 12 , further comprising:

computer usable program code for determining whether the distinguished name of the main subtree entry can be built using information in the request and pre-defined relationships between the main subtree entry and the requested special subtree entry; and

computer usable program code for building the distinguished name of the main subtree entry associated with the special subtree entry in response to a determination that the distinguished name of the main subtree entry can be built.

16. The tangible computer usable storage device comprising the computer program product of claim 15 , further comprising:

computer usable program code for sending the request to all directory servers in the plurality of backend directory servers in response to a determination that the distinguished name of the main subtree entry cannot be built.

17. The tangible computer usable storage device comprising the computer program product of claim 16 , further comprising:

computer usable program code for determining whether multiple identical entries with the distinguished name of the special subtree entry exist in the plurality of backend directory servers; and

computer usable program code for rejecting the request in response to a determination that multiple identical entries exist.

18. The tangible computer usable storage device comprising the computer program product of claim 12 , wherein the computer usable program code for applying the partitioning filter to the original distinguished name further comprises:

computer usable program code for applying a hash function to relative distinguished names at a level of the distinguished name of the main subtree entry; and

computer usable program code for obtaining a result of the hash function, wherein the result indicates the target directory server that comprises the requested special subtree entry.

19. The tangible computer usable storage device comprising the computer program product of claim 12 , wherein the computer usable program code is stored in a computer readable storage medium in a data processing system, and wherein the computer usable program code is downloaded over a network from a remote data processing system.

20. The tangible computer usable storage device comprising the computer program product of claim 12 , wherein the computer usable program code is stored in a computer readable storage medium in a server data processing system, and wherein the computer usable program code is downloaded over a network from a remote data processing system for use in a computer readable storage medium with the remote system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2009
From: HAZLEWOOD, KRISTIN MARIE; MCONAUGHY, JOHN MARK; WILLIAMS, GARY DALE
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 023340/0004 →
Continuity (1)
Related Publication 20110082879A1 · Apr 7, 2011