2012-05-11 4 views
89

最近、私はJava Webサービスの学習を始めることに決めました。そして、私がgoogleでJava Webサービスのチュートリアルを検索し始めたとき、SOAPベースのRESTful Webサービスである多くの種類のWebサービスXMLベースが見つかりました。私はJavaでWebサービスを学ぶ必要があります。それにはどのような種類がありますか?

はまた、私は、XMLベースのWebサービスのためのJAX-WS仕様があることを見出し、そしてRESTfulなWebサービスを作成するためのJAX-RS仕様。誰もが私が最初に学ぶためにどちらかを決定できるように、私は、Webサービスのこれらの異なる種類の違いを理解するのを助けることができるかどう

Q1)私は混乱してしまったが、それは素晴らしいことです。

Q2)さらに、さまざまなタイプのWebサービスをJavaで作成する方法について深く学びたいと思います。それぞれの種類のWebサービスとそれらの比較についての洞察を与えることができるチュートリアルやリソースはありますか?私はXMLベースのWebサービスではなく、SOAPサービスを作成したいか、私はRESTfulなサービスで行くべきであると判断するべきシナリオや条件に基づいて

Q3)。ここで

+0

[のJava EE 6チュートリアル](http://docs.oracle.com/javaee/6/tutorial/doc/) –

+1

グッドquestion.thanksそれほど明確であることのための本:) – Krishna

答えて

138
  1. SOAP Web Servicesは、標準ベースで、ほぼすべてのソフトウェアプラットフォームによってサポートされています。彼らは、XMLに大きく依存し、トランザクション、セキュリティ、非同期メッセージや他の多くの問題をサポートしています。これは非常に大きく複雑な標準ですが、ほぼすべてのメッセージングの状況をカバーしています。一方、は、HTTPプロトコルと動詞(GET、POST、PUT、DELETE)を使用して、任意の形式のメッセージ(JSONとXML)を交換します。それはかなりシンプルでエレガントなアーキテクチャアプローチです。
  2. Java Worldのすべてのトピックと同様に、Webサービスを構築/使用するライブラリがいくつかあります。 SOAP側にはJAX-WS standardApache Axisがあり、RESTでは他のライブラリの中でRestletsまたはSpring REST Facilitiesを使用できます。質問3で

、RESTfulなサービスは、このシナリオでappropiateあるthis article状態:

  • あなたの操作がステートレスであればあなたは、帯域幅
  • が限られている場合は、次のところ情報は、1回の呼び出しからに保存されていません次の1つで、各リクエストは独立して処理されます。
  • クライアントにキャッシュが必要な場合。

SOAPは、移動するための方法ですが:あなたのサービス業務で正式契約/インタフェース

  • が必要な場合は、非同期処理
  • が必要な場合は

    • はステートフルです:たとえば、情報/データを要求に格納し、その格納されたデータを次のデータに使用する。
  • +11

    +1ため –

    +0

    鮮明で明確な答え。 – Krishna

    +0

    +1良い答え... ... !!! –

    13

    Q1)続きを読むか、Googleにカップルの事です:

    Main differences between SOAP and RESTful web services in java http://www.ajaxonomy.com/2008/xml/web-services-part-1-soap-vs-rest

    それはあなたが最初に学びたい何をすべきかはあなた次第です。 CXFフレームワークをご覧ください。両方の休憩/石鹸サービスを構築することができます。

    http://united-coders.com/phillip-steffensen/developing-a-simple-soap-webservice-using-spring-301-and-apache-cxf-226

    http://www.benmccann.com/blog/web-services-tutorial-with-apache-cxf/

    http://www.mastertheboss.com/web-interfaces/337-apache-cxf-interceptors.html

    学ぶため

    最良の方法は、ただ読んでいない:ここでは

    Q2)は石鹸のための優れたチュートリアルのカップル(私はそれらをブックマークしていた)ですチュートリアル。しかし、基本的なアイデアを得るためにまずチュートリアルを行って、何かを生み出すことができて、それがあなたに動機を与えることができることが分かります。

    はSO特定の技術(またはそれ以上)を学ぶのに最適な方法である、人々は奇妙な質問の多くを尋ね、そして奇妙答えは、これまであります。しかし全体的に、あなたは他の方法で問題を解決する方法について学びます。たぶんあなたはその方法を知らなかったかもしれません、多分あなたはそれをあなた自身で考えることができませんでした。

    興味深いタグをいくつかご紹介してください。良い質問をして良い回答をしようとすると、時間がたつにつれてこれを学ぶことが保証されます。

    Q3)あなたはこの1を自分で答えなければなりません。最初にあなたが何を構築しようとしているのかを決めることによって、ミニプロジェクトや何かを考える必要があります。

    あなたはどちらかREST/SOAPサービスを構築するためのあなたのフレームワークとしてCXFを使用する場合、私はあなたがこの本Apache CXF Web Service Developmentを調べるお勧めします。 読書が難しくないし、あまりにも大きくない(勝ち)。

    +1

    +1シナリオを述べています:) – Saju

    7

    SOAP WSは、リモートプロシージャコール(RPC)とメッセージ指向のミドルウェア(MOM)の両方の統合スタイルをサポートします。 Restful Web Serviceは、RPC統合スタイルのみをサポートしています。

    SOAP WSはトランスポートプロトコルに中立です。 HTTP(S)、メッセージング、TCP、UDP SMTPなどのような複数のプロトコルをサポートします。RESTはトランスポートプロトコル特有です。 HTTPまたはHTTPSプロトコルのみをサポートします。

    SOAP WSは、XMLデータ形式のみを許可します。操作は、POSTを通じてトンネルされます。フォーカスは、名前付き操作にアクセスし、アプリケーションロジックをサービスとして公開することです。 RESTでは、XML、JSONデータ、テキスト、HTMLなどの複数のデータ形式を使用できます。RESTアプローチでは、標準のGET、PUT、POST、およびDELETEのWeb操作を使用するため、すべてのブラウザを使用できます。焦点は、指定されたリソースへのアクセスとデータをサービスとして公開することです。 RESTにはAJAXがサポートされています。 XMLHttpRequestオブジェクトを使用できます。ステートレスなCRUD(Create、Read、Update、Delete)操作に適しています。 GET - acceptRepresention() PUT - - storeRepresention() DELETE - () POST表し基づいremoveRepresention()を

    SOAPをキャッシュすることができない読み込みます。 RESTベースの読み取りはキャッシュできます。より良いパフォーマンスとスケーラビリティ。 SOAP WSは、SSLセキュリティとWSセキュリティの両方をサポートしています。これは、必要なポイントまでセキュリティを維持し、仲介によってIDを維持し、ポイントツーポイントのSSLだけでなく、メッセージのさまざまな部分異なるセキュリティアルゴリズムなどを使用します。RESTは、ポイントツーポイントSSLセキュリティのみをサポートします。SSLはすべてが機密であるかどうかにかかわらず、メッセージ全体を暗号化します。 SOAPは、短命トランザクションのACIDベースのトランザクション管理と長期実行トランザクションの補償ベースのトランザクション管理の両方を包括的にサポートしています。また、分散リソース全体の2フェーズコミットもサポートしています。 RESTはトランザクションをサポートしますが、ACIDにも準拠していないし、HTTPプロトコルによって制限されているため、分散トランザクション・リソース全体で2フェーズ・コミットを提供することもできません。

    SOAPには成功または再試行ロジックが組み込まれており、SOAP仲介によってもエンドツーエンドの信頼性が提供されます。 RESTには標準的なメッセージングシステムはなく、再試行によって通信障害を処理するためにクライアントを呼び出すクライアントが必要です。

    ソースhttp://java-success.blogspot.in/2012/02/java-web-services-interview-questions.html

    +0

    > Restful Web Serviceは、RPC統合スタイルのみをサポートしています。 RESTはRPCではなく、RPCは「何かを行ういくつかのメソッドを定義する」と言っていますが、RESTは「いくつかのリソースを定義し、これらのメソッドを持つ」と述べています。 http://www.peej.co.uk/articles/rest.html – pmu

    0

    アプリケーションは、多くの場合、HTTPプロトコルを使用している場合、REST理由は、その軽量の最高です とアプリケーションがSOAPを選択するだけで、httpプロトコルを使用していることを知ることは良い、なぜならそれは重いあまり良くありませんアプリケーションで使用するプロトコルに基づいてWebサービスの選択を決定します。

    関連する問題