A RESTの構成要素

Coherence RESTの構成リファレンスには、REST構成デプロイメント・ディスクリプタの詳細な説明が記載されています。

この付録の内容は次のとおりです。

REST構成ファイル

Coherence REST構成デプロイメント・ディスクリプタにより、REST実装の構成を指定します。ディスクリプタのデフォルト名はcoherence-rest-config.xmlで、クラスパス上で見つかる必要があります。coherence.rest.configシステム・プロパティを使用して、名前をオーバーライドできます。たとえば:
-Dcoherence.rest.config=MyConfig.xml

REST構成デプロイメント・ディスクリプタのスキーマは、coherence-rest-config.xsdファイルに定義されます。XSDファイルはcoherence.jarライブラリのルートにおいて次のWeb URLにあります。

http://xmlns.oracle.com/coherence/coherence-rest-config/1.2/coherence-rest-config.xsd

<rest>要素は構成ファイルのルート要素であり、XSDおよびネームスペースの宣言を含みます。たとえば:

<?xml version='1.0'?>

<rest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://xmlns.oracle.com/coherence/coherence-rest-config"
   xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-rest-config
   coherence-rest-config.xsd">

ノート:

  • coherence.jarライブラリにあるスキーマは、xsi:schemaLocation属性がWeb URLを参照する場合であっても、常に実行時に使用されます。

  • xsi:schemaLocation属性を省略すると、スキーマ検証を無効にできます。

  • デフォルトの文字セットがASCIIではなくEBCDICである環境にCoherenceをデプロイする場合、デプロイメント・ディスクリプタ・ファイルがASCII形式であり、ランタイム環境にバイナリ形式でデプロイされることを確認してください。

REST構成要素リファレンス

Coherence REST構成要素リファレンスには、すべての非終端のレポート・ファイル構成要素が含まれます。各項で、要素の使用方法とすべての有効なサブ要素についても説明されています。

REST構成要素の索引

表A-1に、非終端REST構成要素のすべてを示します。

aggregator

使用場所: aggregators

説明

aggregator要素は、キャッシュにあるデータの集計に使用するカスタム・アグリゲータの定義に使用されます。各aggregator要素には、アグリゲータ・クラスまたはアグリゲータのファクトリ・クラスと名前との間における単一バインディングが含まれている必要があります。

要素

表A-2aggregator要素の下位要素を説明します。

表A-2 aggregatorの下位要素

要素 必須/ オプション 説明

<name>

必須

アグリゲータ・クラスまたはアグリゲータのファクトリ・クラスにバインドされるREST用URLで使用する名前を指定します。

<class>

必須

名前にバインドされるカスタム・アグリゲータ・クラスまたはカスタム・アグリゲータのファクトリ・クラスの完全修飾名を指定します。このクラスはcom.tangosol.util.EntryAggregatorまたはcom.tangosol.coherence.rest.util.aggregator.AggregatorFactoryインタフェースをそれぞれ実装する必要があります。

aggregators

使用場所: rest

説明

aggregators要素には、任意の数のカスタム・アグリゲータ定義が格納されます。

要素

表A-3aggregators要素の下位要素を説明します。

表A-3 aggregatorsの下位要素

要素 必須/ オプション 説明

<aggregator>

必須

アグリゲータ・クラスまたはアグリゲータのファクトリ・クラスと名前との間における単一バインディングを指定します。

engine

使用場所: query-engines

説明

engines要素は、名前と問合せエンジン実装クラスとの間の単一バインディングを含みます。カスタム問合せエンジンには、com.tangosol.coherence.rest.query.QueryEnginecom.tangosol.coherence.rest.query.Queryインタフェースを実装する必要があります。カスタム実装は、com.tangosol.coherence.rest.query.AbstractQueryEngineベース・クラスも拡張します。これにより、問合せ式の分析やパラメータ・バインドの処理を実行する有用なメソッドが提供されます。

要素

表A-4で、engine要素のサブ要素を説明します。

表A-4 engineの下位要素

要素 必須/ オプション 説明

<name>

必須

問合せエンジンの名前を指定します。

<class-name>

必須

問合せエンジン実装クラスの完全修飾名を指定します。

marshaller

使用場所: resource

説明

キャッシュ・エントリのキーと値のクラスとマーシャリング処理クラス(それらのクラスのインスタンスでマーシャリングとアンマーシャリングに使用)との間におけるバインドがマーシャリング要素にはあります。

要素

表A-5marshaller要素の下位要素を説明します。

表A-5 marshallerの下位要素

要素 必須/ オプション 説明

<media-type>

必須

マーシャリング用に使用するメディアの名前を指定します。CoherenceではXMLとJSONのデータ出力のデフォルト実装が用意されています。

<class-name>

必須

com.tangosol.coherence.rest.io.Marshallerインタフェースを実装するカスタム・クラスの完全修飾名を指定します。キャッシュに格納されるキャッシュ・エントリ値のマーシャリングとアンマーシャリングに実装が使用されます。マーシャリング処理は、それぞれのオブジェクト・タイプとメディア・タイプに対して構成されます。

processor

使用場所: processors

説明

processor要素は、キャッシュにあるデータの処理に使用するカスタム入力プロセッサの定義に使用されます。各processor要素には、プロセッサのファクトリ・クラスと名前との間における単一バインディングが含まれている必要があります。

要素

表A-6processor要素の下位要素を説明します。

表A-6 processorの下位要素

要素 必須/ オプション 説明

<name>

必須

プロセッサのファクトリ・クラスにバインドされるREST用URLで使用する名前を指定します。

<class-name>

必須

名前にバインドされるカスタム・プロセッサのファクトリ・クラスの完全修飾名を指定します。このクラスはcom.tangosol.coherence.rest.util.processor.ProcessorFactoryインタフェースを実装する必要があります。

processors

使用場所: rest

説明

processors要素には、任意の数のカスタム・プロセッサ定義が格納されます。

要素

表A-7processors要素の下位要素を説明します。

表A-7 processorsの下位要素

要素 必須/ オプション 説明

<processor>

必須

プロセッサのファクトリ・クラスと名前との間における単一バインディングを指定します。

query

使用場所: resources

説明

query要素は、名前付き問合せを定義します。名前付き問合せにより、REST URLで構成済の問合せ式を名前で実行できます。

GET http://host:port/cacheName/namedQuery?param1=value1,param2=value2...

名前付き問合せ定義は、問合せ名と実行する問合せ式間のバインディングから成ります。リソースに対して複数の名前付き問合せを構成できます。この問合せ要素では、次の属性がサポートされています。

  • max-results – クライアントに返される結果の数を指定します。この属性では、キャッシュから返されるエントリの数が制限されないことに注意してください。この値は、<resource>要素に設定されているmax-results属性をオーバーライドします。

  • engine – キャッシュに対する問合せ式の実行を受け持つ問合せエンジンの実装を指定します。属性が指定されていない場合のデフォルト値はDEFAULTであり、問合せ式をURLエンコードのCohQL式(CohQLの述語句)として指定する必要があることを示します。「query-engines」を参照してください。

要素

表A-8で、query要素のサブ要素を説明します。

表A-8 queryの下位要素

要素 必須/ オプション 説明

<name>

必須

queryの名前を指定します。

<expression>

必須

問合せ名にバインドする問合せ式を指定します。

query-engines

使用場所: rest

説明

query-engines要素には、任意の数のカスタム問合せエンジン定義が格納されます。問合せエンジンは、キャッシュに対して問合せ式を実行します。直接問合せおよび名前付き問合せは、基盤となる問合せエンジンに、それらの問合せの実行を依存しています。デフォルトの問合せエンジンは、URLエンコードのCohQL式(CohQLの述語句)として指定された問合せ式を実行するために提供されています。また、カスタム問合せエンジンを必要時に定義できます。

要素

表A-9で、query-engines要素のサブ要素を説明します。

表A-9 query-enginesのサブ要素

要素 必須/ オプション 説明

<engine>

必須

名前と問合せエンジン実装クラスの間における単一バインディングを指定します。

resource

使用場所: resources

説明

resource要素によりキャッシュ・エントリのマーシャリングとアンマーシャリングに使用するメタデータを渡します。キャッシュ名とキャッシュ・エントリ・キーと値クラスとの間における単一バインディングがメタデータに含まれます。

次の属性を使用できます。

  • name – 名前がRESTのURLパス・セグメント用に理想的でない場合における<cache-name>要素の別名を指定します。この値のデフォルトは、値が指定されていない場合における<cache-name>要素の値です。

  • max-results – クライアントに返される結果の数を指定します。この属性では、キャッシュから返されるエントリの数が制限されないことに注意してください。この値は、max-results属性が、<query>または<direct-query>要素内にも定義されている場合に優先されます。

要素

表A-10resource要素の下位要素を説明します。

表A-10 resourceの下位要素

要素 必須/ オプション 説明

<cache-name>

必須

このリソースで公開されるキャッシュの名前を指定します。キャッシュは、キャッシュ構成ファイルで定義する必要があります。

<key-class>

オプション

このキャッシュに格納されるエントリ・キーのタイプを指定します。

<value-class>

オプション

このキャッシュに格納されるエントリ値のタイプを指定します。

<key-converter>

オプション

com.tangosol.coherence.rest.KeyConverterインタフェースを実装するクラスの完全修飾名を指定します。このクラスは、キャッシュ・エントリのキーを文字列に変換したり、REST用URLで使用するキーの文字列表現をキャッシュ・エントリへのアクセスに使用できる適切なオブジェクト・インスタンスに変換するために使用されます。値が渡されない場合、com.tangosol.coherence.rest.DefaultKeyConverterクラスがデフォルトで使用されます。デフォルトのクラスには、Javaのプリミティブ、日付およびUUIDにおける文字列変換処理が用意されています。

<marshaller>

オプション

com.tangosol.coherence.rest.io.Marshallerインタフェースを実装するクラスの完全修飾名を指定します。キャッシュに格納されるキャッシュ・エントリ値のマーシャリングとアンマーシャリングにクラスが使用されます。CoherenceではXMLとJSONのデータ出力のデフォルト実装が用意されています。

<query>

オプション

REST URLで、構成済問合せ式の名前による実行を可能にする名前付き問合せの構成情報を指定します。

<direct-query>

オプション

REST URLに問合せ式をパラメータqの値として含めることができる、直接問合せの構成情報を指定します。

GET http://host:port/cacheName?q=query

次の属性を使用できます。

  • enabled – リソースで直接問合せをサポートするかどうかを指定します。有効な値は、trueおよびfalseです。デフォルト値はfalseです。

  • max-results – クライアントに返される結果の数を指定します。この属性では、キャッシュから返されるエントリの数が制限されないことに注意してください。この値は、<resource>要素のmax-results属性よりも優先されます。

  • engine – キャッシュに対する問合せ式の実行を受け持つ問合せエンジンの実装を指定します。属性が指定されていない場合のデフォルト値はDEFAULTであり、問合せ式をURLエンコードのCohQL式(CohQLの述語句)として指定する必要があることを示します。「query-engines」を参照してください。

resources

使用場所: rest

説明

リソース要素には、任意の数のリソース定義が格納されます。キャッシュ・エントリのマーシャリングとアンマーシャリングに使用するメタデータをリソース定義により渡します。

要素

表A-11resources要素の下位要素を説明します。

表A-11 resourcesの下位要素

要素 必須/ オプション 説明

<resource>

必須

キャッシュ・エントリ・キーと値クラスとキャッシュ名との間における単一バインディングを指定します。

rest

ルート要素

説明

rest要素は、Coherence REST実装の構成に使用するcoherence-rest-config.xmlファイルのルート要素です。実装ではRESTのWebサービスを使用して、リモート・クライアントでクラスタにあるデータをHTTPでアクセスでき、POFシリアライズを使用する必要はありません。

要素

表A-12rest要素の下位要素を説明します。

表A-12 restの下位要素

要素 必須/ オプション 説明

<resources>

オプション

キャッシュ・エントリのマーシャリングとアンマーシャリングに使用するメタデータを渡すリソース定義の数を指定します。

<processors>

オプション

キャッシュにあるデータの処理に使用するカスタム・プロセッサ定義の数を指定します。

<aggregators>

オプション

キャッシュにあるデータの集計に使用するカスタム・アグリゲータ定義の数を指定します。

<query-engines>

オプション

任意の数のカスタム問合せエンジン定義を指定します。問合せエンジンは実行問合せを処理します。