Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lecture#1.docx
Скачиваний:
28
Добавлен:
17.11.2018
Размер:
345.84 Кб
Скачать

Тема 1.1 Технология «клиент-сервер»

Студент должен знать:

  • основные принципы технологии «клиент-сервер».

Принципы построения распределенных систем обработки информации. Основы технологии «клиент-сервер». Процесс-сервер, процесс-клиент. Схема взаимодействия клиента и сервера.

Для наших задач хватит достаточно вольной характеристики.

Распределенная система — это набор независимых компьютеров, представляющийся их пользователям единой объединенной системой.

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

Характеристики распределенных систем:

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

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

3) РС должны также относительно легко поддаваться расширению, или масштабированию. Эта характеристика является прямым следствием наличия независимых компьютеров, но в то же время не указывает, каким образом эти компьютеры на самом деле объединяются в единую систему.

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

уровнем, состоящим из операционных систем, как показано на рис. 1.1. Соответственно,

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

уровня (middleware).

Система

Описание

Основное назначение

Распределенные ОС

Сильно связанные ОС для мультипроцессоров и гомогенных мультикомпьютерных систем

Сокрытие и управление аппаратным обеспечением

Сетевые ОС

Слабо связанные ОС для глобальных и локальных сетей

Предоставление локальных служб удаленным клиентам

Средства промежуточного уровня

Дополнительный уровень поверх сетевый ОС, реализующий службы общего назначения

Обеспечение прозрачности распределения

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

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

В базовой модели клиент-сервер все процессы в распределенных системах делятся на две возможно перекрывающиеся группы. Процессы, реализующие некоторую службу, например службу файловой системы или базы данных, называются серверами {servers). Процессы, запрашивающие службы у серверов путем посылки запроса и последующего ожидания ответа от сервера, называются клиентами {clients). Взаимодействие клиента и сервера, известное также под названием режим работы запрос-ответ.

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

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

До тех пор пока сообщения не начнут пропадать или повреждаться, можно вполне успешно применять протокол типа запрос-ответ.

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

В качестве альтернативы во многих системах клиент-сервер используется надежный протокол с установкой соединения. Хотя это решение в связи с его относительно низкой производительностью не слишком хорошо подходит для локальных сетей, оно великолепно работает в глобальных системах, для которых ненадежность является «врожденным» свойством соединений. Так, практически все прикладные протоколы Интернета основаны на надежных соединениях по протоколу TCP/IP. В этих случаях всякий раз, когда клиент запрашивает службу, до посылки запроса серверу он должен установить с ним соединение.

Разделение приложения по уровням

Приложения типа клиент-сервер обычно разделять их на три уровня:

1) уровень пользовательского интерфейса;

2) уровень обработки;

3) уровень данных.

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

с приложением. Сложность программ, входящих в пользовательский интерфейс, весьма различна.

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

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

Варианты архитектуры клиент-сервера

Один из возможных вариантов организации — поместить на клиентскую сторону

только терминальную часть пользовательского интерфейса, как показано на

рис. 1.20, а, позволив приложению удаленно контролировать представление данных.

Альтернативой этому подходу будет передача клиенту всей работы с пользовательским

интерфейсом (рис. 1.20, б). В обоих случаях мы отделяем от приложения

графический внешний интерфейс, связанный с остальной частью приложения

(находящейся на сервере) посредством специфичного для данного

приложения протокола. В подобной модели внешний интерфейс делает только

то, что необходимо для предоставления рн1терфейса приложения.

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

Рассматривая только клиенты и серверы, мы упускаем тот момент, что серверу иногда может понадобиться работать в качестве клиента. Такая ситуация, отраженная на рис. 1.21, приводит нас к физически трехзвенной архитектуре {physically three-tiered architecture}.

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

Лекция № 2

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]