Научная статья на тему 'XML-СУБД как возможная основа для объектных технологий ИС. Технология multyf'

XML-СУБД как возможная основа для объектных технологий ИС. Технология multyf Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
104
32
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «XML-СУБД как возможная основа для объектных технологий ИС. Технология multyf»

переменная out: файл #p7 входной;;

пока не in-конецО in.ввод(xi);

#p9

out.вывод(xi); конец;

конец Обработать; функция Главная(параметры)

переменная К: целое; хн, хк: #p3;

#p6;

вызвать функцию Создать(имя файла 1, К, хн, хк);

#p8;

вызвать функцию Обработать(имя файла 1, имя файла 2); выход;

конец Главная;

</template>

</code>

</task>

Выводы

Таким образом, представляется вполне возможным реализовать в обучающей системе по программированию генерацию вариантов однотипных заданий на основе представления заданий в виде шаблонов. Это, как было сказано выше, решит проблему создания конкретного варианта задания для каждого студента и повысит устойчивость выработанных навыков написания программ по заданным темам.

Литература

1. Лаптев В.В. Требования к современной обучающей среде по программированию // Объектные

системы-2010 (Зимняя сессия): материалы II Международной научно-практической

конференции. Россия, Ростов-на-Дону, 10-12 ноября 2010 г. / Под общ. Ред. П.П. Олейника. -Ростов-на-Дону, 2010. - с. 104-110.

2. Sergey Sosnovsky, Olena Shcherbinina, Peter Brusilovsky, Web-based Parameterized Question as a Tool for Learning, in Allison Rossett (ed): Proceedings of E-Learn 2003, Phoenix, Arizona USA, November 7-11, 2003, p. 2151-2154.

3. Лаптев В.В., Морозов А.В., Бокова А.В. C++. Объектно-ориентированное программирование. Задачи и упражнения. - СПб.: Питер, 2007. - 288 с.: ил.

УДК 004.4, 005

XML-СУБД КАК ВОЗМОЖНАЯ ОСНОВА ДЛЯ ОБЪЕКТНЫХ ТЕХНОЛОГИЙ ИС.

ТЕХНОЛОГИЯ MULTYF

Ермаков Илья Евгеньевич, преподаватель, Технологический институт им. Н.Н. Поликарпова "Государственный университет - учебно-научно-производственный комплекс", технический директор, НПО "Тесла", Россия, Орёл, ermakov@,metasvstems.ru

1. Проблемы прирождённых (native) ООСУБД

Несмотря на успешные применения, которые находит каждая из известных ООСУБД, их массовое применение в АСУ и ИС так и не сложилось.

Представляется, что тому причиной слишком прямолинейное понимание и реализация объектности, непосредственный перенос в СУБД представлений, сложившихся в области языков программирования.

Во-первых, плотно сопряжены между собой хранимые данные и программная логика, что ведёт к ориентации на конкретный язык или семейство языков и, кроме того, нагружает

145

СУБД новыми нехарактерными им функциями - быть платформой выполнения для программных компонентов.

Во-вторых, такая прямолинейная реализация ООП влечёт за собой отсутствие единой статической модели хранимых данных и языка запросов к ним, которые работали бы независимо от объектной инкапсуляции и программной логики классов.

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

2. Объектная ориентированность: базовые качества и их поддержка

Возможный путь развития объектных технологий в области ИС связан с реализацией иного, более базисного содержания объектной ориентированности, чем это обычно практиковалось. Вообще говоря, смысл у ООП один - обеспечение безболезненного развития системы, за счёт того, что она может быть расширена новыми компонентами без переписывания существующих.

Можно назвать только два существенных свойства, которые требуются от объектной технологии:

• Непосредственная поддержка иерархической структуры данных и возможность обеспечения её соответствия структуре информационной модели ИС;

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

В области языков программирования принцип «ООП = модульность + расширяемые типы данных» был в чистом и ясном виде воплощён Н. Виртом в языках Oberon, а затем ИТ-индустрией - в языке Ada-95 [1].

В области СУБД примером успеха такого подхода являются системы MUMPS-семейства с их разрежёнными многомерными массивами (глобалями) и последующая надстройка в СУБД Cache как объектно-ориентированных, так и реляционных, и XML-интерфейсов к многомерному ядру. Cache является одним из немногих примеров массового успеха объектной технологии СУБД, и нам представляется, что этот успех связан именно со следованием идее, что базовое ядро, обеспечивающее расширяемые структуры данных, является основой для практичной объектной ориентированности.

3. Прирождённые XML-СУБД и их перспективы

Неожиданный тезис, который мы предлагаем вниманию читателей, заключается в том, что набирающие в последнее время популярность прирождённые XML-СУБД, на самом деле, могут являться реальной базой для объектно-ориентированной разработки информационных систем. Концептуальным подтверждением тому является, что два названных в предыдущем разделе существенных объектных свойства как раз являются характерными сильными сторонами XML-модели данных. Эмпирически же ободряющим аргументом являются аналогии с MUMPS-технологиями, которые мы не будем здесь перечислять, но они ощущаются на практике - кроме автора данной статьи, их отмечали некоторые разработчики, имеющие опыт использования обоих подходов.

У текстового формата XML есть существенные недостатки, однако полноценные XML-СУБД (примером которых является отечественная «Седна», разработка ИСП РАН[2]) используют XML, фактически, как формат ввода-вывода, а внутреннее хранение

146

осуществляется иерархическим бинарным образом, в соответствии с моделью XML-Infoset[3].

Разработка ИС на основе XML-СУБД предполагает привычную для реляционных СУБД схему с отдельным слоем программной логики, который взаимодействует с БД посредством языка запросов XQuery. XQuery, по сути, обладает всеми свойствами, привычными разработчикам на SQL (что неудивительно, если учесть наличие в комитете XQuery ведущих разработчиков SQL), но дополняет их новыми, являясь почти полноценным языком программирования, на котором можно разрабатывать хранимые на сервере БД модули.

Нам представляется, что для раскрытия потенциала XML-СУБД необходимо, во-первых, осознанно эксплуатировать их объектно-ориентированные свойства, во-вторых, разрабатывать на их основе мини-технологии для объектно-ориентированного проектирования и реализации информационных систем.

4. MULTYF как пример мини-технологии на базе XML-СУБД

На базе XML-СУБД «Седна» автором статьи разработано и используется несколько мини-технологий объектного характера. Одна из них - информационная технология MULTYF (multi-typed frames), которая предназначена для моделирования неоднородных данных о сложных объектах, их ортогональной классификации и выполнения запросов.

База данных MULTYF состоит из одноуровневого множества фреймов. Каждый фрейм может быть связан с типами, а также может хранить поля со значениями. Типы MULTYF могут образовывать иерархии «тип-подтипы». Фрейм, связанный с подтипом, связан также со всеми базовыми типами. Связь с типами устанавливается наличием внутри фрейма соответствующих типизирующих секций (в случае подтипов - вложенных). Поля данных могут находиться внутри типизирующих секций, если фрейм обладает ими в силу связи с некоторым типом.

<frame id="124">

<type name="T1">

field name="a" format="real">0.15</field>

<type name="Subtype-Of-T1">

field name="b" format="string"></field>

</type>

</type>

<type name="T2">...</type>

</frame>

Семантическое моделирование начинают выполнять следующим образом: разрабатываются две независимых иерархии типов - для сущностей предметной области и для сущностей информационной системы.

Например, для ИС сферы торговли автомобильными комплектующими в иерархии типов предметной области будут такие ветви типов, как: Модель_Авто.Лиё1.Л6, Модель_Авто.Лий1.Л8, Производитель_комплектующих.Нашапп_МоОро^ и т.д. Как видим, типизация предметной области доводится даже до уровня понятий единичного объёма (имён собственных). Соответственно, типизация сущностей ИС будет включать в себя такие ветви типов, как: ИС.Карточка_Модели, ИС.КарточкаПроизводителя.

Как правило, фрейм типизируется одним из типов сущностей ИС - и одним или многими типами предметной области, с которыми имеется связь:

frame id="...">

<type name="Модель Авто">

<type name="Audi"><type name="A6"/></type>

</type>

<type name="Тип Кузова">

<!-- перечисляем все возможные типы для данной модели -->

<type name="Седан"/>

<type name="Хэтчбэк"/>

</type>

147

<type паше="ИС">

<type паше="Карточка Модели">

<filed .... >

<field ... >

</type>

</type>

</frame>

<frame id="...">

<type пaшe="Артикул">

<type name="^1034"/>

</type>

<type пaшe="Товар">

<type name="Подвеска"><type пaшe="Амортизаторы">...</type> </type>

<type пaшe="Модель Авто">

<type name="Audi">

<type name="A6">

<!-- может быть и для нескольких моделей -->

</type>

</type>

<type пaшe="Производитель Комплектующих">

<type name="Hamann Motosport"/>

</type>

<type пaшe="ИС">

<type name="Карточка Артикула">

<field пaшe="описание">

<field пaшe="русский" format="text">

</type>

</type>

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

</frame>

Фреймы имеют идентификаторы, однако они используются только в технических целях (например, для удаления фрейма из базы). Все связи между фреймами устанавливаются ассоциативно через типизирующие секции. Например, фрейм артикула А1034 из примера ассоциирован с производителем Hamann_Motosport, производителям в ИС соответствуют фреймы типа ИС.Карточка_Производителя. Таким образом, карточка данного производителя выбирается по паре типов Протводитель_Комплектующих.Иашапп_МоОро^ и ИС.КарточкаПроизводителя.

Определён специальный XML-язык запросов MULTYF/QL, который позволяет записать образец для отбора фреймов по наличию типизирующих секций и условиям на значения полей. Также имеются специальные унифицированные компоненты интерфейса пользователя для навигации по ортогонально типизированным данным.

Заметим, что, по сути, технология MULTYF является независимой от языка XQuery и XML-СУБД, она всего лишь быстро реализуется на их основе. Модель данных MULTYF является более специализированной и более семантически нагруженной, чем модель XML-Infoset и может быть реализована непосредственно, с использованием XML всего лишь как формата входного-выходного представления данных.

Видимо, путь семантического нагружения и специализации (уменьшения многообразия) модели данных XML-Infoset представляет интерес для развития объектных технологий ИС.

Выводы

В статье выдвинут тезис о возможности примения XML-СУБД в качестве основы для объектно-ориентированной разработки ИС. Предложен путь создании мини-технологий над XML-СУБД и семантического нагружения и специализации модели данных XML-Infoset. Представлен конкретный пример мини-технологии над XML-СУБД - информационная технология типизированных фреймов MULTYF.

148

Литература

1. Ермаков, И. Е. Объектно-ориентированное программирование: прояснение принципов? / И.Е. Ермаков // Объектные системы - 2010: Материалы I Международной научно-практической конференции. Россия, Ростов-на-Дону, 10-12 мая 2010 г - Ростов-на-Дону, 2010. С. 130-135.

2. Сайт XML-СУБД «Седна» (ИСП РАН) [Электронный ресурс] Режим доступа: http://modis.ispras.ru/sedna/

2. XML Information Set (Second Edition). W3C Recommendation [Электронный ресурс] Режим доступа: http://www.w3.org/TR/xml-infoset/

149

i Надоели баннеры? Вы всегда можете отключить рекламу.