воскресенье, 28 февраля 2010 г.

Существующие решения систем управления данными в формате XML – Часть 2.

5. XML-ориентированные базы данных

XML-ориентированные базы данных в качестве модели данных использует модель данных, принятую в самом XML. Следует отличать XML-ориентированные базы данных (напрмер, Tamino или Cache) от реляционных, поддерживающих обмен данными на языке XML (Oracle, Microsoft SQL Server и др); в основе последних лежит реляционная модель.

Самые известнае и распространенные XML-ориентированные базы данных – Tamino (компания Software AG) и Cache (InterSystems).

clip_image002

Рисунок 3. XML-ориентированные базы данных

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

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

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

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

6. Данные и метаданные в XML-ориентированных базах данных

XML-документы, имеющие одинаковые уникальные имена тегов и порядок их вложенности друг в друга, и не зависимо от количества вложенных одноименных тегов, относятся к одному классу документов и являются его экземплярами. Внутри класса экземпляры документов и их узлы различаются по уникальному идентификатору ID. Говоря языком документооборота, класс – это описание бланка документа (где и какие поля, как называются, какими чернилами заполнять, на основании чего именно, кому и когда передать документ после заполнения и т.п.), а экземпляр – один заполненный бланк.

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

Классы разделяются на две большие группы:

  • Исходные XML-документы, элементы которых «прошиты» взаимными связями (Id и Ref). Связи могут указывать как на узлы этого же документа, так и на узлы другого документа, находящегося как в этой же базы данных, так и какой-либо другой, расположенной на удаленном сервере. Если ставится задача полной поддержки исторической целостности, то кроме указателей связей в атрибуты тегов элементов записывается системная дата последнего изменения этого элемента.
  • Аналитические XML-документы, полученные из исходных XML-документов путем заполнения содержимого тегов (текста) значениями, получаемыми либо путем прямого перенесения, либо путем аналитической обработки значений из других XML-документов. Возникает ли подобный документ в момент его запроса (виртуальный документ) или рассчитывается заранее (хранимый документ), определяется практической целесообразностью.

Для описания классов используются экземпляры следующих метаклассов (не обязательно по одному):

  • Schema – описывает структурные свойства XML-элементов для исходных XML-документов – перечень имен дочерних элементов, обязательность и возможность множественности данного элемента и т. п., а также тип данных содержимого элемента и принадлежность домену. Осуществляет проверку поступившего на сервер или, чаще, заполняемого на клиенте документа.
  • XSLT-документы – описывают преобразования исходных XML-документов в аналитические XML-документы.
  • XSL-документы с таблицами CSS и набором скриптов Behaviors – определяют, соответственно, разметку и стиль оформления документов, а также поведение элементов для электронных документов.

clip_image004

Рисунок 4. Реляционные базы данных, поддерживающие обмен данными на XML

Помимо описанных выше классов и метаклассов XML-ориентированные базы данных включают в себя:

  • Набор сценариев для работы различных групп пользователей. У сервера, как у полноправного участника документооборота, также есть свой сценарий. Сценарий связывает события, порождаемые пользователем или порождаемые «внутри» XML-базы (триггеры), с соответствующими метадокументами (Schema, XSLT, XSL) и операциями манипулирования, совершаемыми на клиенте или на сервере. По сути, сценарий – это данные, описывающие логику работы приложения, препарированного на составные части с целью унификации.
  • Библиотеку готовых XSL-шаблонов, CSS-стилей, скриптов Behaviors для упрощения проектирования документов, возможности изменения на пользователе логико-геометрического представления и внешнего вида документа, а также для подготовки XSL-документов по умолчанию. Например, вид и поведение полей для ввода во входной форме могут быть определены по умолчанию на основании типа данных, записанного в Schema.
7. Tamino компании Software AG

Деловой мир развивается все стремительнее и время от времени требует реорганизации бизнес-процессов в короткие сроки для сохранения конкурентоспособности предприятия. Это обстоятельство приводит к необходимости создания такой инфраструктуры ИТ, в которой новые приложения смогут работать совместно с существующими компонентами и прикладными системами. Быстрое развитие электронного бизнеса и будущих рынков предполагает “перманентную революцию” в сфере ИТ, в то же время задача сохранения инвестиций (например, в оборудование или обслуживающий персонал клиента) требует принятия эволюционных мер. Таким образом ИТ должны быть способны реализовать радикальные изменения и быстро, и по возможности плавно. Вместе с тем электронный бизнес ставит новые проблемы, поскольку для его ведения необходимы:

  • быстрая адаптация технологии в соответствии с изменяющимися требованиями рынка;
  • адаптация систем к меняющимся (иногда на порядки) скоростям передачи данных;
  • соединение существующих “островов” ИТ без дублирования промышленных решений;
  • сокращение расходов на программирование в среде Интернет и администрирование серверов.

clip_image006

Рисунок 5. Архитектура Tamino

Для решения этих проблем компанией Software AG и был создан Tamino — информационный XML-сервер, основанный на открытых стандартах. Компоненты Tamino обеспечивают быстрый, но плавный процесс изменения ИТ, объединяя Интернет-технологии с современными достижениями в области разработки новых баз данных и средств доступа к уже существующим. Информационный сервер Tamino поддерживает спецификацию XML V.1.0, язык ссылок XLL, таблицы стилей XSL и подмножество XQL, а также концепцию пространства имен XML. Это интегрированное решение, объединяющее целый набор технологий.

8. Технология X-Machine

X-Machine представляет собой высокопроизводительный инструмент для хранения XML-данных в оригинальном виде и подключения написанных пользователем функциональных расширений сервера для выполнения различных операций преобразования документов.

clip_image008

Рисунок 6. Структура модуля X-Machine

Технология X-Machine позволяет не только хранить, но и отыскивать объекты, относящиеся к бизнес-процессам. X-Machine включает в себя:

  • XML-процессор. Объекты XML, запоминаемые в XML-хранилище, описываются соответствующей схемой данных, выраженной в правилах отображения. Данная информация хранится в базе данных Tamino. Внутренний XML-процессор выполняет проверку правильности синтаксиса описателей объекта и отвечает за синтаксическую корректность структуры объектов XML;
  • процессор объектов. Он используется при запоминании объектов в XML-хранилище. При этом структурированные данные (данные РСУБД) запоминаются в таблицах и колонках, соответствующих описанию схемы. Обмен с внешними источниками данных выполняется с помощью компонента X-Node;
  • интерпретатор запросов XML. Поддерживает язык запросов XQL и вместе с генератором объектов обрабатывает полученный запрос с целью поиска и формирования результата в виде XML-документа;
  • генератор объектов (Object Composer). Данный компонент применяется для поиска и чтения объектов. Используя уникальные идентификаторы объектов, сформированные X-Machine при их запоминании, генератор объектов конструирует информационные объекты и возвращает их как результат выполнения запроса в виде XML-документов. В простейшем случае информационные объекты будут объектами XML. В сложных запросах для конструирования XML-объекта из традиционных источников данных генератор объектов обращается к Tamino X-Node или Tamino SQL Engine;
  • программы обслуживания. Tamino предоставляет ряд программ обслуживания информационного сервера. В качестве главного примера может служить программа загрузки XML-объектов (аналог утилиты массовой загрузки данных в традиционных СУБД).
9. Tamino SQL Engine

За взаимодействие с SQL-приложениями в Tamino отвечает SQL-процессор. Опираясь на него, входящие в Tamino средства отображения данных формата XML могут автоматически представлять эти данные в виде объектов Интернета и, наоборот, информационные объекты Интернета могут стать доступными для стандартных приложений, ориентированных на SQL. SQL-процессор поддерживает операторы SQL версии 2 в части манипулирования определениями и управления данными (DML, DDL, DCL), а также выполнение ACID-транзакций.

clip_image010

Рисунок 7. Структура модуля Tamino SQL Engine

SQL-процессор получает SQL-запросы от Tamino несколькими способами:

  • посредством внутренних обращений Tamino X-Machine;
  • из SQL-приложений с помощью встроенного SQL либо через стандартные интерфейсы ODBC, JDBC, OLE DB;
  • через диспетчер Tamino.

Кроме того, SQL-процессор предоставляет препроцессоры для компиляторов со стандартных языков программирования.

10. Выводы

В ходе исследования существующих средств хранения данных в XML представлении и выявлении областей применимости каждого, были выявлены следующие существенные факторы:

1. Поддержка Native XML

Хранение XML документов без приведения к реляционному виду. Операции над документами хранилища выполняются по средствам XPath/XQuery запросов.

2. Поддержка реляционного представления

Хранение XML документов с приведением к реляционному виду. Операции над докуменртами в хранилище выполняются по средствам SQL-92 запросов.

3. Поддержка смешанного представления

Хранение XML документов возможно с приведением как к реляционному виду, так и в Native XML формате. Соответственно, операции над документами в хранилище выполняются по средствам SQL-92 и XPath/XQuery запросов.

4. Поддержка итеративного разбора ссылок XLink/XPointer

В нотации XML концерна W3C описан механизм определения ссылок в рамках XML представления данных. Благодаря равномерному распределению вычислительных ресурсов разбора больших файлов по времени, итеративный разбор частей документа позволил бы работать с XML документами больших объёмов. Кроме того, механизм линковки должен сопровождаться контролем ссылочной целостности данных сервера.

5. Поддержка мультидоступа

Функциональность параллельной работы с документами XML представления. Обеспечение транзакционной целостности данных при мультидоступе.

6. Атомарный элемент блокировки

При транзакционном мультидоступе большое значение на масштабируемость и пределы применимости оказывает размер части документа, блокируемой при транзакционной обработке.

7. Поддержка протоколов изменений и откатов.

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

8. Оценка области применения

На основании произведённого анализа приводится оценка области применения системы на базе рассматриваемого хранилища.

В анализе были рассмотрены

  • Файловая БД

XML файл храниться на диске. Работа ведётся по средствам Microsoft DOM 5.0 или SAX парсеров.

  • Реляционные БД
    • MS SQL Server 2005
    • DB2 Viper
    • My Sql 5.0
  • Native XML БД
    • Tamino
    • Sedna

Таблица 1.image

I. При работе с хранилищем такого типа возможна только обработка данных XML представления логики чтение только вперёд с монопольным доступом.

II. К мощности задач решаемых в I добавляется аппарат XPath запросов и построение в памяти модели данных с возможностью CRUD операций над элементами и атрибутами XML элементов.

III. Организация систем на базе XML типа данных реляционной БД обеспечивает поддержку многопользовательского доступа и позволяет использовать XPath/XQuery аппарат запросов. На базе таких хранилищ возможно построение системы распределенной обработки данных. Поддержка смешанного хранения XML позволяет максимизировать производительность при чтении данных, но при модификации требует актуализации данных в обоих представлениях.

IV. Приведения XML к реляционному виду обеспечивает поддержку групповых операций и всех плюсов использования реляционной модели. Но, как было показано выше, приведение к реляционному виду неоптимально и имеет высокую трудоёмкость реализации логики сопряжения хранилища с частями системы и бизнес логики обработки.

V. Native XML обеспечивает самый богатый аппарат администрирования и использования XPath/XQuery. Но из-за сложности операций над XML спектр разрешимых задач ограничен вычислительной мощностью системы. В случае работы с XML, приводимом к реляционному виду, использование реляционного хранилища позволяет получить прирост производительности, исчисляемый порядками.

Комментариев нет:

Отправить комментарий