Файл: Модель клиент-сервер (Понятие прикладных протоколов).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 17.05.2023

Просмотров: 58

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

Одна из таких технологий – Server-Sent Events (SSE) [4]. Эта технология позволяет клиентскому JavaScript коду в браузере создавать специальный объект EventSource, который сам обеспечивает соединение с сервером, делает пересоединение в случае обрыва и генерирует события при поступлении данных или возникновении ошибок.

После создания объекта EventSource с указанием адреса подключения браузер отправит запрос на установление соединения серверу. Чтобы соединение успешно открылось, сервер должен ответить с HTTP-заголовком "Content-Type: text/event-stream" и не закрывать соединение. После этого сервер может отправлять в открытое соединение сообщения, когда появляется новая информация (рисунок 3).

Рисунок 3. Server-Sent Events

В Server-Sent Events включена возможность отправлять идентификатор сообщения, который помогает восстановить утраченные события в случае обрыва соединения. В поддерживающих стандарт браузерах доступен удобный событийно-ориентированный программный интерфейс (API) для обработки получаемых сообщений и ошибок.

Технология Server-Sent Events значительно уменьшает количество передаваемых по сети лишних данных, HTTP-заголовки передаются только при установлении соединения. Сообщения от сервера не сопровождаются HTTP-заголовками, что в значительной степени минимизирует накладные расходы на передачу. Однако передача данных таким способом возможна только в одностороннем порядке: от сервера к клиенту.

Альтернативным решением в виде части спецификации HTML5 является технология WebSocketWebSocket – это протокол, предоставляющий двунаправленную полнодуплексную связь, работа которой обеспечивается поверх протокола TCP [6, с. 1]. Стандартизация программного интерфейса (WebSocket API) для доступа к протоколу из веб-браузера осуществляется организацией W3C [5], а сам протокол WebSocket определяется стандартом RFC 6455 [3]Переключение с HTTP на WebSocketпротокол происходит с помощью обмена специальными заголовками между клиентом и сервером. Если сервер в ответных заголовках подтверждает этот переход, то дальше общение идёт на специальном протоколе WebSocket, который уже не имеет с HTTP ничего общего.

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


Рисунок 4. WebSocket

Протокол WebSocket подробно описан в RFC 6455 [3]. Здесь лишь отметим, что формат пакета (фрейма) данных имеет компактную структуру, обеспечивая минимум накладных расходов на передачу и повышая тем самым производительность. Кроме того, фреймы делятся на два больших типа: фреймы с данными и управляющие фреймы, предназначенные для проверки связи (ping) и закрытия соединения. Помимо передачи текстовой информации, фреймы с данными могут содержать и бинарные данные.

Для обеспечения безопасного соединения, WebSocket также может работать через TLS (TransportLayer Security). В таком случае, при создании экземпляра WebSocket с помощью HTML5 WebSocketAPI, указывается URL-схема “wss://” вместо “ws://” для незащищенного соединения. Этот метод является наиболее предпочтительным, обеспечивающим не только шифрование соединения, но и предотвращение разбора такого подключения прокси-серверами, некоторые версии которых могут изменять заголовки «обновления» протокола, приводя их в негодность.

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

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

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

  • Использование современных подходов стандартизованных HTML5 (Server-Sent Events и WebSocket) позволяет существенно повысить производительность интерактивных веб-приложений с интенсивным обменом данными между клиентом и сервером. По возможности стоит придерживаться именно этих технологий коммуникации и прибегать к использованию более примитивных средств транспортировки данных, таких как Comet или опрос, лишь в случае отсутствия их поддержки используемыми браузерами.
  • Server-Sent Events отправляются по традиционному протоколу HTTP. Это означает, что они не требуют специальной реализации протокола или сервера. Кроме того, SSE-cобытия имеют ряд особенностей, которые не имеют WebSocket по умолчанию, такие как автоматическое переподключение и идентификаторы событий. Использование SSE в веб-приложениях, в которых осуществляется однонаправленная передача данных от сервера клиенту, может ускорить время разработки.
  • Для повышения надежности и отказоустойчивости в случае использования WebSocket можно применять балансировщик TCP-загруженности.
  • Рекомендуется использовать безопасные WebSocket-подключения (wss). Прокси-серверы не станут заниматься закодированными подключениями, что обеспечит поддержу протокола старыми версиями серверов, а также добавится преимущество защищенности данных от подслушивания.

При использовании SSE и WebSocket удобно использовать веб-сервер, реализующий цикл событий (англ. event loop) для поддержания асинхронности.
 

2 ОСНОВНЫЕ ПРИНЦИПЫ ПОСТРОЕНИЯ РАСПРЕДЕЛЁННЫХ ИНФОРМАЦИОННЫХ СИСТЕМ

2.1 Основные принципы структурного подхода

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

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

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

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

2.2 Неоднородность ресурсов в распределенных системах

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

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


2.3 Концепции и принципы объектного подхода

Основные понятия объектно-ориентированного подхода - объект, класс и экземпляр.

Объект - это абстракция множества предметов реального мира, обладающих одинаковыми характеристиками и законами поведения. Объект представляет собой типичный неопределенный элемент такого множества. Экземпляр объекта - это конкретный определенный элемент множества. Например, в банковском деле объектом является некоторый лицевой счет, а экземпляром этого объекта - лицевой счет #123.

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

Таким образом, объект - это типичный представитель класса, а термины «экземпляр объекта» и «элемент класса» равнозначны.

С точки зрения объектного моделирования понятия «описание класса» и «описание объекта» эквивалентны, так как для определения множества схожих элементов, образующих класс, достаточно описать его типичного представителя, то есть объект.

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

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

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

Наследование означает построение новых классов на основе существующих с возможностью добавления или переопределения данных и методов.


2.4 Особенности применения объектного подхода

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

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

Класс объектов, кроме структур данных, определяет функции (методы), применимые к этим структурам.

В примере с объектом «Покупатель» класс может содержать такие функции (методы), как проверить кредитоспособность, выставить счет и т. д. Класс - это ключевой элемент, обеспечивающий модульность в проектных спецификациях ИС и программных решениях.

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

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

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

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

Модели анализа могут быть непосредственно подвергнуты сравнению с моделями реализации.

По объектным моделям может быть прослежено отображение реальных сущностей моделируемой предметной области в объекты и классы информационной системы.

сервер клиент данные объектный

ЗАКЛЮЧЕНИЕ

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