Файл: Понятие и принципы построения серверных программ.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 26.06.2023

Просмотров: 78

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Синтаксис языка PHP обширен и функционален. Язык не требует ни объявления переменных, ни указания их типов. Все преобразования типов выполняются интерпретатором автоматически. Язык поддерживает множество управляющих структур – выбор, циклы, ветвления, поддерживаются функции. В языке реализованы некоторые принципы объектно-ориентированного программирования. К достоинствам языка относится богатый набор «встроенных» функций самого широчайшего назначения: файловых, сетевых, математических, строковых, функций для доступа к базам данных и многих других. PHP «изначально» ориентирован на поддержку CGI – при обработке форм в обрабатывающем сценарии становятся автоматически доступны все переменные, которые соответствуют элементам форм, что в значительной мере упрощает работу Web-программиста.

Область применения данной технологии, как и у технологии CGI – очень широка. PHP позволяет динамически создавать HTML-документы, работать с базами данных, сетевыми протоколами. Средства языка подходят для обработки HTML-форм. По сравнению с другими языками сценариев, выполняемыми на стороне сервера, PHP наилучшим образом подходит для решения задач, не предъявляющих высоких требований к производительности: гостевые книги, доски объявлений, системы регистрации, чаты – все это создается на PHP значительно с меньшими трудовыми затратами, нежели на других языках, например, на Perl [7].

Технология ASP компании Microsoft является аналогом рассмотренных серверных технологий. Более всего ASP функционально походит на CGI. ASP-страница – это HTML-документ, содержащий сценарии, которые позволяют работать с управляющими элементами ActiveX, в том числе, и элементами для доступа к базам данных. Особенностью этой технологии является то, что в качестве языков сценариев для написания динамических вставок как правило используются JavaScript и VBScript, хотя допустимо использование и других языков. Сценарий управляет объектами, результаты работы которых представляются в формате Dynamic HTML.

Технологию ASP используют Web-сервера на базе Windows – Internet Information Server и Personal Web Server. Таким образом, ASP в некоторой мере может служить заменой CGI на Windows-платформах.

Функциональные особенности Web-технологий и их сравнение

Перед рассмотрением используемых в Web технологий определимся с терминологией. В данной работе под Web-документом мы будем понимать любой отдельный объект информации, который может быть адресован с помощью URL и который может запросить пользователь по протоколу HTTP. Это может быть изображение, текстовый документ, HTML- или DHTML-страница, может быть и программа, запрос которой пользователем приводит к формированию документа перечисленных или иных типов.


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

Ко второй подкатегории можно отнести Web-документы, интерактивное взаимодействие в которых происходит на стороне клиента. Это, прежде всего, Web-страницы, реализованные с применением технологии DHTML (Dynamic HTML). Помимо «чистого» HTML эти страницы имеют вставки программного кода на языках JavaScript или VBScript, а оформление их может быть выполнено с применением каскадных таблиц стилей. На стороне сервера никакой обработки этих документов не производится – при запросе они без изменения передаются пользователю. Программные вставки интерпретируются на стороне клиента браузером, используемым для просмотра документа, после загрузки документа. Этот подход, безусловно, обладает множеством достоинств, и позволяет создавать интерактивные страницы, содержимое которых меняется в зависимости от действий пользователя без перезагрузки документа из сети. Все происходит на стороне клиента.


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

Место обработки динамической части Web-документа определяет некоторые функциональные возможности технологии. Так, из программного кода документов, исполнение которого производится на сервере, при наличии соответствующих полномочий возможно обращение к серверным базам данных, сетевым ресурсам, файлам сервера и прочей информации. Для интерпретируемых браузером клиента документов возможность доступа к серверным базам данных открывается при применении технологии ActiveX, которая, однако, нацелена на работу в среде Windows. Однако это вызывает повышенную нагрузку на сеть.

Технологии PHP, CGI и Parser, функционирующие на сервере, не позволяют выполнять с данными на стороне пользователя никаких действий. В том числе, невозможна и проверка введенных пользователем данных. Это означает, что, если при заполнении HTML-формы или при другом способе передачи параметров были введены неверные данные, эти данные будут переданы на сервер, и лишь там будет установлена их неправильность. Соответственно, в этом случае пользователю может быть выведено соответствующее сообщение об ошибке, а затем потребуется повторная передача данных. Это создает неоправданную нагрузку на сеть. Этого недостатка лишена технология DHTML: с использованием языков сценариев можно реализовать частичную проверку введенной информации на стороне клиента. Однако следует отметить, что применение технологии DHTML предусматривает передачу исходного текста всех используемых сценариев клиенту, в связи с чем и в этой технологии имеется значительная нагрузка на сеть. В свою очередь, технологии, работающие на сервере, этого недостатка лишены – пользователю передается подготовленный документ, в котором служебная информация отсутствует. В каком из приведенных примеров нагрузка на сеть значительнее – возможно оценить лишь рассматривая две одинаковые реализации Web-страниц с использованием обоих технологий.

Технология DHTML имеет один серьезный недостаток, о котором не упоминалось ранее. Дело в том, что все компоненты этой технологии, за исключением, пожалуй, только HTML, по разному интерпретируются не только разными браузерами, но даже разными версиями одного браузера. Язык VBScript поддерживается не всеми версиями браузеров. Возможности JavaScript так же различаются для разных версий браузеров, производимых разными поставщиками. Аналогичная картина и с объектными моделями документов и браузера. Все это заставляет программиста, по сути, писать в одном Web-документе несколько одинаковых по своим функциям сценариев, чтобы учесть особенности различных браузеров. Это сильно усложняет задачу Web-программиста и значительно увеличивает объем Web-документа.


К недостаткам технологии Parser, как упоминалось выше, могут быть отнесены сложность и «непрозрачность» исходного текста динамических вставок по сравнению с другими языками. Кроме того, это средство имеет ряд функциональных ограничений, упоминаемых в документации. Набор операторов и средств в этой технологии определяется версией интерпретатора инструкций Parser. Ранее было сказано, что данная технология может быть заменена технологией PHP. Учитывая это, в дальнейшем мы не будем касаться этой технологии, считая более целесообразным использование языка PHP.

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

Все перечисленные технологии относятся к технологиям создания интерактивных Web-документов. Технологии PHP, CGI, Parser и ASP относятся к выполняемым на сервере. PHP и Parser требуют для своего функционирования дополнительной программной надстройки к Web-серверу, которая будет интерпретировать и выполнять инструкции на соответствующем языке в теле документа. Выполнение CGI-сценариев возлагается на операционную систему. Только в случае, если сценарий написан на интерпретируемом языке, требует наличия в системе соответствующего интерпретатора. Если CGI-программа написана на компилируемом языке, то для ее работы не требуется никаких дополнительных средств. Технология ASP преимущественно ориентирована на Windows-платформы.

Обработка DHTML-документов производится на стороне клиента. Для этого браузер клиента должен иметь поддержку используемых в странице языков сценариев – JavaScript или VBScript.

Принципы построения серверной части программного обеспечения

Для структурирования информации и облегчения задач поиска в стандартах для Web в одних из первых в Интернет стал применяться гипертекст, по своей сути представляющий собой совокупность документов, связанных друг с другом ссылками. Такой способ организации информации делает процедуру перехода между отдельными документами какого-либо информационного массива наглядной, простой и понятной. В Web используется язык гипертекстовой разметки - Hypertext Markup Language, или HTML.


HTML - это упрощенная версия обобщенного языка SGML (Standard Generalized Markup Language), с помощью которого можно формально определить структуру документов. Язык HTML прост, но достаточно мощен для представления большинства документов, как общего назначения, так и специализированных, и представляет собой полнофункциональный язык разметки документа. Средства языка позволяют определить такие параметры оформления текстовой информации, как выделение различными шрифтами, различными размерами и начертаниями букв, выравнивание абзацев текста и отдельных текстовых фрагментов, центрирование, выделение заголовков, задание перечислений и списков, вставка гиперссылок, таблиц, рисунков и многое другое [1], [2].

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

Сервис World Wide Web (WWW, или Web) представляет собой набор протоколов и программ прикладного уровня, представляющих информацию в гипертекстовом виде и позволяющих осуществлять обмен этой информацией через сеть. Традиционно в качестве транспортного протокола для передачи информации в Интернет применяется протокол TCP/IP, хотя протоколы Web по сути не привязаны к какому-либо конкретному транспортному протоколу. Web имеет клиент-серверную архитектуру: роль сервера выполняет специальная программа - Web-сервер, выполняющаяся на компьютере-сервере. Эта программа имеет доступ к соответствующему информационному массиву (наполнению, контенту), хранящемуся на жестком диске Web-сервера, и отвечает на запросы клиентов, отправляя им запрошенную информацию. На стороне клиента используется программа-клиент, называемаябраузером, позволяющая выводить принятую информацию в соответствии с ее форматом, а так же правилами разметки и отображения ее на устройстве вывода клиентского компьютера. Данная схема взаимодействия осуществляется с помощью протокола передачи гипертекстаHTTP(Hyper Text Transfer Protocol) [3], являющегося текст-ориентированным протоколом, реализующим модель запрос/ответ. HTTP определяет форматы методов-запросов информации и форматы ответов сервера. Для взаимодействия клиента и сервера по протоколу HTTP на сервере традиционно используется 80-й порт TCP/IP.