LDAP на службе у каталогов

Никита Кислицин

Xakep, номер #063, стр. 063-120-1

(nikitoz@real.xakep.ru, www.ired.ru)

Храни информацию по-умному!

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

Надо знать его в лицо

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

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

До сих пор мы довольно успешно работали с сервером БД mysql. Бесплатно, удобно, не слишком медленно, универсально - просто панацея от всех бед. Инструмент, вернее технология, о которой я тебе сейчас расскажу, в общем-то, создавался совсем для других целей. Прошу любить и жаловать - служба каталогов LDAP.

Немного истории

Прежде всего, что же такое "служба каталогов"? Это программный комплекс для хранения и каталогизации информации, т.е. преобразования ее в древовидную разветвленную структуру. В общем-то, тут прослеживается некоторая аналогия с обычной базой данных, но в нашем случае упор делается на чтение данных, а не на их добавление или модификацию - именно операция чтения реализуется здесь быстрее всего. Само собой, использовать такое представление целесообразно лишь для больших объемов данных, которые будут модифицироваться не слишком часто. Баннерная система - не наш пациент, наш - справочник "Желтые страницы".

Общеизвестный пример такой службы - DNS. Это распределенная база данных, информация в которой физически размещается на многих тысячах (сотнях тысяч?) серверов. Причем все машинки связаны в единую систему, так что клиенту одного компьютера доступны сведения, хранящиеся на другом узле, который может находиться на противоположной стороне земного шара на дне океана :).

Впрочем, это примитивный пример каталогизации информации: объекты в такой базе имеют ограниченное количество атрибутов - в нашем случае это доменное имя, IP-адрес, адреса MX-серверов и т.д.

Содержание  Вперед на стр. 063-120-2
ttfb: 3.5610198974609 ms