Что представляет собой Windows PowerShell Workflow?

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

Windows PowerShell Workflow устанавливается совместно с Windows Server 2012 и Windows 8. Он также доступен для Windows 7, Windows Server 2008 и Windows Server 2008 R2. Для пуска рабочего процесса непременно нужна одна из этих ОС. Но адресатом рабочего процесса, т. е. системой, в который запускаются задания, может быть неважно какая версия Windows, зависимо от того, какое конкретно задание вы пытаетесь выполнить.

При написании рабочих процессов употребляется более либо наименее стандартный синтаксис Windows PowerShell. Но существует несколько несовместимостей рабочих процессов и обычных сценариев Windows PowerShell. Windows PowerShell Workflow интенсивно употребляет функции удаленного выполнения (remoting) Windows PowerShell. (Ознакомьтесь с моим бесплатным управлением « Secrets of PowerShell Remoting», если вам необходимо обучение основам удаленного выполнения либо советы по настройке.)

Как работает рабочий процесс

Заглянув вовнутрь (а в следующих статьях этой серии мы туда заглянем и глубже), вы обнаружите, что рабочий процесс Windows PowerShell, по сути, производится не Windows PowerShell. Заместо этого, Windows PowerShell преобразовывает ваш сценарий в XAML и передает его Windows Workflow Foundation (WWF), являющейся частью Microsoft .NET Framework. WWF воспринимает XAML-данные и уже по-настоящему делает процесс.

То, что рабочий процесс производится WWF, а не Windows PowerShell, дает кое-какие достойные внимания способности и заносит не так не достаточно сложностей. К примеру, в WWF предусмотрены контрольные точки для отслеживания хода рабочего процесса. Потому, если компьютер, на котором производится рабочий процесс, по любым причинам окончит работу (к примеру, его выключат), то после повторного пуска компьютера выполнение процесса продолжится с того места, на котором оно тормознуло.

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

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

Рабочие процессы не могут делать все, что делают сценарии Windows PowerShell. Как вы узнаете из этой серии статей, все, что нельзя конвертировать в нечто «понятное» WWF, выходит за их границы. Естественно, имеется ряд функций Windows PowerShell, которые не преобразовываются. Таким макаром, рабочий процесс не является ни подмножеством, ни надмножеством Windows PowerShell. Это пересекающееся огромное количество: рабочие процессы имеют кое-какие дополнительные способности по сопоставлению с Windows PowerShell, и напротив. Такое несоответствие — один из более сложных качеств рабочих процессов.

Не единственно вероятное решение

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

К примеру, если необходимо просто параллельно запустить задание на нескольких компьютерах, можно сделать это при помощи обыденного удаленного выполнения. Можно также пользоваться фоновыми заданиями в стиле 2-ой версии Windows PowerShell (которые остались доступными и в версии 3).

Если необходимо просто выполнить последовательность заданий, которая перезапустит мотивированной компьютер и дождется, когда он возобновит работу, чтоб продолжить работу сценария, можно сделать это при помощи освеженной в версии 3 команды Restart-Computer (поддерживающей параметр -Wait). Хотя, как вы увидите, рабочие процессы вправду предоставляют массивные и в чем либо уникальные способности, они не непременно являются самым обычным вариантом решения хоть какой вероятной задачки.

Анатомия рабочего процесса

Как и функция либо командлет, рабочий процесс — это тип команды Windows PowerShell. После сотворения его, обычно, просто запускают аналогично хоть какой другой команде. Не считая того, можно делать его по расписанию либо передать на удаленный компьютер и запустить на нем. Во время выполнения Windows PowerShell преобразовывает его в формат WWF и обращается к WWF, чтоб по-настоящему запустить его.

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

В рабочем процессе можно найти набор операций (activities), выполняемых в определенной последовательности либо параллельно друг дружке. Можно сочетать последовательности и параллельные блоки столько раз, сколько требуется. Тонкость в том, что любая операция должна представлять собой нечто «понятное» WWF. И тут уже вправду начинаются трудности.

Группа разработки Windows PowerShell подготовила «версии» большинства главных командлетов Windows PowerShell для WWF. Это значит, что можно использовать эти командлеты прямо в рабочих процессах. При преобразовании в формат WWF такие командлеты замещаются их WWF-эквивалентами и работают ожидаемым образом.

В безупречном мире каждый командлет Windows PowerShell имел бы эквивалент в WWF. Тогда рабочие процессы выглядели бы почти во всем аналогично знакомым сценариям Windows PowerShell, которые мы пишем уже много лет. Но мы живем в неидеальном мире. По сути, большая часть командлетов не имеет WWF-эквивалентов. Это в особенности правильно в отношении командлетов, относящихся к Exchange Server, SharePoint и Windows Server 2012 (но не относится к базисным командлетам Windows PowerShell).

В WWF нет интегрированных средств выполнения таких командлетов. Их приходится обертывать тем, что «понятно» WWF: InlineScript. Эта особая операция, на самом деле, состоит в том, что WWF просто запускает Windows PowerShell. Содержимое операции InlineScript передается PowerShell.

Любая операция InlineScript — независящий, изолированный и отсоединенный объект. Операции InlineScript не могут вместе использовать одну и ту же информацию кроме данных, хранящихся в каком-либо доступном для всех их месте (к примеру, базе данных).

Это существенно усложняет написание рабочих процессов. Но в текущее время в главном придется иметь дело конкретно с такими операциями, так как большая часть командлетов Windows PowerShell пока не имеет WWF-версий.

Аналогичный товар: Комментирование на данный момент запрещено, но Вы можете оставить ссылку на Ваш сайт.

Комментарии закрыты.