Знакомство с Windows Workflow Foundation
Мы продолжаем знакомство с технологиями Visual Studio 2005 и Windows Vista. Сегодня речь пойдет еще об одном нововведении, претендующем на революционность, – это Windows Workflow Foundation (WWF).
Вячеслав Колдовский
koldovsky@mail.ru
Мы продолжаем знакомство с технологиями Visual Studio 2005 и Windows Vista. Сегодня речь пойдет еще об одном нововведении, претендующем на революционность, – это Windows Workflow Foundation (WWF). Полная реализация WWF планируется в следующем поколении среды .NET Framework – WinFX, которая положена в основу Windows Vista, однако она будет доступна и для нынешних операционных систем Microsoft. Текущая бета-версия WWF (msdn.microsoft.com/windowsvista/building/workflow) предназначена для использования с Visual Studio 2005.
После написания первой программы «Hello, world!» в дальнейшем обучении будущих разработчиков обычно применяются блок-схемы, которые очень наглядно отображают логику программ. Но, к сожалению, блок-схемы исчезают сразу после того, как усвоены циклы и условные переходы. А ведь сложные программные конструкции напрочь лишены наглядности, что порождает множество проблем, с которыми вынуждены бороться все участники процесса создания ПО.
Существует, конечно, множество инструментов и методик, поддерживающих «визуализацией» различные этапы разработки, – от конструкторов кода до UML и RAD-сред, даже не предполагающих программирования. Но большинство из них не являются столь простыми и наглядными, как обычные блок-схемы. Нередко, однако, возвращение к старым идеям на более современном уровне дает весьма интересные результаты.
Так, среди значительного числа других нововведений WinFX Microsoft предлагает и свой взгляд на то, каким образом визуальная разработка на основе блок-схем может быть использована при создании приложений. Для этих целей рекомендуется применять некую интерпретацию понятия «workflow», реализованную в WWF.
Определимся с терминологией
Термин «workflow» достаточно распространен в IT-индустрии и воспринимается прежде всего в контексте систем электронного документооборота. Однако, как это часто происходит в том случае, когда вначале формируется рынок, а лишь потом согласовывается терминология, существует несколько различных толкований данного понятия, каждое из которых имеет определенное право на существование. Здесь мы не будем их анализировать, поскольку, как это станет ясно ниже, в случае WWF в «workflow» вкладывается смысл, несколько отличающийся от принятого в бизнес-системах.
В наиболее широком понимании термин workflow означает упорядоченную последовательность действий (или работ), призванных решать какую-либо задачу. В такой трактовке достаточно прозрачно определена суть понятия, однако нет даже намека на ту форму, в которой оно предстанет перед потребителем. Здесь мы вполне можем принять точку зрения, наверное, самой авторитетной в данной области международной организации Workflow Management Coalition (WfMC, wfmc.org). Не вдаваясь в нюансы, отметим, что WfMC предусматривает ряд требований к workflow-системам, включая наличие специального инструментария для определения моделей процессов, «движка», который будет их исполнять, средств для мониторинга, управления и составления отчетности.
При этом, как правило, подразумевается, что инструментарий workflow-моделирования обладает возможностями визуального проектирования, достаточными для создания сложных бизнес-систем фактически без программирования в традиционном понимании (т. е. без написания кода вручную).
Однако если рассматривать программирование в широком смысле – как создание набора инструкций, предусматривающих обратную связь и возможность повторного использования, то станет ясно, что под это определение вполне попадает моделирование любых рабочих процессов, так или иначе укладывающихся в модели workflow. Именно от этого отталкивалась Microsoft, разрабатывая WWF.
Важно понимать, что WWF не является ни реализацией какого-либо стандарта workflow вроде тех, которые определены WfMC, ни инструментом сугубо делового применения. Так что попытки сравнивать WWF с существующими на рынке workflow-систем готовыми бизнес-продуктами лишены всякого смысла, поскольку это универсальная и гибкая платформа, ориентированная прежде всего на визуальное программирование. И поэтому конструирование workflow-диаграмм с помощью WWF в той же мере программирование, в какой и создание блок-схем.
Соответственно, очень важная особенность WWF – универсальность. Поскольку визуальное программирование отличается от традиционных подходов к разработке программных систем только внешне, но никак не своей сутью, то WWF практически равноценна самой платформе .NET Framework 2.0, на основе которой она реализована. Это, впрочем, ни в коей мере не означает, что WWF может полностью заменить традиционные подходы, однако для определенного круга задач (в том числе, пожалуй, и для реализации workflow-систем в обычном понимании) данное решение действительно может оказаться предпочтительным.
Архитектура
Архитектурно Windows Workflow Foundation состоит из нескольких уровней (таблица). На нижнем находится родительский процесс (Host Process). Характерно, что WWF работает не изолированно, а выполняется именно в рамках родительского процесса, который посредством стандартизированных интерфейсов предоставляет набор сервисов, определяющих функциональность WWF. Похожий подход применяется в Microsoft Windows Scripting Host (WSH) для обеспечения доступа к внутренним объектам.
Уровень | Задача |
Workflow Model | Поддержка предопределенных типов моделей, действий (activities) и соответствующего API |
Runtime Layer | Исполнение модели и поддержка управления ее жизненным циклом |
Hosting Layer | Интеграция с родительским процессом, предоставление интерфейсов для ключевых процессов WWF, реализация которых зависит от родительского процесса |
Host Process | Обеспечение объектов и функциональности, которые полностью или частично доступны в WWF |
Взаимодействие с родительским процессом осуществляется посредством родительского уровня (Hosting Layer). Его интерфейсы для ключевых процессов уровня исполнения WWF должны реализовать разработчики, интегрирующие WWF в свои приложения. Microsoft также собирается реализовать Hosting Layer для своих ключевых платформ, в частности ASP.NET 2.0, SQL Server 2005 и Microsoft Office 12, соответственно, вскоре в их рамках можно будет использовать workflow-модели.
Ядром технологии WWF является уровень исполнения (Runtime Layer), который отвечает непосредственно за workflow-моделирование и содержит необходимые для этого службы. Он же управляет жизненным циклом (менеджмент состояний и активация) моделей, что позволяет исполнять значительное количество моделей, не расходуя понапрасну системные ресурсы в том случае, если часть из них находится в режиме ожидания.
На самом верху архитектуры WWF – уровень workflow-модели (Workflow Model Layer). Он отвечает за поддержку различных типов моделей, содержит предопределенные действия (activities) и реализует соответствующий API.
Также WWF включает встроенный визуальный редактор, благодаря которому можно конструировать модели без программирования. Хотя при необходимости они могут быть реализованы исключительно посредством программного кода, поскольку фактически представляют собой обычные классы. Кроме того, поддерживается возможность хранения описания моделей в XML-файлах, что позволит применять разнообразный инструментарий.
Сама технология WWF изначально ориентирована на расширения. Отдельные элементы workflow-модели – действия (activities) – выполнены в виде компонентов, которые могут создаваться сторонними поставщиками с помощью Visual Studio и WWF SDK. Помимо этого, WWF поддерживает динамическое обновление моделей во время исполнения, а также позволяет встраивать редактор моделей в собственные приложения.
Использование на практике
На текущий момент создавать и исполнять workflow-модели можно с помощью соответствующего расширения для Visual Studio 2005, доступного на сайте Microsoft.
|
После установки Visual Studio 2005 Extensions for Windows Workflow Foundation в среде Visual Studio появляется возможность создавать новые проекты на основе WWF |
WWF стандартно поддерживает два типа моделей – последовательные (sequential) и конечные автоматы (state machine). Первые представляют собой набор последовательно исполняемых действий и в наибольшей мере соответствуют классическим блок-схемам. Вторые позволяют моделировать переходы между несколькими предопределенными состояниями, что особенно актуально при конструировании сложных программных систем, например управления бизнес-процессами.
Эти два типа в определенной мере взаимозаменяемы – последовательная модель может быть преобразована в конечный автомат и наоборот. Однако каждый из них в наибольшей степени подходит лишь для определенного типа задач. Например, при большом количестве ветвлений и исключений последовательная модель может оказаться слишком запутанной и потерять наглядность, что сведет на нет все преимущества графического представления.
|
В стандартной поставке WWF идет обширный набор доступных действий для создания моделей разного уровня сложности |
Несмотря на то что стандартно поддерживаются только два типа моделей, разработчики могут самостоятельно создавать дополнительные. Конструирование новых моделей на основе существующих не вызовет больших сложностей даже у относительно неподготовленного пользователя, обладающего лишь общими навыками описания алгоритмов. Для этого предназначен визуальный режим, в котором достаточно выбирать доступные действия (activities) и указывать их свойства и взаимосвязи. Их набор довольно обширен в стандартной поставке и включает возможности управления исполнением, построения циклов, распараллеливания, работу с исключениями, подсоединение к источникам данных, связывание с Web-службами и др. Создание же полностью оригинальных моделей требует весьма профессиональной работы.
Для построения условий система предлагает визуальный конструктор, позволяющий без программирования работать с бинарными операторами. Если же требуется создать более сложное условие, то применяются традиционные возможности одного из языков программирования – на уровне метода класса, реализующего модель.
Несмотря на то что workflow-модели можно создавать и исполнять сами по себе, полностью их потенциал раскрывается только при интеграции с приложением, обеспечивающим объекты для манипуляции. Для того чтобы модель получила доступ к внутреннему устройству родительского процесса, как уже говорилось, необходимо реализовать определенные интерфейсы, описанные в документации к WWF.
Модели также поддерживают режим отладки. Несмотря на определенные проблемы в текущей версии, Microsoft обещает, что будут доступны точки прерывания и пошаговое исполнение как в графическом представлении, так и в виде программного кода.
|
Модели конечных автоматов хорошо подходят для решения бизнес-задач |
Даже такое поверхностное описание позволяет очертить некоторые сферы применения WWF. Данная технология хорошо подходит для решения задач управления бизнес-процессами и документооборотом, поскольку дает возможность наглядно представить их алгоритмику. Это может быть согласование условий контракта и обеспечение его выполнения или принятие заказов и их реализация с учетом индивидуальных особенностей и пожеланий каждого заказчика.
Также WWF хорошо подходит для формализации взаимодействия различных исполняющих устройств, и даже человека и машины. Эта особенность пригодится не только в бизнес-системах, но и в бытовой сфере. К примеру, посредством WWF можно создать некий «конструктор», предназначенный для управления логикой работы составляющих «умного дома» – от включения нагревательных приборов до алгоритма уборки помещений с помощью роботизированного пылесоса.
Последовательные модели в наибольшей степени схожи с обычными блок-схемами |
Не исключено, что WWF найдет применение и в самых обычных приложениях. К примеру, многих пугала необходимость изучать скриптовые языки для того, чтобы автоматизировать часто выполняемые рутинные операции. Наглядность и простота создания моделей в WWF может изменить отношение пользователей к несложному программированию и заметно повысить эффективность их труда.
Одно из первых «показательных» применений WWF будет реализовано в грядущей двенадцатой версии Microsoft Office. До сих пор для организации полноценного корпоративного документооборота с помощью этого пакета приходилось либо применять сторонние продукты, либо инвестировать значительные усилия в разработку решений на базе Exchange и/или SharePoint. Теперь базовые возможности обеспечения документооборота войдут в стандартную поставку Microsoft Office, а создавать новые сценарии движения документов опытные пользователи смогут самостоятельно без привлечения программистов.
Реальные преимущества
Попробуем выделить некоторые достоинства новой технологи.
Во-первых, использование WWF обеспечивает наглядность и прозрачность программной логики. Графическое представление, в отличие от кода, доступно для понимания не только разработчикам, но и другим участникам процесса создания ПО, в том числе, что особенно важно, заказчикам. WWF позволяет гораздо эффективнее по сравнению с альтернативными подходами отделить интерфейс пользователя и бизнес-логику приложений, упрощая коллективную разработку, модификацию решений и их портирование под новые платформы и разные типы клиентских устройств.
Во-вторых, наличие среды исполнения WWF и визуального дизайнера моделей во многих случаях поднимет на качественно новый уровень встроенные средства автоматизации/адаптации приложений. На наш взгляд, наглядное конструирование алгоритмов значительно удобнее и доступнее, чем, к примеру, аналогичные решения на базе скриптов.
В-третьих, WWF становится новым стандартным элементом платформы Windows с унифицированным интерфейсом и едиными правилами применения, что существенно упрощает задачу разработчиков по продвижению продуктов на его основе. Пример показывает сама Microsoft, использующая WWF в будущей версии Microsoft Office.
В-четвертых, следует отметить, что Microsoft заложила в архитектуру WWF очень важную функциональную особенность, которой могут похвастаться далеко не все поставщики нынешних workflow-систем, а именно, возможность динамически изменять выполняющиеся модели.
Перспективы
На наш взгляд, WWF имеет все шансы на успех и признание. Благодаря активной поддержке Microsoft эта технология обещает стать стандартом (на платформе Windows) при решении любых задач, требующих графического представления логики исполнения и гибкой ее модификации. Естественно, WWF не претендует на то, чтобы заменить привычное программирование, но разнообразить и дополнить его сможет вполне.
Не исключено также, что некоторые из существующих поставщиков откажутся от своих частных технологий и перейдут на использование ядра и дизайнера WWF. Это может стать стимулом развития рынков, в том числе и ПО автоматизации документооборота, за счет популяризации и унификации подходов.
Расширяемость платформы подразумевает появление значительного числа компонентов, реализующих действия (activities), которые позволят применять WWF для взаимодействия с широким спектром аппаратно-программных решений – от составляющих «умного дома» до сложных корпоративных платформ. Уже сейчас на официальном сайте WWF (windowsworkflow.net) доступно для загрузки больше десятка различных компонентов от сторонних поставщиков, и это несмотря на то, что сама технология WWF находится в стадии разработки.
Встраивание скриптовых языков совсем не превратило большинство расширяемых программных продуктов в среды разработки, доступные даже домохозяйкам. Возможно, визуальный подход WWF сумеет исправить эту ситуацию. Однако какой бы ни была конечная цель Microsoft, ясно одно – технология WWF займет достойное место в ряду инструментов, которые применяют современные разработчики, и станет серьезным подспорьем в руках опытных пользователей.
Источник: Компьютерное обозрение, 7 февраля 2006
Комментарии 0