사물 템플릿
사물 템플릿은
사물 인스턴스가 실행 시 사용하는 속성, 서비스, 이벤트 및 구독의 기본 기능을 제공합니다. 모든 사물은 사물 템플릿에서 생성됩니다. 사물 템플릿은 다른 사물 템플릿을 확장할 수 있습니다. 제품의 새 버전을 릴리즈하면 전체 모델을 재정의하지 않고 버전의 추가 특성을 간단하게 추가할 수 있습니다. 이 모델 구성은 여러 수준의 자산 일반화를 제공합니다. 사물 템플릿은 사물 형태를 구현하여 하나 이상의 추가 특성을 파생할 수 있습니다. 사물 템플릿을 변경하면 변경 사항이 사물 템플릿을 구현하는 사물에 전파되므로 간단하게 모델을 유지 관리할 수 있습니다.
사물 템플릿은 사물 또는 자산 클래스의 종류를 분류하거나, 고유한 기능이 있는 특정 제품 모델로 분류하는 데 사용할 수 있습니다. 두 개의 제품 모델이 있으며 솔루션과의 상호 작용이 동일한 경우(동일한 속성, 서비스 및 이벤트) 하나의 사물 템플릿으로 모델링할 수 있습니다. 사물 템플릿을 분류하여 매쉬업에 유용한 컬렉션으로 사물을 집계할 수 있습니다. 색인화, 검색 및 향후 제품 진화를 위해 사물 템플릿을 구분할 수 있습니다.
시스템 정의 사물 템플릿
특정 작업에 대한 사물을 생성하는 데 사용할 수 있는 여러 가지 시스템 정의 사물 템플릿이 있습니다. 이러한 사물 템플릿 중 일부는 응용 프로그램을 구축할 때 다양한 서비스 및 기능에 대한 유틸리티로 사용할 수 있습니다.
시스템 정의 사물 템플릿은 다음과 같습니다.
• Blog - 블로그 사물은 매쉬업에서 블로그, 의견 및/또는 토론 포럼 공동 작업 객체를 구현하는 데 사용됩니다.
• Content Crawler - 외부 시스템 또는 콘텐츠 영역에 대해 특정 인터페이스를 처리하도록 설계된 사물입니다. 색인화할 외부 콘텐츠의 목록을 가져오는 서비스와 각 콘텐츠 객체에 대한 세부 정보를 읽어들이는 서비스도 정의합니다. 그러면 ThingWorx에서는 데이터를 색인화하고 ThingWorx 검색 기능을 통해 사용할 수 있도록 합니다.
• Database - 타사 관계형 데이터베이스 시스템에 대한 JDBC 연결입니다.
• Data Table - 데이터 테이블은 관계형 데이터베이스의 테이블과 유사하며, 데이터의 트랜잭션 행을 ThingWorx에 저장하는 데 사용할 수 있습니다.
• File Repository - 저장할 외부 파일 콘텐츠에 대해 정의된 ThingWorx 엔티티입니다. 에지 사물로 또는 에지 사물에서 파일을 전송할 때 특정 저장소에 대해 이를 수행할 수 있습니다. 파일 저장소는 서버의 ThingworxStorage/repository 폴더에 있는 폴더를 가리킵니다. 파일 저장소의 서비스를 통해 해당 폴더의 파일을 보고 조작할 수 있습니다.
• Generic Thing - 최소한의 상속된 특성이 있는 기본 사물입니다. 사용자 정의 사물 템플릿을 정의하는 것이 가장 좋습니다. 그러나 단일 사물 정의가 있고 일반 사물을 사용하려는 경우가 있습니다.
• Mail Server - 응용 프로그램에서 이메일 메시지를 전송하려는 경우 메일 서버 사물을 생성할 수 있습니다.
• Edge - 에지 사물은 일반적으로 다른 네트워크에 대한 방화벽을 통해 다른 서버에 설치되는 장치 또는 데이터 소스입니다. 에지 사물은 로컬에 설치된 EMS를 통해 서버와 통신합니다. 에지 사물의 예에는 OPC-DA 서버가 있습니다.
• Edge Database - 에지 데이터베이스 사물은 다른 서버 또는 워크스테이션의 OLE-DB 또는 ADO.NET 데이터베이스나 데이터 소스와 통신하기 위한 것입니다. 에지 데이터베이스의 예에는 Microsoft Excel 또는 Microsoft Access가 있습니다.
• Edge Enhanced - 원격 데스크톱 터널링이나 파일 전송을 지원해야 하는 원격 설치 장치 또는 데이터 저장소에 해당하는 서버 모델입니다.
• Scheduler - 스케줄러 사물은 Cron 패턴(예: 하루에 한 번 또는 한 시간에 한 번)에 따라 작업을 실행하는 데 사용할 수 있습니다.
• Source Control Repository - 소스 제어 저장소는 서버의 파일 시스템에 있는 폴더를 가리킬 수 있습니다. 이는 로컬 저장소의 루트일 수 있습니다. 이 사물 템플릿은 > 에 사용됩니다.
• Stream - 시계열 데이터 스토리지입니다.
• Timer - 정의된 간격에 이벤트를 개시하는 간단한 타이머입니다.
• Wiki - 매쉬업 내에서 문서 및 관련 의견을 공유하기 위한 공동 작업 객체입니다.
시스템 사물 템플릿 중 하나의 특정 인스턴스를 작성할 때 비즈니스 요구사항 및 IoT 환경에 맞게 구성할 수 있습니다.
시스템 정의 원격 템플릿
WebSocket을 통해 에지 장치 또는 데이터 저장소와 통신하는 데 사용되는 여러 시스템 정의 사물 템플릿이 있습니다. RemoteThing은 WebSocket을 사용하여 네트워크의 다른 노드 또는 사물과 통신하기 위한 이름 규약입니다. WSEMS 및 SDK용 사물 템플릿은 다음과 같습니다.
• RemoteDatabase - 원격 OLE-DB 데이터 소스입니다.
• RemoteThing - 파일 전송 또는 터널링 요구사항이 없는 원격 사물입니다. OPC-DA 데이터 소스 사물에도 사용됩니다. 속성, 서비스 및 이벤트를 지원합니다.
• RemoteThingWithFileTransfer - 파일 전송을 사용할 수 있는 원격 사물입니다.
• RemoteThingWithTunnels - 터널링을 사용할 수 있는 원격 사물입니다.
• RemoteThingWithTunnelsAndFileTransfer - 파일 전송과 터널링을 사용할 수 있는 원격 사물입니다.
• EMSGateway - WSEMS를 독립 실행형 사물로 처리하도록 하는 경우 EMSGateway 사물 템플릿이 사용됩니다. 이 기능은 WSEMS가 게이트웨이 컴퓨터에서 실행되고 LAN(Local Area Network) 내의 다른 IP 주소에 상주하는 하나 이상의 원격 사물에 대한 통신을 처리하는 경우에 유용합니다.
• SDKGateway - EMSGateway와 유사하지만 SDK 구현을 게이트웨이로 사용할 경우에 사용됩니다.
위의 사물 템플릿 이외에도 다음과 같이 디스크 IO에 최적화된 다른 서버에 지속성 객체를 오프로드하려는 페더레이션 스토리지 시나리오에서 사용할 수 있는 원격 템플릿이 있습니다.
• RemoteStream - 다른 ThingWorx 서버에서 데이터를 실행 중이며 지속하는 스트림 사물에 대한 로컬 프록시 객체를 만듭니다.
• RemoteValueStream - 다른 ThingWorx 서버에서 데이터를 실행 중이며 지속하는 가치 스트림 사물에 대한 로컬 프록시 객체를 만듭니다.
• RemoteDataTable - 다른 ThingWorx 서버에서 데이터를 실행 중이며 지속하는 데이터 테이블 사물에 대한 로컬 프록시 객체를 만듭니다.
• RemoteBlog - 다른 ThingWorx 서버에서 데이터를 실행 중이며 지속하는 블로그 사물에 대한 로컬 프록시 객체를 만듭니다.
• RemoteWiki - 다른 ThingWorx 서버에서 데이터를 실행 중이며 지속하는 Wiki 사물에 대한 로컬 프록시 객체를 만듭니다.
확장을 통해 사물 템플릿 생성
확장을 통해 생성된 사물 템플릿은 기본적으로 ThingWorx Composer에서 생성한 사물 템플릿과 동일합니다. 이는 동일한 속성, 구성 매개 변수, 서비스를 통해 사물을 생성하는 데 사용되는 기본 템플릿입니다. Composer에서 사물 형태를 생성하는 것과 확장 프레임워크 내에서 생성하는 것의 차이는 서비스에 사용되는 언어와 해당 서비스의 표시 유형입니다.
Composer 템플릿:
• 서비스에 대해 JavaScript 사용
• 소스 코드가 표시됨
Extension SDK 템플릿:
• 서비스에 대해 Java 사용
• 소스 코드가 표시되지 않음
• 구성 값 정의 가능