Веб-служба на базе workflow foundation
DESCRIPTION
4 апреля в Санкт-Петербурге состоялась независимая .NET-конференция .NEXT, которая собрала более 200 .NET-программистов со всей России. Консультант Luxoft Training по архитектуре и разработке ПО Павел Цытович представил свой доклад "Веб-служба на базе Workflow Foundation".TRANSCRIPT
1 © L
uxof
t Tra
inin
g 20
12
Веб-служба на базе Workflow Foundation
Павел Цытович[email protected]
http://facebook.com/pavel.tsytovichhttp://vk.com/pavel.tsytovich
2 © L
uxof
t Tra
inin
g 20
12
Luxoft Training
Luxoft Training – лидер в области обучения дисциплинам Software Engineering
Обучение на базе Luxoft Training – это возможность карьерного и профессионального роста, повышения квалификации и усовершенствования существующих умений знаний и навыков для каждого специалиста по программной инженерии.
Формат обучения:
Открытые очные модульные курсы и вебинары
Корпоративные программы
Тренинговые программы (классы подготовки специалистов)
Мастер-классы экспертов с мировым именем
3 © L
uxof
t Tra
inin
g 20
12
План работы
Domain Specific Language – что, где, когда
Workflow Foundation как способ реализации DSL
WCF служба на базе Workflow Foundation
Организация продолжительных во времени процессов Workflow Foundation
4 © L
uxof
t Tra
inin
g 20
12
Domain Specific Language
5 © L
uxof
t Tra
inin
g 20
12
Domain Specific Language
DSL – язык программирования, основанный на описании абстракций конкретной предметной области, специально разработанный для решения задач в этой конкретной предметной области.
6 © L
uxof
t Tra
inin
g 20
12
Платформы реализации DSL
Metaprograming System (Java)
BPEL (Java)
DSL Tools (.NET Framework, Visual Studio)
Microsoft Workflow Foundation (.NET Framework)
7 © L
uxof
t Tra
inin
g 20
12
Workflow Foundation как способ реализации DSL
8 © L
uxof
t Tra
inin
g 20
12
Workflow Foundation
Workflow Host (IIS, Service, WAS)
Workflow
WF Runtime
Activities
9 © L
uxof
t Tra
inin
g 20
12
Примитивы Workflow
Sequence
If
Do While / While
ForEach<T> / ParallelForEach<T>
Pick
Switch<T>
10 © L
uxof
t Tra
inin
g 20
12
Flowchart – реинкарнация блок-схем
Flowchart
FlowDecision
FlowSwitch<T>
11 © L
uxof
t Tra
inin
g 20
12
State Machine – помни теорию автоматов
State
FinalState
12 © L
uxof
t Tra
inin
g 20
12
Проблема реализации DSL на основе Windows Workflow Foundation
Workflow Foundation содержит лишь набор примитивов для описания рабочих процессов, не пригодных для использования аналитиками непосредственно
Разработчик должен подготовить свой набор custom activities для описания бизнес-процессов в терминах предметной области
Разработчик должен предоставить внешний дизайнер Workflow Foundation, если рабочие процессы будут разрабатываться самим пользователем
13 © L
uxof
t Tra
inin
g 20
12
Custom code activities
Workflow,код
Входныеаргументы Выходные
аргументы
InArgument<TYPE> OutArgument<TYPE>
14 © L
uxof
t Tra
inin
g 20
12
Шаблон code activity - Синхронный
15 © L
uxof
t Tra
inin
g 20
12
Шаблон code Activity – асинхронный
16 © L
uxof
t Tra
inin
g 20
12
Создание собственного внешнего вида Custom Activity
XAML
CS
17 © L
uxof
t Tra
inin
g 20
12
Далее…
Как создать службу с использованием Workflow Foundation
18 © L
uxof
t Tra
inin
g 20
12
WCF служба на базеWorkflow Foundation
19 © L
uxof
t Tra
inin
g 20
12
Прием и передача сообщений
ContentDisplayNameOperationNameServiceContractName
ContentDisplayNameRequest
20 © L
uxof
t Tra
inin
g 20
12
Хостирование WCF с WF
IIS/WAS
WorkflowServiceHost
21 © L
uxof
t Tra
inin
g 20
12
Далее…
Организация продолжительных бизнес-процессов
22 © L
uxof
t Tra
inin
g 20
12
Организация продолжительных во
времени процессов Workflow Foundation
23 © L
uxof
t Tra
inin
g 20
12Что необходимо сделать для поддержки длительных бизнес-процессов?Обеспечить сохранение состояния сеанса
Обеспечить загрузку нужно состояния сеанса
24 © L
uxof
t Tra
inin
g 20
12
Сохранение сеанса в MS SQL
25 © L
uxof
t Tra
inin
g 20
12
Activity, обеспечивающие сохранение состояния
Persist
Delay
SendReply //свойство PersistBeforeSend
26 © L
uxof
t Tra
inin
g 20
12
Сопоставление рабочих процессов
Workflow WorkflowInstance
27 © L
uxof
t Tra
inin
g 20
12
Корреляция
28 © L
uxof
t Tra
inin
g 20
12
Типы корреляций
Корреляция по протоколу
Корреляция по содержимому
29 © L
uxof
t Tra
inin
g 20
12
Корреляция по протоколу
ClientWorkflow
Service• WSHttpBinding• NetTcpBinding• BasicHttpBinding
30 © L
uxof
t Tra
inin
g 20
12
Корреляция по содержимому
ClientWorkflow
ServiceДанные
31 © L
uxof
t Tra
inin
g 20
12
Корреляция
Выполняется с помощью свойств Receive: CorrelatesOn CorrelatesWith
Используется специальный тип переменной CorrelationHandler
32 © L
uxof
t Tra
inin
g 20
12
Виды корреляций
На основе механизма запрос/ответ
Корреляция на основе контекста
Корреляция на основе бизнес-логики
33 © L
uxof
t Tra
inin
g 20
12
Корреляция на основе бизнес-логики
34 © L
uxof
t Tra
inin
g 20
12
Где почитать о Windows Workflow Foundation
Andrew Zhu. Microsoft Windows Workflow Foundation 4.0 Cookbook
http://alexey.raga.name/post/2010/06/06/workflow-foundation-4-flowcharts.aspx
http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV/TL06.wmv
http://www.codeproject.com/Articles/38202/Windows-Workflow-WF-as-a-WCF-Service