Informix Logo


Динамическое формирование мультимедиа-страниц в Internet
с использованием технологий СУБД Informix

М.Е. Парфенов, И.В. Соколова
Научный парк МГУ им. М.В. Ломоносова
e-mail: itc@science.park.ru

До недавнего времени пользователи Internet имели дело только со статической информацией, представленной на Web-сайтах. Возможность работы непосредственно с базами данных, а не с заранее подготовленными гипертекстовыми или гипермедийными документами, отсутствовала. Для работы с базой данных нужно:

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

1. Общие подходы к проблеме

К реализации механизма доступа к базам данных через Internet в настоящее время можно выделить два подхода:

1.1. Формирование запроса к БД  на Web-клиенте

Одним из средств динамического доступа к базам данных при формирование запроса на стороне Web-клиента является предложенная компанией SUN Microsystems технология Java, которая ориентирует взаимодействие между клиентом и сервером на поток команд, а не данных. В ходе сеанса обеспечивается фоновая подкачка через сеть на компьютер клиента программных агентов - апплетов, которые берут на себя функции обеспечения гибкого взаимодействия с сервером баз данных. 

Схема I. Формирование запроса к базе данных на клиенте

Informix Magazine Russian Edition Сентябрь 1998г.

Схема I. Формирование запроса к базе данных на клиенте

Технология разработки HTML-документа позволяет написать произвольное количество дополнительных Java-программ (Java-апплетов), откомпилировать их в байт-код и указать ссылки на соответствующие коды в теле HTML-документа. Получив доступ к документу, содержащему ссылки на апплеты, клиентская программа просмотра запрашивает у Web-сервера все байт-коды, которые могут начать выполняться сразу после размещения на компьютере клиента или быть активизированы с помощью специальных команд [4]. Апплет может быть специализирован для работы с внешними базами данных. Кроме того, Java включает развитый набор классов для поддержки графического пользовательского интерфейса.

Развитые средства разработки клиентских приложений представлены различными системами программирования на интерпретируемых языках Java, JavaScript, Tcl. Среди них можно выделить Visual Cafe 2.5 for Java корпорации Symantec, JBuilder2 фирмы Inprize (Borland) International и Visual J++ 6.0 компании Microsoft.

Технология Java является основой и для Data Director for Java корпорации Informix Software [3]. Data Director for Java - это графическая среда, позволяющая "рисовать" Java-апплеты, которые объединяют элементы управления базой данных и запускаются через HTTP Web-броузером. Основной компонент пакета Form Painter предоставляет инструментарий для управления таблицами, кнопками и т.д. Java-апплета. Java-код генерируется в фоновом режиме.

Взаимодействие Java-апплета с внешним сервером баз данных осуществляется с помощью протокола JDBС. Либо путем написания некоторого кода с использованием механизма RMI (Remote Invocation Method) либо IIOP.

 

1.2. Формирование запроса к БД  на Web-сервере

Для динамического доступа к базе данных при формировании запроса на стороне Web-сервера используются:

Схема II. формирование запроса к БД со стороны Web-сервера

Схема II. формирование запроса к БД со стороны Web-сервера

Реализация доступа к базе данных на стороне Web-сервера на основе CGI (схема II) может быть описана следующим образом [4]:

CGI-скрипт может быть написан на языках высокого уровня (С, С++, Pascal) или на командных языках семейства shell, Perl и т.д. CGI-скрипт, выполняющий роль посредника между Web-сервером и другими видами серверов, называется шлюзом. Наличие CGI-скриптов на стороне Web-сервера позволяет, в частности, перенести часть логики приложения с клиента на сервер. CGI-шлюзы представляют собой средство для организации трехзвенной архитектуры клиент-сервер. При использовании CGI вся интерпретация запроса пользователя производится CGI-скриптом. Скрипт может быть ориентирован на выполнение запроса к фиксированной таблице фиксированной базы данных или выполнять произвольный запрос к одной или нескольким таблицам базы данных, определяемой в параметрах клиента.

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

 

1.3. Сравнительная характеристика двух механизмов доступа к базам данных

Использование Java-апплетов обеспечивает более гибкое решение, чем механизм CGI. Апплет - это часть HTML-документа. Для включения нового апплета необходимо только перекомпоновать документ. Клиент должен быть достаточно "толстым" для того, чтобы в ограниченный промежуток времени справиться с интерпретацией всех апплетов.

Использование CGI-скриптов на стороне Web-сервера позволяет клиенту быть достаточно "тонким", то есть иметь у себя в распоряжении только простые программы просмотра. Вся работа с базой данных ложится на middleware между Web-сервером и сервером баз данных. Это легкий способ построения трехзвенной архитектуры приложения. Недостатком CGI является отсутствие переносимости между различными платформами.

При использовании обоих механизмов остается нерешенной одна проблема, а именно: проектирование и написание процедурного кода (Java-апплетов для первого и CGI-скриптов для второго подхода соответственно). Решить указанную проблему призвана новая разработка компании Informix Software - Web DataBladeR Module [2].

 

2. Решение корпораци Informix Software

2.1. Модуль Web DataBlade

Корпорация INFORMIX Software выпустила новую версию динамически подключаемого к серверу баз данных INFORMIXR-Universal Server дополнительного модуля Web DataBladeR. INFORMIX-Universal Server является объектно-реляционной СУБД, т.е. включает совместное использование реляционного и объектно-ориентированного подхода. С одной стороны, это позволяет использовать SQL-запросы; с другой стороны, работать с объектами любой структуры и определять пользовательские типы данных и методы работы с ними [1]. С помощью Web DataBlade Module в Web-страницы можно включать форматы ввода и представления данных, связанные непосредственно с базой данных. Подобная страница-приложение, представляющая собой программу со встроенными SQL-операторами и тегами HTML, позволяет абоненту WWW обращаться к базе данных с собственными запросами.

Модуль Web DataBlade базируется на технологии DataBladeR, предназначенной в первую очередь для дополнения ядра СУБД поддержкой новых типов данных. Для модуля Web DataBlade таким новым типом является "тег" (объект присоединения гипертекстовой связи). Он содержит ссылку на элемент хранения в базе данных и на то приложение, которое необходимо запустить для его обработки (например, WWW-броузер или средство воспроизведения мультимедиа-последовательностей).

С Web-сервером такое приложение взаимодействует посредством интерфейса CGI/NSAPI/ISAPI и использует все достоинства этого механизма работы с базами данных. Однако теперь разработчику не придется прибегать к сложному программированию сценариев на языке Perl. С использованием модуля Web DataBlade нет необходимости создавать CGI-приложения для динамического получения данных. Для этого формируются HTML-страницы, которые включают теги и функции модуля Web DataBlade, динамически выполняющие заявленные SQL предложения и форматирующие результаты. Такие страницы называются Application Pages (AppPages). Теги модуля Web DataBlade расширяют концепцию тегов HTML, позволяя разработчикам документов HTML практически полностью избежать написания сложных сценариев CGI.

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

В Web DataBlade Module включено основанное на технологии Web-броузера инструментальное средство Application Page Builder, значительно ускоряющее создание и модификацию Web-приложений. Ускорению разработки способствует также наличие набора заготовок типовых страниц. Реализовано кэширование крупных объектов, что снижает нагрузку на СУБД, позволяя обойтись без повторной выборки не изменяющихся со временем данных. Кроме того, теперь поддерживается программное обеспечение Web-сервера Netscape Web Server с интерфейсом прикладного программирования Netscape API (NSAPI). Это дает возможность воспользоваться механизмами защиты информации и обращения к Java-классам, встроенными в продукты Netscape. Поддерживается также программный интерфейс Web-сервера Microsoft, Internet Information Server API (ISAPI).

 

2.2. Структура модуля Web DataBlade

WebDriver

Как клиентское приложение, INFORMIX-Universal Server строит SQL-запросы, выполняемые функцией WebExplode, для получения AppPages от базы данных INFORMIX-Universal Server.

Возвращает конструкции HTML, полученные в результате работы WebExplode, на Web-сервер c помощью интерфейсов NSAPI, ISAPI или CGI.

Функция WebExplode

Формирует динамические HTML страницы, основанные на данных исходной базы.

Осуществляет разбор AppPages, содержащих теги модуля Web DataBlade внутри HTML.

Динамически строит и выполняет предложения SQL и инструкции, встроенные в теги модуля Web DataBlade.

Форматирует результаты этих предложений и инструкций и возвращает полученную HTML страницу клиентскому приложению.

Теги и атрибуты модуля Web DataBlade

Модуль Web DataBlade содержит свои собственные встроенные SGML-совместимые теги и атрибуты, которые делают возможным выполнение SQL-предложений внутри AppPages.

 

2.2. Архитектура  Web DataBlade

Схема III [2]. Архитектура  Web DataBlade

Схема III [2]. Архитектура  Web DataBlade

 Доступ к базе данных осуществляется следующим образом:

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

С помощью WebDriver возможно получение больших объектов, таких как образы, непосредственно из базы данных INFORMIX-Universal Server, используя SQL запросы.

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

 

Литература

1. C.J. Date "An Introduction to Database Systems", sixth edition, 1995 Addison-Wesley Publishing Company.

2. Informix Web DataBladeR Module, User's Guide Ver.3.3, 1997 INFORMIXR Press.

3. Informix Answers OnLineT, Ver. 1.7, 1997 Informix Software, Inc.

4. С.Д. Кузнецов "Доступ к базам данных с использованием технологии WWW", СУБД, ? 5-6 1996.

 

Украинская баннерная сеть
 

[Home]

Сайт поддерживается группой пользователей Информикс на Украине.

Hosted by NO-more.