실시간 IoT 업데이트

Azure 기능
Azure IoT Edge
Azure IoT Hub
Azure Maps
Azure SignalR Service

이 가이드는 웹 페이지 또는 모바일 앱 같은 클라이언트가 디바이스에서 실시간으로 업데이트를 받을 수 있는 방법을 간략하게 설명합니다. 클라우드 앱에서는 더 이상 최신 정보에 대한 HTTP 요청을 제출하지 않습니다. 대신 Azure SignalR Service에서 사용 가능한 즉시 클라이언트에 콘텐츠를 푸시합니다. 관리되는 서비스인 Azure SignalR Service는 앱에 실시간 통신을 추가하는 프로세스를 간소화해 줍니다.

아키텍처

Azure SignalR Service 실시간 IoT 데이터로 업데이트된 웹 페이지 및 모바일 앱과 같은 클라이언트를 유지하는 방법을 보여 주는 아키텍처 다이어그램.

이 아키텍처의 Visio 파일을 다운로드합니다.

워크플로

  1. 웹 페이지와 모바일 앱, 기타 클라이언트는 서버리스 컴퓨팅 플랫폼인 Azure Functions에서 Azure SignalR Service 엔드포인트와 토큰을 요청합니다. Functions는 다양한 원본의 데이터를 통합할 뿐만 아니라 클라이언트 그룹에 대한 Azure SignalR Service 엔드포인트와 정보도 관리합니다.

  2. 클라이언트는 엔드포인트와 토큰을 사용하여 Azure SignalR Service에 연결합니다.

  3. IoT 디바이스는 Azure IoT Edge 및 Azure IoT Hub로 원격 분석을 보냅니다. IoT Edge는 처리된 IoT 디바이스 원격 분석을 IoT Hub로 보냅니다.

  4. 원격 분석은 Azure Functions에서 함수를 트리거합니다. 함수는 다음 작업을 완료합니다.

    • 원격 분석에서 프로그래밍하는 모든 계산 실행
    • 프로그래밍하는 방식으로 데이터 변환
    • 관리되는 서비스 Azure SignalR Service를 사용하여 데이터 브로드캐스트
  5. Azure SignalR Service는 기본 전송 프로토콜인 WebSocket처럼 실시간 애플리케이션에서 사용하는 일부 기술을 지원합니다. 그러나 WebSocket을 사용할 수 없는 경우에는 Azure SignalR Service에서 SSE(서버 전송 이벤트)와 긴 폴링 같은 기술을 사용합니다. Azure SignalR Service는 서버와 클라이언트가 지원하는 기능에 따라 적절한 전송 프로토콜을 자동으로 검색하고 초기화합니다.

  6. Azure SignalR Service 메시지는 특정 클라이언트 또는 클라이언트 그룹으로 이동합니다. 클라이언트는 데이터를 사용하여 앱을 업데이트합니다.

시나리오 정보

IoT(사물 인터넷) 애플리케이션에는 IoT 디바이스의 실시간 데이터가 필요한 경우가 많습니다. 예컨대 일부 앱은 디바이스에서 가져온 원격 분석 또는 경고 데이터를 표시합니다. 기존 폴링 방법을 사용하면 이러한 클라이언트 앱에서 디바이스에 상태 변경을 요청합니다.

이 가이드는 웹 페이지 또는 모바일 앱 같은 클라이언트가 디바이스에서 실시간으로 업데이트를 받을 수 있는 방법을 간략하게 설명합니다. 클라우드 앱에서는 더 이상 최신 정보에 대한 HTTP 요청을 제출하지 않습니다. 대신 Azure SignalR Service에서 사용 가능한 즉시 클라이언트에 콘텐츠를 푸시합니다. 관리되는 서비스인 Azure SignalR Service는 앱에 실시간 통신을 추가하는 프로세스를 간소화해 줍니다.

예컨대 판매점에는 현재 매장 고객의 수를 표시하는 대시보드 앱이 있을 수 있습니다. 이 가이드의 솔루션을 사용하면 앱에서 최신 고객 수를 요청하지 않습니다. 대신, 총액이 변경되면 Azure SignalR Service에서 해당 정보를 앱으로 피드합니다.

잠재적인 사용 사례

소매 업계 외에 다른 영역에서도 이 솔루션의 이점을 누릴 수 있습니다.

  • 서버가 시각화 및 애플리케이션에서 사용하기 위해 실시간 데이터를 클라이언트에 푸시하는 모든 시나리오
  • 사용자 지정된 사용자 인터페이스와 맵 같은 풍부한 고도의 대화형 앱

실시간 데이터 업데이트를 제공하는 특정 예제는 다음과 같습니다.

  • 차량 위치를 매핑하는 차량 모니터링(차량).
  • 제조 공정에 대한 온도, 압력 및 상태의 원격 모니터링(에너지 산업에도 적용 가능).
  • 분당 회전, 토크 및 후크 부하와 같은 원격 분석을 사용하여 프로세스를 최적화하는 드릴 제어 시스템.
  • 경고 메커니즘

고려 사항

이 패턴을 사용하는 경우 다음 사항을 고려하세요.

  • 시스템에 엄격한 대기 시간 요구 사항이 있는 경우 대기 시간을 대폭 늘릴 수 있는 요소를 알고 있어야 합니다.

    • 실시간 시나리오에서 클라우드 애플리케이션 신호는 대기 시간을 최대 10초 늘릴 수 있습니다.
    • 솔루션에 추가하는 모든 데이터 변환 단계는 대기 시간을 늘릴 수 있습니다.
  • Azure SignalR Service는 다양한 성능 용량을 수용하는 7개의 계층을 정의합니다. 이러한 값에 영향을 주는 요소를 파악하여 시나리오의 인바운드/아웃바운드 용량을 결정합니다. 그런 다음 요구 사항을 가장 잘 충족하는 계층을 선택합니다. 자세한 내용은 Azure SignalR Service를 위한 성능 가이드를 참조하세요.

  • Azure SignalR은 SignalR 프로토콜을 기반으로 하며 클라이언트에 메시지를 브로드캐스트할 때 게시-구독 패턴을 따릅니다. 여러 클라이언트에 메시지를 게시할 때 메시지 배달을 보장해야 하는 경우 고유한 ACK(메시지 승인) 메커니즘을 사용하는 것이 좋습니다.

  • Power BI 시각적 개체에 실시간 데이터를 표시하는 경우, 이 솔루션의 대안으로 Power BI 실시간 스트리밍을 고려합니다.

다음 단계

관련 솔루션에 대해 알아보려면 이 정보를 참조하세요.

IoT 아키텍처 가이드

IoT 패턴

IoT 아키텍처