Двух и трехуровневые модели в архитектуре клиент-сервер. Логика приложений в клиент-серверных системах

Клиент-сервер (англ. Client-server) - вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг, называемыми серверами, и заказчиками услуг, называемыми клиентами. Физически клиент и сервер - это программное обеспечение. Обычно они взаимодействуют через компьютерную сеть посредством сетевых протоколов и находятся на разных вычислительных машинах, но могут выполняться также и на одной машине. Программы - сервера, ожидают от клиентских программ запросы и предоставляют им свои ресурсы в виде данных (например, загрузка файлов посредством HTTP, FTP, BitTorrent, потоковое мультимедиа или работа с базами данных) или сервисных функций (например, работа с электронной почтой, общение посредством систем мгновенного обмена сообщениями, просмотр web-страниц во всемирной паутине).

Плюсы:

· Отсутствие дублирования кода программы-сервера программами-клиентами.

· Так как все вычисления выполняются на сервере, то требования к компьютерам, на которых установлен клиент, снижаются.

· Все данные хранятся на сервере, который, как правило, защищён гораздо лучше большинства клиентов. На сервере проще организовать контроль полномочий, чтобы разрешать доступ к данным только клиентам с соответствующими правами доступа.

Минусы:

· Неработоспособность сервера может сделать неработоспособной всю вычислительную сеть. Неработоспособным сервером следует считать сервер, производительности которого не хватает на обслуживание всех клиентов, а также сервер, находящийся на ремонте, профилактике и т. п.

· Поддержка работы данной системы требует отдельного специалиста - системного администратора.

· Высокая стоимость оборудования.

Основной принцип технологии «клиент–сервер» применительно к технологии баз данных заключается в разделении функций стандартного интерактивного приложения на 5 групп, имеющих различную природу:

· функции ввода и отображения данных - презентационная логика (PresentationLogic);

· прикладные функции, определяющие основные алгоритмы решения задач приложения - бизнес-логика, или логика собственно приложения (BusinessLogic);

· функции обработки данных внутри приложения (DatabaseLogic);

· функции управления информационными ресурсами (DatabaseManagerSystem);

· служебные функции, играющие роль связок между функциями первых четырех групп.

Двухуровневая модель фактически является результатом распределения пяти указанных функций между двумя процессами, которые выполняются на двух платформах: на клиенте и на сервере. В чистом виде почти никакая модель не существует, однако рассмотрим наиболее характерные особенности каждой двух уровневой модели.