(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

ROM: Объектно-ориентированный интерфейс к СУБД RDM++ и Velocis фирмы Centura

Большаков С. А.

Объектно-ориентированное программирование повсеместно вошло в практику проектирования и реализации информационных бизнес приложений. Однако, несмотря на очевидные достоинства этой концепции проектирования, существуют значительные издержки и проблемы, связанные с этим подходом. Довольно часто руководители разработок программных информационных систем, и еще чаше программисты, задумываются над тем использовать уже готовую систему классов (например, VCL или MFC) или разрабатывать свою собственную технологическую базу для ведения собственных проектов бизнес систем. Это связано с рядом причин, а основные из них следующие:

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

Приятным исключением из правил является программный продукт фирмы Centura/Raima - ROM (Raima Object Manager), который представляет собой объектно-ориентированный интерфейс (систему классов) для встраиваемой СУБД RDM (см. статью) и для выделенного сервера БД Velocis (см. статью). Отличительной способностью ROM является наглядность и простота в использовании, но самое важное с нашей точки зрения - это высокая производительность, для достижения которой авторы программного продукта решили опираться на самый нижний уровень функций взаимодействия с данными. В частности, используется прямой метод доступа к данным на основе специального объекта - адреса в БД (DbAddr).

С помощью ROM ускоряется разработка информационных приложений, повышается их надежность. ROM инкапсулируют хранение и выборку объектов, обеспечивает навигацию по базам данных, упрощает работу с записями, их поиск и модификацию. В целом, ROM можно рассматривать как "посредника" между клиентской программой, ее программными модулями интерфейса, и базовым уровнем функций RDM и Velocis engin, которые в свою очередь непосредственно работают с данными. ROM поддерживает набор платформ, соответствующий RDM и Velocis, и включает в состав библиотеки, заголовочные файлы, примеры программ, утилиты и комплект документации. Ниже мы перечислим особенности ROM:

  • ROM - это не только система классов, но и новые свойства для RDM и Velocis
  • ROM - повышает живучесть объектов RDM, а следовательно БД
  • ROM - обеспечивает описание и работу с специальными сетевыми объектами
  • В ROM предусмотрена автоматическая настройка способов навигации (прямой, реляционный и сетевой), их переключение.
  • В ROM обеспечивается поддержка многозадачности
  • В ROM с помощью специальных объектов предусмотрена групповая защита данных
  • В ROM заложены полиморфные связи (несколько типов объектов).
  • Обеспечивается поддержка BLOB - графических объектов
  • Поддержка запросов, основанных на SQL языке (только для RDM)
  • Предусмотрены прямые связи записей (direct reference link)
  • Описываются реляционные связи (relational link)
  • Применяются контейнеры объектов (Clone)
  • Отрабатываются рекурсивные связи между объектами
  • Обеспечена возможность отношений N:M в сетевой модели данных
  • Предусматриваются универсальные механизмы обработки ошибок, обработчики ошибок.

Ниже на рисунке представлена схема взаимодействия клиентских приложений и ROM применительно к многопользовательскому режиму.

Приложения на С++ для RDM посредством ROM взаимодействуют базовым набором функций API (RDM engin). Работа пользователей синхронизируется с помощью LOCK MAMAGER, обращение к которому обеспечивается из ROM. Горизонтальная черта на рисунке обозначает уровень, где заканчивается работа приложения.

Аналогично, но несколько по-другому выглядит взаимодействие приложений на ROM для Velocis СУБД. Схема взаимодействия показана на втором рисунке, расположенном ниже. Приложение на ROM взаимодействуют с клиентским модулем интерфейса. Это обычная библиотека (DLL), которая входит в состав клиентской части продукта Velocis СУБД. Сетевые и серверные модели клиента обеспечивают интерфейс на сети. Специальный модуль - ROM Server Extention поддерживает обслуживание запросов к данным, преобразует их в форму, доступную Velocis СУБД engin, который в свою очередь обеспечивает доступ к данным. В последнее время появились сведения, что Centura/Raima не собирается поддерживать интерфейс в виде модуля ROM Server Extention (для Velocis v3.0). При этом интерфейс для клиентской части должен быть сохранен. Пока не получены точные сведения - не буду утверждать ни то, ни другое. По крайней мере, в бета-документации на Velocis v3.0 никакого упоминания о ROM нет. Что касается RDM, то здесь позиции фирмы по продуктам Centura/Raima пока не изменились.

Все классы, представленные в ROM, можно разделить на две группы: классы приложения и классы для управления ROM. В классах приложения и объектах, создаваемых на их основе, описываются структуры записей, баз данных (ROM обеспечивает множественный доступ к БД) и задач пользователя. Эти классы автоматически генерируются (их каркас) при создании БД. В дальнейшем описания этих классов может быть изменено. В классах управления описываются элементы доступа к данным (ключи, наборы, транзакции и т.д.), которые используются для навигации по БД и манипулированию записями. Структура классов ROM приведена на третьем рисунке, расположенном ниже. К классам первой группы, а на рисунке они показаны справа, относятся базовые классы: AppObj - для записей; AppDb - для БД и AppTask - для задач.

Классы управления расположены на рисунке слева и включают следующие основные: KeyObj- для ключей; SetObj- для наборов; StoreObjArray - для массивов объектов; Qtas

и OmQuery - для запросов; GroupLock - для блокировок; TransAction - для транзакций; OmBlob - для работы с графическими объектами; Polymorph- для определения полиморфизма объектов.

После генерирования стандартных классов, которые определены в приложении и описании БД объекты для работы с записями описываются, к примеру, так:
AuthorObj author; - объект класса AuthorObj.
InfoObj info; - объект класса InfoObj.
InfoObj info(KeyObj(INFO_IDCODE)); - объект с ключом типа INFO_IDCODE.

Имена объектов одновременно являются структурами соответствующих записей и ключей. Для доступа к данным и навигации по ним используются различные виды перегруженных операций. Примеры с комментариями приведены ниже:

author[FIRST]; - получение первой записи типа AUTHOR.
author++; получение следующий записи типа AUTHOR.
info.Find(infoKey); - поиск записи по ключу в поле
infoKey. author >> info; - поиск записи члена набора (info) по записи владельца (author).
author.NewObj().Okay(); - новая запись типа AUTHOR.
author.Delete() - удаления записи автора из БД info.
DisConnect(author) - отключения записи из набора.

Из примера видно, что данная нотация проста для прочтения и легко запоминается. Используя ROM совместно с RDM и Velocis, вы получаете профессиональный инструмент разработки информационных бизнес приложений самого высокого качества. Разрабатывая свои программы на современных системах С++ (VS, BCPPB), вы сможете сделать свои системы эффективными и удовлетворить требования самого придирчивого заказчика.



 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 10.07.2000 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
SmartBear QAComplete Concurrent User Subscription License - On Premise (1 Year Subscription)
Business Studio 4.2 Enterprise. Конкурентная лицензия + Business Studio Portal 4.2. Пользовательская именная лицензия.
Quest Software. TOAD for SQL Server Xpert Edition
CAD Import .NET Professional пользовательская
Delphi Professional Named User
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Программирование на Visual Basic/Visual Studio и ASP/ASP.NET
Все о PHP и даже больше
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100