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

Доклад на тему: Web-интерфейс объектной СУБД

Здравствуйте! Я вам расскажу о принципах работы Web – интерфейсов современных объектных СУБД. Под Web-интерфейсом я понимаю набор программных модулей, предназначенный для стыковки СУБД с Internet/Intranet. Итак, для чего же нужен СУБД Web-интерфейс?

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

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

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

Презентация: Рис.2. Работа Web – клиента с СУБД по принципу "вопрос - ответ"

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

Обычно, работа клиентов с базами данных также строится либо по принципу "вопрос - ответ", либо ориентирована на поддержание постоянного соединения "Login - Logout". По принципу "вопрос - ответ" обычно работают различные поисковые системы Internet. При таком подходе пользователи подают запросы на Web – сервер, сервер обрабатывает их и отсылает обратно клиенту.

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

Презентация: Рис.3. Работа Web – клиента с СУБД по принципу "Login - Logout"

Принцип поддержания постоянного соединения обычно предполагает проверку паролей пользователей и применяется в системах, где важным является разграничение прав доступа к информации. Такой принцип применяется в системах электронной почты, основанных на Web (например, www.hotmail.com). При таком подходе Web – сервер вынужден на протяжении всего сеанса работы с базой данных хранить информацию о подключенном пользователе. По запросу Web - клиента "Logout" Web – сервер "отключает" пользователя. Подобный подход позволяет производить однократную проверку пароля при подключении с последующей передачей (при работе с базой) уникального идентификатора, однозначно определяющего конкретного пользователя на время всего сеанса работы. Такой уникальный идентификатор присваивается клиенту сервером и передается серверу при каждом запросе к базе данных. Если пользователь забудет отключиться от системы, через некоторое время Web – сервер сам его отключит.

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

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

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

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

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

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

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

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

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

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

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

Приложения 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-интерфейс объектной СУБД Jasmine

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

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

Объектная СУБД 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.

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 - архитектуры на разных машинах и тем самым повысить производительность и безопасность системы.

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

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

Подобная технология позволяет быстро (с помощью визуальной среды Jasmine Studio) создавать красивые интерактивные мультимедийные приложения для Intranet / Internet.

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

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

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

Презентация: Рис.8. Архитектура Web-интерфейса СУБД O2.

СУБД O2 разработана фирмой О2 Technology и является классическим примером реализации объектной СУБД с продуманной архитектурой и решениями. Архитектура Web-интерфейса CУБД O2 является распределенной. Что это означает? Обычно, Web-интерфейс реализован в виде одного сервера, выполняющего запросы клиентов Internet/Intranet. 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 – серверов и распараллеливания их работы.

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

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

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

Web -  архитектура ИПС "ODB – Text 3.0"

Презентация: Рис. 9. Web - архитектура ИПС "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 9x, Windows NT в 32-х разрядном режиме. Такими Web - серверами на сегодня являются Internet Information Server для платформ Windows NT и Personal Web Server для платформ Windows 9x.

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

Обычный сервер "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 - расширения время.

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

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

Вид документа ИПС "ODB – Text 3.0" в браузере

Презентация: Рис.10. Вид документа ИПС "ODB – Text 3.0" в браузере

OLE - документ в браузере

Презентация: Рис.11. OLE - документ в браузере

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

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

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

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

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

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

Резюме

Таким образом, технологии объектных СУБД создают предпосылки для создания распределенных корпоративных высоконадежных систем для критических приложений. Нашим НПЦ сейчас ведется работа по автоматизации МАГП, в здании которого проходит этот семинар. В качастве СУБД используется ИПС "Odb-Text".

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

Спасибо за внимание, до свидания!

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


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