Microsoft Repository: обзор свойств и стратегия развития

А теперь перейдем к рассмотрению такого, до сих пор еще экзотического продукта Microsoft, как Microsoft Repository. В этой части будет дан краткий обзор архитектуры MSR. Объяснено, зачем он нужен, его рынок. Будет приведено описание составных частей репозитория: Engine, Open Information Model, программное окружение, и описаны способы его распространения.

Microsoft Repository

Что же такое MSR? Это хранилище метаинформации о приложениях, компонентах, хранилищах данных, базах данных и т.д. Не секрет, что при разработке программных систем любого уровня сложности необходимо иметь модель процессов, происходящих в системе, модель данных, используемых системой, объектную модель с соответствующим описанием каждой из компонент. И репозиторий предназначен именно для хранения информации подобно рода. Но для того, чтобы иметь возможность использовать все эти метаданные из любых систем, необходимо выработать некую стандартную схему хранения информации, некую информационную модель. И более того - необходимо внедрить эту модель на рынок инструментальных средств разработки программных систем, для того чтобы средства от разных производителей могли бы использовать эти данные. Естественно, что это задача не для маленькой компании и даже не для большой, если она одна. Поэтому Microsoft привлек к участию в данном проекте несколько ведущих производителей ПО, таких как Platinum, IBM, Oracle и т.д. И, в конце концов, репозиторий из инструмента для корпораций, для корпоративных разработчиков становится доступным все более широкому спектру компаний, разрабатывающих программное обеспечение.

Репозиторий, разработанный Microsoft, основан на технологии COM. Именно поэтому его функциональные возможности могут быть легко расширены. Это одно из очень важных его достоинств, т.к. оно дает возможность третьим фирмам добавлять требуемый функционал в репозиторий.

Впервые Microsoft Repository был распространен в составе Microsoft Visual Basic 5.0. За это время продано более 700 000 его копий и более 65 компаний разработали приложения, использующие Microsoft Repository.

Почему Microsoft Repository

Давайте теперь выясним, для чего же конкретно необходим этот инструмент? Что он позволяет делать?

Если посмотреть на то, как обычно используются сложные приложения в компаниях, станет очевидным, что необходимо решать задачи разделения метаданных между приложениями, разделения компонентов между приложениями и т.д. Это возможно сделать при помощи Microsoft Repository. Многие компании, разрабатывающие программные системы, так и делают, например, SAP, Baan, Popkins Software и т.д.

В процессе разработки и внедрения сложной программной системы зачастую необходимо хранить информацию о промежуточных версиях системы, следовательно, о промежуточных структурах данных, промежуточных версиях объектов, входящих в систему, и других компонентах. В этих случаях использование репозитория не просто удобно, а необходимо для синхронизации работы отдельных разработчиков, проектировщиков, тестеров и соответствующих служб (групп). Тому есть примеры: SAP, Baan, да и сам Microsoft использует данный подход.

Партнеры (Microsoft Repository)

На данном слайде представлен список тех компаний, которые приняли репозиторий в качестве стандарта.

Способы использования репозитория

Давайте еще раз рассмотрим уже в той или иной форме затронутые нами способы использования репозитория. Этих способов известно четыре.

Первый из них - это использование репозитория в качестве активного хранилища для обмена данными между визуальными инструментальными приложениями (средствами визуального моделирования или средствами визуальной разработки приложений).

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

Третий. Репозиторий - интегрированный репозиторий метаданных для хранилищ данных.

Четвертый. Репозиторий бизнес объектов приложений, выполненных в многоуровневой архитектуре.

Репозиторий: средство обмена моделями

Рассмотрим первый способ, первый сценарий использования репозитория на конкретном примере - примере систем построения моделей.

Репозиторий является составной частью архитектуры систем построения моделей. Например, Visual Modeler способен сохранять свои модели в Microsoft Repository. Зачем это нужно для моделирующего инструментария? Каков выигрыш? Выигрыш в возможности обмениваться моделями между различными моделирующими инструментами. Впервые с необходимостью моделирования систем столкнулись компании, разрабатывающие крупные проекты. Но в течение длительного времени никто не мог предложить инструмент, способный решить эти задачи. Лишь сейчас ряд фирм предлагает такие системы (Platinum, Logic Works, Rational Software и т.д.), и Microsoft тоже в настоящий момент имеет инструмент, способный создавать небольшие модели. При этом возникла следующая проблема - проблема обмена моделями, разработанными в различных системах. Это необходимо тогда, когда есть желание воспользоваться готовыми моделями, имеющимися на рынке. И репозиторий может служить инструментом, решающим эту проблему. Именно поэтому Microsoft обратился к производителям моделирующих систем с призывом использовать репозиторий в качестве хранилища моделей, а в качестве стандарта для описания моделей использовать UML - Unified Modeling Language. В настоящий момент среди партнеров Microsoft, использующих репозиторий в качестве хранилища моделей, свыше 50-ти компаний.

Это был первый сценарий применения репозитория на практике. Следующий пример - Visual Component Manager.

Обмен объектами и повторное их использование

Visual Component Manager (VCM), теперь уже являющийся составной частью Visual Studio 6.0, позволяет разделять между инструментами, разработчиками и приложениями все компоненты, все составные части, из которых состоит разрабатываемая система: файлы, файлы-заголовки, библиотеки типов, элементы управления, модели, описания структуры данных и многое-многое другое. Причем список объектов, с которыми умеет работать VCM, можно расширять. Более подробно работу с VCM рассмотрим в соответствующей части данного доклада.

Microsoft Data Warehousing Framework

Третий сценарий использования репозитория - это использование его в качестве хранилища метаданных. Команда, разрабатывающая репозиторий, объединила свои усилия с группами, работающими над Microsoft SQL Server'ом и OLAP сервером, известным ранее под названием Plato. Результатом их совместных усилий явилась следующая схема, которая представлена на слайде и носит название Microsoft Data Warehousing Framework.

Если посмотреть на самый нижний уровень в этой схеме, то там присутствуют средства управления хранилищами данных и самими данными, такие как Microsoft Management Console, такие средства, как events, scheduling, topology и т.д.

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

Следующий уровень, по сути, описывает те шаги, которые выполняются при применении хранилищ данных. Это извлечение данных из базы, передача данных в хранилище, их агрегирование, консолидация и преобразование к виду, удобному для анализа данных конечным пользователем. А инструментом, который может пользователю помочь в этом, могут выступать как Microsoft Excel, Microsoft Access, так и другие средства.

Data Transformation Services

Давайте посмотрим, как и для каких целей можно использовать информацию о преобразовании данных, которая хранится в Microsoft Repository. Обычно преобразование данных выглядит следующим образом. Данные берутся из какого-либо источника: ODBC, OLE DB, текстового файла с фиксированными полями, с полями, разделенными запятым и т.д. - и преобразуются в соответствующие форматы данных с помощью DTS. Каждое преобразование данных может сопровождаться обращение к репозиторию для получения соответствующей схемы преобразования данных. Репозиторий, в данном случае, выступает в качестве хранилища схем преобразования данных. Это весьма полезно при создании крупных систем анализа и обработки данных, когда в качестве источников данных выступают базы данных от различных производителей с различными правилами трансформации этих данных.

Что такое Microsoft Repository?

Что же такое Microsoft Repository? Его основой является Open Information Model - открытая информационная модель, которая структурирована по предметным областям и типам объектов, которая открыта для третьих фирма и поэтому является функционально расширяемой и настраиваемой под конкретные нужды конкретного производителя.

Репозиторий использует открытый COM-интерфейс для работы с данными и SQL для их хранения. Все это позволяет утверждать, что репозиторий - легко настраиваемый инструмент.

Microsoft Repository

Этот слайд сделан специально для того, чтобы наглядно показать, для чего предназначен репозиторий и для чего он не предназначен.

Итак, репозиторий обеспечивает разделение метаданных хранилищ и приложений, а именно: моделей объектов и данных, описание компонент, SQL и OLAP схемы, модели протекания бизнес процессов и т.д. И при этом он не является хранилищем данных в общепринятом смысле этого слова. Он просто не приспособлен, не оптимизирован для этого.

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

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

Архитектура Repository Engine

Мы рассмотрели общие вопросы относительно к Microsoft Repository, давайте теперь более подробно ознакомимся с его архитектурой. И начнем, в частности, с архитектуры Repository Engine. Его задача - обеспечить сохранение или, более правильно сказать, установку новой модели в репозитории, сохранение и восстановление объектов данной модели. При этом, в конечном счете, объекты сохраняются в базе данных, а восстанавливаются в виде COM-объектов.

Свойства и взаимосвязи

Что же представляет собой репозиторная модель? Она состоит из отдельных COM-объектов, таких, например, как представленные на слайде объекты таблица и индекс. Как любой другой СОМ-объект, они имеют соответствующие интерфейсы, характеризующие тип объекта (таблица или индекс) и имеющие свойства и коллекции. Коллекции в данном случае предназначены для организации взаимосвязей между репозиторными объектами.

Помимо этого, имеется объект, представляющий собой коллекцию взаимосвязей таблиц и индексов. И такая архитектура (наличие объектов с коллекциями связей и наличие объекта - коллекции взаимосвязей) позволяет легко решить задачу навигации среди репозиторных объектов. А, надо отметить, именно эта задача является наиболее часто выполняемой при работе с репозиторием.

Навигация в репозитории

Давайте посмотрим по шагам, как выполняется процесс навигации в репозитории. Первый шаг - создание сессии для работы с репозиторием (открытие транзакции). Следующий шаг - открытие репозиторной базы и извлечение корневого объекта. Далее - извлечение коллекции взаимосвязей для установленного типа связи и, затем извлечение из коллекции связи по позиции, имени или идентификатору. И, в результате, имеем требуемый объект.

Пример кода на Visual Basic

На данном слайде представлен код на Visual Basic, наглядно демонстрирующий процесс навигации в Microsoft Repository.

DIM Repos as New Repository
DIM Root, Emp, Index as RepositoryObject
DIM EmpTable as IDbmTable
DIM Index as IDbmIndex
Set Root = Repos.Open( "" )
Set EmpTable = Repos.Object( "" )
For each Index in EmpTable.Indexes
     If Index.IsUnique then ...
Next Index

Пример определения типов в репозитории

Рассмотрим теперь каким образом можно определить в репозитории новую модель. Сделаем это на примере вышеозначенной модели, состоящей из объектов типа таблица и объекта типа индекс. Первый шаг, который необходимо выполнить - создать соответствующие классы. Далее необходимо определить для них интерфейсы (шаг №2 на слайде). Затем - свойства. Так, например, индекс-интерфейс имеет, как видно, два свойства: IsUnique и Nullable. И напоследок необходимо определить взаимосвязи между объектами. Так определяется в репозитории новая модель, описывающая иерархию таблиц и индексов.

Инсталляция модели

Посмотрим еще раз на процесс инсталляции модели. Если на предыдущем слайде мы рассмотрели, ЧТО определяет новую модель, то теперь посмотрим, КАК это делается. Прежде всего, создается определение (описание) нового класса в виде СОМ-объекта, для которого создается соответствующий интерфейс и свойства и т.д. А так как для этого используется Repository Engine, то он одновременно сохраняет всю эту информацию в хранилище Microsoft Repository.

Microsoft Repository 2.0

Что нового в данной версии Microsoft Repository по сравнению с предыдущей? В ней возможно хранить различные состояния одного и того же объекта, отслеживая тем самым, историю его создания. Кроме того, имеется возможность отслеживать взаимосвязи между различными версиями объекта. Добавлена возможность управления рабочими местами, улучшена производительность репозитория, он полностью совместим с предыдущей версией и т.д. Поставляется настоящая версия репозитория в составе Microsoft SQL Server 7.0 (будет поставляться) и Visual Studio 6.0.

Object Information Model

Object Information Model (OIM) - это не более чем схема, способ описания объектов, хранящихся в репозитории. Но она должна быть некоторым общепринятым стандартом для обеспечения возможности обмена данными между инструментальными системами анализа, проектирования, разработки и непосредственно приложениями.

Архитектура открытой информационной модели (OIM)

Основой архитектуры OIM является UML - универсальный язык моделирования. Этот язык является абстрактным языком, не привязанным к конкретной модели, и поэтому он позволяет описать в принципе любую систему, любой компонент программной системы. Именно на этом уровне описываются зависимости элементов, иерархия, взаимосвязи, свойства и т.д. Этот уровень абстракции напрямую используется таким инструментом визуального моделирования, как Visual Modeler.

На данном уровне абстракции, на UML, основано более конкретное описание - описание объектов, являющихся составной частью СОМ-модели - Component Description Model (Cde). С объектами, описанными на данном уровне, взаимодействует Visual Component Manager.

И, совершенно аналогично, модель, описывающая базы данных и хранилища данных - Database Model (Dbm), тоже имеет в своей основе UML-модель.

То есть и Cde, и Dbm все описание, характеризующее иерархию объектов и их взаимосвязи, наследуют из модели UML.

Почему UML является корневой моделью?

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

UML метамодель является корневой, потому что за счет абстракции представления покрывает все ключевые типы моделей и, кроме того, принята в качестве стандарта различными производителями визуальных средств моделирования: Rational, Oracle, IBM, HP...

Microsoft Repository - где и когда?

MS Repository 1.0 поставлялся с Visual Basic(r) 5.0 и Visual Studio 5.0. Кроме того, он лицензировался для распространения третьими фирмами с помощью компаний Mystic River Software и Summit Software. Дополнительную информацию о Microsoft Repository можно найти на сайте http://www.microsoft.com/repository.

Open Information Model - где и когда?

UML модель поставлялась в Visual Studio 5.0. Cde модель поставляется в Visual Studio 6.0. Dbm модель будет поставляться в Microsoft SQL Server 7.0. Кроме того, важно знать, что все модели доступны в исходных кодах в Microsoft Repository SDK 1.0.

 

Назад | Содержание | Вперед