From Saturday, Nov 23rd 7:00 PM CST - Sunday, Nov 24th 7:45 AM CST, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
From Saturday, Nov 23rd 7:00 PM CST - Sunday, Nov 24th 7:45 AM CST, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
이 백서에서는 사물인터넷(IoT) 어플리케이션용 클라우드 기반 개발 플랫폼에 연결할 수 있는 가장 널리 사용되는 세 가지 통신 프로토콜을 소개합니다. 또한 Amazon Web Services, IBM Bluemix, PTC ThingWorx 및 Microsoft Azure와 같은 가장 일반적인 IoT 클라우드 개발 플랫폼에 대한 정보도 확인할 수 있습니다. 그리고 LabVIEW 개방형 그래픽 개발 환경을 통해 CompactRIO와 같은 NI 임베디드 시스템을 이러한 클라우드 플랫폼에 연결하는 방법도 알아보십시오.
인터넷을 사용할 수 있는 새로운 어플리케이션이 세상에 나오면서 향후 10년 안에 세계 경제는 크게 변화할 것입니다. 이러한 어플리케이션 중 일부는 경제적으로 큰 영향을 미칠 뿐만 아니라 파괴적이고 혁신적일 수 있습니다. 이는 호텔(Airbnb)과 택시(Uber)와 같은 소비자 부문에서 이미 경험했듯이 많은 산업과 부문에 영향을 미칠 것입니다.
독일의 4차 산업혁명 이니셔티브 등 업계에서도 이런 경향이 두드러지게 나타나고 있습니다. 4차 산업혁명 또는 IIoT(산업용 IoT)에서는 기존 기술의 통합과 더 나은 사용에 초점을 맞추고 있습니다. 그런 의미에서 산업, 기계, 제품, 사람은 모두 디지털로 연결되어 있습니다. 제조업체는 1개의 수량으로 맞춤형 제품을 양산하고 있습니다. 클라우드의 지능형 소프트웨어는 엔터프라이즈 IT 시스템을 운영 환경, 기기, 디바이스, 센서와 연결하여 생산 흐름을 제어하고 최적화합니다.
그림 1 – 산업용 IoT의 일반적인 아키텍처: 지능형 에지 노드가 센서, 액추에이터 및 디바이스를 IT 시스템에 연결
연결 비용이 감소하면서 처리 디바이스 및 센서의 IIoT 도입이 엄청나게 증가했습니다. 센서 데이터는 CompactRIO 또는 PXI 자동화 테스트 시스템과 같은 스마트 에지 장치로 기기 가까이에서 캡처되고 사전 처리될 수 있습니다. 에지 디바이스는 데이터를 저장하고·모니터링하며·분석하거나 동작을 트리거할 수 있는 가상세계(IT 클라우드 플랫폼)로 실시간으로 전송할 수 있습니다.
IIoT의 가치는 디바이스의 연결성에 있는 것이 아니라 스마트 디바이스가 제공하는 데이터 스트림에서 기업이 실현하는 것에 있습니다. 클라우드 컴퓨팅 플랫폼과 해당 서비스가 이러한 인사이트를 제공하는 데 도움이 됩니다.
IoT 솔루션을 구현할 때 중요한 여러 가지 문제를 고려해야 합니다. 표준화, 상호 운용성, 빅 아날로그 데이터™ 처리, 보안 및 개인 정보 보호와 같은 과제가 그것입니다. 이러한 과제를 인식하고 보안에 각별히 신경 쓰는 것이 중요합니다. 보안은 모든 IoT 어플리케이션에서 중요한 구성요소입니다. IIoT 디바이스에서는 강력한 보안 정책을 적용하고 최신 보안 패치를 정기적으로 업데이트해야 합니다. CompactRIO의 보안 모범 사례에 대해 자세히 알아보고 NI에서 최신 보안 정보를 받으시려면 ni.com/support/security를 방문하십시오. 모든 클라우드 컴퓨팅 플랫폼은 안전하게 데이터를 주고받으며 강력한 인증 및 승인 방식을 사용하는 것은 물론 암호화도 사용합니다. 대다수는 감사 기능도 갖추고 있습니다.
클라우드 컴퓨팅은 로컬 컴퓨터에서 소프트웨어 어플리케이션을 실행하는 것과 달리, 사용자의 요청에 따라 네트워크를 통해 하드웨어, 소프트웨어 또는 데이터 리소스를 제공하는 유연한 방법입니다.
그림 2 - 클라우드 컴퓨팅 요소의 개요(이미지 출처: Sam Johnston https://commons.wikimedia.org/wiki/File:Cloud_computing.svg)
아래 표는 자주 사용되는 클라우드 컴퓨팅의 세 가지 서비스 레벨을 보여줍니다.
SaaS | 서비스형 소프트웨어 | 완전한 비즈니스 서비스를 제공합니다. 서비스 제공자는 전체 플랫폼을 실행하고 관리합니다. 예: Gmail, Salesforce.com |
PaaS | 서비스형 플랫폼 | 플랫폼을 제공합니다. 공급업체가 제공하는 실행 시간과 서비스를 활용하여 자체 클라우드 어플리케이션을 구축하고 배포해야 합니다. 예: IBM Bluemix, Microsoft Azure, AWS IoT |
IaaS | 서비스형 인프라 | 서버 하드웨어, 스토리지 및 네트워크 기능과 같은 기본 구성요소를 제공합니다. OS 및 어플리케이션을 설치해야 할 수도 있습니다. 예: Amazon EC2(Amazon에서 제공하는 가상 시스템), IBM SoftLayer |
클라우드는 모든 서비스가 클라우드에서 호스팅되는 보안 환경에서 실행되며 다른 사용자와 서버를 공유할 수 있는 공용 클라우드로 또는 사용자 조직에서만 사용 가능하고 온프레미스 또는 오프프레미스 방식으로 실행되는 사설 클라우드로 배포할 수 있습니다. 또한 클라우드는 일부가 온프레미스에 있고 다른 서비스가 클라우드에 있는 하이브리드 방식으로도 배포할 수 있습니다.
통신 프로토콜은 서버에 대한 네트워크를 연결합니다. Wi-Fi, 이더넷, 셀룰러 및 LoRaWAN과 같은 프로토콜은 모두 통신 프로토콜로 이러한 수준의 연결을 제공합니다. 어플리케이션 프로토콜은 어플리케이션별 메시지를 통신하기 위해 통신 프로토콜 위에 위치합니다.
다양한 표준이 디바이스와 클라우드 간의 통신을 처리합니다. 어플리케이션 요구사항이 다르기 때문에 특정 IoT 프로토콜이 개발되었고 이로 인한 혼란이 자주 발생합니다. 프로토콜은 다양한 형태로 구현될 수 있으며 IoT 플랫폼에는 전용 IoT 솔루션이 있을 수 있습니다. 범용 솔루션을 제공하려면 디바이스, 어플리케이션 및 플랫폼의 상호 운용이 가능해야 합니다. NI 임베디드 시스템은 개방적이고 유연하므로 우수한 솔루션을 제공합니다. 이는 NI Linux Real-Time OS, LabVIEW 그래픽 및 Eclipse C 프로그래밍 환경 지원, 활기찬 에코시스템을 통해 사용할 수 있는 여러 Linux 패키지를 통해 실현됩니다.
상위 레벨에서 어플리케이션 프로토콜에는 세 가지 주요 사용 사례가 있는데 이는 디바이스 대 디바이스(D2D 또는 M2M), 디바이스 대 서버(D2S) 및 서버 대 서버(S2S) 통신입니다. IoT 어플리케이션 프로토콜은 다양한 레벨의 실시간 동작 및 기타 특성을 지녔습니다. 아래 표를 통해 개요를 확인하십시오.
| HTTP/HTTPS | WebSocket | DDS | MQTT | AMQP |
설명 | 어플리케이션, 웹 사이트 등에서 인터넷을 통해 데이터 전송 | 어플리케이션, 웹 사이트 등에서 인터넷을 통해 데이터 전송 | 지능형 시스템을 연결하는 통신 버스 | 데이터 수집 및 서버와 구독자에게 게시하기 위한 경량 프로토콜 | 어플리케이션 및 프로세스(서버) 간에 메시지를 안정적으로 전송하는 큐 시스템 |
일반적인 사용 사례 | 웹 | 웹 | D2D | D2S | S2S, (D2S) |
리얼타임 동작 | 아니요 | 아니요 | 예, us-ms 범위 | 아니요, ms–s 범위 | 아니요, 초 범위 |
메시지 | 요청/응답 | 요청/응답 | 데이터 버스 | 게시/구독 | 게시/구독 |
전송 | TCP | TCP | TCP, UDP, 공유 메모리 등 | TCP | TCP |
보안 | 예: HTTPS(SSL 또는 TLS) | 예: wss://(SSL/TLS) | 예 | 사용 가능: SSL 또는 TLS | 예: TLS 또는 SASL(단순 인증 및 보안 계층) |
LabVIEW 지원 | 예, 네이티브입니다 | 예, VI Package Manager(MediaMongrels)를 통합니다 | 예, VI Package Manager(RTI)를 통합니다 | 예, VI Package Manager, LabVIEW Tools Network 및 GitHub에서 구현합니다 | VI Package Manager(LabbitMQ) 및 GitHub에서 구현합니다 |
서비스 품질 | 아니요 | 아니요 | 예, 20레벨 이상입니다 | 예, 3레벨입니다 | 예 |
다음 섹션에서는 가장 일반적인 프로토콜인 MQT, AMQP, DDS를 자세히 설명합니다.
MQTT(Message Queuing Telemetry Transport)는 IoT 연결 프로토콜입니다. MQTT는 전력 사용량 모니터링과 송유관 모니터링을 포함한 수천 개의 센서가 이용되는 응용 분야에서 사용됩니다. MQTT는 대역폭, 배터리 및 리소스 측면에서 효율적입니다. MQTT는 게시/구독 모델을 사용합니다. IoT 디바이스는 TCP를 통해 MQTT 브로커에 데이터를 주제로 게시합니다. 인증된 클라이언트는 모든 주제를 구독할 수 있으며 게시자가 쓰는 대로 브로커로부터 값을 받을 수 있습니다. 게시자(디바이스)는 구독자에 대해 알 필요가 없으므로 디바이스 레벨에서 관리하기 쉽습니다. 브로커는 여러 디바이스에서 여러 가지 동시 연결을 지원할 수 있습니다. 주제는 계층적 레벨을 가질 수 있는 단순 문자열이며 와일드카드도 지원합니다. 주제의 예로는 GothamCityPlant/Building1/Pump7/Power가 있습니다. 메시지 데이터는 JSON 형식으로 전송되며 클라우드 플랫폼의 IoT 서비스에 국한될 수 있습니다.
그림 3 – 에지 디바이스에서 인터넷을 통해 승인된 구독자에게 메시지를 배포하는 중앙 브로커에 MQTT 메시지 전송
MQTT는 세 가지 서비스 품질 레벨을 지원합니다.
MQTT는 LabVIEW 내에서 표준 HTTP 호출을 사용하여 구현할 수 있습니다. NI 파트너 프로그램 및 기타 타사 구현 도구는 NI 툴 네트워크 및 GitHub에 있습니다.
MQTT 통신을 디버깅하기 위해 MQTT 클라이언트를 로컬 컴퓨터에 설치할 수 있습니다. 자주 사용되는 무료 MQTT 클라이언트는 MQTTfx이며 mqttfx.org/에서 이용할 수 있습니다.
통신을 테스트할 수 있는 여러 MQTT 브로커가 인터넷에 있습니다. 그 중 가장 인기 있는 것이 mosquitto입니다. 통신을 테스트하기 위해 test.mosquitto.org에 주제를 게시할 수 있습니다. mosquitto 브로커는 오픈 소스이며, 사내에서 샌드박스 테스트나 MQTT 통신의 생산 용도로도 사용될 수 있습니다.
AMQP(Advanced Message Queuing Protocol)는 서버 간에, 그리고 디바이스에서 서버로 또는 그 반대로 트랜잭션 메시지를 보낼 수 있는 개방형 메시지 프로토콜입니다. AMQP의 장점은 신뢰할 수 있는 통신(수신 측에서 정확히 한 번 안정적으로 데이터가 수신됨)과 상호 운용성입니다. AMQP는 브로커를 통해 클라이언트로부터 데이터를 수신합니다. 그런 다음 클라이언트(또는 게시자)가 브로커에 메시지를 게시하고, 브로커가 메시지를 처리하고 큐로 라우팅합니다. 메시지는 큐에서 이 데이터를 구독한 모든 클라이언트로 전송됩니다. AMQP는 디바이스가 일시적으로 오프라인 상태일 때도 모든 메시지를 추적하고 의도한 대로 전달하는 데 초점을 맞춥니다. 데이터 로드를 생성하는 디바이스는 AMQP 서버로 스트리밍할 수 있고, 수신자가 모니터링하고 분석하기 위해 이러한 데이터를 소비합니다. AMQP 어플리케이션의 예로는 데이터 센터의 자동차 운전 행동 분석을 들 수 있습니다. 일부 클라우드 개발 플랫폼은 AMQP 또는 WebSocket을 통한 AMQP에 대한 디바이스 연결을 지원합니다. 자주 접할 수 있는 유명한 오픈 소스 AMQP 브로커는 RabbitMQ, ActiveMQ, 그리고 Kafka입니다.
LabbitMQ는 VI Package Manager에서 설치할 수 있는 LabVIEW용 AMQP 라이브러리입니다. LabVIEW의 오픈 소스 AMQP 클라이언트 구현은 GitHub에서 사용할 수 있습니다.
DDS(Data Distribution Service)의 주요 사용 사례는 데이터를 다른 디바이스에 직접 배포하는 것이지만 엔터프라이즈 시스템 및 모바일 디바이스에도 데이터를 배포할 수 있습니다. 풍력 발전, 자동차 시험, 자산 추적, 국방 및 대형 물리학에서 응용되고 있습니다. 디바이스는 흔히 밀리초 단위로 측정되는 서로의 데이터를 실시간으로 필요로 합니다. 일반적으로 이 모든 것은 대규모 데이터 스트림에서 안정적으로 이루어져야 합니다. DDS는 설정 가능한 안정성, 중복성 및 필터링과 함께 상세한 서비스 품질 제어를 제공하며, 정확히 어떤 데이터가 어디로 가야 할지 선택합니다. 이를 위해 DDS는 수천 개의 디바이스에 데이터를 전달할 수 있는 디바이스 대 디바이스 버스 통신을 사용합니다.
DDS용 LabVIEW 지원은 VI Package Manager를 통해 설치할 수 있습니다. RTI는 LabVIEW와 함께 DDS 사용에 대한 탁월한 길라잡이를 제공합니다.
고지 사항: National Instruments는 어떠한 클라우드 플랫폼도 보증하지 않습니다. 주요 플랫폼에 대한 간략한 개요 제공이 목적입니다. 어플리케이션에 가장 적합한 플랫폼을 결정하기 전에 철저하게 확인하십시오.
AWS(Amazon Web Services)는 클라우드 컴퓨팅, 데이터베이스 스토리지, 콘텐츠 제공 등의 IT 인프라를 제공합니다. AWS IoT는 규칙 엔진을 통해 디바이스가 다른 AWS 클라우드 어플리케이션 및 서비스와 연결되고 상호 작용할 수 있도록 지원하는 관리형 클라우드 플랫폼입니다. AWS IoT는 디바이스 게이트웨이와 디바이스 섀도도 제공합니다. 디바이스 게이트웨이는 AWS IoT에 대한 디바이스 연결을 관리하고 MQTT, WebSocket, HTTP 프로토콜을 지원하는 서비스입니다. 디바이스 섀도는 오프라인 상태에서도 디바이스의 최신 상태를 유지하는 가상 디바이스를 생성할 수 있습니다. AWS 내의 어플리케이션은 가상 디바이스에 게시할 수 있으며 디바이스가 다시 온라인 상태가 되면 상태가 동기화됩니다. AWS는 하드웨어 디바이스와 AWS IoT 연결을 지원하는 오픈 소스 IoT SDK를 제공합니다.
AWS는 SQL과 같은 구문을 적용하는 IoT 규칙 엔진을 사용하여 디바이스에서 수신된 데이터를 선택하고 작업을 수행합니다. 규칙 엔진을 통해 디바이스에서 수신된 데이터를 수집, 분석, 처리, 작동할 수 있는 IoT 어플리케이션을 구축할 수 있습니다. 규칙 엔진은 AWS Lambda(업로드된 코드를 실행하기 위한 컴퓨팅 서비스), Amazon Kinesis(대규모 데이터 스트림을 실시간으로 처리), Amazon S3(단순 스토리지 서비스), Amazon Machine Learning, Amazon DynamoDB 등과 같은 AWS 엔드포인트로 메시지를 라우팅할 수 있습니다.
NI는 LabVIEW 툴 네트워크를 통해 무료 툴킷을 제공하여 클라우드 스토리지, 푸시 알림 등을 지원하기 위해 LabVIEW 어플리케이션을 AWS S3, SNS, SQS 및 IoT 서비스에 직접 연결할 수 있습니다.
IBM의 클라우드 개발 플랫폼인 Bluemix는 PaaS입니다. Bluemix를 사용하면 “빅 데이터” 분석, 스토리지, 데이터베이스, 보안, IoT, 인지 어플리케이션 등의 서비스를 위한 IBM 소프트웨어에 액세스할 수 있습니다.
Bluemix용 Watson IoT는 어플리케이션이 연결된 디바이스와 통신할 수 있도록 하며 이러한 디바이스 및 디바이스 게이트웨이에서 수신된 데이터를 소비합니다. MQTT는 디바이스 및 게이트웨이와 통신하는 데 사용됩니다. 디바이스에서는 TLS를 통해 MQTT를 사용하여 Watson IoT에 안전하게 연결할 수 있습니다.
Watson IoT MQTT 브로커와 MQTT 연결을 설정하려면 먼저 디바이스를 IBM Bluemix에 등록해야 합니다. 데이터를 처리하는 규칙과 논리는 node.js(Node-RED), Java, Python 등과 같이 IBM Bluemix가 지원하는 모든 언어로 정의될 수 있습니다.
LabVIEW 툴 네트워크에는 CompactRIO를 연결하는 예제와 Bluemix용 IBM Watson IoT의 자세한 설명이 포함되어 있습니다.
ThingWorx는 완벽한 어플리케이션 설계, 실행 시간 및 환경을 제공하는 모델 기반 IoT 어플리케이션 개발 플랫폼입니다. ThingWorx는 증강현실(AR)을 포함한 연결, 분석, 협업 및 시각화를 위한 구성요소를 제공합니다. 이 플랫폼의 핵심 개발 기능은 다음과 같습니다.
ThingWorx는 직접 네트워크 연결, MQTT 및 AMQP, 타사 디바이스 클라우드, PTC Kepware 소프트웨어를 통한 OPC-UA 연결 등 다양한 방법으로 디바이스 연결을 지원합니다.
Azure IoT Suite는 디바이스에서 데이터를 수집할 수 있으며 데이터 분석, 데이터 스토리지, 리얼타임 및 히스토리 데이터 시각화, 백 오피스 시스템과의 통합과 같은 일련의 서비스를 제공합니다. Azure IoT 허브는 IoT 디바이스에서 데이터를 수신합니다. 그런 다음 디바이스 데이터를 추가 처리, 분석 및 관리를 위해 저장하거나 전달할 수 있습니다. 디바이스는 HTTP, MQTT 또는 AMQP 프로토콜을 통해 IoT 허브와 통신할 수 있습니다. Microsoft는 GitHub를 통해 Azure IoT 디바이스 SDK 세트를 제공합니다.
Google Cloud Platform, GE Predix와 같은 다른 클라우드 플랫폼도 사용할 수 있습니다. 자세한 내용은 공급업체의 특정 제품 페이지를 참조하십시오.
| AWS IoT | Bluemix용 IBM Watson IoT | PTC ThingWorx | Microsoft Azure IoT |
무료 평가판 | 1년 무료 평가판 | 30일 평가판 사용 후 무료 Lite 버전 이용 | 30일 평가판 | 이용 기간 제한 없는 IoT Hub 무료 평가판 |
가격 정보 | 사용량 기준, 최소 수수료 없음 | 디바이스당, 교환된 데이터, 저장된 데이터 기준 지불 | 구독 후 사용량에 따라 지불 | 사용량 기반(IoT Hub 메시지 수) |
배포 옵션 | 공용 클라우드 | 공용 또는 사설 | 사설 또는 하이브리드 | 공용, 사설 또는 하이브리드 |
시작하기 자료(길라잡이, 백서, 비디오) | 예 | 예 | 예 | 예 |
플랫폼 액세스 옵션 | GUI, CLI | GUI, CLI | GUI | GUI, CLI |
MQTT 지원 | 예 | 예 | 예 | 예 |
MQTT WebSockets | 예 | 예 | 지정되지 않음 | 예 |
AMQP | 대신 SQS를 사용하거나 타사 제품 사용 | 타사 제품을 통해 | 예 | 예 |
AMQP WebSockets | – | 타사 제품을 통해 | 지정되지 않음 | 예 |
데이터 포맷 | JSON | JSON | JSON | JSON |
스토리지 | S3(파일), DynamoDB(NoSQL 데이터베이스), Redshift(데이터베이스) 및 기타 제품 | Cloudant(NoSQL 데이터베이스), Mongodb 및 기타 제품 | 데이터 테이블, 스트림 및 가치 스트림 | SQL 스토리지, DocumentDB(NoSQL), blob 스토리지(파일) 및 테이블 스토리지 |
LabVIEW 연결 | 예, AWS용 LabVIEW Cloud Toolkit, MQTT | 예, MQTT | 예, MQTT/AMQP | 예, MQTT/AMQP |
사용 가능한 디바이스 SDK | 예 | 예 | 예 | 예 |
규칙 엔진 | 예, 규칙 엔진은 데이터에 대해 작동하고 다른 서비스로 라우팅됩니다 | 예, node.js 어플리케이션입니다 | 예, Expression Widget입니다 | 예, Azure Stream Analytics입니다 |
데이터 시각화 | QuickSight 또는 맞춤형 개발 | 예, Watson IoT 실시간 인사이트 | 예, ThingWorx SQUEAL, 위젯, Vuforia 및 매쉬업 | Azure 웹 앱, power BI 및 알림을 통해 |
플랫폼 실시간 스트리밍 분석 | Amazon Kinesis | IoT 실시간 인사이트, IBM 스트리밍 분석 | 예 | 스트림 분석 |
플랫폼 머신 러닝 | Amazon Machine Learning | IBM Predictive Analytics | 예측 분석 | Azure ML |
보안 | TLS/SSL | TLS | TLS | TLS/SSL |
이 표에는 기본적으로 제공되는 기능이 포함됩니다. 일반적으로 추가 서비스를 설치하여 기능을 추가할 수 있습니다.
AWS https://aws.amazon.com
IBM http://www.ibm.com
Intel http://www.intel.com
PTC http://www.ptc.com/internet-of-things/technology-platform-thingworx
NI http://www.ni.com/nl-nl/innovations/industrial-internet-of-things.html
전자 디자인 - 사물 인터넷 이면의 프로토콜 이해 http://www.electronicdesign.com/iot/understanding-protocols-behind-internet-things
IoT(사물 인터넷) 개발 플랫폼 - IIBM Bluemix, P Kumar, Univ. of Koblenz-Landau의 사례 https://kola.opus.hbz-nrw.de/frontdoor/index/index/docId/1373
IoT 표준 및 프로토콜 https://www.postscapes.com/internet-of-things-protocols/
산업용 사물 인터넷 플랫폼 비교 https://www.mandsconsulting.com/industrial-iot-platform-comparison
서적:
Internet of Things, W. Vermeend, J.W. Timmer, 2016, ISBN 97890821993-4-5
Enterprise IoT, Naveen Balani, 2016, ISBN 9781535505642
Linux® 등록 상표는 전 세계에 상표권을 보유하고 있는 Linus Torvalds와 독점 라이센스 계약을 맺고 있는 LMI의 2차 라이센스에 따라 사용되었습니다.