ПРОЕКТИРОВАНИЕ И РАЗРАБОТКА ИНФОРМАЦИОННЫХ СИСТЕМ

         

Предложения OMG и ODMG


В этом и следующем разделах, кроме документов OMG и ODMG, использованы материалы статей Л.А.Калиниченко, опубликованных в журнале "СУБД" (N 4 за 1995 г. и NN 1 и 2 за 1996 г.).

OMG (Object Management Group) - это международный консорциум, включающий более 500 компаний, связанных с производством компьютерной аппаратуры и программного обеспечения (в частности, членами OMG являются компании IBM, Digital Equipment, Hewlett Packard, Intel, Microsoft, Borland International, Oracle, Informix Software, Sybase и т.д.). Основной задачей OMG является разработка архитектуры и методов реализации программного обеспечения, которое в объектно-ориентированном стиле позволило бы выполнить интеграцию существующих и заново разрабатываемых (не обязательно объектно-ориентированных) информационно-вычислительных ресурсов. OMG регулярно выпускает спецификационные документы, которые становятся фактическими промышленными стандартами. Основными составляющими подхода OMG являются базовая объектная модель (Core Object Model), эталонная модель архитектуры (OMA - Object Management Architecture) и более приближенная к реализации общая архитектура брокера объектных заявок (CORBA - Common Object Request Broker Architecture).

Собственно, идея CORBA довольно проста. Она заключается в следующем. Во-первых, в каждый объект, который должен быть включен в интегрированную объектную систему добавляется специальный программный код, обеспечивающий принципиальную возможность взаимодействия объектов. Этот код генерируется автоматически за счет использования определенного OMG языка определения объектных интерфейсов IDL (Interface Definition Language). В исходный текст программы включаются спецификации интерфейса на языке IDL. Затем этот текст должен быть обработан специальным прекомпилятором, который и генерирует дополнительный программный код. Заметим, что на сегодняшний день в документах OMG определены правила встраивания конструкций IDL в далеко не все языки программирования, но, по крайней мере, определены правила встраивания для таких популярных языков как Си и Си++.


Во-вторых, для реального взаимодействия должным образом настроенных объектов предполагается наличие специального программного обеспечения, называемого в документах OMG брокером объектных заявок (ORB - Object Request Broker). Брокер объектных заявок должен существовать и на стороне вызывающего объекта, и на стороне вызываемого объекта. Основная задача ORB состоит в том, чтобы доставить заявку на вызов метода вызываемого объекта и возвратить результаты выполнения метода вызываемому объекту.

ODMD (Object Database Management Group) - это консорциум, близкий к OMG не только по названию, но и по сути, хотя и преследующий другие цели. В состав ODMG входят компании, производящие объектно-ориентированные СУБД (в частности, Object Design, Objectivity, Ontos, O2 Technology и т.д.). Главной задачей ODMG является попытка выработки стандарта объектно-ориентированных баз данных. В конце 1993 г. ODMG выпустила документ ODMG-93, являющийся первой версией такого стандарта.

В документе ODMG-93 объектно-ориентированная СУБД (ООСУБД) определяется как СУБД, интегрирующая свойства баз данных и объектно-ориентированных языков программирования. ООСУБД должна обеспечивать представление объектов базы данных как объектов одного или нескольких языков программирования. С другой стороны, ООСУБД должна расширять язык программирования средствами поддержки долговременно хранимых объектов, параллельного доступа к объектам, восстановления данных после различных сбоев, формулировки запросов к базе данных и т.д.

Объектная модель ODMG-93 основана на базовой объектной модели OMG с рядом расширений, специфичных для объектно-ориентированных баз данных. В частности, в объектной модели ODMG-93 присутствует понятие экстента (extent) объектного типа как множества объектов этого типа (понятно, что без введения такого понятия трудно говорить об объектно-ориентированных базах данных).

Вторым важным компонентом архитектуры ODMG-93 является язык определения объектов ODL (Object Definition Language), который является расширением языка IDL.


Следующий компонент архитектуры - язык объектных запросов OQL (Object Query Language). Этот язык синтаксически близок к языку SQL-92, но, естественно, обладает более мощной семантикой. (Интересно, что при этом ODMG находится в весьма сложных отношениях с комитетом, разрабатывающим язык SQL-3, который по замыслу является не объектно-ориентированным, а объектно-реляционным.) Наконец, в документе ODMG-93 определены правила связывания языка OQL с языком Си++ (в качестве первого выбран именно этот язык, поскольку он наиболее распространен в существующих объектно-ориентированных СУБД). Определены общие правила связывания с языком Smalltalk. В дальнейшем предполагается ввести правила связывания и для других языков программирования.

Мы коротко упомянули о работах ODMG только потому, что они близки к направлению OMG. Более того, в ODMG-93 предполагается, что объекты стандартных объектно-ориентированных баз данных должны быть в состоянии взаимодействовать через ORB. Тем не менее, более подробно деятельность ODMG мы рассматривать не будем.


Содержание раздела