Method and system for uniformly accessing multiple directory services
First Claim
1. A method in a computer system for copying to a selected container object in a directory system a selected object in the directory system, the selected object having a name, comprising:
- obtaining a pointer to an OleDsContainer object representing the selected container object; and
using the obtained pointer to invoke a CopyHere method of the OleDsContainer object to create in the selected container object a copy of the selected object, passing in the name of the selected object and receiving in return a pointer to an OleDs object representing the copy of the selected object.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention provides a directory service system for accessing a plurality of directory services in a uniform manner. Each directory service manages information relating to objects of that directory service. The type of information that a directory service manages for an object is defined by the object class of the object. An object class defines the properties (i.e., information) that a directory service manages for objects of that object class. Each property has a property name and property type. A directory service has a property value for each property defined by the object class of each object. The directory service system comprises a schema browsing component, a name resolving component, a binding component, and an extending component. The schema browsing component controls the retrieving of the property name and property type of each property of each object class of each directory service. A client of the directory service system uses the schema browsing component to retrieve property names and property types of the object classes. The name resolving component controls the receiving of a unique identifier of an object within a directory service and the locating of the object within the directory service. The binding component controls the binding to an in-memory object representing a located object within a directory service. The extending component controls the defining of new object classes and new properties for each directory service. A client of the directory service system uses the extending component to define new object classes and new properties.
84 Citations
34 Claims
-
1. A method in a computer system for copying to a selected container object in a directory system a selected object in the directory system, the selected object having a name, comprising:
-
obtaining a pointer to an OleDsContainer object representing the selected container object; and
using the obtained pointer to invoke a CopyHere method of the OleDsContainer object to create in the selected container object a copy of the selected object, passing in the name of the selected object and receiving in return a pointer to an OleDs object representing the copy of the selected object.
-
-
2. A method in a computer system for accessing a selected object in a directory service, the selected object having a name within the directory service, comprising:
-
invoking an implementation of an IParseDisplayName;
;
ParseDisplayName method, passing in the name of the selected object within the directory service and receiving in return a moniker corresponding to an OleDs object representing the selected object; and
using the received moniker to access the selected object via the OleDs object. - View Dependent Claims (3)
invoking an implementation of an IMoniker;
;
BindToObject method, passing in the received moniker and receiving in return a pointer to the OleDs object; and
using the received pointer to access the selected object via the OleDs object.
-
-
4. A method in a computer system for reading information from a selected object in a directory service, comprising:
-
obtaining a pointer to an OleDs object representing the selected object;
using the obtained pointer to invoke a Getlnfo method of the OleDs object to transfer information from the selected object into the OleDs object; and
using the obtained pointer to invoke a Get method of the OleDs object to read information from the OleDs object. - View Dependent Claims (5)
and wherein the GetInfo method, when invoked transfers the values of the properties of the selected object into the OleDs object, and wherein the step of invoking the Get method passes in the name of a property of the selected object and receives in return the value of the property having the passed name.
-
-
6. A method in a computer system for writing information to a selected object in a directory service, comprising:
-
obtaining a pointer to an OleDs object representing the selected object;
using the obtained pointer to invoke a Put method of the OleDs object to transfer information into the OleDs object, passing in the information; and
using the obtained pointer to invoke a SetInfo method of the OleDs object to transfer the information from the OleDs object into the selected object. - View Dependent Claims (7)
and wherein the step of invoking the Put method passes in the name of a property of the selected object and a value for the property having the passed name, and wherein the SetInfo method, when invoked, transfers to the selected object the passed value for the property having the passed name to set the property having the passed name to the passed value.
-
-
8. A method in a computer system for creating a new object in a selected container object in a directory system, the new object having a class and a name, comprising:
-
obtaining a pointer to an OleDsContainer object representing the selected container object; and
using the obtained pointer to invoke a CopyHere method of the OleDsContainer object to create the new object in the selected container object, passing in the class and name of the new object and receiving in return a pointer to an OleDs object representing the new object. - View Dependent Claims (9)
using the returned pointer to invoke a Put method of the OleDs object to transfer information into the OleDs object, passing in the information; and
using the returned pointer to invoke a SetInfo method of the OleDs object to transfer the information from the OleDs object into the new object.
-
-
10. A method in a computer system for enumerating objects contained by a selected container object in a directory system, comprising:
-
obtaining a pointer to an OleDsContainer object representing the selected container object;
using the obtained pointer to invoke a get_NewEnum method of the OleDsContainer object, receiving in return a pointer to an enumerator object for the selected container object; and
using the received pointer to repeatedly invoke a Next method of the enumerator object, each time receiving in return a pointer to an OleDs object representing one of the objects contained by the selected container object. - View Dependent Claims (11)
using one of the returned pointers to an OleDs object to access the object contained by the container object represented by the OleDs object.
-
-
12. A method in a computer system for accessing a plurality of directory services provided by a plurality of directory service providers in a uniform manner, each directory service provider having an application programming interface, the application programming interface having a behavior for accessing objects of the directory service, wherein at least two of the directory service providers have different application programming interfaces and provide at least one directory service function having similar functionality, the method comprising:
-
for each of a plurality of directory service providers, installing an implementation of a pre-defined interface, the pre-defined interface defining a behavior for accessing objects of any of the directory service providers, the implementation of the pre-defined interface providing a mapping from the behavior of an application programming interface of at least one directory service provider to the behavior of the pre-defined interface;
receiving an identification of an object;
determining which directory service provider contains the identified object; and
using the installed implementation of the pre-defined interface for the determined directory service provider to locate and bind to the identified object. - View Dependent Claims (13, 14, 15, 16, 17)
by the client, providing an indication of the received identification to an intermediary;
by the intermediary, determining which directory service provider contains the identified object;
invoking at least one method of the installed implementation of the pre-defined interface for the determined directory service provider to bind to the identified object; and
providing to the client an indication of the binding to the identified object.
-
-
18. A computer-readable medium whose contents cause a computer system to copy to a selected container object in a directory system a selected object in the directory system, the selected object having a name, by:
-
obtaining a pointer to an intermediary container object representing the selected container object; and
using the obtained pointer to invoke a CopyHere method of the intermediary container object to create in the selected container object a copy of the selected object, passing in the name of the selected object and receiving in return a pointer to an intermediary object representing the copy of the selected object.
-
-
19. A computer-readable medium whose contents cause a computer system to access a selected object in any of a plurality of directory service providers, the selected object having a name within the directory service provider by:
-
invoking an implementation of an IParseDisplayName;
;
ParseDisplayName method, passing in the name of the selected object within the directory service provider and receiving in return a moniker corresponding to an intermediary object representing the selected object; and
using the received moniker to access the selected object via the intermediary object. - View Dependent Claims (20)
invoking an implementation of an IMoniker;
;
BindToObject method, passing in the received moniker and receiving in return a pointer to the intermediary object; and
using the received pointer to access the selected object via the intermediary object.
-
-
21. A computer-readable medium whose contents cause a computer system to read information from a selected object in a directory service by:
-
obtaining a pointer to an intermediary object representing the selected object;
using the obtained pointer to invoke a Getlnfo method of the intermediary object to transfer information from the selected object into the intermediary object; and
using the obtained pointer to invoke a Get method of the intermediary object to read information from the intermediary object. - View Dependent Claims (22)
and wherein the GetInfo method, when invoked, transfers the values of the properties of the selected object into the intermediary object, and wherein the step of invoking the Get method passes in the name of a property of the selected object and receives in return the value of the property having the passed name.
-
-
23. A computer-readable medium whose contents cause a computer system to write information to a selected object in a directory service by:
-
obtaining a pointer to an intermediary object representing the selected object;
using the obtained pointer to invoke a Put method of the intermediary object to transfer information into the intermediary object, passing in the information; and
using the obtained pointer to invoke a SetInfo method of the intermediary object to transfer the information from the intermediary object into the selected object. - View Dependent Claims (24)
and wherein the step of invoking the Put method passes in the name of a property of the selected object and a value for the property having the passed name, and wherein the SetInfo method, when invoked, transfers to the selected object the passed value for the property having the passed name to set the property having the passed name to the passed value.
-
-
25. A computer-readable medium whose contents cause a computer system to create a new object in a selected container object in a directory system, the new object having a class and a name, by:
-
obtaining a pointer to an intermediary container object representing the selected container object in the directory system; and
using the obtained pointer to invoke a CopyHere method of the intermediary container object to create the new object in the selected container object in the directory system, passing in the class and name of the new object and receiving in return a pointer to an intermediary object representing the new object. - View Dependent Claims (26)
using the returned pointer to invoke a Put method of the intermediary object to transfer information into the intermediary object passing in the information; and
using the returned pointer to invoke a SetInfo method of the intermediary object to transfer the information from the intermediary object into the new object.
-
-
27. A computer-readable medium whose contents cause a computer system to enumerate objects contained by a selected container object in a directory system by:
-
obtaining a pointer to an intermediary container object representing the selected container object;
using the obtained pointer to invoke a get_NewEnum method of the intermediary container object receiving in return a pointer to an enumerator object for the selected container object; and
using the received pointer to repeatedly invoke a Next method of the enumerator object, each time receiving in return a pointer to an intermediary object representing one of the objects contained by the selected container object. - View Dependent Claims (28)
using one of the returned pointers to an intermediary object to access the object contained by the container object represented by the intermediary object.
-
-
29. A computer-readable medium whose contents cause a computer system to access a plurality of directory services provided by a plurality of directory service providers in a uniform manner, each directory service provider having an application programming interface, the application programming interface having a behavior for accessing objects of the directory service, wherein at least two of the directory service providers have different application programming interfaces and provide at least one directory service function having similar functionality, by:
-
for each of a plurality of directory service providers, installing an implementation of a pre-defined interface, the pre-defined interface defining a behavior for accessing objects of any of the directory service providers, the implementation of the pre-defined interface providing a mapping from the behavior of an application programming interface of at least one directory service provider to the behavior of the pre-defined interface;
receiving an identification of an object;
determining which directory service provider contains the identified object; and
using the installed implementation of the pre-defined interface for the determined directory service provider to locate and bind to the identified object. - View Dependent Claims (30, 31, 32, 33, 34)
by the client, providing an indication of the received identification to an intermediary;
by the intermediary, determining which directory service provider contains the identified object;
invoking at least one method of the installed implementation of the pre-defined interface for the determined directory service provider to bind to the identified object; and
providing to the client an indication of the binding to the identified object.
-
Specification