Что такое основа рабочего процесса Windows

Обновлено: 21.11.2024

Недостатки Windows Workflow Foundation

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

И этот список можно продолжить. Вот другие проблемы, которые выражают пользователи Workflow Foundation:

В целом Windows Workflow Foundation считается неудобной в использовании. Рассмотрим следующее заявление Кевина Дево о переполнении стека:

Мы унаследовали наполовину завершенный проект от консультанта, который использовал Windows Workflow Foundation в качестве основы. Он был подвержен ошибкам, поврежденным рабочим процессам, которые нельзя было перезапустить, архаичной системе управления версиями, которая требовала полной копии рабочего процесса для любых незначительных изменений, ужасному сгенерированному коду и такому деликатному коду, что с ним приходилось обращаться в детских перчатках. . После 6 месяцев желтых экранов смерти мы полностью отказались от Windows Workflow Foundation и вместо этого использовали XML. Лучшее решение, которое мы когда-либо принимали.

Альтернатива Windows Workflow Foundation

Говорят, лучшие инструменты — это самые простые инструменты. Однако когда дело доходит до развертывания системы рабочих процессов для удовлетворения широкого круга требований к процессам, Windows Workflow Foundation может оказаться не лучшим выбором.

Этот диапазон может включать, но не ограничивается:

  • Создание/изменение схемы рабочего процесса;
  • Маршрутизация документов;
  • Сохранение маршрутов и состояний документов в базе данных;
  • Реализация папок "Входящие\Исходящие" для пользователей;
  • Обновление маршрута документа до новой схемы;
  • Перевод процесса в любое состояние;
  • Пользовательский уровень безопасности.

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

  • Визуальный конструктор HTML5 для проектирования, моделирования, редактирования и визуализации пользовательских рабочих процессов.
  • Управление версиями рабочего процесса с возможностью завершить выполнение старой версии или принудительно запустить новую;
  • Поддержка параллельных рабочих процессов, которая позволяет разделить рабочие процессы на ветви, которые выполняют задачи независимо друг от друга, а затем объединяются;
  • импорт/экспорт XML рабочих процессов для резервного копирования, повторного использования и совместного использования;
  • Поддержка локализации, позволяющая переводить пользовательский интерфейс на несколько языков по вашему выбору;
  • Встроенные таймеры рабочего процесса, которые позволяют устанавливать интервалы или указывать время для выполнения настраиваемых действий и задач рабочего процесса.

И многое другое. Вот сравнительная таблица Workflow Engine и Windows Workflow Foundation:

Заключение

Если вы колеблетесь или уже на грани разочарования, мы приглашаем вас попробовать Workflow Engine. Ознакомиться с полным списком возможностей можно здесь. Наша бесплатная версия предназначена только для некоммерческого использования и имеет следующие ограничения:

Но должны ли компании продолжать использовать Windows Workflow Foundation (WF)? Сейчас самое время подумать, почему вы вообще используете WF, и решить, является ли он по-прежнему лучшим решением для вашей организации.

В этой статье мы ответим на вопросы:

Что происходит с Workflow Foundation?

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

Возможно, эти компромиссы того стоят, и вы, возможно, уже сталкивались с ними. WF не получал обновления функций от Microsoft с 2017 года. Все это время он продолжал работать и будет работать в долгосрочной перспективе.

Для решения каких проблем команды используют WF?

Существуют три основные проблемы, для решения которых компании используют WF:

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

WF мощен, но имеет недостатки. Это решение всех этих проблем, но не идеальное решение ни для одной из них. Если вас не устраивают ограничения WF в любой из этих категорий, стоит рассмотреть некоторые из доступных альтернатив.

Каковы альтернативы WF?

Сохраняйте рабочий процесс, найдите новую структуру

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

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

Примите меры. Организации, заинтересованные в новой платформе, должны начать миграцию, выполнив следующие действия:

  1. Исследуйте и оценивайте различные платформы, исходя из того, насколько хорошо они отвечают потребностям вашей организации.
  2. По возможности протестируйте соответствующие платформы. Узнайте, что думает о них команда и насколько сложным будет перенос.
  3. Обсудите впечатления команды и потенциальные трудности миграции с заинтересованными сторонами, чтобы определить, стоит ли затраченных усилий новая платформа.

Внедрение Low-code или No-code Framework

Средства с малым количеством кода и без кода похожи на традиционные среды рабочего процесса, но предназначены для использования готовых компонентов вместо компонентов с пользовательским кодом. Kissflow и Decisions — это примеры фреймворков, разработанных для не-разработчиков. Теоретически фреймворки с низким кодом и без кода позволяют не разработчикам создавать полные приложения. Но помните об этих моментах при рассмотрении этого решения:

  • При использовании фреймворка с низким или нулевым кодом может потребоваться корректировка ожиданий, поскольку готовые компоненты оставляют намного меньше места для настройки. Думайте об этом как о гамбургере быстрого питания: я могу попросить соленые огурцы и лук, но я не могу решить, какую марку соленых огурцов использовать или точное количество ломтиков лука. Это проще, чем сделать это самостоятельно, но может быть намного менее удовлетворительным, в зависимости от ваших вкусов.
  • Многие фреймворки с минимальным кодом и без кода могут интегрироваться с другими приложениями, от Google Workspace до пользовательских приложений. Но чем больше интеграций требуется, тем сложнее становится приложение. Если вам необходимо выполнить интеграцию с пользовательским приложением, вам могут понадобиться разработчики, которые выполнят интеграцию или обеспечат постоянную поддержку.

Это решение лучше всего подходит для компаний, не предъявляющих особых требований и которым требуется, чтобы все приложение контролировалось не разработчиками. Эти решения отлично подходят для того, чтобы дать возможность неразработчикам создавать простые приложения. Но не ожидайте, что они будут работать как индивидуальные решения. Если ваш бизнес не соответствует обоим этим критериям, возможно, лучше рассмотреть альтернативы.

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

  1. Обсудите компромиссы с командой и заинтересованными сторонами, чтобы решить, подходит ли фреймворк с низким или нулевым кодом.
  2. Изучите доступные платформы и сузьте круг вариантов.
  3. Обсудите возможности выбранных платформ с поставщиками и определите, какая из них лучше всего соответствует потребностям организации.
  4. Если возможно, продемонстрируйте платформу самостоятельно, чтобы оценить удобство использования.

Подождать CoreWF

  • Он считается «экспериментальным» и не готов к использованию в реальных условиях. Но по мере дальнейшего развития это может измениться. На протяжении 2020 года проект постоянно активизировался, и, похоже, он продолжится.
  • В проекте говорится, что «дизайн [GUI] не является частью CoreWF». Хотя вы можете переносить код XAML, созданный с помощью конструктора графического интерфейса пользователя из WF, этого, вероятно, недостаточно для утешения команд, постоянно использующих интерфейс графического интерфейса.

Примите меры. Если вы считаете, что ожидание — лучший вариант для вашей команды, выполните следующие действия, чтобы убедиться, что все готовы:

  1. Обсудите с заинтересованными сторонами преимущества и недостатки отсрочки перехода с WF и оцените, является ли это лучшим планом.
  2. Запланируйте встречу с заинтересованными сторонами, чтобы обсудить, является ли WF лучшим текущим решением, и пересмотреть вопрос о переносе.

Не используйте структуру рабочего процесса; Используйте микросервисы

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

Разработка микросервисов — это когда вы разбиваете свое приложение на отдельные сервисы и разрабатываете каждый из них независимо. Это та же стратегия, что и в WF: вы превращаете каждое бизнес-действие в сервис, а затем объединяете их в один процесс. Имейте в виду следующее при рассмотрении микросервисов:

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

Примите меры. Организации, заинтересованные в замене WF микросервисами, должны выполнить следующие действия:

  1. Обсудите с разработчиками плюсы и минусы удаления рабочего процесса из процесса разработки и определите, стоит ли использовать этот вариант.
  2. Проведите дополнительное исследование микросервисов и узнайте, как ваша организация хотела бы построить проект.
  3. Создайте прототип небольшой части своего приложения на основе предыдущих исследований и сравните результаты с ожиданиями.
  4. Обсудите с заинтересованными сторонами результаты прототипа и разработайте официальный план миграции.

Вывод: у вас есть время принять решение

Хорошая новость о WF заключается в том, что он никуда не денется. У вас будет достаточно времени, чтобы решить, является ли это лучшим решением ваших проблем и будут ли какие-либо альтернативы работать лучше.

  • WF — это адекватное решение многих проблем, но не полное решение любой отдельной проблемы.
  • Существуют другие платформы рабочих процессов, которые могут лучше соответствовать вашим конкретным потребностям. Будет ли это более новая платформа, платформа с низким кодом или ожидание CoreWF, зависит от команды.
  • Для многих команд структура рабочего процесса может не иметь особого смысла. Создание приложения вне рабочего процесса с помощью микросервисов позволяет выбрать лучшее решение для каждой задачи.

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

1. Сохраняйте рабочий процесс, найдите новый фреймворк

При переходе подумайте, почему у вас есть рабочие процессы. Используется ли ваш WF для упрощения изменений в приложении или в равной степени способствует приложению?

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

2. Используйте Low-code или No-code Framework

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

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

3. Дождитесь CoreWF

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

Напоминаю, что WF будет работать примерно до 2030 года. Если вы собираетесь использовать WF в течение длительного времени, вы можете вернуться к CoreWF в будущем и посмотреть, устранены ли недостатки. Мы не рекомендуем планировать таргетинг на CoreWF, но нет причин не следить за ним.

4. Не используйте структуру рабочего процесса; Используйте микросервисы

Разработка микросервисов — наиболее гибкая альтернатива WF. ​​Она отлично подходит для разбиения приложения на отдельные сервисы и разработки каждого из них независимо. Это как в WF: вы превращаете каждое бизнес-действие в сервис, а затем объединяете их в один процесс.

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

Это отличный выбор для команды разработчиков, но микросервисы лишают не-разработчиков возможности самостоятельно вносить изменения.

Привязан к Framework, но не привязан

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

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

Microsoft сообщила, что WF станет краеугольным камнем их будущей платформы сервис-ориентированной архитектуры, анонсированной в октябре 2007 года под кодовым названием Template:Vague . Последовательный рабочий процесс выполняется от начала до конца, при этом механизм рабочего процесса инициирует каждый шаг. Рабочий процесс конечного автомата управляется внешними событиями и взаимодействием с пользователем и просто ограничивает эти события или взаимодействует с ними, поэтому он сохраняет состояние между событиями. Оба типа могут иметь ответвления и циклы.

Содержание

Авторские рабочие процессы

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

Windows Workflow Foundation поддерживается сопутствующим набором расширений для Visual Studio 2005. Эти расширения содержат визуальный конструктор рабочих процессов, который позволяет пользователям разрабатывать рабочие процессы, визуальный отладчик, который позволяет пользователям отлаживать созданный рабочий процесс, и систему проектов. что позволяет пользователю компилировать свои рабочие процессы в Visual Studio 2005. В Visual Studio 2008 функциональность WF включена без установки каких-либо расширений.

Перемещение данных через рабочие процессы

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

Среда выполнения WF

Начиная с домена приложения CLR, будь то служба Windows, консоль, графический интерфейс или веб-приложение.

Службы выполнения WF

Локальные службы среды выполнения WF

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

Вызов местной службы – это многоэтапный процесс:

  • Сначала используйте функцию GetService, чтобы получить ссылку на локальную службу.
  • Затем используйте действие CallExternalMethodActivity для вызова локальной службы.

Общение с рабочими процессами

WF предоставляет несколько способов взаимодействия с запущенным экземпляром рабочего процесса:

    Подход Windows Communication Foundation к обмену рабочими процессами был добавлен в Типы рабочих процессов

Используя основу WF, можно создать три разных типа рабочего процесса:

Читайте также: