ヘッダーをスキップ
Oracle® Coherenceクライアント・ガイド
リリース3.6.1
B61370-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

1 概要

Coherence*Extendは、コアとなるCoherence TCMPクラスタの作用範囲を、デスクトップ、リモート・サーバー、WANに接続されたマシンなどのより広範な顧客環境に拡張します。Coherence*Extendの一般的な用途は、Coherenceキャッシュ(ニア・キャッシュや連続問合せのサポートを含む)にアクセスできるデスクトップ・アプリケーションを提供したり、待機時間の長い不安定なWANを介して接続された複数のCoherenceクラスタをリンクしたりすることです。

この章は次の各項で構成されています。

コンポーネントの概要

Coherence*Extendは、クラスタの外部で実行されるExtendクライアントと、1台以上のキャッシュ・サーバー(DefaultCacheServer)でホストされているクラスタ内で実行される拡張プロキシ・サービスの2つの基本コンポーネントで構成されます。クライアントAPIにはCacheServiceインタフェースとInvocationServiceインタフェースの両方の実装が含まれており、これらによって、すべてのリクエストはプロキシにルーティングされます。プロキシは、実際のCoherenceクラスタ・サービス(パーティション化またはレプリケートされたキャッシュ・サービス、起動サービスなど)に委任することによってクライアント・リクエストに応答します。

Coherence*Extendでは、Extend-TCP転送バインディング(低レベルのメッセージ・プロトコル)を使用して、クライアントとクラスタの間の通信を行います。このプロトコルは、高性能でスケーラブルなTCP/IPベースの通信レイヤーです。転送バインディングは、構成により、Coherence*Extendを使用するクライアント・アプリケーションに対して完全に透過的に行われます。

図1-1は、Coherence*Extendのコンポーネントの概念図であり、Extend-TCPを使用してExtendクライアントを拡張プロキシ・サービスに接続している状態を示しています。

図1-1 Coherence*Extendのコンポーネントの概念図

Extendクライアントのシナリオの概念図

キャッシュ・クライアントと同様に、Extendクライアントでは、キャッシュ・ファクトリを使用してCoherenceクラスタ・サービスを取得します。サービスを取得すると、クライアントでは、Coherenceクラスタの一部であるかのようにそのサービスを使用します。リモート・クラスタ・ノードに送信される操作は、クライアント・アプリケーションに対して透過的になります。

クライアントの種類

Extendクライアントは、Java、.NETおよびC++の各プラットフォーム用に作成でき、クラスタの完全なメンバーでなくとも、標準のCoherence APIと同等の充実したAPIにアクセスできます。通常、クライアント・アプリケーションでは、直接読取り/書込みアクセスを有効化できますが、クラスタ・データに対しては読取りアクセスのみが付与されます。クライアントには、データ・クライアントとリアルタイムExtendクライアントの2つのカテゴリがあります。

データ・クライアント

データ・クライアントは、クラスタ内のデータへのアクセス(入力、取得、問合せ)や、標準のCoherence APIを使用した起動サービス・リクエストが可能な、Extendクライアントです。特に、データ・クライアントには次の機能があります。

  • NamedCacheインタフェースを使用したキーベースのキャッシュ・アクセス

  • フィルタを使用した属性ベースのキャッシュ・アクセス

  • InvocableMapインタフェースを使用したクラスタ側エントリのカスタム処理と集計

  • LocalCacheを使用したインプロセス・キャッシング

  • 起動サービスを使用したクラスタ内のカスタム・タスクのリモート起動

Extendクライアントはデータ・クライアントとしてライセンスされており、Coherenceのいずれのサーバー・エディション(Standard、EnterpriseまたはGrid)でも使用できます。データ・クライアントの機能の詳細は、『Oracle Fusion Middlewareライセンス情報』のOracle Coherenceに関する項を参照してください。


注意:

データ・クライアントには、クラスタ内のデータの変更は通知できません。さらに、データ・クライアントには、ニア・キャッシュや連続問合せキャッシュの機能はありません。これらの機能も、クラスタからのデータ変更通知を受信する機能に依存しているためです。これらの機能に関しては、リアルタイム・クライアントを使用する必要があります。

リアルタイム・クライアント

リアルタイム・クライアント(Extend-TCP)には、データ・クライアントと同じ機能が備わっています。ただし、データ・クライアントとは異なり、リアルタイム・クライアントでは次の機能もサポートされています。

  • イベント通知 – 標準のCoherenceイベント・モデルを使用すると、クラスタ内で発生したデータの変更をクライアント・アプリケーションで確認できます。クライアント・アプリケーションで登録されたイベントのみが、ネットワークに配信されます。このモデルでは、ネットワーク帯域幅とクライアント処理が効率的に使用されます。

  • ローカル・キャッシュ – クラスタで管理されるキャッシュにクライアント・アプリケーションが直接アクセスできても、ネットワーク・インフラストラクチャによっては効果がない場合があります。効率を高めるために、リアルタイム・クライアントでは、ニア・キャッシュと連続問合せの両方を使用して、キャッシュ・データをローカルに維持できます。クライアント・アプリケーションが接続されているサーバーで障害が発生した場合は、接続が別のサーバーとの間で自動的に再確立され、ローカルにキャッシュされているデータはクラスタとの間で再び同期化されます。

Extendクライアントはリアルタイム・クライアントとしてライセンスされており、Coherence Gridサーバー・エディションでのみ使用できます。リアルタイム・クライアントの機能の詳細は、『Oracle Fusion Middlewareライセンス情報』のOracle Coherenceに関する項を参照してください。

クライアントAPI

Java、C++および.NET(C#)の各ネイティブ・ライブラリを使用して、Extendクライアントを構築できます。APIはそれぞれ独自の方法で配布されており、別個にインストールする必要があります。Extendクライアントでは、それぞれのAPIを使用して、クラスタ内のデータに対して、アクセス、変更、問合せなどのキャッシュ操作を行います。C++ APIとC# APIは、プラットフォーム間の動作を一貫させるために、できるかぎりJava APIに従っています。

たとえば、JavaクライアントでCacheFactory.getCacheメソッドを使用してNamedCacheインスタンスを取得する場合は次のようになります。

NamedCache cache = CacheFactory.getCache("dist-extend");

C++の場合は、APIは次のようになります。

NamedCache::Handle hCache = CacheFactory::getCache("dist-extend");

C#の場合は、APIは次のようになります。

INamedCache cache = CacheFactory.GetCache("dist-extend");

この機能およびその他の多くのAPIの機能については、このガイドの次の各項でも説明します。

POFシリアライズ

キャッシュ・クライアントと同様に、Extendクライアントでは、クラスタに格納するオブジェクトをシリアライズする必要があります。C++クライアントおよびC#クライアントでは、言語に依存しないバイナリ形式であるCoherenceのPortable Object Format(POF)を使用します。Java Extendクライアントでも、通常はPOFを使用してシリアライズを行います。ただし、Javaオブジェクトのシリアライズには、Javaネイティブ・シリアライズやカスタム・シリアライズ・ルーチンなど、他のオプションもいくつかあります。『Oracle Coherence開発者ガイド』の「オブジェクトのシリアライズ」を参照してください。

オブジェクトをクラスタにシリアライズするクライアントでは、オブジェクトに対してgetベースとputベースの操作を実行できます。ただし、問合せや入力プロセッサなどの機能では、データ・オブジェクトのシリアライズ表現を保持するだけでなく、Javaベースのキャッシュ・サーバーを使用してデータ・オブジェクトと相互作用する必要があります。データ・オブジェクトと相互作用してそのプロパティにアクセスするには、キャッシュ・サーバーでJavaバージョンのオブジェクトを利用できようにする必要があります。

JavaでのPOFの使用方法の詳細は、『Oracle Coherence開発者ガイド』の「Portable Object Formatの使用」を参照してください。C++およびC#でのPOFの使用方法の詳細は、それぞれ、第11章「C++クライアントの統合オブジェクトの構築」および第20章「.NETクライアントの統合オブジェクトの構築」を参照してください。

クライアント構成ファイルについて

Extendクライアントは、複数の構成ファイルを使用して構成します。この構成ファイルは、クラスタ構成ファイルと同じです。ただし、クライアント構成ファイルはクライアントでデプロイされています。該当するファイルは次のとおりです。