5. 4
HyperText Transfer Protocol
Szöveges1 költséges
Hardver igény
Kliens-szerver
Visszahívás nehézkes2
1: HTTP/2 bináris
2: Websocket
Ismerjük
Egyszerű fejlesztés
Egyszerű hibakeresés
Egyszerű üzemeltetés
Mindenhol támogatott
6. 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)
7. 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
8. 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;
}
MQTT (Message Queue Telemetry Transport, 1999)
Designed for:
- Small code footprint
- Limited network bandwidth
Publish-subscribe
Pl. Facebook Messenger
AMQP (Advanced Message Queueing Protocol, 2012)
Application layer protocol for
Message-oriented middleware
XMPP: Extensible Messaging and Presence Protocol
Jabber, 1999
Szöveges, XML alapú
Nincs QoS
Nincs end-to-end titkosítás
QoS:
At most once (0)
At least once (1)
Exactly once (2).
Előnyök:
Tetszőleges számú publisher és subscriber lehet
Csak egyirányú kommunikáció, fire and forget (ACK helyett QoS)
Nem csak adat, hanem parancs kommunikációra is alkalmas
Lazán csatolt rendszer
Biztosan a klasszikus webes megoldás az optimális?
Nem jobb a publisher-subscriber modell?
Melyik létező megoldást válasszuk?