Файл: Технология «клиент-сервер» (Технология клиент-сервер и модели ее реализации).pdf

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

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

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

Добавлен: 14.03.2024

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

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

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

Содержание:

ВВЕДЕНИЕ

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

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

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

Цель: дать теоретическое и практическое представление об архитектуре и настройке клиент-серверной платформы.

Задачи:

  1. Рассмотреть архитектуру «Клиент-сервер», модель, настройки сети.
  2. Проанализировать работу клиент-серверной платформы в предприятии.
  3. Представить методические рекомендации по настройке архитектуры «Клиент-сервер».

Объект исследования: учебные пособия, ЭВМ.

Предмет исследования: архитектура «Клиент-сервер», способы настройки клиент-серверной платформы.

При написании курсовой работы рассмотрен ГОСТ Р ИСО/МЭК ТО 10735-2000, предъявляющий требования к передаче информации между системами. Использование данного ГОСТа в моей работе необходимо, т.к. он представляет собой нормативно-правовой документ, требований которого должна придерживаться любая организация. Учебное пособие для вузов «Вычислительная техника, сети и телекоммуникации», написанное Гребешковым А.Ю. в 2016 году является понятным для изучения пособием и позволяет разобраться в основных понятиях сетей. Учебник «Вычислительные системы, сети и телекоммуникации», написанный Гусевой А.И. в 2016 году дополняет учебное пособие Гребешкова А.Ю.. Для изучения работы клиент-серверной платформы на предприятии рассмотрен и изучен сайт «1С: Предприятие 8». Рекомендации по настройке клиент-серверной архитектуры были написаны с помощью учебных пособий «Компьютерные сети» под редакцией Кузина А.В., написанное в 2018 году, и «Сети и телекоммуникации» под редакцией Соболева А.В., написанное в 2015 году. Для более детального и углубленного изучения теоретического и практического материала были изучены новые книги ведущих авторов в области компьютерных сетей: Куроуз, Дж. «Компьютерные сети: Нисходящий подход» 2018 года, Олифер, В. «Компьютерные сети» 2016 года, Таненбаум, Э. «Компьютерные сети» 2019 года.


1. Технология клиент-сервер и модели ее реализации

Серверы. Основные понятия серверов

Сервер (от англ. server, обслуживающий). В зависимости от предназначения существует несколько определений понятия сервер.

1. Сервер (сеть) — логический или физический узел сети, обслуживающий запросы к одному адресу и/или доменному имени (смежным доменным именам), состоящий из одного или системы аппаратных серверов, на котором выполняются один или система серверных программ [1].

2. Сервер (программное обеспечение) — программное обеспечение, принимающее запросы от клиентов (в архитектуре клиент-сервер [2].

3. Сервер (аппаратное обеспечение) — компьютер (или специальное компьютерное оборудование) выделенный и/или специализированный для выполнения определенных сервисных функций [3].

4. Сервер в информационных технологиях — программный компонент вычислительной системы, выполняющий сервисные функции по запросу клиента, предоставляя ему доступ к определённым ресурсам [6].

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

Как правило, каждый сервер обслуживает один (или несколько схожих) протоколов и серверы можно классифицировать по типу услуг, которые они предоставляют.

Модель клиент-сервер

Технология «Клиент – сервер» - это архитектура программного комплекса, в которой происходит распределение прикладной программы по двум логически различным компонентам (клиент и сервер), взаимодействующим по схеме «запрос-ответ» и решающим свои определенные задачи (рисунок 1).

Рисунок 1. Архитектура "Клиент-сервер"

Сервер - компьютер (или программа), управляющий и/или владеющий каким-либо ресурсом [3].

Клиент - компьютер (или программа), запрашивающий и пользующийся каким-либо ресурсом [3].

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


Основной принцип технологии «Клиент-сервер» заключается в разделении функций приложения как минимум на три группы [2]:

  • Модули интерфейса с пользователем:

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

  • Модули хранения данных:

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

  • Модули обработки данных:

Эту группу также называют логикой доступа к данным или алгоритмами доступа к данным. Алгоритмы доступа к данным исторически рассматривались как специфический для конкретного приложения интерфейс к механизму постоянного хранения данных наподобие файловой системы или СУБД. При помощи модулей обработки данных организуется специфический для приложения интерфейс к СУБД. При помощи интерфейса приложение управляет соединениями с базой данных и запросами к ней (перевод специфических для конкретного приложения запросов на язык SQL, получение результатов и перевод этих результатов обратно в специфические для конкретного приложения структуры данных).

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

В соответствии с разделением функций в любом приложении выделяются следующие компоненты [1]:

  • компонент представления данных;
  • прикладной компонент;
  • компонент управления ресурсом.

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


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

Чтобы избежать несогласованности различных элементов архитектуры были созданы две модификации двухзвенной архитектуры «Клиент – сервер»: «Толстый клиент» («Тонкий сервер») и «Тонкий клиент» («Толстый сервер»).

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

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

Формат запросов клиента и ответов сервера определяется протоколом. Спецификации открытых протоколов описываются открытыми стандартами, например, протоколы Интернета определяются в документах RFC [1].

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

Передача информации в клиент-серверной архитектуре

Технология клиент-сервер в общем случае предназначена для использования с объемными информационными сетями. От одного абонента до другого данные могут проходить сложный путь по разным физическим каналам и сетям. Путь доставки данных может меняться в зависимости от состояния отдельных элементов сети. Какие-то компоненты сети могут не работать в этот момент, тогда данные пойдут другим путем. Может изменяться время доставки. Данные могут даже пропасть, не дойти до адресата [2].


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

Пакет это аналог обычного почтового письма. Он также, кроме информации, должен содержать адрес получателя и адрес отправителя [3].

Пакет состоит из заголовка и информационной части. Заголовок содержит адреса получателя и отправителя, а также служебную информацию, необходимую для “склейки” пакетов на приемной стороне. Сетевое оборудование использует заголовок для определения, куда передавать пакет.

Основные параметры, используемые для адресации пакетов [6]:

  • IP-адрес устройства;
  • маску подсети;
  • доменное имя;
  • IP-адрес сетевого шлюза;
  • MAC-адрес;
  • порт.

Рассмотрим подробнее каждый параметр.

IP-адрес

IP-адрес (Internet Protocol Address) - уникальный номер каждого устройства, подключенного к сети. IP-адрес присваивается не устройству (компьютеру), а интерфейсу подключения. В принципе устройства могут иметь несколько точек подключения, а значит несколько различных IP-адресов [2].

IP-адрес - это 32х разрядное число или 4 байта. Для наглядности принято записывать его в виде 4 десятичных чисел от 0 до 255, разделенных точками. Например, 192.168.0.116.

Для того чтобы сетевому оборудованию было проще выстраивать маршрут доставки пакетов в формат IP-адреса введена логическая адресация. IP-адрес разбит на 2 логических поля: номер сети и номер узла. Размеры этих полей зависят от значения первого (старшего) октета IP-адреса и разбиты на 5 групп – классов. Это так называемый метод классовой маршрутизации.

Таблица 1. Метод классовой маршрутизации

Класс

Старший октет

Формат

(С-сеть,
У-узел)

Начальный адрес

Конечный

адрес

Количество сетей

Количество узлов

A

0

С.У.У.У

0.0.0.0

127.255.255.255

128

16777216

B

10

С.С.У.У

128.0.0.0

191.255.255.255

16384

65534

C

110

С.С.С.У

192.0.0.0

223.255.255.255

2097152

254

D

1110

Групповой адрес

224.0.0.0

239.255.255.255

-

228

E

1111

Резерв

240.0.0.0

255.255.255.255

-

227