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

Post on 01-Nov-2014

226 views 5 download

Tags:

description

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

Transcript of Веб-служба на базе Workflow foundation

1 © L

uxof

t Tra

inin

g 20

12

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

Павел Цытовичptsytovich@luxoft.com

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

35 © L

uxof

t Tra

inin

g 20

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

внимание!

Вопросы?

Павел Цытовичptsytovich@luxoft.com