Двухуровневая архитектура "клиент/сервер" предусматривает распределение задач по работе с данными между двумя уровнями (см. таблицу).
Клиент | Сервер |
|
|
В архитектуре "клиент-сервер" функция хранения данных возложена на сервер, а работа с данными пользователей - на клиента. При этом промежуточные функции, связанные с проверкой правильности данных, поддержку ссылочной целостности и т.п., т.е. то, что называют бизнес-логикой, можно возложить как на один, так и на другой уровень. В этом случае возможны следующие ситуации:
Двухуровневая архитектура обладает как достоинствами, так и недостатками.
Клиентская часть (уровень 1) отвечает за представление данных пользователю, а серверная часть (уровень 2) - за предоставление сервисов данных этому клиенту.
Клиентские части обычно располагаются на компьютерах пользователей и через сеть взаимодействует с центральным сервером базы данных.
Ситуация с максимальной загрузкой сервера предусматривает выполнение бизнес-логики только с помощью хранимых процедур сервера. Это позволяет максимально централизовать контроль над данными и легко изменять правила работы сразу для всей организации.
С другой стороны, незначительная корректировка правил, касающаяся только части пользователей, потребует длительной процедуры согласования. При централизации бизнес-логики невозможно реализовать какие-то исключения из общих правил для некоторых пользователей или приложений. В принципе, это хорошо и является залогом безопасности и целостности данных, но не везде и не всегда.
В случае полной децентрализации управления бизнес-логикой все связанные с ней процессы происходят на компьютере пользователя. Однако в случае необходимости выполнения каких-либо изменений в приложении это придется делать последовательно на всех клиентских местах.
Двухуровневый тип архитектуры "клиент-сервер" обладает следующими достоинствами:
данные могут содержаться в реляционных СУБД, объектно-ориентированных СУБД, традиционных СУБД или в специализированных системах хранения и доступа к данным.
СУБД, базирующимся на двухуровневой архитектуре, присущи недостатки, препятствующие достижению истинной масштабируемости приложений: