Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。わたるプロセスライフサイクル通常のアプリケーションとは異なり、数日~数か月に及ぶ形で実行が継続することもありえるのがWFアプリケーションにおける特徴の一つです。その場合、実行しているサーバーやクライアントを常に起動し続けているのであれば問題はありませんが、どうしても再起動が必要になることもありえます。Serverを初めとする外部ストレージに、ワークフローの状態を保存する機能(永続化機能)が標準として提供されています。この機能を利用するのも非常に容易で、次のようなロジックを記述することで利用できます。Serverへと線が引かれていました。Serverに保存できるようになります。保存を行うタイミングは実行待ち状態(データの受け取り待機等)の際に自動で行いますが、独自に実装を行うことで異なるタイミングによる保存も可能です。基底クラスInstanceStoreクラスも公開されていますので、それを継承し独自の保存処理(テキストファイルへの保存や別DBMSへの保存など)を行うことも可能です。Frameworkのインストールされている次のフォルダに用意されています。4用スクリプトが保存されているフォルダ上記フォルダにスキーマ定義用のSqlWorkflowInstanceStoreSchema.sqlと、トリガーなどの処理定義用のSqlWorkflowInstanceStoreLogic.sqlが保存されており、これを実行するだけで作成できます。3とは異なるため、注意が必要です。3.xのバージョンアップと思われますが、内部構造がすべて変更されています。利用する名前空間もSystem.WorkflowからSystem.Activitiesへと変更されました。3.xで作成されたワークフローを利用できない、というデメリットが発生します。3.xのアクティビティを実行させることができますが、すべてのアクティビティを実行できるものではありません。3.xワークフローを移行できるものでもありません。4では多くの違いがあります。Serverに保存するテーブル構成の変更なども異なります。4用に作り直すことが後々を考慮してベターな方法になると考えられます。4.5では更なる機能強化が図られています。4.5において提供されます。4.0.1(KB2495593)以降を適用することで利用可能です。4.0.3では、同4.0.1や同4.0.2の内容も含まれています。4.5でのアクティビティアイコン変更2012/5/16時点ではアクティビティのリソースとして定義されているアイコン情報が置換されます。4のアイコンがすべて置き換わることになります。アクティビティのアイコン正式リリースの際にどのようになるかはまだ判明していませんが、WFを利用しかつワークフローのデザイン機能を提供しているケースで今後の情報に注意する必要があります。4では標準で多くのアクティビティが提供されています。ここでは利用頻度が高めと思われる一部のアクティビティについて説明します。作成した変数に値を代入したり、クラスのインスタンス生成時に利用したりします。標準出力に対して文字列の出力を行います。For形式のループ処理を行います。実行するアクティビティが待機状態になった際に、別アクティビティの処理を実行するよう切り替えるParallelForEachアクティビティもあります。条件式の結果に基づき処理を二分岐させます。多分岐を行うSwitchアクティビティもあります。外部からメッセージの受け取りを行います。Webサービスの呼び出される受け口などに利用します。外部へとメッセージの送信を行います。別途用意されているサービスの呼び出しを行う際に利用します。Receiveアクティビティも同様ですが、送受信の際に必要な初期設定があらかじめ行われている状態から利用できる、ReceiveAndSendReply、SendAndReceiveReplyテンプレートデザイナーが用意されていますので、通常はこちらを利用するのが便利です。静的メソッドを呼び出します。引数の数が同一でその型が異なる形でオーバーロードされているようなメソッドは、呼び出すことができません。一般的なコードによる実装に近い形で、例外をトラップした場合に実行するCatchセクションや、必ず実行するFinallyセクションが用意されています。4は利用可能になってからある程度の年月が過ぎていますが、実際に利用されている製品となるとMicrosoft製品であってもまだ少数です。Serverくらいであり、他製品では利用されていないと思われます。3.xを利用しています。OrchestratorはWFを利用せずに独自の実装が行われています。4が利用されているのが確認できています。4のアクティビティとして作成されていました。4の実装について紹介します。3種類存在するアクティビティの違いとその実装について、そしてアクティビティデザイナーについても紹介する予定です。トモユキ)地方企業に勤めるインディープロレス好きなエンジニア。システム構築を主な業務としていましたが、元々の性格もあり色々な物に目移り中。プラットフォームチームの意義と実践のポイント1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。プラットフォームチームの意義と実践のポイント1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。プラットフォームチームの意義と実践のポイント1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。NEW新着記事一覧を見るイベント今後の予定を見るCodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。