Claims
- 1. A method of managing organizational data comprising:
receiving a first hierarchy of data, the data comprising objects with attributes and attribute values; staging the first hierarchy in a buffer in an isomorphic form; and transforming the first hierarchy into a relational directory.
- 2. A method as recited in claim 1 wherein transforming the hierarchy comprises:
projecting an object in the first hierarchy into the relational directory, by creating an object in the relational directory that corresponds to the object in the first hierarchy.
- 3. A method as recited in claim 1 wherein transforming the first hierarchy comprises:
projecting an object from the first hierarchy into the relational directory, by creating an object in the relational directory that corresponds to the object in the first hierarchy; and joining the object in the relational directory to the object in the first hierarchy.
- 4. A method as recited in claim 1 wherein transforming the first hierarchy comprises:
projecting an object in the first hierarchy into the relational directory, by creating an object in the relational directory that corresponds to the object in the first hierarchy; joining the object in the relational directory to the object in the first hierarchy; and importing an attribute from the object in the first hierarchy into the relational directory.
- 5. A method as recited in claim 1 further comprising:
receiving a second hierarchy of data, the data comprising objects with attributes and attribute values; joining an object in the first hierarchy with a corresponding object in the relational directory; associating an attribute from the object in the first hierarchy with the corresponding object in the relational directory; and exporting the attribute to an object in the second hierarchy.
- 6. A method as recited in claim 1 wherein the transforming comprises:
identifying an object in the relational directory that corresponds to an object in the first hierarchy, wherein the object in the relational directory has an object type different than the object type of the object in the first hierarchy; and changing the object type of the object in the relational directory to the object type of the object in the first hierarchy.
- 7. A method as recited in claim 1 wherein the transforming comprises:
mapping a first object type associated with an object in the first hierarchy to a second object type associated with a corresponding object in the relational directory according to projection rules.
- 8. A method as recited in claim 1 wherein the transforming comprises:
choosing one attribute value to import to an object of an object type from among a plurality of attribute values associated with objects of the object type.
- 9. A method as recited in claim 5 further comprising:
associating an attribute from an object in the second hierarchy with the corresponding object in the relational directory.
- 10. A system for managing organizational data originating from a plurality of remote directories comprising:
a plurality of management agents, each management agent in operable communication with an associated one of the plurality of remote directories, and operable to receive a hierarchy of organizational data from the associated remote directory; and a synchronization engine operable to receive the hierarchies from the plurality of management agents and create a relational directory of management data based on the data from the hierarchies and rules related to the management data.
- 11. A system as recited in claim 10 wherein the rules comprise:
projection rules specifying how to project data from one of the hierarchies into the relational directory.
- 12. A system as recited in claim 10 wherein the rules comprise:
join rules specifying how to join data from one of the hierarchies with corresponding data in the relational directory.
- 13. A system as recited in claim 10 wherein the rules comprise:
import attribute flow rules specifying how to import an attribute from one of the hierarchies into the relational directory.
- 14. A system as recited in claim 10 wherein the rules comprise:
import attribute flow rules specifying that a first attribute associated with an object of an object type in a first hierarchy should be linked to a corresponding object in the relational directory, the import attribute flow rules further specifying that a second attribute associated with an object of the object type in a second hierarchy should be linked to the corresponding object in the relational directory
- 15. A computer-readable medium comprising computer-executable instructions to perform a method comprising:
storing a plurality of hierarchies having objects with attributes and attribute values; creating a relational directory based on the objects in the plurality of hierarchies; importing an attribute from an object in one of the plurality of hierarchies to an object in the relational directory; and exporting the attribute to an object in a second of the plurality of hierarchies.
- 16. A computer-readable medium as recited in claim 15, wherein the hierarchies are stored in a first namespace, and the relational directory is created in a second namespace.
- 17. A computer-readable medium as recited in claim 15, wherein the method further comprises:
projecting an object from one of the plurality of hierarchies into the relational directory.
- 18. A computer-readable medium as recited in claim 15, wherein the method further comprises:
creating an object in the relational directory; and joining the object in the relational directory with an object in one of the plurality of hierarchies.
- 19. A computer-readable medium as recited in claim 15, wherein the method further comprises:
identifying an object in the relational directory that corresponds to an object in one of the hierarchies according to a join rule; and linking the corresponding object in the relational directory to the object in one of the hierarchies.
- 20. A computer-readable medium as recited in claim 15, wherein the method further comprises:
identifying an object in the relational directory that corresponds to an object in one of the hierarchies according to a join rule, the object in the relational directory having an object type that is different from the object type of the object in one of the hierarchies; linking the corresponding object in the relational directory to the object in one of the hierarchies; and changing the object type of the corresponding object in the relational directory to the object type of the object in the one of the hierarchies.
- 21. A method of aggregating data from multiple repositories comprising:
creating an aggregated objected in an aggregated space, the aggregated object having an unrecognized object type; identifying a corresponding non-aggregated object having a recognized object type; and changing the object type of the aggregated object to the recognized object type.
- 22. A method as recited in claim 21 wherein the non-aggregated object has one or more attribute values that match one or more corresponding attribute values of the aggregated object.
- 23. A method a recited in claim 21 further comprising:
importing attribute values of unrecognized attribute types to the aggregated object.
- 24. A method as recited in claim 23 wherein the unrecognized attribute types are attribute types for which import attribute flow rules have been defined to specify importing the attribute types.
- 25. A method as recited in claim 23 further comprising:
changing the unrecognized attribute types of the aggregated object to attribute types associated with the non-aggregated object.
- 26. A system for synchronizing data from multiple repositories comprising:
a buffer space for receiving a hierarchy of data; means for converting the hierarchy of data into a relational directory of synchronized data.
- 27. A system as recited in claim 26 wherein the means for converting comprises:
a synchronization engine operable to apply synchronization rules to data in the hierarchy.
- 28. A system as recited in claim 26 further comprising a core space for storing the relational directory.
- 29. A system as recited in claim 26 wherein the means for converting comprises:
a synchronization engine operable to flatten the hierarchy of data by applying one or more types of rules related to the data.
- 30. A system as recited in claim 26 wherein the buffer space is partitioned into one or more buffer space portions, each of the buffer space portions storing an associated hierarchy of data from an associated repository.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] The present application is related to co-pending U.S. patent application Ser. No., ______, Attorney Docket No. MS1-1535, entitled “Declarative Rules for Metadirectory,” by Kim Cameron, Max L. Benson, and James Booth; U.S. patent application Ser. No. ______, Attorney Docket No. MS1-1532, entitled “Attribute Value Selection for Entity Objects,” by Kim Cameron, Max L. Benson, Matthias Leibmann, Edward H. Wayt, Kevin Miller and James Booth; U.S. patent application Ser. No. ______, Attorney Docket No. MS1-1534, entitled “Associating and Using Information in a Metadirectory,” by Max L. Benson; U.S. patent application Ser. No. ______, Attorney Docket No. MS1-1533, entitled “Preview Mode,” by Kim Cameron, Max L. Benson, Derek Murman, Edward H. Wayt, Jeffrey Bisset, Jie Liu, and Jing Wu; U.S. patent application Ser. No. ______, Attorney Docket No. MS1-1554, entitled “Rules Customization and Related Methods,” by Kim Cameron, Matthias Leibmann, Max L. Benson, Jing Wu, Michael Jerger, Edward H. Wayt, and Kenneth Mark; U.S. patent application Ser. No. ______, Attorney Docket No. MS1-1555, entitled “Automated Information Management and Related Methods,” by Stephen Siu, Max L. Benson, and James Booth, all of which are filed concurrently herewith, assigned to the assignee of the present application, and incorporated herein by reference for all that they teach and disclose.