Matterがリリースされた2022年以降、製品メーカーによる開発が進み、対応デバイスが次々と発売され、消費者への普及が広がっています。Matterはスマート・デバイスが相互に通信するための標準共通言語となり、スマートホームの統合化を実現します。
Matterの仕様では、ファブリック内で動作する多数のデバイス・クラスの役割と責務が定められています。この新しい用語は、初めてMatterに取り組もうとする多くのお客様にとって混乱の原因となる可能性があります。この記事では、このようなMatterデバイスの役割と用語について、1つずつ概要を説明します。
Matterファブリック
Matterファブリックとは、1つのアプリケーション・レイヤー・セキュリティ・ドメイン内で相互に通信するデバイスのコレクションを意味します。1つのMatterファブリックで、異なるネットワーク・テクノロジを使用する複数のデバイスをサポートできます。つまり、このインフラストラクチャによって、異なるネットワーク・テクノロジを使用するデバイスをIPv6ネットワーク層で相互に認識させることができます(たとえばWi-Fiアクセス・ポイントの場合、イーサネットとWi-Fiという異なるネットワーク・テクノロジをブリッジすることで、イーサネット接続デバイスとWi-Fi接続デバイスがIPネットワーク層で相互に通信できるようになります)。そのためアプリケーション層においては、Matterファブリックは異なるネットワーク・テクノロジを使用している可能性のある一連のデバイスがMatterアプリケーション層言語を使用して相互に通信できるようにするセキュリティ・ドメインとなります。
ファブリックにおけるMatterの役割
以下のMatterトポロジ図は、一般的なMatterファブリックを使用したMatterの導入事例を示しています。ここではファブリック内に存在する可能性のあるさまざまなデバイスの役割が示されています。それぞれの役割について、以降に詳しく説明します。
Matterトポロジ。 ブロック図をダウンロードすると、拡大図がご覧いただけます。
コミッショナ
Matterコミッショナは、ファブリックに新しいMatterデバイスを追加するエンティティです。Matterコミッショナは、スマートフォン上のアプリケーションである場合もあれば、別のデバイス(スマート・スピーカーなど)が担う役割である場合もあります。コミッショナは最初に新しいデバイスの真正性を検証した後、デバイスにネットワーク・クレデンシャルを割り当て、Matterファブリックに追加します。
アドミニストレータ
Matterアドミニストレータは、以下の機能を実行するデバイスです。
- 相互に通信できるデバイスを決定する規則を設定します。たとえば、特定の照明スイッチによって特定の電球をオンしたい場合、アドミニストレータがエンド・ユーザーからの指示に基づいてこの関連付けを設定する責務を担います。
- シーンとオートメーションの設定
- Matterファブリック内に複数のアドミニストレータが存在する場合があります。1つのファブリックに複数のアドミニストレータが含まれる場合の、コントローラ間でネットワーク・メタデータ(つまり、どのデバイスが相互に関連付けられるかについての情報)を同期する方法は、現在のMatter仕様では規定されていません
1つのMatterアドミニストレータが複数のネットワーク・インターフェースをサポートする必要はありませんが、複数のIPv6ネットワーク・インターフェースをサポートして、すべてのインターフェースでMatterメッセージを送受信することは可能です。たとえば、スマートフォンがMatterアドミニストレータとして機能し、Matter over Wi-Fiのみをサポートすることができます。
コントローラ
コントローラは、Matter仕様で正式に定義されている役割ではありません。「コントローラ」という用語は、ファブリックにおけるコミッショナの役割、アドミニストレータの役割、クライアントの機能の任意の組み合わせを指します。Matterファブリック上のクライアントは、ネットワーク上の任意のデバイスと通信できます。基本的にコントローラは、ファブリック上のすべてのデバイスとの間でメッセージを送受信できるユニバーサル・クライアントとして機能します。
ブリッジ
Matterブリッジは、Matterファブリックと非Matterドメインの間でメッセージを変換するエンド・デバイス・クラスです。ブリッジ・デバイスは以下のように動作します。
- 非Matterドメインをスキャンしてデバイスを検出します
- Matterファブリック上の非Matterデバイスの仮想表現を作成します
- Matterファブリック上で送受信され、非Matterネットワーク用に変換される必要があるメッセージの送信先ノードとして機能します
- そのMatterメッセージに完全プロトコル変換を実行し、対応する非Matterメッセージに変換します
- 対応する非Matterメッセージを、ネットワークの非Matter側の適切なデバイスに転送します。
実装の観点から見ると、ブリッジ・デバイスは非Matterドメインを調査してすべてのデバイスおよび関連機能を検出した後で、動的エンドポイントを使用してそのデバイスと関連機能をMatterファブリックにマッピングします。非Matterドメイン上で検出されたデバイスごとに、ブリッジ・デバイスはMatterファブリックでの実行時に新しいエンド・ポイントをインスタンス化し、その新しいエンド・ポイント上にある対応するすべてのMatterクラスタをインスタンス化することで、非Matterドメインのすべてのデバイスの機能をMatterファブリックにマッピングします。
たとえば、Matterブリッジ・デバイスによってZigbeeブリッジにMatterを実装する場合、Zigbee側で電球などのデバイスが1つ、そのネットワークに任命されていると、ブリッジのMatterネットワーク・インターフェースで新しいエンドポイントがインスタンス化された後、Zigbeeネットワーク側でそのデバイスの機能を表すために必要な対応Matterクラスタがすべてインスタンス化されます。
Matterブリッジがこのプロセスを完了した後、ブリッジ・デバイスは以下の動作を行います。
- Matter照明スイッチがZigbee電球にメッセージを送信しようとする場合、ブリッジ・デバイスにオンまたはオフのメッセージを送信します
- このメッセージの送信先は、Matterブリッジ上の、Zigbee電球に対応するエンドポイントになります
- Matterブリッジは自身のエンドポイント宛に送信されたこのメッセージを受信し、受信したMatterメッセージを、対応するZigbeeメッセージに変換します
- MatterブリッジはZigbee電球にZigbeeメッセージを送り、最初にMatter照明スイッチが要求した状態変更リクエストが実施されます
- Matterファブリックにマッピングされる非Matter機能は、適切なクラスタ定義によってMatterファブリックでサポートされる必要があります。たとえば、Matterは電子棚札のクラスタをサポートしないため、電子棚札の非Matterネットワークの全機能を公開する電子棚札向けMatterブリッジを構築することはできません
- メモリの制約により、Matterブリッジは保有するエンドポイントと同数の仮想デバイスしか公開することができません
NXPは、既存のZigbeeデバイスがMatterファブリックと通信できるように、Matter to Zigbeeブリッジのソリューションを提供しています。ZigbeeとMatterを橋渡しするブリッジの開発については、こちらをご覧ください。
ゲートウェイ
ゲートウェイはMatterデバイスの役割ではなく、ネットワーク・レベルのデバイスの役割です。ゲートウェイは一般的に、インターネットへのLANアクセスを提供するデバイスであり、DNSサーバ、DHCPサーバとして機能するとともに、その他のネットワーク・レベルの機能を実行します。
Matterコントローラ、ブリッジ、エンド・デバイスのいずれかがゲートウェイとなります。ネットワーク層のゲートウェイ機能は、アプリケーション層におけるMatterデバイスの役割とは無関係です。
ボーダ・ルータ
ボーダ・ルータは、ネットワーク・レベルのデバイスの役割です。これはThread仕様で定義されているデバイスの役割です。Thread仕様ではThreadネットワーク・インターフェースだけでなく他のIP対応ネットワーク・インターフェースもサポートされ、このようなネットワーク・インターフェース間でパケットをルーティングできます。
実装の観点からボーダ・ルータの動作方法を見ると、ボーダ・ルータはThreadネットワークに対して次の処理を行います。
- ボーダ・ルータは、領域ローカルまたはグローバル・スコープのIPv6ネットワークに対してIPv6アドレス・プレフィックスを提供します。これは、ボーダ・ルータ自体によって生成されるか、インフラストラクチャ・インターフェース(つまり、非Threadネットワーク・インターフェース)のゲートウェイからアップストリームで受信されます
- ユニキャストDNSを使用して、SRP経由でThreadネットワークの各ノードで利用できるサービスを検出します
- そのようなサービスをメモリ内のデータベースにキャッシュします
- インフラストラクチャ・インターフェースでmDNSリクエストが受信されると、ボーダ・ルータは対応するThreadエンド・デバイス向けに、キャッシュされたサービスを返します
- そのメッセージがThreadインターフェースまたはインフラストラクチャ・インターフェースで受信されると常に、ボーダ・ルータは基本的なファイアウォール機能を実行し、その後で適切な宛先ノードにパケットをルーティングします
Threadネットワークでは複数のボーダ・ルータがサポートできるため、複数の異なる経路を使ってメッセージをインフラストラクチャ・ネットワークに届けることができます。
ボーダ・ルータは、Matterのコントローラ、ブリッジ、エンド・デバイスとして設定できます。ネットワーク層におけるボーダ・ルータの機能は、アプリケーション層におけるMatterデバイスの役割と無関係です。
RW612 Wi-Fi 6トライラジオ・ワイヤレスMCUは、シングルチップによるボーダ・ルータ・ソリューションです。RW612の詳細については、こちらをご覧ください。
「Matterハブ」機能ブロック
ここまで、Matterファブリックに関するさまざまな役割を説明してきました。このような用語は混同して使用される場合もありますが、実際には非常に明確な違いがあります。このような役割を1つのデバイスに集約して、そこで複数のネットワークを管理し、複数の機能を提供することができます。この種のデバイスを総称して「Matterハブ」と呼びます。以下の図は、各機能ブロックが全体的な実装にどのように対応しているかを示しています。
「Matterハブ」機能ブロック。ブロック図をダウンロードすると、拡大図がご覧いただけます。
エンド・ノード
Matterエンド・ノードは、Matterメッセージの送受信先となる1つ以上のIPv6ネットワーク・インターフェースをサポートするデバイスです。クライアント・デバイスまたはサーバ・デバイスが、エンド・ノードとなります。クライアント・デバイスとサーバ・デバイスの違いは、状態情報がデバイス上に保存されるかどうかによって決まります。一般的に、Matterファブリック上でコマンドを使用することで読み取りまたは書き込みを実行できる状態情報が保存されるデバイスは、サーバに該当します。サーバ・デバイスの例としては、電球があります。電球のLEDの状態(輝度、色温度、色相/彩度など)は、Matterファブリックでコマンドを使用することで読み取りまたは書き込みできます。デバイスに状態情報がまったく格納されず、Matterファブリック上でコマンドを使用することでリモート・デバイスの状態を変更する場合、そのデバイスはクライアントです。クライアント・デバイスの例としては、照明スイッチがあります。照明スイッチはMatterファブリックにコマンドを送信することで、電球のオン/オフを切り替えます。
Matterデバイス上のエンドポイントに対して、対応するクライアント・クラスタまたはサーバ・クラスタをインスタンス化することで、クライアントとサーバの両方の機能をサポートする複合Matterエンド・デバイスを構築できます。たとえば照明スイッチ(照明クライアント機能をサポート)と乗員検知センサ(乗員検知センサ・サーバ機能をサポート)であるMatterエンド・デバイスを作成するには、両方のクラスタ・セットをデバイス上でインスタンス化します。
スリーピー・エンド・ノード
スリーピー・エンド・ノードはMatterデバイスの役割ではありません。これは、Threadネットワーク独自のネットワーク・レベル・デバイスの役割です。スリーピー・エンド・ノードとは、通常時は無線レシーバをオフにした低消費電力状態を維持する、Threadネットワーク上のデバイスです。スリーピー・エンド・ノードは100%レシーバのデューティ・サイクルを持たないため、親ノード(スリーピー・エンド・ノード宛てのメッセージをキューイングするプロキシ)を発見する必要があります。そのため、消費電力を抑えるために無線機能をオフにして低消費電力状態に入る場合があります。一般的に、スリーピー・エンド・ノードはバッテリ駆動であるため、消費電力の削減が最も重要です。
スリーピー・エンド・ノードの興味深い特徴の1つが、通信レイテンシが非対称であることです。スリーピー・エンド・ノードは非常に低いレイテンシでメッセージを送信できますが、メッセージの受信については非常に高いレイテンシが発生します。これは、通常はメッセージの送信が割り込み駆動型プロセスであることが原因です。つまり、スリーピー・エンドノードのメッセージ送信が外部信号によってトリガされるためです(たとえば、バッテリー駆動の照明スイッチの場合、スイッチを操作するユーザーがトリガになります) 。Threadネットワークの挙動は基本的に非同期であるため、メッセージは遅延を抑えた形で送信できます。逆に、スリーピー・エンド・ノードとしてメッセージを受信する場合、スリーピー・エンド・ノードは無線レシーバがオフの低消費電力状態であることから、通常はレイテンシが非常に高くなります。スリーピー・エンド・ノードは定期的にスリープ状態を解除し、自身に送られたメッセージをクエリします(スリーピー・エンド・ノードに代わってメッセージをキューイングしている、ネットワーク上のプロキシ・ノードまたは親ノードをポーリングします)。このスリープ解除の間隔は通常、秒単位または分単位の範囲で指定されます。このように通信遅延が非対称であることから、通常、スリーピー・エンド・ノードはMatterサーバ・デバイスではなくMatterクライアント・デバイスを実装するために使用されます。たとえば、バッテリー駆動の照明スイッチ(照明制御クライアント)は、非常に低レイテンシで電球(照明制御サーバ)にメッセージを送信できるため、照明制御システムのユーザー・エクスペリエンスが改善されます。ただし、バッテリー駆動の照明スイッチにメッセージを送信する必要がある場合、レイテンシが高くなります(たとえば、照明スイッチにファームウェア・アップデートを実施する場合) 。しかしこれによってユーザー・エクスペリエンスが悪化することは通常ありません。
まとめ
Matter仕様で新しい用語が導入され、使用されるようになると、同じ意味で使用される用語が多く、しかも厳密には意味が異なることから、混乱が生じる可能性があります。ここでは、Matterファブリックにおける一般的なデバイスの役割と、Matterの基盤となっているネットワーク・テクノロジについて説明し、そのような用語の定義を明確に示しています。製品の設計者はMatterファブリックの説明に使用される用語をしっかりと理解することで、Matterを利用した次世代デバイスを設計し、製品化するための知識を身につけることができます。