Сервер приложений - это сервер, на котором размещаются приложения. [1]
Каркасы серверов приложений - это программные среды для создания серверов приложений. Инфраструктура сервера приложений предоставляет как средства для создания веб-приложений, так и серверную среду для их запуска.
Каркас сервера приложений содержит комплексную модель уровня обслуживания. Он включает в себя набор компонентов, доступных разработчику программного обеспечения через стандартный API, определенный для самой платформы. Для веб-приложений эти компоненты обычно работают в той же среде, что и их веб-сервер (ы), и их основная задача - поддерживать создание динамических страниц. Тем не менее, многие серверы приложений сделать больше , чем создания веб - страниц: они реализуют такие услуги, как кластеризация, отказоустойчивость и балансировка нагрузки , так что разработчики могут сосредоточиться на реализации бизнес - логики . [2]
В случае серверов приложений Java сервер ведет себя как расширенная виртуальная машина для запуска приложений, прозрачно обрабатывая подключения к базе данных с одной стороны и, часто, подключения к веб-клиенту с другой. [ необходима цитата ]
Другие варианты использования этого термина могут относиться к службам, которые предоставляет сервер, или к компьютерному оборудованию, на котором эти службы выполняются. [ необходима цитата ]
История
Этот термин первоначально использовался [3] при обсуждении ранних систем клиент-сервер , чтобы различать серверы, содержащие службы SQL логики приложений [4] и серверы промежуточного программного обеспечения, в отличие от других типов серверов данных.
В настоящее время, несмотря на то, что веб-браузеры стали повсеместными и обычно являются клиентом для конечных пользователей во многих стратегиях развертывания приложений, веб-приложения на основе браузера представляют собой лишь подмножество технологий серверных приложений.
Определение сервера приложений
Серверы приложений являются системы программного обеспечения , на которых веб - приложения или настольных приложений [ править ] пробег.
Серверы приложений состоят из
- коннекторы веб-сервера, [ требуется пояснение ]
- языки компьютерного программирования ,
- библиотеки времени выполнения ,
- соединители базы данных и
- код администрирования, необходимый для развертывания, настройки, управления и подключения этих компонентов на веб-узле.
Сервер приложений работает за [ необходима ссылка ] за веб-сервером (например, Apache или Microsoft Internet Information Services (IIS)) и (почти всегда) перед базой данных SQL [ необходима ссылка ] (например, PostgreSQL , MySQL или Oracle ). Веб-приложения - это компьютерный код, который запускается на серверах приложений и написан на языке (ах), поддерживаемом сервером приложений, и вызывает библиотеки времени выполнения и компоненты, предлагаемые сервером приложений.
Существует множество серверов приложений. Выбор влияет на стоимость, производительность, надежность, масштабируемость и ремонтопригодность веб-приложения.
Проприетарные серверы приложений предоставляют системные услуги четко определенным, но частным образом. Разработчики приложений разрабатывают программы в соответствии со спецификацией сервера приложений. Недостатком такого подхода является зависимость от конкретного поставщика.
Противоположный, но аналогичный случай - платформа Java EE . Серверы приложений Java EE предоставляют системные услуги в соответствии с четко определенным открытым отраслевым стандартом. Разработчики приложений разрабатывают программы в соответствии со спецификацией Java EE, а не в соответствии с сервером приложений. Приложение Java EE, разработанное в соответствии со стандартом Java EE, может быть развернуто на любом сервере приложений Java EE, что делает его независимым от производителя.
Серверы приложений Java
Платформа Java, Enterprise Edition или Java EE (ранее J2EE) определяет базовый набор API и функций серверов приложений Java .
Инфраструктура Java EE разделена на логические контейнеры.
- Контейнер EJB: Enterprise JavaBeans (EJB) используются для управления транзакциями. Согласно схемам J2EE , бизнес-логика приложения находится в Enterprise JavaBeans - модульном серверном компоненте, обеспечивающем множество функций, включая декларативное управление транзакциями и улучшающее масштабируемость приложения .
- Веб-контейнер : Веб-модули включают сервлеты и страницы JavaServer (JSP).
- Контейнер JCA ( архитектура коннектора Java EE )
- Поставщик JMS ( служба сообщений Java )
Некоторые серверы приложений Java не используют многие функции Java EE, такие как EJB и Java Message Service (JMS). Их внимание больше уделяется сервлетам Java и страницам JavaServer.
Существует множество серверов приложений Java с открытым исходным кодом, которые поддерживают Java EE.
На коммерческих серверах приложений Java доминируют WebLogic Application Server от Oracle , WebSphere Application Server от IBM и платформа JBoss Enterprise Application Platform с открытым исходным кодом (JBoss EAP) от Red Hat .
Страница сервера Java (JSP) выполняется в веб-контейнере . JSP предоставляют способ создания HTML- страниц путем встраивания ссылок на логику сервера внутри страницы. Кодировщики HTML и программисты Java могут работать бок о бок, ссылаясь на код друг друга изнутри своего собственного.
Вышеупомянутые серверы приложений в основном обслуживают веб-приложения и службы через RMI, EJB, JMS и SOAP. Некоторые серверы приложений нацелены на сети, отличные от веб- сетей : серверы протокола инициации сеанса , например, на целевые телефонные сети.
.NET Framework
Microsoft
Microsoft позиционирует свои приложения и инфраструктуру служб среднего уровня в операционной системе Windows Server, а технологии .NET Framework - в роли сервера приложений. [5] Роль сервера приложений Windows включает информационные службы Интернета (IIS) для обеспечения поддержки веб-сервера, .NET Framework для поддержки приложений, ASP.NET для создания сценариев на стороне сервера, COM + для взаимодействия компонентов приложения, очередь сообщений для многопоточной обработки. и Windows Communication Foundation (WCF) для взаимодействия приложений. [6]
Сторонний
- Mono (кроссплатформенная реализация .NET с открытым исходным кодом, поддерживающая почти все его функции, за исключением функций, специфичных для ОС Windows), спонсируемая Microsoft и выпущенная под лицензией MIT.
Серверы приложений PHP
Серверы приложений PHP используются для запуска и управления приложениями PHP .
Zend Server , созданный Zend Technologies , обеспечивает функциональность сервера приложений для приложений на основе PHP.
appserver.io , созданный TechDivision GmbH, представляет собой многопоточный сервер приложений для PHP, написанный на PHP.
RoadRunner , созданный Spiral Scout, представляет собой высокопроизводительный сервер приложений PHP, балансировщик нагрузки и диспетчер процессов, написанный на Golang.
Серверы мобильных приложений
Мобильный сервер приложений подвижен промежуточный слой , что делает фоновая система , доступная для мобильного приложения для поддержки разработки мобильных приложений . Многое , как веб - сервер , который хранит, обрабатывает и доставляет веб - страницы для клиентов , мобильный сервер приложений ликвидирует отставание от существующей инфраструктуры мобильных устройств.
Цель
Хотя большая часть основанной на стандартах инфраструктуры (включая SOA ) предназначена для подключения к любому, независимо от поставщика, продукта или технологии, у большинства предприятий возникают проблемы с подключением серверных систем к мобильным приложениям, поскольку мобильные устройства создают следующие технологические проблемы: [7]
- Ограниченные ресурсы - мобильные устройства имеют ограниченную мощность и пропускную способность
- Прерывистая связь - сотовая связь и покрытие Wi-Fi часто не непрерывно
- Трудно защитить [8] - мобильность и BYOD затрудняют защиту мобильных устройств
Целью сервера мобильных приложений является создание существующей инфраструктуры для размещения мобильных устройств.
Общие черты
Основные возможности сервисов мобильных приложений включают:
- Маршрутизация данных - данные упаковываются в более мелкие ( REST ) объекты с некоторой бизнес-логикой, чтобы минимизировать требования к пропускной способности и батарее.
- Оркестровка - транзакции и интеграция данных из нескольких источников
- Служба аутентификации - безопасное подключение к серверным системам управляется мобильным промежуточным программным обеспечением.
- Автономная поддержка - позволяет пользователям получать доступ и использовать данные, даже если устройство не подключено
- Безопасность - шифрование данных, управление устройствами, SSL, ведение журнала вызовов
Серверы мобильных приложений против серверов приложений против веб-серверов
Серверы мобильных приложений, серверы приложений и веб-серверы служат схожим целям: они являются частями промежуточного программного обеспечения, которые соединяют серверные системы с пользователями, которым необходим доступ к ним, но технология в каждом из трех отличается.
Серверы приложений
Серверы приложений были разработаны до повсеместного распространения веб-приложений - они раскрывают внутреннюю бизнес-логику через различные протоколы, иногда включая HTTP, и управляют безопасностью, обработкой транзакций, пулом ресурсов и обменом сообщениями. [9] Когда популярность веб-приложений росла, серверы приложений не отвечали потребностям разработчиков, и веб-сервер был создан, чтобы заполнить этот пробел. [ необходима цитата ]
Веб-серверы
Веб-серверы обеспечивают функции кэширования и масштабирования, необходимые для веб-доступа и не предоставляемые серверами приложений. Они преобразуют запросы в статический контент и обслуживают только HTTP-контент. [10] Со временем серверы приложений и веб-серверы превратились из двух ранее различных категорий, объединенных функций и, возможно, слились. [ необходима цитата ]
Серверы мобильных приложений
Серверы мобильных приложений идут по тому же пути. [ необходимая цитата ] Появление мобильных устройств представляет потребность в функциональности, не ожидаемой разработчиками традиционных разработчиков серверов приложений, и серверы мобильных приложений заполняют этот пробел. Они заботятся о безопасности, управлении данными и требованиях к автономному режиму, которые не удовлетворяются существующей инфраструктурой, и представляют контент исключительно в REST.
Со временем эти три категории могут полностью объединиться и стать доступными в одном продукте, но корневые функции различаются.
Модели развертывания
Сервер приложений может быть развернут:
- На территории
- Облако
- Частное облако
- Платформа как услуга (PaaS)
Смотрите также
- Поставщик службы приложений (ASP)
Рекомендации
- ^ "Что такое сервер приложений?" . theserverside.com . Проверено 28 февраля 2010 .
сервер приложений предоставляет среду, в которой приложения могут запускаться, независимо от того, что это за приложения и что они делают
- ^ Стефано Чери; Пьеро Браттернали; Альдо Бонджо; Марко Брамбилла; Сара Комай; Маристелла Мателла. «Разработка веб-приложений, интенсивно использующих данные, 2 квартал 2003 года». Отсутствует или пусто
|url=
( справка ) - ^ Фут, Скотт; Фут, Стивен (1992). Расширение возможностей VAX - интеграция цифровых систем . Редвуд-Шорс, Калифорния: Корпорация Oracle. п. 3. 52882.0892.
- ^ «Анализ в среде сервера приложений» . Корпорация Microsoft . 1 июня 1997 г.
- ^ TechNet: Сервер приложений
- ^ TechNet: роль сервера приложений
- ^ «Почему для разработки мобильных приложений требуется нечто большее, чем SOA» . 19 ноября 2014 г.
- ^ «Миллиард пользователей смартфонов могут быть затронуты уязвимостью безопасности Heartbleed» . 11 апреля 2014 г.
- ^ «Сервер приложений, веб-сервер: в чем разница?» . 2002-08-23.
- ^ «В чем разница между сервером приложений и веб-сервером?» .