Подходы к разработке web-приложений

Содержание

Слайд 2

Подходы к разработке web-приложений

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

Подходы к разработке web-приложений Все подходы к разработке web-приложений могут быть разделены
3 большие категории:
1. Подходы, основанные на программировании или скриптах: внешние программы или скрипты; расширения web-сервера.
(Plugin’ы к nginx, Lua скрипты, и т.д.)
2. Подходы, основанные на использовании шаблонов web-страниц, включающих вставки кода скриптов и специальных серверных тэгов. (скрипты типа .php, .pl для отдельных handler’ов)
3. Объектные среды (web-frameworks).

Слайд 5

Программные подходы

В данном подходе web-приложением (динамическим ресурсом, связанным с URL-адресом) является внешняя

Программные подходы В данном подходе web-приложением (динамическим ресурсом, связанным с URL-адресом) является
программа, составленная на некотором универсальном языке программирования высокого уровня, или скрипт, составленный с помощью скриптового языка, выполнение которого производится также с помощью внешней программы – интерпретатора скриптов (script engine).
Основной проблемой с программным подходом к разработке web- приложений является их ориентация на написание кода. Разметка HTML и другие конструкции форматирования встраиваются в логику работы программы с помощью операторов вывода.

Слайд 6

Программные подходы

Это ограничивает возможности web-дизайнеров вносить свой вклад в оформление создаваемой приложением

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

Слайд 7

Внешние программы

Простейший способ динамически формировать web-страницы в ответ на HTTP-запрос заключается в

Внешние программы Простейший способ динамически формировать web-страницы в ответ на HTTP-запрос заключается
том, чтобы передать работу по решению требуемой задачи и формированию HTML-страницы внешней программе, которая должна получать переданные в HTTP-запросе входные параметры и сформировать выходную страницу на языке HTML.
Первой широко используемой, независимой от типа web-сервера программной технологией создания и выполнения web-приложений была технология Common Gateway Interface (CGI, общий шлюзовой интерфейс). Она определяла набор правил, которым должна следовать программа, чтобы она могла выполняться на разных НТТР-серверах и операционных системах.

Слайд 8

Внешние программы

В соответствии с CGI-технологией при поступлении в web-сервер HTTP-запроса, который включает

Внешние программы В соответствии с CGI-технологией при поступлении в web-сервер HTTP-запроса, который
ссылку не на статическую страницу, а на CGI-программу, создается новый процесс, в котором запускается требуемая прикладная программа.
Технология CGI задает способ передачи такой программе параметров, входящих в состав HTTP-запроса. Передача входных данных может выполняться либо с помощью фиксированного набора переменных среды (environment variables), которые могут создаваться одной программой и использоваться другими программами, либо через входные данные функции, с которой начинается работа программы (функция main()), а результаты работы программы (HTML-страница) возвращаются с помощью стандартного потока вывода STDOUT.

Слайд 9

Пример простых CGI-программ

Пример программы на C

Пример скрипта на Perl

Пример простых CGI-программ Пример программы на C Пример скрипта на Perl

Слайд 10

Внешние программы

Технология CGI позволяет использовать любой язык программирования, который может работать со

Внешние программы Технология CGI позволяет использовать любой язык программирования, который может работать
стандартными устройствами ввода/вывода. Кроме этого, CGI-программы можно писать с использованием скриптовых языков, которые называются "CGI-скриптами". Примерами скриптовых CGI-языков являются, например, Perl, Python или Tel. При использовании скрипта web-ссрвср вызывает на выполнение внешнюю программу – интерпретатор скриптов (script engine), которой передаются данные HTTP-запроса и имя файла, в котором содержится запрашиваемый пользователем скрипт. А затем данная программа выполняет указанный скрипт и возвращает серверу сформированную HTML-страницу.

Слайд 11

Недостатки технологии CGI

Основной проблемой является производительность: для каждого HTTP-запроса к CG-программе web-сервер

Недостатки технологии CGI Основной проблемой является производительность: для каждого HTTP-запроса к CG-программе
запускает новый процесс, который заканчивает работу только после завершения программы. Работа по созданию и завершению процессов является достаточно трудоемкой, что может очень быстро понизить производительность системы; кроме этого, различные активные процессы начинают конкурировать за системные ресурсы, такие как оперативная память.
Для составления и отладки CGI-программ разработчик должен обладать достаточно большим опытом программирования на одном из языков, на котором можно программировать CGI-программы.
В CGI-программах программный код и код разметки полностью перемешаны. Дизайнер должен знать программирование, чтобы менять структуру web-страниц.

Слайд 12

Fast CGI

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

Fast CGI Попыткой объединить переносимость CGI-приложсний с эффективностью является технология FastCGI. Данная
основывается на простой идее: вместо необходимости каждый раз запускать новый процесс для обработки CGI-скрипта FastCGI позволяет не закрывать процессы, связанные с CGI-скриптами, после окончания обработки, а использовать их для обработки новых запросов к CGI-программам. А это означает, что не требуется постоянно запускать и удалять новые процессы, т. к. один и тот же процесс может использоваться многократно для обработки запросов. Такие процессы могут инициализироваться только один раз при их создании.
Модули сервера, которые выполняют функциональность FastCGI, взаимодействуют с HTTP-сервером с помощью своих собственных API. Эти API стараются скрыть детали реализации и конфигурирования от FastCGI-приложений, но разработчики все равно должны знать особенности реализации технологии FastCGI, т. к. модули различных типов серверов несовместимы между собой.

Слайд 13

Интерфейс ISAPI

Для web-сервера Microsoft IIS (Internet Information Server) был разработан специальный программный

Интерфейс ISAPI Для web-сервера Microsoft IIS (Internet Information Server) был разработан специальный
интерфейс – ISAPI, позволяющий создавать приложения, расширяющие стандартные возможности данного web-сервера. ISAPI представляет собой библиотеку функций, с помощью которой программисты могут создавать web-приложения в виде DLL- модулей (динамически подключаемых библиотек), формирующих HTML- страницы. Такие web-приложсния работают намного быстрее обычных CGI-программ, т. к. они более тесно интегрированы в web-сервер.

Слайд 14

Интерфейс ISAPI

ISAPI-расширения могут связываться с вызовом файлов, имеющих специальные расширения, либо с файлами,

Интерфейс ISAPI ISAPI-расширения могут связываться с вызовом файлов, имеющих специальные расширения, либо
содержащимися в заданных каталогах или во всем web-сайте.  lSAPl-фильтры используются для изменения или совершенствования функциональности IIS-сервера. Обычно они обрабатывают (фильтруют) каждый поступающий HTTP-запрос. Фильтры могут применяться для анализа и модификации исходящих НТТР-ответов.
ISAPI-приложения могут разрабатываться с помощью разных языков, в основном это .NET, ASP, Delphi, С++

Слайд 15

Интерфейс Java Servlet API

Другой широко используемой технологией расширения архитектуры web-сервера является прикладной

Интерфейс Java Servlet API Другой широко используемой технологией расширения архитектуры web-сервера является
интерфейс Java Servlet API, который связывает web-сервер с виртуальной машиной Java Virtual Machine (JVM). Виртуальная машина JVM поддерживает выполнение специальной Java-программы (контейнер сервлетов), которая отвечает за управление данными сеанса работы и выполнение Java-сервлетов.
Сервлеты – это специальные классы на языке Java, которые имеют доступ к информации из HTTP-запросов. Они формируют HTTP-ответы, которые возвращаются браузерам.

Слайд 16

Интерфейс Java Servlet API

В отличие от ISAPI-расширений технология Servlet API является переносимой

Интерфейс Java Servlet API В отличие от ISAPI-расширений технология Servlet API является
между разными web-серверами, операционными системами и компьютерными платформами. Сервлеты выполняются одинаково в любой среде, которая предоставляет совместимый с ними контейнер сервлетов. Технология Servlet API используется большим количеством разработчиков и поддерживается многими известными web-серверами. Чаще всего таким сервером выступает Apache Tomcat

Слайд 18

Подходы на основе шаблонов

Подходы, основанные на шаблонах (template approaches – шаблонные подходы), используют в

Подходы на основе шаблонов Подходы, основанные на шаблонах (template approaches – шаблонные
качестве адресуемых объектов (имеющих URL-адрес) не программы или скрипты, а "шаблоны". По существу шаблонами являются HTML-файлы с дополнительными "тэгами" (серверными, используемыми только на стороне сервера), которые задают методы включения динамически формируемого контента. Таким образом, файл шаблона содержит HTML-код, который описывает общую структуру страницы, и дополнительные серверные тэги, размещенные таким образом, чтобы формируемое с их помощью содержание страницы имело требуемый вид.

Слайд 19

Подходы на основе шаблонов

В конце 90-х гг. многие компании разработали свои собственные

Подходы на основе шаблонов В конце 90-х гг. многие компании разработали свои
технологии обработки шаблонов на стороне web-сервера, включающие скрипты. Компания Netscape предложила технологию LiveWire (которая развилась в язык Server-Side JavaScript), а другие компании разработали такие технологии, как NetDynamics, Dynamo и Cold Fusion (из этих технологий до настоящего времени используется только Cold Fusion).
В настоящее время к наиболее распространенным технологиям разработки web-приложений на основе шаблонов относятся следующие: Server-Side Includes (SSI), Cold Fusion, Active Server Pages (ASP) и Java Server Pages (JSP).

Слайд 20

Технология SSI

Технология вставок на стороне сервера – Server Side Includes (SSI) –

Технология SSI Технология вставок на стороне сервера – Server Side Includes (SSI)
является старой технологией, которая появилась почти одновременно с технологией CGI. SSI предоставляет возможность вставки дополнительных файлов (или результатов выполнения CGI-скриптов) в HTML- страницу. Вставка в шаблон SSI-инструкций выполняется с помощью следующего формата:

Слайд 21

Технология Cold Fusion

Другой достаточно популярной технологией, основанной на шаблонах, является технология Cold

Технология Cold Fusion Другой достаточно популярной технологией, основанной на шаблонах, является технология
Fusion, разработанная компанией Adobe. Пример шаблона, описанного на основе данной технологии, показан на рис. 3.6. В данном шаблоне используются специальные тэги, внешне очень похожие на HTML-гэги, но начинающиеся с приставки "CF". Такие тэги не передаются браузерам, а обрабатываются средой выполнения на стороне web-сервера.

Слайд 24

Технология Cold Fusion

Преимущество данного подхода заключается в том, что такой шаблон может

Технология Cold Fusion Преимущество данного подхода заключается в том, что такой шаблон
создаваться и поддерживаться дизайнером страницы, который имеет базовые знания языка HTML и web-графики, но не имеет опыта программирования. Специальные тэги, которые являются "расширением" HTML, в некоторой степени похожи на инструкции (тэги) SSI тем, что дизайнеры web-страниц, имеющие небольшой опыт работы, могут быстро научиться использовать их.

Слайд 25

Технология РНР Hypertext Preprocessor

Технология "РНР Hypertext Preprocessor" (хотя первоначально она соответствовала "Personal

Технология РНР Hypertext Preprocessor Технология "РНР Hypertext Preprocessor" (хотя первоначально она соответствовала
Home Page"), или просто РНР, позволяет разработчикам встраивать программный код в шаблоны с помощью языка, сходного с языком скриптов Perl. Ниже приведен пример фрагмента РНР-шаблоиа:

Слайд 26

Технология РНР Hypertext Preprocessor

Из данного примера понятно, что текст, встроенный в блоки

Технология РНР Hypertext Preprocessor Из данного примера понятно, что текст, встроенный в
вида , обрабатывается РНР-процессором, а текст, стоящий вне таких блоков, обрабатывается как аргумент, переданный операторам print.
(Такой же подход используется и в технологиях JavaServer Pages и ASP.Net Web Forms.)

Слайд 27

Технология Active Server Pages

Компания Microsoft разработала технологию ASP (Active Server Pages), которая

Технология Active Server Pages Компания Microsoft разработала технологию ASP (Active Server Pages),
объединила возможности создания шаблонов, включающих скрипты, с доступом к наборам OLE- и COM-объектов, имеющихся в операционной системе Windows, в т. ч. и к ODBC-источникам данных. Данная технология, объединенная с бесплатным web-сервером Internet Information Server (IIS), быстро стала популярной среди программистов, использующих Visual Basic, которые оценили возможность использования в шаблонах языка VBScript. Как и PHP-шаблоны, ASP-страницы могут включать блоки скриптов

Слайд 28

Технология Active Server Pages

В отличие от технологии РНР, ASP не связан с

Технология Active Server Pages В отличие от технологии РНР, ASP не связан
одним конкретным скриптовым языком. В ASP в качестве стандартного языка используется язык Visual Basic Scripting Edition (VBScript), но может использоваться и язык JavaScript.
В ASP-шаблоны (как и в РНР-шаблоны) могут включаться блоки, выделенные с помощью тэгов <% ... %>, которые содержат код скрипта, выполняемый интерпретатором ASP-шаблонов, при формировании ответа. HTML-разметка, которая находится вне таких блоков, рассматривается как исходный HTML-код и просто переписывается в формируемую HTML- страницу. Кроме этого, в начало шаблона могут добавляться директивы страницы, которые информируют систему обработки об используемом скриптовом языке.

Слайд 29

Технология Active Server Pages

Технология Active Server Pages

Слайд 30

Технология Active Server Pages

Тот факт, что технология ASP входила в состав web-сервера

Технология Active Server Pages Тот факт, что технология ASP входила в состав
Microsoft IIS, сделал её очень привлекательной для использования разработчиками, работающими в ОС Windows. В связи с популярностью технологии ASP она была реализована и на других платформах, помимо Microsoft IIS. Основным преимуществом данной технологии является ускорение разработки и установки относительно простых web-приложений.

Слайд 31

Технология Java Server Pages

Технология JSP была ответом компании Sun на популярность технологии

Технология Java Server Pages Технология JSP была ответом компании Sun на популярность
Microsoft ASP.
В первой строке примера показана директива страницы <%@ pagе ...> (интересно обратить внимание на ее сходство с директивой web-формы ASP.Net), в которой указывается на импортирование классов из пакета java.io. В следующей строке выполняется объявление переменной. Код на языке Java выделяется (также как и в РНР и ASP) специальными последовательностями символов <% ... %>.

Слайд 32

Технология Java Server Pages

Как и технология РНР, выполнение JSP-страниц реализуется с помощью

Технология Java Server Pages Как и технология РНР, выполнение JSP-страниц реализуется с
препроцессора, который преобразует (транслирует) их в исходный код сервлета. HTML-разметка, которая стоит вне выделенных блоков, транслируется в операторы print языка Java (как показано на рис. 3.9).
Технология JSP развивалась, и со временем к ней были добавлены такие новые возможности, как библиотеки JSP-тэгов  (JSP taglib). Библиотека тэгов taglib – это набор специальных (серверных) JSP-тэгов, которые не передаются в HTTP-ответе браузеру, а используются при обработке JSP-страницы в контейнере сервлетов на стороне web-сервера.

Слайд 33

Технология Java Server Pages

Фактически каждый специальный тэг – это некоторая функциональность, для

Технология Java Server Pages Фактически каждый специальный тэг – это некоторая функциональность,
реализации которой в противном случае потребовалось бы включать некоторый встроенный блок, содержащий Java-код. Например, двумя наиболее часто используемыми тэгами являются: и . Префикс "jsp:" говорит о том, что это не HTML-тэг, а специальный (серверный) тэг, который будет использоваться на стороне сервера. Тэг позволяет разработчикам встраивать в JSP-страницу JavaBean-объекты (созданные и наполненные приложением в ходе сеанса работы пользователя). К ним можно получить доступ и изменить их значения с помощью тэгов и .

Слайд 34

Подходы на основе объектных сред

Обычные скриптовые технологии на стороне сервера используют различные

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

Слайд 35

Подходы на основе объектных сред

Объектные среды (фреймворки) представляют собой следующий уровень совершенствования

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

Слайд 36

Подходы на основе объектных сред

В настоящее время есть два подхода к созданию

Подходы на основе объектных сред В настоящее время есть два подхода к
объектно ориентированных web-приложений:
подходы, основанные на наборе специальных web-страниц (web-форм), связанных с описаниями классов, объекты которых будут создаваться и использоваться при их вызове (например, технология ASP.Net Web Forms; технология Java Server Pages);
подходы, основанные на использовании наборов классов, соответствующих шаблону Model-View-Controller (MVC) (например, технологии на основе языка Java – Spring и технология компании Microsoft – ASP.Net MVC).

Слайд 37

Объектный подход на основе форм

Подход на основе web-форм является дальнейшим развитием скриптовых

Объектный подход на основе форм Подход на основе web-форм является дальнейшим развитием
серверных технологий. В данном подходе в HTML-документы добавляются специальные тэги, обрабатываемые на стороне сервера. Кроме этого, можно описывать и использовать собственные тэги в виде классов на универсальных языках программирования (Java, С#, Visual- Basic и т. п.), создавать на стороне сервера объектной модели web-приложения, аналогичные объектной модели локального приложения.

Слайд 40

Подход на основе архитектурного шаблона MVC

В соответствии с архитектурным шаблоном MVC все

Подход на основе архитектурного шаблона MVC В соответствии с архитектурным шаблоном MVC
приложение делится на три логических компонента: 
Модель (Model), 
Представление (View)
Контроллер (Controller).

Слайд 42

Подход на основе архитектурного шаблона MVC

Модель (Model) – это набор классов, реализующих всю

Подход на основе архитектурного шаблона MVC Модель (Model) – это набор классов,
бизнес-логику web-приложения. Эти классы отвечают за обработку данных (сущностей), размещение их в БД, чтение из БД, а также за взаимодействие между самими объектами, составляющими такие данные.

Слайд 43

Подход на основе архитектурного шаблона MVC

 Представление (View) – набор классов и шаблонов, отвечающих

Подход на основе архитектурного шаблона MVC Представление (View) – набор классов и
за интерфейс взаимодействия с пользователями (User Interface, UI). Обычно они формируют HTML-страницы, показывающие пользователям данные из модели. На основе данных модели пользователям представляется возможность их просматривать и редактировать.

Слайд 44

Подход на основе архитектурного шаблона MVC

Контроллер (Controller) – это связующее звено между первыми

Подход на основе архитектурного шаблона MVC Контроллер (Controller) – это связующее звено
двумя компонентами. Классы данного компонента получают данные, содержащиеся в запросе к серверу (например, значения, полученные из отправленной формы) и передают их в Модель для обработки и сохранения. После этого Контроллер выбирает, каким способом показать их клиенту с помощью использования некоторого Представления, и передает ему данные для формирования HTML-ответа.

Слайд 45

Подход на основе архитектурного шаблона MVC

Такое разделение web-приложения на части упрощает структуру

Подход на основе архитектурного шаблона MVC Такое разделение web-приложения на части упрощает
приложения за счет более строго разделения его уровней. Логика пользовательского интерфейса располагается в представлении, логика ввода-вывода в контроллере, а бизнес-логика – в модели. Достигается полное отделение логики работы приложения от представления данных. Разработчик получает полный контроль над формируемым HTML- документом. Облегчается задача выполнения тестирования приложения.
Имя файла: Подходы-к-разработке-web-приложений.pptx
Количество просмотров: 50
Количество скачиваний: 0