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

WEB-ИНТЕРФЕЙС ОБЪЕКТНОЙ СУБД

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

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

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

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

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

E-mail: info@inteltec.ru

 

Современные распределенные информационных системы хранят наиболее важную и критичную информацию в базах данных. У пользователя такой системы часто возникает необходимость получить доступ к данным системы посредством броузера и технологий Internet / Intranet.

Наблюдается тенденция хранить в базе неструктурированные документы (текст, мультимедиа) и данные с многомерными связями (например, код HTML-страницы).

Для решения таких задач часто используются объектные СУБД, которые имеют встроенную поддержку мультимедиа (Jasmine), допускают создание произвольных типов данных и обеспечивают высокопроизводительную работу с многосвязными данными. Конечно же, объектная база данных должна иметь средства взаимодействия с Internat / Intranet.

Назначение и основные принципы работы Web-интерфейса СУБД

Основным протоколом при работе броузера c Internet является протокол HTTP (HyperText Transfer Protocol – протокол передачи гипертекста).

Этот протокол предполагает взаимодействие браузера (Web - клиента) c HTTP - сервером по принципу “вопрос - ответ”, т.е. браузер посылает запрос HTTP – серверу на информацию, а Web – сервер отсылает клиенту сформированную HTML (HyperText Markup Language – язык разметки гипертекста) страничку и “забывает” о клиенте.

Обычно, работа клиентов с базами данных также строится либо по принципу “вопрос - ответ”, либо ориентирована на поддержание постоянного соединения “Login - Logout”.

По принципу “вопрос - ответ” обычно работают различные поисковые системы Internet. При таком подходе пользователи подают запросы на Web – сервер, сервер обрабатывает их и отсылает обратно клиенту (Рис.1).

Image111.gif

Рис.1. Работа Web – клиента с СУБД по принципу “вопрос - ответ”

Принцип поддержания постоянного соединения обычно предполагает проверку паролей пользователей и применяется в системах, где важным является разграничение прав доступа к информации. Такой принцип применяется в системах электронной почты. При таком подходе Web – сервер вынужден на протяжении всего сеанса работы с базой данных хранить информацию о подключенном пользователе.

По запросу Web - клиента “Logout” Web – сервер “отключает” пользователя (Рис. 2.). Подобный подход позволяет производить однократную проверку пароля при подключении с последующей передачей (при работе с базой) уникального идентификатора, однозначно определяющего конкретного пользователя на время всего сеанса работы.

Такой уникальный идентификатор присваивается клиенту сервером и передается серверу при каждом запросе к базе данных. Если пользователь забудет отключиться от системы, через некоторое время Web – сервер сам его отключит.

Теперь перейдем к обсуждению различных способов реализации Web – интерфейсов СУБД.

Способы реализации Web-интерфейса СУБД

При работе HTTP – сервера без СУБД его функции (с точки зрения пользователя) в основном сводятся к передаче файлов по запросам браузеров через сеть Internet/Intranet. Для работы с СУБД HTML – файлы должны формироваться динамически, заполняясь данными из базы данных. Эти функции обычно выполняют CGI (Common Gateway Interface – общий шлюзовой интерфейс) и ISAPI (Microsoft Internet Server Application Program Interface – интерфейс приложений Internet – сервера фирмы Microsoft) расширения. Оба типа расширений предназначены для придания "интерактивности" Web - сайту, возможности вести диалог с пользователем. ISAPI – расширения распространены на платформах Windows 95 – 98 – NT. Каждый тип расширений, как будет показано ниже, имеет свои достоинства и недостатки.

Image112.gif

Рис.2. Работа Web – клиента с СУБД по принципу “Login - Logout”

CGI - расширения, (или CGI-скрипты) позволяют обрабатывать данные, приходящие от браузера, динамически формировать HTML - файл и отправлять его удаленному пользователю. CGI - расширение обычно представляет собой исполнимый (.exe) файл. Такой исполнимый модуль может взаимодействовать с базой данных, выполняя запросы на поиск и извлечение данных. Исполнимый файл CGI - скрипта вызывается Web - сервером, причем ему через переменные среды передается информация от браузера (Рис.3).

Image113.gif

Рис.3. Принцип работы CGI – расширения (скрипта).

Такая информация может быть введена пользователем в управляющих элементах форм в HTML – страницах или передана посредством параметров строки запроса на сервер. Преимуществами CGI - скриптов являются их относительная независимость от платформы и высокая надежность.

Под "надежностью" следует понимать безопасность работы HTTP - сервера: при ошибке в CGI - скрипте процесс скрипта будет аварийно завершен, а процесс HTTP - сервера не пострадает.

Существенным недостатком CGI - скриптов является их относительно низкое быстродействие, что связано с накладными расходами на запуск процессов CGI - скрипта. Для каждого Web – клиента HTTP – сервер запускает новый процесс CGI – расширения. После отработки запроса каждый CGI – процесс завершается.

ISAPI - расширение создается в виде динамически подгружаемой библиотеки DLL. Обращение к такой библиотеке выполняется из документовх HTML аналогично обращению к программам CGI - из форм и ссылок, созданных при помощи операторов <FORM> и <A HREF> соответственно.

При обращении Web – клиента к ISAPI - расширению, соответствующая библиотека DLL загружается в адресное пространство сервера Microsoft Information Server и становится ее составной частью.

Так как расширение ISAPI работает в рамках процесса сервера Microsoft Information Server (см. Рис.4), а не в рамках отдельного процесса (см. Рис.3), оно может пользоваться всеми ресурсами, доступными серверу. Это повышает производительности системы.

Image114.gif

Рис.4. Принцип работы ISAPI – расширения.

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

Если 10 пользователей обратятся одновременно к одной и той же программе CGI. В результате на сервере будет создано 10 процессов, по одному на каждого пользователя. Так как создание процесса отнимает много времени, это приведет к потере производительности.

Если же 10 пользователей одновременно обратятся к одному и тому же расширению ISAPI, в память будет загружена одна копия библиотеки DLL расширения, которая будет работать в многопоточном режиме.

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

Тем не менее, ISAPI расширения имеют недостаток - при ошибке CGI расширения аварийно завершается сам процесс CGI-расширения, ошибка же в ISAPI расширении может привести к аварийному завершению процесса самого Web - сервера. Поэтому необходима очень тщательная отладка ISAPI - расширений.

Разработчики Microsoft в последних версиях Internet Information Server сделали доступной возможность запуска ISAPI – расширений в изолированном адресном пространстве (Process Isolation Technique), что призвано обезопасить HTTP – сервер от ошибок в ISAPI – расширениях.

Теперь перейдем к рассмотрению конкретных Web – архитектур объектных СУБД.

Web-интерфейс информационно – поисковой системы “ODB-Text 3.0”

"ODB - Text" (разработчик - научно-производственный центр "Интелтек-плюс") - это информационно-поисковая система (ИПС), построенная на базе объектной СУБД "ODB - Jupiter". Этой разработке посвящен целый ряд статей (например,[1-4]), опубликованных различных изданиях, в том числе и в журнале “Компьютерная хроника”. Наиболее полно она описана в работе [3], еще более подробную информацию вы найдете на WEB-сайте http://www.inteltec/ru, на котором находятся демонстрационные версии программ.

Система "ODB - Text" обеспечивает русскоязычный полнотекстовый поиск по запросам на естественном языке. Данная ИПС предназначена для хранения и поиска текстовых документов сложной структуры, имеющих внедренные или связанные OLE – объекты, ссылки и т.д.

Интересной особенностью "ODB - Text" версии 3.0 является простота доступа к документам, хранимым в базе данных, в сетях ИНТЕРНЕТ/ИНТРАНЕТ при помощи стандартного браузера. Текст любого документа при этом будет выглядить так, как это показано на Рис. 5.

Image115.gif

Рис.5. Вид документа ИПС “ODB – Text 3.0” в браузере

Документ имеет различные реквизиты. Возможен поиск по реквизитам документа. Учитывая необходимость разработки Web-расширения для уже существующей ИПС "Odb-Text", с точки зрения минимума затрат на программирование и достижения максимума производительности было выгоднее реализовать ISAPI Web-расширение. Сервер клиент - серверной ИПС "Odb-Text" выполнен в виде исполняемой программы. Он поддерживает связь с клиентами на протяжении всего сеанса работы. При реализации Web – сервера в виде CGI - расширения он работал бы следующим образом: при приходе запроса от клиента запускается новый процесс, обрабатывающий запрос. После обработки запроса процесс выгружается из памяти. Таким образом, поддержание информации о клиентах было бы затруднено.

Возможный вариант промежуточного использования CGI - процессов для передачи информации между Web - сервером и процессом - сервером СУБД позволяет увеличить надежность системы путем достаточно простого введения внешних систем перезапуска сервера СУБД при ошибках. Но этот вариант был отклонен из-за потерь в производительности, являющихся существенными при характере работы СУБД, ориентированном на постоянное поддержание соединения с клиентами (“Login - Logout”).

Поэтому было принято решение разработки именно ISAPI расширения.

Основой информационно - поисковой системы является стандартный комплекс "Odb-Text" (сервер и клиенты), дополненный средствами разделения прав доступа, репликации баз данных и ISAPI - Web - расширением с несколькими утилитами для администрирования. Web - расширение может вызываться Web - серверами, работающими на платформах Windows 95/98/NT. Такими Web - серверами на сегодня являются Microsoft Internet Information Server для платформ Windows NT и Personal Web Server для платформ Windows 95/98.

Web - расширение представляет собой выполненный в виде динамической библиотеки DLL сервер "Odb-Text", и снабженный средствами динамической генерации HTML - страниц по данным из баз данных и интерфейсом ISAPI расширения (Рис.6).

Image116.gif

Рис. 6. Web - архитектура ИПС “ODB – Text 3.0”

Обычный сервер "ODB-Text" располагается на одной машине с Web - сервером и расширением ISAPI. Клиенты "ODB-Text", подключаясь к серверу "ODB-Text", могут просматривать, редактировать, удалять и добавлять документы в базы данных, с которыми работает сервер. Расширение ISAPI работает со своими базами. Когда администратор сочтет нужным, работа ISAPI - расширения корректно приостанавливается и происходит операция синхронизации - базы, с которыми работал сервер "ODB-Text", переписываются на место баз, с которыми работалo ISAPI - расширение. Так как операция модифицирования баз является сложной, то, с точки зрения надежности, целесообразно не ставить под угрозу работу Web-расширения и целостность баз данных, с которыми работает Web-расширение. Файлы баз, с которыми работает ISAPI - расширение, открываются только на чтение, что исключает их порчу по вине программных ошибок.

Ориентированный на поддержание постоянного соединения с клиентами сервер "Odb-Tеxt" заводит на каждого пользователя уникальный идентификатор, вырабатываемый с помощью хэш-функции. Этот идентификатор присутствует во всех данных, приходящих от браузера и служит для однозначной идентификации конкретного пользователя. При отправке пользователю сформированной HTML странички данный идентификатор вписывается во все ссылки и формы.

Пользователя нельзя однозначно идентифицировать с помощью IP адреса, так как некоторые программы могут маскировать IP - адреса пользователей. Сам протокол HTTP и специфика Internet изначально предназначены для работы в режиме "вопрос-ответ", а не рассчитаны на поддержание постоянного соединения клиента с сервером.

Если пользователь забыл отключиться от системы, вспомогательный поток отключит его сам через устанавливаемое в настройках время.

Механизм синхронизации баз данных выдвигает дополнительное требование к ISAPI - расширению - оно должно уметь общаться с обычным сервером ИПС “ODB - Text” , чтобы получить от него информацию о начале переключения баз.

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

Распространение технологии OLE приводит к необходимости хранения в базе данных OLE-документов. Такие документы, например, формируются редактором Microsoft Word, пакетом Visio и т.д. Таким образом, при разработке Internet-расширения информационно – поисковой системы возникает проблема отображения OLE-объектов в браузере.

Решение может быть найдено с помощью установки в HTML – файле ссылки на OLE - документ. В этой ссылке указывается URL OLE-файла, предварительно выгруженного из базы ISAPI-расширением во временный каталог.

При обращении браузера за документом на сервер, он, в свою очередь, выгружает файл во временный каталог и отсылает на браузер страничку с ссылкой на выгруженный файл. Браузер обрабатывает эту страничку и скачивает временный OLE-файл из каталога на сервере. При очередном запросе от клиента файл удаляется. Временный файл должен иметь расширение, соответствующее программе, его открывающей. Современные браузеры для платформы Windows поддерживают активацию OLE-сервера по месту (In-Place Activation), что позволяет, например, удаленному пользователю распечатать и подредактировать полученную от сервера СУБД локальную копию OLE-документа (Рис.7).

Image117.gif

Рис.7. OLE - документ в браузере

Наряду с динамической генерацией данных для отображения браузером, возможна динамическая генерация программ на JavaScript, обрабатывающих HTML страничку в браузере, причем исходный текст этих программ может динамически меняться в зависимости от данных СУБД. Это позволяет переложить некоторые функции с ISAPI-расширения на клиентскую часть (браузер).

Таким образом в данном ISAPI - расширении генерируется текст программы на JavaScript, служащий для синхронизации выпадающих списков в форме, отображающей карточку реквизитов документа из СУБД (Рис.8).

Image118.gif

Рис. 8. Карточка реквизитов документа ИПС “ODB – Text 3.0”

Web-интерфейс объектной СУБД Jasmine

Объектная СУБД Jasmine, безусловно, является одним из самых интересных решений в области хранения и обработки данных. Эта СУБД разработана крупной американской фирмой Computer Associates. Jasmine имеет развитые средства хранения и обработки мультимедийной информации. Вся информация в базе данных хранится в виде объектов определяемых пользователем или предопределенных классов. Класс может иметь свои исполнимые методы. Разработчики Jasmine включили в комплект поставки библиотеки так называемых мультимедийных классов, у которых есть методы обработки видеоизображений, работы с графикой, звуком и т.п. Таким образом, программист - разработчик освобождается от необходимости самостоятельно программировать процедуры, например, для воспроизведения видеоклипов.

Также, Jasmine поддерживает концепцию однократной разработки приложения для клиентской части Jasmine и для пользователей Intranet / Internet. Jasmine поддерживает две технологии разработки приложений для Internet: с помощью Jasmine Web Browser Plug - In's (подключаемых к браузеру модулей) или с помощью технологии WebLink.

Рассмотрим архитектуру Web - интерфейса СУБД Jasmine при работе с Web Browser Plug - In's (Рис.9).

Image119.gif

Рис. 9. Web - архитектура СУБД Jasmine при использовании Web Browser Plug - In's

Web Browser Plug - In's - подключаемые модули, устанавливаемые на клиентские браузеры. Когда пользователь из браузера заходит на начальную страничку приложения для СУБД Jasmine, в этой страничке стоит ссылка на Plug - In c определенными параметрами. Используя эти параметры, Plug - In соединяется по протоколу HTTP с WWW - сервером и вызывает расширение ISAPI, передавая ему некоторые параметры. ISAPI - расширение, в свою очередь, связывается по протоколу TCP/IP с JADE HTTP сервером, который обращается за данными (в том числе мультимедийными) на сервер Jasmine. Само приложение СУБД Jasmine, с которым работает Web - клиент, выполняется на сервере, обеспечивая тем самым высокую безопасность и производительность. Когда данные возвращаются обратно к клиенту, Plug - In "знает", как их отобразить в окошке браузера. В процессе выполнения приложения запросы на данные от Plug - In'а на сервер могут происходить неоднократно. Достаточно длинная "цепочка" передачи данных была использована, например, для возможности установить разные компоненты Web - архитектуры на разных машинах и тем самым повысить производительность и безопасность системы. Подобная технология позволяет быстро (с помощью визуальной среды Jasmine Studio) создавать красивые интерактивные мультимедийные приложения для Intranet / Internet (Рис.10).

Image120.gif

Рис.10. Разработанное в НПЦ "Интелтек Плюс" приложение "Виртуальный офис"

В случае, когда к приложению должны обращаться браузеры, не имеющие установленых модулей Jasmine Plug - In's, СУБД Jasmine дает возможность использовать вторую технологию создания Web - приложений - WebLink. По сути эта технология использует HTML - преобразователь, позволяющий обращаться к объектам, хранящимся в базе данных Jasmine c помощью специальных инструкций, встраиваемых в HTML - странички.

Web-интерфейс объектной СУБД O2

СУБД O2 [6] разработана фирмой О2 Technology и после слияния компаний стала распространятся фирмой Ardent Software. Она является классическим примером реализации объектной СУБД с продуманной архитектурой и решениями. Архитектура Web-интерфейса CУБД O2 является распределенной. Что это означает? Обычно, Web-интерфейс реализован в виде одного сервера, выполняющего запросы клиентов Internet/Intranet. O2 реализует другой механизм (Рис.11)

Image121.gif

Рис.11. Архитектура Web-интерфейса СУБД O2.

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

1. Web-клиент посылает по протоколу HTTP URL-запрос. Этот URL содержит вызов CGI-скрипта, которому в строке параметров передается запрос на языке OQL (Object Query Language).

2. HTTP - сервер передает запрос Web - шлюзу.

3. Web-шлюз соединяется с Web-диспетчером, запущенным на одном из компьютеров локальной сети.

4. Web-диспетчер сообщает Web-шлюзу, к какому Web-серверу надо подключаться для обработки запроса.

5. Web-шлюз соединяется с соответствующим Web-сервером.

6. Web-сервер выполняет запрос, содержащийся в URL, и преобразовывает результат запроса в HTML для отсылки клиенту.

7. Результат отсылается Web-клиенту.

Очевидно, такая Web – архитектура должна обладать повышенной надежностью и производительностью за счет дублирования Web – серверов и распараллеливания их работы.

Литература

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

  1. Андреев А.М., Березкин Д.В., Кантонистов Ю.А., Смирнов Ю.М. “Объектно-ориентированная база данных ODB-Jupiter”//Приборостроение”, №1, 1998 г.
  2. Андреев А.М., Березкин Д.В., Кантонистов Ю.А. Полнотекстовая документальная информа-ционная система “odb-text” версии 3.0// Компьютерная хроника, №1, 1999 г.

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

5. Концепции Jasmine (издание Computer Associates 1998г.).

6. O2 Web User Manual (издание O2 Technology Release 4.6 1996г.).

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


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