Добавлен: 06.04.2023
Просмотров: 79
Скачиваний: 1
СОДЕРЖАНИЕ
Глава 1. Протоколы прикладного уровня
1.1 Общие понятия. Протокол. Стек протоколов
1. 2. Общие принципы организации и функционирования прикладного уровня (OSI)
1. 3. Протоколы прикладного уровня OSI
1. 4. Протоколы прикладного уровня NetWare
1. 5. Прикладной уровень стека TCP/IP
2.1. Архитектура современных корпоративных приложений
1. 3. Протоколы прикладного уровня OSI
В настоящее время эталонная модель OSI является самой выдающейся в мире моделью архитектуры объединенных сетей. Она также является самым популярным средством приобретения знаний о сетях. Следует различать стек протоколов OSI и модель OSI. В то время как модель OSI концептуально определяет процедуру взаимодействия открытых систем, декомпозируя задачу на 7 уровней, стандартизирует назначение каждого уровня и вводит стандартные названия уровней, стек OSI - это набор вполне конкретных спецификаций протоколов, образующих согласованный стек протоколов. На Рис. 4 представлены некоторые протоколы стека OSI и их связь с эталонной моделью OSI.
Рис. 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 и взаимосвязь между ними.
Рис.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).