2011年4月28日木曜日

Workflow サービスを Workflow 上で利用する

前回のように作成したワークフローサービスを、別のワークフロー上で利用する事も当然できます。動作原理は WCF によるサービスですので、当然コードのみでも利用できますし、VS 上で Web 参照を追加して利用する事もできます。ワークフロー上で利用する場合は、前回のサービス作成と逆のアクティビティを利用します。

UseWFService1

これが全体図です。前回は 受信→返却送信、という流れで作成しましたが、サービスを利用する側となると 送信→返却受信という流れになります。やはり 1 セットで設置できるアクティビティが用意されており、それが SendAndReceiveReply アクティビティとなります。デザイナ上にドロップすると、Send アクティビティと ReceiveReply アクティビティが設置されます。リクエストを送信するための Send アクティビティではサービスを呼び出すための設定が必要です。

  • EndpointAddress:サービスのアドレスをUriクラスのインスタンスとして設定
  • Content:サービスへ送信する値やパラメータを設定
  • ServiceContractName:サービス側で設定されている同名のプロパティと設定を合わせる

サービスからの結果を受信する ReceiveReply アクティビティでは Content プロパティに対して受け取る値やパラメータの設定だけが必要です。

このようにワークフローを設定し実行すると、前回作成した適当な値を返すワークフローサービスが動作し結果を返却してくれます。

UseWFService2

WCF で提供されるサービスを利用する事自体かなり簡略化されていますが、ワークフローから利用する場合はさらに簡単で、一切のコーディング作業が必要ないことがわかると思います。またサービス自体もコーディング全く無しで準備可能ですので、開発者でなくともサービスを作成・提供することが可能です。

特に現在は Windows Azure にて IIS を利用する事が可能となっています。Azure Platform を利用する事で更に WF を有効に活用できるのではないでしょうか。

0 件のコメント:

コメントを投稿