Понятие и модели архитектуры «клиент-сервер»
Архитектура «клиент-сервер» появилась в конце 80-х годах ХХ века в период децентрализации структур автономных вычислительных систем и разработки распределенных систем обработки данных в виде различных видов вычислительных сетей. Децентрализация архитектуры первых вычислительных систем стала возможной в связи с появлением ПК и мини-ЭВМ, к которым перешла часть функций центральных ЭВМ. При этом компьютеры, предоставляющие те или иные ресурсы в общее пользование всем остальным компьютерам сети, были названы серверами, а компьютеры, запрашивающие для использования общие ресурсы, — клиентами. Соответственно архитектуру таких распределенных вычислительных систем стали называть архитектурой «клиент-сервер». В зависимости от вида предоставляемого ресурса различают файловый сервер, сервер баз данных (БД), сервер приложений, сервер печати, коммуникационный сервер, Интернет-сервер (WEB-сервер), почтовый сервер и другие виды серверов. Файловый сервер выполняет функции управления ЛВС, осуществляет коммуникационные связи, хранит файлы, разделяемые в сети, предоставляет доступ к совместно используемому дисковому пространству. Сервер БД содержит всю или большую часть данных, используемых компьютерами сети, и является одним из основных компонентов сети, так как все запросы к данным выполняются при его непосредственном участии. Помимо управления доступом к базам данных сервер обеспечивает безопасность и синхронизацию обращений к БД. Обеспечение безопасности БД заключается в предоставлении права доступа к БД только авторизованным пользователям. Сервер приложений выполняет одну или несколько прикладных задач, которые запускаются по командам с рабочих станций сети. Принцип работы сервера приложений заключается в выполнении на сервере всех вычислительных операций с использованием процессов получения данных с сервера БД и организации интерфейса с рабочими станциями, на мониторах которых высвечиваются результаты решений, и инициируются очередные шаги для решения задач. Сервер печати обеспечивает доступ станций сети к общим ресурсам печати. Запросы на печать, поступающие от рабочих станций, разделяются сервером на отдельные задания, ставятся в очередь и выполняются на сетевом принтере. Коммуникационный сервер организует доступ любых удаленных компьютеров к информационным ресурсам сети, используя модем и телефонные линии связи. Некоторые коммуникационные серверы обеспечивают средства эмуляции терминала для связи с мэйнфреймом или мини-ЭВМ. Интернет-сервер(WEB-сервер) служит для организации и размещения WEB-страниц и обеспечения WWW-сервиса Интернет. Почтовый сервер управляет получением и отправкой электронной почты, регистрирует почтовые сообщения, создает и поддерживает работу электронных почтовых ящиков, обеспечивает защиту сети от поступления непрофильных сообщений. Появлению клиент-серверной архитектуры предшествовали разработка и широкое использование архитектуры «файл-сервер». При архитектуре «файл-сервер», приведенной на рис.5.6, на сервере располагаются только данные. Вся обработка данных ведется на компьютере клиента, на котором находятся все программные средства для решения задачи, ведения интерфейса с пользователем и отображения результатов. Архитектура «файл-сервер» предполагает передачу всей исходной информации, необходимой для решения задачи, по каналам связи на компьютер пользователя. Применение такой архитектуры ведет к чрезмерной загрузке каналов передачи данных сети, увеличения времени решения задачи за счет времени передачи данных, невозможности одновременного использования одних данных разными пользователями и разными задачами, необходимости установки программного обеспечения на все рабочие станции сети. Рабочая станция Сервер Рис. 5.6 Архитектура «файл-сервер» Для того чтобы передавать по сети меньшие объемы информации, решение задачи, на основании запроса пользователя, производится на сервере, а клиенту пересылается только результат. Подобная архитектура предполагает, что прикладной процесс решения задачи функционирует как на компьютере клиента, так и на сервере. Модели архитектуры «клиент-сервер» различаются распределением компонентов программного обеспечения между серверами и рабочими станциями сети. При этом в качестве программных компонентов выступают: — программы реализации интерфейса с пользователем для ввода данных, запросов и отображения результатов решения задачи; — прикладные программы, реализующие функции и задачи предметной области; — программы, обеспечивающие доступ и управление информационными ресурсами сети (менеджер ресурсов). Часть функций менеджера ресурсов берет на себя используемая СУБД. По сравнению с архитектурой «файл-сервер» архитектура «клиент-сервер» обеспечивает разработчикам информационных систем ряд преимуществ: — все функции по управлению данными выполняются на сервере данных, что снижает требования к вычислительным ресурсам рабочих станций, на которых выполняются клиентские приложения, кроме третьей модели «клиент-сервер», в которой клиентские приложения выполняются на сервере приложений; — при обмене данными между сервером данных и рабочей станцией по каналам сети передаются не все данные, а только запросы клиента и ответы сервера, что существенно снижает нагрузку на сеть (уменьшается объем трафика сети); — при увеличении количества клиентов сети отсутствует необходимость обновления ПО уже существующих рабочих станций. В настоящее время существуют и используются в практической работе три модели архитектуры «клиент-сервер»: 1. Модель «доступа к удаленным данным», при которой данные и программы, обеспечивающие доступ к данным по сети, располагаются на сервере, а программы решения прикладных задач, организации ввода информации и отображения результатов – на рабочей станции клиента, представлена на рис 5.7 Рабочая станция Сервер Рис. 5.7 Модель «доступа к удаленным данным» 2. Модель «комплексный сервер», изображенная на рис. 5.8, предполагает выполнение сервером прикладных функций и функций доступа к данным за счет размещения данных, программ доступа к данным и прикладных программ на сервере. Программы организации интерфейса с пользователем Рабочая станция Сервер Программы передачи данных Прикладные программы Рис. 5.8 Модель «комплексный сервер» Модель комплексного сервера является наиболее привлекательной для крупных сетей, ориентированных на обработку больших, увеличивающихся со временем объемов информации. Обе модели удовлетворительно работают в случае решения несложных прикладных задач. 3. При решении сложных и объемных прикладных задач для прикладной части выделяется отдельный сервер называемый сервером приложений. В этом случае модель предполагает наличие трехуровневой архитектуры «клиент-сервер». Такая архитектура приведена на рис. 5.9. Рабочая станция Сервер приложений Сервер Рис. 5.9 Трехуровневая архитектура «клиент-сервер». В трехуровневой архитектуре значительно снижается нагрузка на сервер данных и рабочие станции. На сервер данных возлагаются только функции защиты и управления данными, а на рабочие станции приходятся функции отображения данных и организацией интерфейса пользователя.
Глава 4. Модель «клиент-сервер» и её реализация в компьютерных сетях
Для понимания материала этой главы необходимы знания по компьютерным сетям, изложенные в предыдущей главе, а также общие понятия о вычислительной технике, изложенные в главе 1.
4.1. Определение модели «клиент-сервер»
Клиент-сервер — это модель взаимодействия процессов в вычислительной системе, при которой один процесс (клиент) делает запрос, другой процесс (сервер) его обрабатывает и возвращает первому ответ или предоставляет определенную услугу в виде вычислений, каких-либо данных и т.п.
Чаще всего процесс-клиент запускается на одном компьютере, процесс-сервер — на другом.
В общем виде модель представлена на рис. 13.
Рис. 13 Модель «клиент-сервер»
Также клиентом (рабочей станцией) в двухранговой компьютерной сети называется компьютер, на котором преобладают процессы-клиенты, а сервером — компьютер, на котором преобладают процессы-серверы. В процессе работы сети компьютер-сервер и компьютер-клиент могут меняться ролями. Любой компьютер может одновременно быть клиентом и сервером для различных видов услуг.
Требования надежности, скорости и отказоустойчивости у серверов выше, чем у рабочих станций. Среднее время простоя современных серверов может достигать всего несколько минут в год.
4.2. Виды сетевых служб
Несмотря на то, что технологии «клиент-сервер» применима как в централизованных, так и в распределенных вычислительных системах, она достигла популярности именно в компьютерных сетях.
Сетевая служба (сервис) — это определенный вид обслуживания, предоставляемый сервером.
Сетевые службы занимаются предоставлением:
- совместно используемых аппаратных ресурсов — процессорного времени, памяти, диска, принтеров;
- различных сетевых услуг — обрабатывают и предоставляют различную информацию.