Suscripciones de cosas
Las suscripciones son servicios que reciben y responden a
eventos. Una suscripción tiene un origen, normalmente una
cosa. Una cosa puede tener una suscripción a un evento que responde con una acción. Por ejemplo, si una entidad activa un evento
El motor se está sobrecalentando, se puede suscribir a ese evento activando una suscripción
Apagar motor. Las cosas pueden heredar suscripciones de las
plantillas de cosa y las
definiciones de cosa que utilizan.
Una suscripción es similar a un servicio estándar, pero está vinculada explícitamente a un evento. De este modo, se puede desvincular el evento del código que responde a él. Como ocurre con un servicio, se puede implementar lógica empresarial personalizada para reaccionar al evento. Las capacidades del modelo se pueden aprovechar enviando mensajes de correo electrónico a través de una cosa de servidor de correo, escribiendo en una base de datos o llamando a cualquier servicio disponible en la plataforma. Una suscripción no tiene una salida de devolución explícita como un servicio. Sin embargo, una suscripción puede llamar a cualquier otro servicio del modelo al que tenga acceso el contexto de seguridad del subproceso. El contexto de seguridad del subproceso de una suscripción se define en el mismo contexto de seguridad del subproceso del evento que se ha activado. Es posible utilizar el mismo entorno de edición de JavaScript que se utiliza para implementar servicios.
Las suscripciones tienen una entrada definida, que es el paquete de datos que el evento emite y al que se hace referencia como datos de evento. Si la entidad se suscribe a un evento definido, los datos del evento se transfieren a la función de suscripción. El evento
Definición de datos permite describir los datos del evento. Dentro de la implementación de la suscripción, los datos que se pasan del evento actúan como entrada para la función de script. Por ejemplo, si una entidad se suscribe a un evento de cambio de datos de la propiedad de cosa, se llama a la función de script de suscripción. Como resultado, el valor de la propiedad de cosa, junto con otros datos pertinentes del evento, se pasan a la función como parte de los datos del evento.
Muchas entidades se pueden suscribir al mismo evento. Cada entidad recibe una llamada a la suscripción con los datos del evento transferidos. Una entidad puede realizar cualquier acción del script de suscripción para conseguir los requisitos de la solución.
Algunas de las ventajas de utilizar esta técnica frente a la utilización de un servicio al que se llama desde otro servicio son las siguientes:
• Una o varias suscripciones pueden suscribirse a un evento.
• Los eventos se invocan en función de la actividad del sistema y no es necesaria ninguna interacción del usuario.
• Si hay más de una cosa suscrita a un evento, se puede utilizar una suscripción en lugar de encadenar varios servicios.
|
En ThingWorx 8.4.0 o versiones posteriores se soportan varias suscripciones para el mismo evento definido en la misma cosa o subscripciones duplicadas.
|
|
Los activadores de eventos y las suscripciones se ejecutan de forma asíncrona. Por ejemplo, una solicitud de API de actualización de propiedades recibe una respuesta inmediata cuando se completa la acción de actualización de la propiedad. No se espera a que se completen las subscripciones posteriores que responden al evento de cambio de datos.
|
Varias suscripciones
Las suscripciones tienen un nombre definido por el usuario como identificador único. Las entidades pueden tener varias suscripciones a un evento en una cosa. Por ejemplo, si una entidad activa un evento El motor se está sobrecalentando, se puede suscribir a ese evento con una suscripción Apagar motor y una suscripción Crear orden de trabajo para que se realice una verificación de mantenimiento del motor. También se puede crear cualquier cantidad de otras suscripciones para ese evento.
Si una plantilla de cosa o una definición de cosa implementa una suscripción a un evento, las cosas que utilizan dicha plantilla de cosa o definición de cosa también pueden crear suscripciones al mismo evento, sin requerir una solución alternativa para realizar acciones adicionales cuando se activan esos eventos.
Suscripciones distribuidas
|
La capacidad de suscripción distribuida solo está disponible en un entorno de alta disponibilidad a partir de ThingWorx 9.4.
|
Las suscripciones distribuidas permiten la distribución de ejecuciones de suscripciones en todos los nodos ThingWorx cuando un evento activa muchas instancias de suscripciones. Por ejemplo, muchas cosas que se suscriben al mismo evento de temporizador o programador. De este modo, se permite la escalabilidad horizontal de la ejecución de suscripciones basada en temporizador/programador en todos los nodos ThingWorx en entornos de alta disponibilidad para una mejor utilización de los recursos y mejor rendimiento. La casilla Distribuido de la ficha Suscripción permite activar este comportamiento. Si se despeja la casilla Distribuido, las suscripciones a temporizadores y programadores se ejecutarán en el mismo nodo en el que se genera el evento de temporizador o programador. Para obtener más información sobre la configuración relacionada, consulte lo siguiente: