WF 4.0 - Microsoft

松崎 剛
デベロッパーエバンジェリスト
マイクロソフト株式会社
目次
進化の全体像
.NET 4.0 における WF
シナリオごとの新機能紹介
Activity Execution Context の進化
ワークフローサービスと非同期処理
デザイナーの進化
新しいモデリング (Oslo “M”)
WF 3.0/3.5 との互換性
進化したアクティビティ
(モデルを意識したWorkflowElementとActivity)
フロースタイルの提供
さまざまなパターンへの対応
(非同期処理、エラー処理など)
ランタイムパフォーマンスの大幅な向上
(X10~X100)
豊富な標準アクティビティ
(DBアクセス, PowerShell, Try…Catch…, etc)
新しいデザイナー体験と拡張性
その他、まだまだあります. . .
(部分信頼サポート、進んだデバッグ環境、etc)
進化したアクティビティ
(モデルを意識したWorkflowElementとActivity)
フロースタイルの提供
さまざまなパターンへの対応
洗練されたモデルの提供
(非同期処理、エラー処理など)
ランタイムパフォーマンスの大幅な向上
(X10~X100)
柔軟性の向上
豊富な標準アクティビティ
(DBアクセス, PowerShell, Try…Catch…, etc)
新しいデザイナー体験と拡張性
その他、まだまだあります. . .
(部分信頼サポート、進んだデバッグ環境、etc)
本質は逐次処理の下記のフロー
しかし . . .
WF 3.0/3.5
ステートマシンで実装
(シーケンシャルな実装で
は、ネスト関係が成立して
いなければならない)
WF 4.0
フローチャートで実装
WorkflowElement
Activity
実行ロジックはプログラム
コード (Execute メソッド)
 従来の Activity に近い単位
 ランタイムと直接やりとり
 煩雑な
ActivityExecutionStatus
の管理が不要

実行ロジックは静的な
activity 構成
 宣言的なデータ中心の構成が
可能(ワークフロー構築など)
 実体は、WorkflowElement
を継承

松崎 剛
デベロッパーエバンジェリスト
マイクロソフト株式会社
経験に基づく、
さまざまな (応用的な) シナリオへの対応
動的なスケジューリング
AEC に対するさまざまな制御
Bookmarks の提供
非同期 I/O 対応 (非永続化ゾーン設定,
etc)
永続化は、フルコントロール可能
(明示的永続化, 非永続化ゾーン, など)
松崎 剛
デベロッパーエバンジェリスト
マイクロソフト株式会社
非同期処理への対応
Correlation による対話型実装
Flow-in トランザクション
SendMessage/ReceiveMessage
+ CorrelationHandle
Correlation Query
Channels
Cookies
Context
Body
Content
(poid=123)
Instance
Store
松崎 剛
デベロッパーエバンジェリスト
マイクロソフト株式会社
Service 1
Service 2
Service 3
(Client)
(ProcessingService)
(ManufacturingService)
OrderID : 300
SendMessage
(PlaceOrder)
ReceiveMessage
ReceiveMessage
SendMessage
(OrderConfirm)
Price : 3000
SendMessage OrderID : 300
ReceiveMessage
(OrderManufacturing)
ReceiveMessage
ReceiveMessage
SendMessage
(OrderReadyNotification)
Number : X300
SendMessage
Correlation
(ShipmentConfirmation)
Number : X300
Correlation
WCF+WF+Dublin = IT Proによる柔軟な管理
永続化
追跡/監視
管理
(インポート/エクスポート, ロードバランス, PS コマンド, etc)
セッション : このあと ! !
“Dublin”:WCF/WF サービスのための
アプリケーションサーバー (辻郷 隆史)
リホスティング は、
より柔軟、かつ、短いコードで . . .
WPF ベースのデザイナー
ActivityDesigner とのシームレスな統合
各種クラスの提供 (入力パラメータとの連携、コー
ドのインテリセンス、etc)
WorkflowViewElement
Infrastructure
WorkflowItemPresenter
Model item tree
WorkflowItemsPresenter
Model instance
ExpressionTextBox
XAML
松崎 剛
デベロッパーエバンジェリスト
マイクロソフト株式会社
XAML ⇔ “M”
新しい名前空間 System.WorkflowModel
リポジトリ
ワークフロー
“Quadrant”
Visual Studio
リポジトリインス
タンスへのワーク
フロー定義
Business Analyst
XAMLとし
てのワーク
フロー定義
Developer
Module Test
{
import System.WorkflowModel;
. . .
activity PromptExact(PromtpText : string,
DesiredInput : string)
{
input : string;
inputMatched : bool;
while (!inputMatched)
{
Prompt { Text = PromptText, Result = &input }
inputMatched = input == DesiredInput;
}
}
}
3.0/3.5 のワークフローは、新しい実行環
境でも動作 (3.0 WF ランタイムを使用)
4.0 のワークフロー内に、3.0 のアクティ
ビティを使用可能 (アクティビティレベル
での動作も保証)
今後、既存の 3.0/3.5 コード (SharePoint
ワークフローなど含む) に向けたガイダン
スを提供予定
REST ツールキット (先行でリリース)
WS-Discovery に対応した Discoverable
Services の実装
標準への対応 (SOAP over UDP, BP 1.2)
と新しいチャネル (UDP, Polling Http
Duplex)
Durable Duplex
Config の簡素化
.....
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.