Анализ достижимости состояний распределенных систем и систем с модульной архитектурой

Информационные технологии

37

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

Библиографический список

1. Проблемы сертификационных испытаний программных средств связи / С. В. Диасамид-зе // Автоматика, связь, информатика. - 2009. -№ 2.- С. 31-32.

2. Принцип сертификационных испытаний программных средств / С. В. Диасамидзе // Автоматика, связь, информатика. - 2009. - № 7. -С. 29-30.

3. Использование метрик сложности для оценивания качества программ / С. В. Диасамидзе,

А. А. Платонов // Сборник докладов XII Международной научно-практической конференции «Информационные технологии на железнодорожном транспорте». - СПб. : Петербургский гос. ун-т путей сообщения, 2007. - С. 70-72.

УДК 004.4

С. С. Захарченко, М. А. Поляничко

Петербургский государственный университет путей сообщения

АНАЛИЗ ДОСТИЖИМОСТИ СОСТОЯНИЙ РАСПРЕДЕЛЕННЫХ СИСТЕМ И СИСТЕМ С МОДУЛЬНОЙ АРХИТЕКТУРОЙ *

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

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

4. Использование метрик сложности для распознавания недекларированных возможностей и оценивания качества программного обеспечения / С. В. Диасамидзе, А. А. Корниенко // Сборник докладов VI Международной научно-практической конференции «Телекоммуникационные и информационные технологии на транспорте России». - Ростов н/Д : Ростовский гос. ун-т путей сообщения, 2008. - С. 147-152.

5. Использование метрик сложности для логической оценки качества разработки программных средств / С. В. Диасамидзе // Сборник материалов I Международной научно-практической конференции «Интеллектуальные системы на транспорте». - СПб. : Петербургский гос. ун-т путей сообщения, 2011. - С. 130-134.

6. Начала науки о программах / М. Х. Хол -стед ; пер. с англ. В. М. Юфы. - М. : Финансы и статистика, 1981. - 128 с.

7. Искусство тестирования программ / Г. Майерс. - М. : Финансы и статистика, 1982. - 176 с.

8. Стандартизация жизненного цикла и качества программных средств : учеб. пособие / Д. В. Богданов, В. В. Фильчаков. - СПб. : ГУАП, 2000. - 210 с.

* Работа выполнена в рамках гранта РФФИ 11-07-13150.

ISSN 1815-588Х. Известия ПГУПС

2012/3

38

Информационные технологии

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

распределенная система, программное обеспечение, модель Крипке, безопасность, недостижимое состояние.

Введение

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

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

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

1 Модель распределенной системы

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

значениями её переменных v, V е W, где V -множество всех переменных.

Переменные имеют бесконечную область определения; для ограничения числа состояний системы необходимо сделать отображение их значений на множество с конечным числом элементов. Такое множество называется областью интерпретации D и содержит два элемента {true,false}. Множеством состояний распределенной системы служит множество S: V ^ D, каждое состояние описывается некоторыми атомарными высказываниями, истинными в данном состоянии.

В общем случае модель Крипке представляет собой четверку элементов:

K = (S, S0, R, L),

где S - конечное множество состояний системы; S0 - конечное множество начальных состояний системы; R: S х S - тотальное отношение переходов.

Тотальность означает, что из любого состояния существует переход в другое состояние, в том числе само в себя, т. е. Vs:3s', (s,s') е R; L - функция пометок, которая ставит в соответствие каждому состоянию набор атомарных высказываний, выполняющихся в данном состоянии. Иными словами, L: S ^ 2AP, где AP - множество атомарных высказываний.

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

2012/3

Proceedings of Petersburg Transport University

Информационные технологии

39

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

Если применить данную модель к распределенной системе, состоящей из нескольких модулей, то модель Крипке принимает следующий вид:

S = П S,;

t=1

S0 =

Vs e S : L

i=1

где n - количество модулей в распределенной системе.

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

Применение такого подхода позволяет построить модель Крипке для распределенной

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

2 Анализ достижимости состояний

На основе сформированной модели Крип-ке можно построить конечный автомат [3]. Каждое состояние построенного автомата будет представлено совокупностью состояний модулей распределенной системы. Данный автомат можно описать при помощи однонаправленного графа, вершины которого являются состояниями, а ребра обозначают переходы между этими состояниями. Состояние s' доступно из s, если (s, s') e R. На базе множеств S и R строится матрица смежности рассматриваемой системы. Матрица смежности формируется следующим образом:

M

1, если (s,, sj) e R; 0 - иначе.

Используя полученную по формуле (5) матрицу смежности графа, по алгоритму Флойда - Уоршалла вычисляется транзитивное замыкание T. Данный алгоритм находит кратчайшие пути между вершинами графа, однако в работе нас интересует лишь существование такого пути. Каждый элемент матрицы определяется по формуле:

ty = т j v т 1к л mkj, где t,j,k= 1, ...,n.

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

ISSN 1815-588Х. Известия ПГУПС

2012/3

40

Информационные технологии

влияющие на поведение системы. Оценка влияния складывается путем определения количества состояний, которые становятся недостижимыми вследствие недостижимости одного из состояний. Для этого вводится множество Z. Размер множества Z равен количеству состояний распределенной системы. Каждый из элементов z е Z определяется по следующему правилу:

И

Zj = Zj +1, если X tj = 0,

i=1

где |5] - количество состояний распределенной системы.

Таким образом, элемент z. содержит ко -личество недостижимых состояний в случае недостижимости состояния s

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

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

Сервер 3

Рис. 1. Схема распределенной системы

каждый элемент находится в постоянном взаимодействии с остальными. Для такой системы по формулам (1), (2), (3) и (4) построена структура Крипке. Исходя из нее, строится автомат, которому соответствует граф, показанный на рис. 2.

Рис. 2. Граф переходов системы

При поочередном моделировании недоступности состояний системы были получены результаты (см. табл.).

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

- номер состояния, которое становится недоступным на данном шаге;

- номера состояний, которые становятся недостижимыми в результате недоступности указанного выше состояния;

- количество таких (недостижимых) состояний.

2012/3

Proceedings of Petersburg Transport University

Информационные технологии

41

ТАБЛИЦА. Список недоступных состояний

Номер состояния Номера Количество

недоступных недоступных

состояний состояний

1 1 2 3 13 4

2 1 2 3 7 13 5

3 3 13 2

4 3 4 13 3

5 3 5 13 3

6 3 6 11 13 4

7 3 4 7 13 4

8 3 8 12 13 4

9 3 9 13 14 4

10 3 10 13 3

11 3 11 13 3

12 3 12 13 16 4

13 3 13 2

14 3 13 14 3

15 3 13 15 3

16 3 13 16 3

На основе полученных результатов можно сделать вывод о том, что недоступность состояния 2 влияет на систему наибольшим образом, так как становятся недоступными пять состояний, из которых два состояния (3 и 13) недоступны изначально.

Заключение

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

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

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

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

Библиографический список

1. Model Checking. Верификация параллельных и распределенных программных систем / Ю. Г. Карпов. - СПб. : БХВ-Петербург, 2010. -560 с.

2. Верификация моделей программ: Model Checking / Э. М. Кларк, О. Грамберг, Д. Пелед ; пер. с англ. ; под ред. Р. Смелянского. - М. : МЦНМО, 2002. - 416 с.

3. An automata-theoretic approach to automatic program verification / M. Y. Vardi, P. Wol-per // In Proc. First Symposium on Logic in Computer Science. - Cambridge, June 1986. - Pages 322-331.

ISSN 1815-588Х. Известия ПГУПС

2012/3