Добавлен: 30.06.2023
Просмотров: 85
Скачиваний: 3
В сетевой среде сервер приложений является посредником между фронт-эндами клиентов и серверами баз данных.
Бизнес-логика может быть реализована на стороне сервера как целиком (удаленный код), так и частично (распределенный код). В первом случае к серверу могут обращаться терминалы и «тонкие» клиенты и такое взаимодействие соответствует модели «сервер терминалов». «Толстые» и rich-клиенты могут получать компоненты серверного приложения и выполнять их на своей стороне (например javascript, апплеты, flash).
Мобильный софт
Задачи, решаемые серверами приложений хорошо иллюстрируются на примере мобильных сервисов. Возможности мобильных устройств изначально ограничены физическими размерами и временем автономной работы (остальные ограничения, в основном, вытекают из этих двух). Мобильное приложение разрабатывается с учетом этих ограничений, но так как софт для телефона должен быть адаптирован для использования на конкретной модели, то процесс разработки усложняется. Разделив мобильное приложение на клиентскую (представление данных) и серверную (прикладная логика) части, разработчик получает следующие возможности:
- урезанная по функционалу клиентская часть получается менее требовательной к ресурсам;
- для поддержки новых устройств нужно адаптировать только фронт-энд, не затрагивая прикладную логику;
- изменения в программе (расширение функциональности, исправление ошибок и т. п.) выполняются на сервере приложений и распространяются на всех клиентов[22].
Клиенты могут взаимодействовать с приложениями через API сервера (Java-клиент <—> контейнер сервлетов <—> сервлет). Большую гибкость и универсальность представляет взаимодействие через сторонние сервисы, в первую очередь — через веб-сервер.
Понятие сервера приложений традиционно связывают с платформой Java, указывая на то, что сервер Java-приложений представляет реализацию спецификации сервлетов, возможно в виде JSP, и еще некоторые сервисные услуги, в первую очередь соединение с базой данных.
Но это нечто большее и меньшее одновременно: сервер приложений предоставляет среду, в которой прикладные программы могут работать, независимо от того, что и как именно они делают.
Поэтому, чтобы ответить на вопрос, является ли (и в какой степени) некое сервисное ПО сервером приложений, стоит сравнить его заявленные функции со списком атрибутов, присущих этой категории:
- Предоставляет модель контейнера для приложений.
- Предоставляет сервисные услуги для программ.
- Обеспечивает управление приложениями и/или представляет средства их разработки.
- Соответствует индустриальным спецификациям и стандартам.
- Добавим сюда же обслуживание веб-страниц, ввиду реальной востребованности технологий на основе WWW[23].
Реализация серверов приложений
По приведенным признакам в рассматриваемую категорию попадают, например, традиционные терминал-серверные системы, технология CGI, контейнеры Java-сервлетов и др.
Унаследованные решения
Серверы терминалов представляют среду для удаленного выполнения программ, в качестве которой выступает сама операционная система. Доступ к ним осуществляется по протоколам удаленного управления (telnet, ssh, RDP, VNC и т. п.) из клиентского ПО (эмулятор терминала, средства управления удаленным рабочим столом и т.п.). Управление запущенной программой выполняется через эмулируемый на клиенте пользовательский интерфейс (текстовый или графический) операционной системы. На серверной стороне взаимодействие программ с ОС реализуется через системные вызовы. Управление также осуществляется средствами операционной системы. Разработка может вестись на любом языке, доступном в конкретной ОС[24].
Общий шлюзовый интерфейс (CGI) — технология доступа к приложениям через веб-сервер. Отличия от сервера терминалов здесь в том, что пользовательский интерфейс предоставляется в виде веб-страниц. Запросы веб-клиентов, обращенные к программам, размещенным в выделенном каталоге (как правило cgi или cgi-bin) перенаправляются на их вход через стандартный поток ввода (stdin). Результаты выполнения в виде гипертекста приложение возвращает веб-серверу через stdout.
Серверы Java-приложений
Платформа Java является индустриальным стандартом, позволяющим создавать из унифицированных компонентов интероперабельные программные решения для самых разных систем, в которых может быть запущена виртуальная машина Java (JVM).
Контейнер сервлетов — один из архитектурных компонентов J2EE, представляющий окружение для выполнения сервлетов. Сервлет — это Java-приложение, выполняющееся на стороне сервера (в отличие от апплета). Контейнер сервлетов может работать как полноценный самостоятельный сервер, но чаще используется (интегрируется) совместно с другим серверным ПО. Обеспечивает обмен данными между сервлетом и клиентами, берёт на себя выполнение таких функций, как создание программной среды для функционирующего сервлета, идентификацию и авторизацию клиентов, организацию сессии для каждого из них[25].
Концепция сервлет-контейнера позволяет создавать как универсальные, так и специализированные серверы приложений (например, для мобильных сервисов).
Примером реализации контейнера сервлетов является 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[26].
Серверы приложений: преимущества и недостатки
После анализа серверов приложений, можно выделить следующие преимущества и недостатки технологии:
Преимущества
Целостность кода и данных
Размещение бизнес-логики на выделенном сервере или ограниченном числе серверных компьютеров гарантирует доступ к обновленному и модернизированному ПО для всех клиентов. Это исключает риск доступа и управления данными из устаревших и, возможно, несовместимых программ.
Централизованное управление
Изменения в конфигурации прикладных программ, такие как, например, смена сервера баз данных, выполняются централизованно.
Безопасность
Централизованные средства, через которые поставщик услуг (сервис-провайдер) может управлять доступом к данным и компонентам приложения, позволяют выполнять проверку подлинности потенциально ненадежных клиентов в среднем слое и не затрагивать уровень базы данных.
Производительность
Сервер приложений может решать задачи балансировки сетевого трафика и распределения нагрузки между другими физическими серверами системы.
Общая стоимость владения
Совокупность перечисленных выше преимуществ, а в дополнение к ним перераспределение затрат на оборудование с клиентской на серверную сторону, может привести к экономии средств для организации. Так же на снижении общей стоимости владения может отразиться практика аренды программного обеспечения. Справедливости ради нужно отметить, что стоимость самого серверного ПО, а также затраты на его внедрение и сопровождение могут быть весьма высокими[27].
Недостатки
Централизация
Системы, построенные на основе сервера приложений, имеют один основной недостаток, присущий всем централизованным решениям — «падение» сервера приведет к недоступности программ для всех клиентов. К тому же эффекту приведут и неполадки в сетевом подключении.
Защита информации
Эта проблема, в принципе, актуальна для любых сетевых решений, использующих для передачи данных инфраструктуру публичных сетей[28].
Из перечисленных достоинств и недостатков, очевидно, что серверы приложений обладают большим количеством положительных сторон, что говорит об успешности, эффективности и рентабельности дальнейшего применения данной технологии.
ЗАКЛЮЧЕНИЕ
В ходе выполнения исследования была достигнута поставленная цель: изучено понятие прикладных протоколов и серверов приложений.
Для достижения данной цели были выполнены следующие задачи:
- охарактеризовано понятие прикладных протоколов;
- изучены общие принципы организации функционирования прикладных протоколов (OSI);
- рассмотрены примеры прикладных протоколов, среди которых такие протоколы, как ICMP, FTP, HTTP, POP и SMTP, SLIP;
- проанализировано понятие сервера приложений;
- рассмотрена характерная реализация серверов приложений;
- дана характеристика серверам приложений со стороны преимуществ и недостатков.
При выполнении работы также было определено преобладающее количество положительных сторон серверов приложений, благодаря чему можно судить об эффективности и возможности дальнейшего применения данной технологии.
Проблему нельзя назвать изученной до конца, что связано с непрерывным прогрессом и периодом открытий в информационных технологиях. Работу можно дополнять новой информацией по мере появления новшеств и открытий.
На данный момент текст работы может быть использован как теоретическое пособие в старших классах средних общеобразовательных организациях и для преподавания специальных дисциплин в организациях среднего специального образования.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- Блэк Ю, Сети ЭВМ: протоколы, стандарты, интерфейсы / Ю. Блэк; перев. с англ. - М.: МИР
- Высокопроизводительные сети. Энциклопедия пользователя / Марк А. Спортак и др.; перев. с англ. - Киев, ДиаСофт, 1998
- Крейнак Д., Хебрейкен Д. «Энциклопедия ИНТЕРНЕТ». Санкт-Петербург, 2010
- Лапонина О.Р.«Основы сетевой безопасности: криптографические алгоритмы и протоколы взаимодействия» М.: ИНТУИТ.ру, 2005. – 608 с.
- Ливингстон Б., Штрауб Д. «Компьютер у вас дома», Москва 2001 г.
- Медведовский И.Д., Семьянов П.В., Леонов Д.Г.Атака на Internet 2-е изд., перераб. и доп. –М.: ДМК, 1999.
- Немет Э., Снайдер Г., Сибасс С., Хейн Т.Р.UNIX: руководство системного администратора: Пер. с англ. –К.: BHV
- Новиков Ю.В., Кондратенко С.В. «Основы локальных сетей» М.: ИНТУИТ.ру, 2005. – 355 с.
- Олифер В.Г., Олифер Н.А. «Компьютерные сети. Принципы, технологии, протоколы» СПб.: Питер, 2005. – 864 с.
- Олифер В.Г., Олифер Н.А. «Основы сетей передачи данных» М.: ИНТУИТ.ру, 2005. – 176 с.
- Паркер Т., Сиян К., TCP/IP. Для профессионалов. 3-е издание / Паркер Т., Сиян К. –СПб.: Питер,2004
- Рендалл Н. «Кластеризация серверов». PC Magazine № 2, 1998 г.
- Хант К., Персональные компьютеры в сетях TCP/IP / Хант К.; перев. с англ. - BHV-Киев, 1997.
-
Олифер В.Г., Олифер Н.А. «Компьютерные сети. Принципы, технологии, протоколы» СПб.: Питер, 2005. –702 с ↑
-
Новиков Ю.В., Кондратенко С.В. «Основы локальных сетей» М.: ИНТУИТ.ру, 2005. – 312 с. ↑
-
Олифер В.Г., Олифер Н.А. «Основы сетей передачи данных» М.: ИНТУИТ.ру, 2005. – 98 с. ↑
-
Олифер В.Г., Олифер Н.А. «Основы сетей передачи данных» М.: ИНТУИТ.ру, 2005. – 103 с. ↑
-
Хант К., Персональные компьютеры в сетях TCP/IP / Хант К.; перев. с англ. - BHV-Киев, 1997, 134 с. ↑
-
Хант К., Персональные компьютеры в сетях TCP/IP / Хант К.; перев. с англ. - BHV-Киев, 1997, 141с. ↑
-
Ливингстон Б., Штрауб Д. «Компьютер у вас дома», Москва 2001 г., 187 с. ↑
-
Ливингстон Б., Штрауб Д. «Компьютер у вас дома», Москва 2001 г., 193с. ↑
-
Блэк Ю, Сети ЭВМ: протоколы, стандарты, интерфейсы / Ю. Блэк; перев. с англ. - М.: МИР, 234 с. ↑
-
Блэк Ю, Сети ЭВМ: протоколы, стандарты, интерфейсы / Ю. Блэк; перев. с англ. - М.: МИР, 238 с. ↑
-
Новиков Ю.В., Кондратенко С.В. «Основы локальных сетей» М.: ИНТУИТ.ру, 2005. – 312 с. ↑
-
Новиков Ю.В., Кондратенко С.В. «Основы локальных сетей» М.: ИНТУИТ.ру, 2005. – 317 с ↑
-
Паркер Т., Сиян К., TCP/IP. Для профессионалов. /Паркер Т., Сиян К. –СПб.: Питер,2004, 217 с. ↑
-
Паркер Т., Сиян К., TCP/IP. Для профессионалов. /Паркер Т., Сиян К. –СПб.: Питер,2004, 225 с. ↑
-
Паркер Т., Сиян К., TCP/IP. Для профессионалов. /Паркер Т., Сиян К. –СПб.: Питер,2004, 231 с. ↑
-
Паркер Т., Сиян К., TCP/IP. Для профессионалов. /Паркер Т., Сиян К. –СПб.: Питер,2004, 243 с. ↑
-
Олифер В.Г., Олифер Н.А. «Основы сетей передачи данных» М.: ИНТУИТ.ру, 2005. – 124 с. ↑
-
Хант К., Персональные компьютеры в сетях TCP/IP / Хант К.; перев. с англ. - BHV-Киев, 1997, 342 с. ↑
-
Хант К., Персональные компьютеры в сетях TCP/IP / Хант К.; перев. с англ. - BHV-Киев, 1997, 356 с. ↑
-
Паркер Т., Сиян К., TCP/IP. Для профессионалов. 3-е издание / Паркер Т., Сиян К. –СПб.: Питер, 134 с. ↑
-
Немет Э., Снайдер Г., Сибасс С., Хейн Т.Р.UNIX: руководство системного администратора: Пер. с англ. –К.: BHV ↑
-
Ливингстон Б., Штрауб Д. «Компьютер у вас дома», Москва 2001 г, 249 с. ↑
-
Ливингстон Б., Штрауб Д. «Компьютер у вас дома», Москва 2001 г, 256 с. ↑
-
Крейнак Д., Хебрейкен Д. «Энциклопедия ИНТЕРНЕТ». Санкт-Петербург, 2010, 187 с. ↑
-
Крейнак Д., Хебрейкен Д. «Энциклопедия ИНТЕРНЕТ». Санкт-Петербург, 2010, 195 с. ↑
-
Медведовский И.Д., Семьянов П.В., Леонов Д.Г.Атака на Internet 2-е изд., перераб. и доп. –М.: ДМК, 1999. ↑
-
Олифер В.Г., Олифер Н.А. «Основы сетей передачи данных» М.: ИНТУИТ.ру, 2005. – 123 с ↑
-
Олифер В.Г., Олифер Н.А. «Основы сетей передачи данных» М.: ИНТУИТ.ру, 2005. – 127 с. ↑