автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Методы построения инвариантных серверов web-приложений

кандидата технических наук
Егоров, Павел Викторович
город
Москва
год
2003
специальность ВАК РФ
05.13.11
Диссертация по информатике, вычислительной технике и управлению на тему «Методы построения инвариантных серверов web-приложений»

Автореферат диссертации по теме "Методы построения инвариантных серверов web-приложений"

На правах рукописи

| Егоров Павел Викторович

МЕТОДЫ ПОСТРОЕНИЯ ИНВАРИАНТНЫХ СЕРВЕРОВ \¥ЕВ-ПРИЛОЖЕНИЙ

Специальность: 05.13.11 - математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

АВТОРЕФЕРАТ

диссертации на соискание ученой степени кандидата технических наук

Научный руководитель к. ф.-м. н. Грюнталь А. И.

Москва 2003

Работа выполнена в Научно-исследовательском институте системных исследований Российской Академии наук

Научный руководитель - к. ф.-м. н. А. И. Грюнталь

Официальные оппоненты

д.ф.-м.н., с. н. с. Ю. М. Лазутин, к.ф.-м.н. С. В. Поляков

Ведущая организация:

Санкт-Петербургский институт информатики и автоматизации Российской Академии наук

Защита диссертации состоится_2003 года в_часов

на заседании диссертационного совета № Д002.017.02 при Вычислительном Центре им. А. А. Дородницына Российской Академии наук по адресу:

119991 Москва, ГСП-1, ул. Вавилова, д. 40 •

С ^ММфгацией можно ознакомиться в библиотеке ВтклпсЯЫМЬ) Центра Российской Академии наук

И

2003 года

етт, д.ф-«.и.

В. В. Рязанов

/

2©оз-А

SSI 8

1. ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ 1.1. Актуальность работы

Диссертация посвящена проблеме разработки методов и технологии построения серверов web-приложений в • операционной среде Unix, инвариантных к web-серверам и

серверам баз данных, и обеспечивающих взаимодействие 1 клиентских приложений web-броузера с постоянно

t действующими (persistent) неразделяемыми серверными

приложениями на основе http-протокола. Эта задача приобретает особую актуальность в последнее время в связи с •возрастающим распространением операционных систем "класса UNIX", т.е. собственно систем UNIX и UNIX-клонов, и систем типа web-серверов и серверов баз данных на компьютерах в сетевых средах. Соответственно, появляется также широкий класс прикладных задач, требующих эффективного (быстрого и гибкого) создания серверов web-приложений, что и определяет необходимость создания предлагаемых в диссертации технологий. В качестве всего лишь двух примеров приведем программное обеспечение АСУ «Архив» НИИСИ РАН, которое реализовано с использованием предложенных в диссертации средств, и АСУ «Автоматизированная справочная служба 09», которое реализовано с помощью технологии Informix Universal Web Connect (IUWC).

Задача создания методов и технологии построения серверов web-приложений в операционной среде Unix, рассмотренная в работе, характеризуется следующими особенностями.

Под "сервером web-приложений" понимается программное обеспечение промежуточного уровня, обеспечивающее взаимодействие клиентских приложений web-броузера с постоянно действующими (persistent) неразделяемыми серверными приложениями на основе http-протокола. Постоянно действующее неразделяемое серверное

П^ОсГкАЦИО^ЬЬА t

Í БИБЛИОТЕКА :

С.Петербург-., i

os

приложение - это программа, реализующая прикладную логику, которая выполняет запросы только одного и того же клиентского приложения web-броузера, процесс или поток которой выполняется непрерывно в течение сессии.

' Перечисленные web-приложения отличаются

следующими свойствами:

1. Программные модули серверного приложения выполняются на одном аппаратном сервере. j

2. Состав функций web-приложения не изменяется во время исполнения.

3. Масштабирование web-приложения осуществляется за счет увеличения мощности аппаратного сервера.

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

Реализация прикладной части web-приложения в виде постоянно действующего неразделяемого серверного приложения коренным образом отличает технологию серверов web-приложений от таких широко распространенных технологий, как CGI, ISAPI, NSAPI, Java-сервлеты, PHP. Это отличие состоит в том, что в указанных технологиях из-за того, что процесс или поток серверного приложения после каждого запроса завершается, реализуются сложные механизмы управления контекстом сессии и поддержки постоянных соединений с базой данных. Соответственно, технология сервера web-приложений, не имеющая таких сложных механизмов и порожденных ими накладных расходов, оказывается более эффективной по производительности.

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

взаимодействовать с любым web-сервером и сервером баз данных на основе стандартных интерфейсов. Неинвариантные серверы web-приложений зависят от баз данных, например, сервер web-приложений Informix IUWC, и от web-серверов, например, сервер web-приложений Baikonur Web Application Server. Этого недостатка предлагаемая в работе технология

> лишена. На ее основе реализован сервер web-приложений "Мост". С помощью сервера web-приложений "Мост" в НИИСИ РАН создана автоматизированная система управления

► "Архив" с web-интерфейсом. Эксперименты с этой системой подтвердили справедливость принятых при выполнении диссертационной работы посылок и решений.

Отметим также следующие свойства выполненной разработки. Исследование технологий серверов web-приложений с точки зрения реализации в них взаимодействия с шеЬ-серверами и серверами баз данных показало, что в настоящее время существуют проблемы использования серверов web-приложений в открытых системах, вызванные следующими причинами:

1. В некоторых технологиях серверов web-приложений, например, Informix IUWC для хранения глобальных ресурсов используются неинвариантные структуры данных, в частности базы данных с нестандартными интерфейсами.

2. Некоторые технологии серверов шеЬ-приложений, например, FastCGI SA, Baikonur Web Application Server используют нестандартные интерфейсы с web-серверами.

В работах, рассматриваемых в диссертации, предлагаются следующие решения задачи создания сервера шеЬ-приложений, инвариантного к web-серверам и серверам баз данных.

1. Для организации взаимодействия сервера web-приложений с web-сервером предлагается использовать CGI-сценарий.

2. Для организации взаимодействия сервера web-приложений с приложением предлагается использовать различные средства межпроцессного взаимодействия (IPC): гнезда, разделяемую память.

3. Предлагается для хранения служебных данных сервера web-приложений использовать базы данных.

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

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

Приведенные в этих работах подходы и методы достаточны для создания программного обеспечения класса "сервер web-приложений". Однако систематическое изложение методов создания инвариантных серверов web-приложений в перечисленных работах отсутствует.

Сказанное дополнительно подчеркивает актуальность задачи разработки общих методов построения таких серверов web-приложений, которые были бы инвариантны к серверам баз данных и web-серверам и обеспечивали взаимодействие клиентских приложений web-броузера с постоянно действующими (persistent) неразделяемыми серверными приложениями на основе http-протокола.

1.2. Цель работы

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

действующими (persistent) неразделяемыми серверными приложениями на основе http-протокола.

1.3. Научная новизна

Научная новизна диссертации состоит в том, что в ней предложен новый обобщающий подход к решению актуальной задачи создания продуктов класса "сервер web-приложений" в различных программных средах на базе UNIX. Предложенный подход обеспечивает единообразную реализацию свойств инвариантности к web-серверам и серверам баз данных, и взаимодействия клиентских приложений web-броузера с постоянно действующими (persistent) неразделяемыми Серверными приложениями на основе http-протокола.

В диссертации получены теоретические результаты, среди которых основными являются следующие:

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

2. Разработана и обоснована архитектура сервера web-приложений инвариантного к web-серверу и серверу баз данных.

1.4. Практическая ценность

Практическая значимость предложенного подхода создания продуктов класса "сервер web-приложений" состоит в том, что серверы web-приложений, реализующие методы этого подхода, позволяют создавать на их основе web-приложения, в которых клиентское и серверное приложения взаимодействуют на основе http-протокола и серверное приложение является постоянно действующим и неразделяемым, обладающие следующими свойствами открытых систем:

I. Расширяемость. Инвариантность сервера web-приложений к web-серверам и серверам баз данных за счет стандартных интерфейсов обеспечивает возможность добавления новых

функций в \уеЬ-приложение, или изменение некоторых уже имеющихся при неизменных остальных функциональных частях.

2. Интероперабельность. Использование стандартных интерфейсов в инвариантном сервере \уеЬ-приложений дает способность \уеЬ-приложению взаимодействовать с другими открытыми информационными системами.

1.5. Методы исследования

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

1.6. Основные результаты, выносимые на защиту

На защиту выносятся следующие теоретические и практические результаты по общим схемам построения продуктов класса "сервер и^еЬ-приложений", инвариантных к \уеЬ-серверу и серверу баз данных и обеспечивающих взаимодействие постоянно действующего неразделяемого серверного приложения с клиентским приложением на основе Ьйр-протокола:

1. Обоснование и разработка методов создания серверов \veb-приложений, инвариантных к \veb-cepBepy и серверу баз данных и обеспечивающих взаимодействие постоянно действующего неразделяемого серверного приложения с клиентским приложением \уеЬ-броузера на основе ЬИр-протокола.

2. Обоснование и разработка архитектуры серверов \veb-приложений, инвариантных к \veb-cepBepy и серверу баз данных и обеспечивающих взаимодействие постоянно действующего неразделяемого серверного приложения с клиентским приложением \veb-6poy3epa на основе Ьйр-протокола.

1.7. Структура и объем диссертации

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

1.8. Апробация

Основные результаты диссертации докладывались на семинарах в Научно-исследовательском институте системных исследований РАН, в Институте математического моделирования РАН, в Санкт-Петербургском институте информатики и автоматизации РАН, в Вычислительном центре РАН, в Институте прикладной математики им. М.В.Келдыша РАН и на II Всероссийской научно-методической конференции "Интернет и современное общество" в Санкт-Петербурге 29 ноября - 3 декабря 1999 года.

1.9. Публикации

По теме диссертации опубликовано 5 работ.

2. КРАТКОЕ СОДЕРЖАНИЕ РАБОТЫ

Во введении дана общая характеристика диссертации, куда входят описания актуальности работы, цели работы, научной новизны, практической ценности, структуры диссертации.

Глава 1. Анализ проблематики современных технологий для создания №еЬ-приложений.

В первой главе анализируются технологии, применяемые для построения \уеЬ-приложений, и обсуждаются проблемы, которые возникают при использовании этих технологий.

Раздел 1.1. Определение критериев оценки web-технологий.

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

При обзоре web-технологий следует учитывать следующие критерии.

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

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

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

Конверсационная транзакция - это транзакция, в которой последовательно выполняются действия с базой данных и интерфейсом пользователя.

Второй критерий - инвариантность технологии к системам баз данных и web-серверам.

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

1. интерфейсы web- сервера;

2. препроцессоры;

3. гибридные интерфейсы web-сервера;

4. web-сервисы;

5. серверы web-приложений.

Раздел 1.2. Архитектура web-приложения на основе интерфейсов web-сервера и препроцессоров.

рис. 1 Архитектура н>еЬ-приложения на основе интерфейсов \veb-cepeepa и препроцессоров

ШеЬ-приложение на основе интерфейсов \veb-cepBepa и препроцессоров выполняется следующим образом. Клиентское приложение передает запрос луеЬ-серверу, который запускает серверное приложение. Серверное приложение выполняет запрос и завершается. Клиентское приложение - это

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

Раздел 1.3. Интерфейсы web-cepeepa.

Интерфейсы web-cepeepa - это совокупность средств и правил, обеспечивающих взаимодействие программ с web-сервером. *

В настоящее время наиболее употребительны следующие интерфейсы web-cepeepa: CGI, NSAPI, ISAP1, Java-сервлеты. {

Раздел 1.4. Препроцессоры.

Препроцессоры - это программные средства, которые загружают html-документ со встроенными директивами препроцессора, выполняют эти директивы, обработанные директивы заменяют получившимися html-тегами, а преобразованный таким образом html-документ передают web-серверу.

Наиболее известные технологии препроцессоров - это PHP, серверный JavaScript, Zope.

Раздел 1.5. Гибридные web-интерфейсы.

Развитием технологий web-интерфейсов стали технологии, называемые в некоторых источниках гибридными интерфейсами web-cepeepa. В технологии гибридного web-интерфейса для связи с web-сервером используется "легкий" процесс или поток. Прикладная логика выполняется постоянно действующим разделяемым "тяжелым" процессом или потоком. Благодаря постоянно действующему разделяемому *

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

уменьшается время ответа серверного приложения на запросы клиентского приложения.

рис. 2 Архитектура web-приложения на основе технологии гибридного web-интерфейса

Примерами технологий гибридного web-интерфейса являются технологии FastCGI и PCGI.

Раздел 1.6. Web-сервисы.

Web-сервис - это набор логически связанных функций, которые программно вызываются через интернет и которые базируются на трех основных web-стандартах:

1. Simple Object Access Protocol (SOAP) - протокол для посылки сообщений по протоколу НТТР и другим интернет протоколам;

2. Web Services Description Language (WSDL) - язые для описания программных интерфейсов web-сервисов;

3. Uni versai Description, Discovery and Intégration (UDDI) -стандарт для индексации web-сервисов.

Одним из примеров технологии web-сервисов является технология Apache SOAP.

Раздел 1.7. Архитектура №еЬ-приложения на основе сервера луеЬ-приложений.

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

В дальнейшем, при обсуждении вопроса серверов \veb-приложений, будет использоваться принятое в диссертации определение сервера \уеЬ-приложений, и под приложением будет пониматься постоянно действующее неразделяемое серверное приложение.

На рисунке показана архитектура \уеЬ-приложения на основе сервера \уеЬ-приложений.

рис. 3 Архитектура пеЬ-приложения на основе сервера \veb-

приложений

1 15

Web-приложение на основе сервера web-приложений функционирует следующим образом. Клиентское приложение посылает запрос web-серверу, последний через стандартный интерфейс или собственный прикладной программный интерфейс передает его серверу web-приложений. Сервер web-приложений передает запрос постоянно действующему

» неразделяемому приложению, которое выполняет его. После

обслуживания запроса, приложение продолжает выполнение, ожидая следующий запрос.

Раздел 1.8. Обзор программных продуктов класса "сервер web-приложений".

Наиболее известными реализациями серверов web-приложений, обеспечивающих взаимодействие клиентских приложений web-броузера с постоянно действующими (persistent) неразделяемыми серверными приложениями на основе http-протокола, являются технологии FastCGI_SA, Informix Web Integration Option, Baikonur Web Application Server.

Раздел 1.9. Определение требований к инвариантному серверу web-приложений.

Сервер web-приложений должен удовлетворять следующим требованиям.

1. Сервер web-приложений для каждой сессии должен запускать постоянно действующие неразделяемые приложения.

2. Сервер web-приложений должен обеспечивать поддержку сессий, куда входит решение следующих

1 подзадач:

' - идентификация запросов клиентских приложений;

- обеспечение афинности сессий.

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

4. Сервер web-приложений должен распознавать ситуации нештатного завершения клиентского и серверного приложений.

5. В случае нештатного завершения работы клиентского приложения сервер web-приложений должен завершить выполнение серверного приложения и закрыть сессию.

6. В случае нештатного окончания работы серверного приложения сервер web-приложений должен завершить выполнение клиентского приложения и закрыть сессию.

Глава 2. Методы построения инвариантного сервера web-приложений

Эта глава состоит из следующих разделов и подразделов.

Раздел 2.1. Использование в сервере web-приложений стандартизованного интерфейса с web-сервером.

В данном разделе проанализированы web-технологии FastCGI, IUWC, KIVA Enterprise Server применительно к проблеме использования в сервере web-приложений стандартизованного интерфейса с web-сервером и сделаны следующие выводы:

1. Для обеспечения инвариантности сервера web-приложений к web-cepeepy в сервере web-приложений должен использоваться стандартизованный интерфейс.

2. Стандартным интерфейсом с web-сервером является CGI-интерфейс.

3. Для реализации CGl-интерфейса в сервере web-приложений должен использоваться CGl-сценарий.

Раздел 2.2. Методы обмена данными между сервером web-пpилoжeний и приложением.

В данном разделе проанализированы и^еЬ-технологии РаэЮС!, И^С, К1УА применительно к проблеме организации обмена данными между сервером \уеЬ-приложений и г приложением и сделаны следующие выводы.

Во-первых, в сервере \уеЬ-приложений должен быть ^ программный ресурс, который существует в течение всей

сессии и обеспечивает передачу данных между программами сервера \уеЬ-приложений и приложением.

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

Сервер \уеЬ-приложений для каждой сессии создает канал. Взаимодействие серверного приложения с каналом осуществляется с помощью прикладной библиотеки сервера \уеЬ-приложений. \Veb-cepBep при поступлении запроса от клиентского приложения запускает СИ-сценарий сервера приложений. СС1-сценарий передает запрос каналу, который записывает данные запроса в адресное пространство серверного приложения. Затем серверное приложение передает результаты выполнения запроса каналу, который записывает их в адресное пространство СС1-сценария. После того, как Св1-сценарий получает ответ от приложения, он передает его \veb-серверу и завершает выполнение.

Раздел 2.3. Хранение служебных данных сервера \veb-приложений.

*

Информация о сессиях сервера шеЬ-приложений должна поддерживаться следующим образов:

V

1. В течение жизненного цикла сессии сервер \veb-приложений должен хранить метаинформацию о сессии в инвариантных структурах данных.

I I

2. Для обеспечения инвариантности сервера web-приложений к структурам служебных данных, в частности к базам данных, в сервере web-приложений должны использоваться стандартизованные интерфейсы этих структур данных.

Инвариантные структуры данных - это структуры данных, , доступ к которым осуществляется с помощью

стандартизованных интерфейсов. В качестве таких структур i

данных могу выступать базы данных. J

Раздел 2.4. Освобождение ресурсов в сервере web-приложений.

В данном разделе проанализированы web-технологии 1

Baikonur Web Application Server и PHP и сделаны следующие выводы о том, как следует выполнять освобождение ресурсов в сервере web-приложений.

1. В сервере web-приложений средства освобождения ! ресурсов должны инициализироваться по истечении заданного промежутка времени. 1

2. Освобождение ресурсов в сервере web-приложений должно выполняться резидентной программой, которая j через определенный интервал времени удаляет те

сессии, которые были нештатно завершены клиентским или серверным приложениями.

3. Сервер web-приложений должен распознавать две ситуации нештатного завершения сессии. Одна ситуация - это завершение сессии на стороне клиентского приложения. Другая ситуация - это ' нештатное завершение сессии на стороне серверного приложения. j

4. Для определения нештатного завершения сессии на стороне клиентского приложения должен анализироваться интервал времени, прошедший с момента последнего обращения клиентского

!

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

5. Для определения нештатного завершения сессии на стороне серверного приложения должен анализироваться интервал времени, прошедший с момента передачи запроса сервером \уеЬ-приложений приложению. Если серверное приложение не ответило в течение заданного времени на запрос сервера \veb-приложений, то следует считать, что оно нештатно завершило выполнение.

Раздел 2.5. Стандартизованный прикладной программный интерфейс сервера >уеЬ-приложений.

В данном разделе проанализированы \уеЬ-технологии РавМ^Ю! и ^уа-сервлеты и сделан вывод, что взаимодействие приложения с сервером луеЬ-приложений должно осуществляться с помощью стандартизованного прикладного программного интерфейса.

Раздел 2.6. Выводы.

В данном разделе формулируются основные методы создания инвариантного сервера шеЬ-приложений:

1. Взаимодействие сервера \уеЬ-приложений с \veb-сервером должно осуществляться на основе стандартизованного интерфейса.

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

3. В течение жизненного цикла сессии сервер \veb-приложений должен хранить метаинформацию о сессии в инвариантных структурах данных.

4. В сервере \уеЬ-приложений должны быть средства освобождения ресурсов, инициализирующиеся по истечении задаваемого промежутка времени.

5. Сервер шеЬ-приложений должен реализовывать стандартизованный прикладной программный интерфейс.

Глава 3. Архитектура инвариантного сервера ууеЬ-приложений.

Эта глава состоит из следующих разделов.

Раздел 3.1. Определение коопераций объектов инвариантного сервера web-пpилoжeний и их назначения.

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

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

В диссертации была выполнена декомпозиция инвариантного сервера \уеЬ-приложений на две кооперации классов: "Передача данных" и "Освобождение ресурсов".

Кооперация "Передача данных" обеспечивает обмен данными между постоянно действующим серверным приложением и клиентским приложением на основе Ьпр-протокола. Кооперация "Освобождение ресурсов" обеспечивает функционирование кооперации "Передача данных" определяет нештатное завершение клиентского и серверного приложений, выполняет освобождение ресурсов.

Раздел 3.2. Определение классов кооперации "Передача данных" инвариантного сервера чуеЬ-приложений и отношений между классами.

Класс - это описание множества объектов, обладающих общими атрибутами, операциями, отношениями и семантикой,

п а отношение - это семантическая связь между элементами

классов.

^ В инвариантном сервере \уеЬ-приложений должны

использоваться следующие классы:

1. Класс "Конфигурация" обозначает программный ресурс, который хранит данные конфигурации инвариантного сервера шеЬ-приложений.

2. Класс "Таблица сессий" обозначает программный ресурс, который хранит метаданные сессий сервера \уеЬ-приложений.

3. Класс "Канал" обозначает программный ресурс, который существует в течение всей сессии и выполняет функции приема и передачи данных.

4. Класс "Дескриптор сессии" обозначает программный ресурс, в котором хранятся метаданные отдельной сессии.

, 5. Класс "Идентификатор сессии" обозначает

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

» 6. Класс "\УеЬ-коммутатор" обозначает программу,

реализующую интерфейс с \уеЬ-сервером, осуществляющую запуск серверного приложения и создание идентификатора сессии.

7. Класс "Web-драйвер" обозначает программу, реализующую интерфейс с web-сервером, осуществляющую разбор http-пакетов клиентских приложений, определение канала сессии и активизацию передачи данных каналом серверному приложению.

8. Класс "Серверное приложение" обозначает постоянно действующую неразделяемую программу, выполняющую прикладную логику.

9. Класс-интерфейс "Библиотека прикладных функций" обозначает библиотеку функций, которая используется в приложении для взаимодействия с сервером приложений.

Раздел 3.3. Обеспечение поддержки сессий и передачи данных с помощью кооперации объектов "Передача данных" инвариантного сервера web-приложений.

Жизненный цикл сессии делится на три этапа: инициализация сессии, передача данных и завершение сессии. Ниже показано, как кооперация "Передача данных" обеспечивает поддержку жизненного цикла сессии.

Инициализация сессии кооперацией "Передача данных" выполняется следующим образом.

1. Web-сервер создает объект Web-коммутатор". Web-коммутатор создает объекты-прототипы ":Идентификатор сессии". ":Серверное приложение" и завершает выполнение.

2. Серверное приложение читает данные идентификатора сессии и затем открывает канал.

Передача данных кооперацией "Передача данных" выполняется следующим образом.

1. Web-cepeep создает объект ":Web-jpafiBep" и по протоколу CGI передает ему http-пакет клиентского

приложения. Web-драйвер выполняет разбор http-пакета и извлекает из него номер дескриптора сессии. Затем web-драйвер открывает канал.

2. Web-драйвер записывает данные http-пакета в канал.

3. Серверное приложение переходит к следующему циклу выполнения запроса клиентского приложения.

4. Серверное приложение читает данные web-драйвера из канала.

5. Серверное приложение выполняет клиентский запрос и записывает полученные данные в канал.

6. Web-драйвер извлекает из канала данные серверного приложения и по протоколу CGI передает их web-серверу. После этого web-драйвер завершает выполнение.

Завершение сессии кооперацией "Передача данных" выполняется следующим образом.

1. Web-cepeep создает объект ":Web-коммутатор". Web-коммутатор удаляет объект-прототип ":Серверное приложение" и завершает выполнение.

2. Серверное приложение завершает выполнение.

Раздел 3.4. Определение классов кооперации "Освобождение ресурсов" инвариантного сервера web-приложений и отношений между классами.

Кооперация "Освобождение ресурсов" состоит из следующих классов:

1. Класс "Таймер" обозначает программный ресурс, с помощью которого генерируется событие истечения заданного промежутка времени.

2. Класс "Менеджер сессий" обозначает резидентную программу, которая выполняет операцию освобождения ресурсов.

Раздел 3.5. Определение нештатного завершения выполнения клиентского и серверного приложений с помощью кооперации объектов "Освобождение ресурсов" инвариантного сервера web-пpилoжeний

В данном разделе разработаны алгоритмы определения нештатного завершения выполнения клиентского и серверного приложений.

Нештатное завершение сессии на стороне клиентского приложения определяется с помощью следующего алгоритма.

1. ХУеЬ-драйвер при получении запроса от клиентского приложения в поле "Временная метка" дескриптора сессии записывается время, когда было обращение клиентского приложения к серверу шеЬ-приложений.

2. Менеджер сессий вычисляет интервал времени как разницу текущего времени и времени, которое записано во временной метке. Если этот интервал времени превышает заданное значение, менеджер сессий удаляет дескриптор сессий и завершает выполнение серверного и клиентского приложения.

Нештатное завершение сессии на стороне серверного приложения определяется с помощью следующего алгоритма.

1. \УеЬ-драйвер создает таймер. Если серверное приложение в течение заданного интервала времени не ответило на запрос, активизируется таймер, который записывает заданное значение в поле "Признак не активности сессии" и завершают работу шеЬ-драйвера.

2. Менеджер сессий считывает значение поля "Признак не активности сессии" дескриптора сессии. Если это значение указывает на то, что необходимо завершить

сессию, менеджер сессий удаляет дескриптор сессий и завершает выполнение серверного приложения.

Глава 4. Реализация сервера \¥еЬ-приложений "Мост".

Эта глава состоит из следующих разделов.

Раздел 4.1. Архитектура сервера >уеЬ-приложений "Мост".

В этом разделе описывается программный состав сервера \уеЬ-приложений "Мост". Показано, как с помощью сервера шеЬ-приложений "Мост" осуществляется выполнение запросов клиентских приложений.

Раздел 4.2. Реализация синхронизации передачи данных через канал в сервере 'П'еЬ-приложений "Мост".

В данном разделе рассматривается вопрос синхронизации передачи данных через канал программами сервера \veb-приложений "Мост" и функциями прикладного интерфейса сервера \уеЬ-приложений.

Раздел 4.3. Реализация передачи данных через канал в сервере \уеЬ-приложений "Мост".

В данном разделе описывается реализация клиентских и серверных функции сервера \уеЬ-приложений "Мост", применяемых \уеЬ-драйвером, \уеЬ-коммутатором и серверным приложением для передачи данных через канал.

Раздел 4.4. Реализация запуска и остановки сервера ууеЬ-приложений "Мост".

В этом разделе описывается реализация операций запуска и остановки сервера приложений "Мост".

Раздел 4.5. Реализация освобождения ресурсов в сервере web-приложений "Мост"

Этот раздел содержит описание реализации освобождения ресурсов в сервере web-приложений "Мост".

Общее содержание разделов этой главы следующее.

При реализации сервера web-приложений "Мост" использовались следующие программные решения:

1. Приложение запускается как процесс операционной системы.

2. Функции запуска приложения и инициализации передачи каналом данных web-cepeepa приложению реализованы в двух CGI-сценариях: web-коммутаторе и web-драйвере.

3. Таблица сессий и каналы реализованы на основе сегмента разделяемой памяти.

4. Таблица сессий и каналы создаются менеджером сессий.

5. Менеджер сессий выполняется как резидентная программа.

6. Запуск менеджера сессий осуществляется либо из командной строки UNIX, либо из web-броузера с помощью программы web-администратор.

7. Web-администратор реализован в виде CGI-сценария и выполняет функции запуска и остановки менеджера сессии, чтения данных таблицы сессий.

8. Идентификация запросов web-броузеров осуществляется web-драйвером с помощью идентификатора сессии.

9. Идентификатор сессии создается \уеЬ-коммутатором и передается шеЬ-броузеру в виде тега Ь1хп1-документа.

10. Количество одновременно открытых сессий в сервере \уеЬ-приложений "Мост" ограничено.

11. Освобождение ресурсов сессии инициируется \veb-драйвером или шеЬ-коммутатором, если приложение не ответило на запрос в течение заданного промежутка времени (таймаута).

12. Освобождение ресурсов осуществляется менеджером сессий.

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

14. Максимальное число сессий и значение таймаута задаются в конфигурационном файле сервера \veb-приложений "Мост".

Прикладной программный интерфейс сервера \veb-приложений "Мост" включает следующие функции:

- ожидания запроса от сервера \уеЬ-приложений;

- чтения запроса сервера \уеЬ-приложений;

- функции разбора запроса и создания списка параметров запроса и их значений.

- форматный вывод данных;

Размер программного кода сервер шеЬ-приложений "Мост" составляет около 2339 строк кода на Си.

Глава 5. Автоматизированная система управления "Архив" на основе сервера web-приложений "Мост".

На основе сервера web-приложений "Мост" разработана автоматизированная система управления "Архив" с web-интерфейсом. Система функционирует под управлением операционной системы "Solaris", хранение .данных архива .

обеспечивает сервер баз данных "Informix". В системе реализовано около 169 операций, реализующих работу с документами в соответствии со стандартом ЕСКД/ЕСПД. S

Размер программного кода АСУ "АРХИВ" составляет около 6185 строк на Си.

Глава "Основные результаты работы" содержит основные результаты полученные в диссертации. 1

В диссертации получены следующие результаты:

I. Разработаны и обоснованы методы создания инвариантного сервера web-приложений.

II. Разработана и обоснована типовая архитектура

инвариантных серверов web-приложений.

III. На основе предложенных набора понятий и методов создан сервер web-приложений "Мост".

IV. С помощью сервера web-приложений "Мост" в НИИСИ РАН реализована АСУ "Архив" с web-интерфейсом.

Публикации:

1. Грингауз Т. К., Егоров П. В. Технология разработки интерактивных интерфейсов к реляционным базам данных для среды World Wide Web: М.: НИИСИ РАН, Вопросы кибернетики, 1999 г.

2. Грингауз Т. К., Егоров П. В. Технология соединения с middelware-приложением с использованием структур разделяемой памяти на основе программного средства BRIDGE: М.: НИИСИ РАН, Вопросы кибернетики, 1999 г.

3. Асонов А. А., Григорьева Я.Д., Грингауз Т. К., Егоров П. В. Опыт публикации баз данных в сетях INTRANET НИИСИ РАН и УИРиС МГТС. Санкт-Петербургский государственный университет. Интернет и современное общество. II Всероссийская научно-методическая конференция, Санкт-Петербург 29 ноября - 3 декабря 1999.

4. Егоров П. В. Сервер приложений "Мост": М.: ИЭиА РАН, Препринт, 2001.

5. Егоров П. В. Применение программ-расширений web-сервера для доступа к базам данных. Информационная безопасность. Инструментальные средства программирования. Базы данных. Сборник статей: Москва, НИИСИ РАН, 2001.

П. В. Егоров

ч

I

Егоров Павел Викторович Методы построения инвариантных серверов WEB-приложений

Издательская лицензия ЛР N° 021287 от 12 мая 1998 г. Подписано в печать 19.03.2003 Формат бумаги 60x84 1/16 Уч.-изд.л. 1 Усл.-печ.л. 1,75 Тираж 100 экз. Заказ 21

Отпечатано на ротапринтах в ВЦ им. A.A. Дородницына РАН 117333, Москва, ул. Вавилова, 40

V

I

Ij

2.0СЗ-4 ¡ 5S"I2

«"5518

i (

Оглавление автор диссертации — кандидата технических наук Егоров, Павел Викторович

ВВЕДЕНИЕ.

1.1. Актуальность работы.

1.2. Цель работы.

1.3. Научная новизна.

1.4. Практическая ценность.

1.5. Методы исследования.

1.6. Основные результаты, выносимые на защиту.

1.7. Структура и объем диссертации.

1.8. Апробация.

1.9. Публикации.

1. Анализ проблематики современных технологий для создания web-приложений.

1.1. Определение критериев оценки web-технологий.

1.2. Архитектура web-приложения на основе интерфейсов web-сервера и препроцессоров.

1.3. Интерфейсы web-сервера.

1.4. Препроцессоры.

1.5. Гибридные web-интерфейсы.

1.6. Web-сервисы.

1.7. Архитектура web-приложения на основе сервера web-приложений.

1.8. Обзор программных продуктов класса "сервер web-приложений".

1.9. Определение требований к инвариантному серверу web-приложений.

2. Методы построения инвариантного сервера web-приложений.

2.1. Использование в сервере web-приложений стандартизованного интерфейса с web-сервером.

2.2. Методы обмена данными между сервером web-приложений и приложением.

2.3. Хранение служебных данных сервера web-приложений

2.4. Освобождение ресурсов в сервере web-приложений.

2.5. Стандартизованный прикладной программный интерфейс сервера web-приложений.

2.6. Выводы.

3. Архитектура инвариантного сервера web-приложений.

3.1. Определение коопераций объектов инвариантного сервера web-приложений и их назначения.

3.2. Определение классов кооперации "Передача данных" инвариантного сервера web-приложений и отношений между классами.

3.3. Обеспечение поддержки сессий и передачи данных с помощью кооперации объектов "Передача данных" инвариантного сервера web-приложений.

3.4. Определение классов кооперации "Освобождение ресурсов" инвариантного сервера web-приложений и отношений между классами.

3.5. Определение нештатного завершения выполнения клиентского и серверного приложений с помощью кооперации объектов "Освобождение ресурсов" инвариантного сервера web-приложсний.

4. Реализация сервера web-приложений "Мост".

4.1. Архитектура сервера web-приложений "Мост".

4.2. Реализация синхронизации передачи данных через канал в сервере web-приложений "Мост".

4.3. Реализация передачи данных через канал в сервере web-приложений "Мост".

4.4. Реализация запуска и остановки сервера web-приложений "Мост".

4.5. Реализация освобождения ресурсов в сервере web-приложений "Мост".

5. Автоматизированная система управления "АРХИВ" на основе сервера web-приложений "Мост".

ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ.

СПИСОК ИЛЛЮСТРАЦИЙ.

Введение 2003 год, диссертация по информатике, вычислительной технике и управлению, Егоров, Павел Викторович

1.1. Актуальность работы

Диссертация посвящена проблеме разработки методов и технологии построения серверов web-приложений в операционной среде Unix, инвариантных к web-серверам и серверам баз данных, и обеспечивающих взаимодействие клиентских приложений web-броузера с постоянно действующими (persistent) неразделяемыми серверными приложениями на основе http-протокола. Эта задача приобретает особую актуальность в последнее время в связи с возрастающим распространением систем "класса UNIX", т.е. собственно систем UNIX и UNIX-клонов, и систем типа web-серверов и серверов баз данных на компьютерах в сетевых средах. Соответственно, появляется также широкий класс прикладных задач, требующих эффективного (быстрого и гибкого) создания серверов web-приложений, что и определяет необходимость создания предлагаемых в диссертации технологий. В качестве всего лишь двух примеров приведем программное обеспечение АСУ "Архив" НИИСИ РАН, которое реализовано с помощью оригинального сервера web-приложений "Мост", и АСУ "Автоматизированная справочная служба 09", которое реализовано с помощью технологии Informix Universal Web Connect (UWC)[94],

Задача создания методов и технологии построения серверов web-приложений в операционной среде Unix, рассмотренная в работе, характеризуется следующими особенностями.

Под "сервером web-приложений" понимается программное обеспечение промежуточного уровня, обеспечивающее взаимодействие клиентских приложений web-броузера с постоянно действующими (persistent) неразделяемыми серверными приложениями на основе http-протокола. Постоянно действующее неразделяемое серверное приложение - это программа, реализующая прикладную логику, которая выполняет запросы только одного и того же клиентского приложения web-броузера, процесс или поток которой выполняется непрерывно в течение сессии.

Перечисленные web-приложения отличаются следующими свойствами:

1. Программные модули серверного приложения выполняются на одном аппаратном сервере.

2. Состав функций web-приложения не изменяется во время исполнения.

3. Масштабирование web-приложения осуществляется за счет увеличения мощности аппаратного сервера.

Для таких web-приложений использование корпоративного сервера приложений, обеспечивающего безопасность, управление транзакциям, масштабируемость, высокую доступность, является избыточным [93], а, следовательно, не всегда эффективным. Для них лучше подходят традиционные двух или трехуровневые системы, например, сервлеты и JSP [93].

Реализация прикладной части web-приложения в виде постоянно действующего неразделяемого серверного приложения коренным образом отличает технологию серверов web-приложений от таких широко распространенных технологий, как CGI, ISAPI, NSAPI, Java-сервлеты, РНР. Это отличие состоит в том, что в указанных технологиях из-за того, что процесс или поток серверного приложения после каждого запроса завершается, реализуются сложные механизмы управления контекстом сессии и поддержки постоянных соединений с базой данных. Соответственно, технология сервера web-приложений, не имеющая таких сложных механизмов и порожденных ими накладных расходов, оказывается более эффективной по производительности.

Инвариантность к web-серверам и серверам баз данных означает способность сервера web-приложений взаимодействовать с любым web-сервером и сервером баз данных на основе стандартных интерфейсов. Неинвариантные серверы web-приложений зависят от баз данных, как например, сервер web-приложений UWC, и от web-серверов, как например сервер web-приложений Baikonur Web Application Server. Этого недостатка предлагаемая в работе технология лишена. На ее основе реализован сервер web-приложений "Мост". С помощью сервера web-приложений "Мост" в НИИСИ РАН создана автоматизированная система управления "Архив" с web-интерфейсом. Эксперименты с этой системой подтвердили справедливость принятых при выполнении диссертационной работы посылок и решений.

Отметим также следующие свойства выполненной разработки. Исследование технологий серверов web-приложений с точки зрения реализации в них взаимодействия с web-серверами и серверами баз данных показало, что в настоящее время существуют проблемы использования серверов web-приложений в открытых системах, вызванные следующими причинами:

1. В некоторых технологиях серверов web-приложений, например, UWC для хранения глобальных ресурсов используются неинвариантные структуры данных, в частности базы данных с нестандартными интерфейсами.

2. Некоторые технологии серверов web-приложений, например, FastCGIjSA [19], Baikonur Web Application Server [51-52,103104] используют нестандартные интерфейсы с web-серверами.

В работах [11-14, 17-21, 36, 38, 47-52, 59-60, 85-87] предлагаются следующие решения задачи создания сервера web-приложений, инвариантного к web-серверам и серверам баз данных.

1. Для организации взаимодействия сервера web-приложений с web-сервером предлагается использовать CGI-сценарий [14, 17-21,37-38,41,59, 60, 85-87].

2. Для организации взаимодействия сервера web-приложений с приложением предлагается использовать различные средства межпроцессного взаимодействия (IPC): гнезда, разделяемую память [14, 41, 59-60, 17-21, 37-38].

3. Предлагается для хранения служебных данных сервера web-приложений использовать базы данных [12-14, 36, 41, 47-50, 59-60].

4. Предлагается определять нештатное завершение серверного и клиентских приложений и выполнять освобождение ресурсов по истечении заданного интервала времени [19, 35, 5152, 98].

5. Предлагается использовать стандартизированную библиотеку прикладных функций для обеспечения взаимодействия приложения с сервером web-приложений [18, 28, 49-50].

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

Сказанное дополнительно подчеркивает актуальность задачи разработки общих методов построения серверов web-приложений, которые были бы инвариантны к серверам баз данных и web-серверам и обеспечивали взаимодействие клиентских приложений web-броузера с постоянно действующими (persistent) неразделяемыми серверными приложениями на основе http-протокола.

1.2. Цель работы

Цель диссертационной работы состоит в разработке общих методов и технологии построения серверов web-приложений, которые были бы инвариантны к серверам баз данных и web-серверам и обеспечивали взаимодействие клиентских приложений web-броузера с постоянно действующими (persistent) неразделяемыми серверными приложениями на основе http-протокола.

1.3. Научная новизна

Научная новизна диссертации состоит в том, что в ней предложен новый обобщающий подход к решению актуальной задачи создания продуктов класса "сервер web-приложений" в различных программных средах на базе UNIX. Предложенный подход обеспечивает единообразную реализацию свойств инвариантности к web-серверам и серверам баз данных, и взаимодействия клиентских приложений web-броузера с постоянно действующими (persistent) неразделяемыми серверными приложениями на основе http-протокола.

В диссертации получены теоретические результаты, среди которых основными являются следующие:

1. Разработаны и обоснованы методы создания сервера web-приложений инвариантного к web-cepeepy и серверу баз данных.

2. Разработана и обоснована архитектура сервера web-приложений инвариантного к web-cepBepy и серверу баз данных.

Заключение диссертация на тему "Методы построения инвариантных серверов web-приложений"

ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ

В диссертации получены следующие результаты:

I. Разработаны и обоснованы методы построения инвариантного сервера web-приложений.

II. Разработана и обоснована типовая архитектура инвариантных серверов web-приложений.

III. На основе предложенных набора понятий и методов создан сервер web-приложений "Мост".

IV. С помощью сервера web-приложений "Мост" в НИИСИ РАН реализована АСУ "Архив" с web-интерфейсом.

Библиография Егоров, Павел Викторович, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

1. Вейтман В. Программирование для Web.: Уч. пос.: - М.: Издательский дом "Вильяме", 2000. - 368 с.

2. Стивен Спейнаур и Валери Куэрсиа. Справочник Web мастера: К.: Издательская группа BHV, 1997. - 368 с.

3. Ратшиллер Т., Геркен Т. РНР4: разработка Web-приложений. Библиотека программиста. СПб.: Питер, 2001. - 384 с.

4. М. Фаулер, К. Скотт. UML в кратком изложении. Применение стандартного языка объектного моделирования: Пер. с англ. -М.:Мир, 1999. 191 е., ил.

5. Буч Г., Рамбо Д., Джекобсон А. Язык UML. Руководство пользователя: Пер. с англ. М.: ДМК, 2000. - 432 е., ил. ("серия для программистов").

6. Ладыженский. Технология "клиент-сервер" и мониторы транзакций: Открытые Системы • # 3/94.

7. Джо Хьюз. Толковый словарь Intranet: Lan Magazine / Русское издание, Июнь 1997, том 3, номер 4.

8. Джеффри Д. Шэнк. Руководство Novell. Технология клиент/сервер и ее приложения: М.: Лори, 1995 г.

9. Г.Г. Барон. Параллельные архитектуры серверов баз данных: СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ #02/95

10. Г. М. Ладыженский. Tuxedo System: разработка систем клиент-сервер часть 1: СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ #01/961 l.Kuslich J. J. Netscape Application Server. A Server Side JavaScript Developers Perspective: www. http://Developer.netscape.com

11. Informix Web Integration Option for Informix Dynamic Server: www: http://www.informix.com

12. J. M. Ivler with Kamran Husian. CGI developer's resource: Prentice Hall PTR, 1997.

13. T. Berners-Lee R. Fielding, H. Frystyk. Hypertext Transfer Protocol HTTP/1.0: Network Working Group Request for Comments: 1945 Category: Informational, May 1996.

14. S. Dybiec, P. Rousselle. Web Extensions and Applications Using FastCGI, a high performance, portable web API. Dr: Dobb's Journal, June 1997.

15. FastCGI: A High Performance Web Server Interface: Technical White Paper, April 1996. http:// www.fastcgi.com/ devkit/ doc/ fastcgi-whitepaper/ fastcgi.htm.

16. Tim Armbruster. FastCGISA. www.tfarmbruster.com/ docu-ment.htm, October 7, 2000.

17. Module modfastcgi. www.fastcgi.com, 1996.

18. Stanley Gambarin. The FastCGI FAQ. www.fastcgi.com, October1996.

19. TOMCOH JIaypa, Веллинг Люк. Разработка Web-приложений на PHP и MySQL: Пер. с англ. К.: Издательство "ДиаСофт", 2002.

20. Курт Ланг, Джефф Чоу. Публикация баз данных в Интернете: СПб.: Символ Плюс, 1998.

21. Джейсон Мейнджер. JavaScript: основы программирования: Пер. С англ. К.: Издательская группа BHV, 1997, - 512 с.

22. М. И. Беляков, Ю. И. Рабовер, А. Л. Фридман. Мобильная операционная система: М.: «РАДИО И СВЯЗЬ», 1991.

23. Теренс Чан. Системное программирование на С++ для UNIX: Пер. с англ. К.:Издательская группа BHV, 1999. - 592 с.

24. Операционная система UNIX. СПб.: BHV - Санкт-Петербург,1997.-528 с.

25. Cliff Berg. How do I Write a Java Servlet?: Dr. Dobb' s Journal, October 1997.

26. Д. Моуд. Web не терпит пустоты: PC WEEK/RE, 28 января, 1997.

27. ЗО.Грингауз Т. К., Егоров П. В. Технология разработки интерактивных интерфейсов к реляционным базам данных для среды World Wide Web: М.: НИИСИ РАН, Вопросы кибернетики, 1999 г.

28. ЗЕТ. Дик. SilverStream поднимает планку Java: PC WEEK/RE, N 48, 21 декабря 1999.

29. JI. Черняк. Серверы корпоративных приложений-ОС для корпоративных информационных систем: Открытые Системы, январь 2001.

30. П. Фрике. Битва за господство на рынке серверов приложений: Открытые Системы, январь 2001.

31. С. Орлик, С. Макарьин. Взгляд на сервер со стороны Borland: Открытые Системы, январь 2001.

32. А. Сергеев, А. Хорошилов, А. Дементьев, А. Шутов. Компоненты для объектных поверхностей: Открытые Системы, январь 2001.

33. В. Дмитриев. Сервер приложений Jaguar CTS: Открытые Системы, январь 2001.

34. Scott Dybiec and Philip Rousselle. Web extensions and applications using FastCGI. Dr. Dobbs Journal, June 1997.

35. FastCGI process manager for Apache web server. Technical White Paper, Open Market, inc, .

36. W.David Pitt. How do I Use Servlets? Dr.Dobb's Journal, December 1998, pp. 122-125

37. С.Дунаев. Доступ к базам данных из Java-nporpaMM и проблемы русификации. СУБД 1-2/98, 57-75.

38. Галатенко В., Гвоздев А. Типы и структуры данных в INFORMIX-Universal Server. Jet Info, 1997, 12/13.

39. Zope Administrator's Guide. Document revision 1.0. Modified September 29, 1999 for Zope version 2.0.1. http://zinc.redcom.ru/docs/Zope/ZAG/ZAP.html.

40. Саймон A. P. Стратегические технологии баз данных: менеджмент на 2000 год: Пер. с англ./ Под ред. и с предисл. М. Р. Кога-ловского. М.: Финансы и статистика, 1999. - 479 с.

41. Венкатрао М., Пиццо М. SQL/CLI Новый стиль связывания для SQL. СУБД N 2, 1996.

42. Кузнецов С. Д. Стандарты языка реляционных баз данных: краткий обзор. СУБД N 2, 1996.

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

44. Сайгин Ю., Филимонов Б., Глонти Н. Создание приложений Web к базам данных Oracle. СУБД N 5-6, 1996.

45. Шестаков С. Web-серверы в версии Oracle. Открытые системы N 4, 1997.

46. Overview of the Web Request Broker (WRB). http://sure.org.ru/ docs/ database/ ows/ wrbntro.htm.

47. Writing Applications Using the Web Request Broker API. http://sure.org.ru/ docs/ database/ ows/ wrbprog.htm.

48. Сергеев А. Технология Baikonur Web Application Server архитектура клиент-сервер для Intranet - систем доступа к корпоративным базам данных. СУБД N 5-6, 1996.

49. Шутов А. Введение в архитектуру сервера Baikonur. http://www.demo.ru/products/technology/baikonur/baikonur.phtmI.

50. Брюхов Д. О., Задорожный В. И., Калиниченко Л. А., Курошев М. Ю., Шумилов С. С. Интероперабельные информационные системы: архитектуры и технологии. СУБД N 4, 1995.

51. Орлик С. В. Borland Delhi как средство разработки масштабируемых приложений. СУБД N 4, 1995.

52. Калитниченко Л. А., Когаловский М. Р. Интероперабельность брокеров в стандарте CORBA 2.0. СУБД N 3, 1996.

53. Филинов Е. Выбор и разработка концептуальной модели среды открытых систем. Открытые системы, N 6, 1995.

54. Сухомлин В. Методологический базис открытых систем. Открытые системы, N 4, 1996.

55. Открытые системы: концепция или реальность. Открытые системы, N 4, 1993.

56. Гвоздев A. IUWA: универсальная архитектура Informix для работы В Internet/Intranet, http://www.citforum.ru/.

57. Коваль И. Технология Universal Web Connect компании Informix. Сети, N 9, 1997.

58. Conallen J. Modeling Web Application Design with UML. http://www.west.crimea.ua/ -black/ asfar/ vb/ rose/ webappsuml.htm.

59. Kenneth W. Copeland, C. Jinshong Hwang. Third-Generation Web Application, Full-Service Intranets, EDI: The Fully Integrated Business Model for Electronic Commerce. http://www.chg.ru/ inet97/C5/C52.htm.

60. Егоров П. В. Применение программ-расширений web-сервера для доступа к базам данных. Информационная безопасность. Инструментальные средства программирования. Базы данных. Сборник статей: Москва, НИИСИ РАН, 2001.

61. Егоров П. В. Сервер приложений "Мост": М.: ИЭиА РАН, Препринт, 2001.

62. Сингор Роберт, Стегман Михаэль О. Использование ODBC для доступа к базам данных: Пер. с англ. М. .БИНОМ; НАУЧНАЯ КНИГА.- 384 с.

63. Powers Т. Web Services Long Overdue. http://www.webreview.eom/2001/l 1 9/strategists/index01 .shtml.

64. Managing Services, http://xml.apache.org:/ soap/ docs/ guide/ manage.html.

65. Introduction. http://xml/apache.org/soap/docs/intro.html

66. Troubleshooting, http://xml.apache.org/ soap/ docs/ trouble/ index .html.

67. Writing RPC Services, http://xml.apache.org/ soap/ docs/ guide/ rpc.html.

68. Writing RPC Clients. http://xml.apache.org/soap/docs/guide/manage.html.

69. Benfield S. What Do Application Servers Really Do? http://www.webreview.com.

70. Wright G. What is an Application Server? http://www.webreview.corn.

71. Web Database Application Servers for the Web. http://www.webreview.com.

72. Дайк Тимоти. Web-серверы: мозг и мускулы. PC Magazine/Russion Edition, 10/2001.

73. VqServer. http://www.vqsoft.com/vq/server/index.html.

74. Xitami. http://www.xitami.com.

75. Stronghold Secure Web Server, http://www.c2.net. 79.Servertec Internet Server, http://www.servertec.com. SO.Roxen Webserver, http://www.roxen.com/.

76. AOLserver. http://www.aolserver.com/.

77. Allegro RomPager. http://www.allegrosoft.com.

78. Apache, http://www.apache.org.

79. RapidControl for Web(tm). http://www.rapidlogic.com.

80. KIVA Enterprise Server Architecture. http://developer.netscape.eom/docs/manuals/appserv/2 l/inover4.htm, 1996, 1997 KIVA Software Corporation.

81. Key Features of the KIVA Enterprise Server. http://developer.netscape.com/docs/manuals/appserv/2l/inover2.htm, 1996, 1997 KIVA Software Corporation.

82. Key Components of KIVA Enterprise Server. http://devel0per.netscape.c0m/d0cs/manuals/appserv/2 1 /inover3.htm, 1996, 1997 KIVA Software Corporation.

83. Том Армстронг. ActiveX: создание Web-приложений: Пер. с англ. К.: Издательская группа BHV, 1998.

84. Ritter D. The Middleware Muddle. DBMS OnLine, May 1998.

85. The Zope Developer's Guide (Zope 2.4 edition) by Michel Pelletier, Amos Latteier, and Chris McDonough. http://www.zope.org/Documentation/Books/ZDG/current/contents

86. The Zope Book by Michel Pelletier and Amos Latteier ISBN 0735711372 (Covers Zope 2.5). http:// www.zope.org/ Documentation/ Books/ ZopeBook/ current/ indexhtml

87. Олег Бройтман, Дмитрий Ишуткин. Перевод статьи Zope Architecture. http://zope.net.ru/text/Zope/ZopeArchitecture.html.

88. Choosing Whether To Use Enterprise Beans. http://developer.java.sun.com/ developer/ EJTechTips/ txtarchive/ 2002/ Aug02MarkJ.txt?s=18&w=33

89. Федоров А., Елманова Н. Архитектура современных web-приложений. Компьютер Пресс, 6 2002.

90. Федоров А. Технологии для Web-сервисов. Компьютер Пресс, 6 2002.

91. Грингауз Т. К., Егоров П. В. Технология разработки интерактивных интерфейсов к реляционным базам данных для среды World Wide Web: М.: НИИСИ РАН, Вопросы кибернетики, 1999 г.

92. Кастаньетто Дж., Рават X., Шуман С., Сколло К., Велиаф Д. Профессиональное РНР программирование. Пер. с англ. - СПб: Символ-Плюс, 2001.

93. Марка Д., МакГоуэн К. Методология структурного анализа и проектирования: Пер. с англ. М.: 1993.

94. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++, 2-е изд./ Пер. с англ. М.: "Издательство Бином", СПб: "Невский диалект", 1998 г.

95. Федоров A. Web нового поколения Web-сервисы. Компьютер Пресс, 6 2001.

96. Kreger Н. Web Services Conceptual Architecture (WSCA 1.0). IBM Software Group. May 2001.

97. Основы технологий Epsylon http://www.demo.ru/products/technology/tech/tech.phtml

98. Технологии Epsylon конспект в картинках http://www.demo.ru/products/technology/conspect/baikconsp.phtml