Claims
- 1. A directory service arrangement comprising a data base using a plurality of tables, each table having a plurality of rows and columns, said tables being organised corresponding to their function.
- 2. A directory service arrangement as claimed in claim 1 wherein said plurality of tables comprises at least a first table allowing a new attribute type to be defined by adding a row to the table, a second table defining the attributes within each object, and a third table defining the relationship between objects.
- 3. A directory service arrangement comprising:
a database using a plurality of tables, each table having a plurality of rows and columns, and storing arbitrary data, and means for processing said arbitrary data using a fixed set of queries/services.
- 4. A directory service arrangement as claimed in claim 3, wherein said database is a relational database.
- 5. A directory service arrangement as claimed in claim 4, wherein said database supports the structured query language (SQL).
- 6. A method of providing tables in a directory service apparatus, comprising:
establishing a plurality of tables in a directory service apparatus, each of said tables comprising a plurality of columns, and defining the plurality of tables on the basis of corresponding functions related to said services.
- 7. A method as claimed in claim 6, wherein each service is modeled and the relationships among said services is predetermined.
- 8. A method as claimed in claim 6, in which services provided by the directory service are performed at least partially in a database that supports SQL.
- 9. A method as claimed in claim 7, in which services provided by the directory service are performed at least partially in a database that supports SQL.
- 10. A method of processing arbitrary data in a directory service apparatus, said apparatus comprising a plurality of tables established on the basis of respective functions, the method including the step of:
processing the arbitrary data using a fixed set of queries/services.
- 11. A method of managing data in a directory service arrangement supporting at least one of X.500 or LDAP services, wherein data is identifiable by a predetermined criteria and is stored in a database medium, the method comprising the step of:
clustering data of the same criteria in the same area of the database medium.
- 12. A method as claimed in claim 11, wherein the criteria comprises data type.
- 13. A method as claimed in claim 11, wherein the criteria comprises entry identifier (EID).
- 14. A method as claimed in claim 11, wherein the criteria comprises a parent identifier.
- 15. A method as claimed in claim 11, wherein the criteria compirises data type and value.
- 16. A method as claimed in claim 11, wherein the criteria comprises parent identifier and entry name.
- 17. A method as claimed in claim 11, wherein the criteria comprises attribute type for the purpose of a search.
- 18. A method as claimed in claim 11, wherein the criteria comprises attribute type and similar value(s) for the purpose of a search.
- 19. A method as claimed in claim 11, further comprising:
searching clustered data on the basis of the criteria.
- 20. A method as claimed in claim 12, further comprising:
searching clustered data on the basis of the criteria.
- 21. A method as claimed in claim 13, further comprising:
searching clustered data on the basis of the criteria.
- 22. A method as claimed in claim 14, further comprising:
searching clustered data on the basis of the criteria.
- 23. A method as claimed in claim 15, further comprising:
searching clustered data on the basis of the criteria.
- 24. A method as claimed in claim 16, further comprising:
searching clustered data on the basis of the criteria.
- 25. A method as claimed in claim 17, further comprising:
searching clustered data on the basis of the criteria.
- 26. A method as claimed in claim 18, further comprising:
searching clustered data on the basis of the criteria.
- 27. The invention as herein disclosed.
- 28. A method of managing data as claimed in claim 11, wherein the step of clustering data comprises:
clustering data of similar criteria for the purpose of retrieving data.
- 29. A method of managing data as claimed in claim 12, wherein the step of clustering data comprises:
clustering data of similar criteria for the purpose of retrieving data.
- 30. A method of managing data as claimed in claim 13, wherein the step of clustering data comprises:
clustering data of similar criteria for the purpose of retrieving data.
- 31. A method of managing data as claimed in claim 14, wherein the step of clustering data comprises:
clustering data of similar criteria for the purpose of retrieving data.
- 32. A method of managing data as claimed in claim 15, wherein the step of clustering data comprises:
clustering data of similar criteria for the purpose of retrieving data.
- 33. A method of managing data as claimed in claim 16, wherein the step of clustering data comprises:
clustering data of similar criteria for the purpose of retrieving data.
- 34. A method of managing data as claimed in claim 17, wherein the step of clustering data comprises:
clustering data of similar criteria for the purpose of retrieving data.
- 35. A method of managing data as claimed in claim 18, wherein the step of clustering data comprises:
clustering data of similar criteria for the purpose of retrieving data.
- 36. A method of managing data as claimed in claim 28, further comprising:
retrieving clustered data on the basis of the criteria.
- 37. A method of managing data as claimed in claim 29, further comprising:
retrieving clustered data on the basis of the criteria.
- 38. A method of managing data as claimed in claim 30, further comprising:
retrieving clustered data on the basis of the criteria.
- 39. A method of managing data as claimed in claim 31, further comprising:
retrieving clustered data on the basis of the criteria.
- 40. A method of managing data as claimed in claim 32, further comprising:
retrieving clustered data on the basis of the criteria.
- 41. A method of managing data as claimed in claim 33, further comprising:
retrieving clustered data on the basis of the criteria.
- 42. A method of managing data as claimed in claim 34, further comprising:
retrieving clustered data on the basis of the criteria.
- 43. A method of managing data as claimed in claim 35, further comprising:
retrieving clustered data on the basis of the criteria.
- 44. A method of managing data as claimed in claim 17, wherein the step of clustering data comprises:
clustering said data around nodes for the purpose of navigating.
- 45. A method of managing data as claimed in claim 44, further comprising navigating in said database on the basis of said clustered data.
- 46. A method of managing data as claimed in claim 11, wherein the step of data clustering is effected by adding at least one index to each of a plurality of tables.
- 47. A method of managing data as claimed in claim 12, wherein the step of data clustering is effected by adding at least one index to each of a plurality of tables.
- 48. A method of managing data as claimed in claim 13, wherein the step of data clustering is effected by adding at least one index to each of a plurality of tables.
- 49. A method of managing data as claimed in claim 14, wherein the step of data clustering is effected by adding at least one index to each of a plurality of tables.
- 50. A method of managing data as claimed in claim 15, wherein the step of data clustering is effected by adding at least one index to each of a plurality of tables.
- 51. A method of managing data as claimed in claim 16, wherein the step of data clustering is effected by adding at least one index to each of a plurality of tables.
- 52. A method of managing data as claimed in claim 17, wherein the step of data clustering is effected by adding at least one index to each of a plurality of tables.
- 53. A method of managing data as claimed in claim 18, wherein the step of data clustering is effected by adding at least one index to each of a plurality of tables.
- 54. A method of managing data as claimed in claim 28, wherein the step of data clustering is effected by adding at least one index to each of a plurality of tables.
- 55. A method of managing data as claimed in claim 29, wherein the step of data clustering is effected by adding at least one index to each of a plurality of tables.
- 56. A method of managing data as claimed in claim 30, wherein the step of data clustering is effected by adding at least one index to each of a plurality of tables.
- 57. A method of managing data as claimed in claim 31, wherein the step of data clustering is effected by adding at least one index to each of a plurality of tables.
- 58. A method of managing data as claimed in claim 32, wherein the step of data clustering is effected by adding at least one index to each of a plurality of tables.
- 59. A method of managing data as claimed in claim 33, wherein the step of data clustering is effected by adding at least one index to each of a plurality of tables.
- 60. A method of managing data as claimed in claim 34, wherein the step of data clustering is effected by adding at least one index to each of a plurality of tables.
- 61. A method of managing data as claimed in claim 35, wherein the step of data clustering is effected by adding at least one index to each of a plurality of tables.
- 62. A method of arranging tables of a directory service arrangement, for providing directory services, comprising primary services and secondary services, the method comprising the steps of:
a. decomposing tables around primary service relationships, and b. deriving secondary services via joins.
- 63. A method as claimed in claim 62, in which in said decomposing step, at least one of the following consideration are made:
(i) columns that have strong relationships are to be kept together, thereby avoiding unnecessary joins; (ii) if the number of significant rows in a given column is independent of the other related columns, then that given column is considered a candidate for a separate table; (iii) if a column is only used for locating information as an input, or only used for returning results as an output, then it is considered a candidate for its own table; (iv) if a column is used as a key for more than one service, then it is considered a primary key and therefore a candidate for its own table; or (v) keys are to be unique or at least strong and not repetitious.
- 64. A method of decomposing a principal database design, having a PROPERTY table comprising at least a column for object name and parent name, in a directory service system, the method including the step of:
applying functional decomposition to the PROPERTY table, and deriving a conceptual design having a HIERARCHY table, an OBJECT table, and an ATTRIBUTE table.
- 65. A method of decomposing a conceptual design in a directory service system offering a plurality of services and being operative with a database having a plurality of tables, including a HIERARCHY table and an OBJECT table, each comprising a plurality of columns, the method including the steps of:
a. applying service decomposition to said HIERARCHY table, thereby deriving at least two table(s) comprising a DIT (Directory Information Tree) table having information required for navigation, a NAME table having information required for returning names, including raw relative distinguished name (RDN), a TREE table having information about an entry's path, and an ALIAS table having entries that are aliases: and b. applying service decomposition to said OBJECT table, thereby deriving at least two tables, a SEARCH table for resolving filters in a Search service, said SEARCH table including one row for each attribute value of each entry, and an ENTRY table for returning values in Read and Search services, said ENTRY table having one row for each attribute value of each entry, and c. deriving a logical design having tables defined in steps a and b above and an ATTR (ATTRIBUTE) table.
- 66. A method of decomposing a logical design of a directory service system into a physical design, comprising the steps of:
applying physical decomposition to the logical design, thereby deriving the physical design.
- 67. A directory service system for one or more objects, wherein said system comprises:
a plurality of tables according to a principal design, a conceptual design and a logical design, wherein said principal design comprises at least one table which is a PROPERTY table.
- 68. A directory service system as claimed in claim 67, further comprising a plurality of tables according to a conceptual design.
- 69. A directory service system as claimed in claim 67, further comprising a plurality of tables according to a logical design.
- 70. A directory service system as claimed in claim 68, further comprising a plurality of tables according to a logical design.
- 71. A directory service system as claimed in claim 67, wherein the PROPERTY table has columns comprising at least one column for each of the following items:
an object name, comprising the name of said object; a parent name, comprising the name of a parent of said object; a type, comprising the type of a value of said object; a syntax, comprising the form of a value of said object; and value, comprising the contents of a value of said object.
- 72. A directory service system as claimed in claim 68, wherein the PROPERTY table has columns comprising at least one column for each of the following items:
an object name, comprising the name of said object; a parent name, comprising the name of a parent of said object; a type, comprising the type of a value of said object; a syntax, comprising the form of a value of said object; and value, comprising the contents of a value of said object.
- 73. A directory service system as claimed in claim 69, wherein the PROPERTY table has columns comprising at least one column for each of the following items:
an object name, comprising the name of said object; a parent name, comprising the name of a parent of said object; a type, comprising the type of a value of said object; a syntax, comprising the form of a value of said object; and value, comprising the contents of a value of said object.
- 74. A directory service system, having a plurality of tables arranged in a conceptual design, wherein each table comprises a plurality of columns, said system comprising:
a HIERARCHY table, adapted to contain information about objects, comprising their parents, their names, their relative positions in a hierarchy, and if they are aliases, for defining the structural relationship between objects; an OBJECT table, adapted to contain information for finding a particular value and for retrieving values, for defining the attribute values within each object; and an ATTRIBUTE table, adapted to contain information about the attributes of object(s).
- 75. A system as claimed in claim 74, wherein
the HIERARCHY table comprises a separate column for at least an entry ID (EID) which correlates each object with its hierarchy information, a Parent value, and a Name value, the OBJECT table comprises a separate column for at least an EID value, an attribute ID (AID) value which correlates each value in the OBJECT table with its attribute information, a value identifier (VID) to identify values within an attribute in the OBJECT table, a Disting value to flag attribute values for naming an entry, and at least one value for each object attribute, and the ATTRIBUTE table comprises a separate column for at least an AID value, a Type value which identifies object type, a Syntax value which identifies object form, and an object identifier (ObjectID) for conversion between directory service identifiers and internal attribute identifiers.
- 76. A directory service system, comprising a plurality of tables, each having a plurality of columns, and being arranged in a logical design, said tables comprising one or more of:
a directory information tree (DIT) table, having information for navigation; a TREE table, having information about the sequence of EID's down from the root; an ALIAS table, having information about entries that are aliases; a NAME table, having information required for returning names; a SEARCH table, having information used to resolve filters in a search service and find values during other services; an ENTRY table, which is used to return values in Reads and Searches, with one row being used for each attribute value of each entry; and an ATTRIBUTE table, which describes information about attributes of entry(s).
- 77. A directory services system as claimed in claim 76, wherein
the DIT table has EID, Parent, Alias and RDN columns, the TREE table has EID and Path columns, the ALIAS table has EID and A_EID columns, the NME table has EID and Raw columns, the SEARCH table has EID, AID, VID, Disting, and Norm columns, the ENTRY table has EID, AID, VID and Raw columns, and the ATTRIBUTE table has AID, Syx, Desc and Objectid columns.
- 78. A directory services system comprising a plurality of tables, each having a plurality of columns, and being arranged in a physical design, said tables comprising one or more of the following:
a directory information tree (DIT) table, having information for navigation; a TREE table, having information about the sequence of EID's down from the root; an ALIAS table, having information about entries that are aliases; a NAME table, having information required for returning names; a SEARCH table, having information used to resolve filters in a search service and find values during other services; an ENTRY table, which is used to return values in Reads and Searches, with one row being used for each attribute values of each entry; an INFO table, which holds the highest EID value that has been used in the database; a SENTRY table, which stores attribute values in raw form alone, where they do not need to be normalized; a BLOB table, which stores binary large objects that are greater in size than that of the ENTRY table; an ATTRIBUTE table, which stores information about attributes of entry(s); and an OCLASS table, which provides information about object class(es) in entry(s).
- 79. A system as claimed in claim 38, wherein
the DIT table has EID, Parent, Rdnkey, Rdn and Flags columns, the TREE table has EID, Lev1, Lev2, Lev3, Lev4, Path and Flags columns, the ALIAS table has EID, A_EID, and Flags columns, the NAME table has Eid, Raw and Flags columns, the INFO table has Maxeid and Flags columns, the SEARCH table has EID, AID, VID, Normkey, Norm and Flags columns, the ENTRY table has EID, AID, VID, Raw and Flags columns, the SENTRY table has EID, AID, VID, Value and Flags columns, the BLOB table has EID, AID, VID, Vfrag, Raw and Flags columns, the ATTRIBUTE table has AID, Syx, Desc, Objectid and Flags columns, and the OCASS table has Ocid, Desc, Objectid, Mustlist, Maylist, Superlist and Flags columns.
- 80. An implementation of directory services in a RDBMS which supports a relational language, using service modeling, the implementation comprising:
an ATTRIBUTE table, where extensibility is provided by allowing the definition of a new attribute type by adding a row to the table; an OBJECT table, which defines the attributes within each object; and a HIERARCHY table which defines the relationship between the objects.
- 81. The implementation of claim 80 wherein said OBJECT table comprises normalized value columns and raw value columns.
- 82. The implementation of claim 80 wherein said HIERARCHY table comprises a normalized name column and a raw name column.
- 83. The implementation of claim 80 wherein the HIERARCHY table further comprises an alias column for indicating that an entry is an alias.
- 84 The implementation of claim 83 wherein the alias column comprises an alias and an A-EID column providing information about the destination to which the alias points.
- 85. The implementation of claim 83, wherein the HIERARCHY table comprises a parent column with parent ID information defining the parent entry, and a path column, the path column containing information enabling a determination of the absolute position in a hierarchy and a determination if an entry is in a given subtree by its prefix.
- 86. A method of implementing a data service in a RDBMS data base which supports a relational language, having a fixed set of queries/services defined by service modeling, the method comprising:
defining an ATTRIBUTE table, where extensibility is addressed by allowing the definition of a new attribute type by adding a row to the table; defining an OBJECT table, which defines the attributes within each object; and/or defining a HIERARCHY table which defines the relationship between the objects; and providing arbitrary data entries to said ATTRIBUTE table; and processing said arbitrary data using said fixed set of queries/services.
- 87. The method of claim 86 further comprising the step of using the ATTRIBUTE table for incoming data to find the attribute ID (AID) from the directory service object ID for an outgoing data read from the database.
- 88. The method of claim 86 further comprising the step of utilising a path field to simultaneously apply an arbitrary filter over an arbitrary subtree.
- 89. The method of claim 87 further comprising storing in said at least one of said tables the path of each entry as a string of entry ID values.
- 90. The method of claim 86 further comprising:
caching the values from the ATTRIBUTE table; and performing conversions and validations in memory.
- 91. The method of claim 86 further comprising:
decomposing the tables around primary service relationships and deriving secondary services via joins.
- 92. The method of claim 91 further comprising:
keeping together columns that have strong relationships to avoid unnecessary joins; making a column a separate table if: the number of significant rows in said column is independent of the other related columns; and said column is only used for locating information (input) or only used for returning results (output); and said column is used as a key for more than one service.
- 93. The method of claim 91 further comprising splitting a HIERARCHY table into a plurality of tables comprising columns for at least the id, name, tree and alias.
- 94. The method of claim 91 further comprising splitting the OBJECT table into a plurality of tables comprising at least a SEARCH table used to resolve filters in search service and find values during compare, rename and modify operations.
- 95. The method of claim 91 further comprising resolving an alias by determining the end of the alias object and cashing the alias in an ALIAS table containing a reference to the alias.
- 96. The method of claim 95 further comprising accessing, adding, or deleting a row to a tree table, and storing a list of IDs which identify a path to an object, when objects are added to the DIT table.
- 97. A data arrangement for implementing directory services in a RDBMS which supports a relational language, having a fixed set of queries/services defined by service modeling, the data arrangement comprising:
an extensible ATTRIBUTE table, comprising information about attributes; an OBJECT table, comprising data which defines the attributes within each object; and/or a HIERARCHY table, comprising data which defines the relationship between the objects.
- 98. The data arrangement as set forth in claim 97 wherein said data in said ATTRIBUTE table is arranged as at least one column for each of type, syntax and description.
- 99. The data arrangement as set forth in claim 97 wherein said HIERARCHY table is arranged as at least a column for parent and child.
- 100. The data arrangement of claim 97, wherein said HIERARCHY table is arranged with data values comprising an entry identifier (EID) in a column, said EID for correlating each object with its hierarchy information.
- 101. The data arrangement of claim 97, wherein the OBJECT table is arranged with data values comprising an entry identifier (EID) in a column and an attribute identifier (AID) which correlates each value in the OBJECT table with its attribute information.
- 102. The data arrangement of claim 97, wherein the ATTRIBUTE table further comprises an object id column so that conversions between object identifiers and the internal attribute identifiers can be performed.
- 103. The data arrangement of claim 102, wherein said OBJECT table further comprises a value identifier (VID) to identify values within an attribute in the OBJECT table.
- 104. The data arrangement of claim 97 wherein the OBJECT table further comprises a column to flag distinguished values (DISTING) for naming an entry.
- 105. The data arrangement of claim 104 wherein distinguished values combine to form a relative distinguish name (RDN) which names an entry.
- 106. The data arrangement of claim 97 where both normalized data and raw data are stored in the database and the HIERARCHY and OBJECT tables include columns for normalized and raw inputs, respectively.
- 107. A directory service system implementing the method of any one of claims 11-46.
- 108. The method as recited in any one of claims 62-66, wherein said directory service arrangement comprises one of a LDAP and X.500 directory service.
- 109. The directory service system as recited in any one of claims 67-79 wherein said system is one of a X.500 and a LDAP service system.
- 110. The implementation of a directory service system as claimed in any one of claims 80-85 wherein said system is one of X.500 and a LDAP service system.
- 111. The method as recited in any one of claims 86-96 wherein said directory service comprises one of a LDAP and X.500 directory service.
- 112. The data arrangement of any one of claims 97-106, in which the directory services are X.500 or LDAP services.
- 113. A computer program product comprising a computer program storage medium containing therein a computer program operable in accordance with the method recited in any one of claims 6-66 and 86-96.
Priority Claims (2)
Number |
Date |
Country |
Kind |
PM 7842 |
Sep 1994 |
AU |
|
PM 9586 |
Nov 1994 |
AU |
|
Parent Case Info
[0001] This is a divisional of U.S. Ser. Number 08/793,575, which is currently pending and which is incorporated herein by reference in its entirety.
Divisions (1)
|
Number |
Date |
Country |
Parent |
08793575 |
May 1997 |
US |
Child |
09427267 |
Oct 1999 |
US |