Справочник Novell Netware 4

Схема каталога



Основной частью DIB и Directory Services является схема каталога
(Directory Schema). Схема каталога - это набор правил, определяющих
характеристики информации по объектам, атрибуты и значения, которые
можно добавить в дерево каталогов. Эти правила можно сохранить
в специальной части DIB, и копия их хранится на каждом сервере
имен. Все серверы имен в сети содержат одну и ту же информацию
схемы.

Понимание принципов организации объектов должно помочь вам понять
назначения и организацию схемы каталога. Если мы возьмем несколько
объектов реального мира и начнем перечислять характеристики каждого,
то обнаружим, что некоторые объекты имеют одни и те же характеристики.


Одни объекты имеют ручки, другие красные, некоторые закрываются,
а некоторые находятся далеко. Если мы соберем и объединим все
характеристики в один список, то можем использовать его как справочник
по всем выбранным для определения характеристикам. Таким образом,
нам не нужно определять каждую карактеристику для каждого объекта
отдельно. Ручка есть ручка, независимо от того, какая это ручка
- двери, ящика стола или другого объекта.

Если бы мы перечисляли каждую характеристику каждого объекта,
это список мог бы получиться слишком сложным и длинным. Некоторые
характеристики слишком тривиальны и не подходят для наших целей.
Мы хотели бы выбрать характеристики, которые говорят нам, что
нужно знать об объектах.

Пусть, например, мы классифицируем объекты как сферы. По определению
мы можем потребовать, чтобы сферы описывались характеристиками
размера, и чтобы это размер (радиус) представлялся числом. Соотнесем
это со схемой каталога. Тогда orb будет классом объекта, размер
size - атрибутом, а число number - синтаксисом атрибута. (Иногда
в документации Novell атрибуты объекта называются характеристиками.
Мы выбрали в этой главе термин "атрибуты", так как в
справочном руководстве программиста Directory Schema в качестве
типов характеристик и синтаксиса характеристик определяет типы

атрибута Attrubute Types и синтаксис атрибута Attrubute Sytaxes.)

Чтобы легче было идентифицировать объекты orb, вы можете определить
другие атрибуты. Для каждой сферы orb вы можете отслеживать характеристику
конструкции construction. Сфера может быть пустой, твердой или
наполненной. Другим атрибутом может быть назначение purpose. Бейсбольный
мяч - для игры, стальной шарик - для применения в механизмах (например,
в шарикоподшипниках), а планета - для обитания. Вы можете также
захотеть знать, кто является владельцем сферы - owner. Мы можем
также ввести атрибут, используемый только для целей идентификации
и назвать его именем - name. Если требуется, этот список можно
продолжить. Пока же мы должны решить, что хотим отслеживать следующие
характеристики каждого объекта-сферы:
Radius: расстояние от точки на поверхности объекта до центра объекта.
Construction: структурное качество объектов.
Purpose: возможное использование объекта.
Owner: тот, кто отвечает за этот объект.
Name: то, что мы используем для идентификации объекта.

Информацию, которую мы решили отслеживать, можно рассматривать
в качестве правил построения информационной базы. Когда мы начинаем
идентифицировать объекты как сферы, мы делаем это, задавая для
них специальную информацию. Это дает вам представление о том,
что представляет собой схема каталога (Directory Schema). Она
охватывает правила для построения базы данных - дерева каталогов
(Directory Tree).

Кроме определения объекта и правил атрибутов, схема включает в
себя правила для построения значений заданных атрибутов. Например,
атрибут радиуса сферы можно представить строкой символов ASCII
с символами из подмножества "0,1,2,3,4,5,6,7,8,9". Его
можно представить в виде двоичного значения или числа символов
перед нулевым символом. Здесь можно использовать множество форм.
Мы должны специфицировать ту форму, которую будем использовать.
В схеме это делается с помощью определений синтаксиса атрибутов.

Схема каталога содержит спецификацию того, какая информация, требуется


при идентификации объекта, что является необязательным, и какую
форму должна принимать информация.

Определение схемы для каждого объекта включает в себя правила,
которые управляют взаимосвязью объектов друг с другом в дереве
каталога. Эти правила составляют определение включения. При создании
объекта в дереве каталога он может быть подчиненным в дереве только
тем объектам, которые находятся в определении включения его объектного
класса. Если вернуться к примеру сфер, то мы можем определить
объект с именем basketball - баскетбольный мяч. Если объекты класса
orb ограничены своим отношением включения и должны подчиняться
другим объектам класса room (комната), то можем обнаружить, что
объект basketball содержится в объекте с именем closet (стенной
шкаф), который представляет собой "маленькую комнату".
Либо он обнаруживается в объекте с именем gymnasuim (спортзал),
который является большой комнатой. Однако, согласно этому определению,
мы не можем получить объект класса orb на футбольном поле, так
как поле - это не комната.

Чтобы получить более полное представление об этом дереве, мы может
рассмотреть его детальнее и обнаружить, что объект с именем gymnasium
имеет родительский объект с именем West_High (название района),
который, в свою очередь, имеет родительский объект Smalltown (городок).
Полное имя объекта в Directory Services тогда будет иметь вид
basketball.gymnasium.West_High.Smalltown. Каждое определение класса
объекта включает в себя класс объектов, которые могут быть родительскими
для данного объекта. Эта спецификация является определением включения.

Схема каталога задает также, какие атрибуты необходимы при создании
объекта данного класса и какие необязательны. Это называется обязательными
атрибутами и необязательными атрибутами.

В определении класса объектов вы должны задать, какие атрибуты
будут использоваться для наименования объекта. В примере со сферами
вы можете потребовать указания для наименования всех сфер владельца


и имени. Одну сферу тогда можно идентифицировать как John's baseball
(бейсбольный мяч Джона), а другую - как John's earth (Земля Джона).

По различным причинам для заданного объекта вам может потребоваться
назначить другое имя (псевдоним). Такие псевдонимы представляют
собой объекты, которые могут добавляться к дереву каталога и ссылаться
на исходный объект. Эти псевдонимы разыменовываются в объект,
псевдонимом которого они являются. Например, на John' earth можно
ссылаться по псевдониму объекта с именем world (мир). Взглянув
на объект с именем world, вы можете захотеть разыменовать его
обратно к исходному объекту с именем John's earth.

Для каждого определенного в схеме атрибута задается синтаксис
атрибута. Этот синтаксис может определять форму и тип. Объекты
класса room может иметь атрибут с именем dimensions (размеры).
Синтаксисом атрибута dimension будет три числа, представляющих
высоту, ширину и длину. В данном случае синтаксисом значения являются
три числа. Помните, что определение синтаксиса специфицирует тип
значений, а не сами фактические значения.

Как мы уже упоминали, возможные взаимосвязи объектов в дереве
определяются в схеме определением включения. В схеме определяются
также отношение объектных классов друг к другу. Объект может классифицироваться
как цветок, цветы классифицируются как растения, которые классифицируются
как живые организмы. Схема каталога в этом случае потребовала
бы отдельных определений классов для цветов, растений и живых
организмов. В заданном определении схемы объекты, созданные как
цветы, могли бы наследовать определения растений и живых организмов.
Эта линия наследования задается через использование определений
суперклассов каждого объектного класса.

Схема каталога должна проектироваться и создаваться до того, как
объекты добавляются в дерево каталога. Определенная Novell схема
каталога называется базовой схемой. Если базовая схема не полностью
отвечает вашим нуждам, вы можете добавить к ней другие определения,
используя подходящие функции API Directory Services, которые обсуждаются
в данной главе ниже.

Содержание раздела