Стратегии каталогов
8.1 Основы теории каталогов
Согласно весьма простому определению каталог является хранилищем, используемым для содержания любого вида информации, которая может быть применена в различных целях разными клиентами. Хранилище (репозиторий) является совокупностью информации об объектах, систематизированной в виде иерархической структуры. Это специализированная база данных, дающая возможность пользователям или приложениям находить ресурсы, которые имеют характеристики, необходимые конкретной задаче.
Если известно имя объекта, то может быть осуществлена выборка его характеристик. Если имя конкретного индивидуального объекта неизвестно, в каталоге может быть осуществлен поиск списка объектов, удовлетворяющих определенному требованию. Как правило, в каталоге может быть осуществлен поиск и по специфическому критерию, а не только по определенному заранее набору категорий.
Каталог является специализированной базой данных, которая по своим характеристикам стоит обособленно от реляционных баз данных общего назначения. Одной из характеристик каталога является то, что доступ к нему (чтение или поиск) осуществляется гораздо чаще, чем он обновляется (осуществляется запись в него). Так как каталоги должны быть способны поддерживать большое количество запросов на чтение, то обычно они оптимизированы для доступа в целях чтения. Так как каталоги не предназначены для обеспечения такого же множества функций, как и базы данных общего назначения, они могут быть оптимизированы для экономного предоставления большего количества приложений с быстрым доступом к данным каталога в значительно распределенных средах. Обратите внимание на то, что логическая структура объектов является иерархической, хотя физическое хранение объектов данных может осуществляться в таблицах реляционных баз данных. Такое происходит в случае с сервером каталогов IBM Directory Server, который использует для хранения данных каталога таблицы DB2.
Каталог может быть централизованным или распределенным. Если каталог является централизованным, то существует один сервер каталогов (или кластер серверов) в одном месте, который предоставляет доступ к каталогу. Если каталог является распределенным, то для предоставления доступа к каталогу существует более одного сервера, причем обычно они географически рассредоточены.
8.1.1 Каталоги LDAP
LDAP определяет стандартный метод доступа к службе каталогов. Стандарт LDAP разработан в целях предоставления доступа к каталогам, поддерживающим иерархические модели X.500 без предъявления серьезных требований к ресурсам "полного" протокола доступа к каталогам [Directory Access Protocol (DAP)] X.500, отсюда и термин "Lightweight DAP", или "LDAP" (облегченный протокол доступа к данным). Он является моделью взаимодействия типа "клиент-сервер", при которой сервер каталога LDAP способен обслуживать множество одновременных клиентских запросов по стандартному TCP/IP-порту 389 или порту 636, если сервер поддерживает SSL.
"Стандарт LDAP" состоит из набора связанных стандартов IETF, которые включают:
- RFC-1777 – cтандарт LDAPv2;
- RFC-2251 – LDAPv3: основной стандарт LDAP версии 3;
- RFC-2252 – LDAPv3: определения синтаксиса атрибутов;
- RFC-2253 – LDAPv3: представление строки UTF-8 отличительных имен;
- RFC-2254 – представление строки фильтров поиска LDAP;
- RFC-2255 – формат URL в LDAP;
- RFC-2849 – формат обмена данными в LDAP [LDAP Data Interchange Format (LDIF)].
Когда каталог является распределенным, то сохраненная в каталоге информация может быть секционирована ( partitioned ) или реплицирована ( replicated ); возможна комбинация двух этих вариантов. Когда информация секционирована, то каждый сервер каталога хранит уникальное и неперекрывающееся подмножество информации. Это значит, что каждый элемент каталога сохранен только на одном-единственном сервере. Техническим методом разделения каталога является использование отсылок LDAP (LDAP referrals). Отсылки LDAP дают возможность пользователям посылать запросы LDAP либо к тем же самым, либо к другим пространствам имен, сохраненным на другом (или на том же самом) сервере. Когда информация реплицирована, один и тот же элемент каталога сохраняется на более чем одном сервере. В распределенном каталоге некоторая информация может быть секционирована, а некоторая информация может быть реплицирована.
Подробную информацию об общих понятиях и реализациях каталогов LDAP можно найти в следующих публикациях компании IBM:
- IBM Redbook Understanding LDAP, SG24-4986
- IBM Redbook LDAP Implementation Cookbook, SG24-5110
- IBM Redbook Using LDAP for Directory Integration: A Look at IBM SecureWay Directory, Active Directory, and Domino, SG24-6163
- IBM Redbook Implementation and Practical Use of LDAP on the IBM e-server iSeries Server, SG24-6193
- IBM Redpaper, LDAP Directory Services in IBM WebSphere Everyplace Access V4.1.1, REDP3603
8.2 Множественные каталоги
Размещаемые организациями приложения обычно требуют или предоставляют свои собственные выделенные каталоги регистрации пользователей. Результатом этого является наличие множества каталогов пользователей и частей информации, согласно которым пользователи размещаются по всей организации, причем каждый со своими уникальными свойствами и различными источниками данных.
Источники данных обычно представлены большим разнообразием систем, хранилищ и структур, таких, как:
- каталоги, способные работать с LDAP (примеры: каталог Domino, IBM Directory Server, Microsoft Active Directory, сервер каталогов Netscape/iPlanet/SunONE, Novell NDS);
- коммерческие каталоги X.500 (примеры: Syntegra's Aphelion/CDCRialto, Bomara/Isocor Global Directory Server, Nexor Directory);
- кадровые системы (примеры: PeopleSoft HRMS, Siebel ERM, JD Edwards, Oracle HRMS);
- системы управления взаимоотношениями с клиентами (примеры: Siebel CRM, Microsoft CRM, PeopleSoft CRM, Oracle CRM);
- базы данных, хранящие информацию о личностях (к примеру, Oracle, DB2, SQL Server);
- каталоги учрежденческих телефонных станций;
- синтаксисы и файлы обмена данными (примеры: XML, SAML, документы LDIF или SOAP);
- системы электронной почты, которые не используют каталоги, способные работать с LDAP;
- электронные реестры для построения систем управления доступом с применением идентификационных карточек;
- системы сохраненных значений (примеры: системы кассовых терминалов кафетериев).
Обратите внимание на то, что данные примеры не стоит рассматривать как полные перечни производителей или продуктов. Мы просто хотели показать некоторые наиболее известные продукты, которые популярны у крупных организаций, а также то, что почти в любой организации обычно существуют многочисленные хранилища данных о "личностях".