СЕКЦИОННОЕ ПРЕДСТАВЛЕНИЕ ИНТЕРАКТИВНЫХ

advertisement
СЕКЦИОННОЕ ПРЕДСТАВЛЕНИЕ ИНТЕРАКТИВНЫХ ПРИКЛАДНЫХ ЗАДАЧ
КОРПОРАТИВНЫХ ИНФОРМАЦИОННЫХ СИСТЕМ
А.А. Потапов, В.Б. Механов
Пензенский государственный университет
Тел.: (8412) 56-08-65, e-mail: polex@inbox.ru
Корпоративные информационные системы (ИС) являются неотъемлемой частью любого современного
предприятия. В корпоративных ИС традиционный подход при решении интерактивных задач заключается в том, что
пользователь, используя программу-клиента, формирует запросы к хранимым на серверах обработки (СО) прикладным
задачам, а сервера обработки, получая запрос, осуществляют выполнение задачи и отсылают полученные результаты
пользователю.
В последние годы при организации обработки в корпоративных ИС все чаще используются расширения
традиционного подхода, например, за счет применения механизма пользовательских сеансов [1–3], когда в решении
прикладной задачи на СО корпоративной ИС участвуют не только данные запроса, но и набор переменных
пользовательского сеанса, хранимый на СО. Это позволяет представлять прикладные задачи состоящими из
последовательности взаимосвязанных подзадач (секций), а процесс решения задачи – в виде последовательности
актов интерактивной обработки секций.
Преимущества предлагаемого подхода по сравнению с традиционным состоят в сокращении накладных расходов,
связанных с созданием/разрушением контекстов при решении тесно связанных по данным задач, сокращением
избыточности и уменьшении передаваемых по каналам связи потоков данных. Другими словами, решение тесно
связанных по данным задач целесообразно выполнять в рамках одной, более крупной задачи, оформляя составные
задачи в виде секций (подзадач) одной задачи. При этом каждая секция получает уникальное имя, по которому
пользователь может осуществлять запрос.
Таким образом, каждая задача ИС представляется состоящей из N секций (рис. 1), которые могут выполняться в
произвольном порядке произвольное число раз в зависимости от запросов клиента ИС, за исключением 0-й и N-й. 0-я
секция всегда выполняется первой при запуске задачи на выполнение. N-я секция всегда выполняется последней при
завершении задачи.
Рис. 1. Секционная структура интерактивной прикладной задачи ИС
Исходными данными, необходимыми для запуска секции задачи на выполнение, являются запросы клиентов ИС.
Запросы однозначно идентифицируют задачу и имя секции в ней и имеют формат, представленный на рис. 2. Если
номер секции в запросе не указывается, то задача начинает выполняться с 0-й секции.
Рис. 2. Структура формируемого клиентом ИС запроса
Если используется механизм балансировки нагрузки (БН) СО, то его действие должно распространяться на задачи
в целом, исключая секции. Механизм БН должен направлять запросы к промежуточным секциям задачи исключительно
на узлы, на которых уже выполняются соответствующие им задачи. В противном случае, если каждая секция одной и
той же задачи будет перераспределяться на другой узел, то накладные расходы по перемещению контекста задачи с
узла на узел сведут на нет весь эффект от механизма БН и значительно снизят производительность системы. В
промежутках между запусками различных секций задача находится в состоянии ожидания (паузы обработки),
освобождая при этом ресурсы ЦП и УВВ. Интервал ожидания запроса клиента для задачи, находящейся в состоянии
ожидания, как правило, составляет от нескольких секунд до нескольких минут и должен быть ограничен интервалом
бездействия, который задается администратором ИС. Отложив временные интервалы, соответствующие выполнению
различных секций типовой задачи на шкале времени, получим временную диаграмму, представленную на рис. 3.
Рис. 3. Временная диаграмма типовой задачи ИС
Согласно рис. 3 время выполнения типовой задачи будет складываться из времени вычислений на ЦП (
времени обращения к локальной (
(
) и удаленной БД (
), времени выполнения локальных (
),
) и удаленных
) операций ввода-вывода и времени ожидания запроса от клиента ( ). Интервал
соответствует
инициализации задачи, когда ЦП создает необходимые переменные и классы. В течение
обрабатывается запрос к
локальной БД для чтения переменных сеанса в ОП. Содержимое локальной БД реплицируется на все СО. Обновление
данных в локальной БД осуществляется только в 0-й и N–й секциях задачи. Операции удаленного ввода-вывода,
предназначенные для обмена данными между задачами, сгруппированы в отдельные секции. В остальных секциях
задачи может комбинироваться процессорная обработка и обращение к удаленной БД. Так, в течение
,
происходит обращение к удаленной БД для получения множеств исходных данных задачи. После того как исходные
данные получены, выполнение задачи приостанавливается, то есть она переводится в состояние ожидания (пауза
обработки,
) до тех пор, пока клиент ИС не выберет из полученных множеств конкретные данные для выполнения
задачи и не отошлет соответствующий запрос ИС. Паузы обработки задач ИС вызваны их человеко-машинной
природой и связаны с ожиданием СО запросов пользователя, которые инициируют, продолжают, либо завершают
выполнение секций задач.
Выбрав конкретный набор данных из множества возможных, пользователь отсылает соответствующий запрос ИС,
получив который CO переводит задачу из состояния ожидания в состояние обработки, характеризующееся
. Задача в процессе выполнения может сохранять данные на локальный диск, например,
промежутком времени
отчеты о своем выполнении. Этому промежутку соответствует интервал
. Операции ввода-вывода будем
рассматривать как блокируемые, то есть фазы вычислений и ввода-вывода происходят последовательно, не
перекрываясь во времени. Поэтому после окончания ввода-вывода вычисления продолжаются в течение
. В ходе
вычислений может потребоваться выполнение операций над данными, хранящимися в удаленной БД на одном из узлов
. После завершения операций с удаленной БД задача
сервера БД. Этому соответствует промежуток времени
. Клиент ИС в течение
выполняет
переходит в состояние ожидания и ждет реакции клиента ИС в течение
обработку и анализ промежуточного решения задачи, формирует и отправляет запрос к промежуточной секции,
. В процессе вычислений задача может
который переводит задачу из состояния ожидания в фазу вычислений
обмениваться данными с другими задачами, находящимися на других узлах вычислительного кластера, путем
выполнения операций удаленного ввода-вывода с жестким диском удаленного узла. Этому соответствует промежуток
, после чего задача переходит в состояние ожидания
и ждет от клиента ИС дальнейших указаний.
времени
Клиент ИС по результатам предшествующей обработки может сформировать отчет по одной из стандартных форм в
виде RTF-документа. Для этого он задает параметры отчета и переводит задачу из состояния ожидания в фазу
. Для формирования отчета могут потребоваться данные, хранящиеся в удаленной БД.
вычислений на ЦП,
Обращение к серверу БД занимает
времени. Когда задача считается выполненной, необходимо сохранить
переменные сеанса, связанные с задачей клиента из оперативной памяти в локальную БДкэш и освободить ресурсы,
использованные для решения задачи. Это происходит в течение промежутка времени
. В завершение выполнения
задача отправляет RTF-документ, содержащий результаты обработки клиенту, и в течение
завершает процессы,
связанные с началом ее выполнения.
Сложив промежутки времени с однородной нагрузкой вместе, получим сводную диаграмму, представленную на
рис. 4.
Рис. 4. Сводная временная диаграмма типовой задачи ИС
Анализируя временные диаграммы выполнения типовой задачи ИС, представленные на рис. 3 и 4, можно сделать
следующие выводы. Во-первых, задачи ИС с секционной структурой предполагают неоднородный характер нагрузки,
), на локальные (
,
) и
поскольку состоят из секций, создающих нагрузку преимущественно на ЦП и ОП (
удаленные (
,
) дисковые УВВ. Во-вторых, задачи выполняются по секциям и в промежутках между
секциями одной и той же задачи вычислительный процесс приостанавливается на время паузы обработки, в течение
). В-третьих, время ожидания запросов пользователя
которого задача ожидает ввод данных от клиента (
вносит достаточно весомый вклад в общее время выполнения задачи ИС.
Для оптимизации производительности ИС, выполняющих интерактивные прикладные задачи, необходимо
применять методы, с одной стороны учитывающие неоднородность нагрузки, создаваемой различными секциями
задач, с другой – осуществляющие динамическое управление ресурсами СО. При использовании методов
балансировки нагрузки СО также необходимо учитывать секционную структуру интерактивных задач.
Литература
1.
Wikipedia,
the
free
encyclopedia
«Session
(Computer
science)»
[Электронный
ресурс]:
http://en.wikipedia.org/wiki/Session_%28computer_science%29 – Загл. с экрана, 2008.
2. Donald Brown, Chad Michael Davis, and Scott Stanlick «Struts 2 in action» // Manning Publications Co., ISBN93398807X, 2007, 424 p.
3. Дипак Алур, Джон Крупи, Дэн Малк «Базовые образцы J2EE. Лучшие практические подходы и стратегии
проектирования», Изд.: «Лори» 2004, 400 с.
Download