Prácticas recomendadas para el desarrollo de aplicaciones > Modelado de los activos > Modelado de activos con cosas, plantillas de cosa y definiciones de cosa
Modelado de activos con cosas, plantillas de cosa y definiciones de cosa
Las cosas son representaciones de dispositivos físicos, activos, productos, sistemas, personas o procesos que tienen propiedades y lógica empresarial.
Con el fin de definir un comportamiento una vez y reutilizarlo en toda la aplicación, ThingWorx facilita el modelado de la aplicación proporcionando plantillas de cosa y definiciones de cosa. Las plantillas de cosa proporcionan la funcionalidad base a las cosas con sus propiedades, servicios, eventos y suscripciones. Las definiciones de cosa permiten reutilizar las propiedades en todos los activos de una sola aplicación.
Las cosas heredan la funcionalidad de las plantillas de cosa. Una plantilla de cosa puede derivar una o varias características adicionales mediante la implementación de definiciones de cosa.
Los usuarios finales interactúan con cosas para obtener información en aplicaciones y para leer o escribir datos.
Prácticas recomendadas para crear cosas, plantillas de cosa y definiciones de cosa
Utilice las siguientes prácticas recomendadas al crear cosas, plantillas de cosa y definiciones de cosa:
Defina las convenciones de asignación de nombres para las cosas, las plantillas de cosa y las definiciones de cosa. Se deben tener en cuenta los siguientes puntos:
Utilice una nomenclatura estándar en todas las entidades. Por ejemplo: se puede utilizar un prefijo de espacio de nombres único en distintos tipos de entidad para evitar conflictos.
Proporcione nombres con significado para las entidades.
Intente incluir una buena descripción para cada entidad que se crea.
Evite nombres ambiguos.
Evite los nombres de entidad largos siempre que sea posible.
Consulte la sección Asignación de nombres a entidades para obtener más información.
Utilice etiquetas para todas las entidades que cree y modifique. Para las aplicaciones complejas, esto ayuda a diferenciar entre los distintos módulos de la misma aplicación o de varias aplicaciones. Para los clientes, ayuda a diferenciar entre entidades de distintas aplicaciones en la misma instancia de la plataforma de ThingWorx. Como desarrollador, permite filtrar rápidamente las entidades en ThingWorx Composer y exportar un módulo de la aplicación para la prueba. Se recomienda configurar convenciones de asignación de nombres para las etiquetas, especialmente si se tiene previsto utilizar distintas etiquetas en distintos módulos de la misma aplicación.
Agrupe las mismas entidades de un módulo en un proyecto. Cada módulo tiene su propio proyecto.
Siempre que sea posible, utilice definiciones de cosa.
* 
Se recomienda utilizar definiciones de cosa para definir las propiedades y los servicios. Si se definen propiedades y servicios en una plantilla de cosa, es difícil mover sus definiciones a una definición de cosa.
Defina todas las propiedades, los servicios y los eventos en un nivel de definición de cosa.
Se utiliza una plantilla de cosa para agrupar definiciones de cosa y para soportar la herencia.
Siempre que sea posible, no implemente propiedades o servicios en las plantillas de cosa y las cosas.
Permita las sustituciones de servicio en definiciones de cosa y plantillas de cosa.
Asegúrese de que las definiciones de cosa y las plantillas de cosa de fábrica no sean editables.
Defina las anotaciones para identificar las API soportadas. De este modo, se garantiza que los servicios y las propiedades se conservan durante la actualización.
Utilice una definición de cosa para encapsular funcionalidad específica. Mediante las definiciones de cosa, se puede añadir fácilmente nueva funcionalidad a las plantillas de cosa existentes en ThingWorx. No implemente definiciones de cosa en la cosa directamente. Herede las características de la definición de cosa en la cosa a través de la plantilla de cosa.
Por ejemplo, si se han implementado los activos mediante cosas y plantillas de cosa personalizadas, es sencillo añadir una definición de cosa a las plantillas de cosa. Sin embargo, si las propiedades o los servicios se han definido directamente en una plantilla de cosa, se deberán volver a crear todos los activos para utilizar la nueva funcionalidad, ya que la plantilla de cosa base no se puede cambiar para una plantilla de cosa o una cosa.
No derive cosas directamente de las plantillas de cosa del sistema. Se recomienda crear plantillas de cosa personalizadas que se deriven de las plantillas de cosa base que proporciona ThingWorx. De este modo, se puede añadir más funcionalidad posteriormente al implementar definiciones de cosa adicionales y añadiéndolas a las plantillas de cosa.
Si la aplicación tiene muchos dispositivos remotos conectados o si va a utilizar ThingWorx Edge Micro Server o los SDK de Edge, utilice la plantilla de cosa RemoteThing en lugar de la plantilla de cosa GenericThing como plantilla de cosa base. En función de si se necesita transferencia de ficheros o tunelización, utilice la plantilla de cosa RemoteThingWithTunnels, RemoteThingWithFileTransfer o RemoteThingWithTunnelsAndFileTransfer. Se recomienda automatizar el proceso de añadir enlaces remotos mediante scripts que comprueben si existen cosas remotas sin enlazar y crear estas automáticamente en la plataforma. De este modo, se pueden crear cosas automáticamente en la plataforma, a medida que se envían nuevos dispositivos y estos entran en producción.
* 
No se puede cambiar la plantilla de cosa base después de crear una cosa o una plantilla de cosa.
Utilice redes para definir relaciones entre las cosas. En una red, una cosa puede ser padre, hijo o del mismo nivel de otra cosa. De este modo, se puede modelar una estructura jerárquica.
Consideraciones de sostenibilidad
En esta sección se describen otras consideraciones según corresponda:
Seguridad
Asegúrese de que todas las cosas, las plantillas de cosa y las definiciones de cosa sean no editables.
Añada los permisos adecuados de visibilidad, tiempo de ejecución y fase de diseño en las plantillas de cosa o las definiciones de cosa.
Defina organizaciones de usuarios, grupos de usuarios y usuarios que tengan acceso a las definiciones de cosa, plantillas de cosa o cosas.
Actualizaciones
Organice las cosas, las plantillas de cosa y las definiciones de cosa mediante proyectos y etiquetas. De este modo, se pueden realizar tareas como, por ejemplo, la búsqueda, exportación, modificación de permisos de visibilidad y la identificación de entidades para una actualización.
Al crear entidades, asegúrese de utilizar la convención de asignación de nombres correcta. De este modo, se pueden ahorrar costes al cambiar el nombre de las entidades durante las actualizaciones.
Extensión y personalización
Para extender cosas de componente, cree plantillas de cosa de subtipo que hereden las plantillas de cosa de fábrica.
Reemplace los servicios y las propiedades en las plantillas de cosa de subtipo, tal como se indica en el desarrollador de extensiones.
Introduzca nuevos servicios y propiedades en las nuevas definiciones de cosa.