FeaturesPluginsDocs & SupportCommunityPartners

Web サービス入門

このドキュメントでは、NetBeans IDE がサポートする Web サービスの概念と技術の概要を説明します。Web サービスの初心者がチュートリアルを使用する前に読むことを想定しています。

Web サービスは、外部で使用可能な分散アプリケーションコンポーネントです。これらを使用すると、異なる言語で記述されたコンピュータアプリケーションを統合し、異なるプラットフォームで実行できます。Web サービスは、ベンダーが共通の Web サービス標準に同意しているため、言語およびプラットフォームに依存しません。

Sun Microsystems は、Metro という java.net プロジェクトを開発しています。Metro は総合的な Web サービススタックで、「Hello, World!」のような単純なデモから、信頼性のある、セキュリティー保護された、トランザクション方式の Web サービスまで、開発者のすべてのニーズに対応します。詳細については、Metro のホームページを参照してください。

Metro には、WSIT (Web Services Interoperability Technologies) が含まれています。WSIT は、セキュリティー保護、信頼性、メッセージ最適化などの、エンタープライズ機能をサポートしています。WSIT を使用すると、これらの機能を備えた Metro サービスを Microsoft .NET サービスと相互運用できます。Metro の中では、Project Tango が WSIT のコードベースを開発し発展させています。WSIT の仕組みを確認するには、「高度な Web サービス相互運用性」チュートリアルを使用してください。

Web サービス開発者は、複数のプログラミングモデルを使用できます。これらのモデルは、次の 2 つのカテゴリに分類され、どちらも IDE でサポートされています。

  • REST ベース。 REpresentational State Transfer は、Web サービスの作成および Web サービスとの通信のための新しい方法です。REST では、各リソースは URI を持ち、HTTP ヘッダーを操作することで制御されます。詳細は、「RESTful Web サービス」を参照してください。
  • SOAP/WSDL ベース。従来の Web サービスモデルでは、Web サービスのインタフェースは WSDL ドキュメント (XML の一種) を使用し、この中に URL が含まれていました。そのあとのメッセージ交換は SOAP で行われますが、これも別の種類の XML ドキュメントです。詳細は、「SOAP ベースの Web サービス」を参照してください。

RESTful Web サービス

REST ベース (「RESTful」) の Web サービスは、URI で識別される Web リソースの集まりです。すべてのドキュメントおよび処理は、一意の URI を使用して Web リソースとしてモデル化されます。この Web リソースは、HTTP ヘッダーで指定できるアクションで操作します。SOAP、WSDL、WS-* の標準は使用されません。代わりに、メッセージ交換は、XML、JSON、HTML などいずれの形式でも実行できます。多くの場合、Web ブラウザをクライアントとして使用できます。

HTTP は REST でのプロトコルです。使用できるメソッドは、GET、PUT、POST、および DELETE の 4 つのみです。要求をブックマークしたり、応答をキャッシュしたりできます。ネットワーク管理者は HTTP ヘッダーを見るだけで、RESTful サービスでの処理を簡単に追跡できます。

REST は、HTTP インフラストラクチャーが提供するセキュリティー機能で十分なアプリケーションや、HTTP がプロトコルとして適しているアプリケーションを使用する場合に適切な技術です。REST サービスでも洗練された機能を実現できます。Flickr、Google マップ、および Amazon はすべて RESTful Web サービスを提供しています。

Project Jersey は、RESTful Web サービス構築のためのオープンソースの参考実装です。Jersey の API は、NetBeans IDE の「RESTful Web サービス」プラグインとして使用できます。

次のチュートリアルでは、REST サービスの作成および使用を扱っています。

SOAP ベースの Web サービス

SOAP ベースの Web サービスでは、Web サービスの Java コードに基づき、Java ユーティリティーで WSDL ファイルを作成します。WSDL はネット上に公開されます。Web サービスの使用に興味を持っている人が WSDL を使用して Java クライアントを作成します。メッセージは SOAP 形式で交換されます。SOAP で渡すことができる操作の範囲は、REST で使用できる操作よりもかなり幅広く、特にセキュリティー面で充実しています。

SOAP ベースの Web サービスは、複雑な操作を使用する重量アプリケーションおよび高いセキュリティーや信頼性が必要なアプリケーション、または WS-* 標準をサポートする機能に適しています。HTTP 以外のトランスポートプロトコルを使用する必要がある場合にも適しています。Amazon の Web サービスの多数、特に商取引が関係する部分や、銀行や政府機関が使用する Web サービスは SOAP ベースです。

JAX-WS (Java API for XML Web Services) は Metro の SOAP ベース Web サービスで現在使用されているモデルです。JAX-WS は以前の JAX-RPC モデルに基づいて構築されていますが、注釈など Java EE 5 特有の機能を使用して、Web サービスの開発のタスクが簡略化されています。メッセージ配信用に SOAP を使用しているので、JAX-WS は特定のトランスポートに依存しません。また、WS-Security や WS-ReliableMessaging などの WS-* 仕様のモジュールを幅広くサポートしています。

注: SOAP サービスの作成には JAX-WS モデルを使用することを強くお勧めしますが、IDE では従来サービスに対応するために JAX-RPC Web サービスも引き続きサポートしています。この開発を行うには「JAX-RPC Web Services」プラグインをインストールします。

Web サービスクライアントを作成する場合、JAX-WS または JAX-RPC モデルのいずれを使用するかのオプションがあります。これは、一部の古い JAX-RPC サービスでは、JAX-WS でサポートされていない結合スタイルを使用しているためです。これらのサービスは JAX-RPC クライアントによってのみ使用できます。

Metro Web サービスは、Apache Axis2 Web サービスと相互運用が可能です。Apache Axis2 は、W3C へ提案された SOAP (Simple Object-Access Protocol) に関するオープンソース実装です。Axis2 は SOAP 1.1 と SOAP 1.2 をサポートするだけでなく、RESTful Web サービスに対しても統合サポートを提供します。NetBeans IDE での Axis2 Web サービスの詳細については、「NetBeans IDE 上での Apache Axis2 Web サービスの作成」を参照してください。

次のチュートリアルでは JAX-WS SOAP ベースの Web サービスの作成および使用を扱っています。

Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by