Coressent Korea

IoT (Internet of Things)


Simple Messeage Queue : IoT Messaging "IoT Messaging made secure, trusted, and easy"
Source Code | No Royalties | GPL Free

IoT Edge Node data acquisition 을 위해서 Embedded device 와 remote control 을 위해 broker/server 를 이용하거나 Real Time 으로 HTML5 을 직접 Embedded Device 를 제어할수 있다. SMQ 는 IoT (M2M) publish/subscribe protocol 로 designed 되어 쉽게 사용할수 있으며, Edge Node device 와 즉시 연결하기 위하여 최적화 되어 있다.이 Solution 은 real –time control, analysis 그리고 updates 가 포함된 resource 을 server 와 Edge Node device 간 연결을 할 수 있다.

FEATURES:

• PubSub, direct addressing, and RPC for IoT applications
• ANSI C Source Code; 2K non-secure, 22K secure (TLS)
• Designed for Low-Cost (Resource Constrained) Edge Nodes
• Bare Metal Support
• No Firewall/NAT Hassle; Private IP to Private IP Communication
• Pre-Integrated Security with SharkSSL – SSL/TLS *(Optional)

Library Summary

• SimpleMQ Client - Thin C Source Library (2Kb)
• SharkMQ Client - Secure C Source Library (22Kb)
• SMQ Broker - Broker, Server, and Management Component
• SMQ-JS - JavaScript Library
• SMQ-Java - Java and Android Library

Reference

• SMQ joins Andes Technology's Knect.me(TM) IoT
   Community

• SMQ: Asserting Machine Control in the IoT - EE Journal
• SMQ: All About Messaging Protocols - EE Journal

Technical Information Library Summary

1. SimpleMQ Client a C Source code library는 Cortex M4 Core에서 Direct interface to sockets Size는 2KB 이다.
2. SharkMQ™ Shark SSL 을 이용하여 SimpleMQ Client는 보안성을 위하여 Secure를 구현하였다. The complete SharkSSL and SimpleMQ code 는 ECC and ChaCha20-Poly1305 결합하여 선택된 Ciper와 함께 가장 작은 21Kbyte ROM 에 탑재 할 수 있다.
3. SimpleMQ Broker management component.
4. SimpleMQ-JS a JavaScript library는 the Message Queue communication.을 위해서 WebSockets 을 이용한다.

Architecture Overview

SimpleMQ Broker 는 IoT communication과 함께 standard web URL 을 이용하여 보안이 되지않는 HTTP나 보안이 적용된 HTTPS에 Embedded Device와 통신할 수 있는 기초적인 publish/subscribe protocol이다. 어떻게 하면 WebSocket 을 기초로 비슷한 방식으로 Device와 통신 할 수 있는가에서 출발한다.
Session에서 연결이 발생하면 SimpleMQ Client 는 Topic name 발행하고 승인(publish and subscribe) 한다. 이때 topic name은 어떤 string 값을 보내며, UNIX 시스템에 있는 file system hierarchy 과 동등한 구조를 이룬다.
Topic names 는 server에 있는 lookup tables and values stored을 이용하여 빠른 messages processing 과정을 거치며 Server에 의해서 number 를 translated 하여 준다.
클라이언트는 Topic에 구독을 요청하고 Server 는 topic channel 정의된 Topic 의 ID 로 발행한다. 각 Client는 Broker 가 순간 얻은 Topic ID에 의해서 특별한 ID 를 할당한다. 순간 얻은 Topic ID는 subscriber 에 의해서 “publisher’s address 같은 특별한 방법으로 사용된다. 그래서, 순간 얻은 Topic ID 를 사용하여 Device 에 직접 message 를 보낼 수 있는 능력을 subscriber 는 가질수 있다. 순간 얻은 Topic ID 는 하나의 RPC(remote procedure call) 를 simulate를 적용 할 수 있다.
SimpleMQ broker는 Server에서 동작하는 수많은 Broker 의 요청을 product/customer 의 segmentation 하여 쉽게 제공한다. Server에 있는 각각의 Message Queue entry (URL)는 하나의 broker 요청을 조합한다. 그래서, 주어진 시간에 Server 에 설치된 수많은 요청 을 기존 제한된 Memory 공간 내에 단지 한정 하여 사용할수있다.

SimpleMQ Architecture Diagram

Figure 1: Four clients connected to a broker, where one device utilizes a secure TCP connection, one device utilizes a non secure TCP connection, and two browser clients utilize WebSockets in either secure or non-secure mode.

Benefits

•Sensor나 각종 동작하는 device의 microcontroller 를 쉽게 IoT management 를 할 수 있다.
•The SimpleMQ Broker 는 Application Server나 파생된 Web Server product의 맨 위에 위치하여 동작 될 수 있다.
•Application programmers는 standard HTTP(S) 사용하는 Browser 로 Server side application과 통신하며 선택적으로 프로그램을 만들수 있다.
•Real-Time Web Socket connections 는 simplifies the interface 의 the SimpleMQ-JS JavaScript을 통하여 접근할 수 있다.
•IoT traversal of firewalls and proxies 는 HTTP(s)위에 쉽게 시작 할 수 있다.
•Server side code는 그들의 사정에 따라 요구되고 행동하는 것을 분석 할 수 있다.
•Port 의 요구는 정보를 얻을수 있는 남아도는 port를 위하여필요없는 standard port인 80 port 와 433port로 최소화 할수있다.

Device Solution

SimpleMQ Client는 C Source Code를 제공하고 TCP/IP로 직접 상호작용하는 Device를 위하여 만들어진다.
The communication client는 작고 강제성을 띤 전형적인 microcontroller의 resource 보호를 용이하게 디자인 되어 있다. Devices 는 신뢰할 수 있는 username/password 처럼 혹은 key values를 그들 자신에게 승인한다. Non Secure Mode 에서 동작하는 The SimpleMQ client 는 인증된 Hash 의 사용 쉽게 허락해준다. 이것은 도청을 방해 하기위하여 보안이 암호화된 password로 사용하기 유용하다.
SharkMQ™는 신뢰하고, 보안성을 유지하고, 암호화된 통신을 위하여 of theSharkSSL TLS stack을 이용하여 SimpleMQ Client 의 Secure version이다.
개발자는 Device와 Broker 인증을 위하여 증명 해야한다. 그래서, X.509 certificates을 사용하여 상호인증 선택해야한다. 우리의 bare metal SharkMQ™ reference platform 은 38Kb ROM and 13Kb RAM 으로 구성 되어 있다. 이 reference platform 은 SharkMQ, SharkSSL, TCP/IP stack, and drivers; all in tiny 38Kb 를 포함하고있으며 RAM size 는 13KB 이다. 우리는 demo 준비가 되어 있으며, 고객의 요청하면 언제라도 보여드릴수있다.

Browser Solution

Browser 를 위한 The IoT Message Queue protocol 는 WebSocket connection 위에 존재하는 channel이다.
모든 Major Browser 는 완벽한 real-time communication protocol 의 WebSocket 을 지원한다.
The browser solution는 Topic에게 발행과 구독(subscribe to and publish)을 JavaScript applications을 수용하는 WebSocket과 함께 SimpleMQ-JS JavaScript library 로 구성되어 있다.

Broker SSL Termination

SimpleMQ Broker는 IoT SSL termination 부여한다. 실제적인 예를 들어 우리는 secure WebSocket 사용하는 external Browser 사용하고 Message 를 non secure device 에게 SimpleMQ Client 을 이용하여 보낸다면, SimpleMQ Broker는 Browser 로부터 받은 Message 의 암호를 해독하고 두개의 non-secure devices에 암호화 되지않는 것을 전달하게 된다. 이러한 통신은 역시 non secure client 는 secure client에게 보내는 Message는 서로 상반되게 통신한다.

Figure 3: SimpleMQ Broker SSL Termination Diagram



Contact Sales


sales@coressentkorea.co.kr

TEL : 02-522-2247

Coressent Korea


Copyright © 2015 Coressent Korea All rights reserved.