사물 구독
구독은 이벤트를 수신하고 이에 응답하는 서비스입니다. 구독은 일반적으로 사물인 소스를 포함합니다. 사물에는 작업에 응답하는 이벤트에 대한 구독이 있을 수 있습니다. 예를 들어, 엔티티에서 모터가 과열됨 이벤트가 개시되는 경우 모터 끄기 구독을 트리거하여 해당 이벤트를 구독할 수 있습니다. 사물은 사용하는 사물 템플릿사물 형태에서 구독을 상속할 수 있습니다.
구독은 표준 서비스와 비슷하지만 이벤트에 명시적으로 연결됩니다. 이를 통해 이벤트를 이벤트에 응답하는 코드에서 분리시킬 수 있습니다. 서비스와 마찬가지로 사용자 정의 비즈니스 로직을 구현하여 이벤트에 반응할 수 있습니다. 메일 서버 사물을 통해 이메일을 전송하거나, 데이터베이스에 작성하거나, 플랫폼에서 사용 가능한 서비스를 호출하여 모델의 기능을 활용할 수 있습니다. 구독에는 서비스와 같은 명시적인 반환 출력이 없습니다. 그러나 구독은 스레드 보안 컨텍스트에서 액세스할 수 있는 모델의 다른 서비스를 호출할 수 있습니다. 구독의 스레드 보안 컨텍스트는 발생한 이벤트의 동일한 스레드 보안 컨텍스트로 설정됩니다. 서비스를 구현하는 데 사용되는 동일한 JavaScript 편집 환경을 사용할 수 있습니다.
구독에는 이벤트에 의해 발급되고 이벤트 데이터라고 하는 데이터 패킷인 정의된 입력이 있습니다. 엔티티가 정의된 이벤트를 구독하는 경우 이벤트 데이터가 구독 함수에 전달됩니다. 이벤트 데이터는 이벤트 데이터 셰이프로 설명됩니다. 구독 구현 내에서 이벤트에서 전달된 데이터는 스크립트 함수에 대한 입력으로 작동합니다. 예를 들어, 엔티티가 사물 속성 데이터 변경 이벤트를 구독하는 경우 구독 스크립트 함수가 호출됩니다. 결과적으로 이벤트의 다른 관련 데이터와 함께 사물 속성 값이 이벤트 데이터의 일부로 함수에 전달됩니다.
여러 엔티티가 동일한 이벤트를 구독할 수 있습니다. 각 엔티티는 전달된 이벤트 데이터로 구독에 대한 호출을 받습니다. 엔티티는 구독 스크립트에서 솔루션 요구사항을 충족하는 데 필요한 작업을 수행할 수 있습니다.
이 방법을 사용하면 다른 서비스에서 호출되는 서비스를 사용하는 것에 비해 다음과 같은 이점이 있습니다.
하나 또는 여러 구독에서 이벤트를 구독할 수 있습니다.
이벤트가 시스템 활동을 기반으로 호출되며 사용자 상호 작용이 필요하지 않습니다.
둘 이상의 사물이 이벤트를 구독하는 경우 여러 서비스를 연결하는 대신 구독을 사용할 수 있습니다.
* 
동일한 사물에 정의된 동일한 이벤트에 대한 여러 구독(또는 중복 구독)은 ThingWorx 버전 8.4.0 이상에서 지원됩니다.
여러 구독
8.4.0부터는 사용자 정의 이름의 구독을 고유 식별자로 사용합니다. 엔티티에는 사물의 이벤트에 대한 여러 개의 구독이 있을 수 있습니다. 예를 들어, 엔티티에서 모터가 과열됨 이벤트가 개시되는 경우 모터 끄기 구독과 작업 요청서 만들기 구독 모두를 이벤트와 함께 사용하여 엔진에 대해 유지 관리를 점검할 수 있습니다. 해당 이벤트에 대해 임의 개수의 다른 구독을 만들 수도 있습니다.
사물 템플릿 또는 사물 형태가 이벤트에 대한 구독을 구현하는 경우 해당 사물 템플릿 또는 사물 형태를 사용하는 사물은 동일한 이벤트에 대한 구독을 만들 수도 있으며, 이러한 이벤트가 개시될 때 추가 작업을 수행하기 위한 해결책이 필요하지 않습니다.