質問: JAX-RPC バインディングパターンの違いは何ですか?

回答: JAX-RPC は3つのバインディングパターンをサポートします。

static binding を使用する際は、コンパイル済みのクライアントプロキシ (スタブ) を生成するために、開発者は開発時に WSDL <portType> と <binding> をコンパイルします。このスタブはプロキシのインターフェースと実装の両方を含みます。これは、あるアプリケーションがたった一つのWebサービス実装と会話するためのコードを提供します。もしWebサービス実装が何かしら変更されたら、開発者は新しいスタブを生成し、クライアントアプリケーションを再コンパイルしないといけません。このアプローチは最高のパフォーマンスと最低の柔軟性を提供します。

dynamic binding を使用する際、開発者は開発時に WSDL の <portType> だけをコンパイルし、プロキシのインタフェースのみ生成します。実行時にこのアプリケーションは WSDL の <binding> に基づいたプロキシの実装を生成するために、dynamic proxy を使用します。このアプローチにより、クライアントアプリケーションは同じ <portType> を実装するどんなWebサービス実装とも bind することができます。このアプローチは、最初のサービス呼び出しで若干のオーバヘッドがありますが、より多くの柔軟性をもたらします。

dynamic invocation を使用する際、クライアントアプリケーションは実行時に WSDL ドキュメントをパースし、動的にサービス呼び出しを構築します。クライアントアプリケーションにはサービスのセマンティックスに関するいくつかの事前知識が必要ですが、特定のインターフェースに縛り付けられているわけではありません。このアプローチは最高の柔軟性をもたらしますが、より複雑なプログラミングを必要とします。

ja/axis/JaxRPCBindings (last edited 2009-09-20 22:48:27 by localhost)