(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
Allround Automation Direct Oracle Access Standard license
Microsoft Windows Professional 10, Электронный ключ
WinRAR 5.x 1 лицензия
SAP® Crystal Reports 2016 WIN INTL NUL
Купить Антивирус Dr.Web Server Security Suite для сервера
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Программирование в AutoCAD
СУБД Oracle "с нуля"
Компьютерные книги. Рецензии и отзывы
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100