XML вызывает огромный интерес с того момента, как о нем было впервые заявлено в 1997 году как о новой Internet-технологии. Он обеспечивает стандартный способ разметки контента (содержания), предоставляя гибкий способ структурирования данных. Контент XML документа размечается с помощью определяемых разработчиком тегов, на основе правил грамматики XML. Неформально говоря, XML это всего лишь способ представления иерархической информации (т.е. некоторой древовидной структуры). XML разрабатывался с единственной целью - отделение данных от их представления. Представление XML-данных на экранах компьютеров (будь то медицинская карта или коммерческий счет) – это хотя и существенная часть многих приложений, но вполне обособленная. Сам по себе XML-документ не указывает, будет ли, и каким образом, информация отображена на экране, хотя в нем возможна ссылка на программу, реализующую такое представление. Сам XML-документ содержит размеченные данные, но эта разметка существенно отличается от HTML-разметки: разметка, вводимая тегами HTML, служит исключительно целям представления, разметка, вводимая тегами XML, служит целям структуризации содержания документа – она может рассматриваться как простейший способ введения семантики. Техника представления XML-документов изменяется от простой до достаточно сложной. Независимо от выбранного метода, дизайн представления информации XML-документа осуществляется с помощью других средств, специально предназначенных для этой цели и называемых шаблонами разметки и таблицами стилей. Дизайнер отдельно определяет шаблоны и стили форматирования и правила их применения. Одну и ту же таблицу стилей можно использовать совместно с несколькими XML-документами для создания сходного вида; наоборот, для одного XML-документа может использовать несколько таблиц стилей, создающих разные виды документа. Стили и шаблоны применяются к данным XML-документа во время его представления клиенту и могут быть использованы для его преобразования в формат HTML или любой другой формат данных. Однако по мере развития XML было понято, что он может выполнять еще одну существенную функцию, связанную с передачей данных между приложениями. С точки зрения самых различных приложений весьма существенна стандартизованная передача данных между приложениями, не требующая специальных средств, обеспечивающих форматные преобразования. Интеграция унаследованных приложений, создание композитных приложений, технология Web-сервисов, сервис-ориентированная архитектура информационных систем – все эти технологии непосредственно ориентированы на использование XML для передачи данных. Широкое использование XML-технологий привело к тому, что стали накапливаться значительные архивы XML-документов, поэтому в последнее время все больше стали говорить о создании XML баз данных, так как частое конвертирование XML-документов в структуры реляционных баз не эффективно из-за слишком большой разницы в структурах. К настоящему моменту создано уже несколько "native" (родных, созданных именно для XML) XML СУБД, и они непрерывно совершенствуются. Это значит, что совершенствуются функции, присущие классическим базам данных: эффективное хранение, индексация, обеспечение безопасности, обработка транзакций и поддержка целостности, многопользовательский доступ, поддержка запросов ко многим документам и т.д. Все эти функции в той или иной степени поддерживаются современными XML СУБД, но как отмечается Р.Буре, не в той степени зрелости как это присуще реляционным СУБД. Как задача создания "native" XML СУБД, так и вообще задача эффективной работы с архивами XML-документов в настоящее время находятся в исследовательской стадии. В этой связи необходимо отметить группу исследователей из ИСП РАН, разработавших оригинальные методы эффективного хранения XML-документов, их индексации, поддержания ограничений целостности и т.д. и реализовавших эти методы в XML DBMS SEDNA. За пределами России также создано несколько XML СУБД, среди которых отметим систему TigerLogic, разработанную одноименной фирмой. Однако задача состоит не только в том, в том, чтобы создать XML СУБД и построить на ее основе XML-базу данных - надо найти место этих баз в современных информационных системах, сделать эти системы баз данных востребованными. Эта задача не менее, а может быть и более сложная, поэтому крупные фирмы – производители СУБД пошли по пути встраивания XML в свои реляционные системы. В реляционную таблицу встраивается столбец (один или несколько), которому присваивается тип XML. Каждая строка таблицы в этом столбце содержит указатель на XML-документ, сохраняемый в специальном хранилище. Так организована поддержка XML в СУБД DB 2 фирмы IBM. Аналогичные методы используются и в других системах. Все XML-документы принято разделять на "ориентированные на документы" и "ориентированные на данные" ("document centric" и "data centric"). Это разделение довольно условное, однако в большинстве случаев при "ориентации на документы" в XML-документе в пределах любого тега допускается свободное использование текста, в котором некоторые фрагменты "размечены" XML тегами. Теги разметки могут быть произвольно разбросаны по тексту, лишь бы соблюдались фундаментальные требования по их вложенности. Говорят, что имеет место смешанная разметка, порождающая "mixed content", характерный для содержательных документов, включающих текст, графические фрагменты, цифровые выкладки. XML-документы, "ориентированные на данные", устроены гораздо более строго: имеется строгая последовательность тегов, каждый тег может быть либо групповым, включающим дочерние, либо конечным, включающим неразмеченный текст. Различные счета, накладные, которыми обмениваются предприятия, оформленные в виде XML-документов, являются типичными представителями документов, "ориентированных на данные". Разумеется, и те и другие документы можно хранить в базах, поддерживаемых как "native" XML СУБД, так и реляционными системами, с встроенной поддержкой столбцов типа XML. Однако следует заметить, что в хранилищах этих баз XML-документы хранятся не в виде привычных текстовых файлов с расширением .xml, а в более развернутом виде, так или иначе связанным с DOM-ориентированной структурой. На их загрузку тратится время, точно также как и выгрузка в виде тестового файла или строки сообщения, при необходимости отправки. Термин "XML база данных" не совсем точен. Дело в том, что базы данных образуют совокупность взаимосвязанных данных, а не совокупность отдельных несвязанных документов, что характерно как для "native" XML СУБД, так и для реляционных систем, с встроенной поддержкой столбцов типа XML. Поэтому более точным является термин "база XML-документов", а вопрос отображения содержания XML-документов в стандартные базы данных имеет и самостоятельное значение. Поэтому, по крайней мере, для архивов документов, "ориентированных на данные", вопрос создания на их основе XML-баз данных не такой однозначный, тем более что данные, включаемые в них, являются объектами хранения традиционных систем. Выполнен ряд исследований, связанных с отображением XML-данных в среды реляционных и объектно-реляционных СУБД баз данных. Существуют также другие модели данных и поддерживающие их СУБД, которые работают с более глубокими иерархическими структурами нежели традиционная "таблица – строка – поле" практической реляционной модели. В качестве такой альтернативной модели можно рассмотреть модель Pick UDM, лежащую в основе СУБД D3. Мы постараемся показать, что в структуры этой модели весьма эффектно и эффективно отображаются XML-документы, "ориентированные на данные" и наоборот, выдачу на запрос к этой базе можно получить в виде XML-документа с заданной XML-схемой. Кроме обработки XML-документа в оперативной памяти при создании систем управления XML базами данных возникает вопрос хранения XML документа во внешней памяти. XML-документ представляет собой последовательный текст, размеченный тегами разметки. Обычно это специального вида последовательный файл, имеющий расширение .xml. С точки зрения организации этого файла следует заметить, что каждый групповой как открывающий, так и закрывающий теги обычно располагаются на отдельных строках, а теги, ограничивающие неструктурированную информацию, вместе с последней образуют отдельную строку. Этот файл можно сохранять в базе данных в виде CLOB'а и обрабатывать последовательно, строка за строкой, или загружать в основную память весь документ в соответствии с некоторой структурой, например, объектной моделью документа. При загрузке XML-документа в основную память каждый элемент представляется объектом, а доступ к конкретным элементам определяется путем из корня дерева к этому элементу. Ограниченный подкласс XML-документов, "ориентированных на документы", также можно представить в структурах модели Pick UDM, но для этого приходится воспользоваться идеями, заложенными в модель RDF. Получаемую разметку можно положить в основу разработки системы "динамической" разметки линейных текстов. Эта разметка осуществляется пользователем, например, учебного пособия и может быть сохранена после сеанса или уничтожена. В России, наряду с СУБД D3, принадлежащей в настоящее время компании TigerLogic, широко известны две другие СУБД, построенные в соответствии с моделью Pick UDM. Это СУБД Universe и UniData, которые в настоящее время принадлежат фирме IBM. Все алгоритмы, представленные в данной работе, будут работать и в рамках этих СУБД, однако программная реализация выполнена с ориентацией на среду, предоставляемую СУБД D3. Концепция Web-сервисов – это концепция новой технологии для разработки и эксплуатации распределенных информационных систем. Существовавшие до появления этой концепции технологии, такие как DCOM (Microsoft) и CORBA (OMG), не смогли в полной мере обеспечить совместимость различных приложений в неоднородных распределенных сетях. Электронный бизнес требует совместимости, без совместимости приложений рынок электронного бизнеса не может развиваться, ибо основу его составляют вычислительные услуги разнотипных поставщиков, потребители которых не могут подлаживаться под каждого. Ведущие компании-производители программного обеспечения предложили технологию Web-сервисов и прикладывают значительные усилия для ее развития под эгидой WWW-консорциума (W3C). Рекомендации W3C определяют спецификации, ориентируясь на которые производители программного обеспечения разрабатывают собственные реализации этих технологий. В качестве примера можно привести WebSphere Application Server (IBM) и JWSDP (Sun). Компании производители технологий Web-сервисов добиваются совместимости своих реализаций, основой этой совместимости является последовательная ориентация на применение стандартов XML-технологии. В частности, формат SOAP-сообщений представляется в виде XML-документа; WSDL описание интерфейса Web-сервиса также представляется в XML-формате Таким образом, базовая архитектура Web-сервисов предполагает наличие, по крайней мере, трех организаций: провайдера сервиса, регистра сервисов, обеспечивающего регистрацию и средства поиска сервисов и клиента, запрашивающего сервис. Их взаимодействие включает операции декларации, поиска и связывания сервиса. В типичном сценарии использования Web-сервиса провайдер, имеющий права на сервис, поддерживает программные модули, реализующие сервис, формирует описание сервиса и публикует его в специальном регистре, делая это описание доступным всем заинтересованным потребителям. Как уже отмечалось, технология Web-сервисов основана на XML-технологии: взаимодействие программы-клиента и программы-сервера основано на обмене XML-сообщениями, описания сервисов также используют XML для оформления всех деталей такого взаимодействия, включая описание контента, транспортных протоколов и т.д. Технология Web-сервисов предназначена для создания распределенных приложений, функционирующих в среде Интернет (и всех его вариаций типа интранет и экстранет), компоненты которых взаимодействуют на базе стандартных Web-протоколов. По мнению экспертов, Web-сервисы должны заменить уже довольно давно существующие технологии для связывания удаленных компонентов (в частности, DCOM и CORBA), которые несовместимы между собой и, более того, реализованы на основе закрытых корпоративных стандартов. Однако самое главное то, что все эти технологии создавались в свое время для обеспечения связи программных компонентов в однородных локальных вычислительных сетях с поддержкой ограниченного числа транспортных протоколов. Все это в целом позволяет создавать высокоэффективные распределенные информационные системы различных классов. Авторы выражают признательность аспиранту Кадей Тхею, выполнившему программную реализацию и проверку разработанных алгоритмов. |