Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4_WEB-prilozhenia.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.55 Mб
Скачать

Оглавление

4. WEB-приложения 1

4.1. Разработка CGI-программ 4

4.1.1. CGI-интерфейс 4

4.1.2. Разработка CGI-программ в среде Visual Studio 10

4.2. Разработка активных страниц 15

4.2.1. Пример страницы ASP.NET 17

4.2.2. Элементы страниц ASP.NET 22

4.2.3. Создание страниц ASP.NET в среде Visual Studio 31

4. WEB-приложения

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

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

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

Первый - это разработка обычной исполняемой программы, которая взаимодействует с сервером и выходные данные которой (HTML-документ) направляется через сервер клиенту. Он получил название серверных расширений или расширений Web-сервера, и используется для расширения возможностей сервера, создания сложных больших приложений.

Второй - встраивание программного кода (скрипта) непосредственно в страницу, которая храниться на сервере. Такие страницы получили название активных серверных страниц. Этот подход в разных вариантах используется для создания динамических страниц, т.е. страниц, содержание (контент) и оформление которых формируется на основе анализа запроса пользователя.

Для создания серверных расширений было разработано несколько интерфейсов, наибольшее распространение получили: CGI, FCGI и API-интерфейсы. Каждый из них имеет свои преимущества, равно как и определенные недостатки.

Спецификация CGI (Common Gateway Interface) предполагает такой вид взаимодействия. Браузер отправляет запрос серверу. В качестве URL в запросе используется адрес CGI-программы. Сервер определяет тип URL, и порождает процесс-потомок, передает в него значения переменных окружения, запускает CGI-программу и передает ей управление. CGI-программа производит обработку информации, определенную алгоритмом, и возвращает результат вычислений через свой стандартный вывод в форме, определенной в спецификации CGI.

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

Основные преимущества такого решения: простота, независимость от языка, выполнение в отдельном адресном пространстве, открытый стандарт, архитектурная независимость.

Главным недостатком является низкая скорость реакции на запрос пользователя и большая нагрузка на сервер (много запросов – много процессов, а значит – много ресурсов).

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

API-интерфейсы – это расширения, обеспечивающие возможность доступа к функциям сервера из программы. В настоящее время разработаны NSAPI (API для Netscape), ISAPI (API для IIS), API для Apache и ряд других. Достоинства этого механизма состоит в высокой скорости, возможности использования для обработки данных серверных функций. Серьезный недостаток API - это его сложность. Для написания API-приложения необходимы глубокие знания архитектуры сервера и ее реализации. Выполняется приложение в адресном пространстве сервера. Это значит, что сбой в приложении может привести к сбою в работе сервера. Написанное для определенного сервера приложение не может быть перенесено на другую платформу.

FAST CGI – эта спецификация была разработана для IIS с целью совмещения преимущества обычного CGI и API. Для этого серверная программа загружается для выполнения либо в момент старта сервера, либо по требованию клиента и остается в памяти так долго, как это необходимо для обслуживания запросов. Fast CGI не только позволяет увеличить производительность приложений, но разрешает включить дополнительную обработку информации, отправляемой клиенту, и расширяет возможности сервера.

Знание интерфейсов необходимы не только для разработки серверных программ, но и при выборе технологии и настройке сервера.

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

Таким образом, оба подхода позволяют расширить возможности сервера вплоть до создания WEB-приложения, т.е. распределенного приложения, использующего для обмена данными протокол HTTP. Достоинством такого приложения является стандартный, всем известный клиент – браузер, и снижение затрат на сопровождение приложений разработчиками. Вместо того чтобы устанавливать приложение Windows на каждое рабочее место в компании, можно создать одно web-приложение, к которому имеется общий доступ. Если возникает необходимость внесения в это приложение каких-нибудь изменений или исправлений, то достаточно обновить приложение только на сервере, а не на всех клиентских компьютерах. Это также позволяет каждому клиенту постоянно пользоваться самой последней версией приложения, поскольку именно она всегда будет находиться на сервере.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]