JAX-RPC は XML ベース RPC 用 Java™ API (Java API for XML-based RPC) の略語です。JSR 101 と呼ばれる場合もあります。これは、リモート・プロシージャー・コール (RPC) および XML を使用する Web サービスと Web サービス・クライアントを作成するための Java アプリケーション・プログラミング・インターフェース (API) と規則について記述する仕様です。 この仕様は、Java から WSDL、WSDL から Java へのマッピングを標準化し、 Java プラットフォームで Web サービスおよび Web サービス・クライアントを開発するためのコア API を提供します。 RPC メカニズムは、多くの場合、分散クライアント/サーバー・モデルで使用され、 クライアントが他のシステム上でプロシージャーを実行できるようにします。
JAX-RPC の現行リリースでは、インターオペラビリティー確保のために HTTP 上の SOAP のサポートが必要です。 SOAP の仕様は、メッセージ構造、エンコード規則、および RPC プログラミング・モデルにおける情報交換に関する規則を定義します。 これらの呼び出しと応答は、HTTP 上で SOAP メッセージとして送信されます。 現行リリースでは、JAX-RPC は SOAP 1.1 および HTTP 1.1 をサポートしています。 SOAP について詳しくは、SOAP を参照してください。
基礎となるランタイム・メカニズム (例えば、Java から WSDL へのシリアライゼーション、 WSDL から Java へのデシリアライゼーション、プロトコルおよびトランスポートなど) は非常に複雑ですが、API を利用することにより、 アプリケーション開発者はその複雑さを意識しないで作業できます。 サーバー・サイドでは、開発者がサービス・エンドポイント・インターフェース (SEI) を提供することができます。 あるいは、Web サービス・ウィザードを使用して SEI を作成することもできます。 SEI は Java プログラム言語で書かれたインターフェースで、 Web サービスのリモート・プロシージャーを指定します。 開発者は Web サービスの実装も行いますが、 この実装は SEI 上と同じ署名のメソッドを実装する 1 つまたは複数の Java クラスの形式で行われます。 クライアント・プログラムのコーディングも簡単にできます。 クライアントはプロキシー、つまりサービス実装および SEI を表すローカル・オブジェクトを作成し、 その後、作成したプロキシーでメソッドを起動するだけです。
JAX-RPC は相互運用に特に優れています。 JAX-RPC クライアントは Java プラットフォームで実行していない Web サービスにアクセスでき、またその逆も可能です。 この柔軟性は JAX-RPC が HTTP 上の SOAP と Web サービス記述言語 (WSDL) を使用しているために実現します。 JAX-RPC は、WS-I をサポートするために設計されたものです。
JAX-RPC について詳しくは、official JSR 101 specifications を参照してください。