Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Технологии разработки Internet-приложений. Учебное пособие
.pdf
- лучшие выразительные возможности. Язык сценариев как
правило имеет собственный проблемно-ориентированный набор
команд, и одна строка сценария может делать то же, что несколько
десятков строк на традиционном языке. Как следствие, на этом
языке может писать программист низкой квалификации;
- поддержка кроссплатформенности.
Поскольку сценарии интерпретируются из исходного кода
динамически при каждом исполнении, они выполняются обычно
значительно медленнее готовых программ, транслированных в
машинный код на этапе компиляции.
5.3. Сценарные языки: классфикация по быстродействию
В плане быстродействия сценарные языки можно разделить на:
1) языки динамического разбора (например, command.com).
Интерпретатор считывает инструкции из файла программы минимально требующимися блоками, и исполняет эти блоки, не читая
дальнейший код;
2) предварительно компилируемые (например, Perl). Вначале
считывается вся программа, затем компилируется либо в машинный код, либо в один из внутренних форматов, после чего получившийся код исполняется.
5.4. Python
Python – высокоуровневый язык программирования общего
назначения с акцентом на производительность и читаемость кода.
Язык Python сочетает в себе минимализм синтаксиса ядра и большой объём полезных функций в стандартной библиотеке.
Python поддерживает структурную, объектно-ориентированную, функциональную, императивную и аспектно-ориентированную парадигмы.
Его основные архитектурные черты: динамическая типизация,
автоматическое управление памятью, полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений, удобные высокоуровневые структуры данных.
Код в Python организовывается в функции и классы, которые
могут объединяться в модули (которые в свою очередь могут быть
объединены в пакеты).
61

Для всех основных платформ Python имеет поддержку характерных для данной платформы технологий (например, Microsoft
COM/DCOM). Cуществует даже специальная версия Python для
виртуальной машины Java - Jython, что позволяет интерпретатору
выполняться на любой системе, поддерживающей Java, при этом
классы Java могут непосредственно использоваться из Питона и
даже быть написанными на Python. Несколько проектов обеспечивают интеграцию с платформой Microsoft.NET, основные из которых - IronPython и Python.Net.
Стандартная библиотека Python имеет средства для работы со
многими сетевыми протоколами и форматами интернета, например, модули для написания HTTP-серверов и клиентов, для разбора и создания почтовых сообщений, для работы с XML и т. п.
Набор модулей для работы с операционной системой позволяет
писать кроссплатформенные приложения. Существуют также модули для работы с регулярными выражениями, текстовыми кодировками, мультимедийными форматами, криптографическими
протоколами, архивами, сериализации данных, поддержка юниттестирования и др.
Помимо стандартной библиотеки существует множество библиотек, предоставляющих интерфейс ко всем системным вызовам
на разных платформах; Имеется большое количество прикладных
библиотек для Python в самых разных областях (веб, базы данных,
обработка изображений, обработка текста, численные методы,
приложения операционной системы и т. д.).
5.5. Ruby
Ruby – интерпретируемый язык высокого уровня для быстрого и удобного объектно-ориентированного программирования. Ruby обладает независимой от операционной системы реализацией
многопоточности, строгой динамической типизацией, «сборщиком
мусора» и многими другими возможностями. Многие особенности
синтаксиса и семантики языка Perl заимствованы в Ruby. Первая
общедоступная версия Ruby появилась в 1995 г.
Ruby – полностью объектно-ориентированный язык:
- все данные являются объектами, в отличие от многих других
языков, где существуют примитивные типы;
- каждая функция является методом;
62

- переменные Ruby содержат не сами объекты, а ссылки на них;
- присваивание – это непередача значения, а копирование
ссылки на объект;
- в Ruby можно добавлять методы не только в любые классы,
но и в любые объекты. Например, можно добавить к некоторой
строке произвольный метод.
Массивы в Ruby могут автоматически изменять размер, могут
содержать любые элементы и язык предоставляет мощные средства для их обработки.
Ruby поставляется с большой стандартной библиотекой. Это,
прежде всего, библиотеки для работы с различными сетевыми
протоколами на стороне сервера и клиента, средства для работы с
различными форматами представления данных (XML, XSLT,
YAML, PDF, RSS, CSV, WSDL). Также есть библиотеки для работы с архивами, датами, кодировками, матрицами, средства для системного администрирования, распределенных вычислений, поддержки многопоточности и т. д.
В языке Ruby также реализован простой и удобный механизм
для расширения языка с помощью библиотек, написанных на С,
позволяющий легко разрабатывать дополнительные библиотеки.
Для унифицированного доступа к базам данных разработана библиотека Ruby DBI.
К недостаткам интерпретатора Ruby можно отнести следующие: невысокая скорость работы, отсутствие поддержки потоков
операционной системы, отсутствие встроенной поддержки юникода, отсутствие компиляции в байт-код.
5.6. ISAPI
Для Web-сервера IIS (Internet Information Server) был разработан специальный программный интерфейс для создания приложений расширяющих стандартные возможности Web-сервера.
ISAPI (Internet Server Application Programming Interface) –
многозвенный API для IIS.
ISAPI также реализован в виде модуля mod_isapi для Webсервера Apache. Таким образом, серверные приложения, разработанные для MS IIS могут также выполняться в Apache и других
Web-серверах.
63

В противоположность CGI ISAPI-приложение загружается в
том же адресном пространстве, что и Web-сервер IIS. Это позволяет повысить производительность приложений благодаря сокращению издержек на запуск отдельных процессов. Однако сбой ISAPIприложения может привести к неустойчивой работе самого Webсервера.
ISAPI включает в себя два компонента: расширения и фильтры.
Таким образом, все многообразие разрабатываемых ISAPIприложений сводится только к этим двум типам. И фильтры и
расширения компилируются в DLL файлы динамически запускаемые Web-сервером.
ISAPI приложения могут разрабатываться с помощью любых
языков, поддерживающих экспорт стандартных С-функций,
например С, С++, Delphi Pascal. Для разработки имеется ограниченное число библиотек для разработки ISAPI приложений,
например Intraweb-компоненты Delphi Pascal, специальные MFCклассы, специальная С++ библиотека серверных технологий ATL.
К наиболее важным особенностям ISAPI-расширений можно
отнести следующие:
1. ISAPI-расширения имеют доступ ко всем функциональным
возможностям IIS.
2. Реализуются в виде DLL-модулей, загружаемых в про-
странстве процесса, контролируемого IIS.
3. Клиенты могут обращаться к ISAPI-расширениям также как
к статическим HTML страницам.
ISAPI-расширения могут быть ассоциированы с отдельными
расширениями файлов, с целыми каталогами или сайтами.
ISAPI-фильтры необходимы для изменения или совершенствования функциональности IIS. Они обычно работают с IIS-
сервером и фильтруют каждый запрос. Фильтры применяются для
анализа и модификации входящих и исходящих потоков данных.
Фильтры также как и расширения реализуются в виде DLL
файлов.
Обычно ISAPI-фильтры используются для решения следую-
щих задач:
- изменение данных в запросе клиента (URL или заголовков);
- управление отображением URL в физические файлы;
- управление именами и паролями пользователей при аноним-
ной или базовой аутентификации;
64

- анализ и модификация запросов по завершении аутентифи-
кации;
- модификация ответа Web-сервера;
- ведение журналов и анализ трафика;
- реализация собственной аутентификации;
- управление шифрацией и сжатием.
Стоит отметить, что существуют реализации в виде ISAPI-
расширений для таких инструментальных средств как: ASP (Active
Server Pages), ASP.NET, ColdFusion, Perl ISAPI (Perlis), PHP.
Выводы
1. Сформулированы определения понятий «плагин» и «сце-
нарий».
2. Дана характеристика стандарта CGI. Выделены этапы,
включенные в CGI-стандарты.
3. Рассмотрены основные достоинства использования сцена-
риев при разработке серверных Web-приложений.
4. Приведена классификация сценарных языков по быстро-
действию.
5. Дана характеристика сценарных языков Python и Ruby.
6. Подробно рассмотрен интерфейс ISAPI.
Вопросы для самопроверки
1. Сформулируйте определение понятий «сценарий» и
«плагин».
2. Охарактеризуйте стандарт CGI.
3. Cколько этапов выделяют при выполнении программы,
содержащей CGI-сценарий?
4. Каким образом можно распознать файлы, содержащие текст
CGI-сценария?
5. Какими достоинствами обладают сценарии?
6. Приведите классификацию сценарных языков по быстро-
действию.
7. Дайте характеристику языку Python.
8. Охарактеризуйте язык Ruby.
9. Дайте характеристику интерфейсу ISAPI.
10. Какие компоненты включает интерфейс ISCAPI?
65

Литература
Основная: [2, 3, 4, 7].
Дополнительная: [4, 6].
6. ОБЩИЕ СВЕДЕНИЯ О ТЕХНОЛОГИЯХ ASP
План
6.1. Принципы функционирования Active Server Page.
6.2. Модель Active Server Page.
6.3. История технологий ASP.
6.4. Общие сведения о технологиях ASP.NET.
6.5. Процесс создания Web-приложения на платформе
ASP.NET.
6.6. Использование дополнительных средств при разработке
приложений на основе технологий ASP.NET.
6.7. Серверные элементы управления ASP.NET.
6.8. Работа с источниками данных в ASP.NET.
Active Server Page (активные серверные страницы) – язык про-
граммирования, используемый для создания динамических Web-
страниц, обрабатываемых на стороне сервера.
Динамические страницы – это такие страницы, содержимое которых изменяется в зависимости от действий пользователя. Напротив, статические страницы выглядят всегда одинаково, независимо от
того, кто и когда ее просматривает. Первоначально все страницы были статическими, однако развитие Internet вызвало потребность в
предоставлении быстро меняющейся информации. Например, курсы
валют, прогнозы погоды, обновляющиеся новости, Internet-магазины,
on-line издания. Так, в частности поисковой системой Яндекс определяет географический адрес IP и предлагает поиск, карту и другие сервисы, актуальные для выбранного региона.
С ростом потребности в динамически изменяемых Web-
страницах стали появляться и технологии их создания, одним из
которых и стала технология ASP.
ASP – технология от Microsoft, позволяющая легко разрабатывать приложения для World Wide Web. ASP работает на плат-
66

форме операционных систем линии Windows и на Web-сервере IIS.
ASP не является языком программирования — это лишь технология предварительной обработки, позволяющая подключать программные модули во время процесса формирования Webстраницы. Относительная популярность ASP основана на простоте
используемых языков сценариев (VBScript или JScript) и возможности использования внешних COM-компонент.
Технология ASP предполагает широкое использование серверных сценариев и объектов СОМ для создания динамических Web-
серверов. Средствами технологии ASP можно легко создавать интерактивные web-страницы, выполнять обработку данных введенных
пользователем через формы, обращаться к базам данных.
Наиболее интересными и полезными качествами технологий
ASP являются:
- удобный способ объединение серверных сценариев c HTML;
- скриптовый подход (интерпретируемый язык), файл с ис-
ходным кодом ASP одновременно является его исполняемым файлом, что упрощает процессы разработки и поддержки;
- концепция «Session» – переменные для каждого пользова-
тельского соединения, как удачное решение вечной проблемы
stateless-протокола HTTP;
- возможность организации распределенной архитектуры на
основе инфраструктуры COM, DCOM, COM+. Дополнительные
возможности, предоставляемые MTS – такие, например, как контекст объектов, пул и т.д.;
- удобный набор объектов-утилит: Server, Application, Request,
Response, Session, ObjectContext.
Пользователь не может каким-либо образом получить содержимое страницы ASP, так как Web-сервер отправляет ему не саму
страницу, а результат ее интерпретации, таким образом, логика
работы страницы скрыта от пользователей. Для просмотра требуется активных серверных страниц необходима программа-браузер,
например, Microsoft Internet Explorer, Opera, Google Chrome.
6.1. Принципы функционирования Active Server Pages
Использование ASP не требует специфичных браузеров. Все
ASP-скрипты запускаются и выполняются на Web-сервере, причем
браузер получает только результирующие HTML-файлы. Microsoft
67

Internet Information Server, начиная с версии 3.0, поддерживает Active Server Pages.
Функционирования ASP имеет следующую последовательность. Клиент запрашивает ASP-страницу на Web-сервере. Сервер
принимает запрос и начинает его обрабатывать. По расширению
файла («.asp») определяет, что данный файл содержит ASP-скрипт
и начинает анализировать его содержимое, последовательно интерпретируя и выполняя вставки ASP-кода. ASP-код, в свою очередь, может содержать обращения к различным источникам данных, осуществлять обработку полученных данных и добавлять содержимое генерируемой страницы. В результате формируется
«обычная» HTML-страница (уже не содержащая ASP-кода), которая и отправляется обратно клиенту.
Внешне ASP функционирует также как CGI. При передаче
данных от клиентской формы серверу, последний кодирует входные данные, а сценарий CGI декодирует их, а затем функционально обрабатывает и возвращает выходные данные браузеру.
Аналогичным образом передаются параметры (формат строки
запроса) и осуществляется вывод результатов. Однако производительность ASP оказывается гораздо выше, так как при каждом запросе не происходит отдельной загрузки ASP-интерпретатора. Использование компонент ActiveX также значительно повышают
производительность Web-сервера.
Помимо повышения производительности ASP решают также
проблему оформления динамических Web-страниц. Ранее при использовании CGI приходилось либо встраивать текст оформления
Web-страницы в программный код CGI-сценария, что затрудняло
дальнейшее изменение дизайна, либо вынуждало разработчиков
создавать свои собственные системы шаблонов. Использование
ASP позволяет разработчику одновременно работать над программным кодом и над оформлением Web-страницы.
6.2. Модель Active Server Pages
В ASP процесс создания Web-приложений значительно упрощен по сравнению с другими приложениями. Достаточно знаний
какого-либо языка сценариев, например, VBScript или JavaScript.
ASP может использовать сторонние COM-объекты (ActiveX для
работы с файлами, отправки писем …), в том числе самой опера-
68

ционной системы Windows. Это значительно расширяет возможности ASP-страниц.
Когда клиент запрашивает ASP-файл, Web-сервер отправляет
ASP-файл в обработчик ASP (файл asp.dll), где код сценария выполняется на стороне сервера и преобразуется в HTML-код. Затем
полученный HTML-код отправляется Web-клиенту. Простое копирование серверных сценариев клиентом невозможно, поскольку
обозревателю передаются только результаты их выполнения.
Рисунок 6.1. Схема модели ASP
6.3. История технологий ASP
Первое упоминание о технологиях ASP было сделано в ноябре
1996 года. Она сразу же была оценена как удобный способ создания динамических Web-страниц. В то время широко использовались стандарт CGI и язык Perl, но ASP быстро завоевала популярность по четырем причинам:
- простота доступа к данным;
- простота проектирования страниц;
69

- возможность взаимодействия с технологией СОМ;
- относительная легкость изучения для программистов, знако-
мых с языком Visual Basic.
Во-первых, если бы ASP была выпущена без объектов доступа
к данным ADO, то, скорее всего, она не завоевала бы признание
так быстро. Технология ADO заменила технологию RDO, которая,
в свою очередь, пришла на смену технологии DAO. Microsoft пропагандировала ADO как наиболее предпочтительный метод доступа к базам данных. Объектная модель ADO была существенно
упрощена по сравнению с предшественниками.
Во-вторых, одновременно с выходом ASP 1.0 вышла первая
версия приложений для Microsoft Visual Studio, включавший, в
частности, программу InterDev 1.0. Этот инструмент предоставлял
широкие возможности и пользовался серверными расширения
FPSE для упрощения работы по сопровождению Web-сайтов, в
результате чего отпала необходимость в отдельном FTP-клиенте.
Технология Intellisense для СОМ (автоматическое предложение
списка свойств и методов объявленного объекта после ввода его
имени) и наличие встроенных объектов ASP и элемента управления для доступа к данным сделали этот редактор весьма популярным, даже несмотря на некоторые недостатки. Например, его графический редактор был основан на ранней версии программы
FrontPage.
Без ASP не сложился бы рынок компонентов от сторонних
фирм, который сейчас оценивается во много миллионов долларов
в год. Конечно, это был не единственный фактор, поскольку рынок
компонентов для Visual Basic возник еще до революции, ознаменованной появлением технологии СОМ, но, именно ASP и СОМ
позволили некоторым компаниям неплохо заработать на продаже
готовых компонентов для Web-серверов.
Четвертая особенность ASP, немало способствовавшая ее
популярности, использование VBScript как языка программирования по умолчанию. Благодаря этому многие программисты, уже
знакомые с языком Visual Basic, смогли быстро освоить программирование для ASP. Кроме того, Microsoft предоставила возможность использовать и другие языки от сторонних фирм, и очень
скоро код для ASP стало можно писать и на Perl.
70
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
