Bloques de creación
Un "bloque de creación", también conocido como un componente, es un patrón de implementación en ThingWorx diseñado para generar módulos más pequeños, independientes, autónomos y con numerosas funciones que se pueden utilizar para generar soluciones. Cada bloque de creación se crea para servir un propósito específico, como la integración de datos externos, las capacidades de la solución, las adiciones de la interfaz de usuario, la funcionalidad de la plataforma o la manipulación y gestión del equipo. Los bloques de creación se agrupan de forma ordenada para crear una solución, comenzando por el bloque de creación base hasta el bloque de creación de la solución.
Un bloque de creación individual está formado por un conjunto de entidades de ThingWorx recopiladas en un proyecto de ThingWorx, que se empaqueta como una extensión de ThingWorx. Cada bloque de creación se basa en el bloque de creación base (PTC.Base) que activa toda la arquitectura de bloques de creación. Este bloque de creación base establece la estructura inicial de cada bloque de creación con las siguientes entidades:
• Entidad de proyecto de ThingWorx: permite encapsular y gestionar todas las entidades que componen el bloque de creación.
• Entidad de punto de entrada: basada en la plantilla de cosa PTC.Base.ComponentEntryPoint_TT, esta entidad se utiliza para contener todos los metadatos del bloque de creación, como el nombre, la descripción, la versión, la lista de bloques de creación dependientes, etc.
• Administrador: en función de la plantilla de cosa PTC.base.CommonManager_TT, esta entidad se utiliza para contener las funciones de un bloque de creación, incluidos los servicios, las propiedades, las configuraciones, los eventos, etc.
• Permisos: se pueden crear grupos de usuarios de permisos para un bloque de creación según las necesidades de acceso de seguridad del bloque de creación. Un ejemplo típico de un grupo de usuarios de permisos podría ser un acceso más granular a los servicios CRUD.
En el siguiente diagrama se muestra el contenido básico incluido en un bloque de creación. Tal como se muestra, todos los bloques de creación dependen del bloque de creación base. Para obtener más información, consulte
Bloque de creación base.
En el diagrama, las flechas con cabezas huecas y líneas continuas (
) indican que una entidad se extiende desde la entidad a la que apunta la flecha, y las flechas con cabezas huecas y líneas de guiones (
) indican que una entidad implementa la entidad a la que apunta la flecha.
Tipos de bloques de creación
Los bloques de creación se agrupan generalmente en cuatro tipos diferentes, indicativos de su patrón de diseño subyacente:
• Bloque de creación de IU: un bloque de creación que expone la interfaz de usuario como su interfaz de interacción principal. Puede incluir lógica con fines de IU, además de mashups. Los bloques de creación de IU suelen llamar a un bloque de creación abstracto o estándar.
• Bloque de creación abstracto: un bloque de creación que contiene definiciones de servicio y expone las API como su interfaz de interacción principal. Está diseñado para tener solo elementos abstractos y suele ir acompañado de un bloque de creación de implementación. También puede contener mashups según sea necesario.
• Bloque de creación de implementación: un bloque de creación que proporciona la implementación del servicio para conectarse a orígenes de datos externos o proporcionar reglas empresariales de nivel de datos. Por lo general, sustituya los servicios contenidos en el componente abstracto.
• Bloque de creación estándar: un bloque de creación que no está diseñado para que se sustituya con una implementación exclusiva, sino que suele ser una combinación de los tipos de bloques de creación abstracto y de implementación. Un bloque de creación estándar también puede contener mashups según sea necesario. La mayoría de los bloques de creación desarrollados por el cliente serán de este tipo, ya que no son tan complejos como los otros tipos de bloques de creación.
Categorías de bloques de creación
Los bloques de creación se agrupan generalmente en cuatro categorías comunes que se relacionan de forma flexible con su dependencia en otros bloques de creación:
• Bloque de creación de la solución: normalmente es un bloque de creación muy sencillo con dependencias en todos los bloques de creación necesarios para la solución. Esta categoría de bloque de creación es una implementación básica del punto de entrada desde el bloque de creación base dentro de una entidad de proyecto. Por ejemplo, el bloque de creación de DPM (PTC.DPM).
• Bloques de creación específicos de la solución: una combinación de bloques de creación de tipo interfaz de usuario y bloques de creación de tipo estándar o abstracto, organizados según cómo se vaya a comercializar la solución. Se pueden dividir en dos categorías más en función de la posibilidad de reutilización de las capacidades de lógica empresarial:
◦ Bloques de creación de presentación del módulo: suelen ser bloques de creación de tipo interfaz de usuario. Por ejemplo, el bloque de creación del Tablero de producción (PTC.ProductionDashboard) en la solución DPM.
◦ Bloques de creación de lógica del módulo: se trata de bloques de creación que proporcionan una capa de lógica empresarial en muchos bloques de creación subyacentes. Por ejemplo, el bloque de creación de KPI de operación (PTC.OperationKPI) en la solución DPM llama a una serie de bloques de creación específicos del dominio.
• Bloques de creación específicos del dominio: estos bloques de creación proporcionan una recopilación de capacidades específicas del dominio que tienen dependencias mínimas. Por ejemplo, el bloque de creación de turno (PTC.Shift), el bloque de creación de código de motivo (PTC.ReasonCode), etc.
• Bloques de creación comunes: el conjunto común de bloques de creación que se pueden utilizar en todas las soluciones. Por ejemplo, el bloque de creación base (PTC.Base), el bloque de creación de gestión de usuarios (PTC.UserManagement), el bloque de creación de gestión de modelos (PTC.ModelManagement) y el bloque de creación de conexión de base de datos (PTC.DBConnection).