Содержание к диссертации
Введение
1. Анализ проблематики современных технологий для создания wtb-нриложепий 9
1.1. Определение критериев оценки vvcb-технологнй 9
1.2. Архитектура web-приложен им па оспине интерфейсов web-сервера и препроцессоров 11
1.3. Интерфейсы wcb-еервера 11
1.4. Препроцессоры 15
1.5. 1 ибридпые web-иніерфейсьі 18
1.6. Wcb-еерьпсы 21
1.7. Архитектура web-приложения на основе сервера web-при ложен и їі 22
1.8. Обзор программных продуктов класса "сервер web-при ложе пий" 23
1.9. Определение требований к инвариантному серверу web-лриложелии 29
2. Методы построения инвариантного сервера web-приложений .. 31
2.1. Использование в сервере wcb-приложений стандартизованного интерфейса с web-сервером 31
2.2. Методы обмена данными между сервером web- приложений и приложением 35
23. Хранение служебных данных сервера web-приложений . 38
2.4. Освобождение ресурсов в сервере web-приложений 43
2.5. Стандартизованный прикладной программный интерфейс сервера web-придожеішй 44
2.6-Выводы 48
3. Архитектура инвариантного сервера web-приложений 49
3.1. Определение коопераций объектов инвариантного сервера wcb-приложений и их назначения 49
3.2. Определение классов кооперации "Передача данных" инвариантного сервера web-прнложений и огиошении между классами 50
3.3. Обеспечение поддержки сессий и передачи данных с помощью кооперации объектов "Передача данных" инвариантного сервера wcb-приложений 60
3.4. Определение классов кооперации "Освобождение ресурсов" инвариантного сервера wcb-приложений и отношений между классами 63
3.5. Определение нештатного завершения выполнения клиентского и серверного приложений с помощью кооперации объекюв "Освобождение ресурсов" инвариантного сервера web-приложений 66
4. Реализация сервера web-при. положении"Мост" 71
4.1. Архитектура сервера web-приложений "Мост" 71
4.2 Реализация синхронизации передачи данных через канал и сервере web-приложений "Мост" 77
4.3. Реализация передачи данных через канал в сервере wcb- приложений "Мост" 79
4.4 Реализация запуска и остановки сервера web-приложений "Мост1 81
4.5. Реализация освобождения ресурсов в сервере web- приложспиіі 'Моєї1' 81
5. Автоматизированная система управления "АРХИВ" на основе сервера web-приложений "Мост" 86
Основные результаты раьоты 93
Список иллюстраций 94
Литература 97
- Архитектура web-приложен им па оспине интерфейсов web-сервера и препроцессоров
- Методы обмена данными между сервером web- приложений и приложением
- Определение классов кооперации "Передача данных" инвариантного сервера web-прнложений и огиошении между классами
- Реализация синхронизации передачи данных через канал и сервере web-приложений "Мост"
Введение к работе
Диссертация посвящена проблеме разработки методов и технологии построения сермерон web-приложений в операционной среде Unix, инвариантных к web-ссрвсрам и серверам баз данных, и обеспечивающих взаимодействие клиентских приложений web-броузера с постоянно действующими (persistent) неразделяемыми серверными приложениями на основе http-протокола. Эта задача приобретает особую актуальность в последнее время в связи с возрастающим распространением систем "класса UNIX 1, т.е. собственно систем UNIX и UNIX-клопов, и систем типа web-серверов и серверов баз данных на компьютерах в сеіенмч. средах. Соответственно, появляется также широкий класс прикладных задач, требующих эффективного (быстро-10 и гибкого) создания серверов web-приложепий, что и определяет необходимость создания предлагаемых в диссертации технодоіий. В качестве RCCTO лишь двух примеров приведем программное обеепече пис АСУ "Архив 1 НИИСИ РАН. которое реализовано с помощью оригинального сервера web-приложсний "Мост", и АСУ "Автоматизированная справочная служба 09", которое реали онано с помощью технологии Informix Universal Web Connect (UWC)94l.
Задача создания методов и технологии построения серверов web-приложений в операционной среде Unix, рассмотренная в работе, характеризуется следующими особенностями.
Под "сервером web-приложений" понимается программное обеспечение промежуточного уровня, обеспечивающее взаимодействие клиентских приложений web-броузера с постоянно действующими (persistent) неразделяемыми серверными приложениями на основе http-протокола. Постоянно действующее неразделяемое серверное приложение — j і о программа, реализующая прикладную логику, которая выполняет запросы только одного и того же клиентского приложения web-броузера, процесс или поток которой выполняется непрерывно в течение сессии.
Перечисленные web-приложения отличаются следующими свойствами;
1. Программные модули серверного приложения выполняются на одном аппаратном сервере.
2- Сосшн функций web приложения пе изменяется во время исполнения.
3. Масштабирование web-приложения осуществляется за счет увеличения мощности аппаратного сервера.
Для таких wcb-приложепий использование корпоративного сервера приложений, обеспечивающего безопасность, управление транзакциям, масштабріруемость. высокую доступность, является избыточным [43J, а, следовательно, не всегда эффективным. Дня них лучше подходя г традиционные двух или трехуровневые системы, например, еервлеты и JSP [93].
Реализация прикладной части web-приложения в виде постоянно действующего неразделяемого еерверною приложения коренным образом отличие і технологию серверов web-приложений от таких широко распространенных технологий, как CGI, ISAPL NSAP1, Java-еервлеты, РНР. Это отличие состоит в том, что в указанных технологиях из-за того, что процесс или поток серверного приложения после каждою запроса завершается, реализуются сложные механизмы управления контекстом сессии и поддержки постоянных соединений с базой данных. Соответственно, технология сервера web-приложений, не имеющая таких сложных механизмов и порожденных ими накладных расходов, оказывается более эффект инной по производительности.
Инвариантность к web-серверам и серверам баз данных озпача ет способность сервера web-нриложепий взаимодействовать с любым web-сервером и сервером баз данных на основе стандартных интерфейсов, Неинвариаптпые серверы web-приложений зависят от баз данных, как например, сервер wcb-приложений UWC, и от web-серверов, как например сервер web-приложений Baikonur Web Application Server. Этого недостатка предлагаемая в работе технология лишена. На ее основе реализован сервер web-приложений "Мост". С помощью сервера web-приложений "Мост" в НИИСИ РАН создана автоматизированная система управления "Архив" с web-интерфейсом. Эксперименты с этой системой подтвердили справедливость приня і ых при выполнении диссеріационной работы посылок и решений.
Отмешм также следующие свойства выполненной разработки. Исследование технологий серверов web-приложений с точки зрения реализации в них взаимодействия с web-ссрвсрами и серверами баз данных показало, что в настоящее время сущее і ну ют проблемы использования серверов web-приложений в открытых системах, вызнанные следующими причинами:
1. В некоторых технологиях серверов web-приложений, например, UWC для хранения глобальных ресурсов используются неинвариантные структуры данных, в частности базы данных с нестандартными интерфейсами.
2. Некоторые гехножн ии сервером web-приложений, например, bastCGl. SA [19]. Baikonur Web Application Server [51-52.103-104] используют нестандартные интерфейсы с web-серверами.
В работах [11-14, 17-21, 36. 38,47-52, 59-60, 85-871 предлагаются следующие решения задачи создания сервера wcb-приложепий, ин-варианиюго к web-серверам и серверам баз данных.
1. Для организации взаимодействия сервера web-ириложсний с web-сервером предлаїаетси использовать CGI-сценариіі 114, 17-21.37-38,41,59,60,85-87].
2. Для организации взаимодействии сервера web-приложений с приложением предлагается исполмокачі. различные средства межпроцессного взаимодействия (IPC): гнезда, разделяемую памяіь 114, 41, 59-60. 17-21,37-38].
3. Предлагается для храпения служебных данных сервера web-приложении использовать базы данных [ 12-14, 36, 41, 47-50, 59-601.
4. Иредлаїаетея определять нещіатное завершение серверного и клиентских приложений и выполнить освобождение ресурсов по истечении заданного интервала времени [19, 35. 51-52,98.
5. Предлагается использовать стандартизированную библиотеку прикладных функций для обеспечения взаимодействия приложения с сервером web-приложений [ 18, 28, 49-50].
Приведенные в указанных работах подходы и методы достаточны для создания upoi раммного обеспечения класса "сервер web-приложепий". Однако систематическое изложение методов создания инвариантных серверов web-приложений в перечисленных работах отсутствует.
Сказанное дополнительно подчеркивает актуальность задачи разработки общих методов построения серверов web-приложений, которые были бы инвариантны к серверам баз данных и web-еервераы и обеспечивали взаимодействие клиентских приложений web-броузсра
с гюеюяшю действующими (persistent) неразделяемыми серверными приложениями на основе http-протокола.
L2. Цель работы
Цель диссертационной работы состоит в разработке общих методов и технологии построения серверов wcb-приложснищ которые были бы инвариантны к серверам баз данных и web-серверам и обеспечивали взаимодействие клиентских приложений web-броузера с постоянно действующими (persistent) неразделяемыми серверными приложениями па основе hllp-прогокола.
1.3. Научная новизна
Научная новизна диссертации состоит в том. что в пей предложен новый обобщающий подход к решению актуальной задачи созда ния продуктов оаееа "сервер web-приложений" в различных про-[раммных средах на базе UNIX. Предложенный подход обеспечивает единообразную реализацию свойств инвариантности к web-серверам и серверам баз данных, и взаимодействия клиентских приложений web-броу ера с постоянно действующими (persistent) неразделяемыми серверными приложениями на основе http-протокола,
В диссертации получены теоретические результаты, среди которых основными являются следующие;
\. Разрабоїаньї и обоснованы методы создания сервера web-приложений инвариантного к web-серверу и серверу баз данных.
2. Разрабоїана и обоснована архитектура сервера web-приложепий ипвариаптіїоі о к web-серверу и серверу баз данных.
1.4. Практическая ценное іь
Практическая значимость предложенного подхода создания лродукюв класса "сервер web-приложений" сое го и г в гом, что серверы web-приложений, реализующие методы этого подхода, позволяют создавать web-приложения, в которых серверное приложение является постоянно действующим и неразделяемым и взаимодействует с клиентским приложением па основе http-протокола, и обладающие следующими свойствами открытых систем [53-581:
1. Расширяемость. Инвариантность сервера web-приложений к web-серверам и серверам баз данных за счет стандартных интерфейсов обеспечивает возможность добавления новых функций в web приложение, или изменение некоторых уже имеющихся при неизменных остальных функциональных частях.
2. Мптеропераоельность. Использование стандартных интерфейсов н инвариантом сервере wcb-приложсний позволяет web-приложепию взаимодействовать с другими открытыми информа ционными системами.
1.5- Методы исследования
В работе используются методы системного, функциональною и объектного анализов [4-5,61, 99-100].
1,6. Основные результаты, выносимые на зашиту
На защиту выносятся следующие теоретические и практические результаты по общим схемам построения продуктов класса "сервер web-приложений", инвариантных к wcb-сервсру и серверу баз данных и обеспечивающих взаимодействие постоянно действующего неразделяемого серверного приложения с клиентским приложением web-броузера па основе lil 1р-протокол а:
1. Обоснование и разработка методов создания серверов web-нриложений, иинариантных к web-серверу и серверу ба данных и обеспечивающих взаимодействие постоянно действующего неразделяемого серверного приложения с клиентским приложением web-броузера па основе http-протокола.
2. Обоснование и разработка архитектуры серверов web-приложений, инвариантных к web-серверу и серверу баз данных и обеспечивающих взаимо7 систвис постоянно действующего неразделяемого серверного приложения с клиентским приложением web-броузера на основе http-протокола.
1.7. Структура и объем диссертации
Диссертация состоит из введения, пяти глав и заключения, изложенных на 104 странницах и иллюстрированных 50 рисунками. Список использованных источников включает 104 наименования,
1.8. Апробация
Основные резульгагы диссертации докладывались на семинарах в Научно-исследовательском институте системных исследований РАН, в Институте математического моделирования РАН, в Сапкт
Петербургском институте информатики и автоматизации РАН. в Вычислительном центре РАН. в Институте прикладной математики им, М.В.Келдыша РАН и на II Всероссийской научно-методической конференции Интернет и современное общее то" в Санкт-Петербурге 29 ноября - 3 декабря 1999 гида.
1.9 Публикации
По теме диссертации опубликовано 5 работ.
1. Грингауз Т. К., Егоров П. И. Технология разработки интерактивных интерфейсов к реляционным базам данных для среды World Wide Web: M.: НИИСИ РАН, Вопросы кибер-нстики, J 999 г.
2. Грингауз Т. К,, Егоров П. В, Технология соединения с middelware-приложением с использованием структур разделяемой памяти на основе программного средства BRIDGE: М: НИИСИ РАН. Вопросы кибернетики, 1999 г.
3. Асонов А. А., Григорьева Я.Д., Грингауз Т. К., Егоров П, В. Опыт публикации баз данных в сетях INTRANET ПИИСИ РАН и УИРиС МГТС. Санкт-Петербургский государственный университет, Интернет и современное общество. II Всероссийская научно-методическая конференция. Санкт-Петербург 29 ноября - 3 декабря 1999.
4. Егоров П. В. Сервер приложений "Мост": М.: ИЭиА РАН, Препринт, 2001.
5. Егоров 11, В. Применение программ-расширений web-сервера для доеіуиа к базам данных. Информационная безопасность. Инструментальные средства программирования. Ьазы данных. Сборник статей: Москва, НИИСИ РАН, 200L
Архитектура web-приложен им па оспине интерфейсов web-сервера и препроцессоров
Wcb-приложение - что программное обеспечение, функционирующее па основе hltp-протокола, реализующее пользовательский интерфейс, прикладную логику и управление данными [62].
В обзоре рассматриваются web-технологии, которые имеют следующие свойства: 1. Взаимодействие клиентского и серверного приложения осуществляется но hup-протоколу. 2. Модули серверного приложения находятся на одном аппаратном сервере. 3. Масштабирование web-приложения осуществляется за счет уиеличепия производительности аі 11 іараті IOJ о сервера. 4. Серверное приложение кодируется на одном языке про-іраммирования. 5. Н web-приложении не используются динамические и обратные вызовы. При обзоре web-іехпологий следует учитывать следующие критерии.
Первый критерий - наличие к технологии средств управления пользовательскими сессиями, в частности, идентифиющии и сохранения контекста, поддержки постоянно открытых неразделяемых соединений с базами данных, возможность поддержки постоянно действующих (persistent) неразделяемых серверных приложений, поддержка афинности сессий.
Сессией называется процесс взаимодействия клиента и сервера, при котором осуществляется идентификация запросов клиеиш, для каждого запроса сохраняется информация, исчерпывающим образом характеризующая результаты выполнения запроса, обеспечивается восстановление этой информации при следующем запросе того же клиента. Информаиию, сохраняемую в промежутках между запросами сессии, называют "контекстом сессии". Афинность - это свойство сессии, которое означаем, что приложение обслуживаем запросы тлько олиого и тої о же web-броузера [971,
Применительно к программированию web-при. южений возможность поддержки постоянно действующих (persistent) неразделяемых серверных, приложений особенно важна, поскольку позволяет решать ча;шчи с использованием конвсреациониых транзакций,
Коняереапиошшя транзакция - это транзакция, в которой последовательно выполняются действия с базой данных и интерфейсом пользователя. Web-броузер - то программа-клиент, которая формирует и переласт http-запросы wcb-ссрверу, загружает с vveh-сервера и интерпретирует клиентские приложения.
Клиентское приложение - это программа, реализующая пред-стаЕїлепие данных в web-приложении.
Web-приложение на основе интерфейсов web-сервера и препроцессоров выполняемся следующим образом (см. рис. 1). Клиентское приложение передает запрос web-ссрверу, который їапускаст серверное приложение. Серверное приложение выполняет запрос и завершаемся.
В технологиях, основанных на интерфейсах web-сервера, серверное приложение завершается каждый раз после выполнения запроса, а к технологиях препроцессоров постоянные соединения с базой данных разделяются между сессиями, поэтому в них невозможно использовать временные таблицы, ск рол пирующие курсоры и транзакции, требующих для своей работы постоянные неразделяемые соединения с базой данных.
Использование скроллирующих курсоров, временных таблиц и [ранвакцин позволяет наиболее простым способом рсализовывать коїшерсациопиьіе транзакции в web-чриложспии. Котшереациоішан транзакции - это транзакция, в которой последовательно выполняются действия с базой данных и интерфейсом пользователя. В качестве примера конверсационной транзакции можно привести пример с оформлением туристической поездки. Заказ может считаться выполненным, если забронирован номер в гост нице и заказаны билеты на іранспорт. Оформление заказа может быть выполнено в следующей последовательности. Объявлено начало транзакции. Затем создан екроллирующий курсор с записями о гостиницах, удовлетворяющих заданным критериям поиска. После этого выбирается подходящая гостиница и заносится соответствующая запись о забронированном номере. После этого создаются курсоры с информацией о маршрутах следования в место назначения и имеющихся билетах на транспорт. После просмотра курсоров делаются заказы билетов, информация о которых помещается в базу данных. Затем, если все указанные действия были завершены, транзакция фиксируется в базе данных.
Интерфейсы web-сервера - зто совокупность средств и правил, обеспечивающих взаимодействие программ-сценариев с web-сервером [23. 63].
В настоящее время наиболее употребительны следующие интерфейсы web-сервера: CGI, NSAPK IS API, Service
CGI-тсхнология до сих пор наиболее употребительна в силу своей простоты и платформиой независимости (протокол CGI поддерживается всеми http-ссрверами) [18, 60, 74-84]. Конфигурация web-сервера предуемаїрикает наличие библиотеки egi-Ыл, предназначенной для исполняемых файлов - "сценариев CGI". Запуск сценария осуществляется web-сервером при поступлении http-запроса, содержащего в URL имя сценария, например: hUp://t()!;tiO/cgi-bin/scen. Между сценарием и web-сервером устанавливается связь посредством дуплексного канала (pipe), что позволяет осуществлять обмен данными через стандартные ввод и вывод CGT-нроцесса. Второй способ передачи информации CGI-процсссу - использование переменных окружения, формируемых web-сервером - "CGI-псременных" [15J. В частости, с помощью переменной QUERY_STRING передается цепочка пар "имя-значение" при использовании метода GET [2], а на стандартный ввод поступают данные, введенные в html -форму, при использовании метода POST [2].
Методы обмена данными между сервером web- приложений и приложением
Серверное приложение и сервер web-i приложен и и выполняются в разных процессах. Для организации их взаимодеисгвия в сервере web-приложений должен быть программный ресурс, который существует в течение всей сессии и обеспечивает передачу данных от сервера приложений приложению В технологиях серверов web-приложений обмен данными между сервером web-приложений и приложением осуществляется следующим образом.
В технологии UWC для взаимодействия с приложением ис-пол.зуетея UNIX-гнездо [14, 3D. 41, 59-601, Серверное приложение запускается web-драйвсром. создает гнездо (sockets) и прослушивает заданный порт. Для каждого нового запроса клиентского приложения web-сервером запускается web-драйвер, который подсоединяется к гнезлу серверного приложения и записывает в него запрос, а затем читает из пего отпет. После лого web-драйвер закрывает соединение с серверным приложением и завершает работу.
В технологии FastCGl канал реализуется с помощью гнезда UNIX. На рисунке (ем. рис. 10) показана архитектура web-приложения \\ [ехнологии KaslCGI. Запуск приложений в лой технологии выполняется двумя способами- Первый способ - это запуск с помощью модуля "mod_fastcgi" и второй способ - запуск приложении вручную. В первом способе модуль "mod tastcgi" запускает FastCgiServer-еервер для каждой "FaslCgiServer11 дирскіивьі. Затем, основынаясь на опции "-process п", он запускает п CGI-при.южепий, которые прослушивают тот же самый порт [171. При втором способе Mmocl_faslcyi" запускает [ "aslCgiExternalServcr-серверь] для каждой директивы "KxiemalAppClass" [18J при лом не определяется, как управляется FastCGI-гтриложение (пускается, перезапускается и т.д)- Сами KibLCGL-приложсния запускаются из командной строки, например, НІКИМ образом [ 19]".
Запросы передаются приложению следующим образом. Сервер "FasiCgiServer" или "FastCgiExternal" передает HTTP-запрос черегї гнездо, который принимает одно из CGl-приложений, прослушивающее соответствующий порт 117],
В технологии Baikonur Web Application Server передача данных приложению осуществляется через буфер в адресном пространстве сервера web-приложений. Парсср, на основе полученной информации из гнезда определяет корректность и полноту запроса и. или же сам отвечает на запрос, или передает выполнение запроса как задание для обрабатывающего задания потоку - одному из свободных агентов. Задание агенту формируется из адреса функции расширенного парсинга и адреса блока ввода-вывода, при этом адрес блока ввода-вывода является аргументом функции расширенного пареннга. Блок ввода-вывода связывается с клиентским блоком управления приложением, приложение информируется о поступлении запроса к нему от клиента, статуе блока изменяется на статус ожидания поступления ответа от приложения. При этом блок ввода-вывода не блокируется от удаления, при разрыве соединения приложение, связанное с этим блоком, информируется об этом [52].
Определение классов кооперации "Передача данных" инвариантного сервера web-прнложений и огиошении между классами
На основе анализа \YcЪ-тexнoлoтий1 выполненного в нерпой и второй і лавах, можно сделать следующие выводы опюсительно того, какой должна быть архитектура кооперации "Передача данных" инвариантного сервера web-приложений. 1. В кооперации "Передача данных" инвариантного сервера web-приложений должен быть ССїІ-сцепаригі, взаимодейст вующий с web-сервером [17-2130,37-38,85,87,114]. CGI спенарий помимо этого должен выполнять следующие функции П 7-21,30,37-38,104]: запуск и освобождение серверного приложения: коммутация потоков информации между клиентскими и серверными приложениями; сохранение информации о сессии клиентского и серверного приложений. В диссертации для обозначения CGI-сценариев обладающих перечисленным поведением введены два класса объектов, названные соответственно \veh-Ko.\tMymamopoM и web-драивером. 2, В кооперации "1 Іередача данных" инвариантного сервера web-приложсний должен быть специальный программный ресурс, например, иКІХ-піездо или разделяемая память для выполнения передачи данных между процессами CGI сценария и серверної о приложения [14,17-19,30,41,52.59-60]. В диссертации класс таких объектов назван каналом. Ъ. В кооперации "Передача данных" инвариантного сервера web-приложсний должны использоваться инвариантные структуры данных для хранения информации о сессии, в частности, базы данных с CLI-интерфейсами, например, ODBC или JDBC [42.44,90,91]. В диссертации класс инвариантных структур данных, и которых хранится информация о сессиях, назван таблицей сессий. 4. В кооперации "Передача данных" должен быть прикладной программный интерфейс, который используется в серверном приложении для организации взаимодействия с инвариантным сервером web-приложений [18,28]
В диссертации такой класс-интерфейс назван библиотекой прикладных функций. 5. Для поддержания соответствия процессов-приложений и обращающихся к ним клиентов в кооперации "Передача данных" для каждого клиента должен существовать уникальный идентификатор сессии. Этот идентификатор используется її течение сессии для опознания запросов or одною и того же клиент и идентификации для них структур данных, сохраняемых между запросами в инпариаптных структурах данных [14]. В диссертации класс таких объектов назван идентификатором сессии. б. В кооперации "Передача данных" инвариантного сервера web-приложений должен быть конфигурационный файл. В технологии UWC в конфигурационном файле задаются величина тай чау га, по которому сессии должны завершайся аварийно, максимально допустимое число пользовательских сессий [14,59-60]. В диссертации класс таких объектов на- ван конфигурацией. Таким образом, на основе анализа web-технологий получена следующая архитектура кооперации "Передача данных инвариантного сериера web-приложсний (см. рис. 16).
В кооперации "Передача данных" должны быть следующие классы: 1. Класс "Конфигурация1 - обозначает программный ресурс, который хранит данные конфигурации инвариал пгого сервера web-приложсний. 2. Класс "Таблица сессий" - обозначает программный ресурс, который хранит данные сессий сервера web-приложений. 3. Класс "Капал" - обозначает программный ресурс, который существует в течение всей сессии и осуществляет функции приема и передачи данных. 4. Класс "Дескриптор сессии" - обозначает программный ресурс, в котором хранятся метаданные отдельной сессии. 5. Класс "Идентификатор сессии" - обозначает программный ресурс, который используется для установления взаимооднозначного соответствия между клиентским приложением и каналом. 6. Класс "Web-комму гатор" - обозначает1 программу, реализующую ССтІ-интсрфсйс с web-ссрвсром, осуществляющую запуск серверного приложения и создание идентификатора сессии. 7. Класс "\УеЬ-;файвер" - обозначает программу, реализующую CGI-пнтерфсйс с web-сервсром, осуществляющую дополнительный разбор http-тіаксгов клиентских приложений. 8. Класс "Серверное приложение" - обозначает постоянно действующую неразделяемую программу, выполняющую прикладную логику. 9. Класс-интерфейс "Библиотека прикладных функции" - обозначает библиотеку функций, которая используется приложением для взаимодействия с сервером web-приложений.
Реализация синхронизации передачи данных через канал и сервере web-приложений "Мост"
Синхронизация передачи данных через кана.і в сервере web-приложений "Мост" осуществляется с помощью функции P1control_sem()f\ Функция "conLro]_sem()" позноляеі программе полу чить буфер канала в монопольное пользование. Поведение функции зависит от ее аргументов. Любая программа сервера web-приложений "Моєї" должна вызвать згу функцию в начале и конце рабоїьі с каналом. В функциях чтения/ записи прикладного программного интерфейса зта функция вызывается неявно. Функция "cont]ol_sem()" реализована на основе семафоров. ІЇ сервере web-приложений "Мост" семафоры объединяются к массив. Для каждої о капала выделяется два семафора.
Размер массива семафоров вычисляется по следующему правилу; , уд, N мае. - количество семафоров в массиве, N кан. - количе-CJBO экземпляров каналов в контейнере. Индекс первого и второго семафоров массива для канала с номером N вычисляется по следующему правилу: Где N1 индекс первого семафора, N2 индекс второго семафора, N номер канала в контейнере В таблице перечислены аргументы операции "conirol_scrrr, классы программ, использующие операцию, начальные и конечные значения семафоров. Программы утилита администрирования и менеджер сессий обозначены в таблице одним названием "Администратор", а web-драйвер и web-коммутатор - "Клиент". Перечисленные состояния канала используются для организации передачи данных через канал. Передачу данных, начинает клиент.
Он переводит канал в состояние "Каши занят клиентом". После тшго ни администратор ни сервер не могут выполнить операцию с каналом Затем клиент переводит канал и состояние "С каналом выполняется операция" и записывает в буфер данные. После этого клиент переводит канал в состояние "Канал занят сервером". Сервер переводит канал в состояние "С каналом выполняется операция 1 и читает данные из буфера канала. Затем сервер переводит канал в состояние "Канал занят клиентом". В этой точке клиент может повторить передачу данных, если не вес данные были переданы или прочитай, данные сервера из буфера. В последнем случае сервер должен записать в буфер результаты выполнения запроса клиента. Когда сервер передаст все данные клиенту, клиент переводит канал в состояние "Канал свободен" и завершает выполнение. Передача данных через канал в сервере web-приложен ни "Мост" осуществляется с помощью функции чтения и записи. Функция записи канала помещает данные в канал, а функция чтения извлекает данные из канала. Функции записи в канал и чтения из канала сервера web-прилпжепиЙ "Мост" ДСЛЯЇСЯ на две группы: функции записи/чтения без буферизации и функции записи/чтения с буферизацией. Функции записи/чтения без буферизации записывают данные в канал непосредственно. Функции записи/чтения с буферизацией записываю! данные сначала в локальный буфер, а заіем, когда он заполнится, - в буфер канала.
Алгоритм рабоJ ы функций записи с буферизацией следующий (здесь не рассматриваются /дополнительные функции управления локальным буфером): 1, Заполнение локального буфера. 2, Блокировка капала с ожиданием. 3. Запись данных локального буфера в буфер канала, 4, Освобождение канала. 5. Очистка буфера канала. 6. Возврат в пункт 1. Алі орнім работы функций чтения с буферизацией следующий: 1. Блокировка канала с ожиданием 2. Запись данных буфера канала в локальный буфер, 3. Очистка буфера канала. 4. Освобождение канала. 5. Возврат в пункт I. Запуск (остановка) сервера web-приложепий "Мост" заключается в запуске (остановке) программы "менеджер сессий". Менеджер сессий можно запустить (остановить) двумя способами: или с помощью командного интерпретатора UNIX или с помощью утилиты администрирования. Для запуска и остановки сервера web-приложений с помощью командного интерпретатора (JNTX используются два сценария; один выполняет запуск, другой остановку. Сценарии запускаются или из командной строки или помещаются в специальную директорию UNIX, из которой мри зшрузке или выгрузке операционной системы читаются и выполняются командным интерпретатором. Если менеджер соединении запускается с помощью утилиты, тогда в рабочем окне утилиты выбирается опция запуска сервера. Остановка менеджера выполняется с помощью опции остановки утилиты администрирования.