Сервер приложений что это такое


Сервер приложений - это... Что такое Сервер приложений?

Сервер приложений (англ. 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

См. также

  • Тонкий клиент
  • Трёхзвенная архитектура
  • Веб-приложение

Ссылки

  • Simple explanation of application servers (англ.)

dic.academic.ru

Сервер приложений: что это и как работает?

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

Где используется и что делает сервер приложений

Давайте представим на минуту, что вы владеете неким интернет-ресурсом, основная задача которого делиться с пользователями определенной информацией. В один момент вы решили расширить

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

Для избавления от этой проблемы весь программный пакет будет разбиваться на три части:

  • графическая оболочка, которая будет устанавливаться на устройства;
  • программный код, который размещается на сервере;
  • базы данных и средства управления ими.

То есть пользователь, устанавливает только некую графическую часть, которая отправляет определенные запросы на сервер. Здесь данные обрабатываются и при помощи серверных приложений генерируется код, который и будет отправлен обратно, в клиентское приложение. Получается, что сервер приложений обеспечивает выполнение некоего кода, который был отправлен посредством графического компонента.

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

Примеров можно приводить практически бесконечное количество и это необязательно должна быть именно связь в среде веб. Например, в операционных системах Windows, в качестве посредника выступает программная платформа .Net и Java.

Веб-сервер и сервер приложений

Многие люди, которые только начинают знакомиться с сетевыми технологиями довольно часто задаются вопросом разницы между веб-сервером и сервером приложений. В последние годы отличительных особенностей становится все меньше, так как на первых не только находятся статические данные, а и динамические, которые генерируются в процессе выполнения программы. Стоит помнить, что функции сервера приложений заключаются в создании некоего кода, который может передаваться клиентам (разработчикам) в виде готового решения посредством различных технологий и протоколов, включая HTTP.

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

kiopro.com

Топологии серверов приложений WebSphere Application Server для обеспечения высокой доступности

Здравствуй, Хабр! В этой статье я хочу рассказать какие есть подходы для обеспечения отказоустойчивости и масштабирования инфраструктуры серверов приложений WebSphere Application Server 7 компании IBM. Для начала немного терминологии, которая будет использоваться:

Высокая доступность (англ. High availability) — это метод проектирования системы, позволяющий достигать высокого уровня доступности системы в течение какого-либо промежутка времени.

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

Доступность в основном выражется в процентах или в «девятках».

А = MTBF / ( MTBF + MTTR). 90% («одна девятка») — 16.8 часов простоя в неделю 99% («две девятки») — 1.7 часа простоя в неделю 99.9% («три девятки») — 8.8 часов простоя в год 99.99% («четыре девятки») — 53 минуты простоя в год

MTBF (англ. Mean time between failures ) — Средняя продолжительность работы между остановками, то есть показывает, какая наработка в среднем приходится на один отказ.

MTTR (англ. Mean Time to Restoration ) — среднее время, необходимое для восстановления нормальной работы после возникновения отказа.

SPOF (англ. single point of failure ) — часть системы, которая в случае отказа делает систему недоступной.

WAS — J2EE сервер приложений компании IBM. Существует несколько вариантов поставки:

0. Community Edition — открытый проект на базе Apache Geronimo; 1. Express — 1 узел/1 сервер приложений; 2. Base — 1 узел/ n серверов приложений; 3. Network Deployment (ND) — включает в себя набор компонет для построения масшабируемой и отказоустойчивой инфраструктуры из большого количества серверов приложений; 4. и еще несколько различных специфических вариантов (for z/OS, Hypervisor Edition, Extended Deployment). Далее будем рассматривать все, что связано с именно с версией Network Deployment 7 (WAS ND ). На данный момент уже существют версии 8.0 и 8.5, но подходы описанные в статье применимы и к ним. Основные термины относящиеся к топологиям Network Deployment:

Ячейка — Организационный юнит, который включает в себя менеджер развертывания(Deployment Manager) и несколько узлов(Node). Менеджер развертывания управляет узлами посредством агентов узлов(Node Agent).

Узел состоит из агента узла, который, как мы уже понимаем, используется для управления, и одним или несколькими серверами приложений (Application Server).

Такая иерархия (Ячейка / Узел / Сервер) помогает организовать все множество серверов и объединять их в группы согласно функциональности и требованиям по доступности.

Сервер приложений — JVM 5й спецификации Java EE (версии WAS 8 и 8.5 соостветствуют спецификации Java EE 6)

Профиль — набор настроек сервера приложений, которые применяются при его запуске. При старте экземпляра JVM, настройки ее окружения считываются из профиля и от его типа зависят функции которые будет выполнять сервер приложений. Менеджер развертывания, агент узла, сервер приложений — это частные примеры профилей. Далее в статье мы рассмотрим зачем и когда применять различные профили и как они взаимодействуют вместе, и чего позволяют добиться.

Stand-alone профиль отличается от федерированного тем, что управление несколькими Stand-alone профилями выполняется из различных административных консолей, а федерированные профили управляются из единой точки, что намного удобнее и быстрее.
Постановка задачи
Итак, исходя из поставленных задач по обеспечению высокой доступности некой бизнесс-системы работающей на инфраструктуре серверов приложений нам необходимо построить такую инфраструктуру, которая будет обеспечивать выполнение этих требований.
Уровень I
Cтандартная трехуровневая архитектура. Имеем один физический/виртуальный сервер на котором расположен stand-alone профиль WAS со своей административной консолью, СУБД и HTTP-сервер. Перечислим какие точки отказа присутствуют в данной конфигурации и от уровня к уровню будем пытаться их устранить: 1. HTTP cервер; 2. Сервер приложений; 3. База данных; 4. Все програмные компоненты, которые обеспечивают взаимодействие нашего сервера с другими компонентами инфраструктуры ПО ( Firewall, LDAP, и т.д.) 5. Аппаратные средства.
Уровень II

На этом уровне мы устраняем единственную точку отказа — сервер приложений. Для этого нам надо создать кластер из друх серверов приложиний и для управления ими нам понадобятся еще две компоненты: а) менеджер развертывания; б) агент управления. Менеджер развертывания фактически выполняет функцию обьединения административных консолей всех серверов приложений, которые находятся под его управлением. При изменении конфигураций одного или нескольких серверов, настройки «спускаются» от менеджера равертывания на сервера посредством агентов управления. В случае отказа одного из серверов приложений HAManager автоматически восстановит все данные на втором сервере.
Уровень III

На этом уровне мы можем закрыть сразу несколько точек отказа — HTTP-сервер и физический сервер на котором крутятся сервера приложений. Для этого вынесем нашу БД за пределы наших физических серверов. Уже на 2-х серверах развернем 2 узла и в каждом из них создадим по паре серверов приложений. И обьеденим все сервера в единый кластер. В случае отказа одного из физических серверов данные и состояния приложений будут восстановлены на второй системе. В дополнение к этому используя балансировщик нагрузки (еще один тип профиля) мы можем распределить поступающие запросы между системами и таким образом распределить нагрузку и повысить производительность работы наших приложений. Применяя данную топологию мы получаем новую возможную точку отказа — баланcировщик нагрузки.
Уровень VI
Дополним уровень III резервным балансировщиком нагрузки и в дополнение к этому обеспечим надежность нашей БД. Детально мезанизмы кластеризации баз данных рассматривать не будем, т.к. они сами достойны отдельной статьи.

Уровень V

И финальным аккордом продублируем всю инфраструктуру и перенесем ее подальше, на случай если наш дата-центр затопит

В дополнение к этому, возможно будет не лишним вынести наши Front-end сервера в DMZ зону.

Итого
Как видим обеспечение непрерывной работы критических бизнесс-систем может быть ОЧЕНЬ затратным и прежде чем начинать построение таких решений необходимо оценить все риски и готовность к внедрению.

Спасибо за внимание.

Теги:
  • IBM
  • WebSphere
  • websphere application server
  • high availability

habr.com

IT-блог о веб-технологиях, серверах, протоколах, базах данных, СУБД, SQL, компьютерных сетях, языках программирования и создание сайтов.

Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем рубрику Сервера и протоколы. А также рубрику Вопрос-ответ, в которой у нас есть раздел «Что такое?». В этой записи мы разберемся со значением термина сервер и поговорим о том, что такое серверный компьютер и что такое серверное приложение. Сначала мы разберемся откуда появилось слово сервер, а затем разберемся для чего нужны серверные машины и почему некоторые программы называют серверными приложениями и в чем их отличие от обычных приложений.

Что такое сервер? Серверный компьютер и серверное приложение

Общее определение термина сервер

Итак, давайте разберемся с вопросом: что такое сервер? Но для начала немного исторической справки. Сервер – это имя. Перевод имени Сервер с персидского – глава, предводитель, вождь. Собственно, нам такое определение подходит для дальнейшего разговора. Если говорить конкретно про компьютерную тематику и отрасль IT, то термин сервер имеет два значения:

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

Если говорить в контексте веб-разработки, то хостинг, на котором мы размещаем сайты – это сервер, который включает в себя как программную часть, так и аппаратную часть.

Серверный компьютер

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

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

У нас сейчас не стоит цель детально погружаться в масштабируемость и сборку серверных компьютеров, и уж тем более сейчас не стоит цель давать рекомендации по сборке серверных машин различного назначения, так как это довольно специфичная и довольно узкая тематика. Сейчас нам нужно понимать, что сервер – это специально выделенный компьютер для каких-то определённых функций (хотя это не всегда так), зачастую при недостатке бюджета сервер может выполнять сразу несколько функций.

Также стоит заметить, что обычно управление сервером осуществляют не рядовые пользователи, а специально обученные и подготовленные системные администраторы, в задачу которых входит обслуживание серверных компьютеров.

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

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

В качестве примеров серверных приложений можно привести:

Серверное приложение выполняет определённый набор функций, который ограничен его назначением. Например, веб-сервер должен принимать HTTP запросы от клиента, анализировать их, проверяя полученные HTTP методы и поля заголовков, затем выполнять действия, указанные в запросе и отчитываться клиенту о результатах своей работы при помощи специального HTTP сообщения, которое получило название ответ.

А, например, серверное приложение MySQL должно анализировать SQL запрос, полученный от клиента, обработать его, организовать доступ к файловой системе и вернуть результат запроса клиенту.

Но, помимо того, что у серверного приложения есть определённая роль или функция, нам стоит отметить то, что взаимодействие между клиентской программой и серверным приложением происходит по сетевому протоколу (даже если оба приложения установлены на один компьютер, например, по протоколу HTTP). Сейчас мы не будем давать полную классификацию серверных приложений и не будем вдаваться в специфику тех или иных приложений. Нам важно понимать, что серверные приложения выполняют строго определённую роль и в архитектуре клиент-сервер являются поставщиками услуг для клиентов.

zametkinapolyah.ru

Серверы приложений - это... Что такое Серверы приложений?

  • серверы автоматизации — Автоматизация. Клиенты и серверы автоматизации. Автоматизация (ранее известная как OLE автоматизация – OLE Automation) – это одно из наиболее важных средств технологии ActiveX, позволяющее программно управлять объектами из других… …   Справочник технического переводчика

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

  • Сервер приложений — сервер, предназначенный для выполнения прикладных процессов. Сервер приложений: взаимодействует с клиентами, получая задания; и взаимодействует с базами данных, выбирая данные, необходимые для обработки. См. также: Серверы приложений Сетевые роли …   Финансовый словарь

  • Файловая сеть — В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете отредактировать эту статью, добавив ссылки на авторитетные источники. Эта отметка… …   Википедия

  • Proliant — Сервер HP ProLiant 380 G5 Proliant является торговой маркой серверов, которые были первоначально разработанны и продавались компанией Compaq. Proliant были одними из первых серверов x86 для продажи в стоичном исполнении, и лидировали на рынке сра …   Википедия

  • SAP NetWeaver Application Server — (прежнее название SAP Web Application Server)  это компонент SAP NetWeaver, выполняющий функции сервера веб приложений для решений компании SAP. Включает в себя серверы приложений ABAP (прежнее название SAP R/3 Basis) и Java. Возможна… …   Википедия

  • Softswitch — (англ. Softswitch  программный коммутатор)  гибкий программный коммутатор, один из основных элементов сети связи следующего поколения NGN. Softswitch в составе Сети Связи Общего Пользования …   Википедия

  • Media Gateway — (MGW, или медиашлюз)  это устройство, осуществляющее преобразование между разделенными телекоммуникационными сетями. 3GPP для IMS архитектуры определяет MGW как элемент взаимодействия IP сети с PSTN или беспроводными сетями 2G, 2,5G, PLMN, а …   Википедия

  • Медиашлюз — Media Gateway (MGW, или медиашлюз)  это устройство, осуществляющее преобразование между разделенными телекоммуникационными сетями. 3GPP для IMS архитектуры определяет MGW как элемент взаимодействия IP сети с PSTN или беспроводными сетями 2G …   Википедия

  • WSGI — (англ. Web Server Gateway Interface, обычно произносится сообществом как «висги» или «виски»[1][2][3])  стандарт взаимодействия между Python программой, выполняющейся на стороне сервера, и самим веб сервером, например, Apache.… …   Википедия

dic.academic.ru

Разница между веб-сервером и сервером приложений

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

Что такое веб-сервер?

Веб-сервер - это не что иное, как программная программа, предназначенная для обработки веб-запросов. Он принимает входящие запросы в виде статического контента, который в основном является компонентами веб-сайта, включая HTML-страницы, графические и видеофайлы и т. Д. Затем он отвечает на запросы по протоколу HTTP вместе с дополнительным содержимым данных. Основная задача веб-сервера - предоставлять контент в World Wide Web, чтобы сделать их доступными для конечных пользователей. Он может относиться к системе, состоящей из оборудования или программного обеспечения, или к тому, где хранятся веб-содержимое. Говоря простыми словами, веб-сервер - это компьютер, который доставляет веб-страницы по мере их запроса. Apache - самый популярный и широко используемый веб-сервер с открытым исходным кодом, разработанный и поддерживаемый Apache Software Foundation.

Что такое сервер приложений?

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

Веб-сервер относится к оборудованию или программному обеспечению или к обоим, которые доставляют контент или услуги конечным пользователям через World Wide Web. Это больше похоже на программу, которая отвечает на входящие сетевые запросы на веб-ресурсы по протоколу HTTP. Он также известен как интернет-сервер. С другой стороны, сервер приложений - это программная среда на основе компонентов, которая облегчает разработку и запуск веб-приложений. По сути, это серверная программа среднего уровня, предназначенная для обеспечения бизнес-логики для прикладных программ.

содержание

Веб-сервер ограничен только HTTP-контентом, то есть он использует протокол HTT для хранения, обработки и доставки контента клиентам. Это мощный компьютер, который делает сайты доступными через Интернет, а связь между клиентом и сервером выполняется с использованием HTTP. Сервер приложений не ограничивается отправкой статического содержимого HTML; Фактически, он передает бизнес-логику клиентским приложениям с использованием нескольких протоколов.

Функция веб-сервера и сервера приложений

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

Многопоточность

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

Объем веб-сервера и сервера приложений

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

Веб-сервер и сервер приложений: сравнительная таблица

Резюме веб-сервера Vs. Сервер приложений

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

ru.esdifferent.com


Смотрите также