Термин “клиент-сервер” может описывать аппаратное обеспечение и в этом случае означает сетевые серверные и клиентские компьютеры или способ организации программного обеспечения и служб в сети.
Модель клиент-сервер (client/server) – модель вычислений, в которой нагрузка по обработке прикладных программ распределяется между компьютером-клиентом и компьютером-сервером, совместно использующим информацию с помощью сети. Данная модель объединяет преимущества централизованных вычислений и клиентской модели. Обычно клиент – это программное обеспечение конечного пользователя, выполняющееся на WS и способное установить связь с сервером (обычно, сервером баз данных). Производительность при использовании модели “клиент-сервер” выше обычного, так как клиент и сервер делят между собой нагрузку по обработке данных. Модель клиент-сервер лучше всего работает при организации доступа к большим объемам данных.
Архитектура клиент-сервер – способ организации взаимодействия программ или компонентов многокомпонентной программы, подразумевающей наличие программы или компонента программы, называемого сервером, и одного или несколько других компонентов, называемых клиентами.
Клиент – компонент локальной сети, запрашивающий услуги у некоторого сервера, и сервером – компонент локальной сети, оказывающий услуги некоторым клиентам. Сервер локальной сети предоставляет ресурсы (услуги) рабочим станциям и/или другим серверам. В системе клиент-сервер клиент посылает запрос серверу, а вся обработка информации происходит на сервере.
Ядром архитектуры клиент/сервер является сервер баз данных (система, которая получает запросы от программ-клиентов по вычислительной сети и передает в ответ запрашиваемые данные (набор ответов); каждый сервер баз данных состоит из компьютера, операционной системы и программного обеспечения сервера СУБД), представляющий собой приложение, осуществляющее комплекс действий по управлению данными: выполнение запросов, хранение и резервное копирование данных, отслеживание ссылочной целостности, проверку прав и привилегий пользователей, ведение журнала транзакций. Обычно клиенты по вычислительной сети посылают запросы серверу в форме предложений на языке SQL. Сервер интерпретирует их и пересылает соответствующие данные обратно клиенту.
Клиент имеет возможность асинхронно для сервера инициировать выполнение процедур сервера и получать результаты их выполнения. Как правило, архитектура клиент-сервер обеспечивает возможность нескольким клиентам взаимодействовать с сервером параллельно и независимо друг от друга.
Клиент-серверная архитектура состоит в простейшем случае из трех основных компонентов:
- сервер баз данных, управляющий хранением данных, доступом и защитой, резервным копированием, отслеживающий целостность данных в соответствии с бизнес-правилами и, самое главное, выполняющий запросы клиента;
- клиент, предоставляющий интерфейс пользователя, выполняющий логику приложения, проверяющий допустимость данных, посылающий запросы к серверу и получающий ответы от него;
- сеть и коммуникационное программное обеспечение, осуществляющее взаимодействие между клиентом и сервером посредством сетевых протоколов.