Claims
- 1. A metadirectory rule for defining metadirectory operations, comprising:
a static part; and a flexible part, wherein the static part maintains stability of an associated metadirectory upon alteration of the flexible part.
- 2. The metadirectory rule as recited in claim 1, wherein the flexible part is altered by custom logic imported into the metadirectory rule by the static part.
- 3. The metadirectory rule as recited in claim 2, wherein the custom logic is imported from outside the associated metadirectory and from outside rules defining the associated metadirectory.
- 4. A method, comprising:
providing rules containing inherent logic for specifying a directory system, wherein the directory system comprises:
a buffer to accept information from multiple information sources, a core to accept selected information from the buffer, the selected information providing unified information from the information sources, and services to move information between the information sources and the buffer and between the buffer and the core; and providing a means for inputting custom logic into the rules.
- 5. The method as recited in claim 4, wherein the custom logic is not obtainable from the inherent logic.
- 6. The method as recited in claim 5, wherein the inherent logic integrates the custom logic to specify the directory system.
- 7. The method as recited in claim 5, wherein the custom logic specifies at least part of a service in the directory system.
- 8. The method as recited in claim 5, wherein the rules define a sequence of service actions for processing information between the information sources and the buffer and between the buffer and the core.
- 9. The method as recited in claim 8, wherein each of the rules is capable of receiving custom logic to specify custom service actions at strategic points in the sequence of service actions.
- 10. The method as recited in claim 9, wherein one of the multiple rules is capable of receiving custom logic for deciding whether information from one of the multiple information sources is already represented in the buffer.
- 11. The method as recited in claim 9, wherein one of the multiple rules is capable of receiving custom logic for deciding whether information from one of the multiple information sources that is represented in the buffer should be selected for the core.
- 12. The method as recited in claim 11, wherein if the information represented in the buffer is selected for the core, then the rule is capable of receiving custom logic for deciding in what manner the information selected for the core is to represent the information represented in the buffer.
- 13. The method as recited in claim 9, wherein one of the multiple rules is capable of receiving custom logic for deciding whether a piece of information in the buffer should be logically linked to a piece of information in the core.
- 14. The method as recited in claim 9, wherein one of the multiple rules is capable of receiving custom logic for deciding which attributes and values to transfer between information in the multiple information sources and information in the buffer representing the information in the multiple information sources.
- 15. The method as recited in claim 9, wherein one of the multiple rules is capable of receiving custom logic for deciding which attributes and values to transfer between information in buffer and information in the core representing the information in the buffer.
- 16. The method as recited in claim 9, wherein one of the multiple rules is capable of receiving custom logic for deciding how to control the multiple information sources using the information in the core.
- 17. The method as recited in claim 9, wherein one of the multiple rules is capable of receiving custom logic for deciding which information in the core to export to all the multiple information sources via the information in the buffer.
- 18. The method as recited in claim 9, wherein one of the multiple rules is capable of receiving custom logic for deciding which information in the core to delete.
- 19. The method as recited in claim 18, wherein if a piece of information in the core is deleted, then one of the multiple rules is capable of receiving custom logic for deciding which information in the buffer to delete, wherein the information in the buffer was linked to the deleted piece of information in the core.
- 20. The method as recited in claim 19, wherein if a piece of information in the core is deleted, then one of the multiple rules is capable of receiving custom logic for deciding which information in the multiple information sources to buffer to delete or modify.
- 21. A rule for defining the logic of a metadirectory system defined by rules, comprising:
a non-flexible rule part; and a flexible rule part, wherein the flexible rule part requests custom logic for defining the metadirectory system.
- 22. The rule as recited in claim 21, wherein the non-flexible rule part maintains a stable logic structure and function of the metadirectory system.
- 23. The rule as recited in claim 22, wherein the non-flexible rule part maintains a stable logic and function of the metadirectory system by integrating the custom logic with the inherent logic in the rules.
- 24. The rule as recited in claim 22, wherein the custom logic is not inherent in the rules.
- 25. The rule as recited in claim 22, wherein the custom logic is from a metadirectory system user.
- 26. The rule as recited in claim 22, wherein the rule is customized using customization options inherent in the metadirectory system in addition to requesting custom logic that is not inherent in the metadirectory system.
- 27. A method, comprising:
performing a first action in a directory according to logic in a rule, wherein the rule contains inherent logic for defining at least part of the directory and for requesting custom logic to define at least part of the directory system; requesting custom logic according to the logic in the rule; and performing a second action in the directory according to the custom logic.
- 28. The method as recited in claim 27, wherein the requesting includes performing a call out for the custom logic to be supplied by a custom logic source outside the inherent logic of the rule.
- 29. The method as recited in claim 28, wherein the custom logic is from a directory user.
- 30. The method as recited in claim 28, wherein the custom logic is computer programming logic written in one of a plurality of computer programming languages.
- 31. The method as recited in claim 28, wherein the custom logic is computer programming language in one format of a plurality of formats.
- 32. The method as recited in claim 27, wherein the custom logic is a rule extension.
- 33. The method as recited in claim 32, wherein the rule extension is a .NET FRAMEWORK assembly.
- 34. A rule for defining at least part of a metadirectory, comprising:
inherent logic; and a means for requesting custom logic.
- 35. The rule as recited in claim 34, wherein the metadirectory includes a rules layer for defining a services layer and a storage layer.
- 36. The rule as recited in claim 35, wherein the storage layer includes a core storage area and a buffer storage area, the buffer area for transferring information between the core storage area and multiple information sources and the core storage area for storing information selected from the buffer storage area.
- 37. An information system, comprising:
a rules layer of flexible rules for defining the information system; a storage layer having a buffer and a core defined by the flexible rules, wherein the buffer holds buffer information selected by the flexible rules to be moved between the buffer and at least one of multiple disparate information sources and wherein the core holds core information selected by the flexible rules to be moved between the core and the buffer; and an agents layer having agents defined by the flexible rules for moving the buffer information and the core information.
- 38. The information system as recited in claim 37, wherein the core information includes at least attributes of the buffer information selected by the flexible rules.
- 39. The information system as recited in claim 38, wherein the buffer information is from more than one of the multiple disparate information sources.
- 40. The information system as recited in claim 37, wherein an agent performs staging of information from one of the disparate information sources to the buffer.
- 41. The information system as recited in claim 37, wherein an agent performs exporting of information from the buffer to one of the disparate information sources.
- 42. The information system as recited in claim 37, wherein an agent performs synchronizing between the core information and the buffer information.
- 43. A metadirectory, comprising:
a rules layer having at least one flexible rule; a storage layer defined by a rule; and an agents layer defined by a rule.
- 44. The metadirectory as recited in claim 43, wherein the flexible rule has a non-flexible rule part for maintaining stability of the metadirectory and a flexible rule part for allowing customization of the flexible rule.
- 45. The metadirectory as recited in claim 44, wherein the flexible rule part allows multiple customizations of the flexible rule.
- 46. The metadirectory as recited in claim 45, wherein the multiple customizations include at least one customization selected from customizations inherent in the metadirectory and at least one customization supplied by a user.
- 47. The metadirectory as recited in claim 46, wherein the flexible rule calls out at a point in a process being performed by the flexible rule for a user input.
- 48. The metadirectory as recited in claim 47, wherein the user input is a piece of custom logic.
- 49. A user customizable metadirectory, comprising:
a rules layer; a services layer; and a storage layer, wherein the rules layer maintains a stability of the metadirectory while accepting custom logic from outside the metadirectory for creating a flexibility in the services layer and in the storage layer.
- 50. An identity information management process for a metadirectory having customizable logic to define the metadirectory, services to manipulate information, a core for storing unified information from multiple information sources, and a buffer communicatively coupled to the core storage, comprising:
discovering information in one of the multiple information sources; and calling outside the customizable logic for custom logic to modify a staging logic for staging at least some of the information in the buffer.
- 51. The identity information management process as recited in claim 50, further comprising calling outside the customizable logic for custom logic to modify a projecting logic for projecting at least some of the information from the buffer to the core.
- 52. The identity information management process as recited in claim 50, further comprising calling outside the customizable logic for custom logic to modify a connecting logic for connecting information in the core to information in the buffer.
- 53. The identity information management process as recited in claim 50, further comprising calling outside the customizable logic for custom logic to modify an attribute importing and exporting logic for importing and exporting attributes between information in the core and information in the buffer, or between information in the buffer and information in at least one of the multiple information sources.
- 54. The identity information management process as recited in claim 50, further comprising calling outside the customizable logic for custom logic to modify a provisioning logic for provisioning information flow between a piece of unified information in the core and a piece of information in the buffer.
- 55. The identity information management process as recited in claim 50, further comprising calling outside the customizable logic for custom logic to modify a deprovisioning logic for removing information flow between unified information or deleted unified information in the core and the multiple information sources, wherein the unified information represents corresponding information in the multiple information sources.
- 56. A metadirectory data structure, comprising:
a set of rules customizable by custom logic from outside the metadirectory data structure; a set of services defined by the set of rules; and a storage core having a staging buffer.
- 57. The metadirectory data structure as recited in claim 56, wherein a stability of the metadirectory structure is maintained by the set of rules upon customization of one or more rules in the set of rules by the custom logic.
- 58. An identity information engine, comprising:
a rules engine for calling customizable rules that define a metadirectory; an extension host for calling outside the metadirectory for an extension to one of the customizable rules, wherein the extension includes custom logic from outside the metadirectory and from outside the customizable rules; and a control module for moving information according to the rules and the custom logic.
- 59. The identity information engine as recited in claim 58, further comprising a core interface for moving information to and from a storage core for identity information.
- 60. The identity information engine as recited in claim 57, further comprising a buffer interface for moving information to and from a storage buffer for staging identity information for possible inclusion in the storage core.
- 61. The identity information engine as recited in claim 57, further comprising an information source interface for moving information to and from multiple information sources.
- 62. One or more computer readable media containing instructions that are executable by a computer to perform actions, comprising:
defining a metadirectory system via rules, wherein the metadirectory system comprises:
a buffer to accept information from multiple information sources, a core to accept selected information from the buffer, the selected information providing unified information from the information sources, and services to move information between the information sources and the buffer and between the buffer and the core; and providing a means for inputting custom logic into the rules.
- 63. The one or more computer readable media as recited in claim 62, wherein the custom logic is added to the inherent logic.
- 64. The one or more computer readable media as recited in claim 62, wherein the inherent logic and the custom logic defines the metadirectory system, while keeping the directory system safe from significant error.
- 65. The one or more computer readable media as recited in claim 62, wherein the rules define a sequence of service actions for processing information between the information sources and the buffer and between the buffer and the core.
- 66. The one or more computer readable media as recited in claim 65, wherein each of the rules is capable of receiving custom logic to specify custom service actions at strategic points in the sequence of service actions.
- 67. A flexible metadirectory rule, comprising:
a call out element, wherein the flexible metadirectory rule imports custom logic to increase its own flexibility; and a static logic element, wherein the flexible metadirectory rule controls its own flexibility to maintain a stability of the metadirectory.
- 68. The flexible metadirectory rule as recited in claim 67, further comprising a plurality of the flexible metadirectory rules, wherein one flexible metadirectory rule within the plurality controls its own flexibility based on custom logic imported into one or more other flexible metadirectory rules in the plurality.
- 69. The flexible metadirectory rule as recited in claim 68, wherein the plurality of flexible metadirectory rules define a sequence of services comprising a flexible metadirectory information management process.
- 70. The flexible metadirectory rule as recited in claim 69, wherein the flexible metadirectory information management process controls its own flexibility to remain portable between many different types of business settings.
- 71. The flexible metadirectory rule as recited in claim 67, wherein the call out element calls outside of the metadirectory for further processing.
- 72. The flexible metadirectory rule as recited in claim 71, wherein the call out element calls out to a workflow system outside the metadirectory system.
- 73. The flexible metadirectory rule as recited in claim 67, wherein the call out element calls out for custom auditing logic or an external auditing operation.
- 74. The flexible metadirectory rule as recited in claim 67, wherein the call out element calls out for one of custom pre-processing logic and post-processing logic.
- 75. The flexible metadirectory rule as recited in claim 67, wherein the call out element calls out for a data transformation.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The instant application is related to co-pending U.S. patent application Ser. No. ______, Applicant 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. ______, Applicant Docket No. MS1-1535, entitled “Declarative Rules for Metadirectory,” by Kim Cameron, Max L. Benson, and James Booth; U.S. patent application Ser. No. ______, Applicant Docket No. MS1-1576 entitled “Relational Directory,” by Kim Cameron, James Booth, Matthias Leibmann, Max L. Benson and Mark Brown; U.S. patent application Ser. No. ______, Applicant Docket No. MS1-1534, entitled “Associating and Using Information in a Metadirectory,” by Max L. Benson; U.S. patent application Ser. No. ______, Applicant 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. ______, Applicant Docket No. MS1-1555, entitled “Automated Information Management and Related Methods,” by Max L. Benson, Stephen Siu, and James Booth; all of which are filed concurrently herewith, assigned to the assignee of the present invention, and incorporated herein by reference for all that they teach and disclose.