Веб-служба на базе workflow foundation

35
1 Luxoft Training 2012 Веб-служба на базе Workflow Foundation Павел Цытович [email protected] http://facebook.com/ pavel.tsytovich http://vk.com/pavel.tsytovich

Upload: luxofttraining

Post on 01-Nov-2014

231 views

Category:

Education


5 download

DESCRIPTION

4 апреля в Санкт-Петербурге состоялась независимая .NET-конференция .NEXT, которая собрала более 200 .NET-программистов со всей России. Консультант Luxoft Training по архитектуре и разработке ПО Павел Цытович представил свой доклад "Веб-служба на базе Workflow Foundation".

TRANSCRIPT

Page 1: Веб-служба на базе Workflow foundation

1 © L

uxof

t Tra

inin

g 20

12

Веб-служба на базе Workflow Foundation

Павел Цытович[email protected]

http://facebook.com/pavel.tsytovichhttp://vk.com/pavel.tsytovich

Page 2: Веб-служба на базе Workflow foundation

2 © L

uxof

t Tra

inin

g 20

12

Luxoft Training

Luxoft Training – лидер в области обучения дисциплинам Software Engineering

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

Формат обучения:

Открытые очные модульные курсы и вебинары

Корпоративные программы

Тренинговые программы (классы подготовки специалистов)

Мастер-классы экспертов с мировым именем

Page 3: Веб-служба на базе Workflow foundation

3 © L

uxof

t Tra

inin

g 20

12

План работы

Domain Specific Language – что, где, когда

Workflow Foundation как способ реализации DSL

WCF служба на базе Workflow Foundation

Организация продолжительных во времени процессов Workflow Foundation

Page 4: Веб-служба на базе Workflow foundation

4 © L

uxof

t Tra

inin

g 20

12

Domain Specific Language

Page 5: Веб-служба на базе Workflow foundation

5 © L

uxof

t Tra

inin

g 20

12

Domain Specific Language

DSL – язык программирования, основанный на описании абстракций конкретной предметной области, специально разработанный для решения задач в этой конкретной предметной области.

Page 6: Веб-служба на базе Workflow foundation

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)

Page 7: Веб-служба на базе Workflow foundation

7 © L

uxof

t Tra

inin

g 20

12

Workflow Foundation как способ реализации DSL

Page 8: Веб-служба на базе Workflow foundation

8 © L

uxof

t Tra

inin

g 20

12

Workflow Foundation

Workflow Host (IIS, Service, WAS)

Workflow

WF Runtime

Activities

Page 9: Веб-служба на базе Workflow foundation

9 © L

uxof

t Tra

inin

g 20

12

Примитивы Workflow

Sequence

If

Do While / While

ForEach<T> / ParallelForEach<T>

Pick

Switch<T>

Page 10: Веб-служба на базе Workflow foundation

10 © L

uxof

t Tra

inin

g 20

12

Flowchart – реинкарнация блок-схем

Flowchart

FlowDecision

FlowSwitch<T>

Page 11: Веб-служба на базе Workflow foundation

11 © L

uxof

t Tra

inin

g 20

12

State Machine – помни теорию автоматов

State

FinalState

Page 12: Веб-служба на базе Workflow foundation

12 © L

uxof

t Tra

inin

g 20

12

Проблема реализации DSL на основе Windows Workflow Foundation

Workflow Foundation содержит лишь набор примитивов для описания рабочих процессов, не пригодных для использования аналитиками непосредственно

Разработчик должен подготовить свой набор custom activities для описания бизнес-процессов в терминах предметной области

Разработчик должен предоставить внешний дизайнер Workflow Foundation, если рабочие процессы будут разрабатываться самим пользователем

Page 13: Веб-служба на базе Workflow foundation

13 © L

uxof

t Tra

inin

g 20

12

Custom code activities

Workflow,код

Входныеаргументы Выходные

аргументы

InArgument<TYPE> OutArgument<TYPE>

Page 14: Веб-служба на базе Workflow foundation

14 © L

uxof

t Tra

inin

g 20

12

Шаблон code activity - Синхронный

Page 15: Веб-служба на базе Workflow foundation

15 © L

uxof

t Tra

inin

g 20

12

Шаблон code Activity – асинхронный

Page 16: Веб-служба на базе Workflow foundation

16 © L

uxof

t Tra

inin

g 20

12

Создание собственного внешнего вида Custom Activity

XAML

CS

Page 17: Веб-служба на базе Workflow foundation

17 © L

uxof

t Tra

inin

g 20

12

Далее…

Как создать службу с использованием Workflow Foundation

Page 18: Веб-служба на базе Workflow foundation

18 © L

uxof

t Tra

inin

g 20

12

WCF служба на базеWorkflow Foundation

Page 19: Веб-служба на базе Workflow foundation

19 © L

uxof

t Tra

inin

g 20

12

Прием и передача сообщений

ContentDisplayNameOperationNameServiceContractName

ContentDisplayNameRequest

Page 20: Веб-служба на базе Workflow foundation

20 © L

uxof

t Tra

inin

g 20

12

Хостирование WCF с WF

IIS/WAS

WorkflowServiceHost

Page 21: Веб-служба на базе Workflow foundation

21 © L

uxof

t Tra

inin

g 20

12

Далее…

Организация продолжительных бизнес-процессов

Page 22: Веб-служба на базе Workflow foundation

22 © L

uxof

t Tra

inin

g 20

12

Организация продолжительных во

времени процессов Workflow Foundation

Page 23: Веб-служба на базе Workflow foundation

23 © L

uxof

t Tra

inin

g 20

12Что необходимо сделать для поддержки длительных бизнес-процессов?Обеспечить сохранение состояния сеанса

Обеспечить загрузку нужно состояния сеанса

Page 24: Веб-служба на базе Workflow foundation

24 © L

uxof

t Tra

inin

g 20

12

Сохранение сеанса в MS SQL

Page 25: Веб-служба на базе Workflow foundation

25 © L

uxof

t Tra

inin

g 20

12

Activity, обеспечивающие сохранение состояния

Persist

Delay

SendReply //свойство PersistBeforeSend

Page 26: Веб-служба на базе Workflow foundation

26 © L

uxof

t Tra

inin

g 20

12

Сопоставление рабочих процессов

Workflow WorkflowInstance

Page 27: Веб-служба на базе Workflow foundation

27 © L

uxof

t Tra

inin

g 20

12

Корреляция

Page 28: Веб-служба на базе Workflow foundation

28 © L

uxof

t Tra

inin

g 20

12

Типы корреляций

Корреляция по протоколу

Корреляция по содержимому

Page 29: Веб-служба на базе Workflow foundation

29 © L

uxof

t Tra

inin

g 20

12

Корреляция по протоколу

ClientWorkflow

Service• WSHttpBinding• NetTcpBinding• BasicHttpBinding

Page 30: Веб-служба на базе Workflow foundation

30 © L

uxof

t Tra

inin

g 20

12

Корреляция по содержимому

ClientWorkflow

ServiceДанные

Page 31: Веб-служба на базе Workflow foundation

31 © L

uxof

t Tra

inin

g 20

12

Корреляция

Выполняется с помощью свойств Receive: CorrelatesOn CorrelatesWith

Используется специальный тип переменной CorrelationHandler

Page 32: Веб-служба на базе Workflow foundation

32 © L

uxof

t Tra

inin

g 20

12

Виды корреляций

На основе механизма запрос/ответ

Корреляция на основе контекста

Корреляция на основе бизнес-логики

Page 33: Веб-служба на базе Workflow foundation

33 © L

uxof

t Tra

inin

g 20

12

Корреляция на основе бизнес-логики

Page 34: Веб-служба на базе Workflow foundation

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

Page 35: Веб-служба на базе Workflow foundation

35 © L

uxof

t Tra

inin

g 20

12 ?Благодарю за

внимание!

Вопросы?

Павел Цытович[email protected]