Архитектура «клиент-сервер» появилась в конце 80-х годах ХХ века в период децентрализации структур автономных вычислительных систем и разработки распределенных систем обработки данных в виде различных видов вычислительных сетей.
Децентрализация архитектуры первых вычислительных систем стала возможной в связи с появлением ПК и мини-ЭВМ, к которым перешла часть функций центральных ЭВМ.
При этом компьютеры, предоставляющие те или иные ресурсы в общее пользование всем остальным компьютерам сети, были названы серверами, а компьютеры, запрашивающие для использования общие ресурсы, - клиентами. Соответственно архитектуру таких распределенных вычислительных систем стали называть архитектурой «клиент-сервер».
В зависимости от вида предоставляемого ресурса различают файловый сервер, сервер баз данных (БД), сервер приложений, сервер печати, коммуникационный сервер, Интернет-сервер (WEB-сервер), почтовый сервер и другие виды серверов.
Файловый сервер выполняет функции управления ЛВС, осуществляет коммуникационные связи, хранит файлы, разделяемые в сети, предоставляет доступ к совместно используемому дисковому пространству.
Сервер БД содержит всю или большую часть данных, используемых компьютерами сети, и является одним из основных компонентов сети, так как все запросы к данным выполняются при его непосредственном участии. Помимо управления доступом к базам данных сервер обеспечивает безопасность и синхронизацию обращений к БД. Обеспечение безопасности БД заключается в предоставлении права доступа к БД только авторизованным пользователям.
Сервер приложений выполняет одну или несколько прикладных задач, которые запускаются по командам с рабочих станций сети. Принцип работы сервера приложений заключается в выполнении на сервере всех вычислительных операций с использованием процессов получения данных с сервера БД и организации интерфейса с рабочими станциями, на мониторах которых высвечиваются результаты решений, и инициируются очередные шаги для решения задач.
Сервер печати обеспечивает доступ станций сети к общим ресурсам печати. Запросы на печать, поступающие от рабочих станций, разделяются сервером на отдельные задания, ставятся в очередь и выполняются на сетевом принтере.
Коммуникационный сервер организует доступ любых удаленных компьютеров к информационным ресурсам сети, используя модем и телефонные линии связи. Некоторые коммуникационные серверы обеспечивают средства эмуляции терминала для связи с мэйнфреймом или мини-ЭВМ.
Интернет-сервер(WEB-сервер) служит для организации и размещения WEB-страниц и обеспечения WWW-сервиса Интернет.
Почтовый сервер управляет получением и отправкой электронной почты, регистрирует почтовые сообщения, создает и поддерживает работу электронных почтовых ящиков, обеспечивает защиту сети от поступления непрофильных сообщений.
Появлению клиент-серверной архитектуры предшествовали разработка и широкое использование архитектуры «файл-сервер».
При архитектуре «файл-сервер», приведенной на рис.5.6, на сервере располагаются только данные. Вся обработка данных ведется на компьютере клиента, на котором находятся все программные средства для решения задачи, ведения интерфейса с пользователем и отображения результатов.
Архитектура «файл-сервер» предполагает передачу всей исходной информации, необходимой для решения задачи, по каналам связи на компьютер пользователя.
Применение такой архитектуры ведет к чрезмерной загрузке каналов передачи данных сети, увеличения времени решения задачи за счет времени передачи данных, невозможности одновременного использования одних данных разными пользователями и разными задачами, необходимости установки программного обеспечения на все рабочие станции сети.
Для того чтобы передавать по сети меньшие объемы информации, решение задачи, на основании запроса пользователя, производится на сервере, а клиенту пересылается только результат. Подобная архитектура предполагает, что прикладной процесс решения задачи функционирует как на компьютере клиента, так и на сервере.
Модели архитектуры «клиент-сервер» различаются распределением компонентов программного обеспечения между серверами и рабочими станциями сети. При этом в качестве программных компонентов выступают:
- программы реализации интерфейса с пользователем для ввода данных, запросов и отображения результатов решения задачи;
- прикладные программы, реализующие функции и задачи предметной области;
- программы, обеспечивающие доступ и управление информационными ресурсами сети (менеджер ресурсов). Часть функций менеджера ресурсов берет на себя используемая СУБД.
По сравнению с архитектурой «файл-сервер» архитектура «клиент-сервер» обеспечивает разработчикам информационных систем ряд преимуществ:
- все функции по управлению данными выполняются на сервере данных, что снижает требования к вычислительным ресурсам рабочих станций, на которых выполняются клиентские приложения, кроме третьей модели «клиент-сервер», в которой клиентские приложения выполняются на сервере приложений;
- при обмене данными между сервером данных и рабочей станцией по каналам сети передаются не все данные, а только запросы клиента и ответы сервера, что существенно снижает нагрузку на сеть (уменьшается объем трафика сети);
- при увеличении количества клиентов сети отсутствует необходимость обновления ПО уже существующих рабочих станций.