Upload
gyoergy-balassy
View
59
Download
5
Embed Size (px)
Citation preview
Tervezz IoT architektúrát,
avagy élet egy HTTP nélküli világban
Balássy György
Gyorgy.Ba [email protected]
1
Alapprobléma
InternetThing Alkalmazás
Adat
Parancs
2
Alapprobléma
InternetThing Thing
Adat
Parancs
3
Adatgyűjtés
HTTPThing Webszerver
POST
GET
4
HyperText Transfer Protocol
Szöveges1 költséges
Hardver igény
Kliens-szerver
Visszahívás nehézkes2
1: HTTP/2 bináris2: Websocket
Ismerjük
Egyszerű fejlesztés
Egyszerű hibakeresés
Egyszerű üzemeltetés
Mindenhol támogatott
5
Más protokoll?
XMPP (Extensible Messaging and Presence Protocol, 1999.)
MQTT (Message Queue Telemetry Transport, 1999.)
AMQP (Advanced Message Queueing Protocol, 2012.)
Egyszerűbb
Kisebb hardver igény
Nyílt szabvány implementáció van minden platformra
Broker szolgáltatások:
- Perzisztencia
- Last will
- Quality of Service (QoS)
6
Adatméret csökkentése: Protobuf
Protocol Buffers (Google, 2008.)
Interfész leíró nyelv
Akár RPC-re is
Bináris
Előre-visszafele kompatibilis
Nem önleíró
C++, Java, Python fordítók + közösség
7
Protobuf séma minta: polyline.proto
message Point { required int32 x = 1; required int32 y = 2; optional string label = 3;
}
message Line { required Point start = 1; required Point end = 2; optional string label = 3;
}
message Polyline { repeated Point point = 1; optional string label = 2;
}
8
Protobuf folyamat
.proto.cpp
.hprotoc
9
Publish-subscribe
Publisher Broker Subscriber
Subscriber
10
Szabály alapú cselekvés
PublisherSubscriber
(Rule 1)Broker
Subscriber(Rule 2)
SMS
11
Visszacsatolás
PublisherSubscriber
(Rule 1)Broker
Subscriber(Rule 2)
SMS
12
Mire van szükségünk?
Cloud
(MQTT broker)
Device
(MQTT client)
App
(MQTT client)
Device
(MQTT client)
App
(MQTT client)
13
Demo
Node.js app
(mosca)
Node.js app
(mqtt.js)
Node.js app
(mqtt.js)
14
15
http://speakerscore.com/iot2
Köszönöm a figyelmet!
https://github.com/balassy/mqtt-demo