Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Понятие прикладных протоколов и серверы приложений (Протоколы прикладного уровня)

Содержание:

Введение

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

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

Сервер приложений обладает следующими возможностями:

- открытый интерфейс с клиентом на уровне строк, что позволяет организовать взаимодействие с клиентом, работающим на любой программной/аппаратной платформе, на которой существуют средства разработки приложений для TCP/IP;

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

- возможность использования в качестве клиентских процессов любых исполняемых модулей. Это позволяет клиентам иметь специализированные модули для различных задач;

- использование собственного интерпретатора (оболочки) в качестве клиентского процесса по умолчанию. Язык интерпретатора является языком 3-го поколения, основанным на INFORMIX-SPL, с возможностью исполнения любых SQL-операторов. Язык имеет расширенные возможности по использованию пользовательских библиотек. Подробнее см. главу "Язык хранимых процедур".

Глава 1. Протоколы прикладного уровня

1.1 Общие понятия. Протокол. Стек протоколов

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

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

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

Интерфейс определяет совокупный сервис, предоставляемый данным уровнем выше лежащему уровню.

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

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

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

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

Программные средства, реализующие некоторый протокол, также называют протоколом. При этом соотношение между протоколом - формально определенной процедурой взаимодействия, и протоколом - средством, реализующим эту процедуру, аналогично соотношению между алгоритмом решения некоторой задачи и программой, решающей эту задачу. Понятно, что один и тот же алгоритм может быть запрограммирован с разной степенью эффективности. Точно также и протокол может иметь несколько программных реализаций, например, протокол IPX, реализованный компанией Microsoft для Windows NT в виде программного продукта NWLink, имеет характеристики, отличающиеся от реализации этого же протокола компанией Novell. Именно поэтому, при сравнении протоколов следует учитывать не только логику их работы, но и качество программных решений. Более того, на эффективность взаимодействия устройств в сети влияет качество всей совокупности протоколов, составляющих стек, то есть, насколько рационально распределены функции между протоколами разных уровней и насколько хорошо определены интерфейсы между ними.

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

При организации взаимодействия могут быть использованы два основных типа протоколов. В протоколах с установлением соединения (connection-oriented network service, CONS) перед обменом данными отправитель и получатель должны сначала установить логическое соединение, то есть договориться о параметрах процедуры обмена, которые будут действовать только в рамках данного соединения. После завершения диалога они должны разорвать это соединение. Когда устанавливается новое соединение, переговорная процедура выполняется заново. Телефон - это пример взаимодействия, основанного на установлении соединения.

Вторая группа протоколов - протоколы без предварительного установления соединения (connectionless network service, CLNS). Такие протоколы называются также дейтаграммными протоколами. Отправитель просто передает сообщение, когда оно готово. Опускание письма в почтовый ящик - это пример связи без установления соединения.

1. 2. Общие принципы организации и функционирования прикладного уровня (OSI)


Прикладной уровень является наивысшим уровнем в эталонной модели OSI RM и единственным средством доступа прикладных процессов к функциональной среде OSIE. На рисунке 1 изображено взаимодействие прикладных процессов


http://geum.ru/next/images/237643-nomer-569d4abf.gif


Рис.1 Взаимодействие прикладных процессов.

Прикладная сущность (application-entity - AE): совокупность функций прикладного процесса, непосредственно связанных с обеспечением его взаимодействия с другими прикладными процессами.

Активация прикладной сущности или AE-активация (AE-invocation): конкретное использование некоторой части функциональных возможностей некоторой прикладной сущности, осуществляющей поддержку функций взаимосвязи, реализуемых некоторой активацией прикладного процесса. 

Совокупность средств, с помощью которых выполняются все элементы взаимодействия процессов, называется прикладной ассоциацией (Application Association)

Примерами таких элементов взаимодействия являются: 

- идентификация и аутентификация прикладных процессов, 

- согласование и установления прикладного контекста взаимосвязи, 

- обмен прикладными блоками данных, 

- управление режимами взаимосвязи, 

- прекращение взаимосвязи ... 

Взаимодействие прикладных процессов (рис. 2) осуществляется посредством обмена прикладными протокольными блоками данных (Application Protocol Data Unit - APDU). 


http://geum.ru/next/images/237643-nomer-6277efda.gif

Протокольные блоки данных

Протокольные блоки данных


Протокольные блоки данных

Рис.2 Взаимодействие прикладных процессов.

Прикладной сервисный элемент (application-service-element - ASE): набор прикладных функций, обеспечивающих узкоспециализированную форму сетевого взаимодействия активаций прикладных сущностей; прикладной сервисный элемент является компонентой прикладных сервисный объектов и сущностей (функциональным модулем), реализующей конкретный протокол прикладного уровня. 

Различаются две категории прикладных сервисных элементов: 

- общие;

- специальные. 

Общие прикладные сервисные элементы (Common Application Service Elements - CASE) обеспечивают услуги общесистемного характера, которые обычно используются большинством прикладных процессов.

Специальные элементы прикладных услуг (Special Application Service Elements - SASE) ориентированы на удовлетворение требований узкоспециализированных применений.

Общие прикладные сервисные элементы 

Сервисный элемент управления ассоциацией (Association control service element – ACSE) [X.217, X.227]. 

-Сервисный элемент надежной передачи (Reliable transfer service element – RTSE) 

[X.218, X.228]. 

-Сервисный элемент удаленной операции (Remote operations service element – ROSE) 

[X.219, X.229, X.881, X.882]. 

-Сервисный элемент фиксации, параллельности и восстановления 
(Commitment, Concurrency and Recovery service element - CCRSE) [X.852]. 
 

Специальные элементы прикладных услуг 

-Сервисный элемент передачи и управления файлами
(File Transfer, Access and Management – FTAM) [ISO/IEC 8571:1989]. 
-Сервисный элемент передачи и управления заданиями 
(Job Transfer and Management – JTM) [ISO/IEC 8831]. 
-Сервисный элемент виртуального терминала
(Virtual Terminal Service, Basic Class) [ISO/IEC 9040]. 
-Сервисный элемент удаленного доступа к базам данных 
(Remote Database Access - RDA) [ISO/IEC 9579-1, ISO/IEC 9579-2]. 
-Сервисный элемент распределенной обработки 
(Distributed Transaction Processing - TP) [X.861]. 
-Сервисный элемент сетевого управления 
(Common management information service) [X.710]. 
Для иллюстрации организации работы прикладного уровня рассмотрим простой пример, в котором для программы (program) пользователя (user) реализуется возможность доступа к сервису простой электронной почты, т.е. через свою программу пользователь может готовить и пересылать сообщения другому удаленному пользователю, используя специальный прикладной сервисный элемент системы обработки сообщений MHS (Message Handling System). 
    Организация вычислительного процесса для данного приложения показана на рис. 3. 
    Прикладной процесс (Application Process) программы пользователя в данном примере состоит из прикладной сущности (Application Entity), ответственной за реализацию функций взаимосвязи с другими пользователями, и из компоненты, реализующей взаимосвязь прикладного сервисного элемента с локальными ресурсами реальной открытой системы и называемой часто прикладным агентом (Application Agent). 

    После того, как программа пользователя сформирует сообщение, включающее собственно текст сообщения и адрес получателя, оно передается прикладным процессом посредством локального пользовательского интерфейса своему агенту. Далее через внутренний интерфейс сообщение передается от агента прикладному сервисному элементу почтовой службы, который в нашем случае состоит из единственного специального сервисного элемента MHS, реализующего одноименный протокол. 
    Далее сообщение, используя стек протоколов модели OSI с первого по шестой уровень (этот стек представлен на рисунке поставщиком представительного сервиса (presentation service provider)), передается в виде прикладного протокольного блока данных (APDU) конечной системе-адресату. При получении сообщения конечной системой оно через сервисный элемент MHS будет передано локальному агенту, который после анализа этого сообщения запишет его в локальную файловую систему (file storage), точнее в почтовый ящик (mail folder), и проинформирует программу пользователя-получателя о поступлении сообщения. 

http://geum.ru/next/images/237643-nomer-4e61723e.png

Рис. 3. Пример организации прикладного уровня для программы пользователя, использующей сервис электронной почты
 

1. 3. Протоколы прикладного уровня OSI



В настоящее время эталонная модель OSI является самой выдающейся в мире моделью архитектуры объединенных сетей. Она также является самым популярным средством приобретения знаний о сетях. Следует различать стек протоколов OSI и модель OSI. В то время как модель OSI концептуально определяет процедуру взаимодействия открытых систем, декомпозируя задачу на 7 уровней, стандартизирует назначение каждого уровня и вводит стандартные названия уровней, стек OSI - это набор вполне конкретных спецификаций протоколов, образующих согласованный стек протоколов. На Рис. 4 представлены некоторые протоколы стека OSI и их связь с эталонной моделью OSI.

http://geum.ru/next/images/237643-nomer-m5ba4efa7.png

Рис. 4. Протоколы стека OSI и их связь с эталонной моделью OSI 

Наибольшего внимания заслуживают следующие пять протоколов прикладного уровня OSI: 

File Transfer, Access and Management (FTAM) - протокол доступа к файлам; стандарт соединения открытых систем: 
- для передачи файлов (целиком); 
- для удаленного доступа к записям в файле; и 
- для создания, удаления и переименования файлов. 

Common Management Information Protocol (CMIP) - протокол общей управляющей информации – протокол, определяющий стандартный способ управления сетями, разработанными различными производителями. 

Virtual Terminal Protocol (VTP) - протокол виртуальных терминалов, обеспечивает эмуляцию терминалов, он позволяет компьютерной системе для отдаленного пользователя казаться непосредственно подключенным терминалом. С помощью VTP пользователь может, например, выполнять дистанционные работы на универсальных вычислительных машинах. 

Massage Handling Systems (MHS) - системы обработки сообщений - обеспечивает механизм, лежащий в основе транспортировки данных для прикладных задач передачи сообщений по электронной почте и других задач, требующих услуг по хранению и продвижению данных. 

Directory Services (DS) - услуги каталогов. Разработанная на основе спецификации Х.500 CITT, эта услуга предоставляет возможности распределенной базы данных, которые полезны для идентификации и адресации узлов высших уровней. 


1. 4. Протоколы прикладного уровня NetWare



NetWare является операционной системой сети (network operating system - NOS) и связанной с ней средой обеспечения услуг, разработанной Novell, Inc. и представленной на рынок в начале 1980 гг. В качестве среды NOS, NetWare определяет пять высших уровней эталонной модели OSI. Она обеспечивает совместное пользование файлами и принтером, поддержку различных прикладных задач, таких как передача электронной почты и доступ к базе данных, и другие услуги. Так же, как и другие NOS, базируется на архитектуре клиент-сервер (slient-server architecture). В таких архитектурах клиенты (иногда называемые рабочими станциями) запрашивают у серверов определенные услуги, такие как доступ к файлам и принтеру. Основная характеристика системы клиент-сервер заключается в том, что доступ к отдаленной сети является прозрачным для пользователя. Это достигается с помощью удаленного вызовова процедур (remote procedure calls) - такого процесса, когда программа местного компьютера, работающая на оборудовании клиента, отправляет вызов в удаленный сервер. Этот сервер выполняет указанную процедуру и возвращает запрошенную информацию клиенту местного компьютера. 

NetWare поддерживает большое разнообразие протоколов высших уровней: 

Netware Core Protocol (NCP) (Основной протокол NetWare) представляет собой ряд программ для сервера, предназначенных для удовлетворения запросов прикладных задач, приходящих, например, из NetWare shell. Услуги, предоставляемые NCP, включают доступ к файлам, доступ к принтеру, управление именами, учет использования ресурсов, защиту данных и синхронизацию файлов. 

NetBIOS - программа эмуляции NetBIOS, обеспечиваемая NetWare, позволяет программам, написанным для промышленного стандартного интерфейса сеансового уровня Network Basic I/O System (NetBIOS) компаний IBM и Microsoft NetBIOS, работать в пределах системы NetWare. 

Услуги прикладного уровня NetWare включают:
NetWare Message Handling Service (NetWare MHS) - Услуги по обработке сообщений, 
- Btrieve - реализация механизма доступа к базе данных двоичного дерева (btree) Novell, 
- NetWare Loadable Modules (NLM) - Загружаемые модули NetWare



1. 5. Прикладной уровень стека TCP/IP



Прикладной уровень стека TCP/IP соответствует трем верхним уровням модели OSI: прикладному, представительному и сеансовому. Он объединяет службы, предоставляемые системой пользовательским приложениям. За долгие годы использования в сетях различных стран и организаций стек TCP/IP накопил большое количество протоколов и служб прикладного уровня. Протоколы прикладного уровня устанавливаются на хостах. Прикладной уровень реализуется программными системами, построенными в архитектуре клиент-сервер. В отличие от протоколов остальных трех уровней, протоколы прикладного уровня отрабатывают логику приложений и «не интересуются» способами передачи данных по сети, они обращаются к протоколам нижних уровней как к некоторому набору инструментов. Так, клиентская часть протокола прикладного уровня для обмена сообщениями со своей серверной частью, установленной на отдаленном узле составной сети, должна обратиться с запросом к нижележащему транспортному уровню… 

На Рис. 6. представлены наиболее известные протоколы каждого из уровней стека TCP/IP и взаимосвязь между ними.


http://geum.ru/next/images/237643-nomer-25da54b2.png


Рис.6. Протоколы стека TCP/IP

Функции прикладного уровня:

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

Идентификация и установление наличия предполагаемых партнеров связи

Синхронизация совместно работающих программ

Установление соотношения по процедурам устранения ошибок

Управление целостностью информации

Протоколы прикладного уровня определяют, имеется ли в наличии достаточно ресурсов для предполагаемой связи

Отвечает за то, чтобы информация, посылаемая из прикладного уровня одной системы, была читаема на прикладном уровне другой системы

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

Устанавливает и завершает сеансы взаимодействия между прикладными задачами, управляет этими сеансами, синхронизирует диалог между объектами и управляет обменом информации между ними

Предоставляет средства для отправки информации и уведомления об исключительных ситуациях передачи данных. 
Почему существуют два транспортных протокола TCP и UDP, а не один из них? Дело в том, что они предоставляют разные услуги прикладным процессам. Большинство прикладных программ пользуются только одним из них. Вы, как программист, выбираете тот протокол, который наилучшим образом соответствует вашим потребностям. Если вам нужна надежная доставка, то лучшим может быть TCP. Если вам нужна доставка датаграмм, то лучше может быть UDP. Если вам нужна эффективная доставка по длинному и ненадежному каналу передачи данных, то лучше может подойти протокол TCP. Если нужна эффективность на быстрых сетях с короткими соединениями, то лучшим может быть протокол UDP. Если ваши потребности не попадают ни в одну из этих категорий, то выбор транспортного протокола не ясен. Однако прикладные программы могут устранять недостатки выбранного протокола. Например, если вы выбрали UDP, а вам необходима надежность, то прикладная программа должна обеспечить надежность. Если вы выбрали TCP, а вам нужно передавать записи, то прикладная программа должна вставлять маркеры в поток байтов так, чтобы можно было различить записи.

Глава 2. Серверы приложений

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

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

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

Преимущества серверов приложений

- Целостность данных и кода

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

- Централизованная настройка и управление

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

- Безопасность

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

- Поддержка транзакций

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

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

2.1. Архитектура современных корпоративных приложений

Сервер приложений — это инфраструктурное программное обеспечение, предназначенное для создания распределенных информационных систем с выделенными службами бизнес-логики, реализованными в виде компонентов, выполняющихся под его управлением. Эти компоненты могут представлять собой COM- или CORBA-объекты либо компоненты Enterprise JavaBeans. Современные серверы приложений позволяют реализовать надежные и устойчивые к сбоям информационные системы за счет поддержки создания кластеров и наличия средств восстановления после сбоев. В настоящее время серверы приложений являются основой многих корпоративных решений с повышенными требованиями к надежности, например приложений, реализующих схемы «предприятие — потребитель» (business-to-consumer, B2C), «предприятие — предприятие» (business-to-business, B2B), «предприятие  — сотрудник» (business-to-employee, B2E). Как правило, при реализации подобных решений серверы приложений располагаются между сервером баз данных и Web-сервером либо между сервером баз данных и клиентскими приложениями, при этом иногда функциональность Web-сервера реализуется и в самом сервере приложений.

Говоря о корпоративных решениях, нельзя не отметить проблему интеграции как различных приложений внутри одного предприятия, так и приложений, используемых на разных предприятиях. Одним из общепринятых способов ее решения является реализация функций приложений, к которым следует предоставить доступ извне, в виде Web-сервисов XML, и в настоящее время большинство производителей серверов приложений, СУБД и средств разработки приложений так или иначе реализовали поддержку Web-сервисов и связанных с ними технологий.

2.2. Технологии и стандарты

Современный рынок серверов приложений характеризуется доминированием относительно небольшого количества стандартов. В настоящее время на рынке серверов приложений наиболее популярен стандарт J2EE — Java 2 Enterprise Edition (последняя версия — 1.4), предназначенный для обеспечения взаимной переносимости приложений с одного J2EE-совместимого сервера приложений на другой и описывающий требования к возможностям данной категории серверов приложений и их производительности. Именно наличие этого стандарта сделало Java наиболее популярной сегодня платформой для создания корпоративных решений, поддерживаемой почти всеми ведущими производителями программного обеспечения. Сейчас возможность создания EJB (Enterprise Java Beans) — объектов, которые выполняются под управлением серверов приложений, поддерживающих спецификацию J2EE, — реализована во всех ведущих средствах разработки Java-приложений (их краткий обзор можно найти в КомпьютерПресс № 8’2003).

Отметим, однако, что помимо J2EE-совместимых серверов существуют и довольно широко используются серверы приложений, фактически таковыми не являющиеся. В первую очередь к ним можно отнести службы компонентов (COM+) и Enterprise Services — реализацию функциональности сервера приложений, встроенную в операционную систему Windows Server 2003, а также ряд специализированных серверов компании Microsoft, относящихся к семейству Microsoft Server System.

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

2.3. Лидеры рынка серверов приложений

Согласно последним аналитическим отчетам Gartner Dataquest, лидерами рынка J2EE-совместимых серверов приложений на данный момент являются компании IBM (37%) и BEA (29%). Доля рынка других ведущих производителей данной категории серверов приложений, таких как Borland, Oracle, Sun Microsystems, Sybase, составляет от 1 до 10%. Кроме того, весьма популярен J2EE-сервер Apache Tomcat, который входит в категорию продуктов Open Source, а также не относящиеся к этой категории специализированные серверы компании Microsoft. Ниже мы кратко рассмотрим особенности продуктов перечисленных компаний.

WebLogic Server 8.1 (BEA Systems)

BEA WebLogic Server — один из самых популярных в отрасли серверов приложений, полностью совместимых со спецификацией J2EE 1.3.

WebLogic Server 8.1 содержит большое количество средств, повышающих производительность труда разработчиков и администраторов, в частности инструменты создания и распространения J2EE-приложений; средства компиляции отчуждаемых J2EE-компонентов; средства создания и использования Web-сервисов XML; упрощенные средства администрирования; средства интеграции с унаследованными системами и другими бизнес-приложениями. Этот продукт интегрируется со многими средствами разработки Java-приложений независимых производителей, в частности с Borland JBuilder.

Отметим, что BEA WebLogic Server обладает средствами интеграции с приложениями для мэйнфреймов, включая осуществление в реальном времени распределенных транзакций, затрагивающих эти приложения.

Из инструментов, поставляемых отдельно, но использующихся совместно с BEA WebLogic Server, в первую очередь следует назвать BEA WebLogic Workshop — средство разработки Web-сервисов для WebLogic Server.

Borland Enterprise Server (Borland Software Corporation)

Borland Enterprise Server довольно широко применяется в телекоммуникационном и банковском секторах. Его привлекательность объясняется рядом уникальных технологических особенностей, таких как технология Borland Application Partitioning, позволяющая определить детальные характеристики компонентов и приложений, описать собственный набор сервисов для каждой конфигурации (partition), осуществить репликацию конфигураций, выделить для каждой конфигурации самостоятельный системный процесс. Все это упрощает управление распределенными системами и в целом повышает надежность и доступность приложений, созданных на основе этого сервера. Данный продукт поддерживает спецификации J2EE 1.3, EJB 2.0, JMS 1.02, Servlet 2.3, JSP 1.2, CORBA 2.5, XML и SOAP, содержит встроенный Web-сервер и Web-контейнер, позволяет конвертировать HTTP-запросы в CORBA IIOP (конкретный набор поддерживаемых возможностей зависит от выбранной редакции продукта: AppServer Edition, VisiBroker Edition, Web Edition или Team Edition). Данный сервер поддерживает платформы Windows, Linux и Solaris.

WebSphere Application Server 5.0 (IBM)

Как было сказано выше, IBM WebSphere Application Server 5.0 представляет собой J2EE-совместимый сервер приложений, занимающий лидирующие позиции на рынке продуктов подобного класса и доступный для широкого спектра платформ, включая AIX, Solaris, Windows, Linux, z/Os. Этот продукт поддерживает JDK 1.4, новейшие стандарты в области Web-сервисов, такие как WSDL 1.1, UDDI 1.0 и 2.0, SOAP 1.1 и SOAP 1.1 with Attachments, WS-Security, XML Signature, XML Encryption, а также предварительную версию спецификации WS-I.

Основными особенностями этого сервера приложений являются поддержка крупнейших ERP-систем, в том числе SAP и PeopleSoft (существуют EJB-адаптеры для доступа к объектам из этих ERP-систем), а также СУБД всех ведущих производителей (Microsoft, IBM, Oracle, Sybase), наличие средств обеспечения безопасности. Кроме того, редакция Enterprise Edition данного продукта содержит встроенные средства обмена сообщениями и поддержки выполнения CORBA- и COM-объектов и обращения к Java-классам через COM-интерфейсы.

Отметим, что IBM также поставляет на рынок основанные на этом сервере приложений специализированные решения для создания приложений электронной коммерции, решения для создания корпоративных и вертикальных порталов, в том числе для небольших предприятий (семейство продуктов WebSphere Express).

Разработку приложений для IBM WebSphere можно производить с помощью средств IBM, таких как VisualAge for Java, и средств разработки других производителей. Из средств создания приложений для WebSphere IBM отметим также наличие WebSphere Studio Workbench, который предоставляет открытую интегрированную среду разработки, позволяющую интегрировать инструменты разработки приложений независимых поставщиков.

Семейство серверов Microsoft Server System (Microsoft)

Наиболее часто применяемыми серверами приложений, не имеющими отношения к спецификации J2EE, являются службы компонентов, встроенные в операционные системы Windows 2000 Server и Windows Server 2003 (это почти единственный сервер приложений, встроенный в платформу), а также продукты семейства корпоративных серверов Microsoft Server System, предназначенные, как и другие серверы приложений, для создания и развертывания интегрированных корпоративных решений. Все эти серверы поддерживают XML, стандарты Интернет, кластерную архитектуру, имеют высокую степень взаимной интеграции и при этом стоят относительно недорого. Не производя серверы приложений общего назначения, компания Microsoft выпускает широкий спектр специализированных серверных продуктов, предназначенных для выполнения конкретных бизнес-задач (создание портала, разработка сайта электронной коммерции и пр.) и создания решений на их основе, в целом практически исчерпывающий все современные направления применения серверов приложений. Все эти серверы поддерживают управление COM-, COM+- и .NET-компонентами и доступны для операционных систем семейства Windows.

Из продуктов, входящих в семейство Microsoft Server System, к серверам приложений в традиционном понимании можно отнести сервер интеграции приложений Microsoft BizTalk Server, сервер сообщений и групповой работы Microsoft Exchange Server, сервер электронной коммерции Microsoft Commerce Server, масштабируемый сервер приложений для мобильной телефонии Microsoft Mobile Information Server, корпоративный портал Microsoft SharePoint Portal Server, сервер для управления информационным наполнением Web-сайтов Microsoft Сontent Manager Server, сервер для управления крупными корпоративными проектами Microsoft Project Server.

Oracle9i Application Server (Oracle Corporation)

Oracle9i Application Server (Oracle9iAS) — это J2EE-совместимый сервер приложений, предназначенный для создания широкого спектра корпоративных решений. Oracle9i Application Server полностью поддерживает J2EE 1.3, содержит высокоскоростной кэш, инструмент быстрой разработки приложений Oracle9i JDeveloper, средства интеграции приложений и бизнес-процессов.

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

Oracle9i Application Server поддерживает широкий спектр платформ, в том числе Linux и Windows, при этом среди редакций этого продукта имеется версия, оптимизированная для работы под управлением Windows Server 2003.

Enterprise Application Server 4.2 (Sybase)

Sybase Enterprise Application Server (EAServer) является J2EE-совместимым сервером приложений для создания порталов и корпоративных решений. Этот продукт, как и другие подобные продукты, предоставляет широкий набор инструментов для развертывания Web-приложений и распределенных систем. Sybase Enterprise Application Server 4.2 поддерживает спецификацию J2EE 1.3 и ряд спецификаций Web-сервисов.

Особенностью данного сервера приложений является универсальная по отношению к клиентским компонентам программного обеспечения поддержка широкого спектра технологий построения распределенных систем, включая COM, CORBA, XML, HTML, DHTML, ActiveX, средство разработки приложений PowerBuilder, а также средства интеграции различных приложений. Многие пользователи этого продукта отмечают высокое качество управления транзакциями и надежные средства обеспечения безопасностью. Sybase EAServer позволяет использовать бизнес-логику унаследованных приложений, интегрируя их программный код в среду EAServer при помощи технологии Application Integrators.

Sybase EAServer выпускается в четырех различных редакциях (Enterprise Edition, Advanced Edition, Developer Edition, Small Business Edition) и доступен для следующих платформ: Windows, Linux, AIX, HP-UX, Solaris.

Sun ONE Application Server 7 (Sun Microsystems)

Sun ONE Application Server 7 представляет собой сервер приложений, совместимый со спецификацией J2EE 1.3. В состав этого продукта, поддерживающего JSP, Java-сервлеты, EJB, входит HTTP-сервер. Продукт интегрируется со средствами создания приложений Sun ONE Studio 5 и Sun ONE Application Framework. Согласно утверждениям Sun, Sun One Application Server позволяет без изменений исполнять написанные для него приложения на любых других J2EE-совместимых серверах приложений.

Sun ONE Application Server 7 поддерживает создание и применение Web-сервисов XML — для этой цели в состав продукта включен Java Web Services Pack.

Данный продукт доступен бесплатно для Linux, Windows, HP-UX и AIX — за счет этого в Sun надеются переломить ситуацию и воспрепятствовать Microsoft .NET стать наиболее распространенной платформой для создания Web-сервисов.

Из продуктов Sun, применяемых совместно с Sun ONE Application Server, следует отметить Sun ONE Portal Server — средство создания корпоративных порталов и Sun ONE Integration Server, EAI Edition — средство интеграции различных приложений.

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

Заключение

Необходимо различать понятия сетевых приложений и протоколов прикладного уровня. Протоколы прикладного уровня являются частью (хотя и весьма большой) сетевых приложений. Рассмотрим два примера. Web является сетевым приложением, позволяющим пользователям получать web-документы по запросу и состоящим из множества компонентов, включая стандарт формата документов (HTML), браузеры (Netscape Navigator, Microsoft Internet Explorer и др.), web-серверы (например, Apache, Microsoft или Netscape), протоколы прикладного уровня. Протокол прикладного уровня для web носит название протокола передачи гипертекста (HyperText Transfer Protocol, HTTP) и описывает формат и порядок обмена сообщениями между клиентом и сервером (RFC 2646). Таким образом, HTTP является лишь частью web-приложения.

В качестве второго примера рассмотрим приложение электронной почты. Электронная почта Интернета также состоит из множества компонентов: почтовых серверов, содержащих почтовые ящики пользователей, программ для просмотра и создания электронных писем, стандартов, описывающих структуру электронных писем, протоколов прикладного уровня, регламентирующих порядок обмена сообщениями серверов между собой и с оконечными системами пользователей, а также интерпретацию полей, из которых состоят электронные письма[8]. Основным протоколом прикладного уровня для электронной почты является протокол простой передачи сообщений (Simple Mail Transfer Protocol, SMTP). Как мы видим, SMTP (RFC 2821) -- лишь часть (хотя и достаточно большая) структуры приложений электронной почты.

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

· типы используемых сообщений, например запросы и ответы;

· синтаксис каждого из типов сообщений, описывающий поля сообщения и их разделители;

· семантику полей, то есть смысл информации, содержащейся в каждом из полей сообщения;

· правила, описывающие события, которые вызывают генерацию сообщений.

Некоторые из протоколов прикладного доступа (HTTP, SMTP и др.) являются официально документированными в RFC. Это означает, что если разработчик нового браузера будет следовать стандарту, то браузер сможет получать документы с любого web-сервера, построенного по этому же стандарту. Тем не менее существует множество протоколов прикладного уровня, которые не стандартизированы и при этом используются для поддержки коммерческих продуктов. В частности, это характерно для Интернет-телефонии.

Протокол ICMP (Internet Control Message Protocol) - протокол межсетевых управляющих сообщений. С помощью этого протокола компьютеры и устройства сети обмениваются друг с другом управляющей информацией. К примеру, этот протокол используется для передачи сообщений об ошибках, проверки доступности узла и т.д.

Протокол FTP (File Transfer Protocol) - протокол передачи файлов. Служит для обмена файлами между компьютерами. Например, вам нужно передать файл на сервер или, наоборот, скачать файл с сервера. Для этого вам нужно подключиться к файловому серверу (он же FTP-сервер) и выполнить необходимую вам операцию скачивания или закачки. Подключение осуществляется с помощью FTP-клиента. Простейший FTP-клиент входит в состав практически любой операционной системы. Кстати, просматривать FTP-серверы могут и обычные браузеры.

Протокол HTTP (Hyper Text Transfer Protocol) - протокол обмена гипертекстовой информацией, то есть документами HTML. Вы, наверное, слышали, что HTML является базовым языком для создания веб-страниц. Так вот, протокол HTTP предназначен для передачи веб-страниц по сети. Таким образом, протокол HTTP используется веб-серверами, а браузеры - программы, служащие для просмотра веб-страниц, - являются HTTP-клиентами.

Протоколы POP и SMTP. Протокол POP (Post Office Protocol) - протокол почтового отделения. Этот протокол используется для получения электронной почты с почтовых серверов. А для передачи электронной почты служит протокол SMTP (Simple Mail Transfer Protocol).

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

Протокол SLIP (Serial Line Internet Protocol) - протокол подключения к сети Интернет по последовательной линии. Используется для установления связи с удаленными узлами через низкоскоростные последовательные интерфейсы. В настоящее время вытеснен протоколом РРР и практически не используется.

Протокол РРР (Point-to-Point Protocol) - обеспечивает управление конфигурацией, обнаружение ошибок и повышенную безопасность при передаче данных на более высоком уровне, чем протокол SLIP. Поэтому при настройке сервера рекомендуется использовать именно этот протокол. Протокол РРР рассмотрен в RFC 1547 и RFC 1661.

Протокол RIP (Routing Information Protocol) - используется для маршрутизации пакетов в компьютерных сетях. Для маршрутизации также используется протокол OSPF (Open Shortest Path First), который является более эффективным, чем RIP.

Список литературы

1. Блэк, У. Интернет: протоколы безопасности. Учебный курс / У. Блэк. - М.: СПб: Питер, 2001. - 288 c.
2. Влопросы дипломатического протокола и протокольной практики в СССР / ред. Д. Никифоров. - М.: МИД, 1977. - 300 c.
3. Второй съезд РСДРП. Протоколы. - Москва: Огни1999. - 850 c.
4. Вуд, Джон Дипломатический церемониал и протокол / Джон Вуд , Жан Серре. - М.: Прогресс, 2001. - 446 c.
5. Головин, Е. Веселая наука. Протоколы совещаний / Е. Головин. - М.: Эннеагон Пресс, 2006. - 280 c.
6. Девятый съезд РКП (б). Протоколы. - Москва: Гостехиздат2001. - 650 c.
7. Дэвис, Джозеф Microsoft Windows Server 2003. Протоколы и службы TCP/IP. Техническое руководство / Джозеф Дэвис , Томас Ли. - М.: Эком, 2005. - 752 c.
8. Запечников, С. В. Криптографические протоколы и их применение в финансовой и коммерческой деятельности / С.В. Запечников. - Москва: Огни, 2007. - 320 c.
9. Интерфейсы СОРМ. Справочник по телекоммуникационным протоколам. - М.: БХВ-Петербург, 2006. - 160 c.
10. Мельников, Д.А. Информационные процессы в компьютерных сетях. Протоколы. Стандарты. Интерфейсы. Модели / Д.А. Мельников. - М.: КУДИЦ-Образ, 1999. - 256 c.
11. Никифоров, Д. С. Дипломатический протокол в СССР. Принципы. Нормы. Практика / Д.С. Никифоров, А.Ф. Борунков. - М.: Международные отношения, 1985. - 304 c.
12. Олифер, В.Г. Компьютерные сети принципы, технологии, протоколы / В.Г. Олифер, Н.А. Олифер. - М.: СПб: Питер, 2002. - 672 c.
13. Рогинко, С. А. Европа, Россия и Киотский протокол / С.А. Рогинко, И.П. Мащенко. - М.: Огни, 2003. - 118 c.
14. Семенов, Ю. А. Алгоритмы телекоммуникационных сетей. В 3 частях. Часть 1. Алгоритмы и протоколы каналов и сетей передачи данных / Ю.А. Семенов. - М.: Интернет-университет информационных технологий, Бином. Лаборатория знаний, 2016. - 640 c.
15. Семенов, Ю. А. Алгоритмы телекоммуникационных сетей. В 3 частях. Часть 2. Протоколы и алгоритмы маршрутизации в Internet / Ю.А. Семенов. - М.: Бином. Лаборатория знаний, Интернет-университет информационных технологий, 2007. - 832 c.
16. Серре, Ж. Дипломатический протокол / Ж. Серре. - М.: Института международных отношений, 1988. - 112 c.
17. Столлингс, В. Компьютерные сети, протоколы и технологии Интернета / В. Столлингс. - М.: БХВ-Петербург, 2013. - 506 c.
18. Утолин, К. Заговор теней. Стоящие у престола. Секретные протоколы тайного мирового правительства / К. Утолин, О. Шевчук, Л. Базарова. - М.: Хранитель, АСТ, Астрель, Времена 2, 2006. - 448 c.
19. Фейт TCP/IP: Архитектура, протоколы, реализация (включая IP версии б и IP Security) / Фейт, Сидни. - М.: ЛОРИ, 2000. - 424 c.
20. Фетисов, В.С. Интеллектуальные средства измерений и HART-протокол / В.С. Фетисов. - М.: Уфа: Уфимский государственный авиационный технический университет, 2004. - 586 c.