1 Coherence*Extendの概要
この章の内容は次のとおりです。
- Coherence*Extendの概要
Coherence*Extendは、コアとなるCoherence TCMPクラスタの作用範囲を、デスクトップ、リモート・サーバー、WANに接続されたコンピュータなどのより広範な顧客環境に拡張します。 - Extendクライアント
Extendクライアント(リアルタイム・クライアントとも呼ばれる)は、Java、.NETおよびC++の各プラットフォーム用に作成でき、クラスタの完全なメンバーでなくとも、標準のCoherence APIと同等のAPIにアクセスできます。 - ExtendクライアントAPI
Java、C++および.NET (C#)の各ネイティブ・ライブラリを使用して、Extendクライアントを構築できます。 - POFシリアライズ
キャッシュ・クライアントと同様に、Extendクライアントでは、クラスタに格納するオブジェクトをシリアライズする必要があります。 - Extendクライアント構成ファイルの理解
Extendクライアントは、クライアントとパッケージ化されてデプロイされている場合を除き、クラスタ側の構成ファイルと同じものを多く使用します。 - 非ネイティブ・クライアントのサポート
Coherenceでは、RESTベースまたはmemcachedベースのクライアントからキャッシュにリモート・アクセスできます。
親トピック: はじめに
Coherence*Extendの概要
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クライアントを拡張プロキシ・サービスに接続している状態を示しています。
キャッシュ・クライアントと同様に、Extendクライアントでは、キャッシュ・ファクトリを使用してCoherenceクラスタ化サービスを取得します。サービスを取得すると、クライアントでは、Coherenceクラスタの一部であるかのようにそのサービスを使用します。リモート・クラスタ・ノードに送信される操作は、クライアント・アプリケーションに対して透過的になります。
親トピック: Coherence*Extendの概要
Extendクライアント
Extendクライアントによって次のことが可能になります。
-
NamedCache
インタフェースを使用したキーベースのキャッシュ・アクセス -
フィルタを使用した属性ベースのキャッシュ・アクセス
-
InvocableMap
インタフェースを使用したクラスタ側エントリのカスタム処理と集計 -
LocalCache
を使用したインプロセス・キャッシング -
起動サービスを使用したクラスタ内のカスタム・タスクのリモート起動
-
標準Coherenceイベント・モデルを使用したイベント通知。クラスタ内で発生したデータ変更をクライアント・アプリケーションで確認できます。クライアント・アプリケーションで登録されたイベントのみが、ネットワークに配信されます。このモデルでは、ネットワーク帯域幅とクライアント処理が効率的に使用されます。
-
キャッシュ・データをローカルに維持するニア・キャッシュと連続問合せキャッシュ。クライアント・アプリケーションが接続されているサーバーで障害が発生した場合は、接続が別のサーバーとの間で自動的に再確立され、ローカルにキャッシュされているデータはクラスタとの間で再び同期化されます。
リアルタイムのクライアント機能の完全なリストは、『Oracle Fusion Middlewareライセンス情報ユーザー・マニュアル』のOracle Coherence製品に関する項を参照してください。
親トピック: Coherence*Extendの概要
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の機能については、このガイドの次の各項でも説明します。
-
Java – APIの使用方法の詳細は、「Java Extendクライアントの作成」を、APIドキュメントの詳細は、Oracle Coherence Java APIリファレンスを参照してください。
-
C++ – APIの使用方法の詳細は、「C++ Extendクライアントの作成」を、APIドキュメントの詳細は、Oracle Coherence C++ APIリファレンスを参照してください。
-
.NET – APIの使用方法の詳細は、.NET Extendクライアントの作成を、APIドキュメントの詳細は、Oracle Coherence .NET APIリファレンスを参照してください。
親トピック: Coherence*Extendの概要
POFシリアライズ
オブジェクトをクラスタにシリアライズするクライアントでは、オブジェクトに対してgetベースとputベースの操作を実行できます。ただし、問合せや入力プロセッサなどの機能では、データ・オブジェクトのシリアライズ表現を保持するだけでなく、Javaベースのキャッシュ・サーバーを使用してデータ・オブジェクトと相互作用する必要があります。データ・オブジェクトと相互作用してそのプロパティにアクセスするには、キャッシュ・サーバーでJavaバージョンのオブジェクトを利用できようにする必要があります。
JavaでのPOFの使用方法の詳細は、『Oracle Coherenceでのアプリケーションの開発』の「Portable Object Formatの使用」を参照してください。C++およびC#でのPOFの使用方法の詳細は、それぞれ、統合オブジェクトの構築(C++)および統合オブジェクトの構築(.NET)を参照してください。
親トピック: Coherence*Extendの概要
Extendクライアント構成ファイルの理解
Extendクライアントの構成ファイルには次のものがあります。
-
キャッシュ構成デプロイメント・ディスクリプタ – このファイルは、クライアント側のキャッシュ・サービスおよび起動サービスを定義するために使用します。クライアントの接続先であるクラスタ側の拡張プロキシ・サービスのアドレスとポートを指定する必要があります。このファイルのスキーマは、JavaおよびC++クライアント用が
coherence-cache-config.xsd
で、.NETクライアント用がcache-config.xsd
です。『Oracle Coherenceでのアプリケーションの開発』のキャッシュ構成の要素に関する項を参照してください。実行時には、クラスパスで最初に検出されたキャッシュ構成ファイルが使用されます。
coherence.cacheconfig
システム・プロパティを使用して、キャッシュ構成ファイルを明示的に指定することもできます。このファイルは、プログラムによっても設定できます。Oracle Coherenceでのアプリケーションの開発のキャッシュ構成ファイルの指定を参照してください。 -
POF構成デプロイメント・ディスクリプタ – このファイルは、POFを使用してオブジェクトをシリアライズする際に、カスタム・データ型を指定するために使用します。このファイルのスキーマは、JavaおよびC++クライアント用が
coherence-pof-config.xsd
で、.NETクライアント用がpof-config.xsd
です。『Oracle Coherenceでのアプリケーションの開発』のPOFユーザー定義型の構成要素に関する項を参照してください。実行時には、クラスパスで最初に検出されたPOF構成ファイルが使用されます。
coherence.pof.config
システム・プロパティを使用して、POF構成ファイルを明示的に指定することもできます。POFを使用すると、クライアント・アプリケーションでは、Coherence固有のPOF構成ファイルと、クライアントで使用されているユーザー定義型固有のPOF構成ファイルが使用されます。『Oracle Coherenceでのアプリケーションの開発』のPOF構成ファイルの指定に関する項を参照してください。 -
オペレーション・オーバーライド・ファイル – このファイルは、オペレーション・デプロイメント・ディスクリプタをオーバーライドするために使用します。クラスタリング、通信およびデータ管理のサービスを作成、構成および維持するために使用する、操作設定およびランタイム設定を指定します。Extendクライアントの場合、このファイルは通常、メンバーのID、ロギング、セキュリティおよびライセンスをオーバーライドするために使用します。このファイルのスキーマは、JavaおよびC++クライアント用が
coherence-operational-config.xsd
で、.NETクライアント用がcoherence.xsd
です。『Oracle Coherenceでのアプリケーションの開発』の「オペレーション構成の要素」を参照してください。実行時には、クラスパスで最初に検出されたオペレーション・オーバーライド・ファイル(
tangosol-coherence-override.xml
)が使用されます。coherence.override
システム・プロパティを使用して、オペレーション・オーバーライド・ファイルを明示的に指定することもできます。このファイルは、プログラムによっても設定できます。『Oracle Coherenceでのアプリケーションの開発』のデフォルトのオペレーション・オーバーライド・ファイルの使用に関する項を参照してください。
親トピック: Coherence*Extendの概要
非ネイティブ・クライアントのサポート
RESTおよびmemcachedのクライアントAPIは多くの一般的なプログラミング言語で使用できるため、Coherenceを異機種間環境で使用できます。非ネイティブ・クライアントを使用して、ネイティブCoherenceクライアントAPIを使用するCoherenceソリューションへの移行を容易にすることもできます。
この項には次のトピックが含まれます:
RESTクライアントのサポート
Coherenceでは、HTTPプロトコルを介してキャッシュ操作にアクセスできるREST実装が提供されます。任意のRESTクライアントAPIがCoherenceキャッシングを使用できます。RESTサポートは、プロキシ・サーバー上のExtendのようなアクセプタとして構成されている埋込みHTTPサーバーを介して、または任意のJava EEベースのアプリケーション・サーバーへのデプロイメントを介して提供されます。「Coherence RESTの使用」を参照してください。
親トピック: 非ネイティブ・クライアント・サポート
Memcachedクライアントのサポート
Coherenceをmemcachedサーバーの代替として使用できます。memcachedバイナリ・プロトコルをサポートするすべてのmemcachedクライアントAPIは、Coherence分散キャッシングを使用できます。memcachedのサポートは、プロキシ・サーバー上で実行されるアクセプタと同様に、拡張として実装されるmemcachedアダプタを通して提供されます。『Oracle Coherenceの統合』のmemcachedクライアントとOracle Coherenceの併用に関する項を参照してください。
親トピック: 非ネイティブ・クライアント・サポート