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