카탈로그
Vantiq 카탈로그 사용
목적
개발자들이 Vantiq의 강력한 기능에 익숙해지도록 하려면 목록.
이 튜토리얼을 최대한 활용하려면 짧고 무료인 Vantiq를 완료하는 것이 좋습니다. 개발자 기초 과정 먼저.
목표
이 튜토리얼을 마치면 개발자는 다음을 수행할 수 있어야 합니다.
- 카탈로그에 액세스하고 구성하세요
- 카탈로그에 구독자 및 게시자 연결
- 최대 보안을 위해 카탈로그에 대한 액세스 토큰을 설정하세요
- Vantiq IDE의 이벤트 구독
- VAIL 규칙, 예약된 이벤트 및 이벤트 생성기를 사용하여 시뮬레이션된 이벤트를 만들고 게시합니다.
- 구독자에게 이벤트 수신을 확인할 수 있습니다.
- 카탈로그에 서비스를 생성하고 게시합니다.
- 카탈로그 서비스를 구독하고 애플리케이션에서 서비스 프로시저를 실행합니다.
튜토리얼 개요
이 튜토리얼에서는 시뮬레이션된 머신 센서가 너무 높은 온도를 보고할 때 "과열" 이벤트를 발생시키는 간단한 서비스 이벤트 핸들러를 만들어 보겠습니다. 카탈로그 설정을 통해 이러한 이벤트와 관련 "반응" 이벤트가 여러 네임스페이스를 통해 통신할 수 있도록 할 것입니다.
이를 달성하기 위한 기본 단계는 다음과 같습니다.
- 카탈로그, 게시자 및 구독자에 대해 별도의 네임스페이스를 만듭니다.
- 카탈로그에 게시자와 구독자를 등록하세요
- 이벤트 유형 정의
- 카탈로그 서비스 정의
- 이벤트 수신
- 이벤트 생성 및 게시
- 카탈로그 서비스에서 프로시저 실행
1부: 카탈로그 인프라 설정
1단계: 카탈로그 네임스페이스 만들기
이 튜토리얼에는 세 개의 네임스페이스가 필요합니다. 즉, 먼저 네임스페이스를 만들고 관리하는 방법에 익숙해져야 합니다. 사용자 및 네임스페이스 관리 튜토리얼.
첫 번째 단계는 개발자 이상의 권한이 있는 네임스페이스에 로그인하는 것입니다. 그런 다음 카탈로그, 구독자, 게시자라는 세 가지 카탈로그 역할 각각에 해당하는 네임스페이스를 생성합니다.
사용 관리 버튼을 눌러 선택하십시오. 네임 스페이스그런 다음 신제품 네임스페이스 목록에서 버튼을 클릭하여 다음 이름을 가진 세 개의 네임스페이스를 만듭니다. 목록, 발행자 구독자각 네임스페이스의 관리자는 본인이어야 합니다.

세 개의 네임스페이스를 만든 후 다음으로 전환합니다. 목록 IDE 탐색 막대의 오른쪽 상단에 있는 현재 네임스페이스 버튼을 사용하여 네임스페이스를 선택하고 목록 사용 가능한 네임스페이스 목록에서.
2단계: 카탈로그 구성
이제 모든 네임스페이스가 생성되었고 다음 단계에 있습니다. 목록 네임스페이스, 이제 각 네임스페이스를 해당 역할에 맞게 구성할 시간입니다. 목록 네임스페이스는 현재 표준 개발자 네임스페이스입니다. 이 네임스페이스가 이벤트 및 서비스 카탈로그를 호스팅하도록 허용하려면 관리 버튼을 눌러 선택하십시오. 고급>카탈로그 표시되는 카탈로그 관리 패널. 클릭하세요 카탈로그 생성 버튼을 클릭하고 카탈로그 생성을 확인하세요. (선택 사항인 "카탈로그 이름"은 비워 두세요.)

이 네임스페이스는 이제 카탈로그에서 이벤트와 서비스를 호스팅할 준비가 되었습니다. 이 네임스페이스에 연결되는 다른 네임스페이스는 목록 네임스페이스는 이벤트 및 서비스 카탈로그를 읽고 이벤트 및 서비스의 게시자 및 구독자로 등록할 수 있습니다.
물론, 이 카탈로그를 통해 중요한 정보를 게시할 것입니다. 누구나 메시지를 보낼 수 있도록 하고 싶지는 않습니다. 이를 방지하기 위해 연결된 네임스페이스의 기본 권한을 변경할 수 있습니다.
. 카탈로그 관리 패널에서 카탈로그 네임스페이스를 찾아 클릭합니다(지금은 카탈로그 네임스페이스만 있어야 함). 권한 편집. 상자를 끕니다. 게시 아래에 이벤트 유형 다음을 클릭하십시오. OK이제 카탈로그의 어떤 멤버도 우리가 명시적으로 허용하지 않는 한 이벤트 유형에 게시할 수 없습니다.

3단계: 카탈로그에 게시자와 구독자 연결
다음 단계는 연결하는 것입니다 발행자 구독자 네임스페이스에 목록 네임스페이스.
연결하려면 발행자 구독자 네임스페이스에 목록 네임스페이스의 경우 해당 네임스페이스가 통신하는 데 사용할 수 있는 자격 증명을 얻어야 합니다. 목록 네임스페이스. 이를 위해 다음을 클릭하여 액세스 토큰을 만듭니다. 새로운 토큰 버튼의 카탈로그 관리 패널. 액세스 토큰의 이름을 "CatalogToken"으로 지정한 다음 클릭하세요. 만들기. 이렇게 하면 새 토큰이 생성되어 브라우저 클립보드에 복사됩니다. 이 토큰 문자열은 브라우저 설정에 필요하므로 쉽게 접근할 수 있는 곳에 저장하세요. 구독자 발행자 네임스페이스 카탈로그 연결.

로 전환 발행자 IDE 탐색 막대의 오른쪽 상단에 있는 현재 네임스페이스 버튼을 사용하여 네임스페이스를 선택하고 발행자 사용 가능한 네임스페이스 목록에서. 페이지가 다시 로드되고 이제 발행자 네임스페이스. 탐색 표시줄의 네임스페이스 이름이 변경되었는지 확인하여 이를 확인하세요. 목록 에 발행자.
일단 발행자 네임스페이스에 연결해야 합니다. 목록 방금 만든 액세스 토큰을 사용하여 네임스페이스를 만듭니다. 쇼 버튼을 눌러 선택하십시오. 카탈로그 를 표시하려면 카탈로그 패널. 사용 연결하기 버튼을 누르면 카탈로그에 연결 대화 상자. 토큰 문자열을 붙여넣습니다. 새 카탈로그 액세스 토큰 필드에서 URL을 확인하세요. 카탈로그 네임스페이스에 연결하기 위한 URL 입력란을 클릭하고 연결하기 버튼을 클릭합니다.

로 전환 구독자 네임스페이스를 만들고 연결 과정을 반복합니다. 목록. 그 후, 두 가지 모두 발행자 구독자 이제 네임스페이스에서 카탈로그 네임스페이스가 호스팅하는 이벤트 유형 및 서비스 카탈로그를 볼 수 있습니다. 연결된 모든 네임스페이스에서 이벤트 유형 및 서비스 카탈로그를 보려면 쇼 버튼을 눌러 선택하십시오. 카탈로그 를 표시하려면 카탈로그 패널. 나열된 카탈로그 네임스페이스를 클릭하면 알려진 이벤트 유형 및 서비스 목록이 표시됩니다.
둘 다 발행자 그리고 구독자 네임스페이스는 이 튜토리얼의 일부로 게시를 수행해야 합니다. 기본 카탈로그 권한을 게시 금지로 변경했으므로 이제 두 네임스페이스의 기본 권한을 재정의해야 합니다. 이렇게 하려면 목록 네임스페이스를 열고 카탈로그 관리 패널. 발행자 구독자 목록에서 네임스페이스를 클릭합니다. 권한 편집. 드롭다운에서 "이벤트 유형"과 "게시"를 선택한 다음 클릭하세요. 재정의 추가. 상자가 체크되어 있는지 확인한 후 클릭하세요. 찜하기.

2부: 이벤트 만들기
1단계: 이벤트 스키마 생성
기계 온도 및 과열 이벤트 유형을 생성하려면 다시 전환하십시오. 목록 네임스페이스.
이벤트 유형을 생성하기 전에 먼저 기계 온도 및 과열 이벤트에 대한 스키마를 정의하는 스키마 유형을 정의해야 합니다. 다음을 사용하세요. 추가 버튼을 눌러 선택하십시오. 타입 새 유형을 만듭니다. 결과 대화 상자에서 유형 이름을 지정합니다. 머신데이터, 역할이 설정되었는지 확인하세요. 개요 다음을 클릭하십시오. 만들기. 에서 유형: MachineData 패널에 다음 속성을 추가하고 모두 체크했는지 확인하십시오. 필수:
- 머신아이디 (문자열) – 판독값을 특정 기계와 연결하는 고유 식별자입니다.
- 온도 (정수) – 화씨 온도로 표시된 센서 판독값입니다.
- 따라서 오른쪽 하단에 (DateTime) – 센서 판독값이 기록된 시간입니다.

찜하기 유형 정의를 저장합니다.
2단계: 이벤트 유형 정의
이제 마침내 카탈로그에 이벤트를 추가할 수 있게 되었습니다. 아직 목록 네임스페이스를 사용하여 카탈로그 창을 엽니다. 쇼 버튼을 눌러 선택하십시오. 카탈로그. 선택 목록 목록에서 카탈로그 네임스페이스를 선택한 다음 다음을 사용합니다. 신제품 버튼을 눌러 선택하십시오. 새 이벤트 유형 만들기. 그만큼 이벤트 종류 첫 번째 이벤트 유형을 생성하는 창이 표시됩니다. 이 이벤트 유형을 다음 값으로 구성하세요.
- 이벤트 이름: /머신/온도
- 기술설명: 새로운 기계 온도 센서 판독값입니다.
- 개요: 고르다 머신데이터 드롭리스트에서

이벤트 유형 이름은 주제입니다. 주제는 앞에 슬래시를 포함해야 하지만, 종종 추가 슬래시를 포함하기도 하는데, 이는 이벤트를 계층적으로 구성하는 데 좋은 방법입니다. 접두사는 /기계 이것은 기계의 이벤트이고 접미사는 다음과 같습니다. /임시 이것이 온도 이벤트임을 나타냅니다. 앞으로 동일한 이벤트를 추가할 예정입니다. /기계 이벤트 접두사. 이벤트에 공통 접두사를 지정하면 카탈로그에서 이벤트를 더 쉽게 찾을 수 있고, 카탈로그를 보는 사용자가 여러 이벤트가 어떻게 관련되어 있는지 파악하는 데 도움이 됩니다.
새 이벤트 유형 창을 완료한 후 다음을 클릭하세요. 찜하기 아이콘을 클릭하면 지정된 설명을 구문 분석하여 찾은 추천 키워드 목록이 표시됩니다. 기계 온도, 나머지를 삭제한 후 클릭하세요 OK이렇게 하면 새로 생성된 이벤트 유형에 일부 키워드 태그가 추가되어 사용자는 흥미로운 이벤트 유형을 쿼리할 수 있는 새로운 방법을 제공받게 됩니다.
동일한 절차를 따라 과열 이벤트에 대한 이벤트 유형을 생성합니다. 다음 구성을 사용하세요.
- 이벤트 이름: /기계/과열
- 기술설명: 기계의 온도가 정상 작동 범위를 넘어 상승했습니다.
- 개요: 고르다 머신데이터 드롭리스트에서
이벤트 유형을 저장한 다음, 도움이 되지 않는 추천 키워드를 삭제하세요. (이 경우, 기계와 온도를 제외한 모든 키워드를 삭제하세요.) OK이제 카탈로그 창에 두 개의 이벤트 유형이 나열되어 있는 것을 볼 수 있습니다.

3단계: 게시자 등록
이제 카탈로그에 필요한 이벤트가 있으므로 다음으로 전환할 시간입니다. 발행자 네임스페이스를 생성하고 온도 이벤트 생성을 시작합니다. "MachineData"라는 프로젝트를 만듭니다. ("프로젝트 자동 저장 활성화" 옵션이 설정된 경우 프로젝트의 변경 사항이 자동으로 저장됩니다. 그렇지 않은 경우 찜하기 (각 단계 후에 탐색 모음에서 다시 버튼을 누르세요.)
다음으로, 다음을 사용하여 카탈로그를 엽니다. 쇼 버튼을 눌러 선택하십시오. 카탈로그. 선택 목록 목록에서 카탈로그 네임스페이스를 선택한 다음 다음을 클릭합니다. /머신/온도 목록에서 이벤트. 결과에서 이벤트 종류 패널을 클릭하세요 클릭하여보기 옆에 퍼블리셔. 에서 /machine/temp의 게시자 대화 상자에서 "이벤트에 대한 로컬 주제"를 지정하세요. /내/머신/임시/이벤트,에 대한 /머신/온도 이벤트. 클릭하세요 + 게시자가 되세요.
이벤트 유형의 로컬 이름은 이 네임스페이스에서 이벤트가 발생할 주제입니다. 이 튜토리얼에서는 로컬 이름을 다음과 같이 설정합니다. /내/머신/임시/이벤트. 이는 이벤트가 발생할 때를 의미합니다. /내/머신/임시/이벤트, 모든 구독자에게 전달됩니다. /머신/온도.

4단계: 이벤트 게시
이제 이 이벤트를 생성해야 합니다. 발행자 게시될 네임스페이스 /내/머신/임시/이벤트 그래서 구독자 네임스페이스에는 사용할 데이터가 있습니다. 무작위 데이터를 생성하기 위해 5초마다 실행되고 데이터를 게시하는 규칙을 만듭니다. /내/머신/임시/이벤트규칙을 만들려면 다음을 사용하세요. 추가>고급 버튼을 눌러 선택하십시오. 통치 다음을 클릭합니다 새로운 규칙 버튼을 클릭합니다.
다음 텍스트로 규칙을 만듭니다.
RULE tempEventTrigger
WHEN PUBLISH OCCURS ON "/random"
// Publish one random temperature event each for 3 machineIds
PUBLISH {temperature: random(0, 100), machineId: "Machine1", timestamp: now()} TO TOPIC "/my/machine/temp/event"
PUBLISH {temperature: random(0, 100), machineId: "Machine2", timestamp: now()} TO TOPIC "/my/machine/temp/event"
PUBLISH {temperature: random(0, 100), machineId: "Machine3", timestamp: now()} TO TOPIC "/my/machine/temp/event"
찜하기 규칙을 저장합니다. 이 규칙은 이벤트가 게시될 때마다 실행됩니다. /무작위의 주제. 다음으로 게시될 예약된 이벤트를 만들어야 합니다. /무작위의 5초마다 한 번씩. 예약된 이벤트를 만들려면 다음을 사용하세요. 추가 버튼을 눌러 선택하십시오. 고급>예약된 이벤트 다음을 클릭합니다 새로운 예정된 이벤트 버튼을 클릭합니다.
다음 속성을 사용하여 새로운 예약된 이벤트를 만듭니다.
Name: "RandomTempGenerator"
Topic: /random
Periodic?: True
Active?: True
Scheduling Type: Periodically, starting now
Interval: 5 seconds

찜하기 예약된 이벤트를 저장합니다. 이벤트가 예상대로 게시되는지 확인하려면 다음을 사용하세요. 쇼 버튼을 눌러 선택하십시오. 리소스 그래프 그런 다음 주제를 찾아 클릭하세요. /내/머신/임시/이벤트. 클릭 테스트 데이터 수신 결과 창의 왼쪽 상단에 있는 버튼을 클릭합니다. 이 버튼을 클릭하면 해당 주제에서 발생하는 모든 이벤트를 실시간으로 스트리밍하는 구독 창이 표시되며, 모든 이벤트는 해당 이벤트 유형의 모든 구독자에게 전달됩니다. /머신/온도5초간 기다리면 다음과 같은 이벤트가 표시됩니다.

5단계: 구독자 등록
이제 게시자가 생성 중입니다. /머신/온도 이벤트, 이제 전환할 시간입니다 구독자 네임스페이스를 만들고 구독자를 등록합니다. 구독자 네임스페이스에서 프로젝트 이름을 "OverheatDetector"와 같이 지정하고 찜하기 탐색 표시줄의 버튼.
프로젝트를 생성한 후 다음을 사용하여 카탈로그를 엽니다. 쇼 버튼을 눌러 선택하십시오. 카탈로그. 선택 목록 목록에서 카탈로그 네임스페이스를 선택한 다음 마우스 오른쪽 버튼을 클릭합니다. /머신/온도 목록에서 항목을 선택하세요. 확인 구독을 원한다는 것을 확인하려면 /머신/온도 이벤트.
이 시점에서 모든 이벤트가 게시되었습니다. /내/머신/임시/이벤트 인간을 발행자 네임스페이스는 다음으로 전달되어야 합니다. 구독자 주제에 대한 네임스페이스 /머신/온도. 클릭하여 확인할 수 있습니다. 테스트 데이터 수신 버튼에서 /머신/온도 주제 창.
3부: 서비스에서 앱 빌드
1단계: /machine/temp 이벤트에서 이벤트 핸들러 트리거
아직 ~에 있는 동안 구독자 네임스페이스를 사용하여 새 Vantiq 서비스를 만듭니다. 추가 버튼을 눌러 선택하십시오. 예배 그런 다음 클릭 새로운 서비스 버튼을 클릭합니다. 서비스 이름을 지정합니다. 과열 감지기, 패키지를 다음으로 설정합니다. 기계 유지 관리. 이 서비스는 다음을 처리합니다. /머신/온도 기계가 과열되는 시점을 식별하는 이벤트입니다. 서비스가 과열된 기계를 식별하면 /기계/과열 이벤트를 발생시키고 해당 이벤트를 카탈로그에 게시합니다. 과열은 온도가 100도 이상으로 상승한 것을 의미합니다. 100도 미만에서는 기계가 정상 작동 온도 범위 내에서 작동하는 것으로 간주됩니다.
새 서비스 창이 열리면 다음으로 전환합니다. 구현 탭. 아래에 이벤트 핸들러, 옆에 있는 더하기 버튼을 클릭하세요 예배 서비스 시각적 이벤트 처리기를 추가합니다. 이벤트 처리기의 이름을 지정합니다. 과열모니터.

이제 서비스 이벤트 핸들러용 앱 빌더가 열렸으므로 수신 이벤트를 처리하는 애플리케이션을 만들 수 있습니다. 모든 서비스 이벤트 핸들러는 구성되지 않은 주황색으로 시작합니다. 개시하다 이벤트의 초기 흐름을 나타내는 활동입니다. 주황색 상자를 클릭하고 작업 이름을 지정하세요. 템프스트림. 다음을 클릭하십시오. 수정하려면 클릭하세요. 구성 레이블 옆에 있는 편집을 클릭합니다. 템프스트림 구성. NS 인바운드자원 이벤트 스트림은 다음과 같습니다. 주제및 인바운드리소스 ID (/머신/온도)는 입력 필드 옆의 드롭다운에서 선택할 수 있습니다.

선택하면 다음을 참고하세요. /머신/온도 드롭리스트에서 구성 대화 상자 하단의 스키마 속성이 자동으로 업데이트되어 표시됩니다. 머신데이터. 이것은 /머신/온도 카탈로그의 이벤트에는 연관된 스키마 유형이 있으므로 카탈로그를 통해 이벤트를 구독하면 스키마 유형의 복사본이 이 네임스페이스에 추가됩니다.
서비스 핸들러의 구성 대화 상자에서 카탈로그의 이벤트를 직접 구독할 수도 있습니다. 드롭다운 메뉴 옆에 있는 돋보기 버튼을 클릭하세요. 인바운드리소스 ID 속성을 클릭하면 카탈로그에서 이벤트를 구독할 수 있는 대화 상자가 표시됩니다. 이는 카탈로그에서 구독하는 것과 동일한 효과를 갖습니다. 카탈로그 를 사용하여 표시되는 창 쇼 버튼 및 선택 카탈로그.
"확인"을 클릭하고 구성을 종료하면 TempStream 작업이 노란색으로 표시됩니다. 이는 해당 작업이 이제 토픽 이벤트 스트림임을 나타냅니다.
이벤트 스트림이 작동하는지 확인하려면 서비스를 저장하고 마우스 오른쪽 버튼을 클릭하십시오. 템프스트림 작업을 클릭하고 작업 이벤트 보기. 이렇게 하면 이벤트가 도착하는 대로 보여주는 구독 창이 열립니다.


2단계: MachineId로 분할
무작위 온도 판독값은 다음에 게시됩니다. /머신/온도 인사말 발행자 네임스페이스에는 각각 machineId가 있습니다. 한 기계의 온도 측정값이 다른 기계의 측정값과 일치하지 않도록 모든 다운스트림 처리를 각 기계별로 분리해야 합니다. 이를 위해 다음을 추가해야 합니다. 그룹별 분할 아래의 작업 템프스트림 작업. 드래그 앤 드롭 그룹별 분할 앱 빌더 왼쪽의 활동 패턴 팔레트에서(다음에서 찾을 수 있음) 흐름 제어 팔레트 섹션) 위에 템프스트림 작업. 작업 이름을 바꾸세요 SplitByMachineId 새로 추가된 작업을 클릭합니다. 그런 다음 수정하려면 클릭하세요. 구성 레이블 옆에 있는 편집을 클릭합니다. SplitByMachineId 구성.

분할할 속성은 machineId입니다. 옆에 있는 아래쪽 화살표를 클릭하세요. 그룹별 매개변수 및 선택 이벤트.머신ID 속성 메뉴에서 클릭하세요. OK 구성 대화 상자를 닫은 다음 서비스를 다시 저장합니다.

3단계: 기기 과열 감지
무작위 온도 판독값은 다음에 게시됩니다. /머신/온도 인사말 발행자 네임스페이스 범위는 0에서 100까지이므로 온도가 100도 이상으로 상승할 때마다 기계가 과열되었다고 가정합니다. 온도가 100도 미만에서 100도 이상으로 상승하는 시점을 감지하려면 임계값 아래에 임계값 작업을 추가해야 합니다. SplitByMachineId 작업. 드래그 앤 드롭 임계값 앱 빌더 왼쪽의 활동 패턴 팔레트에서(다음에서 찾을 수 있음) 필터 팔레트 섹션) 위에 SplitByMachineId 작업. 작업 이름을 바꾸세요 과열 감지 새로 추가된 작업을 클릭합니다. 그런 다음 수정하려면 클릭하세요. 구성 레이블 옆에 있는 편집을 클릭합니다. 과열 감지 구성.

우리가 확인하고 싶은 조건은 다음과 같습니다. event.temperature>100, 그래서 그것을 입력하세요 조건 입력 필드.
The 방향 속성은 다음으로 설정되어야 합니다. 참된 조건이 거짓에서 참으로 바뀔 때, 즉 온도가 100도 미만이었다가 이제 100도를 넘을 때만 신경 쓰이기 때문입니다. 클릭 OK 구성 대화 상자를 닫은 다음 서비스를 다시 저장합니다.

4단계: 임계값 교차 테스트
당신은 동안 알아차릴 것이다 과열 감지기 이벤트 핸들러가 실행 중이어서 임계값 작업이 트리거되지 않습니다. 이는 이벤트 핸들러에서 생성된 데이터가 발행자 네임스페이스는 항상 임계값보다 낮습니다. 임계값 작업이 제대로 구성되었는지 확인하려면 이벤트를 게시하여 이 네임스페이스에서 과열 이벤트를 시뮬레이션할 수 있습니다. /머신/온도 정상 범위를 벗어난 온도를 가진 주제입니다. 이 게시된 이벤트는 카탈로그를 통과하지 않지만 카탈로그 내에서는 카탈로그에서 가져온 것처럼 작동합니다. 구독자 네임스페이스. 이 이벤트를 게시하려면 다음을 클릭하세요. /머신/온도 IDE 왼쪽에 있는 프로젝트 콘텐츠 목록에서 주제를 선택하여 주제 세부 정보 창을 엽니다. 편집 메시지 게시 사용할 필드 기계 1 로 머신아이디 그리고 온도를 100보다 큰 숫자로 설정합니다.

클릭 게시이다. 버튼을 클릭하여 이벤트를 게시합니다. 이벤트를 게시하면 옆에 카운터가 표시됩니다. 과열 감지 작업 표시 번호 1. 변경 머신아이디 주제 세부 정보 창의 값 기계 2 이벤트를 다시 게시하면 카운터가 2로 증가하는 것을 볼 수 있습니다.
중요한 점은 임계값을 초과한 후에는 해당 임계값 작업이 경계를 다시 초과할 때까지 다른 이벤트를 생성하지 않는다는 것입니다. 발행자 네임스페이스가 임계값 아래의 데이터를 생성하고 있으며 이 임계값이 이 네임스페이스에서 수동 게시로 인해 초과되면 100이 넘는 온도를 가진 두 번째 이벤트를 게시하더라도 생성기가 100 미만의 다른 온도를 생성할 때까지 임계값에서 추가 출력이 생성되지 않습니다.
5단계: 과열 이벤트 게시
이제 기계가 과열되는 것을 감지할 수 있게 되었으니, 마지막 단계는 과열 이벤트를 카탈로그에 다시 게시하는 것입니다. 이를 위해 다음을 추가해야 합니다. 주제 게시 아래의 작업 과열 감지 작업. 드래그 앤 드롭 주제 게시 앱 빌더 왼쪽의 활동 패턴 팔레트에서(다음에서 찾을 수 있음) 행위 팔레트 섹션) 위에 과열 감지 작업. 작업 이름을 바꾸세요 카탈로그에 게시 새로 추가된 작업을 클릭합니다. 그런 다음 수정하려면 클릭하세요. 구성 레이블 옆에 있는 편집을 클릭합니다. 카탈로그에 게시 구성.
결과 대화 상자에 다음을 입력하십시오. /로컬/머신/과열 주제로. 카탈로그 이름을 선택하십시오. 목록 드롭리스트를 선택하세요. 마지막으로 /기계/과열 로 event 클릭 OK. 이제 이 작업을 통해 흐르는 모든 이벤트가 주제에 게시됩니다. /로컬/머신/과열 출판사로 등록될 것입니다 /기계/과열 카탈로그에 있습니다. 모두 /기계/과열 구독자에게 이벤트 혜택이 제공됩니다.

이제 서비스를 저장하면 그래프 아래에 추가 노드가 나타납니다. 카탈로그에 게시 작업을 카탈로그 게시자로 표시하는 작업 /기계/과열 이벤트 유형.

6단계: 과열 유형 만들기
카탈로그를 이벤트에 사용하는 것 외에도 카탈로그를 사용하여 Vantiq를 호스팅할 수도 있습니다. 서비스서비스는 프로시저를 위한 컨테이너로, 관련 프로시저들을 하나의 공통 패키지로 구성하는 데 사용할 수 있습니다. 다음 몇 단계에서는 서비스를 생성하고 호스팅합니다. 기계온도서비스. 그러나 우리가 만들기 전에 기계온도서비스, 먼저 기계 과열 이벤트의 인스턴스를 나타내는 데이터 유형을 정의해야 합니다.
사용 추가 버튼을 눌러 선택하십시오. 타입 새 표준 유형을 만듭니다. 결과 대화 상자에서 유형 이름을 지정합니다. 과열된 기계 다음 속성을 할당합니다.
- 머신아이디 (문자열) – 판독값을 특정 기계와 연결하는 고유 식별자입니다.
- 온도 (정수) – 화씨 온도로 표시된 센서 판독값입니다.
- 따라서 오른쪽 하단에 (DateTime) – 센서 판독값이 기록된 시간입니다.
- 유지 관리됨 (부울) – 기계가 마지막으로 오작동한 이후로 유지 관리를 받았는지 여부

7단계: 과열 유형 저장
기계가 과열되면 역사적 목적을 위해 인스턴스를 삽입하여 발생을 문서화하려고 합니다. 과열된 기계 유형. 드래그 앤 드롭 유형에 저장 앱 빌더 왼쪽의 활동 패턴 팔레트에서(다음에서 찾을 수 있음) 행위 팔레트 섹션) 위에 과열 감지 작업.
온 클릭 유형에 저장 작업 및 작업 이름 지정 기록 과열. 다음을 클릭하십시오. 수정하려면 클릭하세요. 구성 레이블 옆에 있는 편집을 클릭합니다. 기록 과열 구성. 선택 과열된 기계 유형으로 클릭하세요. OK 그런 다음 서비스를 저장합니다.

8단계: 만들기 기계온도서비스 예배
다음으로, 카탈로그에 게시될 서비스를 생성합니다. 이 서비스는 카탈로그 구독자가 사용합니다. /기계/과열 과열된 기계에 유지 보수가 필요한지 여부를 판단하는 이벤트입니다.
사용 추가 버튼을 눌러 선택하십시오. 서비스 클릭 + 신규 새 서비스를 만들려면 다음을 수행합니다. 새 서비스를 만듭니다. 기계온도서비스 machine.maint 패키지와 함께 클릭 OK.
서비스 창에 다음 설명을 추가합니다. 기계 상태를 추적하는 서비스.

서비스 창에서 인터페이스 탭으로 이동한 후 프로시저 옆에 있는 추가 버튼을 클릭하여 서비스에 새 프로시저 인터페이스를 추가합니다.
다음 속성을 사용하여 새로운 프로시저 서명을 정의합니다.
- 이름: doesMachineNeedMaint
- 기술설명: 이번 주에 기계가 3번 과열된 경우 true를 반환합니다.
- 반환 유형: 부울

+ 새로운 매개변수 그런 다음 옆에 있는 연필 아이콘을 클릭하고 다음 속성을 가진 매개변수를 추가합니다.
- 이름: 머신데프
- 기술설명: 기계 설명자
- 타입: 유형 머신데이터

프로시저 스텁을 생성하려면 구현 탭으로 이동하여 바인딩되지 않은 프로시저를 마우스 오른쪽 버튼으로 클릭하고 다음을 선택합니다. 프로시저 추가. 서비스를 저장합니다.

다음으로, 우리는 다음을 채워야 합니다. machineTemperatureService.doesMachineNeedMaint 프로시저. 지난주에 기계가 세 번 과열된 경우 true를 반환하는 다음 프로시저 텍스트를 추가합니다.
/* Returns true if a machine has overheated three times this week */
package machine.maint
import type OverheatedMachine
import type MachineData
PROCEDURE machineTemperatureService.doesMachineNeedMaint(machineDef MachineData):Boolean
var oneWeekAgo = now().minusMillis(1 week)
var overheatedMachines = SELECT * FROM OverheatedMachine WHERE timestamp > oneWeekAgo and machineId == machineDef.machineId and hasBeenMaintenanced == null
return overheatedMachines.size() > 3
서비스를 저장하세요. 인터페이스 탭에서 일반을 클릭한 다음 게시이다. 버튼을 클릭합니다. 서비스를 카탈로그에 게시하면 이제 카탈로그에 액세스할 수 있는 모든 네임스페이스에서 서비스를 사용할 수 있습니다.
9단계: Overheat 이벤트 구독
이제 우리는 구독할 것입니다 /기계/과열 의 이벤트 발행자 네임스페이스. 먼저 다음으로 전환합니다. 발행자 네임스페이스.
우리는 다음에 반응하는 서비스 이벤트 핸들러를 생성할 것입니다. /기계/과열 이벤트를 감지하고 과열된 기기의 유지 보수가 필요한지 여부를 감지합니다. 유지 보수가 필요한 경우, 이벤트 핸들러는 협업 작업을 수행하는 다른 앱을 트리거합니다.
사용 추가 버튼을 눌러 선택하십시오. 예배 다음을 클릭합니다 새로운 서비스 버튼을 클릭합니다. 서비스 이름 지정 과열서비스 machine.overheat 패키지와 함께. 서비스 옆에 있는 더하기 버튼을 클릭하여 서비스에 서비스 이벤트 핸들러를 추가합니다. 예배 인간을 구현 탭을 클릭하고 서비스 시각적 이벤트 처리기를 추가합니다. 이벤트 처리기의 이름을 지정합니다. 과열 핸들러.
주황색 EventStream 상자를 클릭하세요. EventStream 이름을 지정하세요. 과열이벤트스트림. 딸깍 하는 소리 수정하려면 클릭하세요. EventStream을 구성하려면 다음을 선택하세요. 주제 인바운드 리소스로. 왼쪽에 있는 돋보기 버튼을 클릭하세요. 인바운드리소스 ID 상자. 이를 통해 직접 구독할 수 있습니다. /기계/과열/ 카탈로그에서 이벤트를 확인하세요. 
클라임웍스와 함께 하늘과 닿는 여정을 시작하세요 /기계/과열/, 그런 다음 구독하고, 그런 다음 /기계/과열 또. 
있음을 주목하라 머신데이터 유형이 자동으로 설정되었습니다. 개요 이 EventStream에 대한.

OK 대화 상자를 닫습니다.
드래그 앤 드롭 순서 앱 빌더 왼쪽의 활동 패턴 팔레트에서(다음에서 찾을 수 있음) 행위 팔레트 섹션) 위에 과열이벤트스트림 작업. 작업 이름을 바꾸세요 기계 유지 관리가 필요합니까? 새로 추가된 작업을 클릭한 다음 수정하려면 클릭하세요. 구성 레이블 옆에 있는 편집을 클릭합니다. 기계 유지 관리가 필요합니까? 구성.
카탈로그에서 서비스를 구독하려면 프로시저 드롭다운 목록 옆에 있는 검색 아이콘을 클릭합니다.

클라임웍스와 함께 하늘과 닿는 여정을 시작하세요 기계온도서비스 서비스로. 구독을 클릭한 다음 OK 서비스에 가입하려면 대화 상자가 닫히면 다음을 선택하세요. machineTemperatureService.doesMachineNeedMaint 프로시저 드롭리스트에서 다음을 클릭하세요. OK.
이 앱은 이제 카탈로그에 게시된 서비스에 정의된 절차를 사용하고 있습니다. 구독자 네임스페이스. 카탈로그를 통해 서비스를 구독하면, 이 네임스페이스는 마치 로컬에 정의된 것처럼 프로시저를 호출합니다.

프로시저 구성을 닫고 다음을 추가합니다. 필터 아래의 작업 기계 유지 관리가 필요합니까? 드래그 앤 드롭으로 작업 필터 맨 위에 기계 유지 관리가 필요합니까? 작업입니다. 다운스트림 이벤트를 "이벤트"로 유지합니다. OK 대화 상자를 닫습니다.
필터 작업을 클릭하고 이 작업의 이름을 지정하세요. 기계 유지 관리 필요. 그런 다음 수정하려면 클릭하세요. 작업을 구성하려면 조건을 설정하세요. event == true위에서 호출한 프로시저는 부울 값을 반환하므로 프로시저가 true를 반환할 때만 다운스트림을 계속 진행하고 싶습니다.

OK.

마지막으로 드래그합니다 주제 게시 작업을 기계 유지 관리 필요 작업을 필터링하고 "이벤트"를 다운스트림 이벤트로 유지합니다. 새 주제 게시 작업 및 작업 이름 지정 유지관리협업. 그런 다음 수정하려면 클릭하세요. 작업을 구성하려면 주제를 다음으로 설정하세요. /시작/유지관리콜라보 클릭 OK 팝업을 닫으세요.

완전히 완성된 시스템에서 이 PublishToTopic은 과열된 기기를 수리할 수리 인력을 찾아 요청할 가능성이 높은 또 다른 앱을 트리거할 것입니다. 간략하게 설명하기 위해 이 단계는 이 튜토리얼에서 제외되었습니다. 협업에 대한 자세한 내용은 다음을 참조하세요. 협업 튜토리얼.
클릭 찜하기 서비스를 저장하려면 버튼을 클릭하세요.
10단계: 카탈로그 왕복
이 튜토리얼의 마지막 단계는 다음을 통해 전체 왕복을 테스트하는 것입니다.
- 온도 이벤트 게시 발행자 온도가 100 이상인 네임스페이스
- 과열된 기계를 식별합니다. 구독자 네임 스페이스
- 과열 이벤트 게시 구독자 네임 스페이스
- 과열 이벤트가 다시 표시되는지 확인합니다. 발행자 네임 스페이스
- 구독자 네임스페이스에 정의된 게시자 네임스페이스에서 서비스 프로시저 호출
- 기계에 유지관리가 필요한지 감지
우리는 이미 규칙을 실행하고 있습니다 발행자 "좋은" 온도 판독값을 생성하는 네임스페이스이므로 과열 이벤트를 트리거하기 위해 해야 할 일은 "나쁜" 온도 판독값 하나를 게시하는 것뿐입니다.
이 작업은 이벤트 생성기를 사용하여 쉽게 반복할 수 있도록 합니다. 다음을 사용하세요. Test 버튼을 눌러 선택하십시오. 이벤트 생성기 다음을 클릭하십시오. 새로운 이벤트 생성기. 이벤트 생성기의 이름을 지정하세요. 젠배드이벤트 확인 버튼을 클릭하세요. 이벤트 생성기 창 상단에 있는 작은 더하기 버튼을 클릭하여 새 생성기를 추가하세요.

다음과 같은 속성을 부여하세요.
- 자원: 주제
- 리소스 ID: /내/머신/임시/이벤트
- 반복: 반복, 3
- 간격: 1 초
. 등록 섹션에서 다음 속성을 설정합니다.
- 머신아이디:
- 변화: 끊임없는
- 가치관: 기계1
- 온도:
- 변화: 범위
- 랜덤 무작위: 진실
- Min: 101
- Max: 200
- 따라서 오른쪽 하단에:
- 변화: 현재 시간

만들기를 클릭하십시오.
이벤트 생성기를 저장하고 실행하세요. 파란색 생성기 실행 버튼이 빨간색으로 바뀌어야 합니다. 발전기 정지 이벤트 생성기가 실행 중임을 나타내는 버튼입니다.
세 개의 이벤트가 표시되는 것을 볼 수 있습니다. 과열 감지기 이벤트 핸들러. 이벤트는 다음 위치에서 중지됩니다. 기계 유지 관리가 필요합니까? 이번 주에 기계가 3번 이상 과열되지 않았기 때문에 작업이 완료되었습니다.

이벤트 생성기를 두 번째 실행합니다. 네 번째 이벤트는 이벤트 핸들러를 따라 이동하며, 해당 이벤트와 연동하여 다음 핸들러를 트리거합니다.

맺음말
이 튜토리얼을 완료하면 개발자는 다음 내용을 알게 됩니다.
- 카탈로그, 이벤트 구독자 및 이벤트 제작자 간의 관계
- 구독자도 생산자일 수 있고, 생산자도 구독자일 수 있다는 개념
- 카탈로그에 네임스페이스를 등록하는 방법
- 적절한 주제 명명법
- 이벤트로 카탈로그 채우기
- 다른 네임스페이스의 이벤트 구독
- 시뮬레이션 이벤트를 게시하는 방법
- 서비스 생성
- 카탈로그에 서비스 게시
- 서비스 구독 및 구독자 네임스페이스에서 서비스 프로시저 사용
자세한 내용은 Vantiq 카탈로그을 참조하십시오 카탈로그 문서.