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

Корпорация Boeing использует разнообразную инфраструктуру каталогов, которая включает в себя такие продукты, как Sun ONE, Microsoft Active Directory и средства Oracle. Наличие гетерогенной инфраструктуры каталогов в компании размера Boeing — практическая необходимость. Однако проблем с такой организацией у специалистов этой аэрокосмической корпорации возникает немало, учитывая, что в Boeing имеется около 900 рассчитанных на работу с каталогами приложений, которые обслуживают почти 150 тыс. сотрудников.

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

В результате, по словам Марка Шлейффа, специалиста по управлению электронными регистрационными записями группы Boeing Shared Services Group, заставить каждое из приложений работать с такой инфраструктурой каталогов — отдельная и весьма серьезная задача.

«Любое изменение потребностей означает либо внесение изменений в каталог так, чтобы с ним могли по-прежнему работать клиенты, либо создание нового каталога», — отметил Шлейфф. Третий вариант, адаптация приложения, может обойтись очень дорого. В отличие от проектов, посвященных созданию внутренних приложений, деньги, потраченные на адаптацию коммерческого приложения, «ничего не дают» другим приложениям, и, кроме того, адаптация увеличивает объем кода, который необходимо поддерживать.

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

В Boeing был осуществлен пилотный проект и корпорация уже готова начать поэтапное внедрение Virtual Directory Engine фирмы OctetString. С точки зрения приложения виртуальный каталог выглядит так же, как каталог, к которому приложение обращается. Виртуальный каталог получает запрос на данные от приложения, извлекает необходимую информацию из базовых каталогов, выполняет необходимые преобразования и предоставляет эти данные приложению в требуемом формате. При этом не нужно никак менять ни приложение, ни соответствующие каталоги.

«Мы внедряем это ПО для того, чтобы оно могло поддерживать множество клиентских приложений. Мы пытаемся создать разделяемую службу», — отметил Шлейфф.

Виртуальные различия

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

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

Реализация виртуального каталога может обойтись существенно дешевле альтернативных стратегий. Само программное обеспечение с серверной лицензией может стоить около 10 тыс. долл. Для крупного проекта, бюджет которого исчисляется сотнями тысяч долларов, это довольно скромная сумма. Кроме того, это немного по сравнению с затратами на реорганизацию корпоративной службы каталогов или переработку каждого приложения. «Всякий раз, когда соберетесь потратить деньги на адаптацию приложения, с тем, чтобы оно могло использовать каталог, подумайте о технологии виртуального каталога», — советует Шлейфф.

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

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

«Неудобства как раз и связаны с добавлением в инфраструктуру дополнительного ПО. Если что-то происходит с механизмом единой регистрации в Web, критически важные приложения перестают работать, — пояснил Шлейфф. — Виртуальные каталоги... одновременно упрощают и усложняют предоставление услуг доступа».

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

Начать с малого

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

Джефф Собел, ведущий аналитик New York Independent System Operator (NYISO), занимающегося оптовыми поставками электроэнергии, создавал Web-приложение для того, чтобы предоставить клиентам возможность участвовать в торгах по Internet. Для аутентификации пользователей он выбрал программное обеспечение управления доступом ClearTrust фирмы RSA Security, однако этот продукт мог указывать только на один каталог LDAP. Информация о пользователях хранилась в базе данных Oracle и в каталоге LDAP. По предложению RSA Собел приобрел программное обеспечение виртуального каталога RadiantOne, разработанное фирмой Radiant Logic. Собел отметил, что на установку и запуск этого ПО ему потребовался месяц. «Это не слишком долгий срок для такого продукта», — подчеркнул он.

Однако NYISO не сразу выбрала виртуальные каталоги. Год назад специалисты компании провели маркетинговые исследования такого инструментария и пришли к выводу, что он недостаточно качественный. «Некоторые инструментальные средства виртуальных каталогов были созданы еще в конце 90-х годов, но с того момента они были значительно усовершенствованы», — считает Джерри Гебел, аналитик компании Burton Group. Ряд производителей добавили к этому инструментарию графический пользовательский интерфейс, поддерживающий механизм «указал и выбрал», благодаря чему настроить его теперь намного легче, чем с помощью ранее существовавших текстовых интерфейсов и файлов конфигурации. «Но по-прежнему приходится разбираться с LDAP, структурами баз данных и тому подобными вещами», — предупредил Гебел.

Менеджер службы каталогов одной из крупных компаний, специализирующейся на семейных развлечениях, отметил, что виртуальный каталог в его случае имеет смысл как по политическим, так и по техническим соображениям. Компания использует плоскую структуру каталогов, но приложение для управления регистрационными записями рассчитано на иерархическую организацию пользовательских данных. Преобразовать данные с помощью метакаталога было невозможно, поскольку, по словам менеджера, «руководство компании и слышать не хотело о тиражировании данных для различных бизнес-подразделений». На реорганизацию исходного каталога потребовалось бы восемь месяцев, при том что реализация виртуального каталога заняла всего месяц. Эта технология позволяет создать иерархическое представление данных, не дублируя и не тиражируя их повсюду.

Выбор виртуального каталога означает, что организации придется иметь дело с небольшими компаниями, поскольку крупные производители, работающие на этом рынке, пока не предлагают полнофункциональные продукты, реализующие виртуальные каталоги. Производители таких систем (а их не больше полудюжины) — это, как правило, частные фирмы, в которых работает менее 30 человек, и каждая из таких фирм имеет от 5 до 50, а то и больше клиентов, причем среди этих клиентов — крупнейшие компании в мире.

Один из способов снизить риск работы с небольшими производителями — это использование соглашений, которые они имеют с производителями ПО управления регистрационными записями и интеграторами. Radiant Logic, например, имеет соглашение с RSA и Accenture, а OctetString сотрудничает с Oblix. Кроме того, пользователи могут предпринять и другие шаги. «Если реализация какого-то решения предполагает большой риск, необходимо принять соответствующие меры. Например получить исходные тексты или действовать через более крупного производителя», — считает Гебел.

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

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


Метакаталог или виртуальный каталог?

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

Виртуальные каталоги не управляют независимыми репозитариями, а создают виртуальный уровень хранения между приложениями и исходными репозитариями. Сервер виртуального каталога получает запросы от клиентов посредством LDAP, Directory Services Markup Language (DSML), SQL или Simple Object Access Protocol. Затем он возвращает запрошенные данные и на лету выполняет преобразования с целью представить запрошенные данные каждому приложению в том формате, в каком оно должно их получить


Виртуальные каталоги: в каких случаях их использовать

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

Поделитесь материалом с коллегами и друзьями