Modelli di oggetto
I modelli di oggetto forniscono funzionalità di base con proprietà, servizi, eventi e sottoscrizioni utilizzati da istanze di
oggetti nella loro esecuzione. Ogni oggetto viene creato da un modello di oggetto. Un modello di oggetto può estendere un altro modello di oggetto. Quando si rilascia una nuova versione di un prodotto, si aggiungono semplicemente le caratteristiche aggiuntive della versione senza dover ridefinire l'intero modello. Questa configurazione di modello fornisce più livelli di generalizzazione di un asset. Un modello di oggetto può derivare una o più caratteristiche aggiuntive implementando thing shape. Una modifica apportata al modello di oggetto viene propagata agli oggetti che implementano tale modello di oggetto, semplificando la gestione del modello.
Un modello di oggetto può essere utilizzato per classificare il tipo di una classe di oggetto o asset oppure come modello di prodotto con funzionalità specifiche. In presenza di due modelli di prodotto con medesima interazione con la soluzione (stesse proprietà, stessi servizi e stessi eventi), è possibile modellarli come un unico modello di oggetto. È possibile classificare i modelli di oggetto per aggregare oggetti in raccolte, utili nei mashup. È possibile ottenere modelli di oggetto distinti per l'indicizzazione, la ricerca e le evoluzioni future dei prodotti.
Modelli di oggetto definiti dal sistema
È possibile utilizzare vari modelli di oggetto definiti dal sistema per creare oggetti per task specifici. Alcuni di questi modelli di oggetto possono risultare utili come utilità per vari servizi e funzionalità in fase di creazione di applicazioni.
Di seguito sono riportati i modelli di oggetto definiti dal sistema.
• Blog - Un oggetto blog consente di implementare un blog, commenti e oggetti di collaborazione del forum di discussione nei mashup.
• Content Crawler - Un oggetto progettato per gestire una specifica interfaccia a un sistema esterno o a un'area di contenuto. Definire un servizio per ottenere un elenco di contenuti esterni da indicizzare e un servizio per recuperare i dettagli di ciascun oggetto di contenuto. ThingWorx indicizzerà i dati e li renderà disponibili tramite le funzioni di ricerca di ThingWorx.
• Database - Una connessione JDBC a un sistema di database relazionale di terze parti.
• Data Table - Una tabella dati è simile a una tabella in un database relazionale e consente di archiviare righe transazionali di dati in ThingWorx.
• File Repository - Un'entità ThingWorx definita per il contenuto di file esterni da archiviare. Il trasferimento di file da/verso un oggetto edge avviene da/verso uno specifico repository. Un repository di file punta a una cartella nella cartella ThingworxStorage/repository del server. I servizi di un repository di file consentono di visualizzare e modificare i file nella relativa cartella.
• Generic Thing - Un oggetto di base con caratteristiche minime ereditate. È consigliabile definire un modello di oggetto personalizzato. Tuttavia, in alcuni casi è possibile che esista una definizione di oggetto una tantum e si desideri utilizzare un oggetto generico.
• Mail Server - È possibile creare un oggetto server di posta per inviare messaggi e-mail dall'applicazione.
• Edge - Un oggetto edge è un dispositivo o un'origine dati installata in un altro server, generalmente tramite un firewall a un'altra rete. Un oggetto edge comunica con il server tramite un EMS installato in locale. Un esempio di un oggetto edge è un server OPC-DA.
• Edge Database - Un oggetto database edge consente di comunicare con un database OLE-DB o ADO.NET o un'origine dati in un server o una workstation diversa. Esempi di un database edge sono Microsoft Excel o Microsoft Access.
• Edge Enhanced - Un oggetto modello server corrispondente a un dispositivo o un archivio dati che deve supportare il tunneling del desktop remoto o il trasferimento di file.
• Scheduler - Un oggetto scheduler consente di eseguire operazioni in base a uno schema cron, ad esempio una volta al giorno o una volta all'ora.
• Source Control Repository - Un repository di controllo di origine può puntare a qualsiasi cartella sul file system del server, che può essere la radice del repository locale. È disponibile in >
• Stream - Archiviazione dati di serie temporali.
• Timer - Un semplice timer che attiva un evento a un intervallo definito.
• Wiki - Un oggetto di collaborazione per condividere documenti e commenti correlati all'interno dei mashup.
Quando si crea un'istanza specifica di uno dei modelli di oggetto di sistema, è possibile configurarla in modo da soddisfare le esigenze aziendali e l'ambiente IoT.
Modelli remoti definiti dal sistema
È possibile utilizzare vari modelli di oggetto definiti dal sistema per comunicare tramite WebSocket con dispositivi edge o archivi dati. RemoteThing è la convenzione sull'attribuzione dei nomi per l'utilizzo di WebSocket per comunicare con un altro nodo o oggetto nella rete. Di seguito sono riportati i modelli di oggetto specifici per WSEMS e SDK.
• RemoteDatabase - Un'origine dati OLE-DB remota.
• RemoteThing - Un oggetto remoto senza esigenze di trasferimento di file o tunneling. Utilizzato anche per oggetti di origine dati OPC-DA. Supporta proprietà, servizi ed eventi.
• RemoteThingWithFileTransfer - Un oggetto remoto con abilitazione per il trasferimento di file.
• RemoteThingWithTunnels - Un oggetto remoto con abilitazione per il tunneling.
• RemoteThingWithTunnelsAndFileTransfer - Un oggetto remoto con trasferimento di file e tunneling.
• EMSGateway - Il modello di oggetto EMSGateway viene utilizzato se si desidera gestire WSEMS come oggetto autonomo. Può risultare utile nei casi in cui WSEMS sia in esecuzione in un computer gateway e gestisca le comunicazioni per uno o più oggetti remoti, che possono trovarsi in indirizzi IP diversi in una rete locale.
• SDKGateway - Analogo a EMSGateway, ma utilizzato in presenza di un'implementazione SDK come gateway.
Di seguito sono descritti altri modelli remoti che si aggiungono ai modelli di oggetto di cui sopra e che possono essere utilizzati in uno scenario di archiviazione federato, in cui si desidera scaricare gli oggetti di persistenza in un altro server ottimizzato per il disco I/O.
• RemoteStream - Crea un oggetto proxy locale per un oggetto di stream che esegue e rende persistenti i dati in un altro server ThingWorx.
• RemoteValueStream - Crea un oggetto proxy locale per un oggetto di stream di valori che esegue e rende persistenti i dati in un altro server ThingWorx.
• RemoteDataTable - Crea un oggetto proxy locale per un oggetto di tabella dati che esegue e rende persistenti i dati in un altro server ThingWorx.
• RemoteBlog - Crea un oggetto proxy locale per un oggetto blog che esegue e rende persistenti i dati in un altro server ThingWorx.
• RemoteWiki - Crea un oggetto proxy locale per un oggetto wiki che esegue e rende persistenti i dati in un altro server ThingWorx.
|
Le proprietà degli oggetti remoti non vengono aggiornate per i dispositivi controllati da edge.
|
Creazione di modelli di oggetto con estensione
I modelli di oggetto creati con un'estensione sono sostanzialmente identici a quelli creati in ThingWorx Composer. Sono modelli di base utilizzati per creare oggetti con le stesse proprietà, gli stessi parametri di configurazione e gli stessi servizi. La differenza tra crearli in Composer e all'interno di un framework di estensione consiste nel linguaggio utilizzato per i servizi e la loro visibilità.
Modello Composer:
• Utilizza JavaScript per i servizi
• Il codice sorgente è visibile
Modello Extension SDK:
• Utilizza Java per i servizi
• Il codice sorgente non è visibile
• Può definire valori di configurazione