Почтовый каталог организации

Назначением каталога в системах электронной почты, как, впрочем, и любых других каталогов — получение пользователем расширенной информации о каком-либо предмете, на основе минимального набора исходных сведений. Примером каталогов, используемых повсеместно, являются телефонные справочники. Служба каталога в той или иной мере присутствует в каждой из современных систем электронной почты, и отличия состоят лишь в том, на какие стандарты опирается та или иная реализация, и какой набор сервисов представляет. Рассмотрим некоторые из них.
Базовые сведения о X.500

Стандарт на службу каталогов X.500 был разработан изначально для организации публичных справочников общего доступа, позволяющий хранить информацию из любой области человеческих знаний. Он представляет собой набор рекомендаций комитета CCITT/ITU, описывающих исключительно принципы построения и форматы данных для взаимодействия систем, предоставляющих сервисы поиска в глобальных хранилищах информации. Выбор средств реализации полностью возлагается на разработчика. Существуют две редакции этих рекомендаций — 1988 и 1992 года.

Каталог (directory), построенный в соответствии с рекомендациями X.500, способен хранить информацию о наборе произвольного числа целевых объектов (objects of interest), имеющих различную структуру. Целевые объекты хранятся в информационной базе объектов (Directory Information Base или DIB). Каждый объект имеет связанный с ним набор сведений о структуре, свойствах и множестве разрешенных над ним действий, называемый классом объекта. Сами классы, в свою очередь, также трактуются как объекты.

Каждый экземпляр объекта, хранящийся в каталоге, обязан соответствовать одному из зарегистрированных в DIB классов. Для обеспечения непротиворечивости данных в каталоге, объекты должны создаваться и модифицироваться только в соответствии с правилами, предписанными классами этих объектов.

Для отражения того факта, что сущности реального мира могут содержать в себе вложенные сущности и одновременно содержаться внутри других сущностей, вводится иерархия сущностей. Сочетание информационной базы объектов и знаний об их иерархии образует дерево информационного каталога (Directory Information Tree или DIT). Как положено дереву, оно имеет корень (root entry), узлы, называемые также контейнерами (container entry) и листья (leaf). Корень является стартовой точкой каталога. Объекты-контейнеры содержат в себе один или более объектов-листьев и/или других контейнеров. Листья не содержат вложенных объектов и, как правило, представляют собой собственно целевые объекты. Однако если объект создается «под» листом, лист становится контейнером.
Иерархия объектов каталога

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

Внутри информационной базы каталога каждый объект должен иметь уникальное имя (name). Чтобы однозначно адресовать объект внутри информационной базы, его полное имя в базе также должно быть уникальным и отражать положение объекта в дереве каталога. Естественный способ получения такого имени — последовательное добавление к имени объекта имен уровней иерархии при движении вверх по дереву объектов. Рисунок 1.11 поясняет использование этого способа.
Схема построения уникального имени

Полученное имя называют характерным именем (Distinguished Name или DN). Имена, получаемые на промежуточных уровнях, называют относительными характерными именами (Relative Distinguished Name или RDN). Эти имена могут использоваться при относительной адресации объектов каталога на каком-либо уровне иерархии. Строгого формата построения характерного имени именования спецификация X.500 не приводит.

Следует заметить, что, несмотря на некоторую схожесть формата адресов X.400 с форматом характерных имен, они имеют совершенно разную природу и свойства. Значения ключей в адресе X.400 может быть произвольным. В X.500, в связи с тем, что набор ключевых слов не определяется стандартом, напротив порядок следования ключей должен строго соответствовать пути к объекту в дереве каталога. В остальном адреса X.400 и X.500 вполне совместимы, и многие X.400-системы поддерживают настройки X.500 для ведения глобальных адресных книг и их автоматической репликации.

Для сокрытия внутренней структуры каталога и механизма работы с ним, в составе информационной системы должны присутствовать два компонента, уже ранее упоминавшихся: системный и пользовательский агенты каталога (DSA и DUA, соответственно). При обращении клиента к каталогу за информацией об интересующих его объектах, DUA выступает в роли промежуточного звена, преобразующего запрос в формат, понимаемый DSA, и возвращающий полученные результаты в ожидаемом пользователем виде. В свою очередь DSA принимает запросы со стороны пользовательских агентов и выполняет их или переадресует запрос другим системным агентам, если запрашиваемая информация не относится к обслуживаемой им части каталога. Каталог, представляемый единым информационным пространством, на практике может быть распределен между различными DSA. В составе информационной системы может быть произвольное количество системных агентов, каждый из которых отвечает за различные подмножества общего информационного дерева каталога. Та часть общего каталога, за обслуживание которой отвечает отдельный DSA, называется фрагментом (Fragment). Фрагмент может включать в себя произвольное количество поддеревьев из произвольных мест каталога.

Системный агент может использовать различную технику для обработки запросов, поступающих от пользовательского агента на те части каталога, которые не обслуживаются данным DSA:

* цепной поиск (chaining), когда запрос при необходимости перенаправляется другому DSA, и результаты работы последнего возвращаются пользователю;
* перенаправление (referral), когда системный агент инструктирует пользовательского агента, к какому DSA обратиться за нужной информацией.

Использование цепного поиска и перенаправления требует возможности непосредственного взаимодействия DSA, что не всегда выполнимо и накладывает существенные ограничения на область применения таких систем.

Чтобы сократить время, затрачиваемое на обработку пользовательского запроса, применяется метод репликации (replication) фрагментов между системными агентами каталога. В этом случае DSA отслеживает изменения, вносимые в подотчетный ему фрагмент, и доставляет их остальным системным агентам. В этом случае относительно актуальная копия всего каталога доступна для поиска каждому DSA системы, однако использование такой схемы требует дополнительных затрат ресурсов на размещение избыточных копий информации. Следует заметить, что для почтовых систем, данный вариант организации доступа к каталогу является единственно возможным, так как отдельные фрагменты могут не иметь непосредственного соединения друг с другом. Единицей репликации данных является пространство имен (Name Context), представляющее собой отдельную ветвь общего дерева. Рисунок 1.12 поясняет различия между фрагментом и пространством именования.
Реализация распределенного каталога

Несмотря на массу достоинств, реальных систем, полностью отвечающих рекомендациям X.500, не так много, и все они, как правило, функционируют либо на уровне региональных административных доменов, либо в государственных учреждениях и силовом секторе. Высокая сложность реализации и громоздкость интерфейсов взаимодействия подсистем привели к появлению параллельных служб каталогов, опирающихся на идею X.500, но по-другому реализующих протоколы доступа и форматы передачи данных.

Каталоги частных систем

В терминах X.500 в частных системах реализуется схема с репликацией отдельных фрагментов каталога между системными агентами почтовых отделений. Сам каталог ограничен малым числом уровней иерархии (тремя для MS Mail и двумя для cc:Mail). База объектов содержит небольшое число классов, такие как почтовый ящик, список рассылки, общая папка, шаблон, таблица маршрутов, внешний адресат и почтовый шлюз. Шаблоны позволяют модифицировать набор атрибутов почтового ящика и списков рассылки, однако создание новых классов объектов не предусмотрено.

В качестве информационной базы глобального каталога выступает глобальная адресная книга, содержащая данные об иерархии организации и пользователях в ее составе. Фрагментом в данном случае является локальное почтовое отделение. Поскольку данные системы используют файловый доступ для выполнения всех операций, пользовательский агент каталога интегрирован с почтовым агентом и выполняет роли как DUA, так и DSA при поиске информации в глобальной адресной книге. По той же причине при сборе изменений о подотчетном фрагменте каталога в роли DSA выступает внешняя программа, которая запускается на отдельном компьютере и формирует файл изменений для локального почтового отделения. Собственно репликация выполняется путем пересылки изменений каталога в виде письма выделенному серверу каталога, имеющего специальный почтовый адрес. В задачи упомянутого сервера входят слияние изменений ото всех почтовых отделений, обновление адресной книги и рассылка модификаций к текущей адресной книги системному агенту каждого отделения. На основе полученного файла модификаций при следующем запуске локальный DSA вносит изменения в глобальную адресную книгу, затем снова контролирует изменения в структуре локального отделения и при необходимости создает новый файл изменений, направляемый опять же серверу каталога. После чего процесс повторяется.

Несмотря на кажущуюся громоздкость, такая схема обеспечивает достаточно высокую эффективность ведения общего адресного списка и способна обслуживать организации с числом сотрудников до полумиллиона.
Каталог Exchange, связь с каталогом X.500

Будучи основанным на спецификациях X.500, каталог сервера Exchange не следует им в области использования протоколов передачи данных и двоичного формата потоков данных. Однако с точки зрения реализации объектного хранилища и разделения функций между DSA и DUA, Exchange может вполне считаться воплощением канонической модели каталога X.500. На рисунке 1.13 приведена схема информационного дерева каталога Exchange Server, содержащего все необходимые компоненты классического каталога, включая корень, контейнеры, листья и схему данных.

Каждый объект каталога имеет уникальное имя в каталоге, полное и относительное характерное имена. Формат характерного имени поясняет рисунок 1.14. Характерные имена объектов, таких как пользовательские ящики, списки рассылки и т.д., могут использоваться в качестве их почтового адреса во внутреннем формате Exchange. Следует, однако, помнить, что внутренние адреса имеют силу только в том случае, если адресуемый объект находится в пределах той же организации, что и отправитель.
Схема каталога Exchange Server
Формат характерного имени Exchange

Exchange использует метод репликации фрагментов каталога, т.е. каждый сервер хранит локальную копию каталога организации. Запросы от пользовательских агентов каталога обрабатываются локально во всех случаях, кроме обращений к общим папкам. Если сервер не имеет на себе запрошенной копии, он на основании данных каталога, переадресует клиента к DSA сервера, на котором копия папки присутствует.

Каждый сервер обслуживает фрагмент, состоящий из четырех неперекрывающихся пространств именований: организации (Organization), площадки (Site), настроек (Configuration) и схемы каталога. Назначение каждого из них будет рассмотрено далее.
Облегченный протокол доступа к каталогу (LDAP)

Облегченный протокол доступа к каталогу (Lightweight Directory Access Protocol или LDAP) был создан для обеспечения работы «легких» пользовательских агентов, таких как Internet-броузеры, с каталогами, использующими архитектуру X.500. Данный протокол рассчитан исключительно на использование поверх TCP/IP и использует упрощенный набор команд для общения клиента с сервером. Согласно спецификации на протокол, с его помощью можно выполнять операции чтения, поиска, сравнения и обновления данных в каталоге, что в идеале должно было позволить использовать для управления самим каталогом. Однако принятая в LDAP схема проверки полномочий на основе единственной текстовой строки в открытом виде и отсутствие какой бы то ни было поддержки назначения прав доступа на отдельные элементы каталога ограничивают реальную сферу применения данного протокола областью справочников общего доступа, допускающих работу исключительно анонимных пользователей. Конкретные реализации протокола могут отличаться, например, поддержкой шифрования трафика по SSL 3.0 или проверкой права на установление соединения на основе имени и пароля в операционной системе. Однако до появления третьей версии этого протокола, поддерживающей репликацию каталогов и улучшенные средства защиты, ситуация с LDAP едва ли кардинально изменится.

Добавить комментарий

всё о почтовых и курьерских услугах