Файл: Модель клиент-сервер (Понятие прикладных протоколов).pdf
Добавлен: 17.05.2023
Просмотров: 53
Скачиваний: 2
СОДЕРЖАНИЕ
1 ОСОБЕННОСТИ ФУНКЦИОНИРОВАНИЯ МОДЕЛИ «КЛИЕНТ - СЕРВЕР»
1.1 Характерные принципы функционирования модели «Клиент - Сервер»
1.2 Определение сервера и клиента
1.3 Роль сервера и клиента в архитектуре клиент-сервер
1.4 Понятие прикладных протоколов
1.5 Представление данных в системах обработки данных
2 ОСНОВНЫЕ ПРИНЦИПЫ ПОСТРОЕНИЯ РАСПРЕДЕЛЁННЫХ ИНФОРМАЦИОННЫХ СИСТЕМ
2.1 Основные принципы структурного подхода
2.2 Неоднородность ресурсов в распределенных системах
2.3 Концепции и принципы объектного подхода
ВВЕДЕНИЕ
Архитектура клиент-сервер – это сетевая архитектура, в которой взаимодействуют устройства называемые клиентами и серверами. Данная архитектура может использоваться как для физических устройств, так и для программного обеспечения зависимо от распределения логических компонентов приложения между клиентом и сервером.
В архитектуру клиент-сервер входят следующие основные компоненты:
- сервер баз данных отвечает за хранение, доступ, защиту и резервное копирование данных;
- сервер приложений - это устройство, выполняющее определенные бизнес-правила;
- клиент предоставляет интерфейс пользователя;
- сеть и коммуникационное ПО – это всевозможное оборудование, каналы для передачи данных и ПО используемое для осуществления передачи запросов и ответов от клиента к серверу и обратно через сетевые протоколы.
Использование такой архитектуры помогает оптимизировать распределение вычислительных ресурсов и обеспечивает защиту данных.
1 ОСОБЕННОСТИ ФУНКЦИОНИРОВАНИЯ МОДЕЛИ «КЛИЕНТ - СЕРВЕР»
1.1 Характерные принципы функционирования модели «Клиент - Сервер»
В общем случае для организации работы пользователей сети с информационными ресурсами, распределенными по различным компьютерам, необходимы три составляющих:
- программа, установленная на компьютере пользователя, которая может осуществлять сетевой запрос с целью получения объекта, и предназначенная для его обработки (например, просмотра, изменения или печати документа);
- программа, установленная, как правило, на компьютере, где расположен информационный объект, которая может осуществлять по запросу поиск и пересылку объекта, а также упорядочивание доступа к нему нескольких пользователей;
- правила (протокол) взаимодействия между этими программами.
Технология взаимодействия, в которой одна программа запрашивает выполнение какой-либо совокупности действий («запрашивает услугу»), а другая ее выполняет, называется технологией «клиент-сервер». Участники такого взаимодействия называются соответственно клиентом (client) и сервером (server). Достаточно часто клиентом (или сервером) называют компьютеры, на которых функционирует то или иное клиентское (или серверное) программное обеспечение.
Следует особо отметить, что набор действий, понимаемых как запрашиваемая услуга, – это не обязательно чтение (получение) объекта. В том числе это может быть сохранение (запись), пересылка объекта и т.д.
1.2 Определение сервера и клиента
При большом числе компьютеров (десятки, сотни и даже тысячи) предприятия чаще всего полагаются на сети модели «клиент-сервер». Упрощенно можно считать, что в такой сети отдельный компьютер подключается к одному или нескольким мощным компьютерам, которые называются серверами.
Сервер – это компьютер, или выполняющаяся на нём программа, которая предоставляет клиентам доступ к общим ресурсам и управляет этими ресурсами.
Клиент – пользователь (получатель) услуг и/или ресурсов, которые предоставляет сервер.
СЕРВЕР
Рисунок 1.1. - Модель клиент-сервер.
В серверных сетях серверы оснащены процессорами типа Intel Pentium 4 и сетевой операционной системой.
1.3 Роль сервера и клиента в архитектуре клиент-сервер
Роль серверов состоит в обеспечение централизованной защиты и управлении трафиком, а так же в предоставление клиентам ресурсов: информации, приложений и доступа к устройствам совместного пользования (например, к принтерам). В клиент – серверной среде в роли клиентов выступают настольные ПК (именно ПК, а не неинтеллектуальные терминалы) под управлением операционной системы типа Windows 95 или Windows NT Workstation. Как правило, клиент использует собственные вычислительные мощности для обработки информации, полученной от сервера, но полагается на сервер в части предоставления необходимых данных и приложений. Такое распределение ролей в обработке информации носит название клиентской (front - end) и серверной (back - end) обработки.
Наряду с успешным функционированием в собственной «родной» среде, сети модели клиент – сервер могут работать с микрокомпьютерами и мэйнфреймами. Именно эта гибкость в сочетании достаточно низкой (по сравнению с традиционными решениями) стоимостью и составляет привлекательность клиент – серверных сетей. Работая в такой среде на компьютере – клиенте, можно «вкушать плоды» трех разных методов обработки информации: автономной работы, взаимодействия с другими ПК сети и подключения к серверу или мэйнфрейму для доступа к хранящейся там информации.
1.4 Понятие прикладных протоколов
Необходимо различать понятия сетевых приложений и протоколов прикладного уровня. Протоколы прикладного уровня являются частью (хотя и весьма большой) сетевых приложений. Рассмотрим два примера. Web является сетевым приложением, позволяющим пользователям получать web-документы по запросу и состоящим из множества компонентов, включая стандарт формата документов (HTML), браузеры (Netscape Navigator, Microsoft Internet Explorer и др.), web-серверы (например, Apache, Microsoft или Netscape), протоколы прикладного уровня. Протокол прикладного уровня для web носит название протокола передачи гипертекста (HyperText Transfer Protocol, HTTP) и описывает формат и порядок обмена сообщениями между клиентом и сервером (RFC 2646). Таким образом, HTTP является лишь частью web-приложения.
В качестве второго примера рассмотрим приложение электронной почты. Электронная почта Интернета также состоит из множества компонентов: почтовых серверов, содержащих почтовые ящики пользователей, программ для просмотра и создания электронных писем, стандартов, описывающих структуру электронных писем, протоколов прикладного уровня, регламентирующих порядок обмена сообщениями серверов между собой и с оконечными системами пользователей, а также интерпретацию полей, из которых состоят электронные письма. Основным протоколом прикладного уровня для электронной почты является протокол простой передачи сообщений (Simple Mail Transfer Protocol, SMTP). Как мы видим, SMTP (RFC 2821) — лишь часть (хотя и достаточно большая) структуры приложений электронной почты.
Как сказано выше, протоколы прикладного уровня определяют способ обмена сообщениями между двумя процессами, выполняющимися на разных оконечных системах. Обычно протокол определяет следующие элементы:
□ типы используемых сообщений, например запросы и ответы;
□ синтаксис каждого из типов сообщений, описывающий поля сообщения и их разделители;
□ семантику полей, то есть смысл информации, содержащейся в каждом из полей сообщения;
□ правила, описывающие события, которые вызывают генерацию сообщений.
Некоторые из протоколов прикладного доступа (HTTP, SMTP и др.) являются официально документированными в RFC. Это означает, что если разработчик нового браузера будет следовать стандарту, то браузер сможет получать документы с любого web-сервера, построенного по этому же стандарту. Тем не менее существует множество протоколов прикладного уровня, которые не стандартизированы и при этом используются для поддержки коммерческих продуктов. В частности, это характерно для Интернет-телефонии.
1.5 Представление данных в системах обработки данных
По мере развития сети Интернет потребности пользователей становились всё больше, увеличивался и размер пересылаемых данных. Веб-приложения, состоящие из обычного текста и картинок, стали на порядок более сложными, вплотную приблизившись к десктопным (англ. desktop) аналогам.
На сегодняшний день существует ряд веб-приложений, к которым выдвигается требование постоянного обеспечения актуальности информации. К таким приложениям можно отнести веб-приложения мониторинга состояния какой-либо системы или процесса, приложения для совместной работы, системы мгновенного обмена сообщениями, многопользовательские браузерные онлайн игры и другие. Иногда подобного рода приложения называют веб-приложениями с применением коммуникаций реального времени, или веб-приложениями реального времени [1, c. 222].
Одним из основных требований при разработке таких приложений является обеспечение постоянного обмена сообщениями между клиентской и серверной частью приложения с помощью некоторой среды передачи данных, называемой транспортом.
Стандартная схема обмена сообщениями «запрос-ответ», реализуемая протоколом HTTP, является неприемлемой для веб-приложений «реального времени», так как не предоставляет возможность принудительного преподнесения клиенту оперативной информации без предварительного запроса от него. Новая информация от сервера может быть доступна только после совершения запроса со стороны клиента.
В связи с описанным ограничением протокола HTTP для организации интенсивного обмена информацией применяются несколько способов, использующих технологии AJAX и Comet, которые позволяют его обойти. Рассмотрим основные из этих методов в хронологическом порядке их появления.
Самым простым из таких способов является опрос (англ. polling). Способ основан на постоянном обращении клиента к серверу за новой информацией (рисунок 1). Клиентский код, выполняемый в браузере пользователя, с заданной временной периодичностью отправляет запрос, опрашивая сервер о наличии событий. Сервер формирует ответ для каждого запроса и отправляет его обратно клиенту. В случае отсутствия новых данных, сервер также сообщает об этом. Запрос к серверу выполняется с использованием подхода AJAX, что подразумевает обмен данными в «фоновом» режиме без полной перезагрузки веб-страницы.
Рисунок 1. Опрос (polling)
К очевидным недостаткам такого подхода следует отнести следующие:
- очень много лишних запросов, посылаемых клиентом, когда на сервере еще нет новых данных;
- серверу приходится хранить информацию о произошедших событиях до тех пор, пока клиент не запросит их или пока они не устареют;
- события всегда приходят с опозданием, ввиду заданного интервала и времени, требуемого на открытие соединения.
Преимуществом опроса является простота его реализации и поддержка большинством из используемых сегодня веб-браузеров.
Более совершенными транспортными технологиями являются технологии под общим термином Comet. Comet – это коллекция техник, которые при постоянном (или длительном) HTTP-соединении позволяют веб-серверу отправлять данные браузеру без дополнительного запроса с его стороны. Общая черта таких моделей состоит в том, что все они основаны на технологиях, непосредственно поддерживаемых браузером.
К таким техникам относится другой способ обмена сообщениями, называемый длительный опросом (англ. long polling). После загрузки веб-страницы, клиентский код выполняет запрос, но сервер не отвечает и не закрывает соединение, пока не появятся новые данные или пока клиент не отключится самостоятельно. Как только данные появились – отправляется ответ и соединение закрывается. После чего клиент сразу же отправляет следующий запрос, снова запуская процесс ожидания (рисунок 2).
Рисунок 2. Длинный опрос (long-polling)
Достоинства этого метода по сравнению с классическим опросом (polling):
- минимальное количество запросов;
- высокая временная точность событий;
- отсутствие необходимости длительного хранения событий сервером.
Общим недостатком для всех методов, работающих по средствам протокола HTTP, является избыточный размер сообщений, обусловленный передачей служебных HTTP-заголовков вместе с полезной информацией. Каждое подключение к серверу требует передачи полного набора НТТР-заголовков, и при необходимости обеспечения малого интервала времени между запросами это становится настоящей проблемой.
Для получения информации со стороны сервера также возможно использовать и дополнительные модули для браузеров, такие как Adobe Flash и Java. Они допускают простые TCP-соединения с сервером, которые могут использоваться для принудительной отправки клиентам оперативной информации. К проблемам применения сторонних модулей относится то, что нет никакой гарантии их установки в клиентском браузере, а также частые конфликты этих модулей с брандмауэрами, особенно в корпоративных сетях. Кроме того, технологии Comet не были приведены к стандарту и поэтому имеют проблему несовместимости кода в различных браузерах [2, с. 127].