Сервер приложений выполняет такие функции как
Вынесение прикладной логики в отдельный уровень представляет разработчикам дополнительную гибкость в создании распределенных информационных систем. Размещение и выполнение программ на стороне сервера снижает требования к аппаратному обеспечению клиентов и уменьшает проблемы обеспечения совместимости в гетерогенной сетевой среде.
Сервер приложений — это сервисная программа, которая обеспечивает доступ клиентов к прикладным программам, выполняющимся на сервере. Сервер приложений обычно выделяется как среднее звено (рис. 1) в трехуровневой клиент-серверной архитектуре (3-tier):
Модель "сервер приложений"
- Первый уровень, интерфейсный, как правило, графический (GUI).
- Средний уровень, исполнимый программный код, размещенный обычно на выделенном сервере.
- Третий уровень, фоновый — базы данных. Сюда же относятся, унаследованные средства доступа к данным и управления транзакциями.
В сетевой среде сервер приложений является посредником между фронт-эндами клиентов и серверами баз данных.
Бизнес-логика может быть реализована на стороне сервера как целиком (удаленный код), так и частично (распределенный код). В первом случае к серверу могут обращаться терминалы и «тонкие» клиенты и такое взаимодействие соответствует модели «сервер терминалов». «Толстые» и rich-клиенты могут получать компоненты серверного приложения и выполнять их на своей стороне (например javascript, апплеты, flash).
Мобильный софт
Задачи, решаемые серверами приложений хорошо иллюстрируются на примере мобильных сервисов. Возможности мобильных устройств изначально ограничены физическими размерами и временем автономной работы (остальные ограничения, в основном, вытекают из этих двух). Мобильное приложение разрабатывается с учетом этих ограничений, но так как софт для телефона должен быть адаптирован для использования на конкретной модели, то процесс разработки усложняется. Разделив мобильное приложение на клиентскую (представление данных) и серверную (прикладная логика) части, разработчик получает следующие возможности:
- урезанная по функционалу клиентская часть получается менее требовательной к ресурсам;
- для поддержки новых устройств нужно адаптировать только фронт-энд, не затрагивая прикладную логику;
- изменения в программе (расширение функциональности, исправление ошибок и т. п.) выполняются на сервере приложений и распространяются на всех клиентов.
Клиенты могут взаимодействовать с приложениями через API сервера ( Java-клиент <—> контейнер сервлетов <—> сервлет ). Большую гибкость и универсальность представляет взаимодействие через сторонние сервисы, в первую очередь — через веб-сервер.
Понятие сервера приложений традиционно связывают с платформой Java, указывая на то, что сервер Java-приложений представляет реализацию спецификации сервлетов, возможно в виде JSP, и еще некоторые сервисные услуги, в первую очередь соединение с базой данных.
Но это нечто большее и меньшее одновременно: сервер приложений предоставляет среду, в которой прикладные программы могут работать, независимо от того, что и как именно они делают.
Поэтому, чтобы ответить на вопрос, является ли (и в какой степени) некое сервисное ПО сервером приложений, стоит сравнить его заявленные функции со списком атрибутов, присущих этой категории:
Реализации
По приведенным признакам в рассматриваемую категорию попадают, например, традиционные терминал-серверные системы, технология CGI, контейнеры Java-сервлетов и др.
Унаследованные решения
Серверы терминалов представляют среду для удаленного выполнения программ, в качестве которой выступает сама операционная система. Доступ к ним осуществляется по протоколам удаленного управления (telnet, ssh, RDP, VNC и т. п.) из клиентского ПО (эмулятор терминала, средства управления удаленным рабочим столом и т.п.). Управление запущенной программой выполняется через эмулируемый на клиенте пользовательский интерфейс (текстовый или графический) операционной системы. На серверной стороне взаимодействие программ с ОС реализуется через системные вызовы. Управление также осуществляется средствами операционной системы. Разработка может вестись на любом языке, доступном в конкретной ОС.
Общий шлюзовый интерфейс (CGI) — технология доступа к приложениям через веб-сервер. Отличия от сервера терминалов здесь в том, что пользовательский интерфейс предоставляется в виде веб-страниц. Запросы веб-клиентов, обращенные к программам, размещенным в выделенном каталоге (как правило cgi или cgi-bin) перенаправляются на их вход через стандартный поток ввода (stdin). Результаты выполнения в виде гипертекста приложение возвращает веб-серверу через stdout.
Серверы Java-приложений
Платформа Java является индустриальным стандартом, позволяющим создавать из унифицированных компонентов интероперабельные программные решения для самых разных систем, в которых может быть запущена виртуальная машина Java (JVM).
Контейнер сервлетов — один из архитектурных компонентов J2EE, представляющий окружение для выполнения сервлетов. Сервлет — это Java-приложение, выполняющееся на стороне сервера (в отличие от апплета). Контейнер сервлетов может работать как полноценный самостоятельный сервер, но чаще используется (интегрируется) совместно с другим серверным ПО. Обеспечивает обмен данными между сервлетом и клиентами, берёт на себя выполнение таких функций, как создание программной среды для функционирующего сервлета, идентификацию и авторизацию клиентов, организацию сессии для каждого из них.
Концепция сервлет-контейнера позволяет создавать как универсальные, так и специализированные серверы приложений (например, для мобильных сервисов).
Примером реализации контейнера сервлетов является Apache TomCat, который используется в таких серверах приложений как Apache Geronimo, JBoss, GlassFish, IBM WebSphere Application Server (WAS).
Другие решения
Язык python, получивший популярность во многом благодаря Google, является основным средством разработки для сервера веб-приложений Zope.
Для сценариев на языке PHP, широко используемом для создания веб-сайтов, компания Zend Technologies (разработчик самого языка PHP) создала сервер приложений Zend Server.
Серверы приложений: плюсы и минусы
Преимущества
Целостность кода и данных
Размещение бизнес-логики на выделенном сервере или ограниченном числе серверных компьютеров гарантирует доступ к обновленному и модернизированному ПО для всех клиентов. Это исключает риск доступа и управления данными из устаревших и, возможно, несовместимых программ.
Централизованное управление
Изменения в конфигурации прикладных программ, такие как, например, смена сервера баз данных, выполняются централизованно.
Безопасность
Централизованные средства, через которые поставщик услуг (сервис-провайдер) может управлять доступом к данным и компонентам приложения, позволяют выполнять проверку подлинности потенциально ненадежных клиентов в среднем слое и не затрагивать уровень базы данных.
Производительность
Сервер приложений может решать задачи балансировки сетевого трафика и распределения нагрузки между другими физическими серверами системы.
Общая стоимость владения
Совокупность перечисленных выше преимуществ, а в дополнение к ним перераспределение затрат на оборудование с клиентской на серверную сторону, может привести к экономии средств для организации. Так же на снижении общей стоимости владения может отразиться практика аренды программного обеспечения. Справедливости ради нужно отметить, что стоимость самого серверного ПО, а также затраты на его внедрение и сопровождение могут быть весьма высокими.
Недостатки
Централизация
Системы, построенные на основе сервера приложений, имеют один основной недостаток, присущий всем централизованным решениям — «падение» сервера приведет к недоступности программ для всех клиентов. К тому же эффекту приведут и неполадки в сетевом подключении.
Защита информации
Эта проблема, в принципе, актуальна для любых сетевых решений, использующих для передачи данных инфраструктуру публичных сетей.
Для веб-приложений эти компоненты обычно работают на той же машине, где запущен веб-сервер. Их основная работа — обеспечивать создание динамических страниц. Однако современные серверы приложений нацелены гораздо больше не на то, чтобы генерировать веб-страницы, а на то, чтобы выполнять такие сервисы как кластеризация, отказоустойчивость и балансировка нагрузки, позволяя таким образом разработчикам сфокусироваться только на реализации бизнес-логики.
Обычно этот термин относится к Java-серверам приложений. В этом случае сервер приложений ведет себя как расширенная виртуальная машина для запуска приложений, прозрачно управляя соединениями с базой данных с одной стороны и соединениями с веб-клиентом с другой.
Содержание
Преимущества серверов приложений
Целостность данных и кода Выделяя бизнес логику на отдельный сервер, или на небольшое количество серверов, можно гарантировать обновления и улучшения приложений для всех пользователей. Отсутствует риск, что старая версия приложения получит доступ к данным или сможет их изменить старым несовместимым образом. Централизованная настройка и управление Изменения в настройках приложения, таких как изменение сервера базы данных или системных настроек, могут производиться централизованно. Безопасность Сервер приложений действует как центральная точка, используя которую, поставщики сервисов могут управлять доступом к данным и частям самих приложений, что считается преимуществом защиты. Её наличие позволяет переместить ответственность за аутентификацию с потенциально небезопасного уровня клиента на уровень сервера приложений, при этом дополнительно скрывая уровень базы данных. Поддержка транзакций Транзакция представляет собой единицу активности, во время которой большое число изменений ресурсов (в одном или различных источниках) может быть выполнено атомарно (как неделимая единица работы). Конечные пользователи при этом могут выиграть от стандартизованного поведения системы, от уменьшения времени на разработку и от снижения стоимости. В то время как сервер приложений выполняет массу нужного генерирования кода, разработчики могут сфокусироваться на бизнес-логике.Примеры реализации
См. также
Ссылки
- Java Enterprise Edition
- Архитектура программного обеспечения
- Серверы приложений
Wikimedia Foundation . 2010 .
Полезное
Смотреть что такое "Сервер приложений" в других словарях:
Сервер приложений — сервер, предназначенный для выполнения прикладных процессов. Сервер приложений: взаимодействует с клиентами, получая задания; и взаимодействует с базами данных, выбирая данные, необходимые для обработки. См. также: Серверы приложений Сетевые роли … Финансовый словарь
Сервер баз данных — сервер, выполняющий обработку запросов, направляемых базе данных. См. также: Серверы приложений Системы управления базами данных Финансовый словарь Финам … Финансовый словарь
Сервер приложений это набор физического и программного обеспечения, которое способно обеспечить доступ клиентов к программам, выполняющихся непосредственно на серверном оборудовании. По сути это некий комплект, к которому можно получить доступ при помощи специальных API и обеспечить не только вывод каких-либо данных, но и оптимизировать исполнение программного кода на любых устройствах. Давайте подробней разберемся в том, как работает сервер приложений.
Где используется и что делает сервер приложений
Давайте представим на минуту, что вы владеете неким интернет-ресурсом, основная задача которого делиться с пользователями определенной информацией. В один момент вы решили расширить
возможности своего сервиса, но с их внедрением часть функций в браузерах мобильных устройств попросту перестала работать, после чего вы приступили к созданию специальной программы для смартфонов, которая будет поддерживать весь необходимый программный комплекс. Но и здесь вы натолкнулись на грабли, так как «начинка» всех устройств кардинально отличается друг от друга, что ограничивает его использование.
Для избавления от этой проблемы весь программный пакет будет разбиваться на три части:
- графическая оболочка, которая будет устанавливаться на устройства;
- программный код, который размещается на сервере;
- базы данных и средства управления ими.
То есть пользователь, устанавливает только некую графическую часть, которая отправляет определенные запросы на сервер. Здесь данные обрабатываются и при помощи серверных приложений генерируется код, который и будет отправлен обратно, в клиентское приложение. Получается, что сервер приложений обеспечивает выполнение некоего кода, который был отправлен посредством графического компонента.
Еще одним примером можно назвать серверы приложений, используемых при создании сайтов. Прежде чем вы увидите эту статью она будет занесена в базу данных, потом специальная программы извлечет ее оттуда, отформатирует, основываясь на шаблонах, а далее – отправит в браузер.
Веб-сервер и сервер приложений
Требования к серверу приложений будут отличаться от сферы его использования, поэтому универсального способа не существует. Лучше всего - получить консультацию у специалистов, а они уже расскажут вам обо всех нюансах. Звоните нам или приходите в офис, угостим кофе и поможем в выборе.
Сервер приложений - это тип сервера, предназначенный для установки, работы и размещения приложений. В первые годы существования серверов приложений количество приложений, передаваемых в Интернет, было огромным. Эти приложения становились все больше и больше с требованием добавлять все больше и больше функциональных возможностей к приложению, а также становились более сложными для запуска и обслуживания. Поэтому возникла необходимость в какой-то программе, которая будет находиться в сети, в то время как она будет эффективно и организованно распределять возможности приложений.
И, следовательно, термин сервер приложений был придуман и в конечном итоге введен в мир Интернета.
Определение
Сервер приложений - это программа, которая находится на стороне сервера, и это серверный программист, обеспечивающий бизнес-логику для любого приложения. Этот сервер может быть частью сети или распределенной сети.
Теперь, если мы хотим узнать назначение серверной программы, она идет следующим образом:
В идеале серверные программы используются для предоставления своих услуг клиентской программе, которая либо находится на том же компьютере, либо находится в сети.
Работает
Они в основном используются в веб-приложении с трехуровневой архитектурой. Положение, в которое входит сервер приложений, описано ниже:
- Уровень 1 - это графический интерфейс, который находится на стороне клиента и обычно является тонким клиентом (например, браузером)
- Уровень 2 - называется средним уровнем, состоящим из сервера приложений.
- Уровень 3 - это третий уровень, который является внутренними серверами. Например, сервер базы данных.
Как мы видим, они обычно связываются с веб-сервером для обслуживания любого запроса, поступающего от клиентов.
Клиент сначала делает запрос, который отправляется на веб-сервер. Затем веб-сервер отправляет его на средний уровень, т.е. на сервер приложений, который дополнительно получает информацию с 3- го уровня (например, сервер базы данных) и отправляет ее обратно на веб-сервер. Далее веб-сервер отправляет обратно необходимую информацию клиенту. Для обработки запросов через веб-серверы используются разные подходы, и некоторые из них - это JSP (страницы сервера Java), CGI, ASP (страницы активных серверов), сценарии Java, сервлеты Java и т. Д.
Использование серверов приложений
Это помогает клиентам обрабатывать любые запросы, подключаясь к базе данных и возвращая информацию обратно на веб-серверы. Основное назначение сервера приложений приведено ниже:
- Механизм уменьшения размера и сложности клиентских программ.
- Для необходимости кэширования и контроля потока данных для повышения производительности.
- Механизм для обеспечения безопасности данных, а также трафика конечного пользователя.
Хотя они могут иметь различное назначение, не все серверы приложений используются для одного и того же набора функций. Например, кому-то это может понадобиться для масштабируемости, другим - чтобы лучше управлять приложениями для Интернета и т. Д.
преимущества
- Предоставляет механизм для работы со всеми компонентами и запущенными сервисами, такими как управление сеансами, синхронные и асинхронные клиентские уведомления.
- Становится очень легко устанавливать приложения в одном месте.
- Изменяя любую конфигурацию, такую как перемещение сервера базы данных, все это можно сделать централизованно из одного места.
- Патчи и обновления безопасности легко развернуть через них.
- Это позволяет распределять запросы между различными серверами в зависимости от их доступности. Это делается с помощью балансировки нагрузки.
- Это обеспечивает безопасность приложений.
- Это обеспечивает отказоустойчивость с возможностью восстановления / восстановления после сбоя.
- Это экономит много времени, если нам необходимо установить копию конфигурации на каждой машине в отдельности.
- Поддерживает поддержку транзакций.
- Когда дело доходит до производительности, сервер приложений значительно повышает производительность приложений, поскольку он основан на модели клиент-сервер.
Примеры
Сегодня используется огромное количество серверов приложений. Некоторые из примеров приведены ниже:
- JBoss
- Weblogic
- Websphere
- Стеклянная рыба
- Tcat Server
- Apache Geronimo
- JRun
- Oracle OC4J
- Сервер Sun GlassFish Enterprise
- SAP Netweaver AS
- Sybase Enterprise Application Server
Типы сервера приложений
Серверы приложений могут быть трех категорий:
- Active Application Server - этот сервер используется для обеспечения поддержки и богатой среды для бизнес-логики, которая задействована на стороне сервера и выражается в форме правил, компонентов и объектов. Эти типы серверов также называются серверами с состоянием.
- Информационный веб-сервер - этот тип сервера используется для генерации страниц из базы данных с использованием шаблонов HTML. Эти типы серверов также известны как серверы без сохранения состояния.
- Сервер компонентов - это программное обеспечение играет основную роль в предоставлении доступа к базе данных таких программных компонентов, как COBRA, DLL и Java Bean. Он также обеспечивает поддержку запросов на обработку транзакций.
Выбор правильного
Чтобы выбрать правильный вариант для своих приложений, вы можете начать с определения и определения приоритетов требований конкретной среды. Немногие из факторов могут быть:
- Производительность
- администрация
- развитие
- Служба поддержки
- податливость
- Масштабируемость
- надежность
- Стоимость
Выполнив вышеуказанную задачу, вы можете приступить к поиску сервера приложений, который наилучшим образом соответствует вашим требованиям. Например, если у вас большая клиентская база, производительность приложения должна быть наивысшим приоритетом. И если ваша компания небольшая, стоимость может быть фактором. Масштабируемость и администрирование также являются одним из основных факторов, влияющих на то, растет ли ваше приложение с каждым днем.
Вывод
В рамках этого поста мы узнали об обзоре сервера приложений, их работе и использовании, преимуществах наличия и выбора правильного сервера. В конце этой статьи аудитория должна быть в состоянии лучше выбрать сервер приложений, который может соответствовать их среде.
Рекомендуемые статьи
Это было руководство к тому, что такое сервер приложений. Здесь мы обсудили преимущества, приложения и типы серверов приложений. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -
Читайте также: