メインコンテンツまでスキップ

5. 中間者 (Intermediaries)

クライアントは、1つ以上のCoAP中間者のチェーンを介して到達するサーバーの名前空間にあるリソースに関心を持つ場合があります。この場合、クライアントは、セクション3で指定されているように、サーバー自体と通信しているかのように、サーバーに向かう最初の中間者に関心を登録します。この中間者のタスクは、ターゲットリソースの現在の表現をクライアントに提供し、セクション4で指定されているように、リソースの状態が変化したときに表現を最新の状態に保つことです。

このタスクを実行するために、中間者は、このドキュメントで指定されているプロトコルを利用し、クライアントの役割を果たして、サーバーに向かう次のホップでターゲットリソースへの独自の関心を登録する必要があります(SHOULD)。次のホップによって返された応答にObserveオプションが含まれていない場合、中間者は次のホップのポーリングに頼るか(MAY)、Observeオプションなしで応答自体を返すことができます(MAY)。

各ホップのペア間の通信は独立しています。サーバーの役割を果たす各ホップは、送信する通知の数、メッセージの種類などを個別に決定する必要があります(MUST)。各ホップは、通知でObserveオプションの独自の値を生成する必要があり(MUST)、ローカルの現在の表現の古さに応じてMax-Ageオプションの値を設定する必要があります(MUST)。

2つ以上のクライアントが中間者にリソースへの関心を登録した場合、中間者は次のホップに1回だけ登録し、受信した通知をすべての登録済みクライアントにファンアウトする必要があります(MUST)。これにより、次のホップが同じ通知を複数回送信する必要がなくなり、スケーラビリティが可能になります。

中間者は、クライアントに代わってリソースを観察する必要はありません。中間者は、たとえば、独自のキャッシュを最新の状態に保つためだけに、リソースを観察することができます(MAY)。

例については、付録A.2を参照してください。