Файл: Технология CGI, заголовки ответов и запросов CGI 13.pdf
Добавлен: 23.04.2023
Просмотров: 96
Скачиваний: 2
Программное обеспечение для ведения форумов, например, phpBB.
Кроме того, многие популярные веб-сайты, в том числе Yahoo!, Википедия, Facebook, Digg разработаны с использованием PHP[Котеров, Д. В. PHP 7 / Д. В. Котеров, И. В. Симдянов. — СПб.: БХВ-Петербург, 2016.]. Также с помощью языка PHP возможно написание объектно-ориентированного кода.
2.4 Технология Java Servlets
Технология Java Servlets (сервлеты) была разработана компанией Sun Microsystems, чтобы использовать преимущества платформы Java для решения проблем технологии CGI и API расширений сервера. Технология решает проблему производительности, выполняя все запросы как нити в одном процессе. Сервлеты также могут легко разделять ресурсы, и не зависят от платформы, поскольку выполняются внутри Java Virtual Machine (JVM) [Гаврилова И.В. Разработка приложений [Электронный ресурс] : учеб. пособие /И.В. Гаврилова. — 2-е изд., стер. — М.: ФЛИНТА, 2012 .] .
Технология обладает широкими функциональными возможностями. Большое количество библиотек предоставляет самые разнообразные средства, необходимые в разработке. Модель безопасности Java делает возможным точное управление уровнем доступа, например позволяя доступ только к определенной части файловой системы. Обработка исключений Java делает сервлеты более надежным средством, чем расширения серверов на C/C++.
Любой сервлет является классом Java, и, поэтому, должен быть выполнен внутри Java VM так называемым сервлет - контейнером (servlet container, servlet engine). Сервлет - контейнер загружает класс сервлета при первом обращении к нему, либо сразу при запуске сервера при специальном указании. Далее сервлет остается загруженным для обработки запросов, пока он не выгружается явным образом, либо до остановки контейнера.
Технология является распространенной, и может быть использована со всеми популярными Web - серверами (Enterprise Server от Netscape, Microsoft Internet Information Server (IIS), Apache, Java Web Server от Sun) [Будилов В.А. Основы программирования для интернета / В.А. Будилов –СП6.: БХВ-Петербург,2013].
Программный интерфейс позволяет сервлетам обрабатывать запросы на любом уровне, при необходимости используя любые низкоуровневые данные, такие как заголовки запросов, их тип, и т.д. Это дает большую гибкость при разработке нестандартных обработчиков, например при работе с двоичным или мультимедийным содержимым.
Поскольку сервлеты обрабатываются в одном процессе с помощью создания потоков внутри него, программный код сервлетов должен быть потоке - безопасным. Это накладывает определенную ответственность на программиста, но с помощью стандартных приемов, таких как отказ от использования полей в классах сервлетов, и хранение необходимых данных в контексте или внешнем хранилище такие свойства кода легко достигаются. При этом сервлеты приобретают такое неоценимое преимущество как масштабируемость.
Итак, сервлеты обеспечивают компонентный, платформе - независимый метод для построения web-приложений без ограничений производительности CGI программ. Они имеют широкий диапазон доступных прикладных API, позволяют использовать все преимущества Java, легко расширяются и масштабируются, поддерживаются всеми популярными Web - серверами. Все это делает их отличным средством разработки крупных Web - систем.
2.5 Технология Java Server Pages
Технология Java Server Pages (JSP) от компании Sun Microsystems явилась надстройкой над технологией Java Servlets, обеспечивающей более быструю и простую разработку web - приложений с помощью применения шаблонного подхода.
Для понимания архитектуры и преимуществ JSP необходимо знать технологию Java Servlets, поскольку они тесно связаны. Страницы Java Server Pages представляют из себя шаблоны страниц HTML, схожие с шаблонами РНР и ASP. Основным отличием от других подобных технологий является то, что код, находящийся внутри специальных тэгов не интерпретируется при обращении к странице, а предварительно компилируется в Java Servlet. Статические участки шаблона преобразуются в вызовы к функциям для их помещения в поток вывода. Код компилируется так, как если бы он находился внутри сервлета. Компиляция JSP страниц в сервлеты является трудоемкой, но проводится один раз - либо при первом обращении к странице, либо при запуске сервлет – контейнера [Будилов В.А. Основы программирования для интернета / В.А. Будилов –СП6.: БХВ-Петербург,2013].
Технология JSP удачно объединяет шаблонный подход к построению сайтов и все преимущества Java платформы. Благодаря этому технология получила широкое распространение как среди профессиональных коммерческих разработчиков, так и при создании открытых бесплатных проектов. Важным шагом к расширению шаблонного подхода стали так называемые библиотеки тэгов (tag libraries). Это гибкая возможность интегрировать стандартные, сторонние, или собственные программные компоненты в страницы. Простота создания и использования привели к большой популярности библиотек тэгов.
Благодаря работе на основе Java технология JSP не привязана к конкретной аппаратной или программной платформе. Таким образом JSP являются отличным решением для использования в гетерогенных средах.
Производительность технологии ограничена объективными особенностями архитектуры [Гаврилова И.В. Разработка приложений [Электронный ресурс] : учеб. пособие /И.В. Гаврилова. — 2-е изд., стер. — М.: ФЛИНТА, 2012 .].
Во-первых, страницы должны быть откомпилированы в сервлеты, что занимает значительное время.
Во-вторых сервлеты выполняются в среде выполнения Java, т.е. в режиме интерпретации. Однако эти ограничения компенсируются дополнительными возможностями. Современные контейнеры поддерживают кластеризацию серверов, что перекладывает нагрузку на аппаратное обеспечение. Это является экономически оправданным и простым решением. Задача же компиляции в сервлеты является разовой и производится либо при первом обращении, либо при запуске сервлет - контейнера. Таким образом это не сказывается на общей производительности системы при рассмотрении за достаточный период времени.
Глава 3 Серверы приложений: плюсы и минусы
Преимущества
Целостность кода и данных
Размещение бизнес-логики на выделенном сервере или ограниченном числе серверных компьютеров гарантирует доступ к обновленному и модернизированному ПО для всех клиентов. Это исключает риск доступа и управления данными из устаревших и, возможно, несовместимых программ.
Централизованное управление
Изменения в конфигурации прикладных программ, такие как, например, смена сервера баз данных, выполняются централизованно.
Безопасность
Централизованные средства, через которые поставщик услуг (сервис-провайдер) может управлять доступом к данным и компонентам приложения, позволяют выполнять проверку подлинности потенциально ненадежных клиентов в среднем слое и не затрагивать уровень базы данных.
Производительность
Сервер приложений может решать задачи балансировки сетевого трафика и распределения нагрузки между другими физическими серверами системы.
Общая стоимость владения
Совокупность перечисленных выше преимуществ, а в дополнение к ним перераспределение затрат на оборудование с клиентской на серверную сторону, может привести к экономии средств для организации. Так же на снижении общей стоимости владения может отразиться практика аренды программного обеспечения. Справедливости ради нужно отметить, что стоимость самого серверного ПО, а также затраты на его внедрение и сопровождение могут быть весьма высокими.
Недостатки
Централизация