前回のように作成したワークフローサービスを、別のワークフロー上で利用する事も当然できます。動作原理は WCF によるサービスですので、当然コードのみでも利用できますし、VS 上で Web 参照を追加して利用する事もできます。ワークフロー上で利用する場合は、前回のサービス作成と逆のアクティビティを利用します。
これが全体図です。前回は 受信→返却送信、という流れで作成しましたが、サービスを利用する側となると 送信→返却受信という流れになります。やはり 1 セットで設置できるアクティビティが用意されており、それが SendAndReceiveReply アクティビティとなります。デザイナ上にドロップすると、Send アクティビティと ReceiveReply アクティビティが設置されます。リクエストを送信するための Send アクティビティではサービスを呼び出すための設定が必要です。
- EndpointAddress:サービスのアドレスをUriクラスのインスタンスとして設定
- Content:サービスへ送信する値やパラメータを設定
- ServiceContractName:サービス側で設定されている同名のプロパティと設定を合わせる
サービスからの結果を受信する ReceiveReply アクティビティでは Content プロパティに対して受け取る値やパラメータの設定だけが必要です。
このようにワークフローを設定し実行すると、前回作成した適当な値を返すワークフローサービスが動作し結果を返却してくれます。
WCF で提供されるサービスを利用する事自体かなり簡略化されていますが、ワークフローから利用する場合はさらに簡単で、一切のコーディング作業が必要ないことがわかると思います。またサービス自体もコーディング全く無しで準備可能ですので、開発者でなくともサービスを作成・提供することが可能です。
特に現在は Windows Azure にて IIS を利用する事が可能となっています。Azure Platform を利用する事で更に WF を有効に活用できるのではないでしょうか。
0 件のコメント:
コメントを投稿