Best practice per lo sviluppo di soluzioni > Modellazione degli asset > Modellazione di asset con oggetti, modelli di oggetto e Thing shape
Modellazione di asset con oggetti, modelli di oggetto e Thing shape
Gli oggetti sono rappresentazioni di dispositivi fisici, asset, prodotti, sistemi, persone o processi dotati di proprietà e logica aziendale.
Con i modelli di oggetto e le Thing shape di ThingWorx, è possibile semplificare la modellazione della soluzione definendo un comportamento una sola volta e riutilizzandolo. I modelli di oggetto forniscono agli oggetti le funzionalità di base con proprietà, servizi, eventi e sottoscrizioni. Le Thing shape consentono di riutilizzare le proprietà negli asset di una singola soluzione.
Gli oggetti ereditano le funzionalità dai modelli di oggetto. Un modello di oggetto può derivare una o più caratteristiche aggiuntive implementando le Thing shape.
Gli utenti finali interagiscono con gli oggetti per ottenere informazioni nelle soluzioni e per leggere o scrivere i dati.
Best practice per la creazione di oggetti, modelli di oggetto e thing shape
Per creare oggetti, modelli di oggetto e Thing shape, attenersi alle best practice riportate di seguito.
Definire le convenzioni sull'attribuzione dei nomi per gli oggetti, i modelli di oggetto e le Thing shape. Tenere presenti i punti elencati di seguito.
Utilizzare una nomenclatura standard tra le entità. Ad esempio, si potrebbe utilizzare un prefisso namespace univoco tra diversi tipi di entità per evitare conflitti.
Assegnare nomi significativi alle entità.
Provare a includere una descrizione valida per ogni entità creata.
Evitare nomi ambigui.
Evitare nomi di entità lunghi, laddove possibile.
Per ulteriori informazioni, vedere la sezione Denominazione delle entità.
Utilizzare i tag per tutte le entità create e modificate. Ciò consente di distinguere tra vari moduli della stessa soluzione o di più soluzioni nel caso di soluzioni complesse. Aiuta inoltre i clienti a distinguere tra entità di soluzioni diverse nella stessa istanza di ThingWorx Platform. Il vantaggio per lo sviluppatore è che può filtrare rapidamente le entità in ThingWorx Composer ed esportare un modulo della soluzione a scopo di test. Si consiglia di impostare le convenzioni sull'attribuzione dei nomi per i tag, soprattutto se si prevede di utilizzare tag differenti in moduli diversi della stessa soluzione.
Raggruppare le stesse entità in un modulo all'interno di un progetto. Ogni modulo ha il proprio progetto.
Se possibile, utilizzare le Thing shape.
* 
È consigliabile utilizzare thing shape per definire le proprietà e i servizi. Se le proprietà e i servizi vengono definiti per un modello di oggetto, diventa difficile passare le definizioni a una Thing shape.
Definire tutte le proprietà, i servizi e gli eventi a livello di Thing shape.
È possibile utilizzare un modello di oggetto per raggruppare le Thing shape e per supportare l'eredità.
Se possibile, non implementare proprietà o servizi sui modelli di oggetto e sugli oggetti.
Consentire le sostituzioni dei servizi su Thing shape e modelli di oggetto.
Assicurarsi che le thing shape e i modelli di oggetto predefiniti siano non modificabili.
Definire le annotazioni per identificare le API supportate. Ciò garantisce che i servizi e le proprietà vengano mantenuti durante l'aggiornamento.
Utilizzare una Thing shape per incapsulare funzionalità specifiche. Utilizzando le Thing shape, è possibile aggiungere facilmente nuove funzionalità ai modelli di oggetto esistenti in ThingWorx. Non implementare direttamente le Thing shape nell'oggetto. Ereditare le caratteristiche della Thing shape nell'oggetto tramite il modello di oggetto.
Ad esempio, se gli asset sono stati implementati utilizzando oggetti e modelli di oggetto personalizzati, è possibile aggiungere facilmente una Thing shape ai modelli di oggetto. Se tuttavia le proprietà o i servizi sono stati definiti direttamente su un modello di oggetto, è necessario ricreare tutti gli asset per utilizzare la nuova funzionalità, poiché non è possibile modificare il modello di oggetto di base per un modello di oggetto o un oggetto.
Non derivare oggetti direttamente dai modelli di oggetto di sistema. Si consiglia di creare modelli di oggetto personalizzati che derivano dai modelli di oggetto di base forniti da ThingWorx. In questo modo è possibile aggiungere ulteriori funzionalità in un secondo momento implementando Thing shape aggiuntive e aggiungendole ai modelli di oggetto.
Se alla soluzione sono connessi molti dispositivi remoti o se la soluzione utilizza ThingWorxEdge MicroServer o gli SDK EDGE, usare il modello di oggetto RemoteThing anziché il modello di oggetto GenericThing come modello di oggetto di base. A seconda che sia necessario il trasferimento o il tunneling di file, utilizzare il modello di oggetto RemoteThingWithTunnels, RemoteThingWithFileTransfer o RemoteThingWithTunnelsAndFileTransfer. Si consiglia di automatizzare il processo di aggiunta di associazioni remote tramite gli script, che controllano se esistono oggetti remoti non associati e li creano automaticamente in ThingWorx Platform. Ciò consente di creare automaticamente oggetti in ThingWorx Platform man mano che nuovi dispositivi vengono forniti e vanno in produzione.
* 
Non è possibile modificare il modello di oggetto di base dopo avere creato un oggetto o un modello di oggetto.
Utilizzare le reti per definire le relazioni tra gli oggetti. In una rete un oggetto può essere padre, figlio o pari livello di un altro oggetto. Ciò consente di modellare una struttura gerarchica.
Considerazioni sulla sostenibilità
In questa sezione vengono presentate altre considerazioni.
Protezione
Assicurarsi di rendere non modificabili tutti gli oggetti, i modelli di oggetto e le Thing shape.
Aggiungere i permessi di visibilità, della fase di esecuzione e della fase di progettazione appropriati per i modelli di oggetto o le Thing shape.
Definire le organizzazioni utente, i gruppi di utenti e gli utenti che hanno accesso alle Thing shape, ai modelli di oggetto o agli oggetti.
Aggiornamenti
Organizzare oggetti, modelli di oggetto e Thing shape utilizzando progetti e tag. In questo modo è possibile eseguire operazioni quali la ricerca, l'esportazione, la modifica dei permessi di visibilità e l'identificazione delle entità per un aggiornamento.
Assicurarsi di utilizzare la convenzione sull'attribuzione dei nomi corretta durante la creazione delle entità. Ciò consente di risparmiare i costi di ridenominazione delle entità durante gli aggiornamenti.
Estensione e personalizzazione
Per estendere gli oggetti dei componenti, creare modelli di oggetto sottotipo che ereditano i modelli di oggetto predefiniti.
Ignorare i servizi e le proprietà nei modelli di oggetto sottotipo come indicato dallo sviluppatore dell'estensione.
Introdurre nuovi servizi e proprietà in nuove Thing shape.
È stato utile?