Το HTTP είναι το πιο ευρέως χρησιμοποιούμενο και δημοφιλές πρωτόκολλο. Αλλά το MQTT έχει κερδίσει γρήγορα έδαφος τα τελευταία χρόνια. Όταν συζητάμε για την ανάπτυξη IoT, οι προγραμματιστές πρέπει να επιλέξουν μεταξύ αυτών των δύο.
Το MQTT εστιάζει στα δεδομένα ενώ το HTTP στα έγγραφα. Το HTTP είναι ένα πρωτόκολλο αιτήματος-απόκρισης για υπολογισμούς πελάτη-διακομιστή, το οποίο δεν είναι πάντα βελτιστοποιημένο για κινητές συσκευές. Με αυτούς τους όρους, τα κύρια πλεονεκτήματα του MQTT είναι: ελαφρύ (το MQTT μεταφέρει δεδομένα με τη μορφή συστοιχιών byte) και το μοντέλο δημοσίευσης/εγγραφής, γεγονός που καθιστά το MQTT πολύ κατάλληλο για συσκευές με περιορισμένους πόρους και βοηθά στην εξοικονόμηση μπαταρίας. Επιπλέον, το μοντέλο δημοσίευσης/εγγραφής επιτρέπει στους πελάτες να είναι ανεξάρτητοι μεταξύ τους, αυξάνοντας έτσι την αξιοπιστία του συνολικού συστήματος. Σε περίπτωση αποτυχίας του πελάτη, ολόκληρο το σύστημα συνεχίζει να λειτουργεί κανονικά.
Υπάρχουν ακόμη πολλά πλεονεκτήματα του MQTT, ως εξής:
1. Χαμηλή επιβάρυνση πρωτοκόλλου, το MQTT είναι μοναδικό στο ότι η κεφαλίδα του ανά μήνυμα μπορεί να είναι τόσο σύντομη όσο 2 byte. Τόσο το MQ όσο και το HTTP έχουν πολύ υψηλότερο κόστος ανά μήνυμα. Με το HTTP, η αποκατάσταση της σύνδεσης HTTP για κάθε νέο μήνυμα αιτήματος συνεπάγεται σημαντικά έξοδα. Οι επίμονες συνδέσεις που χρησιμοποιούνται από τα MQ και MQTT μειώνουν σημαντικά αυτή την επιβάρυνση.
2. Η ανοχή σε ασταθή δίκτυα, το MQTT και το MQ μπορούν να ανακάμψουν από βλάβες όπως η αποσύνδεση και δεν υπάρχει περαιτέρω απαίτηση κωδικού. Ωστόσο, το HTTP δεν μπορεί να το κάνει αυτό εγγενώς, απαιτώντας από τους πελάτες να δοκιμάσουν ξανά την κωδικοποίηση, κάτι που μπορεί να προσθέσει προβλήματα ανικανότητας.
3. Χαμηλή κατανάλωση ενέργειας, το MQTT είναι ειδικά σχεδιασμένο για χαμηλή κατανάλωση ενέργειας. Το HTTP δεν σχεδιάστηκε για να το λαμβάνει αυτό υπόψη, αυξάνοντας έτσι την κατανάλωση ενέργειας.
4. Οι πελάτες με εκατομμύρια συνδέσεις, στη στοίβα HTTP, η διατήρηση εκατομμυρίων ταυτόχρονων συνδέσεων απαιτεί πολλή δουλειά για την παροχή υποστήριξης. Ενώ αυτή η υποστήριξη είναι δυνατή, τα περισσότερα εμπορικά προϊόντα έχουν βελτιστοποιηθεί για να χειρίζονται επίμονες συνδέσεις αυτής της τάξης μεγέθους. Η IBM προσφέρει το IBM MessageSight, έναν διακομιστή στήριξης σε rack που έχει δοκιμαστεί για να χειρίζεται έως και 1 εκατομμύριο ταυτόχρονα συνδεδεμένες συσκευές μέσω MQTT. Αντίθετα, το MQTT δεν έχει σχεδιαστεί για μεγάλο αριθμό ταυτόχρονων πελατών.
5. Push notifications, πρέπει να είστε σε θέση να παραδίδετε ειδοποιήσεις στους πελάτες εγκαίρως. Για αυτό, πρέπει να χρησιμοποιηθεί κάποιο είδος περιοδικής δημοσκόπησης ή ώθησης. Το push είναι η καλύτερη λύση από την άποψη της μπαταρίας, του φορτίου συστήματος και του εύρους ζώνης.
Η επιχείρησή μας μπορεί να χρειαστεί να στείλει ευαίσθητες πληροφορίες χωρίς τη μεσολάβηση τρίτου μέρους. Αυτό μειώνει την αξία των λύσεων ειδικά για το λειτουργικό σύστημα (όπως το Apple iOS, ειδοποιήσεις Google Play) ως τον κύριο μηχανισμό μεταφοράς.
Το HTTP επιτρέπει μόνο μία μέθοδο που ονομάζεται COMET, χρησιμοποιώντας επίμονα αιτήματα HTTP για την εκτέλεση ωθήσεων. Αυτή η προσέγγιση είναι δαπανηρή τόσο από πλευράς πελάτη όσο και από πλευράς διακομιστή. Τόσο το MQ όσο και το MQTT υποστηρίζουν την προώθηση ως θεμελιώδες χαρακτηριστικό τους.
6. Οι διαφορές στις πλατφόρμες πελατών, τόσο οι πελάτες HTTP όσο και οι πελάτες MQTT έχουν εφαρμοστεί σε μεγάλο αριθμό πλατφορμών. Η απλότητα του MQTT βοηθά στην εφαρμογή του MQTT σε επιπλέον πελάτες με πολύ λίγη προσπάθεια.
7. Ανοχή σφαλμάτων τείχους προστασίας, ορισμένα εταιρικά τείχη προστασίας περιορίζουν τις εξερχόμενες συνδέσεις σε ορισμένες καθορισμένες θύρες. Αυτές οι θύρες συνήθως περιορίζονται σε HTTP (θύρα 80), HTTPS (θύρα 443) κ.λπ. Το HTTP μπορεί προφανώς να λειτουργήσει σε αυτές τις περιπτώσεις. Το MQTT μπορεί να τυλιχθεί σε μια σύνδεση WebSockets που εμφανίζεται ως αίτημα αναβάθμισης HTTP, επιτρέποντας τη λειτουργία σε αυτές τις περιπτώσεις. Το MQTT δεν επιτρέπει αυτό το μοτίβο.
Σε σύγκριση με το HTTP, το πρωτόκολλο MQTT εγγυάται υψηλό ρυθμό μεταφοράς. Υπάρχουν τρία επίπεδα ποιότητας υπηρεσιών:
Α. Το πολύ μία φορά: Προσπαθήστε να εξασφαλίσετε την παράδοση.
Β. Τουλάχιστον μία φορά: Βεβαιωθείτε ότι το μήνυμα ηλεκτρονικού ταχυδρομείου αποστέλλεται τουλάχιστον μία φορά, αλλά το μήνυμα μπορεί επίσης να παραδοθεί περισσότερες από μία φορές.
Γ. Μόλις μία φορά: Βεβαιωθείτε ότι κάθε μήνυμα λαμβάνεται μόνο μία φορά από το άλλο μέρος.
Στην πραγματικότητα, το MQTT χρησιμοποιείται ευρέως. Μπορείτε να βρείτε MQTT σε σχεδόν οποιαδήποτε μεγάλη εταιρεία υλικού και Διαδικτύου, όπως Facebook, BP, alibaba, baidu κ.λπ.
Λόγω των διαφόρων τεχνικών πλεονεκτημάτων του ίδιου του MQTT, όλο και περισσότερες εταιρείες τείνουν να επιλέγουν Το MQTT ως το τυπικό πρωτόκολλο για την επικοινωνία προϊόντων IoT. Ως εκ τούτου, οι μηχανικοί ανακάλυψαν σταδιακά ότι το πρωτόκολλο MQTT έχει ορισμένες λειτουργίες που πρέπει να βελτιωθούν εάν πρόκειται να διατεθεί στο εμπόριο σε μεγάλη κλίμακα. για παράδειγμα:
1. Δεν υπάρχει πλήρες SDK και διαφορετικά ετερογενή τερματικά χρειάζονται αντίστοιχα πακέτα λογισμικού SDK για να επικοινωνούν με τον διακομιστή MQTT. Για παράδειγμα, για να επιτευχθεί διασύνδεση μεταξύ MCU, Linux, Android, IOS, WEB κ.λπ., πρέπει να απαιτούνται διαφορετικά πακέτα SDK.
2. Το αρχείο και το AV δεν υποστηρίζονται. Σε ορισμένα σενάρια εφαρμογών, οι πληροφορίες που θα μεταδοθούν ενδέχεται να μην περιορίζονται σε οδηγίες, όπως σήματα ήχου και βίντεο, τα οποία πρέπει να επικοινωνούν μέσω του αρχείου και του AV.
3. Δεν υποστηρίζει την ενοποίηση με HTTP τρίτου μέρους. Αν καιh το πρωτόκολλο MQTT είναι ανώτερο από το συνηθισμένο πρωτόκολλο HTTP, οι διακομιστές WEB που βασίζονται στο παραδοσιακό πρωτόκολλο HTTP εξακολουθούν να καταλαμβάνουν την κύρια αγορά, επομένως αυτοί οι διακομιστές πρέπει να συνειδητοποιήσουν τη διασύνδεση με το πρωτόκολλο MQTT για να μειώσουν τις αναβαθμίσεις Το κόστος είναι επίσης σημαντικό.
< br/>4. Δεν υποστηρίζει εξισορρόπηση φορτίου. Προκειμένου να αποφευχθούν επιθέσεις υψηλής ταυτόχρονης χρήσης και κακόβουλων επιθέσεων, είναι επίσης απαραίτητος ένας διακομιστής εξισορρόπησης φορτίου.
5. Δεν υποστηρίζει τη διεπαφή διαχείρισης χρήστη. Είναι ιδιαίτερα σημαντικό για τους χρήστες να αναλύουν δεδομένα συμπεριφοράς συσκευών, κάτι που είναι αναπόφευκτη απαίτηση του Industry 4.0 και της εποχής των μεγάλων δεδομένων.
6. Δεν υποστηρίζει μηνύματα εκτός σύνδεσης και αντιμετωπίζει το πρόβλημα ότι ο διακομιστής MQTT χάνει τις πληροφορίες ελέγχου της συσκευής αφού η συσκευή είναι εκτός σύνδεσης.
7. Η επικοινωνία από σημείο σε σημείο δεν υποστηρίζεται και υιοθετείται το τυπικό πρωτόκολλο MQTT. Θεωρητικά, η επικοινωνία από σημείο σε σημείο μπορεί να πραγματοποιηθεί μέσω αμοιβαίας συνδρομής, αλλά η λογική είναι σχετικά περίπλοκη και υπάρχουν ανησυχίες για την ασφάλεια της συσκευής. Όταν η συσκευή Β και η συσκευή Γ αφορούν το ίδιο θέμα, η συσκευή Α δεν μπορεί να γνωρίζει εάν είναι η συσκευή Β ή η συσκευή Γ που έστειλε το μήνυμα και είναι επίσης πιθανό το μήνυμα να υποκλαπεί από τη συσκευή D.
8. Δεν υποστηρίζει ομαδική επικοινωνία και διαχείριση ομάδας και αντιλαμβάνεται τη διαχείριση των μελών της ομάδας και τα μέλη της ομάδας μπορούν να επικοινωνούν μεταξύ τους. Στο σενάριο όπου μια συσκευή ελέγχεται από πολλά άτομα ή πολλές συσκευές ελέγχονται από ένα άτομο, είναι ιδιαίτερα χρήσιμο.
Contact: Adam
Phone: +86 18205991243
E-mail: sale1@rfid-life.com
Add: No.987,High-Tech Park,Huli District,Xiamen,China