Method and system for uniformly accessing multiple directory...

Data processing: database and file management or data structures – Database design – Data structure types

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C703S007000, C709S241000

Reexamination Certificate

active

06360230

ABSTRACT:

TECHNICAL FIELD
This invention relates to computer-based directory services and, more particularly, to a method and system for uniformly accessing the directory services.
BACKGROUND OF THE INVENTION
Computer systems typically store and maintain a large amount of data relating to the computer system and its users. For example, a computer system may maintain names, email addresses, and phone numbers of the user of the computer system. The computer system may also maintain information relating to the various printers connected to the computer system. This information may include printer characteristics (e.g., laser and color) and names of the users who are authorized to use each printer. Several different types of computer programs, known as “clients,” may need access to this information. For example, one client may be a computer program that needs to determine which printers can be used to print a document in color. Another client may be a computer program that allows a system administrator to update the information, for example, to reflect information relating to a newly added printer. Computer systems have traditionally stored such information in a variety of locations and formats. For example, information relating to a printer may be stored in a configuration file and information relating to a user may be stored in a database. Thus, it was typically very difficult for a programmer who was developing a client to even know where to look for, let alone know how to access, this information.
Some computer systems provide a directory service to help in the storing and maintaining of this information. A directory service provides a repository of this information from which a client can access over the network. Directory services generally refer to the things (e.g., users, printers, or access groups) for which information is maintained as “objects.” Directory services organize such objects hierarchically into a directory. That is, one object, referred to as a container object, may contain various other objects referred to as contained objects. For example, an access group that comprises users who share common access rights to a resource is a container object that contains users that are contained objects. Each object for which a directory service maintains information has a unique identifier (e.g., a name) by which a client can identify the object. Although directory services were originally developed to maintain information relating to computer systems, they may be used to maintain information unrelated to computer systems. For example, a directory service can be used by an airplane manufacturer to maintain a part list for the components and sub-components of an airplane.
FIG. 1
illustrates a sample hierarchy of a directory service. Each block represents an object of a particular “object class.” For example, an object representing a company would have an object class named “company.” Each object class defines the properties of objects of that object class. For example, the company object class may define the properties “name” and “address.” Each object has a property value for each property defined for the object class. For example, an object of the company object class may have the property value “MS” for the name property. Block
101
corresponds to an object of the company object class and has a value for the name and address properties. Block
102
corresponds to an object of the division object class and has a value for the name of the division (e.g., “system”). Block
103
corresponds to an object of the user object class and has a value for the email address of the user. Because the directory service is hierarchically organized, each object can be uniquely identified by a path from the root to the object. For example, object
102
is uniquely identified by the path “Company=MS\Division=Systems”. The directory service provides a conceptual finite space, referred to as a namespace, in which a given name can be resolved. The directory service unambiguously resolves paths to objects in the directory.
Various vendors provide directory service systems. Each vendor typically designs and implements an application programming interface (API) to allow clients to access its directory service system. Thus, each directory service system may, and typically does, have very different API sets. If a client needs to use different directory service systems, for example, because the client operates in an environment that includes personal computers and mainframe computers, the programmer of the client would need to know about the API sets of each directory service and design the client to support each of the API sets.
Although each API set is vendor-specific, the API sets generally provide similar functionality. The API sets generally includes functions for accessing property values of the objects and functions for defining new object classes. The functions for manipulating objects are, for example, OpenObject, ReadObject, WriteObject, ListObjects, CloseObject, CreateObject, and DeleteObject. The function OpenObject is passed the identification (e.g., path) to an object and returns a handle that identifies that object. This handle is subsequently used by the client to identify the open object to the directory service. The function OpenObject uses the identification to identify the object and then locates the properties of the identified object. The function ReadObject is passed a handle to an open object and a list of the names of the properties of that object that are to be retrieved. The function ReadObject returns the current property values for those properties. The function WriteObject is passed a handle to an open object and a list of property name and property value pairs. The function WriteObject sets each named property in the open object to the property value of the pair. The function ListObjects is passed a handle to an open object and returns a list containing the identification of each object that is contained within the open object. The function CloseObject is passed a handle to an open object and closes the object so that it can no longer be accessed with that handle. The function CreateObject is passed an object class, creates an object of the object class that is contained within the open object, and returns a handle to the contained object. The function DeleteObject is passed a handle to an open object and removes the open object from its container object.
The functions for defining the object classes are CreateObjectClass, DeleteObjectClass, CreateProperty, DeleteProperty, AddPropertyToObjectClass, DeletePropertyFromObjectClass, and ListProper-tiesOfObjectClass. The function CreateObjectClass is passed the name of a new object class and creates a new object class. Once an object class is created, then a client can create objects of that object class. The function CreateProperty is passed the name of a property and the property type (e.g., integer or string) and creates a property of that property type (e.g., property name of “address” with property type of “string”). The function AddPropertyToObjectClass is passed the name of an object class and the name of a property and adds the named property as a property of the named object class. The function ListPropertiesOfObjectClass is passed the name of an object class and returns a list of the properties that have been added to that object class. The functions DeleteObjectClass, DeleteProperty, and DeletePropertyFromObjectClass perform the behavior suggested by their names.
The present invention is described below using some object-oriented techniques; thus, an overview of well-known object-oriented programming techniques is provided. (The term “object” has many different meanings when used in different contexts. In the remainder of the background, the term “object” is used in an object-oriented sense to refer to an in-memory data structure.) Two common characteristics of object-oriented programming languages are support for data encapsulation and data type inheritance. Data encapsulation refers to the binding

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and system for uniformly accessing multiple directory... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method and system for uniformly accessing multiple directory..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and system for uniformly accessing multiple directory... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2878877

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.