Механізм управління потоками Windows Workflow Foundation. Частина 3, Різне, Програмування, статті

Читати частина 2

Отже, наше консольний додаток створює екземпляр процесу, використовуючи клас WorkflowRuntime, а потім запускає його на виконання. Тут відслідковуються дві події: WorkflowCompleted і WorkflowTerminated. За замовчуванням процеси запускаються в асинхронному режимі механізмом Windows Workflow, тому хост-додаток не закриється до того, як закінчиться виконання процесів. Для синхронізації потоків можна використовувати наприклад, об’єкт AutoResetEvent.

Тепер натиснемо F5 для налагодження написаної програми і подивимося, як вона працює. Нам буде запропоновано вводити числа, для яких виконується тривіальна обробка: негативні числа пропускаються, для позитивних обчислюється факторіал.






Лістинг 1. Код головного консольного додатка

Module Module1
Class Program
Shared WaitHandle As New AutoResetEvent(False)
Shared Sub Main()
Using workflowRuntime As New WorkflowRuntime()
AddHandler workflowRuntime.WorkflowCompleted, _
AddressOf OnWorkflowCompleted
AddHandler workflowRuntime.WorkflowTerminated, _
AddressOf OnWorkflowTerminated
Dim workflowInstance As WorkflowInstance
workflowInstance = _
workflowRuntime.CreateWorkflow(GetType(Workflow1))
workflowInstance.Start()
WaitHandle.WaitOne()
Console.ReadLine()
End Using
End Sub
Shared Sub OnWorkflowCompleted( _
ByVal sender As Object, _
ByVal e As WorkflowCompletedEventArgs)

WaitHandle.Set()
End Sub
Shared Sub OnWorkflowTerminated( _
ByVal sender As Object, _
ByVal e As WorkflowTerminatedEventArgs)

Console.WriteLine(e.Exception.Message)
WaitHandle.Set()
End Sub
End Class
End Module







Думка розробників


Компанія DocsVision – розробник однойменної системи управління документами і бізнес-процесами. Одна з особливостей фірми і її продукту – ставка на широке використання технологій Microsoft, Більше того, акцент на використання їх нововведень. Свого часу компанія однією з перших в країні стала застосовувати. NET в своїх продуктах; ще на етапі бета-тестування Windows Vista вона приступила до вивчення інновацій її програмної моделі Windows Workflow Foundation. WF має пряме предметне ставлення до DocsVision, і її розробники мають намір використовувати цей механізм для розширення можливостей системи в управлінні документами – він повинен бути задіяний в новій версії DocsVision, яка з’явиться найближчої осені.

Ми попросили розробників DocsVision поділитися своєю думкою про можливості WF. Ось узагальнене виклад їх колективної думки.

Незважаючи на те, що в назві технології присутній термін workflow, WF реалізує лише невелику частину компонентів концепції workflow-систем. По суті WF – це одна з бібліотек. NET 3.0 (набір базових класів), що забезпечує створення процесно-орієнтованих додатків на базі платформи. NET. У додатках, написаних з використанням цих бібліотек, можна буде реалізувати деякі функції процесних систем, а саме: можливість динамічного отримання інформації про хід програми (журнал); кошти призупинення й запуску додатків (наприклад, з метою модифікації в процесі виконання змінних оточення) і навіть можливість зміни коду виконуваних програм після їх зупинки та перезапуску; вбудовані інтерфейси для організації тимчасового зберігання даних оточення і т. п. Тут слід підкреслити, що Windows Workflow Foundation – це управління будь-якими процесами, необов’язково діловими, але й технологічними, і взагалі будь-якими, які можна описати алгоритмічно.

В WF входять не тільки базові функції управління процесом, а й інтерфейс для візуального програмування процесів в Visual Studio. Крім цього до складу нової версії Visual Studio ** увійде готовий інструмент для візуальної розробки програм на базі WF. Він буде представляти собою діаграму процесу, що складається з готових збірок для реалізації стандартних компонентів процесного програми. Однак WF (і саме так його позиціонує Microsoft) – це не закінчена workflow-система, а набір технологічних компонентів, на базі яких програмісти третіх фірм зможуть реалізувати власні системи управління бізнес-процесами (ось вони-то вже будуть власне workflow-системами). Або ж можна буде інтегрувати функції WF у власні прикладні рішення. Наприклад, Microsoft реалізувала таку можливість в Office SharePoint Server 2007 і заявляє про використання такого підходу у новій версії Microsoft BizTalk.

** Orcas, яка вийде приблизно одночасно з Windows Server Longhorn. – Прим. А.К.

Сама ж бібліотека WF не претендує на звання повнофункціональної системи управління бізнес-процесами, тому що в ній відсутній цілий ряд необхідних інструментів, а саме:


  • сервери, які власне виконують екземпляри окремих процесів;
  • кошти журналювання бізнес-процесів і база даних, накопичує інформацію про хід бізнес-процесів;
  • засоби візуального моніторингу виконання бізнес-процесів;
  • клієнтська інфраструктура Workflow: завдання, черги завдань, підсистеми нотифікації виконавців і т. п.;
  • засоби побудови звітів про хід виконання процесів;
  • засоби моделювання бізнес-процесів;
  • засоби інтеграції підсистеми управління бізнес-процесами та управління документами, а також багато іншого …

В цілому WF було б правильно позиціонувати як універсальний механізм, на який можуть орієнтуватися розробники процесно-орієнтованих додатків. Використання WF для вирішення власних завдань забезпечить цим розробникам більш високу віддачу від базової серверної і клієнтської інфраструктури Microsoft, а також дасть можливість напрацьовувати базу окремих функціональних компонентів. В подальшому можна буде використовувати бібліотеки компонентів процесів – як свої, так і розробки третіх фірм – для реалізації складних бізнес-процесів, аналогічно тому, як зараз є можливість повторного використання програмних компонентів в “звичайних” проектах розробки на замовлення.

Починаючи з версії 4.0 система DocsVision буде базуватися на WF, що забезпечить нашим партнерам переваги при реалізації документно-орієнтованих процесів, а також дозволить приступити до створення згаданих вище бібліотек.

В частині управління процесами DocsVision, на додаток до функціональних блоків і спеціалізованому редактору для управління бізнес-процесами, містить сховище примірників процесів і движок, виконуючий кожен примірник процесу в реальному часі. Власне кажучи, нічого більше для платформи управління процесами і не потрібно. Однак DocsVision – це система управління бізнес-процесами. Слово “бізнес” в даному випадку означає, що у складі сутностей і функцій системи є бізнес-орієнтовані сутності та функції: наприклад, такі сутності бізнес-рівня, як документи, і такі функції, як “направити доручення користувачам “або” створити новий документ “. Причому ці сутності та функції присутні і на самому верхньому рівні системи – при візуальному описі бізнес-процесів, їх моніторингу і” ручному ” управлінні під час виконання.

Базові “алгоритмічні” функції, звичайно, були в DocsVision і раніше, але зараз ми замінюємо ці функції на Activities WF, переписуючи їх виклики в інших модулях DocsVision. В результаті ми розраховуємо знизити витрати на підтримку і розвиток цього базового шару управління процесами, вважаючи, що тепер це буде робити Microsoft, А ми зможемо зосередитися саме на бізнес-рівні, розвиваючи і підтримуючи його.

Ми також розраховуємо використовувати шлюзові можливості, пов’язані з наявністю в. NET Framework інших надбудов, таких, як Communication Foundation, і їх інтеграцію з Workflow Foundation. Зараз ми самі підтримуємо і розвиваємо шлюз DocsVision з Exchange, необхідний, наприклад, для розсилки повідомлень, документів, доручень і обробки різних подій з цими об’єктами. Ми сподіваємося, що і ця – в більшій ступеня технологічна, ніж прикладна – завдання буде вирішуватися Microsoft.

Взагалі кажучи, WF представляється нам зручним “стандартом” для розробки шлюзів до Workflow від будь-якої програми. У всякому разі, це стимулює вендорів до створення таких шлюзів. Таким чином може з’явитися, наприклад, шлюз до IBM Lotus Domino, “1С”, Microsoft Dynamics (останні два увійдуть до складу DocsVision 4.0) і т. п. Будь-який такий шлюз буде створюватися і підтримуватися не нами, а розробником програми. Однак ми зможемо цей шлюз використовувати, і його наявність буде розширювати ринок і для нашої системи теж.

Що ще зміниться в нашій системі? Ми плануємо включити в наш редактор можливість використовувати готові блоки бізнес-процесів, розроблені на базі WF. Це полегшить користувачам перенесення своїх бізнес-процесів в нашу систему і знизить вартість підтримки та експлуатації їх рішень.

В DocsVision є свої додатки – це сервер керування документами, додаток “Діловодство” і ряд інших. Якщо WF стане дійсно стандартом де-факто для створення систем управління процесами, ми можемо перенести шлюзи наших програм на рівень WF для того, щоб їх використовували наші ISV-партнери.

Як буде розвиватися ситуація, багато в чому залежить і від Microsoft. Якщо найближчим часом з’являться кошти інтеграції WF c Microsoft SharePoint Services, Microsoft Dynamics та іншими системами прикладного рівня від Microsoft та інших виробників, а також набір Activities для реалізації різних прикладних задач, це може створити “критичну масу”, необхідну для широкого використання WF спільнотою розробників ПЗ.

Закінчення

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*