Приложения клиент-сервер. Классы приложений клиент-сервер. Трехзвенная архитектура клиент-сервер

Архитектура клиент-сервер - сетевое окружение, в котором управление данными осуществляется на серверном узле, а другим узлам предоставляется доступ к данным.

Приложение клиент-сервер- любое приложение, в котором инициатор действия находится в одной системе, а исполнитель действия - в другой.

Окружение клиент-сервер состоит из клиентов и серверов. Клиентские машины представляют собой однопользовательские персональные компьютеры или рабочие станции. Наиболее известные примеры подобных интерфейсов - интерфейсы операционных систем Microsoft Windows и Macintosh.

Наиболее распространенным типом сервера в архитектуре клиент-сервер является сервер баз данных, управляющий реляционной базой данных. Существуют классы приложений с разными вариантами распределения задач между сервером и клиентом:

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

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

♦ Обработка данных на базе клиента. Практически вся обработка данных осуществляется на клиенте, за исключением процедур проверки целостности данных и прочей логики, относящейся к обслуживанию базы данных, которые лучше исполнять на сервере. Она позволяет пользователю работать с приложениями, соответствующими его локальным потребностям. Архитектура с использованием сервера приложений (трехзвенная архитектура):

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

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

1.) Представление данных - на стороне клиента.

2.) Прикладной компонент - на выделенном сервере приложений (как вариант, выполняющем функции промежуточного ПО).

3.)Управление ресурсами - на сервере БД, который и представляет запрашиваемые данные.

Мультипрограммирование.

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

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

- удобство работы пользователей, заключающееся, в том, что они имеют возможность интерактивно работать одновременно с несколькими приложениями на одной машине;

- реактивность системы - способность системы выдерживать заранее заданные (возможно, очень короткие) интервалы времени между запуском программы и получением результата.

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

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

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

Но существует другой способ мультипрограммирования –разделение времени, который повышает удобство и эффективность работы пользователя.

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