Преимущества:
– Делает возможным, в большинстве случаев, распределить функции вычислительной системы между несколькими независимыми компьютерами в сети.
– Все данные хранятся на сервере, который, как правило, защищён гораздо лучше большинства клиентов.
– Использовать ресурсы одного сервера часто могут клиенты с разными аппаратными платформами, операционными системами и т.п.
Недостатки:
– Неработоспособность сервера может сделать неработоспособной всю вычислительную сеть;
– Поддержка работы данной системы, требует отдельного специалиста – системного администратора;
– Высокая стоимость оборудования.
В свою очередь клиент-серверная архитектура разделяется на несколько типов:
– Двухуровневая архитектура «клиент-сервер»;
– Трехуровневая архитектура «клиент-сервер»;
– Многоуровневая архитектура или N-уровневая архитектура.
Двухуровневая архитектура «клиент-сервер».
В случае с двухуровневой архитектурой «клиент-сервер» база данных помещается на сетевом сервере, однако программа клиента лишена возможности прямого доступа к БД. Доступ к БД регулируется специальной программой – сервером БД.
Взаимодействие сервера БД и клиента реализуется с помощью SQL-запросов, которые формирует и отсылает серверу клиент. Сервер, приняв запрос, выполняет его и возвращает результат клиенту. В клиентском приложении в основном осуществляются интерпретация полученных от сервера данных, реализация пользовательского интерфейса, а также реализация части бизнес-правил.
Но двухуровневая архитектура не лишена недостатков, таких как:
– Ухудшение производительности прямопропорциональна количеству пользователей;
– Независимо от того, какой тип клиента используется, большая часть обработки данных должна находиться в базе данных, это означает, что она полностью зависит от возможностей, предусмотренных в базе данных производителем.
– Двухуровневая архитектура настолько зависит от конкретной реализации базы данных, что перенос существующих приложений для различных СУБД, становится серьезной проблемой.