Claims
- 1. A method of synchronizing data comprising:
receiving data from a data repository; storing the data in a buffer; and applying rules to the buffer data, the rules specifying criteria for associating the buffer data with data in a core.
- 2. A method as recited in claim 1 further comprising:
in response to applying the rules to a buffer object in the buffer data, creating an associated core object in the core.
- 3. A method as recited in claim 1 further comprising:
in response to applying the rules to a buffer object in the buffer data, creating an associated core object in the core; and joining the core object with the buffer object.
- 4. A method as recited in claim 1 further comprising:
in response to applying the rules to a buffer object in the buffer data, creating an associated core object in the core; joining the core object with the buffer object; and importing a buffer attribute from the buffer object to the core object.
- 5. A method as recited in claim 1 wherein the rules comprise a schema, the schema comprising:
a sub-schema element modeling data types from the data repository.
- 6. A method as recited in claim 5 wherein the schema further comprises:
an attribute-inclusion element comprising one or more attributes to be imported into the core; a projection element specifying criteria for creating a core object related to a buffer object; and a join element specifying criteria related to linking the core object with the buffer object.
- 7. A method as recited in claim 6 wherein the schema further comprises:
a connector-filter element specifying criteria related to preventing linking the core object with the buffer object; and an export-attribute-flow element specifying criteria related to associating an attribute of the core object with the buffer object.
- 8. A method as recited in claim 6 wherein the schema further comprises:
a provisioning-cleanup element specifying an action to take in response to unlinking the core object from the buffer object.
- 9. A method as recited in claim 6 wherein the schema further comprises:
an extension element specifying an extension related to an assembly to be employed to carry out one or more of the elements in the schema.
- 10. A method for synchronizing data from a plurality of data repositories comprising:
receiving a data set from each of the plurality of data repositories, each data set comprising one or more repository objects, each repository object having one or more repository attributes associated with one of the data repositories; retrieving a plurality of schemas, each schema specifying criteria related to one of the data sets; and aggregating repository objects in an aggregated space based on the data sets and the schema criteria.
- 11. A method as recited in claim 10 further comprising storing the data sets in a buffer.
- 12. A method as recited in claim 11 wherein the storing comprises storing each of the data sets in an associated portion of the buffer.
- 13. A method as recited in claim 10 wherein at least one of the plurality of schemas comprises:
a sub-schema element specifying object types and attributes of objects associated with the data repository.
- 14. A method as recited in claim 13 further comprising retrieving the sub-schema from the associated data repository.
- 15. A method as recited in claim 10 wherein at least one of the schemas comprise:
a projection element specifying criteria for creating an aggregated object in the aggregated space related to a repository object in the data set associated with the schema; and a join element specifying criteria related to linking the aggregated object to the repository object.
- 16. A method as recited in claim 10 wherein at least one of the schemas comprise:
an attribute-inclusion element specifying an attribute to be imported from the associated data repository into the aggregated space.
- 17. A method as recited in claim 10 wherein at least one of the schemas comprise:
an attribute-inclusion element specifying an attribute to be imported from the associated data repository into the aggregated space; and an export-attribute-flow element specifying criteria related to associating the imported attribute with one or more repository objects in one or more of the data sets.
- 18. A method as recited in claim 10 wherein at least one of the schemas comprise:
a join element specifying criteria related to linking an aggregated object in the aggregated space to a repository object in one of the data sets; and a provisioning-cleanup element specifying an action to take in response to unlinking the aggregated object from the repository object.
- 19. A method as recited in claim 10 wherein the aggregating comprises:
associating a first attribute of a first repository object of an object type with an aggregated object in the aggregated space; and associating a second attribute of a second repository object of the object type with the aggregated object.
- 20. A computer-readable medium comprising a computer-readable schema for use in a metadirectory operable to synchronize a plurality of data repositories, the schema comprising:
a schema sub-element associated with one of the plurality of data repositories, wherein the schema sub-element specifies object types associated with objects from the data repository.
- 21. A computer-readable medium as recited in claim 20, wherein the schema sub-element further specifies attributes associated with objects from the data repository.
- 22. A computer-readable medium as recited in claim 20, wherein the schema further comprises:
a projection element specifying criteria for creating an aggregated object in an aggregated space, the aggregated object related to a repository object from one of the plurality of data repositories; and a join element specifying criteria related to linking the aggregated object to the repository object.
- 23. A computer-readable medium as recited in claim 20, wherein the schema further comprises:
a projection element specifying criteria for creating an aggregated object in an aggregated space, the aggregated object related to a repository object from one of the plurality of data repositories; a join element specifying criteria related to linking the aggregated object to the repository object; and a provisioning-cleanup element specifying an action to take in response to unlinking the aggregated object from the repository object.
- 24. A computer-readable medium as recited in claim 20, wherein the schema further comprises:
a projection element specifying criteria for creating an aggregated object in an aggregated space, the aggregated object related to a repository object from one of the plurality of data repositories; a join element specifying criteria related to linking the aggregated object to the repository object; and a provisioning-cleanup element specifying an action to take in response to unlinking the aggregated object from the repository object.
- 25. A computer-readable medium as recited in claim 20, wherein the schema further comprises:
a projection element specifying criteria for creating an aggregated object in an aggregated space, the aggregated object related to a repository object from one of the plurality of data repositories; a join element specifying criteria related to linking the aggregated object to the repository object; a provisioning-cleanup element specifying an action to take in response to unlinking the aggregated object from the repository object; and an attribute-inclusion element specifying an attribute of the repository object to be associated with the aggregated object.
- 26. A computer-readable medium as recited in claim 20, wherein the schema further comprises:
a projection element specifying criteria for creating an aggregated object in an aggregated space, the aggregated object related to a repository object from one of the plurality of data repositories; a join element specifying criteria related to linking the aggregated object to the repository object; a provisioning-cleanup element specifying an action to take in response to unlinking the aggregated object from the repository object; an attribute-inclusion element specifying an attribute of the repository object to be associated with the aggregated object; and an export-attribute-flow element specifying criteria related to associating the imported attribute with one or more repository objects.
- 27. A computer-readable medium as recited in claim 20, wherein the schema further comprises:
an element specifying a script.
- 28. A computer-readable medium as recited in claim 20, wherein the schema further comprises:
connector-filter criteria specifying one or more repository object types that are not to be linked to an object in the metadirectory.
- 29. A computer-readable medium as recited in claim 28, wherein the connector-filter criteria comprises:
attribute criteria specifying attribute values associated with object types that are not to be linked to an object in the metadirectory.
- 30. A computer-readable medium as recited in claim 28, wherein the one or more repository object types are selected from a set of object types comprising:
a contact object type; a user object type; an organization object type; and an organizational unit object type.
- 31. A metadirectory for aggregating data from a plurality of remote repositories comprising:
a plurality of management agents, each management agent associated with one of the plurality of remote repositories; a connector space operable to receive data from data from the plurality of management agents; and a synchronization engine operable to aggregate data from the connector space based on declarative rules related to the management agents.
- 32. A metadirectory as recited in claim 30 wherein the declarative rules comprise a plurality of management agent schemas, each management agent schema associated with one of the management agents.
- 33. A metadirectory as recited in claim 30 further comprising an aggregated space operable to receive aggregated data from the connector space.
- 34. A metadirectory as recited in claim 32 wherein each of the plurality of management agents is further operable to retrieve a repository schema from the associated remote repository, the repository schema specifying data object types used by the associated remote repository.
- 35. A metadirectory as recited in claim 34 wherein each of the repository schemas further specify attributes used by the associated remote repository.
- 36. A metadirectory as recited in claim 32 wherein each of the management agent schemas comprise a repository type element specifying the type of repository associated with the management agent.
- 37. A metadirectory as recited in claim 36 wherein the repository type element is selected from a set of repository types comprising:
an Lightweight Directory Access Protocol repository type; a file repository type; and a database repository type.
- 38. A metadirectory as recited in claim 37 wherein the repository type element specifies a repository sub-type selected from a set of repository sub-types comprising
an Active Directory® sub-type; a delimited text sub-type; a Structured Query Language (SQL) sub-type; and an Oracle® sub-type.
- 39. A metadirectory as recited in claim 30 wherein each of the management agents are further operable to convert data from the associated remote repository into data in an isomorphic form.
- 40. A metadirectory as recited in claim 32, wherein each of the management agent schemas comprise Extensible Markup Language (XML) elements. 41. A metadirectory as recited in claim 30 further comprising a metadirectory schema applicable to all management agents, the metadirectory schema specifying import-attribute-flow rules related to importing attributes from the connector space into an aggregated space.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] The present application is related to co-pending U.S. patent application Ser. No. ______, Attorney Docket No. MS1-1576, entitled “Relational Directory,” by Kim Cameron, Max L. Benson, Matthias Leibmann, Mark Brown, 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.