Клиент-серверная модель
Клиент-серверная модель (client-server model) описывает отношение между двумя компьютерными программами, в котором одна программа – клиент – выполняет запросы к другой программе – серверу. Эта модель решает, в основном, задачу развёртывания приложения. С использованием клиент-серверной модели созданы многие приложения для работы с базами данных, электронной почтой и для доступа к веб-ресурсам.
Перечислим основные принципы данного архитектурного стиля:
1. Клиент инициирует один или несколько запросов, ожидает ответа на них, а затем обрабатывает ответы.
2. В определённый момент времени клиент подключён к одному серверу для обработки запросов (реже – к небольшой группе серверов).
3. Клиент работает с пользователем напрямую, применяя графический интерфейс.
4. Сервер не инициирует запросов.
5. Обычно для выполнения запросов клиенты проходят аутентификацию на сервере.
Главными преимуществами клиент-серверной модели являются:
– Высокая безопасность. Все данные хранятся на сервере, обеспечивающем больший уровень безопасность, нежели отдельный клиент.
– Централизованный доступ к данным. Так как данные хранятся только на сервере, ими легко управлять (например, обеспечить обновление).
– Устойчивость и лёгкость сопровождения. Роль сервера могут выполнять несколько физических компьютеров, объединённых в сеть. Благодаря этому клиент не замечает сбоев или замены отдельного серверного компьютера.
Рассмотрим некоторые варианты клиент-серверной модели. В системах клиент-очередь-клиент (client-queue-client или passive queue) сервер исполняет роль очереди для данных клиентов. То есть, клиенты использую сервер только для обмена данными между собой. Пиринговые приложения (peer-to-peer application) – это вариация системы клиент-очередь-клиент, в которой любой клиент может играть роль сервера. Сервера приложений (application server) служат для размещения и выполнения программ, которыми управляет клиент.