Файл: ВАРИАНТЫ АРХИТЕКТУРЫ КЛИЕНТ-СЕРВЕР (технология клиент-сервер).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 28.04.2023

Просмотров: 259

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

2. Варианты архитектуры

2.1. Двухуровневая

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

Следующим шагом в развитии клиент-серверной архитектуры стало появление двухуровневой архитектуры, представленной на рисунке 2.

Рисунок 2 - Двухуровневая клиент-серверная архитектура

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

Данный подход считался наиболее популярным решением для корпоративных распределенных вычислительных систем вплоть до начала 2000-х годов.

В силу того, что большинство логики клиент-серверного приложения располагается в клиентской части, клиентская рабочая станция несет ответственность за большую часть обработки. Для оценки разделения объемов работ часто применяется соотношение 80/20: на сервер базы данных приходится порядка двадцати процентов всей работы. Несмотря на это, база данных зачастую является узким местом производительности в таких средах.

Двухуровневая клиент-серверная система требует, чтобы каждый клиент устанавливал свои собственные соединения с базой. Постоянная поддержка подобного множества соединений очень дорога. Кроме того, потребность в ресурсах иногда может стать причиной перегрузки сервера баз данных и задержки обработки пользовательских запросов.

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


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

2.2. Трехуровневая

Кроме описанного ранее варианта разделения двухуровневой архитектуры, также существует множество других подходов распределения программ, находящихся на уровне приложений по различным машинам, как показано на рисунке 3 [4].

Рисунок 3 - Альтернативные формы организации двухуровневой архитектуры клиент-сервер

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

Многоуровневая клиент-серверная архитектура обеспечила переход к объектно-ориентированному подходу в рамках задачи построения распределенных вычислительных систем.

Использование данного подхода позволило распределить уровень бизнес-логики среди нескольких компонентов (часть – на клиенте, часть – на сервере) и уменьшить число проблем, возникающих при развертывании системы путем централизации большего количества логики на серверах. Серверные компоненты, перешедшие на выделенные сервера приложений, обеспечили возможность управления пулами соединений с базой данных. Это уменьшило количество одновременных соединений к базе, так как одно соединение в таком случае способно обеспечить работу нескольким клиентам (см. рисунок 4).

Рисунок 4 - Обобщенная организация трехуровневой архитектуры

В качестве примера описывается поисковая машина в Интернете, представленная на рисунке 5.

Пользовательский интерфейс поисковой машины очень прост: пользователь вводит строку, представляющую собой набор ключевых слов, а в ответ получает список заголовков web-страниц. Результат формируется из огромной базы просмотренных и проиндексированных web-страниц. В качестве ядра поисковой машины выступает программа, которая трансформирует введенную пользователем строку в один или несколько запросов к базе данных. Посе этого она помещает результаты запроса в список, преобразуя его в набор HTML-страниц. В рамках модели клиент-сервер часть, отвечающая за выборку информации, обычно располагается на уровне обработки [3].


Рисунок 5 - Обобщенная организация трехуровневой поисковой машины для Интернета

2.3. Многоуровневая

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

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

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

В качестве распространенного примера горизонтального распределения рассмаривается web-сервер, реплицированный на несколько машин локальной сети (см. рисунок 6).

Рисунок 6 - Пример горизонтального распределения WEB-службы

Каждый из серверов содержит один и тот же набор web-страниц, и всякий раз, когда одна из web-страниц обновляется, ее копии незамедлительно рассылаются на все серверы.

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

Таким же образом могут распределяться и клиенты. Для несложного приложения, предназначенного для коллективной работы, можно вообще не использовать сервер - это одноранговое распределение. Подобное происходит, например, если пользователь хочет связаться с другим пользователем. Оба они должны запустить одно и то же приложение для начала сеанса. Третий клиент может общаться с одним из них или обоими, для чего ему нужно запустить то же самое приложение [9].


3. Развитие технологии

70-е и 80-е годы прошлого столетия принято считать эпохой централизованных вычислений на мэйнфреймах IBM, которые в то время составляли более 70% мирового компьютерного бизнеса.

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

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

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

В состав клиент-серверных входят три компонента:

  • клиент - пользовательская станция, реализующая интерфейс приложения, проверку данных и отправку запросов на сервер. Кроме того, клиентский процесс также управляет локальными ресурсами;
  • сервер - выполняет служебные запросы клиента. Сервер представляет собой программное обеспечение двигателя, управляющего общими ресурсами, таким как базы данных, принтеры, линии связи, или процессоры высокой мощности. Основная цель серверного процесса - выполнение фоновых задач, общих для приложений. Простейшие формы серверов - это дисковый и файл-сервер. Если клиент передает запросы на файл или группы файлов по сети на файловый сервер, такая форма обслуживания данных требует большой пропускной способности и способна замедлить сеть с большим числом пользователей. Более продвинутые формы серверов - это серверы баз данных, сервер транзакций и сервер приложений;
  • Middleware - промежуточный уровень, который позволяет приложениям прозрачно взаимодействовать с другими программами или процессами независимо от распоположения. Ключевой элемент Middleware - NOS (Network Operating System) - сетевая операционная система. Она предоставляет такие услуги, как маршрутизация, распределение, обмен сообщениями и управления сервисной сети. NOS полагается на коммуникацию протоколов предоставления конкретных услуг. Прежде чем пользователь получит доступ к услугам сети, клиент-серверный протокол требует от него установки физического соединения и выбора транспортных протоколов. Клиент-серверный протокол диктует, каким образом клиенты запрашивают информацию и услуги от сервера, а также как именно сервер должен отвечать на эту просьбу [8].

Мартин Батлер, председатель Butler Group, предложил новый способ реализации клиент-серверной стратегии - это пятислойная модель под названием VAL (Value Added Layers). Данная структура по форме напоминает пирамиду.

Далее представлены характеристики каждого слоя:

  • Уровень 1 - Инфраструктура слоя - данный слой включает в себя все те компоненты, которые являются пассивными и не выполняют бизнес-функции;
  • Уровень 2 - Middleware - позволяет приложениям взаимодействовать с другими программами или процессами. Это средство отображения приложений используемых ими ресурсов. Middleware является ключом к интеграции гетерогенных программных и аппаратных сред, реализуя тот уровень интеграции, который необходим большинству организаций;
  • Уровень 3 - Программы - непосредственно приложения, являющиеся активными компонентами, выполняющими задачи по организации данных;
  • Уровень 4 - Хранилище - хранилище предназначено для изоляции бизнес-модели и спецификации от технологических инструментов, которые используются для ее реализации;
  • Уровень 5 - Бизнес-модели - набор независимых моделей, необходимых для того, чтобы все технологии, используемые для их реализации были применимы к программной и аппаратной среде в зависимости от того, что является наиболее подходящим [6].

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

Ясно, что клиент-серверная технология приносит много преимуществ для бизнеса, а также расширение возможностей для расширения и конкурирования. К сожалению, все это может быть достигнуто только за счет более высокой стоимости сооружений и более сложной совместимости систем.

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

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