IoT Platformu Fizibilitesi

IoT(Internet of things)(Nesnelerin İnterneti) cihazların internet üzerinden çeşitli haberleşme protokolleri sayesinde birbirleri ile haberleşmesi, veri alışverişi yapabilmesi ve bu sayede internete bağlı olan diğer tüm cihazlarla iletişim kurarak akıllı bir ağ oluşturması olarak tanımlanmaktadır. IoT platformu ile farklı cihazlardan/bileşenlerden alınan verilerin tek bir merkezde toplanması, bileşenler arası iş kuralı temelli entegrasyonun sağlanması, merkezi yazılım üzerinden tüm sistemlerin yönetimi amaçlanmaktadır.

IoT platformu, sahadaki cihazlar ve diğer yazılım sistemleri ile standart protokol ve servisler üzerinden haberleşebilecek, ölçeklenebilir bir mimari ile tasarlanacaktır. Platformların geliştirilmesindeki bir diğer temel amaç, geliştirilen IoT çözümlerindeki cihaz ve sunucu iletişimlerinde standart protokollerin çoğunlukla kullanılmayışıdır.

IoT platformu ile yerel ya da global IoT çözüm üreticileri ile entegre edilebilir; ayrıca  IoT uygulamalarındaki standartlaşmanın sağlanması, uyumsuzluk ve güvenlik açıkları gibi kronikleşmiş sorunların giderilmesi hedeflenmektedir.

Genel topoloji ve ekosistem aşağıdaki bileşenlerden oluşmaktadır;

  • Sahada kurulu uç cihazlar(Sensör, kamera vs.)

  • Uç cihazlardan gelen verileri toplayan toplayıcı(Gateway)

  • WAN(Wide Area Network): xDSL , FTTX veya GSM

  • IoT platformu

  • Uygulamalar ve Enterprise IT sistemleri(ERP, CRM, Dikey IoT uygulamaları, Billing, İş Gücü Yönetimi, M2M Platformu vs)


Platformun genel mimarisi aşağıdaki gibidir;



 

IoT Platformlarında Kullanılan Haberleşme Protokolleri



  • MQTT




MQTT (Message Queuing Telemetry Transport), yayınlama ve abone olma mantığına dayanan telemetry mesajlaşma protokolüdür. Makineler arası haberleşmede kullanılacak şekilde tasarlandığı için küçük paketler kullanarak haberleşmektedir. MQTT Hub merkezli bir iletişim ağına sahiptir. Tüm cihazlar verileri toplayan bir sunucuya bağlıdırlar. Veri kaybı istenmediğinden MQTT TCP üzerinden çalışır ve basit ve güvenilir bir iletim sağlar.

MQTT’nin  özellikleri:
  •  Protokol paketlerinin küçük oluşu networkteki veri trafiğini azaltmaktadır. (En küçük paket 2 byte’dan oluşmaktadır.) Network bu sayede daha verimli kullanılabilmektedir.

  •  Sistemde 10k publisher ve subscriber birimleri yer alabilmektedir.

  • Çift taraflı asenkron mesajlaşma sağlamaktadır. (Http’de serverdan veri alınabilmesi için sürekli poll edilmesi gerekmektedir.)

  • Sınırlı (ram, işlemci, battery v.s.) kaynaklı birimlerde kullanımı uygundur.

  • Subscriber ve publisher birimleri için kullanılabilecek düşük boyutlu (30-60kb) bir çok dilde (c, java vs) açık kaynak kütüphaneler mevcuttur.


Benzer protokollerden ayrılan en önemli özelliği ise hafif (lightweight) olması ve bu sayede bir çok platformda rahatlıkla kullanılabilmesidir

Uyarlanması basit olan bu protokol, az maliyetli bir ağ yapısı ile düşük veri trafiği sayesinde bant genişliğini çok verimli kullanmaktadır.

  • REST




REST(Representational State Transfer)  Client&Server mantığında http üzerinden POST ve GET ile veri iletişi sağlayan bir protokoldür. Web tabanlı uygulamalarda kullanılır. Genelde cloud’da hazır olan veriyi almak ve cihazları kontrol etmek için cloud’a emir vermek için kullanılır.

Esnek bir yapıya sahiptir. REST ile veri alışverişini JSON, XML, CSV ve HTML gibi farklı formatlarda yapabilir. Belli bir iletişim standardı yoktur, her bir REST sunucusu ile iletişim kurmak için farklı yöntemler kullanılması gerekebilir.

  • XMPP




Orijinal adı Jabber olan XMPP(Extensible Messaging and Presence Protocol) internetteki iki ucun herhangi bir yapısal bilgiyi birbirleri arasında karşılıklı ve neredeyse eş zamanlı aktarmalarına olanak sağlayan açık bir XML protokolüdür. Birden fazla birim(kullanıcı, cihaz vs.) arasında mesaj, dosya ve durum iletişimini gerçekleştirir. Kullanıcılar arasında sadece metin ya da durum bilgisini ulaştırmayıp aynı zamanda gerçek zamanlı olarak ses, görüntü ulaştırabilir. Diğer taraftan kullanıcıların dosya paylaşımı yapabilmesine olanak tanır.

Merkezi ya da herhangi bir yere bağlı değildir. E-posta mimarisine benzer. Kurulan XMPP sunucusu, isteğinize göre dış dünyaya kapalı olabilir ve diğer XMPP ağlarıyla bağlantı kurmayabilir. Tamamen kendi ağınız içerisinde çalışacak şekilde yapılandırılabilir. XMPP uygulamaları XMPP’nin sunduğu altyapı sayesinde mesajlaşmanın ötesinde, ağ yönetmek, dosya ve içerik paylaşmak, uzaktaki sistemlerin durumunu görüntülemek, oyun oynamak için de kullanılabilir.

Çok fazla port aralığı kullandığı için çeşitli güvenlik zafiyetlerine sebep olabilir. Özellikle dosya paylaşımı ve veri aktarımında istemciler arasında virüs, trojan vb. zararlı dosyaların bulaşma ihtimali olasılığı bulunmaktadır. XMPP sunucular dışarıya açık ise yüzlerce, belki binlerce kullanıcının aynı anda söz konusu port aralıkları üzerinden saldırı gerçekleştirmesi muhtemel bir durumdur.

  • AMQP




AMQP (Advanced Message Queuing Protocol) queue yapılarına sahip broker’lar aracığıyla publisher&subscriber’lara hizmet veren, büyük verilerle iletişim sağlayabilen müşteri odaklı bir protokoldür. Banka endüstrisiyle ortaya çıkmış mesaj-merkezli özel bir protokoldür ve sıraya konulmuş binlerce iş emrini güvenle yerine getirir.  AMQP protokolü mesaj verilerini kaybetmemek üzerine odaklanmıştır. AMQP protokolü güvenilir noktadan noktaya bir bağlantı sağladığı için TCP üzerinden çalışır. Hatta uçbirimler her bir ileti için mesajı aldıklarına dair bir onay bildiriminde bulunmalıdır. Protokol aynı zamanda çok-fazlı dizi işleme özelliğine sahip opsiyonel bir iş emri modunu da tanımlar. Köklerine bakıldığında AMQP tüm mesajları takip etmeye odaklanmış, her bir mesajın hatadan bağımsız, istenildiği şekilde eriştiğinden emin olmaya çalışan bir protokoldür.

  • DDS




DDS (Data Distribution Service) direkt olarak cihazlardan toplanan verinin yine cihazlar tarafından kullanmasına olanak sağlayan bir standarttır. Cihazlar arasında yüksek performanslı veri dağıtımı sağlayabilen bir yapıya sahiptir. Makinalar diğer birçok cihazla karmaşık yollardan haberleşmeye ihtiyaç duyalar. Bu sebeple TCP'nin basit ve güvenilir noktadan noktaya bağlantıları bu ihtiyaçlar karşısında çok kısıtlayıcıdır. Bunun yerine DDS standardı hassasiyeti yüksek servis-kalitesi (QoS) kontrolü, çoklu haberleşme, ayarlanabilir güvenilirlik ve yedeklilik sunar. DDS güçlü filtreleme özelliklerine sahiptir, hangi verinin nereye gideceği -nasıl yayılacağı- seçebilir, burada "nereye" sorusunun karşılığı aynı anda binlerce cihaz olabilir. DDS merkezde bulunan bir Hub üzerinden haberleşen makinalar için kesinlikle uygun değildir. Bunun yerine DDS direkt olarak ilişkisel veri modeliyle cihazdan cihaza veri yolu(bus) ile haberleşme sağlar.
  • Sonuç

XMPP: Chat uygulamaları için geliştirilmiş bir protokol. Mesaj alışverişi, kontak bilgisi paylaşımı ve presence gibi özellikleri var. IoT’de yaygın olarak kullanılmıyor.

AMQP: Mesaj tabanlı middleware’ler için geliştirilmiş bir protokol. IoT’de cihaz seviyesinde yaygın olarak kullanılmıyor.

DDS: OMG tarafından geliştirilmiş ilk surumu 2003 senesinde yayınlanmış bir haberleşme protokol. IoT’de yaygın olarak kullanılmıyor.

MQTT: IBM ve Eurotech katkılarıyla geliştirilmiş, hafif bir mesajlaşma protokolü, sensörler için geliştirilmiş. IoT’de en yaygın olarak kullanılan protokol.

OPC UA: Endüstriyel otomasyonda kullanılan yaygın bir standart. PLC gibi IA sistemleri ile haberleşmeyi sağlıyor. Oldukça güvenlikli.

Bunlardan sadece MQTT düşük kapasiteli cihazlardan haberleşme sağlamak için tasarlanmış bir protokol. Diğerleri vaktinde farklı amaçlarla geliştirilmiş, bugün IoT’ye uyarlanmaya çalışılan protokollerdir. Bunların aralarında en açık olanı MQTT; birçok açık kaynak kodlu kütüphane ve sunucu yazılımı bulunmakta. Cihaz üreticileri neredeyse 1 günlük bir çalışmayla bu protokolü destekleyecek durumda.

Uygulama katmanında REST protokolünün tercih edilmesinin en önemli sebebi, REST’in birçok platformda, ekstra kütüphaneye ihtiyaç duymadan çalışabilmesidir. Ayrıca diğer birçok servis mimarisine göre daha kolay kullanılabilir, öğrenilebilir ve uygulanabilirdir. Bunların yansıra esnek bir yapıya sahip olması yani veri alışverişini JSON, XML, CSV ve HTML gibi farklı formatlarda yapabilmesi tercih sebebi olmuştur.

 

Yorumlar

Bu blogdaki popüler yayınlar

TEDAŞ’ın Tarihi ve Günümüzdeki Konumu

Tek ve Çok Zamanlı Tarife Nedir?

Elektrik Üretim Anonim Şirketi