IoT 101: Internet of Things’e Genel Bakış
Son zamanlarda adını sıkça duyduğumuz, yakın gelecekte ise hayatımızda çok önemli yer teşkil edecek olan bir kavram var: IoT, yani Internet of Things. Kimileri bunu “Nesnelerin İnterneti” olarak çevirse de kimileri de birebir çevirisini yani; “Şeylerin İnterneti” şeklinde kullanıyor. Ben ise hem bu karmaşadan uzak durmak hem de daha karizmatik durduğunu düşündüğüm için IoT ifadesini kullanmayı tercih ediyorum.
IoT nedir sorusunun cevabı bugüne kadar birçok mecrada paylaşıldı. Bu linkten hızlı ve kolay anlaşılır bir IoT nedir yazısı okuyabilir, bu linkten de IoT’ye ciddi yatırımlar yapan Intel’in IoT ile ilgili güzel bir videosunu izleyebilirsiniz. Bir cümle ile özetlemek istersek; nesnelerden toplanan verilerin anlamlı bir şekilde yorumlanıp, değerlendirilip ve en sonunda bize bir çıktı üretip, anlık olarak karar verilmesi aşamalarının bütününe IoT diyebiliriz.
Elbette bu tanımın altını uzun uzadıya doldurabiliriz fakat bu makalede ben “Ne oldu da IoT teknolojisi son zamanlarda bu kadar popülerleşti?” ve “Neden dünyanın en büyük şirketleri yatırımlarını bu teknolojiye yapmaya karar verdi?” sorularını yanıtlamaya çalışacağım.
Nedenleri şu başlıklar altında toplayabiliriz:
IPv6’nın ortaya çıkması
Cisco’nun yayınladığı rapora göre; 2020’de 50 milyar cihaz internete bağlı hale gelecek. Bu rakamı IPv6 ortaya çıkmadan söylemek pek mümkün olmazdı çünkü mevcut kullandığımız IPv4 teknolojisinin limiti artık sona yaklaştı. IPv6 ile birlikte rivayet odur ki dünyadaki her birim metrekareye bir statik ip verilse bile bu sınır doldurulamıyormuş. Bakalım insanoğlu bununla yetinecek mi?
Veri taşıma ve saklama maliyetleri
Bir konuda hem fikiriz ki bulut teknolojisinin gelişmesiyle veri saklamak artık o kadar da maliyetli bir şey değil. Bununla beraber 3G ile birlikte başlayan ve yakın gelecekte 4.5G ve 5G ile devam edecek teknolojiler sayesinde veri taşıma maliyetlerinin de aynı oranda azalması, IoT’nin günlük hayatımızda yer bulmasında en önemli etken.
Veri İşleme Gücü
Bulut bilişimi sadece veri saklama yeri olarak değil aynı zamanda ortak bir fikir ürettiğimiz platform olarak düşünmek gerekir. Bunun için bir çok bulut bilişim çözümü sunan firmaların “machine learning” uygulamaları mevcut. Bu uygulamalar sensör verilerini sakladığımız veritabanından (ister ilişkisel bir veri tabanı, ister No-SQL), verileri okuyup, analiz ederek, size bir çıktı üretiyorlar ve bunu milisaniyeler içinde gerçekleştirebiliyor. Sensörlerden alınan verileri eş zamanlı olarak işleyip, anlık olarak sizin yerinize karar veren bir sistem, IoT’nin olmazsa olmazlarından. Topladığınız verileri anlamlı bir hale getirip, çıktı üretemiyorsanız yanlış yoldasınız demektir.
Tabii bu listeye bir çok farklı teknolojik geliştirmeler eklenebilir. Bana göre bu üç teknolojik gelişme, IoT alanında geliştirilen uygulamaların temelini oluşturan ve önünü açan geliştirmeler.
Yukarıdaki üç teknolojik gelişmeye ek olarak bir de sosyolojik bir tespit eklemek istiyorum. Yaptıklarımızı paylaşma isteğimiz; artık firmalar gittiğimiz yeri, yediğimiz yemeği, izlediğimiz filmi, en son okuduğumuz kitabı vb. verilerden daha fazlasını istiyorlar. Sabahları kaçta kalktığımızı, evimizin sıcaklığını, hangi gün ne tür sportif faaliyetlerinde bulunduğumuzu gibi. Kısaca sadece bizim paylaştıklarımızı değil, direkt hayatımıza etki eden verilere de sahip olmak istiyorlar. Sahip olup ne yapacaklarını size bırakıyorum.
Yazıya, işin biraz da arka tarafında neler oluyor, onları inceleyerek devam etmek istiyorum.
IoT Teknolojisi’nde genel olarak hangi katmanlar var? Sorumlulukları neler? Mevcut çözümler neler? Bu soruların cevaplarını aşağıdaki resim üzerinden giderek verelim;
Resmi büyütmek için üzerine tıklayabilirsiniz
Yukarıdaki mimariye baktığımızda en altta donanım katmanı mevcut. Bu katmanın bileşenlerinden birkaç tanesini inceleyelim;
Donanım katmanında sensörler, mikroişlemciler, Wifi, USB.. gibi iletişim donanımları bulunduğu gibi bu cihazlar üzerinde çalışacak işletim sistemleri de bulunmakta. İşletim sistemleri konusunda da yakın zamanda ciddi rekabetler olduğunu göreceğiz. Microsoft’un Raspberry Pi üzerinde çalışacak Windows 10 IoT’yi duyurmasının ardından Google’da Brillo adında Android’in IoT versiyonunun çıkardığını duyurmuştu.
Yine iletişim katmanında mesafe ve bant genişliğine göre farklı bileşenleri görebiliyoruz. Bluetooth, RFID, Wifi gibi. Yazılım katmanında ise yine önemli kıstaslar var; verilerin cihaz üzerinde mi yoksa bulut üzerinde mi saklanacağı, middleware ve veritabanı olarak ne gibi bileşenlerin kullanılması gerektiği önemli detaylar.
Yukarıdaki resmi biraz daha genişletecek olursak karşımıza aşağıdaki gibi bir resim ortaya çıkacaktır:
Resmi büyütmek için üzerine tıklayabilirsiniz
IoT görüldüğü üzere tek bir uygulamadan ya da disiplinden meydana gelmiyor. Elektronik mühendisi, bilgisayar mühendisi, network uzmanı, güvenlik uzmanı, endüstriyel ürün tasarımcısı gibi farklı disiplinden insanların bir arada çalışmasını gerektiren bir teknoloji.
Peki biz yazılımcılar bu teknolojinin neresindeyiz?
Bu tamamen bu zamana kadar ki yapmış olduğunuz çalışmalara göre vereceğiniz bir karar olacaktır. Web uygulamaları geliştiren bir yazılımcıysanız sizin için değişen tek şey, bir textbox’dan veriyi almayacaksınız, sensörlerden gelen verileri alıp veritabanına yazacaksınız. (tabii bu veritabanı da NoSQL olabilir)
Donanım katmanında da yazılım geliştirebilirsiniz. Arduino, RaspberryPi, Intel Gallieo gibi kartlar da C, C++ ve hatta yakın zamanda Microsoft’un duyurduğu Universal App sayesinde RaspberryPi’da C# ile uygulama geliştirebilirsiniz. Tabii burada sınırsız bir kaynak yok, içinde bulunduğumuz ortamlara göre (web ve masaüstüne göre) biraz daha farklı ama kesinlikle eğlenceli.
NOT: Denemediyseniz bir butona basınca yanan led uygulamasını yapmanızı kesinlikle öneririm.
Özetlemek gerekirse, IoT yaptığımız işin “şeklini” değiştirecek gibi duruyor. Biz bunun neresinde yer alacağız, buna karar vermemiz gerekiyor. Bu zamana kadar edindiğimiz tecrübeleri, yukarıdaki katmanlardan bir ya da birkaçında rahatlıkla kullanabiliriz. Bence çok zevkli bir teknoloji, insanlara dokunan yanı olduğu için de beni ayrıca heyecanlandıran bir teknoloji.
4 Comments
Hakan
23 Mart 2016 at 09:59Merhaba, Güzel bir yazı olmuş. Faydalandım yalnız Intel video linki hatalı olmuş.
ramazan
14 Nisan 2016 at 12:50makinelerle konuşabilmek için c++ öğrenmek mantıklı olacak diyorsunuz yani.
İsmail
27 Ağustos 2016 at 13:12Makinelerle konuşmak için C dili büyük çoğunlukta yeterli olacaktır.Ancak yer yer assembly kullanimida gerekiyor.B u sebeple C diline ağırlık verirseniz herşey daha kolay olacaktır.
Omer Yilmax
8 Mayıs 2016 at 15:02Tesekkurler guzel bir yazi. Emeginize saglik