Gestione dati Weave

Ora che conosci i componenti principali di Weave, diamo un'occhiata alla gestione generale di alcune delle sue funzionalità.

Quasi tutte le funzionalità dell'ecosistema Nest per le attività quotidiane sono mappate sulle risorse e sulle caratteristiche nell'ambito dello schema di Weave. Il profilo Gestione dati gestisce tutte le richieste di caratteristiche utilizzando un modello di pubblicazione-abbonamento. Queste richieste sono messaggi specifici del profilo Gestione dei dati.

In questo tipo di modello, un editore pubblicizza le caratteristiche (dati da guardare) e un abbonato reagisce alle modifiche nelle caratteristiche pubblicate (dati guardati). Questa funzione è denominata Gestione dei tratti in tempo reale.

Il profilo di gestione dei dati è il cavallo di lavoro di Weave ed è generalmente definito "Wave Data Management (WDM").

Richieste

Le richieste sono un elemento chiave della gestione dei tratti in tempo reale di WDM. Le richieste sono richieste standard di azione per un tratto, con una risposta prevista. Questi comandi sono diversi dai comandi di un tratto, in quanto non sono definiti nello schema e non sono specifici per ogni tratto.

Esistono tre tipi di richieste standard:

  • Invia notifica a una richiesta standard che informa un abbonato dello stato di una proprietà del tratto o di un evento specifico correlato a tale tratto.
  • Aggiorna Richiesta standard per modificare lo stato di una proprietà tratto.
  • Visualizza Richiesta standard per visualizzare le proprietà di un tratto.

Ruoli di protocollo

Esistono due tipi di ruoli per il protocollo WDM: publisher e sottoscrittore. Questi ruoli sono assegnati a livello di caratteristica.

Editore

Il ruolo publisher WDM produce e gestisce le versioni con versione di uno o più schemi per uno o più sottoscrittori e invia notifiche sulle modifiche a tale schema agli abbonati interessati. Queste notifiche sono le richieste standard di notifica.

Ad esempio, supponiamo che il tratto A sia pubblicato dalla risorsa 1 e sottoscritto dalla risorsa 2. Come mostrato nella Figura 1, se il tratto A cambia:

  1. WDM invia una notifica della richiesta della risorsa 1 a tutti gli abbonati del tratto A, per informarlo del cambiamento.
  2. Ogni abbonato aggiorna la propria istanza del tratto A di conseguenza.
Richiesta di notifica al publisher WDM
Figura 1 - Richieste del publisher WDM

La stessa cosa si verifica per altre caratteristiche dello schema. Ad esempio, se la risorsa 2 pubblica il tratto B, la risorsa 1 si abbona al tratto B e il tratto B cambia:

  1. WDM invia una notifica della richiesta della risorsa 2 a tutti gli abbonati del tratto B, per informarlo del cambiamento.
  2. Ogni abbonato aggiorna la propria istanza del tratto B di conseguenza.

Abbonato

Il ruolo abbonato WDM visualizza e consuma istanze con versione di uno o più schemi pubblicati esternamente. Può cambiare l'istanza con più versioni di uno schema pubblicato con una richiesta update o emettere un comando specifico per l'applicazione.

Ad esempio, supponiamo che la risorsa 2 voglia modificare il tratto A, che è pubblicato dalla risorsa 1. Come mostrato nella Figura 2, per modificare il tratto A:

  1. WDM invia una aggiornamento della richiesta dalla risorsa 2 alla risorsa 1 per richiedere la modifica del tratto A.
  2. Il tratto A nella risorsa 1 è stato modificato.
  3. WDM invia una notifica della richiesta della risorsa 1 a tutti gli abbonati del tratto A, per informarlo del cambiamento.
  4. Ogni abbonato aggiorna la propria istanza del tratto A di conseguenza.
Visualizzazione e aggiornamento dell'abbonato a WDM
Figura 2 - Richieste di iscrizione a WDM

Gli abbonati possono anche inviare una richiesta visualizza al publisher di un tratto, per visualizzare le proprietà di tale tratto e mantenere sincronizzate le proprie istanze con il publisher.

Tipi di abbonamento

Esistono due tipi di abbonamenti WDM. Gli abbonamenti vengono stabiliti con una richiesta di iscrizione . La Figura 3 illustra il flusso del messaggio di base per stabilire un abbonamento unidirezionale.

Abbonamento WDM solo andata
Figura 3 - Abbonamento WDM una tantum

Solo andata

Gli abbonamenti unidirezionali prevedono una richiesta da parte di un abbonato a un editore per una o più istanze del tratto. Ad esempio, un dispositivo mobile che recupera lo stato della casa (struttura) da un servizio.

Mutuo

Gli abbonamenti reciproci si verificano quando le risorse si iscrivono a vicenda e ognuna agisce sia come editore sia come abbonato. Un esempio è Nest Guard e Nest Detect, che fanno parte del sistema Nest Secure. Un abbonamento reciproco consente a entrambe le risorse di gestire lo schema pubblicato e di mantenere l'integrità e l'attività dell'abbonamento in modo più efficiente rispetto a due abbonamenti unidirezionali.

Esempio

Diamo un'occhiata a un semplice esempio di come WDM gestisce una modifica delle impostazioni internazionali di un dispositivo utilizzando un'app per dispositivi mobili.

In questo esempio, sono presenti tre risorse e due caratteristiche, come mostrato nella Figura 4:

  • Dispositivo (abbonato)
  • Servizio di (publisher)
  • App per dispositivi mobili (abbonato)
  • attributo Caratteristiche internazionali Proprietà impostazioni internazionali disponibili
  • Caratteristiche delle impostazioni internazionali Proprietà delle impostazioni internazionali attive

Entrambe le caratteristiche sono pubblicate dalla risorsa di servizio e sottoscritte dalla risorsa dispositivo e app per dispositivi mobili. Ogni abbonato funziona come abbonamento unidirezionale ai publisher di caratteristiche nella risorsa Servizio.

Tutte le risorse in questo esempio fanno parte dello stesso tessuto Weave .

Esempio di WDM
Figura 4. Esempio di WDM

Flusso di aggiornamento

Supponiamo che l'utente utilizzi l'app per dispositivi mobili per cambiare le impostazioni internazionali del dispositivo da en_US a fr_FR, utilizzando un'app per dispositivi mobili connessa. Come mostrato nella Figura 5, il flusso di aggiornamento in WDM è:

  1. La risorsa app per dispositivi mobili (abbonato) invia una richiesta di aggiornamento alla risorsa di servizio (publisher) per modificare la proprietà Impostazioni internazionali attive della sezione Impostazioni internazionali in fr_FR, uno dei valori validi della proprietà Impostazioni internazionali disponibili della caratteristica Impostazioni internazionali.
  2. La risorsa Servizio modifica la proprietà Impostazioni internazionali della sezione Impostazioni internazionali nella relativa copia dello schema.
  3. La risorsa Servizio invia una richiesta informa sulla modifica agli eventuali iscritti del tratto Impostazioni internazionali.
  4. Le risorse Dispositivo e Dispositivo mobile (abbonati) ricevono entrambe la notifica di richiesta di servizio e aggiornano la proprietà Impostazioni internazionali attive del tratto Impostazioni internazionali nelle copie dello schema.
Sequenza del flusso di aggiornamento WDM
Figura 5 - Flusso di aggiornamento di WDM

I vantaggi di WDM

Questo può sembrarti molto complicato se vuoi solo modificare le impostazioni internazionali sul tuo dispositivo da un'app per dispositivi mobili. Tuttavia, integrando lo schema con versione, il pattern di pubblicazione-abbonamento e le richieste nel profilo WDM, Weave garantisce l'integrità dei dati in tutte le risorse.

Inoltre, garantisce l'attività, quindi quando un dispositivo viene riavviato, notifica immediatamente a tutti gli abbonati lo stato delle loro caratteristiche pubblicate, osserva lo stato delle caratteristiche sottoscritte e riflette tutti gli stati nella copia dello schema senza perdere funzionalità.

Oltre abbonamenti

Se una risorsa annulla l'iscrizione a un tratto, ne viene conservata una copia. Non riceve più notifiche richieste dal publisher per quella caratteristica, ma può comunque inviare aggiornamenti richieste per quel publisher.

Anche le risorse che non sono mai state iscritte a un editore trait possono inviargli richieste. Ad esempio, una risorsa potrebbe non dover conoscere lo stato di un tratto, ma può inviare richieste di aggiornamento per modificare lo stato di quel tratto in risposta a un evento esterno.

Riepilogo

Che cosa hai imparato:

  • Weave Data Management (WDM) è il profilo Weave per la gestione dei tratti in tempo reale e garantisce attività e integrità dei dati in tutte le risorse
  • Le richieste sono richieste standard per l'azione di una caratteristica, con una risposta prevista
  • WDM ha due ruoli di protocollo:
    • Publisher: la fonte dei dati per una determinata caratteristica, invia richieste di notifica
    • Sottoscrittore: osserva lo schema pubblicato, invia richieste view , update o command
  • WDM ha due modelli di abbonamento:
    • Senso unico: il flusso di richieste dall'iscritto al publisher
    • Mutualità: i dispositivi si abbonano a vicenda
  • Gli abbonamenti vengono stabiliti dalle richieste di iscrizione
  • Le risorse possono inviare messaggi WDM alle caratteristiche anche se non sono iscritti

Per informazioni più dettagliate, consulta: