Экспериментальная среда облачных вычислений в институте математики и механики УрО РАН

5. Гуляева О.С., Цветков И.В. Определение фрактальной размерности на основе измерения длин графиков временных рядов в различных временных масштабах // Вестн. ТГУ. 2007. № 17 (45). С. 155-160 (Прикладная математика).

References

1. Holder M., Tsvetkov I., Proc. of V Interm. congress of mathematical modeling, Vol. 2, Dubna, 2002, 150 p.

2. Kudinov A.N., Sazhina O.I., Tsvetkov V.P., Tsvetkov I.V., Vestnik RUDN, 2010, no. 2 (2), pp. 132-138.

3. Kudinov N., Tsvetkov V.P. and Tsvetkov I.V., Russian Journ. of Math. Physics, 2011, Vol. 18, no. 2, pp. 149-155.

4. Kudinov A.N., Miheev S.A., Tsvetkov V.P., Tsvetkov I.V., Programmnye produkty i sistemy, 2008, no. 4, pp. 117-119.

5. Gulyaeva O.S., Tsvetkov I.V., Vestnik Tverskogo Gos. Univ., 2007, № 17 (45), pp. 155-160.

УДК 004.75

ЭКСПЕРИМЕНТАЛЬНАЯ СРЕДА ОБЛАЧНЫХ ВЫЧИСЛЕНИЙ В ИНСТИТУТЕ МАТЕМАТИКИ И МЕХАНИКИ УрО РАН

Д.Г. Ермаков, к.ф.-м.н., с.н.с.; Д.А. Усталое, ст. программист

Рассматривается задача предоставления масштабируемой вычислительной инфраструктуры для консолидации компьютерного оборудования, используемого в целях разработки, отладки и развертывания ПО, а также дидактической поддержки образовательных курсов. Сформулированы требования к ПО и выполнен обзор существующих решений: Eucalyptus, OpenNebula, OpenStack, Nimbus. В результате их сравнения принято решение об экспериментальном развертывании средств OpenNebula на основе гипервизора KVM и ОС GNU/Linux.

Среда OpenNebula - это свободное ПО, предназначенное для управления облачной инфраструктурой класса «инфраструктура как услуга». Гипервизор виртуальных машин KVM разрабатывается компанией Red Hat и поддерживается средой OpenNebula в качестве решения для виртуализации по умолчанию. Описаны вычислительные ресурсы Института математики и механики (ИММ) УрО РАН и выделенные серверные узлы для запуска экспериментальной среды облачных вычислений. Приведена конфигурация типового узла среды облачных вычислений на основе ОС Scientific Linux 6.1 (x86_64) с использованием технологий LVM, KVM и libvirt. Описано представление облачной среды как на логическом, так и на физическом уровнях. Обозначены проблемы функционирования системы безопасности SELinux и обеспечения отказоустойчивости системы. Сформулирован дальнейший план работ по таким направлениям, как интеграция с доменной системой Active Directory, применение сетевого хранилища (NAS) для хранения образов виртуальных машин, миграция на клиент-серверную БД MySQL и необходимость апробации и предоставления масштабируемых Web-сервисов для конечных пользователей среды облачных вычислений ИММ УрО РАН.

Ключевые слова: виртуализация, гипервизор виртуальных машин, облачные вычисления, инфраструктура как услуга (сервис), KVM, OpenNebula, IaaS.

THE EXPERIMENTAL CLOUD COMPUTING ENVIRONMENT IN INSTITUTE OF MATHEMATICS AND MECHANICS URAL BRANCH OF RAS

Ermakov D.G., Ph.D., Senior Researcher; Ustalov D.A., Senior Programmer

Аbstract. This paper considers the problem of providing a scalable computing infrastructure to consolidate computing equipment used for developing and debugging software as well as for the didactic support of educational courses. Software specifications are formulated and the following existent solutions are reviewed and compared: Eucalyptus, OpenNebula, OpenStack, and Nimbus. A decision is made to perform an experimental deployment of the OpenNebula suite based on the KVM hypervisor and the GNU/Linux operating system.

OpenNebula is an open source software designed to control the cloud environment of the Infrastructure-As-a-Service class. The KVM hypervisor was developed by Red Hat and is supported by OpenNebula as a default virtualization solution. The available computational resources of the Institute of Mathematics and Mechanics, Ural Branch of the Russian Academy of Sciences, and dedicated backend nodes for the experimental cloud computing environment are described. The configuration of a typical cloud computing node under the Scientific Linux 6.1 (x86_64) operating system with the LVM, KVM, and libvirt technologies is presented. The cloud environment architecture is presented at both logical and physical levels. Some difficulties concerning the SELinux security system and the fault-tolerance performance are described. A plan of further work in the following directions is suggested: integration with the Active Directory domain system, application of the network-attached storage to keep the images of virtual machines, migration to the MySQL relational database, and the testing and presentation of scalable Web services to cloud computing end users at the IMM UrB RAS.

Keywords: virtualization, virtual machine hypervisor, cloud computing, Infrastracture-as-a-Service, IaaS, KVM, OpenNebula.

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

Вычислительные кластеры (массово-параллельные суперкомпьютеры) ИММ работают под управлением ОС GNU/Linux. Время от времени возникают нетипичные задачи, требующие переконфигурирования кластера или выделения вычислительных ресурсов на короткий срок. Например, для разработки и отладки некоторого приложения может потребоваться кластер Windows. Такой кластер не будет сильно нагружен, поэтому создание специального кластера или обеспечение двойной загрузки представляется нерациональным.

В рамках учебных курсов совместной кафедры УрФУ и ИММ УрО РАН «Высокопроизводительные компьютерные технологии» требуются средства для проведения практических занятий со студентами по развертыванию кластерного ПО.

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

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

Выбор программных продуктов

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

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

В настоящее время разработчики предлагают ряд продуктов, реализующих концепцию IaaS поверх различных систем виртуальных машин. К таким системам относятся Eucalyptus (http://www. eucalyptus.com/), OpenNebula (http://opennebula. org), OpenStack (http://openstack.org) и Nimbus (http://www.nimbusproject.org/).

Сравнение средств для создания IaaS-систем дается в работах [1, 2]. В качестве базовой среды для облачных вычислений в СКЦ ИММ УрО РАН был выбран продукт OpenNebula. Разработка OpenNebula стартовала в 2005 г. как исследовательский проект Distributed Systems Architecture Research Group в Мадридском университете Ком-плутенсе (Complutense University of Madrid). В марте 2008 г. состоялся первый релиз продукта. В настоящее время OpenNebula входит в состав проекта RESERVOIR (Resources and Services Virtuali-zation without Barriers - виртуализация ресурсов и сервисов без ограничений, http://www.reservoir-fp7.eu/), поддерживаемого грантом Евросоюза. OpenNebula используется рядом европейских научно-исследовательских организаций, среди которых отдельно следует упомянуть CERN.

Программное обеспечение OpenNebula предназначено для управления облачной инфраструктурой класса IaaS. Это свободно распространяемый продукт с открытым исходным кодом (распространяется по лицензии Apache), то есть полностью открытая платформа. В качестве системы виртуализации возможно использование Xen, KVM, VMware и Hyper-V. Программные средства OpenNebula поддерживают API для доступа к публичным облачным окружениям, таким как Amazon EC2 Query, OGF OCCI, vCloud и др. (см. также http://opennebula.org/doku.php?id=ecosys-tem). Таким образом, OpenNebula может использоваться для создания частных облачных сред, обеспечивать работу только с внешними, публичными облачными сервисами таких провайдеров, как Amazon EC2, а также развертывать гибридные облачные системы, сочетающие сервисы публичных и частных инфраструктур.

Ключевые возможности ПО:

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

- наличие централизованного интерфейса для управления всеми элементами виртуальной и физической распределенной инфраструктуры;

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

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

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

- более быстрое получение запрошенного сервиса (создание виртуального сервера требует значительно меньше времени, чем покупка и установка физического);

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

- полный контроль жизненного цикла виртуальных серверов;

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

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

- наличие инструментов для учета и генерации отчетов об активности пользователей и серверов;

- способность работы механизмов аутентификации и авторизации путем подключения дополнений (например, созданы модули для LDAP, Kerberos, авторизации с учетом состояния квот, аутентификация на базе RSA-ключей и т.п.);

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

- поддержка привязки дополнительных атрибутов, ассоциированных с заданной виртуальной сетью (параметры шлюза, DNS), которые будут использованы в контексте указанных виртуальных машин;

- наличие готовых установочных пакетов для различных вариантов ОС GNU/Linux: Red Hat Enterprise Linux, Ubuntu, Debian.

Сравнив средства виртуализации в работах [3] и [4], авторы остановили свой выбор на средстве построения среды облачных вычислений OpenNe-bula и системе виртуализации KVM. В целом KVM является более предпочтительной по результатам тестов производительности подсистемы памяти и ЦП, чем Xen. Кроме того, в Xen могут возникать некоторые сложности с многопоточными программами, что нежелательно. К тому же KVM развивается компанией Red Hat в качестве основного средства виртуализации, поставляемого с Red Hat Enterprise Linux.

Среда облачных вычислений в ИММ УрО РАН

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

Для развертывания экспериментальной среды были выделены три узла кластера Fujitsu-Siemens Computers PRIMERGY RX330 S1 в следующей конфигурации:

- 2 двухъядерных процессора AMD Opteron™ 2218 с тактовой частотой 2,6 ГГц, имеется поддержка аппаратной виртуализации;

- 8 ГБ оперативной памяти;

- жесткий диск Seagate Barracuda ES 250GB Serial ATA II 7200RPM 16MB;

- сетевая карта Broadcom BCM5715 Gigabit Ethernet.

На каждый выделенный узел кластера установлена ОС Scientific Linux версии 6.1 (x86_64). Конфигурация ОС и служб, необходимых для функционирования облачной инфраструктуры, типовая для всех узлов кластера. На жестком диске каждого узла сформирована LVM-группа логических томов vg_node следующего вида:

- том vg_node-lv_root содержит корневой раздел, файловая система - ext4, объем 50 ГБ;

- том vg_node-lv_home содержит раздел /home, файловая система - ext4, объем 170 ГБ;

- том vg_node-lv_swap содержит раздел подкачки, объем 10 ГБ.

Технология LVM позволяет динамически менять размер логических разделов и осуществлять горячее добавление новых томов в систему. Используемая файловая система ext4 является стандартом де-факто для современных дистрибутивов GNU/Linux. На каждом узле кластера подключены RPM-репозитории ELRepo и Fedora EPEL, установлено ПО QEMU, поддерживающее технологию виртуализации KVM, а также libvirt - унифициро-

ванный набор инструментов для работы с виртуальными машинами. Подсистема безопасности SELinux была отключена из-за проблем, возникших при тестовых запусках виртуальных машин на узлах: стандартные политики безопасности (enforcing, targeted) препятствуют функционированию OpenNebula в экспериментальном режиме.

Служба управления облачной инфраструктурой OpenNebula и ее Web-интерфейс Sunstone в экспериментальном режиме запущены на виртуальной машине cf.imm.uran.ru (Cloud Frontend) в среде гипервизора VMware ESXi, работающего под управлением ОС CentOS 6 (x86_64). Конфигурация сервера управляющей машины HP ProLiant DL165 G7 6172:

- 2 12-ядерных процессора AMD Opteron™ 6172 с тактовой частотой 2,1 ГГц (виртуальной машине доступны 3 процессорных ядра);

- 16 Гб оперативной памяти (виртуальной машине доступны 4 ГБ);

- жесткий диск - виртуальной машине предоставлено 10 ГБ дискового пространства;

- сетевая карта HP NC362i Integrated Dual Port Gigabit Server Adapter.

ПО OpenNebula, включающее в себя службу oned и множество вспомогательных сценариев, было скомпилировано вручную и установлено в обособленную директорию /var/lib/one. Служба oned (OpenNebula daemon) и Web-интерфейс Sunstone запускаются при старте системы с реквизитами пользователя oneadmin. Доступ к Web-интерфейсу Sunstone организуется средствами балансировщика нагрузки haproxy.

Хранилище образов виртуальных машин организовано на управляющей машине cf.imm.uran.ru. Двусторонний обмен образами виртуальных машин с узлами кластера осуществляется при помощи механизма SSH (рис. 1), реализованного в стандартной поставке пакета OpenNebula.

В будущем планируется переместить хранилище образов виртуальных машин на сетевую систему хранения данных (NAS), используя файловую систему NFS.

Служба oned способна хранить служебные данные как при помощи встраиваемой СУБД SQLite, так и средствами MySQL - клиент-серверной СУБД. В экспериментальном режиме данные хранятся в БД SQLite. В дальнейшем планируется создать выделенный сервер БД и провести миграцию данных на СУБД MySQL.

Для полноценной эксплуатации облачной инфраструктуры OpenNebula необходимо обеспечить гипервизор виртуальных машин доступом к сетевому интерфейсу типа «мост», что выполняется стандартными средствами Scientific Linux. Таким образом, каждая виртуальная машина обладает «реальным» IP-адресом и имеет доступ к вычислительной сети ИММ УрО РАН наравне с реальными серверами СКЦ (рис. 2).

Инфраструктура OpenNebula не требует установки собственного ПО на рабочие узлы кластера: весь обмен информацией (в том числе и образов виртуальных машин) выполняется исключительно при помощи протокола SSH, для передачи используется механизм SCP. Подразумевается, что управляющая машина способна без пароля подключиться к любому узлу кластера, используя имя пользователя oneadmin с домашней директорией /var/lib/one. Возможность беспарольного неинтерактивного взаимодействия узлов и управляющей машины обеспечена при помощи RSA-ключей, сгенерированных при помощи OpenSSH, входящего в поставку Scientific Linux. В целях безопасности в службе sshd запрещена возможность аутентификации пользователя по паролю. Доступ к узлам кластера также выполняется при помощи собственных RSA-ключей пользователей внутри вычислительной сети ИММ УрО РАН.

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

Мониторинг узлов кластера осуществляется периодическим опросом серверов со стороны управляющей машины. На каждый узел загружаются (и там выполняются) диагностические сценарии, написанные на языках Ruby и Shell. Результаты мониторинга возвращаются путем перенаправления потоков ввода-вывода. Аналогично выполняются все остальные операции на узлах с виртуальными машинами.

Для функционирования OpenNebula необходим интерпретатор Ruby версии не ниже 1.8.7. Как на узлах кластера, так и на управляющей машине установлены Ruby 1.8.7p229 и средство управления gem-пакетами RubyGems 1.8.10.

Система OpenNebula автоматически распределяет нагрузку между узлами кластера, прозрачную миграцию виртуальных машин, выполняет прочие

Рис. 1. Логическое представление облачной инфраструктуры СКЦ ИММ УрО РАН

Управляющий узел

cf.imm.uran.ru

OpenNebula Frontend

1

Сетевой интерфейс

Локальная сеть ИММ УрО РАН

Сетевой интерфейс

Сетевой мост

VMj ) ( VM2 ) ( VMn one1.imm.uran.ru

Сетевой интерфейс

Сетевой мост

VMj 1 I VM2 ) [ VMn one2.imm.uran.ru

Сетевой интерфейс

Сетевой мост

VMj ) (VM) I ^

one3.imm.uran.ru

Серверная ферма

Рис. 2. Физическое представление облачной инфраструктуры СКЦ ИММ УрО РАН

административные функции. При корректной настройке инфраструктуры дальнейшее обслуживание со стороны системного администратора не требуется. Добавление нового узла в серверную ферму OpenNebula проводится в пять этапов:

1) установка ОС Scientific Linux;

2) установка дополнительного ПО (Ruby, QEMU);

3) организация соединения типа «мост»;

4) создание пользователя oneadmin с домашней директорией /var/lib/one и полномочиями запуска виртуальных машин из домашней директории;

5) указание адреса нового узла в административном Web-интерфейсе Sunstone.

В заключение отметим, что в настоящее время в СКЦ ИММ УрО РАН развернута экспериментальная версия облачной инфраструктуры на основе OpenNebula. В дальнейшем планируются работы по следующим направлениям:

- сравнение производительности при использовании хранилища образов на основе SSH/SCP с использованием сетевого хранилища на основе NAS+NFS;

- миграция на клиент-серверную СУБД MySQL (с выделенным сервером MySQL) для повышения надежности облачной инфраструктуры;

- разработка политики SELinux, специфичной для корректного и полноценного функционирования OpenNebula;

- интеграция с Active Directory;

- автоматизация процесса добавления нового узла в серверную ферму OpenNebula;

- запуск PaaS-окружения Cloud Foundry на созданной облачной инфраструктуре;

- апробация и предоставление Web-сервисов, масштабируемых при помощи OpenNebula.

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

Литература

1. Sempolinski P., Thain D. A Comparison and Critique of Eucalyptus, OpenNebula and Nimbus // IEEE International Conference on Cloud Computing Technology and Science. 2010, pp. 417-426. URL: http://www.cse.nd.edu/~ccl/research/papers/ psempoli-cloudcom.pdf (дата обращения: 25.10.2011).

2. Sotomayor B., Montero R.S., Llorente I.M., Foster I., Virtual Infrastructure Management in Private and Hybrid Clouds // IEEE Internet Computing. 2009. Vol. 13, № 5, pp. 14-22.

3. Technical comparison of Linux virtualization technologies URL: http://virt.kernelnewbies.org/TechComparison (дата обращения: 25.10.2011).

4. Gionatan Danti Virtual machines performance comparison: vmware vs virtualbox vs kvm vs xen. 2010. URL: http:// www.ilsistemista.net/index.php/virtualization/1-virtual-machines-performance-comparison.html (дата обращения: 25.10.2011).

References

1. Sempolinski P., Thain D., IEEE Intern. Conf. on Cloud Computing Technology and Science, 2010, pp. 417-426, Available at: http://www.cse.nd.edu/~ccl/research/papers/psempoli-cloudcom. pdf

2. Sotomayor B., Montero R.S., Llorente I.M., Foster I., IEEE Internet Computing, 2009, Vol. 13, no. 5, pp. 14-22.

3. Technical comparison of Linux virtualization technologies, Available at: http://virt.kernelnewbies.org/TechComparison (accessed 25 Oktober 2011).

4. Gionatan Danti Virtual machines performance comparison: vmware vs virtualbox vs kvm vs xen, Available at: http://www. ilsistemista.net/index.php/virtualization/1-virtual-machines-perfor-mance-comparison.html (accessed 25 Oktober 2011).

УДК 519.71

ТЕХНОЛОГИЧЕСКИЕ ПРОЦЕССЫ С ГИБКИМИ СВЯЗЯМИ ТИПА «ЗВЕЗДА» ДЛЯ ИНТЕРАКТИВНЫХ ПРОГРАММНЫХ СИСТЕМ

С.В. Вышенский, к.ф.-м.н., с.н.с.; Ю.Ю. Дубенская, м.н.с.

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

Ключевые слова: технологический процесс, информационная система, граф, гибкие связи, состояния, переходы, мониторинг, открытый код.

WORKFLOW WITH FLEXIBLE TRANSITIONS OF STELLAR TYPE FOR INTERACTIVE PROGRAM SYSTEMS

Vyshensky S. V., Ph.D., Senior Researcher; Dubenskaya YuYu., Junior Researcher (Lomonosov Moscow State University Skobeltsyn Institute of Nuclear Physics, 1/2, Leninskie Gory, Moscow, 119234, Russia,

svysh@pn.sinp. msu. ru, jdubenskaya@pn. sinp. msu. ru) Аbstract. A method of building interactive software systems is proposed, which is based on flexible workflow technology. In these systems a violation of the technological discipline is allowed, which comprise unforeseen transitions between the allowed states. During the evolution of the individual workflow instance (token) it may be needed to change the order of the states, to skip some state or to return again to a state in which the token has already been. These actions can be performed in a special operation mode of the information system. To implement this mode an initial description of workflow (which does not allow for violation of the technological discipline) should be in advance modified the addition of special states and transitions. The method is mainly implemented using standard definition of workflow in a high level language. In this case, from the point of view of the operator, unforeseen transition is barely different from the usual transition, and the operator may not be aware of the fact that the interactive system is based on workflow technology. The flexibility of the system is achieved in the course of its operation, and the operator does not need to be a qualified developer or analyst. The method is presented with an example of the open source software called perl-workflow. The proposed method of implementing unforeseen transitions in workflow is applicable, for example, in monitoring systems. These results extend the range of applicability of information systems based on workflow technology.

Keywords: workflow, information system, graph, flexible routes, states, actions, monitoring, open source.

Управление технологическими процессами (ТП) - workflow - широко используется при разработке информационных систем в качестве промежуточного уровня абстракции, позволяющего отделить логику исполнения процессов от программного кода [1]. Изначально в стандартах по управлению ТП предполагается, что описание ТП

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