0

販売注文を管理するための Web サービスを宣言したオーケストレーションを作成しました。これは問題なく動作しますが、Web サービスを独自のオーケストレーションに移動し、他のオーケストレーションで必要なときにオーケストレーションを呼び出せるようにしたいと考えています。各 Web メソッドには、マルチパート メッセージが割り当てられています。

他のオーケストレーションや将来のニーズですべての Web サービス メソッドを再利用する必要があると予想されます。

  • ポートを正しく設定するにはどうすればよいですか?
  • この目的のために特別なオーケストレーションまたはアプリケーションを作成するときに使用すべき正しい方法とガイドラインは何ですか?
  • オーケストレーションはどのようになりますか?
  • 「今すぐ指定」して、オーケストレーションでポートをセットアップしますか?

問題の Web サービスの Web メソッドには、

  1. getCustomerItemPrice (リクエスト/レスポンス)
  2. getitemListPrice (リクエスト/レスポンス)
  3. getItemPriceAndAvalability (リクエスト/レスポンス)
  4. getSalesOrder (リクエスト/レスポンス)
  5. getSalesOrderHistory (リクエスト/レスポンス)
  6. processSalesOrder (リクエスト/レスポンス)
  7. processSalesPriceAdjustment (リクエスト/レスポンス)

ヒント 'Shift キーを押しながらハイパーリンクをクリックすると、オーケストレーションと Web サービスの現在の設定が表示されます。

https://skydrive.live.com/redir.aspx?cid=533fd5a521c8c878&resid=533FD5A521C8C878!1857&parid=533FD5A521C8C878!1856

4

1 に答える 1

0

問題は、Web サービス ポートが既存のオーケストレーションと密接に結合していることです。これは、オーケストレーションの実行中に、ポートに対するさまざまな操作がさまざまなステップで呼び出されるためです。そのため、Web サービス ポート全体をこのオーケストレーションから別の 1 つのオーケストレーションに移動することはできない場合があります。

このオーケストレーションからこの Web サービス呼び出しを本当に抽象化する場合は、大規模なリファクタリング作業に直面することになります。おそらく、次の手順の少なくともいくつかを実行する必要があります。

  • 呼び出すサービス操作ごとに Web ポートを個別のポートに分割します。
  • 各サービス呼び出しをラップするオーケストレーションを作成します。
  • サービス操作の要求メッセージと応答メッセージをそれぞれのオーケストレーションに移行する
  • 呼び出されたオーケストレーションに渡す新しいメッセージを定義し、呼び出し側のオーケストレーションを新しいオーケストレーションから効果的に切り離します。

正直なところ、これらのコンポーネントを何度も再利用することを期待していない限り、これを行うことに大きな価値があるとは思えません。

于 2012-01-11T19:21:38.220 に答える