2012-02-29 12 views
2

私は現在、自分の組織のSOAバージョン管理戦略に取り組んでいます。私はバージョン番号(Major.Minor)をWSDLにどこに格納すべきかを判断しようとしています。サービスインターフェイスに変更を加えることなく(つまり、新しい操作を追加する)、これらの変更はマイナー番号を増やすだけです。 WSDLのtargetNamespaceを使用してバージョンを保存することを検討していますが、WSDLのtargetNamespaceを1.0から1.1などに変更すると、一部のクライアントで重大な変更が発生する恐れがあります。WSDLのtargetNamespaceを変更すると、既存のコンシューマーが破損しますか?

WSDLのtargetNamespaceを変更すると、その特定のWebサービスの既存のコンシューマに与える影響を誰でも教えてください。私はWCFを使用していくつかのテストを実行しましたが、私はそれがサービスを使用する既存のアプリケーションを壊さないことを発見しました。しかし、これは他の非.NETクライアントからも依然として真実であるかどうか疑問に思っていますか?

注:WSDLで参照されるXSDのtargetNamespaceを変更すると、変更が大幅に変更されます。

+3

はい、そうです。同じ名前だが異なる名前空間を持つ2つの要素は、異なる要素です。 –

+0

私はあなたの回答を理解していますか分かりません。これが既存の消費者を壊すかもしれないと言っていますか?あなたが言及している2つの要素は何ですか?既存のWSDLエンドポイントのtargetNamespaceを変更し、新しいWSDLを作成しないことを提案しました。 –

+0

私はWSDLで定義された2つの要素を意味しました。たとえば、WSDLの 'targetNamespace'を変更すると、メッセージ、バインディング、ポートタイプなどの名前空間が変更されます。 –

答えて

2

名前空間にメジャーバージョン番号を入れます。メジャーとマイナーをドキュメント要素に入れます。この種のものを扱うThomas Erlの素晴らしい本があります:Web Service Contract Design and Versioning for SOA。本書の最善の点は、厳密な、後方互換性のある、または前方互換性のあるバージョン管理戦略を使用することを計画している場合、それぞれの意味が何であるかなど、考慮していないことについて考えさせることです。

関連する問題