Файл: Понятие прикладных протоколов и серверы приложений(Прикладной уровень в сетевой модели OSI).pdf
Добавлен: 02.05.2023
Просмотров: 198
Скачиваний: 3
Задачи, решаемые серверами приложений хорошо иллюстрируются на примере мобильных сервисов. Возможности мобильных устройств изначально ограничены физическими размерами и временем автономной работы (остальные ограничения, в основном, вытекают из этих двух). Мобильное приложение разрабатывается с учетом этих ограничений, но так как софт для телефона должен быть адаптирован для использования на конкретной модели, то процесс разработки усложняется. Разделив мобильное приложение на клиентскую (представление данных) и серверную (прикладная логика) части, разработчик получает следующие возможности [5]:
- урезанная по функционалу клиентская часть получается менее требовательной к ресурсам;
- для поддержки новых устройств нужно адаптировать только фронт-энд, не затрагивая прикладную логику;
- изменения в программе (расширение функциональности, исправление ошибок и т. п.) выполняются на сервере приложений и распространяются на всех клиентов.
Клиенты могут взаимодействовать с приложениями через API сервера (Java-клиент <—> контейнер сервлетов <—> сервлет). Большую гибкость и универсальность представляет взаимодействие через сторонние сервисы, в первую очередь — через веб-сервер.
Понятие сервера приложений традиционно связывают с платформой Java, указывая на то, что сервер Java-приложений представляет реализацию спецификации сервлетов, возможно в виде JSP, и еще некоторые сервисные услуги, в первую очередь соединение с базой данных.
Но это нечто большее и меньшее одновременно: сервер приложений предоставляет среду, в которой прикладные программы могут работать, независимо от того, что и как именно они делают.
Поэтому, чтобы ответить на вопрос, является ли (и в какой степени) некое сервисное ПО сервером приложений, стоит сравнить его заявленные функции со списком атрибутов, присущих этой категории [4]:
- Предоставляет модель контейнера для приложений.
- Предоставляет сервисные услуги для программ.
- Обеспечивает управление приложениями и/или представляет средства их разработки.
- Соответствует индустриальным спецификациям и стандартам.
- Добавим сюда же обслуживание веб-страниц, ввиду реальной востребованности технологий на основе WWW.
По приведенным признакам в рассматриваемую категорию попадают, например, традиционные терминал-серверные системы, технология CGI, контейнеры Java-сервлетов и др.
Серверы терминалов представляют среду для удаленного выполнения программ, в качестве которой выступает сама операционная система. Доступ к ним осуществляется по протоколам удаленного управления (telnet, ssh, RDP, VNC и т. п.) из клиентского ПО (эмулятор терминала, средства управления удаленным рабочим столом и т.п.). Управление запущенной программой выполняется через эмулируемый на клиенте пользовательский интерфейс (текстовый или графический) операционной системы. На серверной стороне взаимодействие программ с ОС реализуется через системные вызовы. Управление также осуществляется средствами операционной системы. Разработка может вестись на любом языке, доступном в конкретной ОС.
Общий шлюзовый интерфейс (CGI) — технология доступа к приложениям через веб-сервер [5]. Отличия от сервера терминалов здесь в том, что пользовательский интерфейс предоставляется в виде веб-страниц. Запросы веб-клиентов, обращенные к программам, размещенным в выделенном каталоге (как правило cgi или cgi-bin) перенаправляются на их вход через стандартный поток ввода (stdin). Результаты выполнения в виде гипертекста приложение возвращает веб-серверу через stdout.
Платформа Java является индустриальным стандартом, позволяющим создавать из унифицированных компонентов интероперабельные программные решения для самых разных систем, в которых может быть запущена виртуальная машина Java (JVM).
Контейнер сервлетов — один из архитектурных компонентов J2EE, представляющий окружение для выполнения сервлетов [6]. Сервлет — это Java-приложение, выполняющееся на стороне сервера (в отличие от апплета). Контейнер сервлетов может работать как полноценный самостоятельный сервер, но чаще используется (интегрируется) совместно с другим серверным ПО. Обеспечивает обмен данными между сервлетом и клиентами, берёт на себя выполнение таких функций, как создание программной среды для функционирующего сервлета, идентификацию и авторизацию клиентов, организацию сессии для каждого из них.
Концепция сервлет-контейнера позволяет создавать как универсальные, так и специализированные серверы приложений (например, для мобильных сервисов).
Примером реализации контейнера сервлетов является Apache TomCat, который используется в таких серверах приложений как Apache Geronimo, JBoss, GlassFish, IBM WebSphere Application Server (WAS).
Компания Microsoft представляет собственные решения для поддержки бизнес-логики и сервисной инфрастуктуры на основе ОС Windows Server и технологии .NET Framework. Основным средством разработки является язык C#.
Язык Python, получивший популярность во многом благодаря Google, является основным средством разработки для сервера веб-приложений Zope.
Для сценариев на языке PHP, широко используемом для создания веб-сайтов, компания Zend Technologies (разработчик самого языка PHP) создала сервер приложений Zend Server.
В серверах приложениях выделяют следующие преимущества [5]:
- Целостность кода и данных. Размещение бизнес-логики на выделенном сервере или ограниченном числе серверных компьютеров гарантирует доступ к обновленному и модернизированному ПО для всех клиентов. Это исключает риск доступа и управления данными из устаревших и, возможно, несовместимых программ.
- Централизованное управление. Изменения в конфигурации прикладных программ, такие как, например, смена сервера баз данных, выполняются централизованно.
- Безопасность. Централизованные средства, через которые поставщик услуг (сервис-провайдер) может управлять доступом к данным и компонентам приложения, позволяют выполнять проверку подлинности потенциально ненадежных клиентов в среднем слое и не затрагивать уровень базы данных.
- Производительность. Сервер приложений может решать задачи балансировки сетевого трафика и распределения нагрузки между другими физическими серверами системы.
- Общая стоимость владения. Совокупность перечисленных выше преимуществ, а в дополнение к ним перераспределение затрат на оборудование с клиентской на серверную сторону, может привести к экономии средств для организации. Так же на снижении общей стоимости владения может отразиться практика аренды программного обеспечения. Справедливости ради нужно отметить, что стоимость самого серверного ПО, а также затраты на его внедрение и сопровождение могут быть весьма высокими.
Но также выделяют и ряд недостатков [5]:
- Централизация. Системы, построенные на основе сервера приложений, имеют один основной недостаток, присущий всем централизованным решениям — «падение» сервера приведет к недоступности программ для всех клиентов. К тому же эффекту приведут и неполадки в сетевом подключении.
- Защита информации. Эта проблема, в принципе, актуальна для любых сетевых решений, использующих для передачи данных инфраструктуру публичных сетей.
Таким образом, использование серверов приложений крайне повышает быстродействия взаимодействия клиента с приложением, благодаря перекладыванию обработки прикладной логики на сторону сервера. Таким образом не только снижаются системные требования к машине клиента, но и упрощается процесс поддержки программы, так как внося изменения в серверную часть приложения, эти изменения распространяются на всех пользователей.
ЗАКЛЮЧЕНИЕ
Прикладные протоколы выполняют работу первостепенной важности при передаче информации в сети Интернет.
Прикладной уровень является самым верхним (седьмым) уровнем в сетевой модели OSI и тесно связан непосредственно с пользовательскими приложениями, позволяя получать доступ к разделяемым ресурсам.
Прикладной протокол FTP является одним из основных при передачи какой-либо информации. Он является крайне функциональным инструментом для обмена файлов различного типа и позволяет организовать процесс передачи данных огромным количеством способов.
Протоколы SMTP и POP3 применяются при организации общения между пользователями по средствам электронной почты. SMTP выступает в роли отправителя, а POP3 – приёмника. При такой связке все письма пользователю приходят в почтовый ящик на сервере, освобождая его от необходимости держать персональный компьютер во включённом состоянии.
Протокол HTTP является самым популярным протоколом передачи информации в гипертекстовом виде и не только. Благодаря своей гибкости способен передавать практически любую информацию, или выступать в роли транспорта для других протоколов. Имеет чёткую структуру и внушительный набор методов, позволяющий организовать процесс обмена информацией под любые нужды.
Благодаря протоколу TELNET существует возможность удалённого управления. Хоть он и является одним из самых старых информационных технологий Интернет, всё ещё активно используется. Но из-за неимения никакой защиты соединения, данный вид протокола перестал использоваться как средство управления операционными системами.