2.8.10. ダウンストリームフィルタ

ダウンストリームフィルタは、ダウンストリームでブローカーからノードに送信するデータを特定するためのフィルタです。 Downstream Open Request にてノードからブローカーへ送信されます。

1つのダウンストリームフィルタは、1つのノードIDと、複数のデータフィルタを持ちます。 ダウンストリームフィルタにもとづいたデータのフィルタリング手順については、 フィルタリングの手順 を参照してください。

なお、データフィルタの配列は、空に指定することができます。 この場合、データはすべて対象外となり、送信元ノードに指定されたノードのメタデータのみがダウンストリームされます。

2.8.10.1. ダウンストリームフィルタの構造

表 66 Downstream Filter

和名

英名

データ型

送信元ノードID

Source Node ID

文字列

データフィルタ

Data Filters

Data Filter の配列

送信元ノードID - Source Node ID

このフィルタが受信対象とするノードのノードIDです。

データフィルタ - Data Filters

このフィルタが受信対象とするデータを表すデータフィルタです。 データフィルタはデータIDとほぼ同じ構造を持ちますが、 データタイプおよびデータ名に、後述のワイルドカードを使用することができます。

2.8.10.2. データフィルタの構造

データフィルタの構造は、 データID とほぼ同一ですが、 後述の ワイルドカード を使用することができます。

表 67 Data Filter

和名

英名

データ型

名称

Name

文字列

Type

文字列

名称 - Name

フィルタに使用する名称です。

型 - Type

フィルタに使用する型名です。

2.8.10.3. ワイルドカード

ワイルドカードがデータフィルタに使用されている場合、 データ名やデータタイプがデータIDと完全に一致しない場合でも、 所定のルールにしたがってデータIDと一致するとみなすことができます。

2.8.10.3.1. マルチレベルワイルドカード

# は、複数のレベルに一致するワイルドカードです。 マルチレベルワイルドカードは、それ単独で使用するか、もしくは、セパレータの直後に使用する必要があります。 また、マルチレベルワイルドカードより後に他の文字列を続けてはいけません( MUST NOT )。

2.8.10.3.2. 単一レベルワイルドカード

+ は、単一のレベルのみに一致するワイルドカードです。 単一レベルワイルドカードは、最初と最後のレベルを含む、任意のレベルで使用できます。 使用する場合は、同じレベルに他の文字を含んではいけません( MUST NOT )。 複数のレベルで使用することができ、マルチレベルワイルドカードと同時に使用することも可能です。

2.8.10.4. フィルタリングの手順

2.8.10.4.1. データポイントのフィルタリング

まず、ダウンストリームフィルタの送信元ノードIDで指定されたノードが送信元となるデータポイントは、下り方向への送信対象候補となります。 それ以外のデータポイントは送信対象外としてフィルタリングされます。

次に、データフィルタで指定されたデータIDに一致するデータIDを持つデータポイントは、下り方向への送信対象となります。 それ以外のデータポイントは送信対象外としてフィルタリングされます。

2.8.10.4.2. メタデータのフィルタリング

ダウンストリームフィルタの送信元ノードIDで指定されたノードが送信元となるメタデータは、下り方向への送信対象となります。 それ以外のメタデータは送信対象外としてフィルタリングされます。