ВОЗМОЖНОСТИ СЛУЖБЫ УПРАВЛЕНИЯ
ПОТОКАМИ РАБОТ ПО
МАНИПУЛИРОВАНИЮ
РЕСУРСАМИ РЕПОЗИТОРИЯ ИСИР
А.К. Нестеренко (ВЦ РАН), А.А. Бездушный (МФТИ), Т.М. Сысоев (ВЦ РАН), А.Н. Бездушный (ВЦ РАН)
Введение
За последние 15 лет были разработаны средства, позволяющие не только выполнять конкретные работы, но и управлять их потоками (Workflow). Эти процессы формально специфицируются в компьютерных системах. Потоки работ управляются компьютерной программой, которая назначает задания, принимает их и фиксирует степень их исполнения. Традиционно понятие "рабочий процесс" определяется с позиций офисных работ, работ с документами - передача документа, подписание приказа, подготовка накладной. Но те же самые принципы и понятия встречаются, например, в работе промышленного предприятия - подготовка документов, деталей, станков и рабочего персонала для сборки сложных технологических систем.
С появлением сложных Web-систем, цифровых библиотек, корпоративных порталов, поддерживающих и управляющих большими объемами и потоками информации, сформировалось категория подсистем, называемых системами управления содержанием/контентом Web-систем (WCMS - Web Content Management System). Первые WCMS представляли совокупности web-форм для управления данными - как несвязанных web-форм, так взаимосвязанных web-форм, но c фиксированным в программном коде порядком обработки. Сейчас актуальной становится потребность в более гибкой организации управления потоками работ, в поддержке декларативных форм определения и оперативного изменения потоков работ. WCMS должны управлять созданием и модификацией информационных сильно взаимосвязанных ресурсов произвольных типов. Потоки работ могут быть связаны не только с поддержкой информационных ресурсов, но и с выполнением полностью автономных регламентных процедур системы в ответ на, например, программные обращения, на наступление некоторого события и т.п. Описанию попытки создания такой системы, требованиям к ней, проблемам реализации и применению посвящена эта работа.
Обзор решений
Одним из наиболее важных требований к системам управления потоками работ является следование ряду стандартов. На данный момент на рынке программных продуктов сложилась непростая ситуация[9] со стандартизацией процесса построения систем управления потоками работ.
На данный момент различными разработчиками предложен ряд языков для описания рабочих процессов. К основным стандартам можно отнести следующие:
Все перечисленные спецификации имеют свои характерные особенности, определяющие преимущества в функциональности основанного на их базе решения. Пока стандартизация workflow-систем носит больше теоретический, чем практический характер.
Спецификация XPDL[2], предложенная Workflow Management Coalition (WfMC) [1], представляет собой формальную модель для описания рабочих процессов, относящихся к любым сферам деятельности.
The Web Services Flow Language[7], разработанный компанией IBM, представляет собой XML-язык, описывающий композицию произвольного типа Web-служб в рамках одной модели потоков (Flow Model). Данная композиция описывается последовательностью точек доступа к функциям, предоставляемым различными службами. Порядок запуска сервисов определяется с помощью управляющих потоков и потоков данных между Web-службами. Flow Model предназначена для моделирования бизнес-процессов и потоков работ, основанных на использовании различных Web-сервисов.
В отличие от графовых моделей XPDL и WSFL спецификации BPML[5] и XLANG[6], предложенные Business Process Management Initiative и корпорацией Microsoft соответственно, являющиеся родственными стандартами, реализуют блочную модель потоков работ, приближенную к блочной структуре языков программирования. BPML охватывает наиболее широкий спектр характерных особенностей моделей рабочих процессов данного типа, представляет собой абстрактную модель и XML-язык для описания рабочих процессов. В качестве исполнителей заданий потока работ в модели BPML выступают различного рода Web-сервисы. Для описания сервиса и всех услуг, предоставляемых им потребителю, используется спецификация WSDL (Web Services Description Language). Общение с такими службами может осуществляться, например, посредством протокола SOAP (Simple Object Access Protocol).
Проведенный сравнительный анализ двух видов моделей (блочных и графовых) на примере их основных представителей (XPDL и BPML) с точки зрения организации в них основных конструкций, определяющих модель потоков работ, показал, что все основополагающие конструкции блочной модели BPML могут быть выражены через их прямые аналоги модели потоков работ XPDL. Между тем спецификация XPDL обладает рядом очевидных преимуществ.
На основании проведенного анализа за базовый стандарт описания модели рабочих процессов по редактированию ресурсов репозитория ИСИР выбрана спецификация XML Process Definition Language (XPDL) ввиду наиболее полного соответствия требованиям к функциональности создаваемого решения.
Следование каноническим спецификациям и стандартам дает ряд очевидных преимуществ как в случае систем управления потоками работ, так и в случае других практических решений:
Таким образом, следование ряду стандартов позволяет создавать автономные, открытые workflow-системы, что, безусловно, расширяет область и способы их применения для моделирования различных рабочих процессов.
Определения и общие требования к функциональности
В соответствии со спецификацией XPDL каждый поток работ разбивается на следующий набор взаимодействующих между собой компонентов: (рис. 1)Рис. 1. Компоненты модели XPDL.
Стандарт WfMC [1] определяет три фундаментальных понятий - Workflow, Workflow Management и Workflow Management System:
Системы управления потоками работ обеспечивают процедурную автоматизацию делового процесса, управляют последовательностью действий работника с ресурсами, связанными с различными шагами деятельности. Индивидуальный деловой процесс может иметь время жизни в пределах от нескольких минут до нескольких дней (или даже месяцев или лет) в зависимости от его сложности и продолжительности различных действий. На самом высоком уровне все workflow системы могут быть характеризованы как системы, обеспечивающие поддержку в трех функциональных областях:
Следующий рисунок иллюстрирует указанные выше основные характеристики workflow-систем и отношений между этими основными функциями:
Рис. 2. Характерные функциональные уровни системы управления потоками работ.
Рассмотрим назначение указанных архитектурных уровней системы управления потоками работ:
Ниже (рис. 3) приведён набор требований к функциональности workflow-систем [1]:
Рис. 3. Функциональность, требуемая от систем управления потоками работ.
Выделяют следующие функциональные области, адресованные Workflow системам:
Архитектура службы управления потоками работ
Поскольку Информационный Web-портал РАН является системой, предоставляющей конечному пользователю полную оперативную информацию о произвольной сложности ресурсах РАН, он должен обладать гибкими средствами для поддержания актуальности имеющихся данных: быстрой пакетной загрузки больших объемов информации и автоматизированного управления потоками работ по созданию и редактированию атрибутов существующих в системе ресурсов. XML и RDF загрузка решает задачу о внесении в базу данных больших объемов информации. Редактирование и создание отдельных ресурсов с помощью форм требует наличия системы, управляющей декларируемыми потоками работ пользователей. Даже после пакетной загрузки требуется участие администраторов данных, отвечающих на запросы системы по нарушениям форматов, разрешению неоднозначности, выявлению дубликатов, которое также должно осуществляться в рамках ролевых, контролируемых потоков работ.
На базе перечисленных выше требований, была создана служба управления потоками работ по редактированию ресурсов Информационного Web-портала РАН [8], ядро которого составляет система ИСИР РАН [3], новая версия которой использует платформу Java и ряд opensource решений [10-12]. Данный сервис использует службу объектно-реляционного отображения, предоставляемую новой версией ИСИР, для хранения объектной модели рабочих процессов в базе данных, а также службу аутентификации и управления пользовательскими правами доступа к объектам процессов. Для декларативного описания новых типов потоков работ используется часть спецификации XPDL, обеспечивающая необходимую функциональность. Пользовательские интерфейсы системы управления потоками работ построены на базе Java-технологий ИСИР, автоматизирующих процесс построения Web-форм для редактирования ресурсов. Рассмотрим принципы построения и работу сервиса.
Общая объектная модель процесса представлена на рис. 4:
Рис. 4. Объектная модель сервиса.
Рабочий процесс (WorkflowProcess)
Объект WorkflowProcess представляет собой описание конкретного рабочего процесса. Он имеет ряд атрибутов, задающих текстовые описания процесса, набор ресурсов, для редактирования которых он предназначен, пользователей, имеющих права на создание и управление процессами данного типа, приложение, используемого для выполнения его заданий.
Маршрут процесса представляет собой направленный граф, узлами которого являются объекты Activity (задание пользователя), а дугами - объекты Transition (переход между заданиями). Процесс может иметь только одно начальное задание и несколько завершающих. Переход по маршруту может осуществляться к одному из следующих в соответствии с декларацией процесса заданий или к любому из предыдущих (включая начальное). В каждый момент времени может существовать не более одного "активного" пользовательского задания для данного процесса. Все остальные задания (узлы маршрута) должны иметь статус "неактивно" или "завершено".
Процесс может находиться в одном из трех состояний: "активен", "неактивен" или "завершен". Если процесс находится в "активном" состоянии, его текущее "активное" задание доступно исполнителям. В "неактивном" и "завершенном" состоянии никакие задания процесса не видны его исполнителям. Помимо этого, статус процесса влияет на автоматическое управление датами создания и завершения процесса. Управление статусами процесса выполняется системой или администратором через соответствующие Web-интерфейсы. "Активное" состояние процесса разбивается на два дополнительных состояния: "активен и просрочен" и "активен и не просрочен". Просроченным процессом считается любой процесс, активное задание которого не укладывается в отведенные для него временные рамки.
В роли редактируемых с помощью данного процесса ресурсов могут использоваться произвольные хранимые объекты "ядра" портала. Любой тип процесса может применяться как к произвольным объектам системы, так и к выделенному набору типов ресурсов, для которых должно существовать более специфичное описание потоков работ.
Задание процесса Activity является точкой маршрута процесса, в которой осуществляются работы по изменению содержания ресурса. На каждое задание накладываются строгие временные рамки, представленные тремя датами: дата постановки (активации) задания, дата крайнего срока исполнения задания, дата фактического завершения выполнения задания.
Управление всеми перечисленными датами может выполняться как в автоматическом режиме (системой) при переходах между заданиями, так и администратором процесса.
В XML-декларации задания имеется ссылка на приложение, которое предоставляет пользователю визуальные интерфейсы для выполнения этого задания. В соответствии со спецификацией XPDL информация о типе конкретного приложения не включается в описание процесса. Задание должно знать только о том, куда направить пользователя для редактирования ресурса; весь процесс редактирования контролируется самим приложением. В существующем применении данной службы для управления потоками работ по созданию новых ресурсов Информационного Web-портала РАН для модификации атрибутов ресурсов в узлах маршрута используется служба "ядра" для управления формами редактирования ресурсов и её понятие wizard-а. Wizard представляет собой группу форм, служащую для редактирования одного или нескольких ресурсов, отличительной чертой которой является назначение прав на отдельные формы (это отражается и в навигационном меню wizard-а). Это позволяет организовать более гибкое управление ходом выполнения потоков работ.
Каждому заданию в декларации процесса назначается один или более исполнителей. Исполнители имеют права на чтение информации о задании, запуск приложения для выполнения задания и переход к следующему заданию в соответствии с правами доступа на переходы. В роли исполнителя задания может выступать отдельно взятый пользователь или группа пользователей (это декларируется в XML-описании процесса). При определении пользователей и групп, а также при назначении прав на объекты процесса используются механизмы и сервисы, предоставляемые "ядром".
Как и в случае всего процесса, каждое из его заданий может иметь следующий набор состояний: "активно" ("просрочено" или "не просрочено"), "неактивно" или "завершено". Управление статусами заданий выполняется либо системой, либо администратором процесса.
Переход между заданиями (Transition)
Направленные дуги переходов между заданиями маршрута процесса представлены объектами Transition. Для перехода существует условное понятие направления ("прямое" или "обратное"), которое влияет на управление характерными датами заданий, между которым осуществляется переход. При переходе от одного задания к другому системой выполняется следующая последовательность действий:
На все переходы между заданиями (так же как и на сами задания) назначаются права доступа. При отсутствии явно указанных исполнителей конкретного перехода, он становится доступен всем участникам процесса, имеющим доступ к заданию, с которого осуществляется этот переход.
Пример определения рабочего процесса
Структура XML-документа для декларации процессов построена в соответствии со спецификацией XPDL, но является сокращенной по сравнению со своим прототипом ввиду применения в более конкретных областях, а значит и с более ограниченной функциональностью. Эта необходимая часть структуры XPDL-описания выбиралась с таким расчетом, чтобы поддержать всю функциональность, требуемую от системы управления потоками работ на данном этапе развития Java-проекта, а в дальнейшем (возможно, с некоторыми дополнениями) и для применения в других системах, использующих понятие рабочих процессов - таких как, например, системы электронного документооборота. В виду применения в более конкретной области построения Web-порталов к XML-декларации были добавлены некоторые дополнительные элементы.
Приведем пример описания процесса, реализующего простейшую схему: менеджер, создав процесс, передает управление процессом автору, который производит наполнение полей создаваемого ресурса. Затем редактор проверяет корректность работы автора и либо передает ресурс автору на доработку, либо менеджеру на утверждение. Менеджер может либо завершить процесс, либо передать его автору или редактору на доработку. Так же он может сам принять участие в редактировании и при этом сразу утвердить ресурс, минуя последний этап контроля.
<Package>
<Participants>
<Participant Id="P1" URI="urn:hdl:1016.1/kernel/Group#MANAGERS">
<ParticipantType Type="GROUP"/>
</Participant>
<Participant Id="P2" URI="urn:hdl:1016.1/kernel/Group#AUTHORS">
<ParticipantType Type="GROUP"/>
</Participant>
<Participant Id="P3" URI="urn:hdl:1016.1/kernel/Group#EDITORS">
<ParticipantType Type="GROUP"/>
</Participant>
</Participants>
<Resources>
<Resource Id="R1"> <Class URI="urn:hdl:1016.1/core/Person"/>
</Resource>
<Resource Id="R2"> <Class URI="urn:hdl:1016.1/core/Project"/>
</Resource>
<Resource Id="R3"> <Class URI="urn:hdl:1016.1/core/Publication"/>
</Resource>
<Resource Id="R4"> <Class URI="urn:hdl:1016.1/core/Organization"/>
</Resource>
<Resource Id="R5"> <Class URI="urn:hdl:1016.1/core/Department"/>
</Resource>
</Resources>
<WorkflowProcess Id="wfp-1">
<ProcessHeader>
<Title lang="ru">Трех-ролевой процесс.</Title>
<Title lang="en">Three-role process.</Title>
<Description lang="ru">Данный процесс реализует</Description>
<Description lang="en">This process implemnts</Description>
<Appliction>
ru.ccas.isir.workflow.ThreeStepProcessApplication
</Application>
<Creator>P1</Creator>
<Manager>P1</Manager>
<Object>R1</Object> <Object>R2</Object>
<Object>R3</Object> <Object>R4</Object>
<Object>R5</Object>
</ProcessHeader>
<Activities>
<Activity Id="activity-1" First="true">
<Description lang="ru">Создание ресурса.</Description>
<Description lang="en">Resource creation.</Description>
<Duration>00:01:00</Duration>
<Tool>doCreate</Tool>
<Performer>P2</Performer>
</Activity>
<Activity Id="activity-2">
<Description lang="ru">Редактирование ресурса.</Description>
<Description lang="en">Resource editing.</Description>
<Duration>00:01:00</Duration>
<Tool>doEdit</Tool>
<Performer>P1</Performer>
<Performer>P3</Performer>
</Activity>
<Activity Id="activity-3">
<Description lang="ru">
Проверка корректности создания ресурса.
</Description>
<Description lang="en">Resource creation control.</Description>
<Duration>00:30:00</Duration>
<Tool>doControl</Tool>
<Performer>P1</Performer>
</Activity>
</Activities>
<Transitions>
<Transition Id="Trans-1" From="activity-1" To="activity-2" Direction="forward">
<Description lang="ru">На редактирование</Description>
<Description lang="en">For editing</Description>
</Transition>
<Transition Id="Trans-2" From="activity-2" To="activity-1" Direction="backward">
<Description lang="ru">На создание</Description>
<Description lang="en">For creating</Description>
</Transition>
<Transition Id="Trans-3" From="activity-2" To="activity-3" Direction="forward">
<Description lang="ru">На контроль</Description>
<Description lang="en">For control</Description>
</Transition>
<Transition Id="Trans-4" From="activity-2" Direction="forward">
<Description lang="ru">Утвердить</Description>
<Description lang="en">Confirm</Description>
<Performer>P1</Performer>
</Transition>
<Transition Id="Trans-5" From="activity-3" To="activity-1" Direction="backward">
<Description lang="ru">На создание</Description>
<Description lang="en">For creating</Description>
</Transition>
<Transition Id="Trans-6" From="activity-3" To="activity-2" Direction="backward">
<Description lang="ru">На редактирование</Description>
<Description lang="en">For editing</Description>
</Transition>
<Transition Id="Trans-7" From="activity-3" Direction="forward">
<Description lang="ru">Утвердить</Description>
<Description lang="en">Confirm</Description>
</Transition>
</Transitions>
</WorkflowProcess>
</ Package >
К отличительным особенностям описанного процесса можно отнести следующее:
Реализованная модель рабочих процессов предполагает наличие трех предопределенных пользовательских ролей:
Первые две роли жестко декларируются в XML-описании процесса и не могут быть назначены (или сняты) у пользователя в ходе его выполнения. Последняя роль может динамически назначаться (сниматься) менеджером процесса с помощью Web-интерфейса.
Возможность применения в системах документооборота
В данный момент широко распространены системы электронного документооборота, предназначенные для применения в различных областях: банковская сфера, документооборот промышленного предприятия, учебных заведении и т.д. Поскольку "ядром" подобных систем является система управления потоками работ, снабженная некоторыми специфичными для конкретной предметной области понятиями и функциональностью, то возникает естественный вопрос о степени применимости имеющегося решения для использования в управлении потоками работ с документами.
С этой целью был проведен анализ соответствующих требований к системам, подготовлено сопоставление основных понятий, систем электронного документооборота и имеющейся реализации системы управления потоками работ. Приведенный анализ показывал, что применение службы управления потоками работ в системах электронного документооборота требует поддержки некоторых дополнительных возможностей, специфичных для этой области, например, фиксация операционных состояний документа. Кроме того, ряд проблем обусловлен неполнотой текущей реализации, в которой еще не поддерживаются некоторые ключевые моменты, например, полноценное ведение версий, поддержка транзакций.
Практичность имеющегося на текущий момент решения, выявленные дополнительные потребности свидетельствуют о необходимости дальнейшего развития системы управления потоками работ, реализации на её основе простой системы электронного документооборота, которая будет востребована в WCMS.
Текущая реализация
Проектирование и разработка системы управления потоками работ по манипулированию ресурсами репозитория ИСИР разбита на несколько этапов. К данному моменту (частично или полностью) поддержана следующая функциональность:
1) Выбор необходимого подмножества конструкции XPDL.
Поддержаны основные структуры XPDL, необходимые для реализации рабочих процессов по созданию и редактированию ресурсов репозитория ИСИР. Пока нет поддержки составных заданий и подпроцессов, а так же ряда других второстепенных элементов. Добавлены некоторые дополнительные элементы и атрибуты для задания временных ограничений, локализованных наименований и т.д. Не реализована поддержка пакетов описаний с возможностью их экспорта и импорта.
2) Создание основных компонентов объектной модели процесса в соответствии со спецификацией XPDL.
Реализованы Java-классы, соответствующие объектам Transition, WorkflowProcess и Activity метамодели XPDL с необходимым набором атрибутов и некоторыми методами, расширяющими их функциональность. Данная модель состоит из хранимых в базе данных объектов, что обеспечивается объектно-реляционным отображением, базирующемся на службах "ядра". В качестве участников (Participant) процесса сейчас выступают пользователи "ядра" системы. Внешние приложения пока представлены специальным Java-интерфейсом и обязаны являться Java-классами. На данный момент не поддержаны некоторые второстепенные компоненты объектной модели, такие как хранилище ресурсов (Resources Repository), системные данные и переменные окружения (System and Environment Data) и т.д. В текущей версии переходы между заданиями являются безусловными.
3) Разработка и реализация компонента системы, создающего хранимые модели процессов по их XPDL-описанию.
Реализован разбор XPDL-документов с помощью DOM-модели и использования XPath и создание хранимой в базе данных объектной модели процесса с инициализированными начальными значениями атрибутов. При создании объектов происходит назначение прав доступа к ним в соответствии с XPDL-декларацией и с использованием служб "ядра", управляющих проверкой и назначением прав доступа на хранимые объекты.
4) Разработка подсистемы создания и управления ходом выполняемого процесса.
Реализован набор функций по созданию и управлению процессами по ходу их выполнения, а также по получению информации о заданиях и процессах. К основным из них можно отнести:
5) Реализация подсистемы контроля и протоколирования.
Контроль выполнения заданий осуществляется посредством отведения на них временных рамок. Предусмотрены средства для уведомления исполнителей и системных администраторов о "просроченных" заданиях. Назначение временных рамок на процесс в целом пока отсутствует. Элемент протокола управляющих операций (переходов между заданиями) сейчас представлен специальным хранимым объектом TransitionHistoryItem, который сохраняет в себе основную информацию о совершенном переходе. Протоколирование других типов операций пока не поддержано. Информация о сроках фактического выполнения задания, выполнившем его пользователе сейчас хранится непосредственно в атрибутах самого объекта Activity. Поддержка других физических носителей для ведения системных протоколов, отличных от реляционной базы данных, пока не предусмотрена.
6) Интеграция с базовыми службами управления доступом к хранимым объектам и аутентификацией пользователей.
На данный момент все компоненты хранимой модели рабочего процесса защищены от несанкционированного доступа посредством базовых служб ИСИР [10]. При этом в системе выделено несколько предопределенных пользовательских ролей, назначаемых участникам процесса в XPDL-описании. Для аутентификации пользователей при входе в систему используется сервис аутентификации ядра ИСИР.
7) Разработка Web-интерфейсов для создания и управления потоками работ, а также для администрирования системы.
Реализованы управляющие Web-интерфейсы службы управления потоками работ на базе сервиса, автоматизирующего процесс построения форм редактирования и страниц просмотра атрибутов хранимых объектов с помощью технологии JSP-шаблонов. Помимо этого на базе этой же службы реализованы Web-приложения (wizard-ы) для редактирования ресурсов репозитория ИСИР - внешние приложения, использующиеся службой управления потоками работ для выполнения заданий процессов. Работа сервиса продемонстрирована на примере описания потоков работ двух различных типов.
Следующие шаги
К ближайшим шагам по дальнейшей разработке и модернизации компонентов системы можно отнести следующие:
К задачам второстепенной важности можно отнести поддержку возможности экспорта XPDL-описаний с предварительным преобразованием к другим существующим стандартам декларации потоков работ и реализацию распределенной системы управления рабочими процессами.
Заключение
В наше время происходит стремительный рост числа информационных Web-порталов и цифровых библиотек, в которых все большее и большее применение находят автоматизированные систем управления потоками работ. С их помощью становится возможным увеличение качества и объемов выполняемых работ по манипулированию информационным наполнением и сервисами Web-порталов и цифровых библиотек.
Поддержка и следование службой управления рабочими процессами по манипулированию ресурсами репозитория ИСИР ряду соответствующих стандартов делает возможным её применение в системах управления контентом Web-порталов, системах электронного документооборота и других сервисах, автоматизирующих управление потоками работ, распределенных между разнообразными участниками производственных процессов. Широчайшая область применения служб подобного типа дает не менее широкие предпосылки к дальнейшему развитию и модернизации данного проекта.
Литература