Добавлен: 22.04.2023
Просмотров: 344
Скачиваний: 7
СОДЕРЖАНИЕ
1. Распределенные системы обработки информации
1.1 Аппаратно-программные компоненты системы
1.2 Сетевая модель OSI и стек протоколов TCP/IP
1.3 Взаимодействие процессов клиента и сервера
1.4 Варианты архитектуры клиент-серверных приложений
2. Организация и распределение клиентов и серверов
2.1 Типовые варианты организации архитектуры клиент-сервер
2.2 Современные варианты организации архитектуры клиент-сервер
2.3 Разделение клиент-серверных приложений на уровни
3. Программная модель клиента и сервера
ВВЕДЕНИЕ
Распределенные операционные системы используются для управления аппаратным обеспечением взаимосвязанных компьютерных систем, к которым относятся мультипроцессорные и мультикомпьютерные системы.
Распределенные системы представляют множество автономных компьютеров, которые работают совместно в виде единой масштабируемой системы. Размер распределенной системы ограничивается размером базовой сети. Подобная организация взаимодействующих компьютеров упрощает интеграцию разных работающих приложений.
Сетевые операционные системы успешно объединяют компьютеры, работающие под управлением своих операционных систем, что позволяет пользователям получать доступ к общим сетевым службам. Однако сетевые операционные системы не создают ощущения работы с единой системой, в отличие от распределенных систем.
Распределенные системы обычно поверх сетевой операционной системы предлагают дополнительный промежуточный уровень программного обеспечения, который скрывает распределенную природу отдельных компьютеров. Распределенные системы обычно требуют специфическую модель распределения и связи, которая может основываться на удаленном вызове процедур, а также на распределенных файлах или объектах.
Для распределенной системы крайне важна схема внутренней организации. Распространена модель, в которой процессы клиента запрашивают службы сервера. Клиент посылает сообщение серверу и ждет его ответ. Службы в такой модели реализуются в виде процедур отдельных модулей, обеспечивающих уровень интерфейса пользователя, уровень обработки данных и уровень данных. Серверная часть обычно отвечает за уровень данных. Клиентская часть обычно отвечает за уровень графического пользовательского интерфейса. Уровень обработки может быть реализован как на клиенте, так и на сервере, либо поделен между клиентом и сервером. В крупномасштабных распределенных системах вертикальной организации приложений по модели клиент-сервер недостаточно. Требуется распределение по горизонтали, т.е. клиенты и серверы физически распределены и реплицируются на несколько компьютеров. Примером успешного горизонтального распределения является всемирная паутина (www, world wide web).
Объект: распределенные системы обработки данных.
Предмет: клиент-сервер.
Цель: выполнить построение и анализ программной модели клиент-серверного приложения общего назначения.
Задачи:
1. Анализ аппаратных и программных компонентов распределенных систем, взаимодействия процессов клиента и сервера.
2. Сравнение сетевой модели OSI с уровнями стека протоколов TCP/IP.
3. Рассмотрение вариантов организации архитектуры клиент-сервер
4. Составление программной модели клиента и сервера.
1. Распределенные системы обработки информации
1.1 Аппаратно-программные компоненты системы
Использование технологий распределенной обработки данных стало актуально для высокотехнологичных географически удаленных компаний. Идея распределенной обработки в том, что пользователь получает возможность работать с данными и программами, расположенными в нескольких взаимосвязанных оконечных системах.
Современная распределенная вычислительная система основывается на комплексе аппаратных и программных компонентов, который может быть описан многослойной архитектурой: сервера и рабочие станции, сетевое оборудование, сетевые операционные системы, сетевые приложения.
1. Компьютеры. В основе сети лежит аппаратный слой стандартизированных компьютерных платформ, серверов, рабочих станций и персональных компьютеров от персональных до супер-ЭВМ и кластерных систем. Термин «сервер» может трактоваться в двух значениях: «выделенный» или приспособленный для тех или иных сетевых сервисных функций компьютер, либо специализированное программное обеспечение, которое принимает и обрабатывает задачи пользователей. Особенностью обоих вариантов является то, что и аппаратное устройство, и программное обеспечение адаптированы для решения определенных сетевых запросов без прямого вмешательства человека. Это свойство отличает физический сервер от, например, рабочей станции, которая подразумевает присутствие оператора. Другими словами, рабочая станция – это «невыделенным сервером», когда некоторые сервисные задачи могут выполняться на ней параллельно с работой пользователя. Серверы находят самые нестандартные применения, их можно встретить в центрах управления полетами, магазинах, на автозаправках, электрических подстанциях и в офисах телефонных компаний, при этом также используются и сетевые устройства других типов, такие как сетевые хранилища данных и т.д. [10].
2. Коммуникационное оборудование. Второй слой модели сети как основы распределенной системы – коммуникационное оборудование: кабельные системы, повторители, коммутаторы, маршрутизаторы и т.д. При любом типе соединения, как только компьютеров становится больше двух, возникает проблема выбора конфигурации физических связей или топологии сети [9].
Рабочая станция
Рабочая станция
Рабочая станция
Рисунок 1 – Топология «звезда» вычислительной (компьютерной) сети
Коммутатор уровня ядра
Рабочая станция
Коммутатор
Сервер
Рабочая станция
Рабочая станция
Коммутатор
Сервер
Рабочая станция
Рисунок 2 – Топология «дерево» вычислительной (компьютерной) сети
Число конфигураций возрастает при увеличении числа связываемых устройств. Под топологией сети понимается способ соединения ее отдельных компонентов (компьютеров, серверов, принтеров и т.д.). При использовании топологии типа звезда информация между клиентами сети передается через единый центральный узел (сервер, концентратор или хаб), коммутатор или свитч).
Основание дерева вычислительной сети (корень) располагается в точке, в которой собираются коммуникационные линии информации (ветви дерева). Вычислительные сети с древовидной структурой применяются там, где невозможно непосредственное применение базовых сетевых структур в чистом виде. Для подключения большого числа рабочих станций соответственно адаптерным платам применяют коммутаторы.
На практике зачастую применяется комбинированная древовидная структура, которая образуется в виде комбинаций других топологий.
3. Операционные системы. Третьим слоем, образующим платформу сети, являются сложные программы – операционные системы. При проектировании сети важно учитывать то, как выбранная операционная система может взаимодействовать с другими сетевыми системами, какой уровень информационной безопасности она обеспечивает, как масштабируется число пользователей. На сервер устанавливается серверная операционная система, которая, в отличие от обычной операционной системы, обладает некоторыми преимуществами, например поддержкой нескольких процессоров, большего объема оперативной памяти, инструментами администрирования сети и т.д. К серверным операционным системам относятся Windows Server 2008, Windows Server 2016, Windows Server Small Business, Linux Server OpenSuSe и т.д. [9].
4. Сетевые приложения. Верхний, четвертый слой вычислительной системы образуют сетевые приложения – базы данных, средства передачи данных, системы коллективной работы и т.д. Важно представлять их функциональные возможности для различных областей и степень совместимости друг с другом и операционными системами. [1].
Многослойная архитектура в виде аппаратно-программных компонентов распределенной системы дает общее представление о ее устройстве.
1.2 Сетевая модель OSI и стек протоколов TCP/IP
В соответствии с эталонной семиуровневой моделью взаимодействия открытых систем OSI ISO (Open System Interconnection) в сетях коммутации пакетов для передачи данных между несмежными компьютерными системами создается сетевая платформа, образуемая физическими средствами соединения, физическим, канальным и сетевым уровнями.
Уровни модели OSI и соответствующие ее уровням уровни стека протоколов TCP/IP представлены на рисунке. Протокол TCP разбивает поток данных на «сегменты», которые передаются по физическим линиям связи [8].
|
Уровни модели OSI |
Уровни стека TCP/IP |
Протоколы TCP/IP |
Представление пакета |
|
Прикладной |
Прикладной |
HTTP, FTP, SMTP |
Поток байтов приложения |
|
Представления |
|||
|
Сеансовый |
|||
|
Транспортный |
Транспортный |
TCP, UDP |
Сегмент TCP (заголовок и данные) |
|
Сетевой |
Межсетевого взаимодействия |
IP, ICMP, ARP, RIP |
Дейтаграмма IP |
|
Канальный |
Сетевых интерфейсов (доступа) |
Ethernet, FDDI, PPP |
Сетевой пакет |
|
Физический |
Рисунок 3 – Уровни модели OSI (примеры протоколов и представление данных в соответствии с уровнями стека протоколов TCP/IP)
Каждый из уровней модели ISO/OSI выполняет свои функции:
1. Физический – передача и прием электрических сигналов.
2. Канальный – управление каналом связи и доступом к среде передачи данных.
3. Сетевой – определение оптимальных маршрутов передачи данных.
4. Транспортный – контроль целостности и правильности данных в процессе передачи и приема данных.
5. Сеансовый – создание, сопровождение и поддержание сеанса связи.
6. Уровень представления – кодирование и шифрование данных с помощью требуемых алгоритмов.
7. Прикладной – взаимодействие с клиентскими программами.
Сетевая модель OSI и стек протоколов TCP/IP выступают в качестве платформы взаимодействия клиентов и серверов в распределенных системах.
1.3 Взаимодействие процессов клиента и сервера
Процессы распределенных систем делятся на две группы. Серверы – процессы, реализующие некоторую службу, например, службу файловой системы или базы данных. Клиенты – процессы, запрашивающие службы у серверов путем посылки запроса и последующего ожидания ответа от сервера.
Взаимодействие клиента и сервера обозначают как режим работы типа «запрос-ответ».
Клиент
Сервер
Запрос
Ответ
Служба провайдера
Ожидание результата
Время
Рисунок 4 – Обобщенное взаимодействие между клиентом и сервером
Если базовая сеть надежна, то взаимодействие между клиентом и сервером может быть реализовано посредством простого протокола, не требующего установления соединения. Клиент, запрашивая службу, представляет запрос в форме сообщения с указанием службы, которой он желает воспользоваться, и необходимых для этого исходных данных. Сообщение передается серверу. Сервер постоянно ожидает входящего сообщения, получив его, обрабатывает, упаковывает результат в ответное сообщение и отправляет его клиенту. Использование простого протокола дает выигрыш в эффективности.
Пока сообщения не начнут пропадать или повреждаться можно успешно применять протокол типа запрос-ответ. Создать протокол, устойчивый к случайным сбоям связи – сложная задача. Единственное, что возможно сделать – предоставить возможность клиенту повторно отправить запрос, на который не был получен ответ. Проблема в том, что клиент не может определить, действительно ли сообщение было потеряно или произошла ошибка произошла при передаче ответа. Если ответ потерян, повторная отправка запроса требует повторного выполнения операции на сервере, которая требует вычислительных затрат. У этой проблемы нет одного решения.
В качестве альтернативы в клиент-серверных системах используется надежный протокол с установкой соединения. Решение в связи с низкой производительностью не слишком хорошо подходит для локальных сетей, но отлично работает в глобальных системах, для которых отсутствие надежности характерная черта сетевых соединений. Практически все прикладные протоколы Интернет основаны на надежных соединениях по протоколу TCP/IP (transmission control protocol/internet protocol). Когда клиент запрашивает службу, до посылки запроса серверу он должен установить с ним соединение. Сервер обычно использует для посылки ответа то же самое соединение, после чего оно разрывается. Проблема в том, что установка и разрыв соединения ресурсоемкие операции, особенно если сообщения с запросом и ответом невелики. Альтернативные решения объединяют операции управления соединением и передачи данных.