2012-06-20 10 views
9

Webサービスは、Web(Http)経由で他のプログラムからアクセスできる機能です。ちょっと明確にするために、PHPでHTMLを出力するWebサイトを作成すると、そのターゲットはブラウザーであり、拡張子はブラウザーでページを読む人間です。 Webサービスは、人間を対象とするのではなく、他のプログラムを対象としています。RESTful Webアプリケーションとは何ですか?

  1. SOAPとRESTは、Webサービスを作成する2つの方法です。もし私が が間違っていれば私を訂正しますか?
  2. WebServiceを作成する他の方法は何ですか?
  3. 完全にRESTfulなWebアプリケーションとはどういう意味ですか?
+3

これはおそらくhttp://programmers.stackexchange.comまたは[Google](http://google.com)に属しています。 – lanzz

+0

広告。 1 必ずしもそうではありません。 2つの方法はBig Web ServicesとRESTful Web Servicesです。 SOAPを使用しているか使用していないのか少し複雑です。 SOAPはRESTに従って使用できます。 広告。 3 ロイ・フィールディングの論文を読んで読んでください。また、ROA(Resource Oriented Architecture)の読み方をお勧めします。これは、REST自体の概念よりもいくらか具体的です。 RESTfulなデザインの中でも最も一般的に適用されます。これはREST自体としばしば混同されます。 – toniedzwiedz

+0

HTTPで扱われるウェブサイトは、人間だけでなく、HTTPブラウザでもターゲットにされているわけではありません;)したがって、WWWでハイパーテキストを提供する*はWebサービスです。 – hakre

答えて

4
  1. 正しい
  2. W3Cは、「ネットワーク上で相互運用可能なマシン間インターラクションをサポートするように設計されたソフトウェア・システム」として「Web service」を定義します。
  3. 完全にRESTfulなサービスは、すべてまたはRoy Fieldingの論文でレイアウトされたアーキテクチャ上の制約Architectural Styles and the Design of Network-based Software Architecturesに準拠したサービスです。それは長い読書であり、多くの解釈があります。良いスタートはRichardson Maturity Modelに慣れることです。 注: RESTfulであると主張するほとんどのWebサービスは、そのモデルのlevel 2にしかありません。
0

完全にRESTfulなサービスが何であるかを理解するためには、RESTfulなサービスと標準のWebサービスの違いを理解しておく必要があります。これは、OracleによるJEE6チュートリアルでexaplainedかなり良いです:

NonRESTful(JAX-WSなどのJavaで)Webサービス:ビッグウェブサービスは、シンプルオブジェクトアクセスプロトコル(SOAP)標準に従っ XMLメッセージを使用して、XML言語の定義 メッセージアーキテクチャとメッセージフォーマットそのようなシステムは、しばしば構文的にインターフェースを定義するためのXML言語であるWebサービス記述 言語(WSDL)で記述された、サービスによって提供される操作の機械読み取り可能な記述を含む。 SOAPメッセージ形式とWSDLインターフェイス定義言語は、広く採用されて となっています。 NetBeans IDEなどの多くの開発ツールは、Webサービスアプリケーションの開発における複雑さを軽減することができます( )。 SOAPベースのデザインには、次の要素が含まれている必要があります。

■Webサービスが提供するインタフェースを記述する正式な契約が確立されている必要があります。 WSDLを使用して、メッセージ、 操作、バインディング、およびWebサービスの場所を含む契約の詳細を記述できます。 WSDLを公開せずにSOAP メッセージをJAX-WSサービスで処理することもできます。

■アーキテクチャは、複雑な非機能要件に対応する必要があります。多くのWebサービス の仕様は、そのような要件に対処し、それらのための共通の語彙を確立します。 例には、トランザクション、セキュリティ、アドレッシング、信頼、調整などが含まれます。

■アーキテクチャは、非同期の処理と呼び出しを処理する必要があります。このような場合、Webサービス信頼性のあるメッセージ (WSRM)などの標準によって提供されるインフラストラクチャと、クライアント側の非同期呼び出し をサポートするJAX-WSなどのAPIをそのまま使用することができます。

RESTful Webサービス(JAX-RSとしてのJava) Java EE 6では、JAX-RSは、Representational State Transfer(RESTful) Webサービスの機能を提供します。 RESTは、基本的なアドホックな統合シナリオに適しています。 RESTful Webサービス は、SOAPベースのサービスよりもHTTPとの統合がよく、XMLメッセージ またはWSDLサービスAPI定義は不要です。 Project Jerseyは、JAX-RS仕様の実稼働準備済みリファレンス実装です。 Jerseyは、JAX-RS仕様で定義されているアノテーションをサポートしているため、開発者はJavaおよびJava仮想マシン (JVM)を使用してRESTful Webサービスを容易に構築できます。 Webサービス の

タイプRESTful Webサービスは、既存のよく知られたW3Cとインターネットエンジニアリングタスク フォース(IETF)標準(HTTP、XML、URI、MIME)を使用して がサービスを構築することを可能にする軽量なインフラを持っているのでRESTful Webサービスを開発することは安価で であり、導入の障壁は非常に低くなります。 NetBeans IDEのような開発ツールを使用して、RESTful Webサービスの開発の複雑さをさらに減らすことができます。 次の条件が満たされている場合、RESTfulなデザインが適切な場合があります。

■Webサービスは完全にステートレスです。良いテストは、サーバーの再起動後に対話が生き残れるかどうかを検討することです。

■キャッシングインフラストラクチャをパフォーマンスのために活用できます。ウェブサービス が返すデータが動的に生成されずにキャッシュされる場合、ウェブサーバ が本質的に提供するキャッシングインフラストラクチャを利用して、 のパフォーマンスを向上させることができます。ただし、ほとんどのサーバーではこのキャッシュがHTTP GETメソッドの に限定されているため、開発者は注意が必要です。

■サービスプロデューサとサービスコンシューマは、コンテキストと、 のコンテンツが引き継がれていることを相互に理解しています。 Webサービス インターフェイスを記述する正式な方法がないため、両者は、 が交換されているデータを記述しているスキーマと、それを有意義に処理する方法について、帯域外で同意する必要があります。現実世界では、RESTfulな実装としてサービスを公開する最も一般的な アプリケーションは、普及しているプログラミング言語 言語の開発者向けのインタフェースを記述する、いわゆる 付加価値ツールキットを配布しています。

■帯域幅は特に重要であり、制限する必要があります。 RESTは、 ヘッダーのオーバーヘッドとXMLペイロード上のSOAP要素の追加レイヤーを制限する必要がある、PDAや携帯電話などの限定プロファイルデバイスで特に便利です。

■Webサービスの配信または既存のWebサイトへの集約は、 RESTfulスタイルで簡単に有効にすることができます。開発者は、JAX-RSやAsynchronous JavaScript with XML(AJAX)などの技術と、Webアプリケーションのサービスを で消費するDirect Web Remoting(DWR)などのツールキットを使用できます。ゼロから始めるのではなく、サービスは、 をXMLで公開し、HTMLページで消費することができます( 既存のWebサイトアーキテクチャを大幅にリファクタリングする必要はありません)。既存の開発者は、 という新技術で一から始めるのではなく、既に慣れ親しんだものに追加することで、生産性が向上します。

基本的に、あなたがウェブ上で統合のためのRESTful Webサービスを利用したいと サービスの品質を進めてきた、エンタープライズアプリケーション統合シナリオに大きな Webサービスを使用する

を使用するためのWebサービスのどのタイプを決定( QoS)要件。

■WebServices:企業で一般的に発生する高度なQoS要件を処理します。 コンピューティング。 [..]

■RESTfull:それは簡単なサーバー進化疎結合 が(なしに容易であるなどのアプリケーションで望ましい特性を誘導するために、いくつかまたはRESTスタイルの制約のすべてを適用するWebアプリケーションを書くことができますスケーラビリティ(小規模から始めて )、アーキテクチャの簡素化(プロキシやHTTP ルーターなどの市販コンポーネントを使用)など、さまざまな機能を備えています。 多くのタイプのクライアントがRESTfulなWebサービスを消費する一方で、サーバ側で を進化させて拡大縮小することが容易になるため、WebアプリケーションにJAX-RSを使用することを選択します。クライアントは、サービスの一部または全部を消費することを選択し、他のWebベースのサービスとマッシュアップすることが可能です( )。

関連する問題