この章の内容は次のとおりです。
親トピック: はじめに
Coherence*Extendは、2つの基本コンポーネントで構成されます。それらは、クラスタの外部で実行されるExtendクライアントと、ストレージが無効な1台以上のキャッシュ・サーバー(DefaultCacheServer
)に配置されたクラスタで実行される拡張プロキシ・サービスです。クライアントAPIにはCacheService
インタフェースとInvocationService
インタフェースの両方の実装が含まれており、これらによって、すべてのリクエストはプロキシにルーティングされます。プロキシは、実際のCoherenceクラスタ化サービス(パーティション化またはレプリケートされたキャッシュ・サービス、起動サービスなど)に委任することによってクライアント・リクエストに応答します。
Coherence*Extendでは、Extend-TCP転送バインディング(低レベルのメッセージ・プロトコル)を使用して、クライアントとクラスタの間の通信を行います。このプロトコルは、高性能でスケーラブルなTCP/IPベースの通信レイヤーです。転送バインディングは、構成により、Coherence*Extendを使用するクライアント・アプリケーションに対して完全に透過的に行われます。
図1-1は、Coherence*Extendのコンポーネントの概念図であり、Extend-TCPを使用してExtendクライアントを拡張プロキシ・サービスに接続している状態を示しています。
キャッシュ・クライアントと同様に、Extendクライアントでは、キャッシュ・ファクトリを使用してCoherenceクラスタ化サービスを取得します。サービスを取得すると、クライアントでは、Coherenceクラスタの一部であるかのようにそのサービスを使用します。リモート・クラスタ・ノードに送信される操作は、クライアント・アプリケーションに対して透過的になります。
Extendクライアントによって次のことが可能になります。
NamedCache
インタフェースを使用したキーベースのキャッシュ・アクセス
フィルタを使用した属性ベースのキャッシュ・アクセス
InvocableMap
インタフェースを使用したクラスタ側エントリのカスタム処理と集計
LocalCache
を使用したインプロセス・キャッシング
起動サービスを使用したクラスタ内のカスタム・タスクのリモート起動
標準Coherenceイベント・モデルを使用したイベント通知。クラスタ内で発生したデータ変更をクライアント・アプリケーションで確認できます。クライアント・アプリケーションで登録されたイベントのみが、ネットワークに配信されます。このモデルでは、ネットワーク帯域幅とクライアント処理が効率的に使用されます。
キャッシュ・データをローカルに維持するニア・キャッシュと連続問合せキャッシュ。クライアント・アプリケーションが接続されているサーバーで障害が発生した場合は、接続が別のサーバーとの間で自動的に再確立され、ローカルにキャッシュされているデータはクラスタとの間で再び同期化されます。
リアルタイムのクライアント機能の完全なリストは、『Oracle Fusion Middlewareライセンス情報ユーザー・マニュアル』のOracle Coherence製品に関する項を参照してください。
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リファレンスを参照してください。
オブジェクトをクラスタにシリアライズするクライアントでは、オブジェクトに対してgetベースとputベースの操作を実行できます。ただし、問合せや入力プロセッサなどの機能では、データ・オブジェクトのシリアライズ表現を保持するだけでなく、Javaベースのキャッシュ・サーバーを使用してデータ・オブジェクトと相互作用する必要があります。データ・オブジェクトと相互作用してそのプロパティにアクセスするには、キャッシュ・サーバーでJavaバージョンのオブジェクトを利用できようにする必要があります。
JavaでのPOFの使用方法の詳細は、『Oracle Coherenceでのアプリケーションの開発』の「Portable Object Formatの使用」を参照してください。C++およびC#でのPOFの使用方法の詳細は、それぞれ、統合オブジェクトの構築(C++)および統合オブジェクトの構築(.NET)を参照してください。
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でのアプリケーションの開発』のデフォルトのオペレーション・オーバーライド・ファイルの使用に関する項を参照してください。
RESTおよびmemcachedのクライアントAPIは多くの一般的なプログラミング言語で使用できるため、Coherenceを異機種間環境で使用できます。非ネイティブ・クライアントを使用して、ネイティブCoherenceクライアントAPIを使用するCoherenceソリューションへの移行を容易にすることもできます。
この項には次のトピックが含まれます:
Coherenceでは、HTTPプロトコルを介してキャッシュ操作にアクセスできるREST実装が提供されます。任意のRESTクライアントAPIがCoherenceキャッシングを使用できます。RESTサポートは、プロキシ・サーバー上のExtendのようなアクセプタとして構成されている埋込みHTTPサーバーを介して、または任意のJava EEベースのアプリケーション・サーバーへのデプロイメントを介して提供されます。「Coherence RESTの使用」を参照してください。