Workflow - это... Описание, применение, функции

WorkFlow – это рабочий процесс (WF), представляющий собой набор технологий, включенных в PowerShell и доступных на любом компьютере под управлением Windows 7/8, Server 2008/ 2008 R2/ 2012. Это особый вид сценария PowerShell, который очень похож на функцию. Однако при запуске он преобразует рабочий процесс в код Windows Workflow Foundation (WWF) и передает для выполнения, после чего его содержимое будет отличаться от скрипта.

Основа рабочих процессов

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

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

Использование Net Framework

Основа WorkFlow – это платформа, основанная на .Net Framework, для создания рабочих процессов. Это не приложение или серверный продукт, ПО включен в качестве компонента .Net 3.0 framework.

Некоторые из основных возможностей WW перечислены ниже:

  1. Визуальное представление процесса.
  2. Динамическое изменение во время выполнения.
  3. Длительность функционирования.

Существует два основных типа WW:

  1. Последовательные, используются для четко определенных процессов.
  2. Конечного автомата, организованы как диаграммы конечного автомата, обычно используемые для WW с оперативным взаимодействием, включая Workflow-перевод.

WW могут быть построены декларативно с использованием только разметки, или только кода, или их комбинации. После разработки WW его можно разместить в любом приложении, которое загружает среду выполнения, например Windows Forms, службы Windows, веб-сайты ASP.Net и веб-службы.

Операции и службы

Операции WorkFlow – это рабочие процессы, состоящие из одной или нескольких операций, являющихся строительными блоками WW. Набор готовых действий предоставляется разработчикам, также можно создавать свои собственные. Службы - механизм выполнения WW с использованием собственных функций при выполнении экземпляра. Можно использовать службы в WW Foundation, настроить доступные службы или создать собственные. WW в реальной жизни могут иметь длительный и непредсказуемый срок выполнения. Windows WW Foundation обрабатывает все операции и может при необходимости сохранять рабочие процессы.

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

Проект с открытым исходным кодом Designer

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

Существует 3 типа рабочих процессов, которые используют в соответствии с требованиями бизнес-кейса, их можно использовать вместе в смешанном режиме, а также возможна группировка WF/Activity:

  1. Последовательный WW - простая линейная логика.
  2. Блок-схема WW - очень интуитивно понятная логика блок-схем.
  3. WW конечного автомата - мощный, переходы состояний, события, триггеры.

WW можно создавать визуально, программно и с помощью сценариев PowerShell:

  1. Создание WW - Visual Studio.
  2. Создание WW – Код.
  3. Создание WW - Powershell Azure.

Сериализация выполняется с помощью Xaml, что делает WW очень гибкими:

  1. Сериализация WW Xml.
  2. Сериализация WW - Xaml Code.
  3. Сериализация WW - Powershell Visual Xaml.

В то же время сильная зависимость WF от Xaml является одним из основных препятствий для переноса WW Foundation в .Net Core.

Встроенные библиотеки

Workflow Foundation предлагает встроенные библиотеки действий: поток управления, конечный автомат, блок-схема, обмен сообщениями, сбор и обработка ошибок, powershell и другие. Число и тип сценариев использования, которые могут быть рассмотрены с помощью WW, могут быть значительно расширены с помощью пользовательских действий, можно создавать свои собственные библиотеки и упаковывать существующие API-интерфейсы сторонних поставщиков для интеграции с WF. Существует 3 варианта размещения и запуска рабочих процессов, каждый из которых подходит для конкретного варианта использования:

  1. WorkflowInvoker, документация и образцы, подходит для простых сценариев и недолговечных WW, не обеспечивает хостинг, закладки, контроль экземпляра, постоянство.
  2. Приложение WW, документация и образцы, один экземпляр WF, возможна загрузка/выгрузка WF, хороший выбор для длительных процессов, обеспечивает хостинг, закладки, контроль экземпляра, постоянство.
  3. WorkflowServices, документация и образцы, несколько экземпляров, хороших для сервис-ориентированных решений, обеспечивает хостинг (WorkflowServiceHost), сервис обмена сообщениями, закладки, контроль экземпляра, постоянство.
  4. WF - менеджер рабочего процесса.

Основной уровень Sharepoint

Workflow Manager является очень сложным компонентом Foundation и основным уровнем Sharepoint. Его применяют в пользовательских решениях и в Rehosted WF Designer. Он предлагает много полезного: REST Endpoint & Client API, Multi-tenancy (области) и масштабирование, управление хранилищем Базы Данных, отслеживание и мониторинг, управление экземплярами, полностью декларативный авторинг.

Тем не менее развертывание не является легким при выполнении с помощью пользовательских установщиков, и оно навязывает решению реализацию версий, экземпляров, хранилищ данных. Журнал результатов выполнения Workflow Foundation предлагает высокий уровень прозрачности в отношении логики процесса. Пользовательское отслеживание участников легко внедрить и адаптировать конкретному варианту использования. Метод Track вызывается всякий раз, когда рабочий процесс генерирует Tracking Record, содержащий данные выполнения WF: журналы и аналитические данные.

Стандартная модель SwTracking Participant является хорошей отправной точкой для реализации отслеживания WW. Функция Persistency, ключевая для длительных рабочих процессов, доступна сразу после установки в WF, если будут использованы доступные хранилища данных, Workflow Identity и действия для сохранения. Помимо включения новых сценариев, эта функция также помогает масштабировать ресурсы по вертикали, когда есть WW в качестве модели сервиса, и выполняет много рабочих процессов параллельно на одном и том же сервере/VM:

  1. состояние WF будет удалено из памяти до следующего шага или триггера;
  2. восстанавливает его из хранилища данных постоянства
  3. возобновляет процесс выполнения.

Автоматизация задач в iOS Apple

Workflow является самым мощным приложением, которое используется в iOS Apple. Apple использует WF, мощный инструмент автоматизации, предназначенный для ускорения повседневных задач. В Workflow IOS есть множество триггеров и действий, которые можно установить внутри приложения и затем выполнить сверху вниз простым нажатием кнопки. Более того, поскольку оно было разработано Apple, оно может получить доступ ко множеству системных утилит. Используя iOS Apple, можно быстро получить самые популярные новости, например из Apple News, или создать коллаж, используя некоторые из последних фотографий. Для того чтобы максимально использовать ПО, его применяют для автоматизации ежедневных задач.

Перед началом автоматизации задачи загружают систему Workflow из App Store, запускают его и нажимают вкладку «Мои рабочие процессы » или вкладку «Галерея», если нужно использовать предварительно выполненное действие. В правом верхнем углу выбирают «Создать рабочий процесс» и один из четырех WW.

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

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

PowerShell. Сценарии

Сценарии Workflow PowerShell (PS) широко используются, многие администраторы Windows знакомы с ними. Рабочий процесс и сценарий похожи - каждый состоит из серии программных шагов или действий. PS может взаимодействовать с ОС Windows, а также с некоторыми серверными приложениями на низком уровне. Это позволяет администратору написать практически любую задачу, какую только можно вообразить. Но сценарии PS накладываются некоторые ограничения, ссылки на .NET могут помочь преодолеть эти ограничения. Например, .NET может создавать графические интерфейсы для них или выполнять математические операции, не поддерживаемые в PowerShell.

Рабочие процессы работают в сочетании с Windows Workflow Foundation (WWF), который является частью .NET Framework. WWF включает в себя API и механизм процессов для создания. Подобно сценариям, WW состоят из серии действий, каждое из которых выполняет определенную задачу. Администраторы могут объединить несколько действий, чтобы создать сложный рабочий процесс PS.

Эти действия моделируются как действия .NET. Framework содержит библиотеку часто используемых действий для создания рабочих процессов. Поскольку сценарии PS используют расширенные возможности .NET Framework, они очень мощные и привязаны к процессу ОС. Например, когда открывают окно PS и запускают его сценарий, это окно привязывается к процессу ОС, который становится пространством выполнения. По сути, окно PSl является изолированной средой.

Платформа для работы и обмена

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

Существует несколько способов создания WW в SharePoint:

  1. Без рабочего процесса - если нужно простое одобрение или какое-либо уведомление, то можно просто использовать возможность оповещений в SharePoint вместе с некоторыми столбцами метаданных.
  2. Функция подтверждения контента - использование встроенной функции одобрения контента. Она допускает односторонние утверждения контента, но можно выполнять работу во многих простых сценариях утверждения.
  3. Готовые рабочие процессы - доступно несколько готовых (встроенных) рабочих процессов, которые позволяют создавать более сложные конфигурации.
  4. SharePoint Designer - это бесплатный инструмент, доступный от Microsoft, который создает более сложные рабочие процессы с параллельным и многоступенчатым последовательным одобрением. Особенность SPD заключается в том, что может потребоваться некоторое время, чтобы ознакомиться с тем, как он работает, а сам инструмент иногда может быть довольно сложным.
  5. Microsoft Flow - облачный продукт, который интегрируется с SharePoint и многими другими приложениями.
  6. Сторонние инструменты WW, которые можно интегрировать с SharePoint.

Виды готовых процессов:

  1. WW утверждения.
  2. WW сбора отзывов.
  3. Сбор подписей Workflow.
  4. WW с тремя состояниями.

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

Преимущества и недостатки

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

  1. Разные источники данных, в основном базы данных, являющихся частью WW приложения.
  2. Периодически изменяющаяся логика приложения, в которой изменяются несколько шагов в WW.
  3. Изолированные выходные данные (разветвленная схема), которые требуют сложной логики.
  4. Пакетные входы, которые являются частью начального WW и имеют неопределенные временные рамки.
  5. Максимальная производительность и гибкость приложений в отношении совместимости.

Преимущества WW:

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

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

Workflow Foundation 3 BizTalk Server 2006 WF был представлен в 2006 году с .Net Framework версии 3.0, и Visual Studio. Он также был интегрирован с BizTalk Server 2006 R2 через перехватчики и расширения BAM (btsSend, bts Receive). Впоследствии, начиная с 2007 года, разработка WF была в основном согласована с дорожной картой Microsoft Sharepoint.

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

Комментарии