Ж у р н а л   о   к о м п ь ю т е р н ы х   с е т я х   и   т е л е к о м м у н и к а ц и о н н ы х   т е х н о л о г и я х
СЕТИ И СИСТЕМЫ СВЯЗИ on-line
  ПОИСК: ПОДПИСКА НА НОВОСТИ: НОМЕР:
    ДОМОЙ • Архив: Новостей | Конференций | НомеровПодписка
 
   
 
   
    
РЕДАКЦИЯ
 
Все о журнале
Подписка
Как проехать
Где купить
Отдел рекламы
График выхода журнала
Адреса в Интернет

РУБРИКАТОР
   
• Инфраструктура
• Информационные
   системы

• Сети связи
• Защита данных
• Кабельные системы
• Бизнес
• Колонка редактора
• Электронная
   коммерция

• Только на сервере
• Системы
   учрежденческой
   связи

• Новые продукты


Rambler's Top100

  

XML приручает информационный хаос

Пол Шульц

Возможности информационных запросов в Web ограничивают два основных обстоятельства. Первое: для выделения значимой информации из HTML-страниц их сначала нужно обработать специализированными синтаксическими анализаторами. Второе: доступ к данным в традиционных СУБД обычно осуществляется из Web только через простые и негибкие интерфейсы на основе форм.

Перевод информации в формат XML и открытие доступа к ней через Web позволит пользователям преодолеть эти преграды, и они смогут задавать детализированные вопросы для глобального поиска по аналогии с тем, как вы делаете это с обычными СУБД. Однако если все данные в мире будут переведены в формат XML, то потребуются более эффективные способы хранения огромных объемов данных в этом формате и управления ими. С целью решения этой задачи производители представили на рынок новое поколение систем хранения и управления документами, специально оптимизированных для публикации XML-документов в Web.

Представление документов в формате XML

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

Термин “документоориентированный XML” применяется для таких XML-файлов, с которыми будут работать люди. Данный подход используется с целью создания XML-представлений книг, почтовых сообщений, рекламы, Web-страниц, XHTML-документов и многих других типов полуструктурированных и совсем неструктурированных данных. Отметим, что источником этих документов обычно являются не базы данных — они создаются вручную с помощью текстовых редакторов, текстовых процессоров или настольных издательских систем. Подобные средства сохраняют документы в обычных форматах представления текста, таких, как RTF, PDF или SGML, из которых информация в любой момент может быть переведена в формат XML.

Как известно, хранение документов в формате XML позволяет отделить содержание документа от формы его представления. Обновления, изменения и другие преобразования содержания могут быть выполнены и сохранены прямо в XML-документе. Позднее из него может быть сгенерирован выбранный вами любой формат представления (RTF, PDF, HTML, SGML и т. д.). В ПО Apache Cocoon предлагается среда для публикации XML-документов, которая обеспечивает эти преобразования и поддерживает разделение задач разработки содержания, логики и стиля. ПО Cocoon было разработано для того, чтобы программисты, бизнес-аналитики, дизайнеры и системные администраторы могли совместно работать над одним и тем же проектом, не мешая друг другу. (Более полную информацию о данном продукте можно получить на узле xml.apache.org/cocoon. О бесплатных программах для преобразования различных типов документов в формат XML и обратно см. “Средства конвертирования текстовых данных в XML”.)

С другой стороны, XML можно ориентировать на данные, а не на документы. Этот вариант XML предназначен в первую очередь для использования машинами. Он применяется во многих B2B-приложениях, где требуется обмен структурированными данными, а также в приложениях, в которых необходима координация процессов между распределенными объектами. К таким типам взаимодействия можно отнести SOAP и XML-RPC. С точки зрения взаимодействия с системами хранения данных наиболее важным различием между этими двумя моделями является то, что источником ориентированных на данные XML-документов служат сами же эти СУБД. То, в какой степени ваш XML-формат ориентирован на обработку документов или данных, наверняка повлияет на выбор вами ПО управления данными.

Полную версию данной статьи смотрите в 13-ом номере журнала за 2002 год.

Реляционные СУБД

Системы управления реляционными базами данных (Relational Database Management System — RDBMS) представляют собой важнейший тип ПО, использующегося на предприятиях. Если вы являетесь корпоративным разработчиком, то, нравится вам это или нет, вам часто приходится интегрировать ваше ПО, бизнес-логику и корпоративную информацию с реляционными СУБД. Разработчики связующего ПО хорошо знают это. Они уже много лет создают и поддерживают сложные объектно-реляционные отображения между бизнес-логикой и таблицами реляционных СУБД. Теперь то же самое придется делать и тем разработчикам, которые намерены использовать XML в своих приложениях уровня предприятия.

Наиболее важным этапом в этом процессе является отображение схемы вашего XML-документа на схему, используемую в реляционной базе данных. Структуру XML-документа можно описать с помощью стандартов DTD (Document Type Definition), XML Schema, RELAX NG или каких-то других средств описания. Структура базы данных определяется описанием таблиц. Обычно отображение между структурой XML и структурой реляционной базы данных осуществляется для типов элементов, атрибутов и текста XML-документа. В этом отображении почти всегда опускаются какие-то части физической структуры, представленной в XML (например, сущности, разделы CDATA и информация о кодировке символов), а также логической структуры (инструкции обработки, комментарии и порядок появления в документе элементов и данных PCDATA).

Всестороннее обсуждение преобразования данных между XML и реляционной СУБД выходит за пределы этой статьи. Однако две из наиболее распространенных моделей, используемые для выполнения этого типа преобразования данных, заслуживают краткого описания. Первый — и более простой — способ отображения осуществляется на основе таблицы. В этом случае структура XML-документа близко отражает структуру таблицы реляционной базы данных, с которой она связана.

Способ отображения, основанный на таблице, относительно прост и может быть использован только для очень прямолинейных отображений. Более гибким способом является отображение на основе взаимоотношений объектов (Object-Relational Mapping). В этом случае выполняющая отображение программа сначала представляет XML-документ в виде дерева объектов. Связи и взаимоотношения между объектами определяются иерархической структурой тегов в XML-документе. По завершении создания дерева объектов производится его отображение на таблицы базы данных.

На самом деле не все так просто, и на то есть несколько причин. Во-первых, редко встречается прямое соответствие между таблицами базы данных и бизнес-логикой, кодируемой в объектной структуре и структуре XML-документа. Приведенный ниже пример (“Пример XML-документа”) тоже является упрощенным в том смысле, что рассматриваемый объект состоит всего из трех примитивных типов данных (все строчного типа). При использовании более сложных типов данных их отображение тоже становится более сложным, и в этом случае СУБД должна обеспечивать ссылки на другие таблицы с помощью внешних индексов (foreign key).

СУБД с хранением информации в XML-формате

Не стоит недооценивать трудности с отображением XML-документов на реляционные таблицы и обратно: подобные преобразования могут быть чреваты ошибками, им недостает гибкости и при недостаточной тщательности их построения работа приложений может замедляться. Если вам кажется, что XML-приложение, ради которого приходится создавать и поддерживать эти отображения, не стоит этих усилий, то одной из привлекательных альтернатив будет СУБД с хранением информации в формате XML (Native XML Database — NXD, или XML-СУБД). Концепцию такой СУБД впервые сформулировала компания Software AG в ходе маркетинговой кампании семейства ее продуктов Tamino. С этого времени термин NXD вошел в обиход компаний, разрабатывающих подобные продукты. XML-СУБД оптимизированы для хранения XML-документов и управления ими. Так же как и другие современные системы управления данными, они обеспечивают поддержку транзакций, безопасность, параллельный доступ и языки запросов.

Формально XML-СУБД могут быть определены как системы управления данными со следующими характеристиками:

· XML-документ представляет собой основную логическую единицу хранения в системе, подобно тому как запись в таблице — основная логическая единица хранения в реляционной СУБД.

· Система задает логическую модель XML-документов и сохраняет/восстанавливает документы в соответствии с этой моделью. Модель, как минимум, должна включать в себя поддержку элементов, атрибутов, PCDATA и порядок следования элементов в документе. Примерами логических моделей, соответствующих этим требованиям, являются модели данных XPath и XML InfoSet.

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

XML-СУБД вполне приемлемы для хранения XML-информации, ориентированной на документы. Например, XML-СУБД поддерживают основанные на XML языки запросов, которые позволяют выполнять узкоспециализированные запросы типа “найти все документы, где во втором параграфе содержится слово, выделенное курсивом”. Большинство XML-СУБД обеспечивают и другие мощные и сложные функции поиска текста, такие, как тезаурус, поиск всех грамматических форм слова (например, “swim”, “swam” и “swimming”) и связанный поиск (например, найти слово “озеро”, находящееся в пределах пяти слов от слова “плавать”). Это чрезвычайно полезные функции для работы с традиционными документами, хотя они, конечно, не так важны, если вы работаете с XML-информацией, ориентированной на данные.

Имеются и другие соображения в пользу применения XML-СУБД. Немалая часть таких систем способны понимать описания DTD и XML Schema и поэтому при сохранении или обновлении данных могут обеспечивать проверку их корректности “на лету”. XML-СУБД способны хранить такую информацию, как структура документа, инструкции обработки, комментарии, разделы CDATA, в то время как многие системы, пытающиеся хранить XML-данные в реляционной базе данных, не могут этого.

Ниже будет приведен список некоторых дополнительных функций, обычно имеющихся в XML-СУБД. Многие из этих функций поддерживают управление XML-информацией, ориентированной на документы.

Коллекции документов

В мире XML понятие “коллекция документов” аналогично понятию “таблица” в реляционной базе данных. Это группа отдельных независимых логических единиц хранения (XML-документы и записи соответственно), обладающих общими характеристиками. Например, ваша компания может хранить все XML-документы, относящиеся к заказам, в одной коллекции, а все документы, относящиеся к руководствам по продуктам, — в другой и т. д. Некоторые XML-СУБД обеспечивают возможность построения вложенной структуры коллекций документов.

Языки запросов

Почти все XML-СУБД поддерживают один или более языков запросов. Очень распространена поддержка языков XPath и XQL. Первый из них — это простой язык, позволяющий разработчикам обращаться к различным частям XML-документа, хотя сам по себе XPath не использует XML в своем синтаксисе. Вместо этого для идентификации узлов в XML-документе язык XPath использует выражения, очень похожие на те, которые распространены в стандартных файловых системах. XPath обычно применяется в XSLT и является стандартом консорциума W3C. Чтобы увидеть, как выглядят выражения в XPath, рассмотрим пример 1:

· Чтобы выбрать элемент ROOT из документа, используя XPath, мы должны написать: /catalog

· Следующее выражение XPath выбирает все элементы cd из элемента каталог: /catalog/cd

· Следующее выражение XPath выбирает все элементы price (цена) из всех элементов cd из элемента каталог: /catalog/cd/price

· XPath определяет библиотеку стандартных функций для работы со строками, числами и логическими выражениями. Чтобы выбрать из XML-документа все компакт-диски с ценой выше 10,98 долл., мы должны написать: /catalog/cd[price>10.98] XQL — это язык запросов для извлечения информации из XML-документов. Несмотря на схожесть своего названия с популярным языком SQL, который используется для выполнения запросов к реляционным базам данных, он почти ничем не напоминает его. Чтобы увидеть, как выглядят выражения в XQL, вновь обратимся к примеру 1.

· Чтобы выбрать все элементы cd из документа, напишем просто: cd

· Оператор подчинения <”/”> указывает иерархию. Чтобы выбрать все элементы title, подчиненные элементам cd, мы пишем: cd/title

· Чтобы выбрать все узлы, в которых цена компакт-диска равна 10,98 долл., мы должны написать: cd/price=”10.98”

Заметим, что в отличие от XPath язык XQL не является стандартом консорциума W3C. Ожидается, что в будущем большинство СУБД с поддержкой XML будут поддерживать стандарт XQuery, рекомендуемый W3C.

Транзакции и параллелизм

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

Конечно, XML-СУБД — это не панацея от всех бед. Такие СУБД не оптимизированы для хранения больших объемов данных, в особенности по сравнению с современными реляционными СУБД. NXD-СУБД также с трудом справляются с взаимосвязанными документами, где один документ содержит ссылки на другие. Некоторые XML-СУБД обеспечивают простые преобразования (обычно с помощью языка XSLT) для “сшивания” информации, содержащейся в нескольких документах, но подобные трансформации часто бывают негибкими и могут создавать узкие места в вашей системе, в основном когда требуется масштабируемость.

Кроме того, XML-СУБД обычно не поддерживают агрегацию. Если вы используете такую СУБД для работы с данными и хотите выполнять вычисления на основе данных из всей базы (например, рассчитывать суммы и средние значения), то вам, вероятно, придется добавить некоторую бизнес-логику на уровне связующего ПО. Агрегация — это очень важная функция, которая требуется всегда, когда вы работаете со структурированными данными, хотя она, как правило, имеет гораздо меньшее значение при работе с информацией, ориентированной на документы.

Гибридные СУБД

Если вы можете себе это позволить, то проще всего использовать одну из СУБД нового поколения, носящую название “СУБД со встроенной поддержкой XML”. Такая СУБД представляет собой обычную (как правило, реляционную) СУБД, имеющую встроенные средства для преобразования данных в XML-документы и обратно. Обыкновенно поставщики СУБД расширяют язык SQL и средства работы с типами данных в своем продукте, чтобы обеспечить “бесшовную” поддержку XML. СУБД с поддержкой XML обычно оптимизированы для работы с XML-информацией, ориентированной на данные, а не на документы. Это объясняется тем, что данные здесь должны преобразовываться в таблицы и из таблиц, определяемых пользователем, а не в таблицы, предназначенные для представления XML-документов. Тем не менее СУБД со встроенной поддержкой XML заслуживают хотя бы краткого рассмотрения, поскольку многие из них сохраняют ориентированную на документы XML-информацию в виде отдельного поля и используют для выполнения запросов предназначенные для обработки текстов расширения.

СУБД Oracle 9i XDB обеспечивает как поддержку XML-отображения данных, так и непосредственное хранение XML-документов.

В некотором смысле этот продукт размывает границу между реляционными и XML-данными. Он дает возможность пользователям просматривать реляционные данные как XML и наоборот, используя некоторые новые операторы языка SQL.

Команда EXTRACTNODE извлекает фрагмент документа, который соответствует выражению на языке XPath, и возвращает его в виде объекта данных типа XMLType.

XMLType — это новый тип данных, определенный в Oracle 9i XDB и предназначенный для хранения XML-документа целиком. Подобно остальным типам данных, столбцы с типом данных XMLType могут быть использованы как в таблицах, так и в представлениях таблиц. Если тип данных XMLType используется как часть представления, он позволяет разработчикам создавать XML-представление (“XML view”) реляционных данных. Другими словами, возможно создание виртуального XML-документа, использующего любые другие типы данных, имеющиеся в СУБД.

С помощью команды EXTRACTNODE и дальнейшей обработки полей типа XMLType разработчики могут использовать XML-данные так, как если бы они были реляционными. Среди других команд, которые компания Oracle добавила в SQL для поддержки XML, назовем следующие: XMLSCHEMA (позволяет накладывать ограничения на поля XMLType для согласования с конкретным описанием XML Schema); EXISTSNODE (определяет, существует ли на самом деле узел документа, специфицированный выражением XPath); XMLTABLE (создает таблицу из набора узлов, специфицированных на языке XPath) и XMLTRANSFORM (применяет таблицу стилей XSLT к данным типа XMLType).

Ваш выбор

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

Разработчикам, которые ищут способ хранения XML-документов и управления ими, следует решить, к какому типу относятся их приложения: ориентированы ли они на документ или на данные. Вообще говоря, интеграция с системой управления данными, опирающейся на СУБД, больше подходит для XML-приложений, ориентированных на данные, а интеграция с XML-СУБД — для приложений, ориентированных на документы. Большинство XML-приложений, имеющих дело с публикацией в Web, в основном рассчитаны на документы.


зао мцк медицинский центр в коломенском отзывы




  
13 '2002
СОДЕРЖАНИЕ

бизнес

• Большая сеть и большие перемены

• Интеграция с неограниченной расширяемостью

локальные сети

• Маркировать СКС становится проще

• Кабельные системы категории 6 и оборудование Gigabit Ethernet

• Оптические сети - это доступно всем

• Сетевые адаптеры Gigabit Ethernet с обработкой трафика TCP/IP

корпоративные сети

• XML приручает информационный хаос

• Радиосистемы типа “точка—точка”

• SAN против NAS - следующий раунд

услуги сетей связи

• Прольем свет на оптические сети

• Как нести бродбэнд в массы?

защита данных

• Защитите свой IP-телефон

• Аутентификация - основа безопасности

• PremierAccess впереди всех

• ИБП-гиганты

новые продукты

• Новые коммутаторы HardLink -- менее 9 долл. за порт!; Радиорелейные станции Altium MX


• Калейдоскоп



 Copyright © 1997-2007 ООО "Сети и Системы Связи". Тел. (495) 234-53-21. Факс (495) 974-7110. вверх