уцк 62-506.1
Е. В. Гражданцев, М. В. Карасева, В. В. Брезицкая
АНАЛИЗ ПОЛЬЗОВАТЕЛЬСКИХ ТРАНЗАКЦИЙ В РАСПРЕДЕЛЕННЫХ ИНФОРМАЦИОННО-УПРАВЛЯЮЩИХ СИСТЕМАХ
Рассмотрен анализ транзакционной надежности в распределенных информационно-управляющих системах. Авторами предлагается применить подходы выявления часто используемых пользовательских транзакций, для которых необходимо, в первую очередь, применять методы повышения транзакционной надежности. К таким подходам можно отнести поиск ассоциативных правил и секвенциальный анализ. Показана одна из особенностей современных распределенных систем, существенно влияющая на надежность системы в целом и транзакционную надежность в частности, - распределение данных по нескольким серверам.
Проектирование современных распределенных информационно-управляющих систем предъявляет высокие требования к надежности программных средств. Транзакционная надежность обращения пользователя к распределенным информационно-управляющим системам является одним из таких требований, так как одной из основных задач разработчиков становится создание таких систем, которые обеспечивали бы транзакционную надежность системы как к программным, так и к аппаратным сбоям [1]. Определяя часто используемые наборы объектов в распределенной системе, можно решить задачу анализа транзакций и их изначального планирования. Это необходимо, главным образом, для построения различных отчетов организации или анализа поведения пользователя в рамках системы. Авторами предлагается применение подходов выявления часто используемых пользовательских транзакций, для которых необходимо использование методов повышения транзакционной надежности. К таким подходам можно отнести: поиск ассоциативных правил и секвенциальный анализ [2]. Также необходимо показать одну особенность современных распределенных систем, в значительной мере влияющую на надежность системы в целом и транзакционную надежность в частности, - распределение данных по нескольким серверам. Для получения выборки необходимых данных по определенным или всем транзакциям вводится понятие мультиверсионности пользовательских транзакций. Сущность данного понятия состоит в том, что система может выбрать ту или иную версию транзакции в зависимости от условий состояния системы в данный момент времени, например, в зависимости от загруженности определенного информационного сервера [3].
Применением первого подхода является анализ пользовательских транзакций при использовании механизма ассоциативных правил.
Представим эту задачу в обобщенном виде. Для этого обозначим объекты, составляющие исследуемые наборы данных, которые являются терминами в пользовательском транзакционном запросе, следующим множеством:
I = {\, г2,-, у--, О,
где I - множество терминов, входящих в пользовательские транзакционные запросы; I. - термины анализируемых пользовательских транзакций; п - общее количество терминов.
Пусть, например, эти термины соответствуют следующему множеству терминов:
1 = ^ ^ ^ ^ гбЬ
Учитывая то, что транзакция может состоять из нескольких терминов, опишем единичную транзакцию как подмножество множества I:
Т = { е I}.
Такие транзакции соответствуют наборам терминов, необходимых пользователю и сохраняемых в БД в виде запроса [4]. Так, например, следующие транзакции соответствуют требованиям пользователя при разных условиях запроса:
Т1 = i4,
Т2 = {iз, i4, гб}-
Чтобы усложнить постановку задачи до мультиверси-онного случая, необходимо ввести индекс I, который будет отвечать за номер мультиверсии каждой отдельной транзакции. Набор мультиверсионных транзакций, информация о которых доступна для анализа, обозначим следующим множеством:
Б = {Т Т Т Т }
{Т 1Р Т2Р ••', Т Г, ••', т1}'
Например, таким множеством будет:
=
{21’ '«’ {22’ '42’ {23’ '43 ’ {г24’ г44’ {і25 ’ '«’
1 } {31 ’ '41’ '61
2}
{33’ '43’ 'б3}
4 } {'34 ’ '44 ’ 'б4 } {64 ’ 'з4 ’ '24 ’ 'з4 ’ '44 }
5} {'з5 ’ '«’ 'б5 } {34’ 'б4 ’ '34}
'^1’ 'б1} {'б1’ '31’ '21 ’ '31’ '41} {31’ 'б1’ 'з1}
{ '33’ 'б3’ '33}
Как видно из примера, существует четыре транзакции, которые могут выполняться в пятиверсионном исполнении [3; 4]. Так, первая транзакция имеет пять мультиверсий, вторая - четыре, третья - две и четвертая - три.
Таким образом, применяя метод поиска ассоциативных правил, можно выявить наиболее часто запрашиваемые пользовательские транзакции и уже для них применять механизмы повышения надежности обработки транзакций распределенных информационно-управляющих систем.
Вторым подходом анализа пользовательских транзакций является метод секвенциального анализа [3]. Его целесообразно применять при анализе информации и транзакций в информационно-управляющих системах, связанном с последовательностью происходящих событий. При обнаружении закономерностей в таких последовательностях можно с некоторой долей вероятности предсказывать появление событий в будущем, что позволяет принимать более правильные решения. Для простоты
покажем применение данного подхода в классическом случае реализации программной системы (без использования мультиверсионности транзакций).
Так как последовательность - это упорядоченное множество объектов, то для этого на множестве должно быть задано отношение порядка [5].
Тогда последовательность объектов можно описать в следующем виде:
я = {-;р ,..}где^ < я.
Например, в случае с запросами пользователя таким отношением порядка может выступать время выполнения запроса. Тогда последовательность
5 = {(г4, 02.03.2008), (г2, 05.03.2008), (г5, 10.03.2008)}
можно интерпретировать как запросы, совершаемые одним человеком в разное время (вначале была запрошена пользовательская транзакция, содержащая термин г4, затем г'2, а потом г'5).
Различают два вида последовательностей: с циклами и без циклов [5]. В первом случае допускается вхождение в последовательность одного и того же объекта на разных позициях:
я = {..., {1д,...},где Р < Я, а \ = V
Пользовательская транзакция Тк содержит последовательность 5; если Я с Тк и объекты, входящие в 5, входят и в множество Тк с сохранением отношения порядка. При этом допускается, что в множестве Тк между объектами из последовательности 5 могут находиться другие объекты.
Поддержкой последовательности 5 называется отношение количества пользовательских транзакций, в которое входит последовательность 5, к общему количеству транзакций. Последовательность является частой, если ее поддержка превышает минимальную поддержку, заданную пользователем:
^РР (5) > ^РРтш
Задачей секвенциального анализа является поиск всех частых пользовательских последовательностей:
Ь = { 5 1 ^рр© > ^РР^П }.
Основным отличием задачи секвенциального анализа от поиска ассоциативных правил является установление отношения порядка между терминами множества
I. Данное отношение может быть определено разными способами. При анализе последовательности событий, происходящих во времени, терминами множества !явля-ются события, а отношение порядка соответствует хронологии их появления [2].
Например, при анализе последовательности пользовательских запросов наборами транзакций являются груп-
пы терминов, запрашиваемые в разное время одними и теми же пользователями, а отношением порядка в них является хронология запросов:
{{(^4), (i5)}, {(i3, i4), О5Х (i4, i 1, ^3)}, {(i5, ^2, i4), (i5)}}‘
Данное множество можно представить в соответствии с рисунком.
Интерпретировать такую последовательность можно следующим образом: пользователь распределенной системы с идентификатором 1 вначале запросил информацию с термином i и i, затем i, в последний раз он запросил i4, i1 и i3.
Поддержка, например, последовательности {(i5), (i4)} составит 2/3, так как она встречается у пользователя с идентификаторами 0и 1. У последнего пользователя также встречается набор {(i5), (i4)}, но не сохраняется последовательность (он запросил вначале i4, а затем i5).
В заключение отметим, что секвенциальный анализ актуален и для анализа целостности и отказоустойчивости распределенных информационно-управляющих систем. Основная проблема, для решения которой он используется, - это анализ данных об авариях на различных узлах (как аппаратных, так и программных) информационной системы. Информация о последовательности совершения отказов может помочь в обнаружении неполадок и предупреждении новых отказов системы.
Таким образом, показаны мультиверсионные модели обработки пользовательских транзакций: модель поиска ассоциативных правил и модель секвенционального анализа данных, которые позволяют повысить эффективность анализа транзакционной обработки данных в распределенных информационно-управляющих системах.
Библиографический список
1. Царев, Р. Ю. Информатика и вычислительная техника. Модели формирования и алгоритмы распределенной обработки информации и управления : учеб. пособие / Р. Ю. Царев, Т. И. Семенько, Е. С. Гаврилов. Красноярск: ИПЦ КГТУ, 2005.
2. Барсегян, А. А. Технология анализа данных: OLAP / А. А. Барсегян, М. С. Куприянов, В. В. Степаненко. СПб. : БХВ - Петербург, 2007.
3. Диалоговая система оценки надежности архитектуры программного обеспечения (Rapid Reliability ArchitecEstimator ver. 1.0) : заявка / Е. С. Гаврилов, И. В. Ковалев, О. А. Антамошкин, М. А. Русаков. № 50200500525, Рег. № ОФАП 4623. М. : ВНТИЦ, 2005.
4. Гаврилов, Е. С. Транзакционная надежность технологии обработки данных в информационно-управляю-щих системах / И. В. Ковалев, А. А. Ступина, Е. С. Гаври-
лов // Вестн. Сиб. гос. аэрокосмич. ун-та им. акад. М. Ф. Решетнева : сб. науч. тр. / под ред. проф. Г. П. Белякова ; Сиб. гос. аэрокосмич. ун-т. Красноярск, 2005. Вып. 6. С. 52-58.
5. Гаврилов, Е. С. Транзакционная надежность программно-информационных технологий в АСУ / Е. С. Гаврилов, М. А. Русаков // Вестник университетского комплекса : сб. науч. тр. / под общ. ред. проф. Н. В. Василенко. Красноярск: ВСФ РГУИТП : НИИ СУВПТ. 2004. Вып. 3 (17). С. 3-15.
E. V. Grazhdantsev, M. V. Karaseva, V. V. Brezitskaya
USER TRANSACTION ANALYSIS IN DISTRIBUTED DATA CONTROL SYSTEMS
The problem of transaction reliability analysis in distributed data control systems is considered. The authors offer to use approaches of exposure frequently utilized user transactions where it is necessary to utilize first of all transaction reliability methods. There exist two methods: associative rules search method and sequential analysis. The peculiarity of modern distributed systems fundamentally influencing the system’s reliability in general and transaction reliability in particular data distribution about some services is showen.
УДК 681.34
И. В. Ковалев, А. В. Новой, А. В. Штенцель
ОЦЕНКА НАДЕЖНОСТИ МУЛЬТИВЕРСИОННОЙ ПРОГРАММНОЙ АРХИТЕКТУРЫ СИСТЕМ УПРАВЛЕНИЯ И ОБРАБОТКИ ИНФОРМАЦИИ
Рассматривается программная архитектура для обеспечения отказоустойчивости которой применяется мультиверсионное программирование. Предложена модель на основе марковских цепей, позволяющая оценить надежность программного обеспечения при его длительной работе.
Программное обеспечение (ПО) применяется в различных системах управления и обработки информации. В зависимости от приложения данных систем к ПО предъявляются различные требования по надежности. Существует ряд критических систем, отказ которых может нанести урон здоровью и жизни людей, а также привести к экономическим и материальным потерям.
Одним из методов, позволяющих обеспечить высокую надежность и отказоустойчивость программной архитектуры систем управления и обработки информации является мультиверсионное программирование (№УР) [1]. Метод заключается в применении избыточного числа версий программного обеспечения, выполняемых параллельно. Результаты работы версий сравниваются с помощью алгоритма голосования: если большинство версий возвращают одинаковый результат, то он принимается, как результат работы ПО, иначе наступает отказ. Таким образом, с помощью метода мультиверсионного программирования реализуется мультиверсионная программная архитектура, устойчивая к сбоям.
Итак, отказ программного обеспечения наступит при одновременном отказе большинства версий. Под одновременным отказом следует понимать не отказ в один и тот же момент времени, а отказ при обработке одних и тех же данных, т. е. на к-й итерации выполнения. Чем больше время выполнения версии, тем больше вероятность того, что версия откажет.
Для оценки надежности программного обеспечения необходимо знать интенсивности отказов (X.) и время
выполнения (й) каждой версии. Способы определения интенсивности отказа предложены в работе [2], а время выполнения может быть непосредственно измерено. Предполагается, что время выполнения каждой версии постоянно.
Функционирование программного обеспечения с тремя версиями (Ы = 3) можно продемонстрировать с помощью графа состояний (рис. 1). Номер состояния соответствует числу отказавших версий.
Рис. 1. Граф состояний
В начальный момент времени, что соответствует нулевой итерации, ПО находится в состоянии 0. После первой итерации ПО может остаться в состоянии 0 (все версии вернут верный результат), перейти в состояние 1 (произойдет отказ одной из трех версий), перейти в состояние