IoT Cihazlarda HTTP veya MQTT Hangisini Seçmeli?



 

Merhaba bu yazıyı şuradaki blogdan esinlenerek yazdım. Okuma isterseniz link burada.


HTTP Hyper Text Transfer Protocol kelimelerinin baş harflerinden oluşmaktadır. Türkçeye Hiper Metin Transfer Protokolü olarak çevrilebilir. HTTP bir Sunucu (Server) ve birde İstemci (Client) yapısı ile çalışmaktadır. Client sunucuya 80 numaralı port üzerinden istek (Request) yapmaktadır. Sunucuda aynı port üzerinden tepki dönüş (Response) verir. Bağlantı request ile başlar ve response ile son bulur.


MQTT ise (Message Queuing Telemetry Transport) kelimelerinin baş harflerinden oluşur. Türkçe karşılığı olarak "Mesaj Kuyruğa Alma Telemetri Aktarımı" yani kablolu ve kablosuz ağlar üzerinden sistemlerin uzaktan  izlenmesi ve kontrol  edilmesi için geliştirilen hafif (Lightweight) TCP/IP protokolüdür.


IoT cihazlarımızdan veri almak veya cihazlara mesaj komut göndermek için HTTP veya MQTT de kullanılabilmektedir. Başta verdiğim Cloud Google'ın makalesinde ikisi arasında test gerçekleştirilmiş ve sonuçlar verilmiştir.


Meşe Bilişim olarak geliştirdiğimiz IoT cihazlarda 2 yöntemide kullanıyoruz. Burada amaç hangi yöntemi seçmemiz gerektiğini ortaya çıkarıyor. 


Örneğin bir sunucu odasındaki sıcaklık değerini görmek 15 sn. de bir görmek izlemek istediğimizi düşünelim. Burada sürekli bir veri istenmemekte, dakikada 4 veri almak yeterli gelmektedir. Bu senaryoda HTTP protokölünün seçilir.


Diğer örneğimizde ise yine bir sunucu odasındaki sıcaklık değerini anlık olarak görmek isteyelim. Bu durumda sürekli bir veri akışı gerekli olduğundan MQTT protokülü seçilir.


Bu 2 bağlantı sırasında klimayıda çalıştırmak istediğimizi varsayarsak HTTP veya MQTT ile de bunu yapmak mümkündür. Ne demiştik, HTTP Request ve Response yöntemi ile çalışmaktaydı. Sunucuya sıcaklık değerini bildirdiğimizde sunucu sıcaklık değerini alır ve daha önce belirlenen değerin üzerine çıktı ise Response olarak "klimayı aç" komutunu response olarak döndürür ve IoT cihazımız klimayı açacak röleyi çalıştırabilir. MQTT de de Abone ol (Sunscriber) ve Yayınla (Publish) yöntemi ile aynı işlem gerçek zamanlı olarak yapılabilir. 

HTTP de sunucuya veri göndermek iiçin yukarıdaki örnekte 15 sn. gibi bir zaman belirlemiştik. Bunun sebebi server a her istek gidip döndüğünde arada oluşan byte cinsinden veri trafiğidir. 



Tabloyu incelediğimizde HTTP veri aktarımında 5546 Byte lık veri trafiği oluşmuştur.

MQTT de ise 6336 Byte lık veri trafiği oluşmuştur. Burada MQTT daha fazla veri trafiği oluşturmaktadır. Sebebi Test sırasında MQTT bağlantısı sürekli açılıp kapatılarak HTTP ye benzetilmeye çalışılmıştır. Yani sürekli soket ile bağlı olan IoT cihaz daha az trafik oluşturacaktır.


Sonuç olarak anlık sürekli veri akışı isteniyorsa MQTT, belirli bir zaman içerisinde veri alışverişi isteniyorsa HTTP protokülü seçilir.


İyi çalışmalar.






Yorum Gönder

Daha yeni Daha eski