2004 г
ООСУБД Versant (VDS 6.0): архитектура, возможности
Константин Ткаченко,
Ленвендо
Versant – коммерческая объектно-ориентированная СУБД, соответствующая стандарту ODMG. Поставляется компанией Versant Object Technology – членом ODMG. Версия Versant 5.0, выпущенная компанией в 1997г., ориентирована на платформы Windows NT и Unix, поддерживает создание Java-приложений и работу с мультимедийными данными.
М.Р. Когаловский «Энциклопедия технологий баз данных».
Со времени, когда писались эти строки, многое изменилось как в компании, так и в линейке продуктов, выходящих под маркой Versant. В настоящее время Versant – интернациональная компания, имеющая свои центры разработки по всему миру. В 2004 году произошло объединение с немецкой компанией Poet Holdings – еще одним ведущим разработчиком ООСУБД.
Объединение усилий двух лидеров рынка коммерческих объектно-ориентированных СУБД позволяет говорить о новом этапе в развитии технологии обеспечения долговременного хранения объектов. На сегодняшний день реализованы интерфейсы для объектно-ориентированных языков программирования, таких как C++, Java, C#.
Технология Versant на сегодняшний день предоставляет разработчикам богатые возможности по использованию объектно-ориентированного подхода при построении приложений. ОО СУБД Versant поддерживает все базовые понятия и концепции объектно-ориентированного подхода такие, как объект и идентификатор объекта, атрибут и метод класса, иерархия и наследование классов. Использование Versant позволяет разработчику достичь идентичности модели данных приложения и модели хранения данных. Остановимся подробнее на этой особенности технологии Versant. Одним из самых распространенных путей обеспечения долговременного хранения объектов на сегодняшний день является сохранение значений атрибутов объектов в таблицах реляционной базы данных. Причем для решения этой задачи используются различные механизмы. От прямого включения операторов SQL в код приложения, до использования объектных надстроек над реляционными СУБД и применения так называемых постреляционных СУБД. Но у Versant есть одно ключевое преимущество перед всеми остальными технологиями – Versant разрабатывался специально для работы с объектами. Любая объектная надстройка или средство объектно-реляционного отображения вынуждены преобразовывать данные при чтении и сохранении.
Бизнес-логика приложения описывается на С++, Java или другом объектно-ориентированном языке а логика сохранения объектов сводится к управлению транзакциями.
Наиболее важной особенностью ООБД, достигаемой за счет применения объектно-ориентированного подхода, является поведенческий аспект объектов. В прикладных информационных системах, основывавшихся на БД с традиционной организацией (вплоть до тех, которые базировались на семантических моделях данных), существовал принципиальный разрыв между структурной и поведенческой частями. Структурная часть системы поддерживалась всем аппаратом БД, ее можно было моделировать, верифицировать и т.д., а поведенческая часть создавалась изолированно. В частности, отсутствовали формальный аппарат и системная поддержка совместного моделирования и гарантирования согласованности структурной (статической) и поведенческой (динамической) частей. В среде ООБД проектирование, разработка и сопровождение прикладной системы становится процессом, в котором интегрируются структурный и поведенческий аспекты.
Необходимость работы с данными сложной структуры является отличительной чертой большинства современных приложений. Объектно-ориентированные языки программирования позволяют определять сложные типы данных. При этом основной задачей разработчиков становится описание методов взаимодействия объектов между собой и с пользователем, т.е. логика приложения – основная задача разработки. Такой подход к программированию становится возможным при использовании ООБД. Даже само понятие транзакции изменяет свой смысл и из физического подтверждения действий пользователя превращается в логическую операцию завершения некоторого блока связанных действий.
Еще одним существенным аспектом современных приложений является необходимость работы с большими объемами данных. При этом быстродействие остается одним из наиболее важных критериев выбора средств хранения данных. В этой ситуации использование ООБД обычно существенно увеличивает производительность всей системы. Последняя версия Versant Developer Suite – VDS 6.0 поддерживает терабайты данных, и десятки независимых БД в пределах одного сервера. В VDS 6.0 включена поддержка мультипроцессорных серверов и кластеризации.
Надежность работы системы не менее важный показатель, чем производительность. И по этому показателю объектные базы данных не уступают современным реляционным БД, а зачастую и превосходят их. Для обеспечения надежности в Versant предусмотрено несколько механизмов, которые гарантируют надежность хранения данных и исключают их потери.
Рисунок 1 Синхронная репликация
Как видно из рисунка 1 синхронная репликация гарантирует сохранение данных в обе БД которые являются идентичными. В случае обрыва соединения с основной БД клиентское приложение автоматически переключается на резервную БД.
Рисунок 2 Асинхронная репликация.
Асинхронная репликация (рисунок 2) позволяет проводить синхронизацию нескольких БД в фоновом режиме, при этом изменения в синхронизируемую базу попадают с задержкой, и могут производиться по расписанию.
Как и в любой современной БД в Versant предусмотрена возможность импорта/экспорта данных в формате XML. Данная технология позволяет легко интегрировать решения, использующие Versant с другими приложениями, уже используемыми в вашей компании.
Важной отличительной особенностью является Versant легкость администрирования. Большая часть административных функций перекладывается на само приложение. Индексы и их структура описываются в приложении и оптимизируются под конкретные задачи. По этой причине большинство задач администратора автоматически снимаются. Время необходимое на подготовку профессионального системного администратора Versant в десятки раз меньше, чем необходимо для специалистов по администрированию РСУБД.
Использование ООСУБД Versant позволяет существенно сократить время разработки программного продукта за счет использования технологии прозрачного сохранения. Как показали исследования проведенные компанией Versant, на разработку mapping кода тратится от 40% до 60% общего времени разработки системы, следовательно, технология прозрачного сохранения ускоряет разработку как минимум в два раза. А сокращение времени разработки делает систему дешевле.
Надеюсь, что сказанное выше позволило оценить основные преимущества использования ООСУБД Versant для сохранения объектов. Теперь более подробно остановимся на отраслях, в которых уже сегодня успешно применяют продукты Versant для сохранения данных.
Как видно из диаграммы 1 наибольшее применение продукты Versant нашли в системах управления данными для телекоммуникационной отрасли и в области управления финансами. Также активно используются продукты Versant в информационных системах для транспорта, медицины и торговли. При этом охвачен весь спектр систем, от систем реального времени, до встроенных систем.
Диаграмма 1. Сферы применения Versant.
Далее рассмотрим технологию работы VDS чуть более подробно.
Рисунок 3 Архитектура VDS 6.0
На рисунке 3 представлена архитектура Versant Developer Suit (VDS) версии 6.0 – промышленной объектно-ориентированной СУБД, занимающей ключевое место в линейке продуктов компании Versant.
В настоящее время VDS 6.0 имеет API-интерфейсы для таких языков программирования, как С, C++, Java. Любые действия и типы данных, которые поддерживаются интерфейсом могут быть отображены в базе данных Versant. Это означает, что для работы с данными используются стандартные операторы языка программирования. Интерфейсы языков программирования представляют собой набор специальных библиотек и определенных заранее типов данных.
C/Versant интерфейс – поддерживает все функции и утилиты по работе с базой данных. Кроме того, имеется возможность определять связи, наследование и т.д. Но существует ряд ограничений, определяемых возможностями языка C. Например, методы исполняются как функции, наследование ограничивается только виртуальным наследованием и т.п.
C++, Java/Versant интерфейс – поддерживают все возможности объектной модели. Программа имеет динамический доступ к схеме базы данных, включая информацию о классах, типов данных, связях и т.п.
Другой продукт Versant – Fastobjects – ООСУБД, пришедшая в линейку продуктов Versant в результате объединения с компанией Poet, поддерживает интерфейсы для работы с .NET.
Модуль управления объектами (Versant Manager) призван обеспечить управление следующими операциями:
- кэшированием объектов;
- исполнением запросов;
- исполнением длинных транзакций;
Все клиенты подсоединяются к Versant database server используя Versant Network Layer основанный на TCP/IP. Клиенты и сервер БД могут находиться на разных компьютерах, и все компьютеры могут использовать разные операционные системы, например: Sun Solaris на сервере БД, Windows 2000 на машине клиента.
Versant Сервер БД обрабатывает файлы которые принадлежат одной БД Versant. На платформе UNIX файлы могут так же находится на устройствах последовательного доступа.
Для всех задач администратора Versant имеет следующие инструменты: makedb – утилита создания шаблона БД, createdb – утилита создания БД на основе шаблона, stopdb – утилита остановки БД, startdb – утилита запуска БД, vcopydb vbackup, vdbmonitor, vdbadmin – визуальные средства для выполнения копирования БД, резервного копирования, мониторинга и администрирования БД. Столь скромного набора программных средств вполне достаточно, для управления высокопроизводительным сервером.
Пришло время подвести итог этой небольшой статьи. Выделим основные преимущества ООСУБД Versant (версии VDS 6.0):
- Простота разработки
- Прозрачный доступ через C++ и Java из вашей интегрированной среды разработки;
- Модель хранения данных совпадает с областью задач приложения;
- Поддержка сложных моделей данных;
- Инструменты с графическим интерфейсом: Administration Console, Object Inspector, Monitoring Console, Developer Console;
- Время выхода на рынок
- Не требуется ассоциирующего кода для обеспечения долговременного хранения сложных объектных моделей;
- Не требуется встроенного SQL для доступа к JDBC/ODBC;
- Экономия времени разработки более 40% – ускоряет проектирование систем и новых функциональных возможностей;
- Особое внимание уделено моделированию объектов предметной области – упрощает доступ к базам данных;
- Редактирование схемы «на ходу» без перерывов в работе;
- Производительность
- Поддержка нескольких сессий/многопоточность/кластеризация;
- Двойное кэширование;
- Прямой переход между сохраняемыми объектами;
- Расширенные возможности блокирования;
- Доступность
- Сервер отказоустойчивости (Fault Tolerant Server);
- Скоростное сопровождающее архивирование;
- Накопительное сопровождающее архивирование;
- Накопительное сопровождающее обновление схемы;
- Гибкость
- Контроль среды полностью производится через программный интерфейс при помощи C, C++ или Java, что позволяет полностью встроить продукт Versant в приложение;
- Поддержка динамических запросов благодаря языку запросов Versant (VQL);
- Выравнивание нагрузки за счет репликации;
- Контроль над распределенными транзакциями;
- Доступ к объектам через SQL, JDBC/ODBC.
Всю дополнительную информацию вы можете получить на сайте www.lenvendo.ru или www.versant.net.
Если у вас возникли вопросы – пишите на info@lenvendo.ru.