Научно-производственный центр Интелтек Плюс

ПОДХОД К ИНТЕГРАЦИИ РАЗНОРОДНЫХ СУБД

А.М.Андреев, к.т.н., доц. МГТУ им. Н.Э.Баумана,

Д.В.Березкин, к.т.н., директор НПЦ "ИНТЕЛТЕК ПЛЮС ",

Ю.А.Кантонистов, ведущий разработчик НПЦ "ИНТЕЛТЕК ПЛЮС",

С.А.Мальцев, студент-дипломник МГТУ им. Н.Э.Баумана,

контактный тел. (095) - 177 -35 -11

В настоящее время часто возникает задача построения информационных систем, обладающих характеристиками и возможностями, пока не реализованными в рамках одной системы управления базами данных (СУБД). Например, необходимо разработать информационно–поисковую систему (ИПС), сочетающую возможности полнотекстового русскоязычного поиска по документам с учетом морфологии языка и удобную мультимедийную среду разработки клиентских приложений (CASE - средства), а также – средства стыковки с Internet/Intranet, масштабируемость, возможности хранения и обработки мультимедийных объектов в базе данных. Проведенный анализ показал, что реализация таких требований в рамках одной СУБД порождает либо очень дорогостоящее решение, либо вообще трудно технически реализовать. Наиболее рациональным подходом в таком случае может оказаться построение системы из нескольких серверов различных СУБД. Примерная структура такой системы изображена на Рис.1.

Image85.gif

Рис.1. Структурная схема интеграции двух СУБД

Два сервера разных СУБД могут работать под управлениеием различных операционными системами (например, UNIX и Windows NT). Каждая СУБД хранит специализированные данные. Например, СУБД1 может хранить документы и обеспечивать развитые возможности их поиска. СУБД2, в свою очередь, может хранить мультимедийные объекты (аудио, видео, изображения) и иметь визуальную среду быстрой разработки приложений, развитые средства обеспечения безопасности и масштабируемости. Клиенты СУБД1 могут пользоваться сервисом, предоставляемым сервером СУБД1 для поиска, занесения и извлечения документов. Клиенты же СУБД2 могут пользоваться сервисами сервера СУБД2 и сервера СУБД1. При подключении к серверу СУБД2 клиенты работают с мультимедийным, "красивым" приложением, созданным с помощью CASE – средств СУБД2. Клиенты СУБД2 могут из мультимедийного приложения отправлять запросы на поиск и извлечение документов. Сервер СУБД2 преобразует этот запрос к виду, "понятному" серверу СУБД1. Сервер СУБД1, в свою очередь, примет запрос, обработает его и отправит результат обратно серверу СУБД2, после чего результат будет передан клиенту СУБД2.

Такая многосерверная система требует разработки механизма быстрой межсерверной передачи данных. Так как данные в различных СУБД могут храниться в разных форматах (например, если СУБД1 – объектная, а СУБД2 - реляционная), реализация передачи данных с помощью стандартных высокоуровневых протоколов обмена данными между СУБД может оказаться затруднительной или нерациональной. Более того, в списке протоколов, поддерживаемых стыкуемыми СУБД, могут просто не найтись одинаковые для обеих систем. В таких случаях выход может быть найден в разработке механизма обмена на основе семейств протоколов TCP/IP, UDP, RPC и т.п. Реализация этого механизма возлагается на разрабатываемые приложения (См. Приложение 1 и Приложение 2, показанные на Рис.1), работающие в составе СУБД1 и СУБД2 соответственно. Эти приложения учитывают конкретные особенности стыкуемых систем и позволяют производить необходимое преобразование форматов данных этих СУБД.

Пример практической реализации

Рассмотренная выше идеология интеграции возможностей СУБД легла в основу разработанного компанией НПЦ "ИНТЕЛТЕК ПЛЮС" прототипа современной информационно–поисковой системы, предназначенной для работы в распределенных гетерогенных вычислительных средах.

Система впервые была продемонстрирована на выставке Комтек’98 на стенде компании "Computer Associates". При этом характерно, что "Computer Associates" на этой выставке широко рекламировала свою объектную СУБД Jasmine.

Выбор структуры ИПС осуществлялся из следующих соображений:

  • Для реализации проектируемой системы необходимо использовать СУБД, обеспечивающую хранение текстовых и мультимедийных документов. Эта СУБД должна обладать развитыми средствами полнотекстового поиска документов по естественно - языковым запросам на русском языке c учетом морфологии;
  • Также СУБД должна иметь развитые средства стыковки с Internet/Intranet для реализации доступа к документам из таких сетей с соблюдением требований к надежному администрированию прав доступа и безопасности информации. Дополнительным требованием к такой СУБД является возможность хранить мультимедийные объекты и иметь собственную визуальную среду для быстрой разработки приложений, имеющих доступ к данным СУБД.

В настоящее время реализации всех вышеуказанных требований в рамках одной СУБД нет. Недорогой СУБД, обеспечивающей русскоязычный полнотекстовый поиск, является разработка НПЦ "ИНТЕЛТЕК ПЛЮС" "ODB-Jupiter" [1,3,6]. Данная СУБД является полностью объектной и предназначена для хранения и полнотекстового поиска текстовых документов, имеющих внедренные или связанные OLE - объекты. Но у этой СУБД пока отсутствуют CASE - средства для разработки приложений.

СУБД, умеющей хранить мультимедийные объекты, имеющей собственную визуальную среду разработки и развитые средства сопряжения с Internet / Intranet является разработка фирмы Computer Associates "Jasmine" [7]. Эта объектная СУБД разработана для корпоративных мультимедийных приложений и обеспечивает высокий уровень надежности и производительности.

Из - за вышеописанных преимуществ для построения проектируемой системы были выбраны две СУБД: "ODB-Jupiter" и "Jasmine". На "ODB-Jupiter" возлагаются функции хранения документов и обеспечения их русскоязычного полнотекстового поиска по естественноязыковым запросам. "Jasmine" обеспечивает стыковку СУБД "ODB-Jupiter" c Internet / Intranet, эргономичный удобный мультимедийный интерфейс для работы с базой данных, разработанный в визуальной среде, поставляемой с СУБД "Jasmine".

Далее рассмотрим некоторые особенности этих СУБД, которые важно учитывать для их стыковки. Подробную информацию можно найти в приведенной в конце статьи литературе и на WEB-сайтах соответствующих компаний (Computer Associates - http://www.cai.com и НПЦ "ИНТЕЛТЕК ПЛЮС" - http://www.inteltec/ru).

Объектная СУБД "Jasmine"

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

Безусловно, здесь применяются ключевые понятия объектно–ориентированного подхода – "объект" и "класс".

Объекты в "Jasmine" имеют свойства и методы. "Класс" в "Jasmine" - это абстрактное определение чего-либо. Данные в "Jasmine", с точки зрения разработчика ПО, хранятся в виде объектов соответствующих классов.

Объекты могут иметь свойства разных типов:

• Свойства уровня реализации;

• Свойства уровня класса;

• Многозначные свойства;

• Свойства атрибутов;

• Свойства взаимосвязей.

Свойства уровня реализации применяются к отдельным, индивидуальным объектам. Пример таких свойств - имя работника (Name) и добавочный номер (Extension) являются свойствами уровня реализации, поскольку они применимы только к индивидуальным объектам.

Свойства уровня класса применяются ко всему классу объектов. Свойства уровня класса могут использоваться в случаях, когда все реализации класса совместно используют определенное значение. Аналогия в языке С++ - свойства классов с префиксом "static".

Свойства уровня реализации и уровня класса могут быть многозначными. Можно хранить наименования всех отделов компании как многозначное свойство уровня класса. Далее, свойства разделяются по атрибутам и взаимосвязям. Атрибут — это свойство, значение которого постоянно, например число, строка или дата. Аналог в С++ - фиксированный тип (int, float и т.п.). Взаимосвязь — это свойство, значением которого является другой объект. Аналог в С++ - ссылка или указатель.

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

Также в "Jasmine" можно создавать взаимосвязи типа "многие-со-многими" между объектами, используя свойства взаимосвязей и многозначные свойства.

Теперь о том, как в "Jasmine" понимается термин "метод".

Методы содержат код, который воздействует на данные. Код метода хранится вместе с данными в базе данных. Методы могут быть написаны на ODQL — похожим на SQL объектно-ориентированном языке программирования — или на С и C++. Причем в тексте методов можно чередовать строки ODQL и С++.

Тот факт, что база данных хранит методы, важен для мультимедийных данных. Видеоклип, который содержит двоичные данные, бесполезен сам по себе. Однако, объект видеоклипа в "Jasmine" содержит также метод, который интерпретирует данные и показывает этот видеоклип. Если бы видеоклип хранился в реляционной базе данных, внешнее приложение должно было бы обеспечить код, распознающий двоичные данные. В результате было бы значительно труднее отладить приложение и обеспечить надежность его работы.

В "Jasmine" существуют:

• Методы уровня реализации;

Методы уровня класса;

• Методы уровня коллекции.

Методы уровня реализации применяются к конкретному объекту. Методы уровня класса применяются к целому классу. Например, можно определить метод для создания нового объекта.

Этот метод обязательно должен быть методом уровня класса. Коллекция — это ассортимент объектов одного типа, например, коллекция чисел (другими словами, множество). Как методы уровня реализации, так и методы уровня класса, могут определяться, таким образом, что они применяются к коллекции. В таком случае они называются методами уровня коллекции.

Например, можно определить метод изменения стоимости коллекции товаров.

Архитектура "Jasmine"

"Jasmine" использует клиент - серверную архитектуру. Используется так называемый "тонкий" клиент. Сложные методы, выполняются на сервере, для достижения наибольшей производительности обработки.

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

Клиент "Jasmine" — это среда выполнения приложения: она управляет отображением форм, анимации и мультимедиа, управляет выборкой мультимедийных ресурсов из базы данных и взаимодействует с сервером для выполнения методов.

Клиентское приложение выполняется либо как отдельное приложение, либо как plug-in для Web – браузеров.

Можно перечислить следующие компоненты "Jasmine":

• Сервер Jasmine (Jasmine Database Server) — сервер, хранящий мультимедийные данные приложений и осуществляющий управление базой данных. Также сервер выполняет методы базы данных;

Клиент Jasmine (Jasmine Client) — среда, в которой выполняется приложение Jasmine, пока существует соединение с сервером Jasmine;

• Библиотеки классов Jasmine (Jasmine Class Libraries) — группы семейств классов, которые поставляются вместе с Jasmine; обеспечивают поддержку мультимедийных данных;

• Jasmine Studio — визуальный инструмент разработчика, предназначенный для создания приложений под Jasmine;

• Jasmine Plug-In — plug-in (включаемый модуль) для программы просмотра Web, позволяющее пользователю запускать приложение Jasmine и получать доступ к базе данных Jasmine посредством WWW – браузера через Intranet / Internet.

Также, для разработчика существуют следующие возможности:

• Доступ к реляционным данным (Relational Data Access) — обеспечивает набор классов Jasmine, позволяющий приложению Jasmine получать доступ и манипулировать данными в традиционных системах баз данных;

• Jasmine API — набор функций, управляющих СУБД Jasmine с помощью языков программирования С, C++ и других;

• Java Bindings — интерфейс между Jasmine и Java;

• Jasmine ActiveX — средство для обеспечения доступа к СУБД посредством любой среды разработки, поддерживающей ActiveX;

• WebLink — технология генерации HTML-страниц, заполненных данными из базы данных и обеспечивающая доступ к объектам и приложениям Jasmine со стандартных HTML-страниц без использования Plug-in’ов.

Также Jasmine обеспечивает работу с библиотеками классов. Эти библиотеки поддерживают набор мультимедийных типов данных, таких как изображения, видео, звук и некоторые другие. Семейство мультимедийных классов предоставляет значительную гибкость в хранении различных типов мультимедийных данных. Загрузка мультимедийных данных в оболочке Jasmine Studio осуществляется перетаскиванием файла c данными с рабочего стола.

Некоторые средства разработки приложений для Jasmine

Одним из основных инструментов разработчика является визуальная среда JADE (Jasmine Developer Environment, другое название – "Jasmine Studio"). Она поддерживает технологию "drag and drop", имеет удобный интерфейс и позволяет достаточно быстро разрабатывать приложения, насыщенные мультимедийной информацией.

Приложения, разработанные в Jasmine Studio, представляют собой набор сцен (форм) и управляющих элементов на них. Логика работы приложения задается описанием реакции управляющих элементов на какие – либо события или сообщения.

Также в арсенале разработчика имеется С интерфейс (С API). Jasmine С API позволяет разрабатывать приложения, выполняющиеся на сервере и имеющие доступ к базе данных Jasmine. Доступ к С API можно получить, используя языки программирования С и С++, причем компилятор должен поддерживать внешние динамически подгружаемые библиотеки (DLL). При программировании с использованием С API можно использовать комбинацию ODQL (Object Database Query Language) и основного языка (С, C++). ODQL используется для работы с базой данных, а С или С++ — для разработки пользовательского интерфейса, а также сложных или специфических вычислений. Кроме того Jasmine поддерживает интерфейсы для использования разработчиками технологий Java и ActiveX.

Jasmine в Internet / Intranet

Jasmine поддерживает технологию однократного написания кода для приложения. Это означает, что разработав приложение в среде Jasmine Studio, можно легко сделать доступным работу с ним клиентов Internet / Intranet.

Существует два способа работы приложений Jasmine с Internet / Intranet. Первый из них – использование подключаемых модулей (Plug - In), установленных на клиентских браузерах. Эти модули позволяют работать с приложениями, созданными в визуальной среде Jasmine Studio. Опубликование в Internet созданного приложения осуществляется буквально нажатием нескольких клавиш на клавиатуре.

Краткое описание СУБД "ODB-Jupiter"

Так как СУБД ODB-Jupiter объектная база, следовательно она оперирует объектами. Особенностью реализации СУБД является тот факт, что непосредственно в базе данные хранятся в виде объектов [3]. Они запоминаются в файлах-базах как блоки двоичной информации. Для представления данных в объектном виде существует отдельный уровень представления данных – объектный уровень. Это расширяемый набор динамических библиотек, в которых содержатся реализации основных типов данных. Среди основных типов строка, целое и вещественное число, текст, дата, время, хранилище объектов OLE. Расширение мощности типов данных возможно путем регистрации динамических библиотек, поддерживающих новые форматы данных.

Архитектура комплекса "ODB-Jupiter" изображена на Рис.2.

Image86.gif

Рис 2. Архитектура комплекса "ОDB-Jupiter"

Управление файлами базы данных в "ODB-Jupiter"

Непосредственно база данных представляет собой хранилище структурированных записей переменной длины и библиотеку, реализующую набор операций над записями: добавление/чтение/замещение/удаление [6]. На этом уровне решается проблема эффективного управления дисковыми файлами, обеспечения отказоустойчивого механизма модификации файлов БД, оптимального кэширования записей.

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

Image87.gif

Рис. 3. Хранение объектов в базе данных.

Дескрипторный уровень

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

Здесь в БД уже просматривается структура в виде списка типов объектов и их расположения. Отметим, что расположение записи однозначно определяется идентификатором.

Тип 1

Тип 2

 

Тип K

Image88.gif

Image89.gif

 

Image90.gif

Image91.gif

Image92.gif

 

Image91.gif

       

Image93.gif

Image94.gif

 

Image93.gif

Общее количество объектов в базе вычисляется очень просто:

Image95.gif. (1)

Можно ввести понятие "дескрипторной структуры" объектной СУБД ODB-Jupiter, которая задается таблицей размерностью M x K, где

Image96.gif, (2)

а K - количество типов в текущий момент в базе данных. Элементы таблицы - уникальные идентификаторы соответствующих объектов в БД.

Приложение СУБД "ODB-Jupiter" - полнотекстовая документальная информационная система "ODB-Text"

На основе СУБД "ODB-Jupiter" компанией НПЦ "ИНТЕЛТЕК ПЛЮС" разработано и доведено до уровня коммерческого продукта приложение - полнотекстовая документальная информационная система "ODB-Text", которая является мощным инструментарием для создания информационно-поисковых систем. В связи с тем, что конечный пользователь работает непосредственно с этим приложением, а нижний уровень, реализуемый СУБД "ODB-Jupiter", от него скрыт, то остановимся более подробно на некоторых особенностях этого продукта, которые во многом влияют и на характеристики проектируемой распределенной системы.

Сиcтема "ODB-Text" построена по клиент – серверной архитектуре. Она хранит в базе данных документы. Документ в системе - это не файл, а именно документ в базе данных, снабженный регистрационной карточкой. Сразу после установки и ознакомления с основными возможностями системы пользователь формирует виды документации, с которыми будет работать. Для конкретного типа документа он создает регистрационную форму, в которой указывается, какая информация будет сопутствовать каждому экземпляру документа. Форма представляет собой набор полей различных типов. Например, для договора наверняка будут указаны название организации-контрагента, дата подписания, общая сумма, количество и сроки выполнения этапов и т.п. Подчеркнем, что каждый пользователь может сформировать наиболее подходящий для себя и для своей фирмы вариант. В дальнейшем в регистрационной форме можно легко переименовать, добавить, удалить поля. После перемен система будет отображать новые поля, сохраняя содержимое старых, в том числе переименованных.

Новые документы вводятся во встроенном редакторе документов. Если какие-то документы есть в виде дискового файла, то их можно просто загрузить в базу данных. Одна из особенностей "ODB-Text" - поддержка протокола OLE2. Напомним, что механизм Object Linking and Embedding (Вставка и Связывание Объектов) обеспечивает интеграцию объектов OLE-сервера в документы других программ. Программа-клиент "ODB-Jupiter" позволяет сохранять в базе данных документы, в которые вставлены объекты OLE. Документы MS Word, таблицы MS Excel, презентации Power Point, иллюстрации, подготовленные в программах CorelDRAW!, Adobe Photoshop, чертежи AutoCAD for Windows - вот далеко не полный перечень объектов, которые может хранить база данных "ODB-Text". Многие OLE - документы могут быть автоматически проиндексированы, что делает возможным поиск по ним.

Документы заносятся в базу документов офиса с тем, чтобы их впоследствии можно было быстро найти, просмотреть и изменить. Так, например, целесообразно вынести существенную информацию из текста в регистрационную форму. Обработанные таким образом документы гораздо быстрее воспринимаются. Редактор, уже упоминавшийся выше, представляет собой инструмент формирования дополнительной информации о документе - смысловых понятий, оглавления, гипертекстовых ссылок на другие документы или на строки в тексте этого же документа. После разметки информация отображается непосредственно в тексте и для удобства пользователя может быть выведена в отдельных списках. Таким образом, изначальный "бумажный" документ превращается в своего электронного двойника, с которым гораздо удобнее и проще работать. Время, потраченное на обработку текста, расстановку ссылок, оглавления, выделение понятий с лихвой окупится впоследствии удобством работы с документом. Как и любая ИПС, "ODB-Text" предлагает каталог-рубрикатор, куда можно записать названия всех документов в системе, сгруппировав их по специфическим признакам и разнеся по рубрикам.

В системе используются новейшие достижения в технологии поиска. Поиск ведется как по полям регистрационной карточки, так и по тексту документа. Изюминка "ODB-Text" - полнотекстовый поиск и возможность вводить запросы на естественном языке. Пользователю нет нужды вручную конструировать поисковые запросы - достаточно ввести фразу на обычном разговорном языке. Далее система сама интерпретирует запрос, учитывая особенности русского языка и расстояния между словами. Полнотекстовый поиск выполняется с учетом расстояния между словами и с морфологическим разбором. Например, по запросу "авторское право" будут найдены документы, в тексте которых встречается как сочетание слов "авторское право", так и слова "авторские права", "авторскому праву", "авторскими правами" и т.д. Наряду с естественно-языковым, в "ODB-Text" поддерживается более традиционный механизм контекстного поиска с возможностью комбинировать логические сочетания слов в запросе - "И", "ИЛИ", маскированием окончаний слов.

С самого начала разработки "ODB-Text" создавался как средство коллективной работы с документами. Когда клиент обращается за документом, ему передается копия документа из информационного хранилища. Запросы от различных клиентов буферизуются, поэтому проблем с необходимостью блокировки записей в базе данных не возникает. Пользователи имеют возможность одновременно работать с одним и тем же документом, причем клиент, который просматривает документ, редактируемый другим человеком, получает все изменения по мере их совершения. Конечно же, отслеживаются попытки удаления документа, который находится в работе. Наконец, когда последний пользователь завершает редактирование, документ сохраняется в базе данных, изменения индексируются и становятся доступными для каждого клиента.

Система спроектирована и реализована с применением технологии объектного программирования. Поскольку программный комплекс "ODB-Text" версии 2.0 реализован для сетей на платформе Windows и Windows 95, на его основе можно строить масштабируемые решения. Например, возможны варианты с несколькими серверами в сети, размещение сервера на любом компьютере. Система успешно функционирует в Windows-сетях. Удаленный доступ реализуется средствами Microsoft Windows 95.

Таким образом, учитывая, что корпорация Microsoft уделяет большое внимание развитию технологий OLE и удаленного доступа в семействе операционных систем Windows, возможности программного комплекса "ODB-Text" будут расти по мере появления новых версий "Окон".

Выбор компонентов системы "ODB-Jupiter" + "Jasmine"

Для реализации информационно - поисковой системы c мультимедийным интерфейсом Internet / Intranet пользователя необходимо построить "мостик" между СУБД "Jasmine" и СУБД "ODB - Jupiter" для передачи поисковых запросов удаленного клиента для обработки серверу СУБД "ODB - Jupiter" и передачи найденных документов из "ODB - Jupiter" в приложение для "Jasmine" и последующей их передачи удаленному клиенту (см. Рис. 4).

Image97.gif

Рис.4 Архитектура системы "ODB-Jupiter" + "Jasmine"

В программном комплексе "ODB-Jupiter" версии 2.0 используется стандартный для Windows высокоуровневый сетевой протокол обмена данными DDE (Dynamic Data Exchange - динамический обмен данными).

Приложение, написанное в визуальной среде Jasmine Studio, должно обмениваться данными с сервером ODB-Jupiter. Реализация обмена напрямую (при реализации сервера ODB - Jupiter в виде библиотеки dll) затруднена вследствие необходимости проведения значительных модификаций сервера ODB - Jupiter. Поэтому было принято решение передавать запрос из приложения для Jasmine клиентской части СУБД "ODB-Jupiter", а оно, в свою очередь, используя механизм DDE, обменивается данными с сервером ODB - Jupiter, который обрабатывает их и отсылает клиенту ответы. Клиент же передает ответы приложению для Jasmine.

Использование клиентской части ODB - Jupiter в виде динамической библиотеки (DLL) и обращения к ее функциям из приложения для Jasmine с использованием C API также невозможно вследствие блокирования СУБД Jasmine работы механизма DDE.

Выходом является разработка .dll библиотеки (odbsock.dll) для приложения на Jasmine, содержащей функции обмена по протоколу ТСР/IP, и исполнимого .exe файла (sockdde.exe), обменивающейся с вышеуказанной библиотекой по протоколу TCP / IP и использующего клиентскую часть "ODB–Jupiter" в виде dll для обмена с сервером "ODB–Jupiter" (Рис.5).

Image98.gif

Рис.5. Схема взаимодействия модулей системы "ODB-Jupiter" + "Jasmine"

Такое решение позволяет за счет некоторого уменьшения производительности избежать значительных низкоуровневых переделок в клиентской и серверной частях СУБД "ODB–Jupiter".

С точки зрения аппаратных требований, для обеспечения высокой производительности желательно обеспечить высокоскоростной канал Fast Ethernet (или, что лучше, Gigabit Ethernet) между компьютером с сервером Jasmine и компьютером с сервером ODB - Jupiter.

Для связи клиентских компьютеров (при малом их числе) c сервером Jasmine можно использовать обычный канал Ethernet с пропускной способностью 10 мегабит в секунду. При большом числе клиентов желательно также обеспечить высокоскоростной канал Fast Ethernet.

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

Описание модуля SOCKDDE.EXE

Модуль SOCKDDE.EXE принимает по протоколу TCP/IP запросы от модуля ODBSOCK.DLL и вызывает соответствующую свою процедуру. После обработки данные передаются обратно в модуль ODBSOCK.DLL по протоколу TCP/IP. Процедуры модуля вызывают соответствующие наборы функций из библиотеки CLIENT.DLL, которая является клиентской частью системы ODB - Jupiter. CLIENT.DLL связывается по протоколу NetDde с сервером ODB-Jupiter, данные обрабатываются на нем, ответ возвращается обратно.

Модуль SOCKDDE.EXE использует Windows Sockets процедуры для работы с ориентированным на соединение протоколом TCP/IP. Для простоты приложение разработано на синхронных (блокирующих) сокетах. Использовался компилятор Borland C++ 4.53. Модуль SOCKDDE.EXE является сервером для протокола TCP/IP. После запуска модуля он регистрирует себя, как сервер, и "слушает" входные запросы. После прихода запроса диспетчер вызывает соответствующую процедуру, она обрабатывается, результат отсылается по TCP/IP обратно вызвавшему модулю. Сервер снова переходит на прослушивание входных запросов.

Описание модуля ODBSOCK.DLL

Процедуры модуля вызываются приложением cреды Jasmine Studio посредством С API. Эти процедуры обращаются, в свою очередь, к функции, которая соединяется по протоколу TCP/IP с модулем SOCKDDE.EXE. Полученные от модуля SOCKDDE.EXE данные преобразуются к стандартным типам данных визуальной среды Jasmine Studio и управление возвращается в вызвавшее приложение.

Библиотека ODBSOCK.DLL также использует Windows Sockets API процедуры для работы с протоколом TCP/IP.

Приложение в среде Jasmine Studio

Это приложение обеспечивает мультимедийный интерфейс пользователя с информационно - поисковой системой.

Приложение отображает форму запроса для ее заполнения, отображает список найденных документов и просматриваемый документ.

Приложение разработано в визуальной среде Jasmine Studio (Рис. 6) и выполняется на компьютере с сервером Jasmine.

Image99.gif

Рис.6. Среда разработки Jasmine Studio

На рисунке 6 изображены три окна. Окошко с заголовком "JADE Application Manager" является главным окном среды Jasmine Studio. Справа в нем, в виде древовидной структуры, отображаются приложения и принадлежащие им сцены. Окно с заголовком "JADE Scene (Editing)" отображает сцену, находящуюся в процессе редактирования. Все элементы на эту сцену были перенесены с помощью технологии "Drag and Drop".

Помимо привычных элементов редактирования и выпадающих списков здесь находятся специфичные для "Jasmine" элементы: Class Anchor ("желтый ящик") и Query Anchor (фигура из красных и серых кубиков), а также кнопки "Назад", "Искать", "Выход" c рисованными изображениями вместо стандартных. Class Anchor позволяет из сцены вызывать методы соответствующего класса. Список доступных методов класса NamesOfFindedDocs изображен в окошке браузера классов ("JADE Class Browser"). Query Anchor позволяет из сцены осуществлять выборку объектов из базы данных по какому - либо критерию.

Разработанное приложение содержит четыре формы, названные "Home" - упрощенная поисковая форма, "Adv"- расширенная поисковая форма,"View" - просмотр списка найденных документов, "Show" - просмотр найденного документа. Формы включают в себя кнопки, элементы редактирования, блоки списка, окно для просмотра документа. Формы обращаются к методам класса NamesOfFindedDocs. Все методы - уровня класса. Объекты этого класса представляют собой структуру, состоящую из порядкового номера документа и его названия. Методы используются для обращения к ODBSOCK.DLL, которая связывается по TCP/IP с сервером ODB-Jupiter и операций с объектами класса NamesOfFindedDocs.

Поисковая система в действии

После выбора клиентом в браузере Internet нужного URL происходит следующее:

1. Браузер соединяется с WEB - сервером и получает от него заглавную страничку;

2. Браузер, транслируя страничку, видит в ней ссылку на Plug-In, и выполняет ее;

3. Plug - In, в свою очередь, соединяется через WWW – сервер с JADE HTTP Server’ом и далее обменивается с ним информацией;

4. JADE HTTP Server обращается к серверу базы данных Jasmine за данными, формами и т.д.;

5. При надобности сервер Jasmine обращается посредством канала (TCP/IP) к серверу базы данных "ODB-Jupiter".

После выбора адреса главной странички пользователь работает с формами (см. Рис.7).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис.7. Схема взаимодействия форм.

Формы "Home" и "Adv" представляют собой запросные формы с обычным и расширенным списками поисковых полей. После заполнения одного или нескольких полей пользователь нажимает кнопку "Искать" и переходит в форму "View", предназначенную для просмотра списка найденных документов. После выбора нужного документа пользователь переходит в сцену "Show", предназначенную для просмотра самого документа. Пользователь может из браузера скопировать документ в файл и сохранить его себе.

Заключение

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

Разработанный прототип информационно–поисковой системы демонстрирует возможности применения объектных баз данных для мультимедийных приложений корпоративного уровня. Объектная СУБД "Jasmine" является на сегодняшний день одним из наилучших выборов для создания таких приложений. Ее совершенные средства связи с Internet / Intranet позволяют программисту не переделывать приложение для опубликования его в Internet. Таким образом, код приложения пишется один раз.

Одной из немногих СУБД, способных осуществлять полнотекстовый поиск по естественно-языковым запросам на русском языке, является объектная СУБД "ODB-Jupiter". Кроме поиска, она также обеспечивает функции редактирования документов. Это создает предпосылки для создания на основе этих двух СУБД мощных распределенных систем документооборота корпоративного уровня.

Одной из возможных областей применения разработки должно стать ее использование для построения баз данных нормативно-правовой информации субъектов Российской Федерации.

ЛИТЕРАТУРА

1. Андреев А.М., Березкин Д.В., Кантонистов Ю.А., "Объектно-ориентированная база данных ODB-Jupiter", "Мир ПК", №8, 1997, с. 49-52.

2. Свидетельство РосАПО №970171 о регистрации полнотекстовой информационно-поисковой системы "ODB-Text" версии 2.0, "Информационный бюллетень официальной регистрации программ для ЭВМ, баз данных и топологий интегральных микросхем", из-во "Роспатенты", II квартал, 1997 г.

3. Андреев А.М., Березкин Д.В., Буйдов А.Ю., Смирнов Ю.М., "Объектные информационные системы (подход к проектированию)" Вестник МГТУ, Сер. Приборостроение (2, М. Издательство МГТУ, 1995 г.

4. Д. Райли, "Абстракции и структуры данных. Вводный курс.", Москва, "Мир", 1993г.

5. Андреев А.М., Березкин Д.В., Куликов Ю.В., Смагин А.Ю., Смелов А.В. "Объектно-ориентированный подход к проектированию ГИС" , "Геодезия и Картография", 1995 г., N2.

6. Андреев А.М., Березкин Д.В., Кантонистов Ю.А., Смирнов Ю.М. "Объектно-ориентированная база данных ODB-Jupiter", "Приборостроение", №1, 1998.

7. "Концепции Jasmine" – издание компании "Computer Associates", 1998.

ИНТЕЛТЕК ИЗДАТЕЛЬСТВО Обьектные технологии


© НПЦ "ИНТЕЛТЕК ПЛЮС", 1997-2006, E-mail: publish@inteltec.ru