
Weave は、ホームエリア ネットワーク(HAN)の各ノード、ノードのペア設定や制御をサポートする各モバイル デバイス、ノードとモバイル デバイスの同期を維持するサービスに対して実行されます。Weave システムでは、これらの要素(ノード、デバイス、サービス)はリソース
と呼ばれます。Weave は、各リソースのデータの正確性の情報源と、リソース間の安全な通信手段を提供します。
Weave の主要なコンポーネントは 4 つあります。システムが相互に作用してシステム内で階層化される状態を調べる前に、各要素を大まかに理解すると便利です。
Schema

スキーマ
は、Weave プラットフォームのデータモデルです。スキーマは、次の 3 つの要素を定義します。
- トレイト プロパティの状態、状態の通知、状態変更のリクエストなど、基本的な機能の単位
- インターフェース デッドボルト ロックを構成するプロパティやイベントなど、特定の機能を表すトレイトのグループ。
- リソース Nest デバイス、構造、ユーザーなどのトレイトとインターフェースで構成される論理的または物理的なもの
スキーマは複数のリソースに分散しているデータベースと考えることができます。各トレイトのコピー(信頼できる情報源)はすべて単一のリソースに存在するのではなく、トレイトごとに分散されます。トレイトのマスター リソースはトレイトのパブリッシャーとして機能し、他のリソースはそのトレイトのサブスクライバーになります。
たとえば、3 つのリソース間で共有される 2 つのトレイトで構成される単純なスキーマがあるとします。リソース 1 はトレイト A のパブリッシャーであるのに対し、リソース 3 はトレイト B のパブリッシャーです。その他のリソースは、これらのトレイトのサブスクライバーです。

また、システムのニーズによっては、複数のリソースが同じトレイトのパブリッシャーとして機能する場合もあります。
サービス
Weave 内のサービスは、多くの場合リソースと呼ばれます。スキーマの観点からは、これは複数のリソースとして表示される場合があります。つまり、Weave システムの他のすべてのリソース。
たとえば、センサーは、その機能に関連するトレイトのみを公開してサブスクライブする必要がある場合がありますが、その一部はハブやノードなどの他のリソースと共有される場合があります。これらのリソースには、センサーによって登録されていない他のトレイトがある場合があります。ただし、サービスはこれらのトレイトをすべてサブスクライブまたは公開できます。
プロフィール

Weave 機能はプロファイル OpenWeave で使用できるプロファイルは 20 近くあります。
という論理構造にグループ化されています。各プロファイルは、プロトコル、メッセージ タイプ、エラーコードなどの要素で構成される特定の Weave 機能セットに対応します。たとえば、データ管理
プロファイルは、パブリッシュ / サブスクライブ メッセージング パターンでリアルタイム トレイト管理を処理します。別のリソースからの入力に基づいて、ホームリソース内の占有トレイトの状態を更新する(「在宅」から「離れている」ことをモバイル デバイスが検出するため、ステータスを「自宅」から「アウェイ」に変更する)。もう 1 つのプロファイルはエコー
です。このプロファイルはネットワーク ping に類似しており、ネットワーク接続、レイテンシ、セキュリティ、接続性をテストするために使用されます。さらに、ネットワーク プロビジョニング
も別のプロファイルです。このプロファイルには、ワイヤレス ネットワークをスキャンして認証情報を設定し、そのネットワークにリソースをプロビジョニングするための関数が含まれています。メッセージング

プロファイルの機能を実行するには、HAN 内のリソースが相互にメッセージを送信できる必要があります。Weave は、システム内のリソース間のすべてのメッセージを処理するメッセージ レイヤ
を備えています。メッセージには次の 2 種類があります。
- 一般的なメッセージ 一般的な Weave コンテンツがカプセル化されます
- トンネル メッセージ IP パケットがカプセル化されます
各プロファイルには、機能を伝えるために使用される独自のメッセージ タイプのセットがあります。たとえば、データ管理プロファイルは、Update Request 一般的なメッセージを送信してトレイトの状態を変更できます。Echo プロファイルは、リソースに Echo リクエストの一般的なメッセージを送信し、レスポンスでレスポンスのレスポンスを送信できます。
生地

これらのメッセージをすべてリソース間で渡すには、Weave のファブリック
をプロビジョニングする必要があります。ファブリックは、他のリソースやサービスに連携して連携する Weave 対応リソースの集まりです。基盤となる接続やネットワークの種類に関係なく、ファブリック内のすべてのリソースは Weave の共通言語を使用します。ファブリック内の各ノードには、Weave アプリケーションで安全に使用できるように追加の IPv6 アドレスが割り当てられます。
Weave は、基盤となるトランスポート テクノロジー(Wi-Fi や Thread など)を使用して、ファブリック IPv6 アドレス間でメッセージを送信します。
内容のまとめ
学習した内容:
- Weave システムでは、ノード、デバイス、サービスはリソース と呼ばれます。
- Weave は、Weave システム内の各リソースに対して、信頼できるデータのソースを提供し、安全な通信を提供します。
- Weave は、次の 4 つの主要コンポーネントで構成されています。
- スキーマ データと API モデル
- プロファイル 一連の機能を管理するアプリケーション プロトコル
- Messaging : リソース間のすべてのメッセージングを処理します。
- Fabric Weave 対応リソースの集合