tervezz iot architektúrát, avagy élet egy http nélküli világban

16
Tervezz IoT architektúrát, avagy élet egy HTTP nélküli világban Balássy György [email protected]

Upload: gyoergy-balassy

Post on 20-Jul-2015

59 views

Category:

Software


5 download

TRANSCRIPT

Page 1: Tervezz IoT architektúrát, avagy élet egy HTTP nélküli világban

Tervezz IoT architektúrát,

avagy élet egy HTTP nélküli világban

Balássy György

Gyorgy.Ba [email protected]

Page 2: Tervezz IoT architektúrát, avagy élet egy HTTP nélküli világban

1

Alapprobléma

InternetThing Alkalmazás

Adat

Parancs

Page 3: Tervezz IoT architektúrát, avagy élet egy HTTP nélküli világban

2

Alapprobléma

InternetThing Thing

Adat

Parancs

Page 4: Tervezz IoT architektúrát, avagy élet egy HTTP nélküli világban

3

Adatgyűjtés

HTTPThing Webszerver

POST

GET

Page 5: Tervezz IoT architektúrát, avagy élet egy HTTP nélküli világban

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

Page 6: Tervezz IoT architektúrát, avagy élet egy HTTP nélküli világban

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)

Page 7: Tervezz IoT architektúrát, avagy élet egy HTTP nélküli világban

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

Page 8: Tervezz IoT architektúrát, avagy élet egy HTTP nélküli világban

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;

}

Page 9: Tervezz IoT architektúrát, avagy élet egy HTTP nélküli világban

8

Protobuf folyamat

.proto.cpp

.hprotoc

Page 10: Tervezz IoT architektúrát, avagy élet egy HTTP nélküli világban

9

Publish-subscribe

Publisher Broker Subscriber

Subscriber

Page 11: Tervezz IoT architektúrát, avagy élet egy HTTP nélküli világban

10

Szabály alapú cselekvés

PublisherSubscriber

(Rule 1)Broker

Subscriber(Rule 2)

E-mail

SMS

Page 12: Tervezz IoT architektúrát, avagy élet egy HTTP nélküli világban

11

Visszacsatolás

PublisherSubscriber

(Rule 1)Broker

Subscriber(Rule 2)

SMS

Page 13: Tervezz IoT architektúrát, avagy élet egy HTTP nélküli világban

12

Mire van szükségünk?

Cloud

(MQTT broker)

Device

(MQTT client)

App

(MQTT client)

Device

(MQTT client)

App

(MQTT client)

Page 14: Tervezz IoT architektúrát, avagy élet egy HTTP nélküli világban

13

Demo

Node.js app

(mosca)

Node.js app

(mqtt.js)

Node.js app

(mqtt.js)

Page 15: Tervezz IoT architektúrát, avagy élet egy HTTP nélküli világban

14

Page 16: Tervezz IoT architektúrát, avagy élet egy HTTP nélküli világban

15

http://speakerscore.com/iot2

Köszönöm a figyelmet!

https://github.com/balassy/mqtt-demo