Gestire un numero elevato o variabile di Smart Object

In molte circostanze il numero di “oggetti” che inviano informazioni (es: misure) alla piattaforma può essere elevato o comunque variabile in tempi stretti e non conosciuto a priori. Rientra in questa situazione per esempio l’utilizzo di una mobile app su smartphone liberamente scaricabile dagli utenti e che invia dati alla piattaforma.

In queste situazioni, qualora il formato dei messaggi da inviare alla piattaforma sia comune a tutte le fonti, allora si consiglia di procedere con il censimento di un unico smartobject che rappresenta l’insieme delle sorgenti (presenti e future) e dello stream associato.

Si passa quindi dallo scenario descritto nella seguente figura

../../../_images/n_elevato_SO1.png

a quello descritto in questa nuova figura

../../../_images/n_elevato_SO1.png

Per quanto sia possibile sulla piattaforma censire uno smartobject di tipo device, che riporta informazioni “fisiche” dello strumento (marca, tipologia, collocazione, firmware) si consiglia l’utilizzo di uno smartobject di tipo Application.

Sarà necessario quindi, nella successiva definizione dello stream associato, aggiungere un componente che trasporta l’id della sorgente. Per questo campo si consiglia l’utilizzo di una componente di tipo string con nome “source”.

Rispetto allo scenario con smartobject di tipo device, nel caso di tipo application è necessario inviare messaggi con questo formato:

{

«stream»: «infometeo»,

«application: «appinfometeo»,

«values»: [

{

«time»: «2014-05-13T17:08:58Z»,

«components»: {

(ad esempio….)

«source»:»89f84a22-1e2e-5882-bbf0-9c6efffb8ce7»,

«temperature»: «15.26»,

«longitude»:»1234.5678»,

«latitude»:» 1234.5678»

}

}]

}

dove “application: “appinfometeo” è il codice dell’unico smartobject censito.