Scrivi transazioni

Nell'ultima sezione abbiamo parlato delle interazioni di lettura di Attributi ed Eventi. In questa sezione parleremo della scrittura degli attributi, ovvero la modifica di un valore dell'attributo in un cluster come Level.

Transazione di scrittura non programmata

Sequenza di operazioni di una transazione di scrittura non attiva
Figura 1: transazione di scrittura non programmata

Azione di richiesta di scrittura

Direzione: Iniziatore -> Target

Analogamente all'azione di richiesta di lettura, in questa azione l'iniziatore fornisce il target con:

  • Richieste di scrittura: un elenco di una o più tuple contenenti Percorso e dati.
  • Richiesta temporizzata: un flag che indica se l'azione fa parte di una transazione di scrittura a tempo.
  • Suppress Response (Ignora risposta): un flag che indica se l'azione Stato risposta deve essere soppressa.

Scrivi azione risposta

Direzione: Target -> Iniziatore

Dopo aver ricevuto l'azione di richiesta di scrittura, il target finalizzerà la transazione con un'azione di risposta in scrittura che prevede:

  • Scrivi risposte: un elenco di percorsi e codici di errore per ogni richiesta di scrittura inviata nell'azione di richiesta di scrittura.

Limitazioni di scrittura non programmata

L'azione di richiesta di scrittura può essere un groupcast, ma in questo caso è necessario impostare il flag Elimina risposta. La motivazione è che altrimenti la rete potrebbe essere inondata da risposte simultanee da parte di ogni membro di un gruppo.

Per attivare questo comportamento, il percorso utilizzato nell'elenco Richieste di scrittura può contenere gruppi e, in alternativa, può contenere caratteri jolly, ma solo nel campo Endpoint.

Transazione di scrittura a tempo

Sequenza di operazioni di una transazione di scrittura a tempo
Figura 2: transazione di scrittura a tempo

Le transazioni di scrittura a tempo aggiungono alcuni passaggi alle transazioni di scrittura non temporizzate.

Azione richiesta a tempo

Direzione: Iniziatore -> Target

Un iniziatore avvia la transazione inviando questa azione che contiene:

  • Timeout: per quanti millisecondi questa transazione potrebbe rimanere aperta. Durante questo periodo, sarà considerata valida l'azione successiva inviata dall'iniziatore.

Una volta ricevuta l'azione di richiesta temporizzata, il target deve confermare l'azione di richiesta temporizzata con un'azione di risposta dello stato. Quando l'iniziatore riceve un'azione di risposta di stato che non segnala errori, invia un'azione di richiesta di scrittura.

Azione di richiesta di scrittura

Uguale all'azione di richiesta di scrittura descritta in precedenza.

Scrivi azione risposta

Uguale all'azione Scrivi risposta descritta in precedenza.

Limitazioni di scrittura a tempo

Le azioni di richiesta a tempo, le azioni di richiesta di scrittura e le azioni di risposta di scrittura sono solo unicast.