0

SOAプロジェクトでJDeveloperによって生成された.wsdlファイルを理解しようとしています。タイプ、portType、およびメッセージ要素のみが含まれる傾向があり、サービスまたはバインディング要素は含まれないことに気付きました。

次に、 http: //schemas.xmlsoap.org/wsdl/ で WSDL スキーマの定義を調べたところ、バインディングとサービスの両方が wsdl 定義要素の「キー」要素であることがわかりました。これは、サービスとバインディングが必須要素であることを意味しますか? もしそうなら、JDeveloper/SOA Suite WSDL ファイルに含まれていないのはなぜですか?

[アップデート]

わかりました、質問に対する部分的な回答が見つかりました。URL 経由で WSDL ファイルにアクセスすると、バインディングとサービス要素が deed に含まれていることがわかります。

誰でも、次の詳細な背景情報を提供できますか?

  1. これはどのように起こりますか?
  2. なぜこれが行われるのですか?
  3. (2) が、WSDL の具体的な定義を開発者から隠し、SOA Suite によって動的に処理されるようにしたい場合: この動的バインディングがどのように機能し、実際のアプリケーションで使用されるかの具体的な例... ?
4

1 に答える 1

3

生成されたのは、機能の観点から最低限必要な抽象的な WSDL です。データ型、操作などはすべてそこにあります。

探しているのは、特定のサービス (場所、プロトコルなど) へのアクセス方法を具体的に定義する具体的な WSDL です。これは、SOA スイートの観点から見ると、より構成/デプロイメントに関する問題です。

ご質問に簡単にお答えします。

  1. クライアントが具体的な WSDL を必要とする場合、SOA Suite は必要に応じて具体的な WSDL 定義を生成します (これは WS バインディング仕様によって義務付けられています)。クライアントがこの具体的な WSDL に従って呼び出しを行う場合、SOA Suite はサービスへの呼び出しを解決する方法を知っています。
  2. 基本的に、サービスの機能部分のみを定義し、SOA Suite へのアクセスに関する詳細は残します。結局のところ、これらは展開の詳細に大きく依存しています。したがって、サービスは物理的な詳細からもう少し切り離されます。
  3. これが SCA のやり方です。消費者の観点からは、エクスペリエンスはそれほど違いはありません。他のサービスと同様に具体的な WSDL を検索できます。

開発者の観点からは、私たちは SCA の世界にいることを覚えておく必要があります。SCA ドメイン内では、サービスを公開したり、コンポジット内でサービスを参照したりするためにバインディングが使用されます。SCA ドメインの外部にサービスを公開したい場合にのみ、これらのバインディングが従来の WS 標準に変換されます。

詳細については、OASIS で WS バインディング標準を参照してください。 http://docs.oasis-open.org/opencsa/sca-bindings/sca-wsbinding-1.1-spec.pdf

于 2012-05-17T13:55:08.073 に答える