Журнал ВРМ World

Мировая история развития технологий управления эффективностью бизнеса – обзоры зарубежных публикаций

Спецификация "Общая метамодель Хранилища данных" - Common Warehouse Metamodel (CWM)

Наши постоянные читатели помнят, что ранее мы публиковали ряд статей
посвященных различным стандартам XML-форматов. Мы решили возобновить эту
традицию: две статьи этой рубрики посвящены стандартам, в которых используется
технологии XML.
Первый материал данной серии знакомит со спецификацией CWM - стандартом
обмена метаданными в системах Хранилищ данных.

Спецификация Common Warehouse Metamodel (Общая метамодель Хранилища данных, далее CWM) - это стандарт, который описывает обмен метаданными при использовании технологий Хранилищ данных, Business Intelligence, Knowledge Management (Управление знаний). Опираясь на базовую метамодель, стандарт добавляет метамодели для реляционных, многомерных данных и данных таблиц, а также для преобразования, функций OLAP, data mining и Хранилища данных, включая процессы и операции.

В определенной степени появление спецификации CWM можно считать реакцией корпорации Oracle на продвигаемый Microsoft стандарт Open Information Model (Открытая информационная модель, далее OIM) - осенью 1999 года Microsoft передал указанную спецификацию на рассмотрение в консорциум Meta Data Coalition (MDC). Разумеется, Oracle не мог допустить лидерства своего соперника в области разработки Хранилищ данных и аналитических приложений, и спустя всего несколько недель после памятной инициативы Microsoft, 17 сентября 1999 года, Oracle, NCR, IBM и ряд других поставщиков программного обеспечения представили в организации Object Management Group (OMG) спецификацию Common Warehouse Metadata Interchange (Обмен общими метаданными Хранилища данных, далее CWMI).

В сентябре 2000 года произошло MDC вошло в состав OMG, и спецификация CWMI стала называться Common Warehouse Metamodel, ее версия 1.0 была опубликована в феврале 2001 года. В апреле того же года были обнародованы файлы спецификации, в которых были указаны исправления опечаток.

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

CWM выражен на языке UML (Unified Modeling Language, Унифицированный язык моделирования). Но, хотя UML является нотационным основанием для определения CWM, CWM расширяет базовую метамодель UML с помощью концепций технологий Хранилищ данных и бизнес-анализа.

Можно сказать, что CWM расширяет язык UML в том смысле, что каждый метакласс (metaclass) CWM наследуется напрямую, либо ненапрямую из метаклассов UML. Например, метакласс "Реляционная Таблица (Relational Table) CWM" является непосредственным наследником Класса UML (UML Class), а "Реляционный Столбец (Relational Column)" - прямой потомок Атрибута UML (UML Attribute). Таким образом, CWM можно характеризовать как язык определенной области применения, предназначенный для определения моделей Хранилищ данных.

Другой стандарт OMG - Meta Object Facility (Средство метаобъекта, далее MOF) - определяет общие интерфейсы и семантику для взаимодействующих метамоделей. MOF - это пример мета-метамодели, или модели метамодели (подмножество UML). Он также определяет набор IDL-преобразований (Interface Definition Language, язык описания интерфейса, который устанавливает спецификацию интерфейса для обнаружения и управления моделей с помощью программных APIs).

Помимо определения общей семантики для метамоделей MOF также служит в качестве модели для UML (то есть в конечном итоге MOF определяет язык, на котором выражается метамодель UML). Поскольку CWM наследуется из UML, MOF также является моделью и для CWM. Все модели CWM выражаются на UML и реализуют семантику MOF.

В таблице 1 приведены резюме этих связей в виде классической четырехуровневой архитектуры моделирования.

Таблица 1

Мета уровень Уровень моделирования Примеры
M3 Meta- Metamodel/Meta-meta-metadata (мета-метамодель/мета-мета-метаданные) MOF Class, Attribute, Association, Package, Operation
M2 Metamodel/Meta-metadata (метамодель/мета-метаданные) UML Class, Attribute
CWM Table, Column
M1 Model/Metadata (модель/метаданные) Product: Table
PoductType: Column
M0 Data/Object (данные/объект) "Toaster" ("тостер")
Television" ("телевизор")
"Stereo" ("стереосистема"))

Наконец, третий стандарт, который непосредственно задействован в обмене метамоделями - это XMI. XMI (XML Metadata Interchange, Обмен метаданными XML) - это стандарт OMG, который устанавливает правила преобразования метамоделей MOF в XML. XMI определяет, как использовать XML-теги для представления сериализованных моделей, совместимых с MOF. Метамодели MOF транслируются в XML DTD, а модели - в XML-документы, которые согласуются со своими DTD.

Каждая метамодель CWM представляется как XML DTD (в соответствие с правилами XMI), так и определение IDL. В первом случае модели CWM преобразуются в поток (serialize), после чего ими обмениваются, как документами XMI. При экспорте метаданные посредством XMI-документа, необходимо выполнить XMI-преобразование (MXI-rendering) в форме, которая легальна по отношению к DTD. При импорте данных с помощью XMI-документа, следует проверять модель на допустимость по этим DTD.

Во втором случае моделей объектов CWM создаются в памяти или хранятся в репозитории - в этой ситуации IDL предпочтительней, поскольку он определяет необходимые интерфейсы, подписи методов и структуру совокупности (см. ниже), которые эта модель должна поддерживать.

Итак, CWM фактически состоит из ряда составных метамоделей (или суб-метамоделей), которые организованы в виде следующих 4 слоев: базовый слой (Foundation), источники данных (Resources), анализ (Analysis) и управление Хранилищем (Management) (см. рисунок 1).



Рис. 1. Архитектура CWM

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

Слой источников данных предоставляет возможность моделировать существующие и новые источники данных, в том числе реляционные базы данных, ориентированные на запись базы данных (record oriented databases), а также XML- и основанные на объектах (object-based) источники данных.

Слой анализа предоставляет средства для моделирования сервисов информационного анализа, которые обычно используются в Хранилище данных. Он определяет метамодель для преобразования данных, OLAP, визуализации информации/репортинга (business nomenclature) и data mining.

Слой управления состоит из метамоделей, представляющих стандартные процессы и операции Хранилища данных, журнализации (activity tracking) и планирования работ [scheduling] (например, ежедневной загрузки и выгрузки).

Этот набор метамоделей, предоставляемых CWM, достаточен для моделирования всего Хранилища данных. Используя инструмент, поддерживающий CWM, можно было бы сгенерировать экземпляр Хранилища данных прямо из модели Хранилища данных. Каждый из этих различных инструментов использует те части модели, которыми можно воспользоваться. Например, сервер реляционной базы данных задействует реляционный блок этой модели и будет использовать его для построения его каталога. Аналогично OLAP-сервер будет отыскивать в модели метаданные OLAP и использовать их для определения многомерной схемы. А инструмент извлечения, преобразования и загрузки данных (ETL) скорее всего обработал бы срез модели Хранилища данных, которая охватывает несколько метамоделей CWM, в том числе метамодели OLAP, преобразования, типа данных, преобразования типов, выражений и реляционную метамодель.

Обзор этого стандарта был бы не полным, если мы не попытались выяснить мнение "общественности". Однако, появление нового стандарта не вызвало сколь оживленной полемики. Хотя отдельные высказывания, несмотря на то, что с момента публикации прошло достаточно много времени, звучат до сих пор. Справедливости ради надо отметить, что не все из них не так "радушны". Так, Ли Арнетт (Lee Arnett) в своей статье "Architecting an Agile Data Warehouse", опубликованной в конце прошлого года, писал, что важным аспектом Хранилища данных являются метаданные: "Если метаданные являются открытыми, они доступны для многочисленных утилит... Для метаданных Хранилищ данных был создан ряд стандартов. В том числе и CWM. Если метаданные структурированы согласно этому стандарту, инструменты от многих поставщиков смогут работать с этими метаданными. Удовлетворение этому стандарту желательно, но не критично для того, чтобы метаданные были открытыми. Если таблицы и колонки, которые содержат метаданные, документированы и доступны для использования, эти метаданные являются открытыми".

Автор: По материалам зарубежных сайтов