Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Технологии разработки Internet-приложений. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
- лучшие выразительные возможности. Язык сценариев как правило имеет собственный проблемно-ориентированный набор команд, и одна строка сценария может делать то же, что несколько десятков строк на традиционном языке. Как следствие, на этом языке может писать программист низкой квалификации;
- поддержка кроссплатформенности.
Поскольку сценарии интерпретируются из исходного кода динамически при каждом исполнении, они выполняются обычно значительно медленнее готовых программ, транслированных в машинный код на этапе компиляции.
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 – интерпретируемый язык высокого уровня для быстро­го и удобного объектно-ориентированного программирования. Ru­by обладает независимой от операционной системы реализацией многопоточности, строгой динамической типизацией, «сборщиком мусора» и многими другими возможностями. Многие особенности синтаксиса и семантики языка 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, поддерживает Ac­tive 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]