Sottoscrizioni di oggetti
Le sottoscrizioni sono servizi che ricevono e rispondono agli eventi. Una sottoscrizione è associata a un'origine, in genere un oggetto. Un oggetto può disporre di una sottoscrizione a un evento che risponde con un'azione. Se un'entità attiva un evento Surriscaldamento del motore, ad esempio, può effettuare la sottoscrizione a tale evento attivando una sottoscrizione Spegnere il motore. Gli oggetti possono ereditare sottoscrizioni dai modelli di oggetto e dalle thing shape che utilizzano.
Una sottoscrizione è simile a un servizio standard, ma è collegata in modo esplicito a un evento. Ciò consente di disaccoppiare l'evento dal codice che risponde all'evento stesso. Come per un servizio, è possibile implementare la logica di business personalizzata per reagire all'evento. È possibile sfruttare le funzionalità del modello inviando messaggi e-mail tramite un oggetto server di posta, scrivendo in un database o chiamando qualsiasi servizio disponibile nella piattaforma. A differenza del servizio, una sottoscrizione non ha un output di reso esplicito. Può, tuttavia, chiamare qualsiasi altro servizio nel modello a cui il contesto di protezione del thread ha accesso. Il contesto di protezione del thread di una sottoscrizione viene impostato in modo che coincida con il contesto di protezione del thread dell'evento che è stato attivato. Per implementare i servizi è possibile utilizzare lo stesso ambiente di modifica JavaScript.
Le sottoscrizioni prevedono un input definito costituito dal pacchetto di dati generato dall'evento, definito "dati dell'evento". Se l'entità effettua la sottoscrizione a un evento definito, i dati dell'evento vengono trasmessi alla funzione della sottoscrizione. I dati dell'evento sono descritti dalla data shape dell'evento. Nell'implementazione della sottoscrizione i dati passati dall'evento fungono da input per la funzione di script. Ad esempio, se un'entità è sottoscritta a un evento di modifica dei dati delle proprietà di un oggetto, viene chiamata la funzione di script di sottoscrizione. Di conseguenza, il valore della proprietà dell'oggetto, insieme ad altri dati rilevanti dell'evento, viene trasmesso alla funzione come parte dei dati dell'evento.
Molte entità possono effettuare la sottoscrizione allo stesso evento. Ogni entità riceve una chiamata alla sottoscrizione con i dati dell'evento trasmessi. Un'entità può eseguire qualsiasi azione dello script della sottoscrizione per soddisfare i requisiti della soluzione.
Di seguito sono elencati alcuni vantaggi dell'utilizzo di questa tecnica rispetto all'utilizzo di un servizio chiamato da un altro servizio.
Un evento può essere sottoscritto da una o più sottoscrizioni.
Gli eventi vengono richiamati in base all'attività del sistema e non è necessaria alcuna interazione dell'utente.
Se a un evento sono sottoscritti più oggetti, è possibile utilizzare una sottoscrizione anziché concatenare più servizi.
* 
In ThingWorx 8.4.0 e versioni successive sono supportate sottoscrizioni multiple allo stesso evento definite nello stesso oggetto (sottoscrizioni duplicate).
* 
Trigger evento e sottoscrizioni vengono eseguiti in modo asincrono. Ad esempio, una richiesta API di aggiornamento della proprietà riceve una risposta immediata al termine dell'azione di aggiornamento della proprietà. Non attende la risposta delle sottoscrizioni successive all'evento modifica dati per il completamento.
Sottoscrizioni multiple
Le sottoscrizioni hanno un nome definito dall'utente come identificatore univoco. Le entità possono disporre di più sottoscrizioni a un evento in un oggetto. Se un'entità attiva un evento Surriscaldamento del motore, ad esempio, può effettuare all'evento sia una sottoscrizione Spegnere il motore che una sottoscrizione Creare un ordine di lavorazione affinché il servizio di manutenzione controlli il motore. Per l'evento può inoltre essere creato un numero illimitato di altre sottoscrizioni.
Se un modello di oggetto o una thing shape implementa una sottoscrizione a un evento, anche gli oggetti che utilizzano il modello di oggetto o la thing shape possono creare sottoscrizioni allo stesso evento e non devono trovare altre soluzioni alternative per eseguire azioni aggiuntive quando tali eventi vengono attivati.
Sottoscrizioni distribuite
* 
La funzionalità di sottoscrizione distribuita è disponibile in un ambiente a disponibilità elevata a partire da ThingWorx 9.4 e versioni successive.
Le sottoscrizioni distribuite consentono di distribuire le esecuzioni delle sottoscrizioni in tutti i nodi ThingWorx quando un evento attiva un numero elevato di istanze di sottoscrizioni. Ad esempio quando molti oggetti effettuano la sottoscrizione allo stesso evento timer o scheduler. Ciò consente la scalabilità orizzontale dell'esecuzione della sottoscrizione basata su timer/scheduler in tutti i nodi ThingWorx in ambienti a disponibilità elevata per un utilizzo più efficiente delle risorse e prestazioni migliori. Per impostare questo comportamento, si utilizza la casella di controllo Distribuita nella scheda Sottoscrizione. Se la casella di controllo Distribuita è deselezionata, le sottoscrizioni a timer e scheduler vengono eseguite nello stesso nodo in cui viene generato l'evento timer o scheduler. Per ulteriori informazioni sulla configurazione correlata, vedere quanto segue:
Per un ambiente locale, vedere Configurazione di SSL/TLS per AKKA.
È stato utile?