第12章 リモーティング

JBoss Remoting の主な目的は、プラグ可能なトランスポートとマーシャラーを使用するネットワークベースの呼び出しと関連サービスの多くに単一の API を提供することです。 JBoss Remoting のAPI は、 同期および非同期のリモート呼び出し、プッシュ型およびプル型のコールバック、 リモーティングサーバーの自動ディスカバリなどを行う機能を提供します。 これにより、 異なるニーズに対して異なるトランスポートを追加できるようにしながら、 リモート呼び出しに同じ API を維持するようにします。 また、 異なるニーズに対してコードの変更でなく設定の変更のみが必要となります。
Remoting にはそのまま使用できる複数のトランスポート (bisocket、 http、 rmi、 ソケット、サーブレット、これらの SSL が有効になったもの)、 標準かつ圧縮データマーシャラー、標準の jdk シリアル化と JBoss Serialization を切り替える設定可能機能を提供します。リモートクラスローディングも可能で、接続障害通知の大規模な機能も持っています。 さらに、単一の JVM に配置されるクライアント/サーバー呼び出しに対し参照渡しの最適化を実行し、 マルチホーム化されたサーバーを実装します。
Enterprise Application Platform では Remoting は EJB2、 EJB3、 Messaging サブシステムのトランスポート層を提供します。 Remoting の設定の多くは事前に決定され、 固定されていますが、 Remoting 設定の変更方法を知っていると便利な場合があります。

12.1. 背景

Remoting サーバーは、 トランスポート固有のサーバー呼出しをラップし設定するコネクターによって構成されます。 コネクターは次のような InvokerLocator ストリングによって示されます。
    socket://bluemonkeydiamond.com:8888/?timeout=10000&serialization=jboss
この例では、 ソケットトランスポートを使用しているサーバーはホスト bluemonkeydiamond.com の 8888 番ポートでアクセス可能で、 ソケットタイムアウト値 10000 と JBoss Serialization を使用するようサーバーが設定されています。 Remoting クライアントは InvokerLocator を使用して一定のサーバーに接続できます。
Enterprise Application Platform では、Remoting サーバーとクライアントは表面よりかなり深い位置で作成され、設定ファイルからのみアクセス可能です。また、SLSB などが JNDI ディレクトリからダウンロードされた場合、InvokerLocator のコピーもダウンロードされるため、 適切な Remoting サーバーへの連絡方法を認識します。サーバーとクライアントが InvokerLocator を共有するため、InvokerLocator のパラメーターがクライアントとサーバーの両方を設定することに注意してください。