Сервер приложений

Сервер приложений (англ. application server ) — это программная платформа (software framework) предназначенная для эффективного исполнения процедур (программ, механических операций, скриптов) которые поддерживают построение приложений. Сервер приложений действует как набор компонент доступных разработчику программного обеспечения через API (Интерфейс прикладного программирования) определенный самой платформой.

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

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

Преимущества серверов приложений

Целостность данных и кода
Выделяя бизнес логику на отдельный сервер или на небольшое количество серверов, могут быть гарантированы обновления и улучшения приложений для всех пользователей. Не существует риска того что старая версия приложения получит доступ к данным или сможет их изменить старым несовместимым образом.
Централизованная настройка и управление
Изменения в настройках приложения, таких как изменение сервера базы данных или системных настроек могут производиться централизованно.
Безопасность
Сервер приложений действует как центральная точка, используя которую поставщики сервисов могут управлять доступом к данным и частям самих приложений, считается преимуществом защиты. Её наличие позволяет переместить ответственность за аутентификацию с потенциально небезопасного уровня клиента на уровень сервера приложений, при этом дополнительно скрывая уровень базы данных.
Поддержка транзакций
Транзакция представляет собой единицу активности во время которой много изменений ресурсов (в одном или различных источниках) может быть выполнено атомарно (как неделимая единица работы). Конечные пользователи при этом могут выиграть от стандартизованного поведения системы, от уменьшения времени на разработку и от снижения стоимости. В то время как сервер приложений выполняет массу нужного генерирования кода, разработчики могут сфокусироваться на бизнес логике.

Примеры реализации

  • Под сервером приложений в случае Java EE подразумевается комплекс программ, реализующих концепцию Java EE и позволяющих запускать в себе Java EE приложения. К классу серверов приложений относятся такие продукты как Sun GlassFish, IBM WebSphere, RedHat JBoss Application Server, Apple WebObjects (англ.) и др.
  • Zope, развитый сервер web-приложений.
  • Терминальные серверы, например поставляемые компанией Citrix

См. также

Ссылки