Sun GlassFish Communications Server 2.0 管理ガイド

Web サービスの概要

Web サービスは、クライアントが Simple Object Access Protocol (SOAP) などの XML ベースプロトコルを使用してアクセスし、HTTP などのインターネットプロトコルを介して送信されるアプリケーションです。クライアントは、Web Services Definition Language (WSDL) ファイルなどの XML アーティファクトを使って定義されたインタフェースとバインディングを通して Web サービスアプリケーションにアクセスします。

eXtensible Markup Language (XML) は、World Wide Web Consortium (W3C) によって開発された規格であり、Web サービス構築の基盤の 1 つです。XML によって、Web サービスとクライアントが共通の言語で互いに通信できます。XML は、シンプルで柔軟な、テキストベースのマークアップ言語です。XML データは、山括弧で囲まれたタグを使用してマーク付けされます。タグ内には、そのタグでマーク付けするデータの意味が含まれます。このようなマークアップにより、異なるシステム間で容易にデータを交換できます。

文書型定義 (Document Type Definitions、DTD) または XML スキーマ定義 (XML Schema Definition、XSD) には、XML ドキュメントの構造が記述されます。これには、対応する XML ドキュメントで使用できるタグや、それらのタグの順序などの情報が含まれます。

XSLT (eXtensible Stylesheet Language Transformation の略) は、XML ドキュメントをある形式から別の形式に変換するために使用されます。

Web サービスの規格

Simple Object Access Protocol (SOAP) は、Web サービスに共通のメッセージング形式を提供します。SOAP によって、互いに未知のオブジェクトがメッセージを交換できます。SOAP では、XML ベースのデータコード化形式と HTTP を使用してメッセージを転送します。SOAP は、プログラミング言語にも動作プラットフォームにも依存せず、エンドポイントで特定のテクノロジを一切必要としません。

Universal Description, Discovery, and Integration (UDDI) は、Web サービスの登録、登録解除、および検索を行うための標準的な方法を提供します。電話システムのイエローページと同様に、UDDI レジストリによって、提供者はサービスを登録し、要求者はサービスを検索できます。要求者がサービスを見つけたあとは、要求者と提供者の間でレジストリが果たす役割はもうありません。

Web Services Description Language (WSDL) は、Web サービスの詳細を指定する標準的な方法を定義します。これは汎用 XML スキーマであり、Web サービスのインタフェース、バインディング、および配備に関するその他の詳細を指定できます。このようなサービスの詳細を指定する標準的な方法があることで、クライアントは予備知識がなくても Web サービスを使用できます。

ebXML (Electronic Business using eXtensible Markup Language) は、企業がインターネットを介してビジネスを行うための一連の仕様です。ebXML 仕様は、OASIS (Organization for the Advancement of Structured Information Standards) により管理されています。

Java EE Web サービスの規格

Java APIs for XML Processing (JAXP) は、XML ドキュメントの解析や処理を行うための、ベンダー中立の一連の軽量 API です。JAXP によって、規格に準拠するすべての XML パーサーを Web サービスに「プラグイン」できます。外部パーサーが「プラグイン」されていない場合、JAXP は自身に実装された XML パーサーを使用します。

Java API for XML-based Remote Procedure Calls (JAX-RPC) は、クライアントサーバー遠隔手続き呼び出しに XML ベースプロトコルを使用します。JAX-RPC は、SOAP ベースの相互運用可能で移植性のある Web サービスを可能にします。開発者は、JAX-RPC プログラミングモデルを使用して、SOAP ベースの Web サービスエンドポイントとそれに対応する WSDL 記述、およびクライアントを開発します。JAX-RPC ベースの Web サービスは、Java ベース以外のクライアントと対話できます。同様に、JAX-RPC ベースのクライアントは、Java ベース以外の Web サービスと対話できます。

Java API for XML Registries (JAXR) は、ビジネスレジストリにアクセスするための Java API です。JAXR には、UDDI およびその他のレジストリ仕様 (ebXML など) をサポートする柔軟なアーキテクチャーが備わっています。JAXR クライアント (スタンドアロン Java アプリケーションや J2EE コンポーネントなど) は、JAXR プロバイダが提供する JAXR API の実装を使用して、ビジネスレジストリにアクセスします。JAXR プロバイダは 2 つの部分から構成されます。 レジストリ固有の API 実装を提供するレジストリ固有の JAXR プロバイダと、レジストリのタイプに依存しない API のレジストリ機能を実装するプラグイン可能な JAXR プロバイダです。プラグイン可能なプロバイダは、レジストリ固有プロバイダの詳細をクライアントから見えないようにします。

SOAP with Attachments API for Java (SAAJ) により、開発者は、SOAP 1.1 仕様と SOAP with Attachments note に準拠するメッセージを作成および処理できます。SAAJ プロバイダは、添付ファイル付きの SOAP メッセージを処理するための抽象化オブジェクトを提供します。上級開発者は、SAAJ を使用して、SOAP メッセージで直接アプリケーションを動作させることができます。添付ファイルには、完全な XML ドキュメント、XML フラグメント、または MIME タイプの添付ファイルを使用できます。また、SAAJ により、開発者は、ほかの MIME タイプのサポートを有効にできます。JAX-RPC などの JAX テクノロジでは、内部的に SAAJ を使用することで、SOAP の複雑さを開発者に感じさせないようにしています。SAAJ には次の機能があります。