Прогрессивные технологические системы
При разработке приложений серверной стороны необходимо выбрать базовую технологию, на которой это приложение будет основано. В статье рассматриваются наиболее популярные технологии — PHP, JSP, Java Servlets, ASP.NET, приводятся преимущества и недостатки каждой из технологий для разных классов задач и делаются общие выводы о применимости технологий для разработки сложного Web приложения или платформы.
На данный момент существуют и успешно применяются различные виды технологий построения Web приложений серверной стороны. Все такие приложения имеют общую цель — реализацию бизнес — логики на стороне сервера и генерацию кода для клиента. Также у всех этих приложений одинакова архитектура взаимодействия сервера и клиента и общий протокол взаимодействия — HTTP. Общая логика работы приложения серверной стороны представлена на рисунке 1.
Как видно из рисунка, работа серверных приложений происходит в три основных этапа:
- 1. Запрос. Клиент, используя web — браузер, инициирует запрос к серверу.
- 2. Обработка запроса, подготовка ответа. После получения запроса web — сервер проводит обработку запрашиваемого ресурса. В случае, если запрашивается статический ресурс, такой как HTML страница, рисунок, документ, эта информация форматируется для протокола HTTP и передается клиенту в качестве ответа. Если же запрашивается динамический ресурс, запрос передается на обработку соответствующему контейнеру web — приложений, где и происходит дальнейшая работа.
- 3. После формирования, данные передаются клиенту посредством протокола HTTP в качестве ответа. Ответ содержит данные (обычно HTML код, либо двоичные данные), а также дополнительные параметры, передаваемые в заголовках HTTP ответа.
Работа приложений серверной стороны всегда происходит по описанному выше сценарию. Очевидно, что такой подход создает сложности при создании webприложений, основной из которых является отсутствие состояния у web — приложения (так называемое stateless programming). Это означает, что приложение работает исключительно в режиме запрос-ответ, не имея данных о предыдущих шагах пользователя или какой-либо иной постоянной информации. Для решения этой проблемы применяется понятие пользовательской сессии, которая позволяет хранить данные на сервере в течение сеанса работы пользователя.
Однако наличием сессий сложности при создании web — приложений полностью не устраняются. Чем больше возможностей предоставляет платформа реализации для приложений серверной стороны в преодолении этих сложностей, тем быстрее и эффективнее может вестись разработка. Далее будут рассмотрены различные подходы к созданию приложений серверной стороны, их достоинства и недостатки, а также рассмотрены конкретные платформы.