На арену ИТ в новом обличье выходит старый игрок, способный вывести технологии разработки информационных систем на качественно иной уровень. Речь идет о метаданных — формализованных знаниях о внутренней структуре и поведении информационных систем.
Cодержимое Internet-портала «Воля» формируется с помощью служб, управляемых монитором на базе системы «Мегаполис 2» |
Согласно определению, данному коалицией Meta Data Coalition (www.mdcinfo.com) в документе «Open Information Model», «метаданные — это описательная информация о структуре и смысле данных, а также приложений и процессов, которые манипулируют данными». Понятие метаданных уже давно и успешно используют в таких контекстах, как информационные хранилища и системы аналитической обработки данных, электронный документооборот и управление потоками работ, управление знаниями. В привычных реляционных СУБД наряду с данными приложений хранятся данные о структуре таблиц (состав, типы, ограничения) и процессах обработки (хранимые процедуры, триггеры и т.д.). Язык HTML имеет тег
, содержащий данные об информации в документе. В платформе Microsoft .NET вместе с исполняемым кодом приложения хранится информация о нем (assemblies).Война и мир
В области стандартов хранения и обмена метаданными постоянно происходит смена состояний войны и мира; в идеале же ИТ-индустрия ждет возникновения единого комплекса взаимодополняющих стандартов. Но сегодня мы еще далеки от идеала, а на рынке существует целый ряд разрозненных стандартов. Некоторые из них унаследованы из области репозиториев и имеют почтенный возраст: CDIF (CASE Data Interchange Format), IRDS (Information Resource Dictionary System), AD/Cycle CASE Platform и т.д. [2]. Другие сравнительно новы, например, разработанная Object Management Group (www.omg.org) архитектура MOF (Meta Object Facility), которая определяет набор интерфейсов CORBA и объектов для взаимодействия с метаданными. Часто упоминаемый в контексте обмена метаданными XMI (XML Metadata Interchange) является стандартным форматом «транспорта» метаданных. Существует также XMI-схема для представления MOF-моделей.
Год 1996-й ознаменовался резким обострением конкурентной борьбы за признание стандарта в области хранилищ данных. Сразу несколько компаний выступили со своими разработками. Microsoft с инициативой AFDW (Active Framework for Data Warehousing) ввязалась в конфликт с Oracle, готовившей свой собственный стандарт. Компания Apple, обладатель Meta Content Format, также не осталась в стороне. По словам Джона Флеминга, который участвовал в разработке AWDF, попытки выработать стандарт на метаданные продолжаются уже примерно 25 лет [3].
Из всего множества стандартов особый интерес для разработки систем, имеющих дело с метаданными, представляют:
- Unified Modeling Language (UML), язык моделирования, де-факто являющийся стандартом на модели и, следовательно, основным стандартом представления метаданных;
- XML вообще и XMI в частности как стандартное «транспортное» средство для передачи метаинформации;
- серия стандартов, направленных на построение инфраструктуры взаимодействия приложений через Internet: SOAP, ebXML, WSDL, WSFL, UDDI.
Почему же использование метаданных, имеющее такую богатую историю, именно сегодня получает новый импульс для развития?
«Что день грядущий…»
Эффективная компания, следуя необходимости вести непрерывное совершенствование своих бизнес-процессов, должна иметь возможность оперативно вносить согласованные изменения в свои информационные системы. Такие изменения необходимы и при интеграции информационных систем разных предприятий для построения «сквозных» совместных бизнес-процессов с новыми партнерами и заказчиками.
Для того чтобы получать конкурентные преимущества от использования новых технологий, применять новые возможности в быстро меняющейся бизнес-среде, информационные системы предприятий должны постоянно обновляться. Крупные производители программного обеспечения пока используют традиционное «твердотельное» программирование, встраивая большую часть бизнес-логики в код программ. Они пока еще имеют достаточно средств, чтобы, разрабатывая очередную версию своего продукта, привлекать сотни и даже тысячи программистов. Однако крупные заказчики все реже готовы платить за обновление и запуск все новых и новых версий, а ниш, не охваченных автоматизацией, остается все меньше. Средний и малый бизнес не имеет достаточных средств на приобретение и поддержку чрезмерно дорогих систем. Полным ходом идет процесс создания программных служб и целых приложений, доступных через Сеть. Одно из ключевых требований к Web-службам — легкая интеграция с внутренними информационными системами предприятий.
Попытаемся суммировать требования, предъявляемые к информационным системам нового поколения:
- возможность внесения изменений и расширения функциональности в короткие сроки без остановки работы системы (предпочтительно использование высокоуровневого объектного интерфейса) с накоплением информации об обновлениях версий прикладной системы (например, в виде знаний);
- открытая архитектура, позволяющая легко осуществлять не только локальную, но и глобальную интеграцию через Internet;
- прогрессивная технология разработки, позволяющая создавать новые версии систем в короткие сроки меньшим числом разработчиков;
- наличие интегрированных простых в использовании, основанных на промышленных стандартах средств разработки.
Систему, которая помимо жестко запрограммированного каркаса содержит легко и гибко настраиваемую часть, управляемую знаниями, сформулированными в виде метаданных, гораздо проще и быстрее модифицировать. По нашему мнению, системы, которые используют метаданные, лучше других соответствуют перечисленным выше требованиям. С появлением же общепринятых языков общения, системы смогут получать новые знания не только от системных администраторов и аналитиков, но и обмениваясь информацией с другими системами. Показательно мнение директора компании Compaq по стратегии Джозефа Франсиса, который, говоря о проблемах интеграции информационных систем бизнес-партнеров, отметил, что рано или поздно настанет день, когда динамические самообучаемые приложения помогут преодолеть все сложности и ограничения процесса управления цепочками поставок.
Рис. 1. Выделение логических слоев в компонентах |
Попытка — не пытка
Известно несколько попыток построения систем, изменяющих свое поведение при модификации метаданных. Однако решение такой задачи выглядит просто, только когда речь идет о задаче для единственного заказчика.
Большинство подобных систем используют свои, специфические языки метаописания и структуры метаданных, не соответствующие стандартам. Как правило, существующие системы, основанные на метаданных, узко специализированы и применяются в отдельной предметной области. Скажем, если атомарными понятиями, которыми оперирует система, являются «документ» и «исполнитель», ее будет трудно применить для реализации приложений, не ориентированных на документы и исполнителей.
С другой стороны, системы, ориентированные на широкое использование и не привязанные к конкретной предметной области, часто страдают низкой производительностью и плохой масштабируемостью. Это следствие закрытой архитектуры и отсутствия поддержки промышленных стандартов на компонентные технологии построения масштабируемых систем, таких как COM+, CORBA или EJB.
Во многих проектах реализации информационных систем масштаба предприятия, основанных на метаданных, отсутствует поддержка популярных средств разработки. Как правило, такие системы вводят свой внутренний язык, требующий дополнительного обучения, что приводит к удорожанию разработки и сопровождения системы. Кроме того, такие языки либо слишком просты и неудобны в работе, либо требуют больших усилий от поставщика на поддержание и развитие инструментария, что также приводит к его существенному удорожанию.
Кроме того, есть еще одна проблема — защита вложенных средств.
«Разделяй и властвуй»
Защита инвестиций в программное обеспечение сводится к максимальному снижению стоимости сопровождения, внесению изменений и развития системы. Зачастую изменение одной части системы вызывает необходимость в модификации многих смежных частей. Архитектура с четким разделением функциональности по логическим слоям (данные — логика — представление) позволяет существенно снизить затраты на внесение изменений.
Разбиение приложения на слои стало фактическим стандартом для компаний-разработчиков, использующих технологии EJB, однако, множество других коллективов продолжают создавать монолитные системы. Из-за необходимости разбирать «клубки» запутанных взаимосвязей стоимость даже небольших изменений в таких системах становится слишком высокой, а повторное использование такого кода часто вообще теряет смысл.
Большинство новых приложений сегодня разрабатывается с использованием объектного подхода, поэтому кажется естественным для хранения данных использовать объектное хранилище. Однако применение объектных СУБД не всегда целесообразно и эффективно: нельзя, например, использовать любимый генератор отчетов, практически неизбежны проблемы с масштабируемостью и интеграцией с другими системами, имеющими реляционную основу. Кроме того, объектные СУБД не стандартизированы, и придется привязаться к единственному поставщику, рискуя однажды остаться без перспективы развития и поддержки. Да и ситуация, сложившаяся на рынке объектных СУБД, говорит сама за себя.
Широко распространенный сегодня подход — отображение объектных данных на реляционную структуру. При этом используются такие достоинства реляционных СУБД, как удобство работы с данными как с множествами, наличие хорошего теоретического фундамента и стандартизированного языка доступа и управления этими данными, солидная история и широкое распространение реляционных СУБД, доказавших свою надежность и масштабируемость.
Хотелось бы упомянуть и еще об одном подходе: обеспечение реляционного интерфейса к объектной СУБД, который реализован в системе Cache компании InterSystems. Повысить производительность системы можно, используя объектный интерфейс в критичных по времени выполнения OLTP-функциях и сохраняя реляционный интерфейс в остальной части системы.
Какие же сегодня существуют решения для реализации эффективных систем, позволяющих легко и недорого себя модернизировать и тем самым сохраняющих инвестиции?
Объективная реальность
Определенную популярность завоевала система Business Objects одноименной компании, которая предоставляет простой в использовании и развитый интерфейс для анализа бизнес-информации. Система заслуживает всяческого уважения за облегчение жизни пользователям-непрограммистам, но она оставляет в стороне вопросы бизнес-логики, организации ввода и сохранения транзакционной информации. Основная причина этого в том, что компания Business Objects называет объектом поле в таблице базы данных, к которому неприменимы такие понятия объектного подхода, как инкапсуляция, полиморфизм, наследование и жизненный цикл.
Более глубокий подход реализован компанией Versata, одноименная система которой, основанная на описаниях классов и бизнес-правил, предоставляет широкий набор функциональности, позволяя, в частности, импортировать диаграммы классов из Rational Rose. Бизнес-объекты Versata отображаются в классы Java и компоненты EJB, поддерживая все объектные парадигмы. Система основана на мощной инфраструктуре J2EE-совместимого сервера приложений IBM WebSphere. Пожалуй, им недостает только возможности описания динамического поведения объектов. Стоимость соответствует западной оценке систем такого класса — более 300 тыс. долл. за сервер приложений.
Система «Мегаполис 2» компании «Софтлайн» в стандартной конфигурации применяет для хранения данных и метаданных реляционную СУБД. Открытая архитектура и разделение системы на слои позволяют также использовать объектную базу данных или любые другие источники данных, для которых реализован слой, отвечающий за логику отображения объектов в хранилище. Компания создает информационные системы для крупных и средних предприятий из самых разных отраслей, поэтому размышления над тем, каким должен быть повторно используемый в разнородных системах код подтолкнули к созданию универсального ядра — сервера приложений «Мегаполис» (М2). Ядро, поддерживая множественное наследование реализаций объектов, обеспечивает возможность расширения как структуры и состава этих объектов, так и логики поведения. Универсальная библиотека объектов включает пакеты «Документы», «Адреса и контакты», «Юридические и физические лица», «Календари», «Территории» и многие другие.
Рис. 2. Расширение функциональности множественным наследованием |
Искренне ваш, Сервер Приложений
Набор объектов, каким бы хорошим он ни был, — еще не все: требуется инфраструктура управления. И чем больше работы она возьмет на себя, тем проще будет каждый объект. До появления компонентной технологии EJB сервером приложений обычно считали слой бизнес-логики системы, построенной в трехзвенной архитектуре. Сейчас же термином «сервер приложений» все чаще обозначают среды разработки и исполнения приложений, предоставляющие широкий набор служб, сокращающих трудоемкость создания конечных продуктов и повышающих их качество.
М2 — это построенный на метаданных сервер приложений с открытой архитектурой. В качестве метаязыка используется стандарт UML 1.3. Элементарные «прошитые» объекты системы — объектные оболочки простых типов данных. Это не накладывает практически никаких ограничений на использование «Мегаполис 2» в разных предметных областях.
Во время исполнения сервер М2 по метаописаниям классов предоставляет приложениям соответствующие COM-реализации, содержащие информацию о приведенном типе объекта и значения атрибутов. Методы могут быть реализованы на VBS, JavaScript, VBA, SQL, хранимых процедурах СУБД или любом языке, позволяющем создавать COM-объекты. COM+ позволяет наследовать интерфейсы, «Мегаполис 2» дополняет его возможностью множественного наследования реализаций.
Рассмотрим типичный сценарий использования М2. Предположим, в системе управления договорами предусмотрен объект «Договор», внедрена система электронного документооборота и требуется контролировать процесс согласования и выполнения договоров. Для этого объекту «Договор» добавляют еще одного «родителя» — «Контролируемый документ»; общие для двух объектов атрибуты отображаются из объекта «Договор» в нового родителя; типовой рабочий процесс для данного типа документов копируется, при необходимости в него вносятся изменения.
Договор, добавленный пользователем системы учета договоров, появится в реестре контролируемых документов, а машина состояний объекта создаст экземпляр рабочего процесса и запустит его на выполнение.
Используя М2, можно отображать атрибуты объектов в поля баз данных уже существующих на предприятии приложений, отображать реализацию методов на интерфейсы уже используемых компонентов, построенных по технологии COM. Все это дает возможность системе выступать в качестве клея, интегрирующего разрозненные приложения предприятия в единую систему. Появляется также возможность плавного перехода на новую платформу без «остановки» существующих приложений.
Следует учесть, что разработка начинается не с нуля. Изначально уже имеется система администрирования прав доступа, универсальная клиентская консоль, набор часто используемых объектов, система автоматического обновления клиентской части приложения, система тестирования работы приложений под нагрузкой, система управления проблемами, которую можно использовать не только во время разработки и сопровождения, но и как часть прикладной системы.
Кроме этого, с помощью данной технологии можно достаточно быстро предоставить заказчику функциональный макет будущей системы, который сформируется с помощью специальных программ-«экспертов» сразу после описания диаграммы классов и переходов состояний. С этого момента заказчик получает текущий работающий вариант системы и становится полноправным участником процесса разработки.
«А напоследок я скажу...»
Современный динамичный мир бизнеса и информационных технологий предъявляет достаточно жесткие требования не только к срокам и качеству проектирования, разработки и развертывания информационных систем, но и к возможности их эффективного развития в течение всего жизненного цикла. В эпоху, когда успех определяется скорее скоростью развития и адаптации к быстро меняющимся условиям, чем текущим положением, основанные на метаданных программные системы имеют все шансы занять доминирующие позиции.
Литература
[1] Наталья Сергеева, Леонид Павлов. «Корпоративные цифровые библиотеки», «Открытые системы», 1997, № 3
[2] А. Саймон. «Репозитарии и управление метаданными», «СУБД», 1996, № 5-6
[3] Марк Леон. «Соревнование стандартов на метаданные», «Computerworld Россия», 1996, № 41
[4] «Метаданные в задаче обработки данных», http://int.vega.mirea.ac.ru/ ~ostr/meta/task1.htm
Андрей Грищенко (vital@softline.kiev.ua) и Игорь Макаренко (iamak@softline.kiev.ua) — ведущие специалисты компании «Софтлайн» (Киев).
M2 и «Воля»
Инструментарий М2 использовался при разработке Internet-портала «Воля» (www.volia.com), содержимое которого формируется с помощью множества служб, управляемых монитором, построенным на базе «Мегаполис 2». Монитор координирует заполнение страниц портала, следит за системой публикации и регистрации. Реализация портала была выполнена за два месяца, причем 70% всего пользовательского интерфейса было построено с использованием универсальных форм справочников М2, а для 20% интерфейса использовался аппарат Visual Basic for Applications, интегрированный в «Мегаполис 2». Выгоды от использования М2 для проекта «Воля» проявились в снижении затрат на разработку и автоматическом получении единообразного интерфейса, что в какой-то мере позволило сократить затраты на обучение персонала портала, состоящего из журналистов.
С помощью М2 были выполнены, в частности, следующие проекты: Internet-брокер для компании Sigma Blayzer; система бухгалтерского учета для крупных предприятий («Укрпочта», «КийАвиа», «Интертранс»); система учета продаж билетов для «КийАвиа»; информационно-аналитическая система Государственного центра занятости Украины; система автоматизации «Подписка» для госпредприятия «Пресса»; экспедиторская система для предприятия «Интертранс».