Coherence*Extendは、コアとなるCoherence TCMPクラスタの作用範囲を、デスクトップ、リモート・サーバー、WANに接続されたマシンなどのより広範な顧客環境に拡張します。Coherence*Extendはまた、.NETクライアントやC++クライアントなどの幅広い言語をサポートしています。Coherence*Extendの一般的な用途は、Coherenceキャッシュ(ニア・キャッシュや連続問合せのサポートを含む)にアクセスできるデスクトップ・アプリケーションを提供したり、待機時間の長い不安定なWANを介して接続された複数のCoherenceクラスタをリンクするCoherenceクラスタのブリッジを提供したりすることです。
Coherence*Extendは、クラスタの外部で実行されるクライアントと、クラスタの内部で実行されるプロキシ・サービスの2つの基本コンポーネントで構成されます。クライアントAPIにはCacheService
インタフェースとInvocationService
インタフェースの両方の実装が含まれており、これらによって、すべてのリクエストはCoherenceクラスタ内で実行されるプロキシにルーティングされます。プロキシ・サービスはその後、実際のCoherenceクラスタ・サービス(パーティション・キャッシュ・サービスやレプリケーション・キャッシュ・サービスなど)に委任することによってクライアント・リクエストに応答します。
使用可能なCoherence*Extendクライアントには、次の3つがあります。
Java
.NET
C++
Coherence*Extendの設定およびクライアントの作成の詳細は、『Oracle Coherenceクライアント・ガイド』を参照してください。
Coherence*Extendクライアントは、クラスタの完全なデータ・メンバーでなくても、標準のCoherence APIと同等の充実したAPIサポートを提供します。クライアントは次の2種類に分類されます。
データ・クライアント: 次を実行できるベース・クライアントです。
NamedCache
インタフェースを使用したキーベースのキャッシュ・アクセス
フィルタを使用した属性ベースのキャッシュ・アクセス
InvocableMap
インタフェースを使用したクラスタ側エントリのカスタム処理と集計
LocalCache
を使用したインプロセス・キャッシング
起動サービスを使用したクラスタ内のカスタム・タスクのリモート起動
リアルタイム・クライアント(第18章「Real Time Client(RTC)」を参照)
プロキシ・サービスの役割は、Extendクライアントからのリクエストを実際のクラスタ・サービスにディスパッチして、その結果を適切なクライアントに返すことです。プロキシ・サービスは、クラスタ内で実行される1つまたは複数のDefaultCacheServer
プロセスでホストされます。TCP/IP転送バインディングであるExtend-TCPを持つ低レベル型メッセージ・プロトコルを使用してクライアントはプロキシ・サービスと通信します。これによって、高性能でスケーラブルなTCP/IPベースの通信レイヤーを使用してクラスタに接続します。このプロトコルは使用可能なすべてのクライアントでサポートされます。