사물 속성
사물 속성은 사물과 관련된 데이터 점을 설명하는 데 사용됩니다. 예를 들어, 고객에는 이름 속성과 주소 속성이 있을 수 있습니다. 트럭에는 운전자, 용량 및 위치 속성이 있을 수 있습니다.
속성은 사물의 현재 상태를 간단하고 편리하게 알 수 있는 방법입니다. 속성은 정적(예: 제조업체 및 모델 번호) 또는 동적(예: 온도)일 수 있습니다. 자산 구조, 비즈니스 프로세스 및 전달할 솔루션에 따라 속성을 설정합니다.
속성을 만들 때 다음 바인딩 종류 중 하나를 선택할 수 있습니다.
없음
로컬 사물에 대한 속성입니다. 이는 기본 설정입니다.
로컬로 바인딩됨
속성을 ThingWorx 서버의 다른 사물에서 정의된 속성에 연결합니다. 이 속성을 읽기 전용으로 설정할 수 있습니다. 이렇게 할 경우에도 서버의 다른 속성에서 값을 계속 수신할 수 있습니다. 원격으로 바인딩된 속성에 대한 로컬 바인딩을 생성하지 않으면 원격 장치에는 사용할 수 없습니다.
원격으로 바인딩됨
원격 장치가 ThingWorx 서버에 처음 연결할 때 서버는 원격 장치를 해당 사물에 바인딩합니다. 원격 장치가 바인딩되면 해당 원격 장치에 정의된 각 속성과 ThingWorx 장치를 나타내는 원격 사물 간에 원격 바인딩을 만들어야 합니다. ThingWorx에서는 이 바인딩을 사용하여 활성 WebSocket 연결을 통해 각 속성 값에 대한 업데이트를 원격 장치에 보내고 받습니다.
* 
로컬 사물 및 원격 사물에 이름이 동일한 속성이 있으며 다른 속성이 원격 속성 설정에 바인딩되는 경우 원격 속성은 로컬 속성 값도 설정합니다.
* 
로컬 또는 원격 속성 바인딩 설정에 대한 자세한 내용은 속성 바인딩 관리 항목을 참조하십시오.
각 속성에는 이름, 설명 및 ThingWorx의 기본 유형이라고 하는 ThingWorx 데이터 유형이 있습니다. 기본 유형에 따라 추가 필드를 사용할 수 있습니다. 숫자 또는 문자열과 같이 간단한 스칼라 유형은 기본값과 같은 기본 필드를 추가합니다. 더 복잡한 기본 유형에는 더 많은 옵션이 있습니다. 예를 들어, 인포테이블 기본 유형에는 인포테이블의 데이터 구조를 설명하도록 데이터 셰이프를 정의하는 기능이 있습니다. 자세한 내용은 속성 기본 유형을 참조하십시오.
사물 속성 값은 세 가지 특성인 값, 타임스탬프 및 품질(VTQ)로 구성됩니다. VTQ 값은 제공되거나 자동으로 설정될 수 있으며, 적용 가능한 품질 상태는 QualityStatus 클래스에 있습니다. 속성을 설정하거나 업데이트할 때마다 모든 VTQ 특성이 업데이트됩니다.
일반적으로 속성은 me.PropertyName = value를 설정하여 Composer에서 업데이트할 수 있으며, 타임스탬프에 서버의 현재 타임스탬프가 반영됩니다. 일괄 처리 기록 업데이트의 경우 특정 값, 타임스탬프 및 품질을 전달할 수 있는 UpdatePropertyValues 서비스를 사용할 수 있습니다. 속성 값은 null로 설정할 수 없습니다.
* 
사용자 정의 서비스를 작성할 때 지정된 엔티티의 동일한 속성을 동시에 수정할 수 있는 코드를 생성하지 마십시오. 예를 들어, 속성 값을 동시에 증가시키거나 감소시키면 예측할 수 없는 속성 값이 발생할 수 있습니다. 마찬가지로, 구독 내의 카운터처럼 동작하는 속성을 증가시키는 것은 부정확한 결과를 초래하는 일반적인 오용 사례입니다.
기록 속성 값이 설정되면 HistoricalDataLogged 이벤트가 발생합니다. 예를 들어, 엔티티의 VTQ 속성에 대해 현재 설정된 타임스탬프는 2020-02-04 20:16:20입니다. 해당 엔티티의 새 버전을 가져올 때 이전 VTQ 속성(예: 2019-12-24 19:00:45)이 설정됩니다. 이 설정을 지정하면 해당 속성에 대해 HistoricalDataLogged 이벤트가 발생하고 속성의 해당 이벤트에 대한 모든 구독이 실행됩니다.
경고
경고에 대한 자세한 내용은 경고를 참조하십시오.
속성의 측면
속성에는 다음과 같은 양상 설정이 있을 수 있습니다.
기본 유형 - 속성 기본 유형을 참조하십시오.
기본값 있음 - 사물이 초기화될 때 속성의 기본값을 설정합니다.
색인 - 선택하면 QueryImplementingThingsOptimized 서비스를 사용하여 검색을 개선하기 위해 속성이 데이터베이스 속성 지속성 공급자에 저장되고 색인화됩니다. 자세한 내용은 색인화된 속성을 참조하십시오.
자주 변경되지 않는 속성만 색인화해야 합니다. 원격 분석 데이터 속성은 색인화하지 않아야 합니다
색인을 선택하면 지속 설정이 자동으로 선택되고 지속 설정의 편집이 비활성화됩니다.
이후에 색인 설정을 끄면 지속이 선택된 상태로 유지되지만 설정하거나 선택을 취소할 수 있도록 편집이 다시 활성화됩니다.
다음 기본 유형만 색인 설정을 지원합니다. STRING, NUMBER, INTEGER, LONG, BOOLEAN, DATETIME, THINGNAME, USERNAME, GROUPNAME, HYPERLINK, IMAGELINK, MASHUPNAME, MENUNAME, DASHBOARDNAME, TEXT, GUID, NOTIFICATIONCONTENTNAME, NOTIFICATIONDEFINITIONNAME, STYLETHEMENAMETHINGGROUPNAME.
* 
색인 설정은 ThingWorx 9.3 이상에서 사용할 수 있습니다.
지속 - 선택하거나 true로 설정하면 각 값 변경 사항이 데이터베이스에 지속됩니다. 지속 속성 데이터베이스 쓰기는 교착 상태를 방지하기 위해 비동기적으로 발생합니다. 속성 값은 즉시 설정되지만 데이터베이스 쓰기는 나중에 비동기적으로 발생합니다. 데이터베이스에 지속 속성 값이 작성되기 전에 다음 유효성 검사가 발생합니다.
사물이 계속 존재해야 합니다.
사물에 ID가 있어야 합니다.
사물 ID 및 보류 중인 쓰기 ID가 일치해야 합니다.
사물이 보류 중인 쓰기와 이름이 동일한 속성을 계속 정의해야 합니다.
정의된 속성이 지속되어야 합니다.
업데이트와 재시작은 대기열 처리에 영향을 주지 않습니다.
읽기 전용 - 선택하거나 true로 설정하면 데이터가 정적이며 실행 시간에 쓸 수 없습니다. 값을 변경하는 유일한 방법은 기본값을 변경하는 것입니다. 이는 정적 구성 데이터에 유용합니다.
로그 - 선택하거나 true로 설정하면 데이터 변경 시 데이터 변경 유형에 따라 속성 값이 가치 스트림에 자동으로 기록됩니다.
* 
특정 상황에서 데이터 변경 이벤트 개시가 실패한 경우 가치 스트림 엔트리는 로깅되지 않을 수 있지만 속성 값 세트는 유지됩니다. 엔티티에 속성을 설정할 수 있지만 해당 쓰기가 포함된 대기열이 꽉 차 데이터베이스를 비울 수 없어서 해당 가치 스트림 쓰기가 삭제될 수 있습니다. 이러한 상황은 들어오는 쓰기의 양이 대기열에 대해 구성된 비우기 속도보다 많을 경우 발생할 수 있습니다. 이 값은 platform-settings.json에서 지속성 공급자별로 조정할 수 있습니다. 또한 ThingWorx에서 데이터베이스로의 연결이 끊어질 경우 대기열 백업 및 비우기가 적절한 방식으로 이루어지지 않을 수도 있습니다.
데이터 변경 정보
데이터 변경 유형
이 설정은 속성 값 변경으로 데이터 변경 이벤트가 트리거될 시점을 지정합니다. 속성의 값에 따라 다른 프로세스를 시작해야 할 경우 이 설정을 사용합니다. 각 가입자는 이전 및 새로운 속성 값이 있는 인포테이블과 함께 변경 공지를 받습니다. 예를 들어, DeliverySchedule 속성의 변경에 대해 구독을 설정할 수 있습니다. 일정이 변경되면 SMS를 통해 운전자에게 알릴 수 있습니다.
데이터 변경 유형 옵션은 다음과 같습니다.
항상 - 속성 값 변경을 위해 가입자에 대해 이벤트를 개시합니다.
없음 - 변경 이벤트를 개시하지 않습니다.
켜기 - 대부분의 값의 경우 변경은 이벤트를 트리거합니다. 인포테이블과 같이 복잡한 기본 유형의 경우에는 이벤트 규칙이 다를 수 있습니다.
끄기 - 새 값이 부울 거짓으로 평가될 경우 이벤트를 개시합니다.
- 숫자 유형인 경우 새 값이 허용치 값을 넘도록 변경되면 변경 이벤트가 발생합니다. 숫자 유형이 아닌 경우 값이 원래 값과 다르게 변경되면 변경 이벤트가 발생합니다. 값이 가치 스트림에 로깅되는 작업은 값이 변경된 것으로 확인된 경우에만 발생됩니다.
원격 바인딩 정보
다음 표에는 바인딩 옵션이 원격으로 바인딩됨으로 설정된 경우 사용할 수 있는 옵션이 나와 있습니다.
옵션
설명
원격 속성 이름
에지에 존재하는 속성의 이름입니다.
* 
속성 이름 및 바인딩된 에지 사물 속성 이름은 서로 동일하지 않아도 됩니다.
캐시 방법
캐시 방법은 바인딩된 에지 속성 값을 읽는 다음과 같은 방법을 제공합니다.
서버 캐시에서 읽기는 에지 속성 값에 대한 서버 요청을 금지합니다. 서버에서 값을 검색하기만 합니다. 서버에 의해 캐시된 에지 속성 값의 업데이트는 에지 속성의 데이터 변경 유형과 검색 속도(에지 속성 값 푸시 정의)에 따라 달라집니다. 에지 속성에서 적절하게 설정되지 않을 경우 서버에 에지 속성 값이 없거나 서버 속성의 기본값만 반환될 수 있습니다. 사용자가 바인딩하는 에지 속성의 데이터 변경 유형이 "항상" 또는 "값"인 경우 캐시 유형에서 이 설정이 기본값으로 지정됩니다.
원격 모든 읽기로부터 가져오기는 모든 요청에 대해 에지에서 에지 속성 값을 검색합니다. 이 옵션과 관련된 캐싱은 없습니다. 사용자가 바인딩하는 에지 속성의 데이터 변경 유형이 "없음"인 경우 캐시 유형에서 이 설정이 기본값으로 지정됩니다.
특정 시간에 대해 캐시됨은 에지 속성에 대한 요청 빈도를 제어합니다. 첫 번째 요청 후 서버는 해당 값에 대한 에지 속성에 액세스하고 정의된 시간(초) 동안에는 에지 속성에 대한 다른 요청을 수행하지 않습니다. 에지 속성은 해당 시간 동안 서버 값(푸시를 통해)을 업데이트할 수 있습니다.
캐시 간격
에지에서 속성 값에 대한 요청을 통해 해당 값을 검색하기 전에 서버가 에지 속성 값을 캐시하는 시간 간격(초)입니다. 값은 항상 첫 번째 요청 시 에지에서 검색됩니다.
시작 유형
사물이 시작되거나 재시작될 때 원격으로 바인딩된 속성을 초기화하는 데 사용되는 값을 지정합니다. 이 초기화된 값은 속성 변경 이벤트를 트리거하지 않습니다.
기본값 사용 - 에지 측 값에 상관없이 속성의 초기 값을 지정된 기본값으로 설정합니다. 속성이 지속되면 초기 값이 데이터베이스에 지속된 마지막 값으로 설정됩니다.
Edge 값 읽기 - 서버에서 사물이 재시작될 경우에도 서버의 값이 항상 에지의 값과 동기화되도록 현재 값에 대한 에지를 질의합니다.
푸시 유형
푸시 유형은 에지 고급 사물 속성에만 적용됩니다. 이러한 구성 요소는 해당 값 변경을 서버에 푸시할 수 있습니다. 서버 속성 바인딩을 사용하여 이 기능을 구성할 수 있습니다.
값 변경을 기준으로 푸시됨: 값 변경 허용치를 구성할 수 있습니다. 이 설정을 사용할 때 푸시 허용치 값을 설정할 수도 있습니다. 이 값은 에지에서 서버로 새 값을 푸시하기 전에 초과해야 하는 데드 밴드입니다.
푸시되지 않음
항상 푸시됨
푸시 허용치
이 옵션은 푸시 유형값 변경을 기준으로 푸시됨으로 설정된 경우 사용할 수 있습니다. 속성 값 푸시가 발생할 에지 속성 값 주변 범위(플러스 또는 마이너스)를 지정합니다. 속성 값은 지정된 값 이상으로 변경해야 합니다.
연결이 끊긴 경우
원격 사물에 대한 연결이 일시적으로 끊긴 경우 원격 속성 값 바인딩을 처리하는 방법을 지정합니다.
변경 중인 값 무시: 연결해제되어 있는 동안 수행됩니다.
모든 변경 사항을 마지막으로 변경된 단일 값으로 결합 - 연결이 복원될 때 마지막으로 변경된 값을 보냅니다.
* 
서비스를 통해 연결이 끊긴 경우모든 변경 사항을 마지막으로 변경된 단일 값으로 결합으로 설정되도록 구성된 경우 foldType: FOLD를 정의합니다.
서비스를 통해 연결이 끊긴 경우변경 중인 값 무시로 설정되도록 구성된 경우 foldType: NONE을 정의합니다.
제한 시간
속성 읽기 또는 쓰기 수행 중에 원격 사물 호출에 사용되는 제한 시간입니다.
시스템 기본값 사용 - 기본값은 30초입니다.
사용자 정의 제한 시간. 제한 시간 간격(초)에 추가합니다.
관련 링크
도움이 되셨나요?