사물 존재
ThingWorx Platform에 연결된 광범위한 장치들을 칭하기 위해 "연결된"이라는 개념이 "WebSocket을 사용하여 현재 바인딩된"에서 "연결 정상"으로 바뀌었습니다. 이를 사물 존재라고 합니다. 사물 존재는 장치의 예상 동작을 기반으로 사물 연결이 "정상"일 때를 표시합니다.
ThingWorx AlwaysOn 장치(ThingWorx Edge SDK 기반 응용 프로그램 또는 ThingWorx WebSocket-based Edge MicroServer 실행)는 WebSocket을 바인딩합니다. 일정 기간 동안 오프라인 상태가 되도록 구성되어 있지 않은 경우 항상 ThingWorx Platform으로부터 메시지를 수신할 수 있습니다. 반면 Axeda eMessage 에이전트 장치는 주기적으로 플랫폼에 대해 폴링 작업("ping")을 수행하며, 연결되어 있고 바인딩된 경우에만 플랫폼으로부터 메시지를 수신할 수 있습니다. 이러한 주 장치 유형 모두 사물 존재에서 지원됩니다.
사물 존재는 여러 장치 카테고리에서 비교될 수 있으며 모든 ThingWorx 인터페이스에서 지원됩니다. 예를 들어, 서비스 조직이 서비스 호출에 사용 가능한 모든 장치 또는 예기치 않게 오프라인 상태가 된 모든 장치를 표시하는 대시보드를 만들려는 경우 ThingWorx SCM Extension에서 사물 존재를 사용하여 패키지가 장치용으로 선택되고 장치에 배포될 수 있도록 장치가 "정상적으로" 연결되어 있는지 확인합니다(isReporting 속성 확인).
사물 존재는 장치의 전반적인 상태를 진단하지는 않는다는 점을 알아야 합니다. 사물 존재는 단일 부울 속성으로 제공되며 이를 통해 ThingWorx는 다양한 자산 간에 통합된 환경을 제공합니다.
작동 방식
가장 일반적으로, RemoteThing으로 정의되는 장치에는 다음과 같은 새로운 속성이 있습니다.
유형
이름
설명
속성
isReporting
적용된 "보고 전략"을 기반으로 장치가 "정상적" 통신에 사용될 수 있는 것으로 확인되었는지 식별합니다.
속성
reportingLastChange
isReporting 값이 마지막으로 변경된 때를 식별합니다.
속성
reportingLastEvaluation
isReporting에 대한 마지막 평가가 수행된 때를 식별합니다.
구성
reportingStrategy
장치가 보고하는지 여부를 확인하기 위한 알고리즘을 정의하는 사물입니다.
서비스
EvaluateReporting
장치가 보고하는지 여부를 평가하고 평가 결과에 맞게 isReporting 속성을 설정합니다.
서비스
SetReportingStrategy
장치가 보고하는지 여부를 평가하는 데 사용되는 전략을 설정합니다.
서비스
GetReportingStrategy
장치가 보고하는지 여부를 평가하기 위해 현재 사용되는 전략을 가져옵니다.
장치가 보고하는지 여부를 확인하기 위한 정확한 알고리즘은 특정 ReportingStrategy 사물에 따라 달라집니다. 그러나 일반적인 프로세스는 다음과 같습니다.
1. EvaluateReporting 서비스가 일부 이벤트에 의해 트리거됩니다.
2. 그런 후 EvaluateReporting이 전략 사물에 대해 ReportingAlgorithm 서비스를 호출합니다.
3. ReportingAlgorithm이 특정 알고리즘을 기반으로 부울을 반환합니다.
4. ReportingAlgorithm 서비스의 결과를 기반으로 isReporting 속성이 설정됩니다.
EvaluateReporting 서비스
EvaluateReporting 서비스는 다음 매개 변수를 사용합니다.
eventName - 보고 상태를 재평가한 이벤트의 이름입니다.
eventTime - 이벤트가 발생한 시간입니다.
source - 이벤트를 생성한 사물의 이름입니다.
sourceProperty - 이벤트의 소스 속성입니다.
eventData - 이벤트 데이터입니다.
EvaluateReporting()의 모든 매개 변수는 ReportingStrategy.ReportingAlgorithm()으로 직접 전달됩니다.
사물 바인딩 또는 바인딩 해제 중에 이 서비스가 실행되는 경우:
eventNameBindingEvent입니다.
eventData에는 isBound 키 아래에 단일 값이 있는 단일 행이 포함되어 있습니다. 이는 사물이 바인딩되었는지, 아니면 바인딩 취소되었는지(바인딩된 경우 true, 바인딩 취소된 경우 false)를 나타냅니다.
이 서비스(ReportingAlgorithm에 포함) 중에 문제가 발생하면 사물이 "보고하지 않음"으로 업데이트되고 응용 프로그램 로그에 메시지가 추가됩니다.