Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Архитектура и проектирование программных систем

Архитектурный вид - размещение программной системы

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

Постановка задачи. На предприятии внедряется программная система (ПС), разработанная в архитектурном стиле «клиент - сервер». ПС содержит следующие компоненты (функциональные части - ФП):

Обобщенная структура многослойной системы

Рис. 2.18. Обобщенная структура многослойной системы

Рассматриваются три возможные архитектуры распределения функциональных частей приложения на основе двухуровневой схемы (рис. 2.19). На всех приведенных ниже вариантах символами КК обозначены клиентские компьютеры, а символами СК - серверные компьютеры; F1 - интерфейс пользователя (представление данных и логика сценария работы); F2 - логика приложения и обращения к базе данных (БД); F3 - операции базы данных; F4 - файловые операции. Каждый вариант характеризуется своим способом размещения функциональных частей ПС.

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

Схема с «тонким клиентом»

Рис. 2.19. Схема с «тонким клиентом»

В. Схема с «толстым клиентом» (рис. 2.20). «Толстый», или rich, клиент в архитектуре «клиент - сервер» - это приложение, обеспечивающее (в противовес клиенту) расширенную функциональность независимо от центрального сервера. Часто сервер в этом случае является лишь данных (файловым сервером), а вся работа по обработке и представлению этих данных переносится на машину клиента.

Схема с «толстым клиентом»

Рис. 2.20. Схема с «толстым клиентом»

С. Схема с обычным клиентом (рис. 2.21). Для расширения функциональности тонкого клиента прибегают к его «утолщению», например добавляют возможности автономной работы, сохраняя главное отличие - работу в сессии с терминальным сервером. Когда в клиенте появляются подвижные детали (жесткие диски), появляются возможности автономной работы, он перестает быть «тонким клиентом» в чистом виде, а становится универсальным клиентом.

Во всех схемах используются предварительно выбранные компьютеры КК и СК (одни и те же). Известна загрузка этих компьютеров и аппаратуры и каналов связи для каждого варианта системы.

Схема с обычным клиентом

Рис. 2.21. Схема с обычным клиентом

Для расчетного примера, который рассматривается ниже, установлено, что предположительно оператор КК обращается к приложению с интенсивностью 10 обращений в час (конкретное числовое значение, как и используемые далее). Такая работа загружает клиентский компьютер (за счет F1) на 6%, а аппаратуру и канал связи при работе по схеме А- на 1%. Реализация компонента F2 на клиентском компьютере - на 5%, а в случае реализации F2 на СК последний загружается на 2,5%.

При выполнении компонента F3 (схема В) на клиентском компьютере с сервера поступают полные копии файлов, над которыми производятся операции базы данных, поэтому загрузка аппаратуры связи и каналов связи возрастает до 2%. При назначении компонента F3 (операции БД) на КК он загружается на 15% (хотя это «толстый клиент», но все-таки не сервер!). Выполнение F3 на сервере загружает его на 5%. Реализация файловых операций F4 возможна только на сервере, и один набор таких операций загружает СК на 1%.

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

Требуется выбрать оптимальное распределение компонентов программной системы (а следовательно, и схему системы) по компьютерам, при котором обеспечивается нормальная работа без перегрузки системы.

Формализация задачи. Для формализации задачи можно использовать понятие двудольного графа. Граф G = (V, Е) называется двудольным графом (биграфом), если множество V его вершин допускает разбиение на два непересекающихся подмножества - VI и V2 (две доли). Причем каждое ребро графа соединяет вершины из различных долей. Двудольный граф с долями VI и V2 обозначается через G - (V1,V2, Е).

В нашей задаче доля VI представляется как VI = {FI, F2, F3, F4}, а доля V2 соответственно V2 - {КК, СК} (рис. 2.22). Ребрами в таком графе будем обозначать возможную реализацию некоторого компонента ПС на одном из возможных компьютеров системы. Пунктирное изображение ребра показывает на возможный вариант реализации, сплошное изображение ребра означает выбранный (по исходным условиям) или определенный при решении задачи вариант.

Размещение, представленное графом

Рис. 2.22. Размещение, представленное графом

Поставим каждому ребру в соответствие некоторую переменную xt. В нашем случае удобно считать, что такая переменная принимает два значения (0 или 1), т.е. jc, е {0, 1}. При этом значение переменной, равное 1, говорит о том, что выбирается соответствующее решение (ребро сплошное). Значение переменной, равное нулю, свидетельствует о том, что в решении соответствующее ребро отсутствует.

Таким образом, решение задачи можно представить двоичным вектором: X- (хь *2, х3, х4, *5> -Доопределим для нашего случая исходные значения переменных и ограничения на их значения, накладываемые спецификой задачи.

  • 1. Значение Х = 1, поскольку F1 всегда реализуется на КК.
  • 2. Значение Х2 = 1, если F2 выполняется на КК, и х2 = 0 - в противном случае.
  • 3. Значение х3 = 1, если F2 выполняется на СК, их3 = О, если F2 не выполняется на СК.
  • 4. Значение х4 = 1, если F3 выполняется на КК, их4 - 0, если F3 не выполняется на КК.
  • 5. Значение jc5 = 1, если F3 выполняется на СК, их5 = 0 - в противном случае.
  • 6. Значение х6 = 1, поскольку файловые операции (F4) могут быть реализованы только на СК.

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

Следует обратить внимание на тот факт, что в нашей задаче четыре булевых переменных (х2, *3, х4, х5) определяют 16 возможных топологий двудольного графа, представленного на рис. 2.23. Однако возможных вариантов ПС, как следует из рис. 2.20-2.22, только три. Анализ структуры графа позволяет легко дописать дополнительные ограничения следующего вида: jc2 + jc3 = 1 и х4 + х5 = 1.

Данные соотношения следуют из того факта, что компоненты F2 и F3 могут быть реализованы только или на КК или СК. Кроме того, внимательное рассмотрение возможных вариантов структур системы позволяет сделать вывод, что не может быть допустимым размещение F3 на КК (х4 = 1) при размещении F2 на СК (х3 = 1). Таким образом, должно выполняться ограничение гзХх4= 0. Также отметим еще ограничение: если F2 размещается на СК, то и F3 должен размещаться на СК, т.е. должно выполняться соотношениех3хх5= 1.

Теперь рассмотрим вопрос о выборе целевой функции (ЦФ). Что может служить в нашей задаче целевой функцией? Может быть несколько вариантов. В частности, максимальная загрузка СК, поскольку это определяет максимальное число клиентских компьютеров, которые могут быть обслужены системой при допустимой загрузке аппаратуры и каналов связи. С другой стороны, возможно ограничение числа КК со стороны аппаратуры и каналов связи, и тогда следует выбрать в качестве ЦФ максимум загрузки аппаратуры и каналов связи при допустимой загрузке СК. Если в результате решения задачи в первой постановке окажется, что загрузка аппаратуры связи окажется значительно ниже допустимой, то это свидетельствует о том, что число КК в системе ограничивается СК.

Если в результате решения задачи во второй постановке окажется, что СК загружен ниже допустимого значения, то это говорит о том, что число КК ограничивается аппаратурой связи.

Введем обозначения для загрузки элементов аппаратной системы, которая обусловлена работой оператора одного клиентского компьютера:

z - загрузка КК компонентом F1;

z -загрузка КК компонентом F2;

z - загрузка КК компонентом F3;

zc2 - загрузка СК компонентом F2;

z3 - загрузка СК компонентом F3;

z4 - загрузка СК компонентом F4;

z[e - загрузка аппаратуры и КС при работе по схеме А;

z°2 - загрузка аппаратуры и КС при работе по схеме В;

zf - загрузка аппаратуры и КС при работе по схеме С.

Построим функции загрузки элементов аппаратной системы:

1. Загрузка сервера:

2. Загрузка КК:

3. Загрузка аппаратуры и каналов связи:

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

Таким образом, в условиях сформулированной задачи выбор оптимального распределения компонентов программной системы по аппаратным средствам системы сводится к отысканию такого решения хор( = (*i, х2, х3, х4, х5, х6), при котором достигается максимальное значение функции (1), т.е.

при условии выполнения следующих ограничений:

(загрузка КК);

(загрузка аппаратуры и КС);

Заметим, что в такой постановке задачи от максимизации целевой функции (2.11) можно перейти к минимизации выражения, стоящего

в знаменателе, т.е. к отысканию min (z23 + z35 + z46) при тех же

ограничениях (2.12)—(2.19). Физический смысл решения задачи в такой постановке означает поиск такого решения, при котором загрузка сервера от одного клиентского компьютера минимальна.

Решение задачи. Сформулированная задача относится к классу задач линейного программирования с булевыми переменными. В данном случае в связи с малой размерностью задачи ее можно легко решить полным перебором допустимых наборов переменных (хь х2, х3, х4, х5, х6), представляющих допустимые решения в условиях принятых ограничений.

Заметим, что во всех возможных решениях х — лу, 1, что дополнительно упрощает поиск решения. Однако кроме простого решения задачи представляет интерес анализ возможных вариантов схем, приведенных на рис. 2.19-2.21 с целью получения ответа вида «что будет, если?». Другими словами, хорошо было бы иметь модель, которая помогла бы детально исследовать возможные варианты архитектур ПС. Такую модель легко построить, используя электронные таблицы, например Excel, современной редакции. Для этого следует воспользоваться возможностями надстройки «Поиск решения».

На рис. 2.23 показано возможное представление задачи со значениями исходных данных, приведенными в начале статьи. Здесь всем переменным произвольно назначено единичное значение. На результат решения задачи это никак не влияет. Решение задачи производится, как это обычно, для электронных таблиц.

Результат решения представлен на рис. 2.24. Полученный вектор решения имеет следующий вид: Хор, — (1, 0, 1,0, 1, 1). Это соответствует архитектуре распределения компонентов ПС в соответствии с графом, представленном на рис. 2.25. Такой граф соответствует структуре системы, в которой на сервере размещаются компоненты F2, F3 и F4.

Анализ полученных результатов для назначенных исходных данных позволяет сделать вывод, что аппаратура и каналы связи имеют запас по производительности (загрузка 0,706 < 1), а сервер загружен полностью. Точнее, его загрузка немного меньше единичного значения, если округлить число клиентских компьютеров до ближайшего меньшего значения -11.

Представление задачи в Excel

Рис. 2.23. Представление задачи в Excel

Решение задачи

Рис. 2.24. Решение задачи

Результирующий граф системы

Рис. 2.25. Результирующий граф системы

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

 
Посмотреть оригинал
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >
 

Популярные страницы