web-dev-qa-db-ja.com

トップダウンWebサービスとボトムアップWebサービスの違いは何ですか?

Javaでは、トップダウンWebサービスとボトムアップWebサービスの違いは何ですか?また、SOAPとREST-ful Webサービスの違いは何ですか?

47
Maverick

トップダウンは、WSDLから始めて、必要なすべての足場をJavaずっと下に作成します。

ボトムアップとは、Javaメソッドで開始し、そこからWSDLを生成することを意味します。

SOAPは、すべての呼び出しでURLが同じであることを意味し、Javaメソッドのパラメーターのみが異なります。RESTは、URLとHTTPメソッドが呼び出されることを意味しますその上に行われる操作を反映しています。

コントラクトファースト対コントラクトラスト

ボトムアップ:アプローチは、問題の高レベルの定義を取得し、それをサブ問題に細分します。

つまりContract-last。ボトムアップ開発スタイルを優先する場合、次のAdvantagesがあります。

  • コードファースト
  • 開発が非常に簡単な初期段階。

デメリット:

  • メンテナンスは非常に困難です。
  • 固く結ばれた

トップダウン:基本的な機能と必要な部品を考えてください。

つまり、contract-first。トップダウン開発スタイルを好む理由は次のとおりです。

1。 Fragilitycontract-last開発スタイルでは、Java契約(通常はインターフェース))からWebサービス契約(WSDLおよびXSD)が生成されます。 Javaコードを変更して再デプロイするたびに、Webサービスコントラクトに変更が加えられる可能性があります。さらに、すべてのSOAPスタックがJava契約から同じWebサービス契約を生成するわけではありません。これは、現在のSOAP Webサービスの契約が変更された場合、契約のユーザーは、新しい契約を取得し、変更に対応するためにコードを変更する可能性があるように指示する必要があります。契約が有用であるためには、それは可能な限り一定に維持する必要があります。契約が変更された場合は、すべてに連絡する必要がありますサービスのユーザーの、および新しいバージョンの契約を取得するように指示します。

2。パフォーマンスJavaが自動的にXMLに変換される場合、ワイヤを介して送信されるものを確認する方法はありません。オブジェクトは別のオブジェクトを参照する場合があります。最終的に、仮想マシンのヒープ上のオブジェクトの半分がXMLに変換され、応答時間が遅くなる可能性があります。コントラクトファーストを使用する場合、送信先のXMLを明示的に記述します。 、したがって、それがまさにあなたが望むものであることを確認します。

3。 Reusability別のファイルでスキーマを定義すると、さまざまなシナリオでそのファイルを再利用できます。

4。 Versioning契約は可能な限り一定に保つ必要がありますが、時々変更する必要があります。 Javaでは、通常、これはAirlineService2などの新しいJavaインターフェイス、およびそのインターフェイスの(新しい)実装になります。もちろん、古いサービスは保持する必要があります。契約を最初に使用する場合、契約と実装の間の疎結合が可能になります。このような疎結合により、1つのクラスに両方のバージョンの契約を実装できます。

enter image description here

11
Premraj

@mad_programmer-ボトムアップまたはトップダウンのアプローチでWebサービスを構築することを意味します。最初に、クラスとビジネスロジックのプログラミングをJavaコードとして開始し、そこからWebサービスコントラクト(つまりWSDL)を生成します。 WSDL)。

7
Anthony Accioly

アンデルセンの答えを支持して、私はポイントを追加したいと思います。基本的に人々はボトムアップアプローチを使用する傾向があります。ほとんどの場合、Bean、ビジネスロジックなどの作成プロセスをすでに開始しており、永続層でWebサービス、WSDLなどを作成するためです。新しいプロジェクトのように、何かをゼロから構築する場合は、トップダウンアプローチを使用できます。WSDLを記述するだけで、スケルトンを構築すると、Bean、実装、インターフェイスなどが得られます。必要なロジック。したがって、プロジェクト全体を実行して、ギャップを埋める必要があります。

5
raja777m

プロジェクトをゼロから開始するときの答えに追加する通常のアプローチは、非常に基本的なインターフェイスを作成し、そこからWSDlを作成することです。これにより、複雑なWSDlを作成する必要がなくなります。次に、プロジェクト固有の操作をWSDlに直接追加し、WSDlが完成したら、トップダウンアプローチを進めます。

4
Varun

トップダウンでは、最初に行うことを定義します。すなわち、あなたのWSDL。そして、実際の開発を進めます。最初にwsdlを作成することは難しいように見えますが、長期的には開発が簡単になるため、推奨される (Eclipseを参照) をお勧めします。

ボトムアップではまったく逆のことが起こります。コード部分から始めて、組み込みツールを使用してwsdlを作成します。これは、最初は簡単に思えるかもしれませんが、コードの複雑さで大きくなると、多くの混乱を引き起こします。

0
VDevD