Василий Ямалетдинов

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

Работающая в подобных системах СУБД должна уметь хранить и обрабатывать огромные объемы данных. Популярные ныне реляционные СУБД с этой задачей справляются успешно, если данные имеют традиционный формат (текст, числа и т. д.). Однако с развитием Web в бизнес-приложениях все чаще используются неструктурированные мультимедийные данные: фотографии клиентов, изображения предлагаемых товаров, музыка и рекламные видеоклипы. Для работы с ними РСУБД приспособлены гораздо хуже: она связана с большими накладными расходами и падением производительности.

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

Описанию достоинств Jasmine посвящено достаточно много статей (см. PC Week/RE, № 19/98, с. 5; № 37/98, с. 10), поэтому выделим лишь основные характеристики:

- мощная объектно-ориентированная модель, способная оперировать с данными сложных типов, включая мультимедиа;

- наличие собственной среды разработки клиентских приложений Jasmine Studio, использующая интуитивно понятный метод событийного программирования;

- интеграция с традиционными реляционными базами данных, такими, как Ingres, Oracle, Informix, DB2 и пр.;

- удобные средства разработки объектно-ориентированных Интернет-приложений с использованием мультимедиа.

В данной статье мы подробно рассмотрим входящие в состав Jasmine Интернет-программы и решения - сервер Jasmine HTTP Server и модуль Jasmine Studio Plug-in, совместное использование которых позволяет работать с Jasmine-приложениями из Web-браузера, а также WebLink - технологию динамического формирования HTML-страниц на основе запросов к БД.

Web-приложения

Jasmine предоставляет мощное средство разработки приложений - Jasmine Studio. Создаваемые в ней приложения могут быть скомпилированы в виде исполняемых модулей (попросту EXE-файлов), осуществляющих взаимодействие с БД по любому доступному коммуникационному протоколу.

Однако это еще не все. Jasmine предоставляет уникальную возможность объявить свое приложение как Web-enabled (“Web-разрешенное”), после чего оно может быть запущено удаленным пользователем непосредственно из Web-браузера. Какой-либо дополнительной модификации кода при этом не требуется. Однако для того, чтобы такое приложение могло выполняться “через Интернет”, необходимо на Web-сервере, обеспечивающем доступ к базе данных, установить ПО Jasmine HTTP Server, а на клиенте - подключаемый к браузеру модуль Jasmine Studio Plug-in. Последний представляет собой надстройку, посредством которой в браузере отображаются окна Jasmine-приложения.

Вся эта конструкция работает так. Plug-in запрашивает сцену (окно) Jasmine-приложения через определенную HTML-страницу. Web-сервер, получив запрос, определяет, что тот относится к Jasmine Studio (он распознается как тип MIME) и передает его Jasmine HTTP Server. Последний обращается к Интернет-приложению, находящемуся на сервере базы данных Jasmine, после чего оно взаимодействует с базой данных.

Технология WebLink

WebLink - это средство для построения на основе языка HTML распределенных Интернет-приложений, имеющих доступ к любой удаленной БД Jasmine. К основным его функциям относится обеспечение доступа к БД, отображение результатов запроса, управление сессиями БД.

Ключевым понятием этой технологии является шаблон (template) - макет HTML-страницы, в который включены расширенные теги WebLink, позволяющие объявлять переменные и выполнять операторы ODQL (Object Database Query Language - язык запросов к объектной базе данных), организовывать разветвления и циклы, отображать на Web-странице (рис. 1) значения переменных и свойств объектов.

Рис. 1. Теги WebLink в шаблоне

На системном уровне WebLink представляет собой набор из трех серверных CGI-программ, службы WebLink Server, осуществляющей доступ в базу данных, и семейства классов WebLink в базе данных Jasmine для хранения и обработки шаблонов HTML-страниц. CGI-программы, вызываемые удаленным пользователем из HTML-страницы, выполняют функции открытия сессии WebLink (odb-login.exe), извлечения и выполнения шаблона (odb-get.exe), а также закрытия сессии (odb-logout.exe).

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

Такой подход позволяет обойтись без написания сложных серверных CGI-программ на языке Си или Perl. Сам по себе HTML не является языком программирования, поэтому для людей, знакомых с Web-дизайном, WebLink фантастически расширяет возможности HTML, позволяя совместить дизайн Web-страниц с программированием БД без использования Java-аплетов.

Технология WebLink обладает рядом особенностей:

- Интернет-приложения WebLink основываются на объектной модели данных Jasmine, что предполагает хранение и выполнение методов классов непосредственно на сервере баз данных, а это позволяет сконцентрировать всю обработку данных на сервере и снизить сетевой трафик;

- наряду с данными простых типов при формировании HTML-шаблонов из БД могут извлекаться и мультимедийные данные, такие, как фотоизображения, звук и видео, что увеличивает привлекательность и наглядность Интернет-приложения;

- WebLink располагается на Web-сервере, тогда как сама база данных Jasmine может находиться на удаленном сервере, - это позволяет разрабатывать клиентские Интернет-приложения на основе уже существующих баз данных, в том числе и реляционных, что существенно расширяет возможности уже работающих корпоративных систем;

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

С учетом того, что Jasmine поддерживает старые реляционные базы данных, WebLink можно считать универсальным средством доступа к базам данных через Интернет.

Опыт создания Интернет-приложений

Компания “ЦМД-софт” использовала Jasmine не только для создания Web-сервера (soft.mcd.ru), но и для решения проблем многих заказчиков. Применение технологии WebLink позволяет выполнять такие задачи в сжатые сроки.

Рассмотрим, например, Web-сервер “ЦМД-софт”. Его страницы представляют собой шаблоны, которые хранятся в БД Jasmine и динамически заполняются информацией, хранящейся в виде объектов БД. Эти объекты представляют собой реальные сущности предметной области - названия фирм-производителей, их продуктов, отзывы клиентов, блоки новостей.

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

“ЦМД-софт” создал на базе WebLink и новый продукт - приложение “Интернет-магазин” (soft.mcd.ru/shop/html/ cmd. html, рис. 2). Сама идея Интернет-магазина подразумевает хранение довольно обширной базы данных товаров со множеством атрибутов. У предприятия-продавца возникает естественное желание “показать свой товар лицом”, другими словами, использовать в его описании не только текст, но и изображение изделия, логотип производителя, даже рекламные видеоклипы. Объектно-ориентированная модель Jasmine как нельзя лучше подходит для этих целей, позволяя объединить в описании товара, как в классе БД, разнотипные данные, в том числе и мультимедиа.

Рис. 2. Пример использования Jasmine: “Интернет-магазин” компании “ЦМД-софт”