Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2013 ЛВС и РОЭИ лекции заочникам / Классич двухуровн архитект.doc
Скачиваний:
28
Добавлен:
18.03.2015
Размер:
149.5 Кб
Скачать

Классическая двухуровневая архитектура клиент-сервер

Термин "клиент-сервер" означает такую архитектуру программного комплекса, в которой его функциональные части взаимодействуют по схеме "запрос-ответ". Если рассмотреть две взаимодействующие части этого комплекса, то одна из них (клиент) инициирует запросы, а другая (сервер) на них отвечает.

Часть программного обеспечения - клиент - устанавливается на персональную рабочую станцию пользователя (система на базе ПК, Mac, Unix, OS/2). Клиент берет на себя выполнение некоторых функций, главным образом интерфейс с пользователем, установление соединений, а в некоторых случаях и тестирование.

Второй элемент - сервер - практически всегда является базой данных и устанавливается на предназначенный для этих целей компьютер. Он отвечает за доступ и работу с хранимыми данными.

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

Заметим, что любая информационная система должна иметь минимум три основные функциональные части - модули хранения данных, их обработки и интерфейса с пользователем. Каждая из этих частей может быть реализована независимо от двух других. Например, не изменяя программ, используемых для хранения и обработки данных, можно изменить интерфейс с пользователем таким образом, что одни и те же данные будут отображаться в виде таблиц, графиков или гистограмм. Не меняя программ представления данных и их хранения, можно изменить программы обработки, например, изменив алгоритм полнотекстового поиска. И, наконец, не меняя программ представления и обработки данных, можно изменить программное обеспечение для хранения данных, перейдя, например, на другую файловую систему.

В классической архитектуре клиент-сервер приходится распределять три основные части приложения по двум физическим модулям. Обычно ПО хранения данных располагается на сервере (например, сервере базы данных), интерфейс с пользователем - на стороне клиента, а вот обработку данных приходится распределять между клиентской и серверной частями. В этом-то и заключается основной недостаток двухуровневой архитектуры, из которого следуют несколько неприятных особенностей, сильно усложняющих разработку клиент-серверных систем.

Подходы «мощный сервер» и «мощный клиент».

При разбиении алгоритмов обработки данных необходимо синхронизировать поведение обеих частей системы. Все разработчики должны иметь полную информацию о последних изменениях, внесенных в систему, и понимать эти изменения. Это создает большие сложности при разработке клиент-серверных систем, их установке и сопровождении, поскольку необходимо тратить значительные усилия на координацию действий разных групп специалистов. В действиях разработчиков часто возникают противоречия, а это тормозит развитие системы и вынуждает изменять уже готовые и проверенные элементы.

Чтобы избежать несогласованности различных элементов архитектуры, пытаются выполнять обработку данных на одной из двух физических частей - либо на стороне клиента ("мощный" клиент), либо на сервере ("мощный" сервер).

На рисунке показан переход от подхода "мощный сервер" (слева) к подходу "мощный клиент" (справа).

В рамках подхода «мощный» сервер почти вся работа осуществляется на сервере. В рамках подхода «мощный» клиент все приложения находятся на клиентской стороне, а по сети к серверу могут посылаться лишь SQL-вызовы.

Достоинства «мощного» сервера:

1. Размещение программы максимально близко к данным значительно снижает объем пересылаемой информации.

2. Использование такого инструмента баз данных, как хранимые процедуры, повышает целостность и безопасность данных, в то же время уменьшая загруженность разработчика приложений.

3. Приложения показывают лучшую масштабируемость по производительности.

Недостатки "мощного" сервера:

• усложняется реализация, так как языки типа SQL не приспособлены для разработки распределенного ПО и нет хороших средств отладки;

• производительность программ, написанных на языках типа SQL, значительно ниже, чем созданных на других языках, что имеет важное значение для сложных систем;

• программы, написанные на СУБД-языках, обычно работают недостаточно надежно; ошибка в них может привести к выходу из строя всего сервера баз данных;

• получившиеся таким образом программы не полностью переносимы на другие системы и платформы.

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

1. Высокоразвитый графический интерфейс.

2. Возможностей одновременной работы с несколькими приложениями.

3. Высокая скорость работы.

Недостатки:

• сложность администрирования;

• сложность обновления ПО, поскольку его замену нужно производить одновременно по всей системе, иначе могут возникнуть ошибки или несогласованность данных;

• сложность распределения полномочий, так как разграничение доступа происходит не по действиям, а по таблицам;

• перегрузка сети вследствие передачи по ней необработанных, а значит, избыточных, данных;

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