15 Ocak 2015 Perşembe

Internet of Things (IoT) Nedir?

Selamlar,

Bilişim sektöründe öne çıkan konulardan güncel konulardan birisi olan "Internet of Things" konusunu konuşalım isterim. Nedir, ne zaman ve nasıl kullanılır, amacı nedir gibi sorularınıza yanıt bulabileceğinizi umuyorum.

Bu kavramın en temel noktası ve felsefesi, internete bağlı olan bütün cihazların birbirleri ile konuşması, yani birbirlerine veri aktarımında bulunmasıdır. Bir nevi makinelerarası iletişim kavramından bahsediyorum ancak IoT, M2M'in daha geniş alanlara yayıldığı ve internet protokol ve veri aktarım tekniklerinin de kullanıldığı bir üst kümedir. Gartner'ın yaptığı bir araştırmaya göre 2020 yılına kadar internet üzerinde toplam 26 milyar birbirine bağlı cihaz olacağı tahmin edilmekte. 

IoT kavramına en güzel örnek akıllı şehirlerdir. Evdeki kombinin ve diğer ısıtma/soğutma unsurlarının, çamaşır makinesinin uzaktan yönetilebilmesi, otomobillerin bulut bilişim sistemi ile veri alışverişinde bulunması, akıllı satış makinelerinin ortak sisteme bağlanması ve takip edilmesi gibi projeler IoT kavramına çok yakın projelerdir. Bu projelerin mevcut IP altyapısı ile yapılabilir olması mümkün olduğundan (IPv4, 4.3 milyar tekil adres) yeni nesil IP yapılandırması ile programlanacağı tahmin edilmektedir (IPv6). Bu durumda IoT'nin geleceğinin IPv6 üzerinden geçmek zorunda olacağını rahatlıkla ifade edebiliriz zira Gartner'ın hazırladığı rapora göre bu fikir sağlamlaşmakta.

IoT kavramı içerisinde makinelerarası iletişim dışında büyük veriyi ve çok farklı sektörlerde geliştirilen uygulamaları ve mobil cihazları barındırmaktadır. Bunlara ek olarak mobil cihazların üzerinde geliştirilebilen gömülü sistem ve uygulama geliştirme kavramı da değerlenmektedir. Bu tip sistemlere verilebilecek güzel örnekler arasında bankaların ATM cihazları, kompleks fotokopi cihazları, cep telefonları, medikal cihazlar ve taşınabilir bilgisayarlar bulunmaktadır. Bu sistemleri oluşturabilmek için PC/104 adında bir standart kullanılmaktadır.

IoT kavramı çoktan hayatımıza yerleşmiş durumda. Aynı şekilde makinelerarası iletişim kavramı da. Yukarıda verdiğim örneklere baktığınız zaman pek çoğunun halihazırda hayatımızda gördüğümüz projeler olduğunu görebilirsiniz. Akıllı evler, cep telefonları vb. cihazlar çok uzun zamandır kullanmakta olduğumuz sistemlerdir. Bugün konuşulan sadece IoT'nin genişlemesi değil, bu gelişmeye paralel olarak artan veri miktarları ile diğer öne çıkan kavramlarına birbirleri ile entegre olmasıdır. IoT, büyük veri, bellekiçi veritabanı sistemleri, makinelerarası iletişim, bulut bilişim vb. güncel bütün bilişim sistemleri yaklaşımlarının aynı çatı altında toplanması ve her kavramın kendine özel yeteneklerinin birleştirilmesi söz konusudur.

6 Ocak 2015 Salı

Makinelerarası İletişim, Büyük Veri ve Bulut Bilişim

Selamlar,

Bir süredir işlerimin yoğunluğundan kişisel günlüğümü ihmal ettiğimi düşünerek ve mevcut teknolojik gelişmeler doğrultusunda bir yazı yazmak istedim. Bu yazımda size şu sıralar çok duyduğunuz ama henüz ne olduğunu tam olarak keşfetme şansınızın olmadığı ve/veya eksik olduğu konuları yazmaya çalışacağım. İleride bu konularla ilgili Türkçe kaynak oluşturmaya ve güncel gelişmeleri aktarmaya devam edeceğim.

Her şeyden önce olayların başladığı yıllara dönelim. 1970'li yıllardan beri aynı veritabanı teknolojisini kullanıyoruz, yani ilişkisel modelde tasarlanmış ilişkisel veritabanları. Peki ilişkisel veritabanı ne demek? İlk önce bu soruya yanıt almanız lazım ki sonraki yazacaklarım hakkında aklınızda bir fikirler bütünü oluşabilsin. İlişkisel veritabanı; işletim sistemindeki fiziksel veri blokları içinde saklanan ama veritabanında mantıksal tablolar içinde tutulan veriler üzerine kurulmuş, mantıksal bir ilişki topluluğudur. Bir örnek; elimizde iki tane tablo olsun, birisi satış, diğeri müşteriler. Yapılan her satış, satış tablosuna girilmekte ve müşteriler tablosundaki ilişki vasıtasıyla, müşteri bilgileri de bu satış bilgilerinin içerisine kaydedilmektedir. Her yapılan satış, satış tablosuna kaydedilmekte ancak sadece yeni müşteri geldiği zaman müşterilerin olduğu tabloya veri girişi yapılmaktadır. Bu sistem, doğal olarak veritabanı yazılımını ilişkisel hale getirmektedir.

İlişkisel veritabanının farklı saklama yöntemleri bulunmaktadır. Bunlar hem sistemsel olabileceği gibi yazılımsal olarak da farklılaşmaktadır. Sistemsel olarak disk bazlı ve bellekiçi olarak ayırabileceğimiz gibi, yazılımsal olarak sütun ve satır bazlı olarak ayırmak mümkündür. Bu yazılımlar ilk yazılmaya başlandığında disk tabanlı ve satır bazlı veri saklama üzerine yoğunlaşılmıştı. Ancak zaman içerisinde, teknolojinin ilerlemesi ve beklentilerin artmasıyla birlikte bu işleyişte ciddi değişiklikler meydana geldi. İşlemci hızlarının artması, disk okuma hızlarının da paralel olarak yükseliyor olması ne yazık ki beklentileri karşılamakta yeterli olmadı. Bunun üzerine verinin daha yavaş olan disklerde değil, bellekte ve daha hızlı analitik sorgulama yapabilmek için satır bazlı değil, sütun bazlı olarak saklanması ortaya çıkmış oldu. Bu arada satır ve sütun bazlı veri saklama yöntemi şudur; bir tabloda isim, soyisim ve tc no olduğunu düşünün. Satır bazlı veri saklama modelinde;

isim, soyisim, tc_no 
isim, soyisim, tc_no
isim, soyisim, tc_no
isim, soyisim, tc_no

şeklinde veri saklanırken, sütun bazlı saklama modelinde:

isim, isim, isim, isim
soyisim, soyisim, soyisim, soyisim
tc_no, tc_no, tc_no, tc_no, 

şeklinde saklanmaktadır. Bu durum farklı veri sorgulama teknikleri kullanılarak, gelen talepler doğrultusunda değerlendirilmekte ve modellemeler ona göre yapılmaktadır.

İşin kısa teknik anlatımı ve geçmişi esasında bu şekildedir. Şimdi biraz günümüzde neler olduğuna bakalım ve sonrasında bizi bekleyenleri, biraz daha teknik olmayan bir dille aktarmaya çalışalım.

Veri, bugün daha önce hiç olmadığı kadar kıymetli. Zaman, bugün daha önce hiç olmadığından da daha fazla kıymetli. Dolayısıyla insanoğlunun bu isteklerini teknoloji dilinde karşılamak için çabalamaktayız. Günün en anlamlı amacı şu; veriyi daha iyi anlamak ve bunu çok kısa sürede işlemek ve anlamlandırmak. Aynı zamanda bütün bunları en ekonomik ortamda gerçekleştirmek ve toplam sahip olma maliyetlerini düşürebilmek. İsteneni anladığınızı düşünüyorum, aslında bir nevi atomu parçalamak gibi. Bugün, bu istekleri karşılamak için elimizde kullanabileceğimiz farklı teknolojiler ve yazılımlar mevcut.

Önceden kullandığımız ve hatta hala sıklıkla kullandığımız ve çok güvendiğimiz veritabanı yazılımlarını bugün ve yarın da kullanmaya devam edeceğiz. Bu yazılımların bugünkü şekli değişmiş durumda sadece. Daha yavaş olan disklerden, bellek içerisinde veri saklama modeli ile oluşturulmuş yeni nesil veritabanı yazılımları ve/veya çözümlerine doğru bir ilerleyiş söz konusu. Peki şimdi asıl soruyu sorma zamanı geldi? "Tam olarak ne oldu da 1970'lerden beri kullandığımız bu yazılımlar yetersiz kalmaya başladı?" Cevap veriyorum; veri üretiminde patlama...

Veri üretimine ilişkin en çarpıcı bilgi bence şöyle; son iki yılda, tarihte ürettiğimiz verinin %90'ını ürettik. Düşünebiliyor musunuz boyutları? Şu an herkes ve her şey (makineler dahil) veri üretip, ürettikleri bu verileri başka bir yere ya da diğer makinelere aktarabiliyor. Hızlı, hacimli ve çeşitli büyümekte olan verileri, eski moda kalmış ilişkisel veritabanları ile yönetmek her zamankinden daha zorlaştı. Bu noktada devreye belki de bu sıralar sıklıkla işittiğiniz bir kavram girdi; Büyük Veri. Nedir bu büyük veri? Nasıl kullanılır ve daha önemlisi şimdi kullandığımız ilişkisel veritabanlarının yerini alabilecek mi? Peşinen belirtmem gerekiyor ki büyük veriye ait herhangi bir teknolojinin uzun vadede ilişkisel veritabanı sistemlerinin yerini alabileceğini düşünmüyoruz. Bunun sebebi ise yukarıda kısaca mimarisini anlattığım ilişkisel modelin henüz büyük veri teknolojilerinde tam olarak yer almıyor olmasıdır. Büyük veride NoSQL adını verdiğimiz ilişkisel olmayan tipte ve anahtar-değer yapısı ve benzeri yapılarda veri saklayan veritabanları kullanılmaktadır. Bu veritabanları ve diğer büyük veri yazılımları veriyi daha hızlı, daha hacimli ve daha çeşitli depolayabilecek şekilde tasarlanmıştır. Dolayısıyla bugün olmasını beklediğimiz yapıda ilişkisel veritabanları ve büyük veri teknolojileri bir arada kullanılmalıdır. Bu yazılımların ve teknolojilerin kullanım yoğunluğu istenen projeye ve yapılması hedeflenen işe göre değişebilir.

Büyük veri teknolojisinin yazılım dilinde kullanımı ve tercümesi Hadoop'tur. Hadoop bir yazılım araçları bütününe verilen isimdir. Dünya'da Hadoop dağıtıcıları ve üreticileri yer almaktadır ve tamamen açık kaynak kodlu olan bu yazılım araçları, Java ile geliştirilmektedir ve ciddi büyüklüğe ulaşmış toplulukları bulunmaktadır. Türkiye'de Hadoop kullanımı genişlemektedir. Hadoop ile birlikte (yani büyük veriyi) ilişkisel veritabanını kullanan ve genel olarak adlandırdığımız Büyük Veri Analitiğini yapan kurumlar mevcuttur. Büyük veri ile ilgili daha önce detaylı bir yazı yazmıştım, ulaşabilmek için tıklayınız.

Büyük verinin içerisindeki bir diğer alt kavram veri keşfidir. Çok fazla kaynaktan aldığınız, çok çeşitli veriyi anlamlı hale getirmeden önce keşfetmeniz gerekmektedir. Örneğin, birkaç tane sosyal medya unsuru üzerinden veri alıyorsunuz. Günün sonunda elinizde hangi tipte, ne kadar veri olduğunu, hangi hashtag'lerin kullanıldığını bilebilmeniz mümkün değil. Önce bunları bir yerde keşfetmeniz ve ayrıştırmanız gerekmektedir.

Şimdi, elimizde ilişkisel veritabanının yapısı, bellekiçi mimaride tasarlanmış, gerçek zamanlı veritabanı yazılımı, Hadoop teknolojileri ve çok hızlı işlemciler ve ağ unsurları mevcutken, bunlarla neler yapabiliriz? Bu sorunun cevabı çok basit, hayal gücünüzle sınırlı. Mevcut yapısal değişimler ve üretilen yazılımlar ve donanımlar artık bize sınırının sizin hayal gücünüz olduğu bir yapı sunmakta. Yapılması gereken adımlar, şirket stratejisine uygun bir amaç üretmek, amaca uygun bir proje geliştirmek ve teknik açıdan nasıl yapılabileceğini iyi analiz etmek. Daha sonra bu teknolojileri birleştirdiğiniz zaman size gerçek zamanlı büyük veri analitiği sağlanmış olmaktadır.

Bugünün diğer konulardan birisi veri analizi ve veri madenciliğidir. Veri, bugün olmasa bile yarın hayatımızı yönetecektir, dolayısıyla veri üretim kaynakları artmaktadır. Veri üretim kaynaklarının artmasına bağlı olarak üretilen veriden bir değer çıkartılması beklenmektedir. İşte burada devreye bu iki kavram girmekte ve bu kavramların çıktısının sunum (raporlama) katmanına aktarılması ile birlikte de iş zekası ürünlerinin kullanımları gündeme gelmektedir. Veriyi üret, analiz et, raporla. Basit bir örnek, veriyi üreten akıllı bir sensörden, Genel Müdür'ün masasındaki tablet bilgisayara kadar veri akışı bugün mümkün. 

Verinin çeşitli üretim kaynakları bulunmaktadır. Kurumsal yazılımlar ve veri girişine izin veren diğer bütün uygulamalar veri üretmekte, bunlara ek olarak internet ve sosyal medya üzerinden de ciddi veri üretimleri mevcuttur. Bu kaynakların dışında kullanılabilen bir diğer kaynak makineler, telekomünikasyon cihazları ve diğer tüm akıllı sensörlerdir. Bu cihazlar genelde yapısal olmayan veri tipinde veri üretmektedir ve bugün kullandığımız ilişkisel veritabanı modeline uygun değillerdir. Genelde bu uygun olmayan ve yapısal olmayan veri tiplerini önce yapısal olan veri tiplerine dönüştürüyoruz, daha sonra ilişkisel veritabanlarına yüklüyoruz çünkü ilişkisel veritabanları yapısal olan veriler üzerinde sorgulama ve analiz yeteneğine sahiptirler. Bu arada yapısal ve yapısal olmayan veri arasındaki fark çok basittir, yapısal veriler satır ve sütun düzenine uygun verilerdir. Yapısal olmayan tipte veriler ise paylaştığınız görüntüler, cihazlardan gelen binary tipinde dosyalar, attığınız tweet'ler vb. Yapısal olmayan veriye diğer bir örnek kolunuza taktığınız akıllı saatlerin ürettiği tipte veriler ve günlük dosyalarıdır. Yapısal olmayan veriyi saklama ve işleme yeteneğine Hadoop da sahiptir. Dolayısıyla bir sisteme önce yapısal olmayan veri giriyorsa ve ardından yapısal olan veriye dönüştürülüyor ve bu veriler üzerinde analizleri, raporlamalar ve sorgulamalar yapılıyorsa bu sistemde şunların varlığından söz edebiliriz, büyük veri, ilişkisel veritabanı sistemleri, iş zekası ürünleri, veri madenciliği ve istatistik araçları.

Günümüzde ve sonrasında makineler kendi arasında, intranet ya da internet üzerinden birbirleri ile konuşabilmekte ve ürettikleri verileri bir merkeze, örneğin bir bulut bilişim sistemine  (merkezi veri merkezi yapıları) aktarabilmektedir. Bu tekniğin ismine makinelerarası iletişim denmektedir. Makineler bir sistem ile ve/veya kendi arasında iletişimde kalarak veri üretimi ve paylaşımları yapabilmektedir. Makinelerin, sensörlerin, cihazların ve yazılımların internet üzerinden birbirleri ve bulut bilişim veri merkezleri ile konuşabilmesine ise Internet of Things adını verebiliriz. 

İlişkisel veritabanı, büyük veri, makinelerarası iletişim, IoT, veri analizi ve veri madenciliği gibi kavramlardan önce hayatımızda olan ve neredeyse 1950'lere kökü dayanan bir başka kavram, bulut bilişim. Bulut bilişimle ilgili pek çok şey yazıldı, çizildi ama hala görüyorum ki insanların aklında tam oturmamış bir kavram olarak kalmış. Merkezileştirmenin yeniden alevlendiği, birçok sistemin ortak olarak tek çatı altında yönetilmek istendiği bu yıllarda bulut bilişim, eski günlerinden daha kuvvetli ve yenilikçi çözümlerle yeniden aramızda bulunmaktadır. Yerkürede çok sayıda şirket bulut bilişime uygun yazılımlar üretmekte, veritabanları bulut bilişime uygun güncellenmekte ve yeniden yorumlanmakta ve küresel, çok uluslu şirketler de stratejik adımlarını bu yönde atmaktadır. Bulut bilişimde en önemli olay istenen sitemleri hızlı provizyonlamak ve müşterinin isteğine sunabilmektedir. Müşteriler bulut bilişim veri merkezlerinde istedikleri hizmetleri üyelikler yaparak satın alabilmekte ve böylece bütün bir veri merkezinin fiziki maliyetlerine katlanmak durumunda kalmamaktadırlar. Buna ek olarak herkesin aklında güvenlikle ilgili soru işaretleri bulunmaktadır. Güvenlik takıntısı ile ilgili soruyu burada şu bağlantıyı refere ederek gidermek istiyorum, lütfen inceleyiniz: SAP Data Center

Bulut bilişim, kaynakların bir yerden yönetilmesi ve servis edilmesidir. Bulut bilişimde çeşitli hizmetler ve servisler mevcuttur. Donanım ortamını, yazılımlarınızı, orta katman uygulamalarınızı, mobil geliştirme platformunuzu vb. tüm mevcut ihtiyaçlarınızı servis olarak alabilirsiniz veya sahip olduğunuzu yazılım lisanslarını bu bulut bilişim alanında kullanabilirsiniz.


Size hayatınızı kökten değiştirebilecek bir örnek vermek istiyorum ve bu örnekle, bu zamana kadar yazdıklarımın nasıl kullanılabildiğini anlamış olacaksınız. Bugün, bir ülkedeki insanların sağlıklarını uzaktan takip etmek ve proaktif sağlık önlemleri alarak olacaklardan korumak bilişim teknolojileri ile mümkün. İnsanların evlerinde bulunacak akıllı sensörler sayesinde, insanlara ait sağlık verileri anlık olarak merkezi sistemlere aktarabilir ve gerekli analizler yapılarak insanların sağlıklarının uzaktan takip edilmesi sağlanabilir. Buna ek olarak yapılacak daha hızlı gen araştırmaları ile ilgili kişinin birkaç nesil önce sahip olduğu kanser geni bulunabilir, kişi hasta olmadan önce takibe alınır ve önlemleri alınabilir. Bu kişiler yine mevcut teknolojiler kullanılarak uzaktan takip edilebilir veya günü geldiği zaman hastanelere davet edilebilir. Bu şekilde kimse hasta olmayı beklemez ve zamanında, doğru tedaviye erişmiş olabilir. Bir ailede genetik bir rahatsızlık varsa, kanser gibi, çocuklarında da görülme insidansı yükselmektedir fakat günümüzde bu kişileri korumaya yönelik bir yöntem olmadığı için kişi, sadece hasta olduğu zaman fark edilebilmektedir. Günümüzde birçok firma yeni nesil teknolojileri kullanarak kanser araştırmalarında 3 milyardan fazla gen zinciri olan taramaları 4-5 günlerden 2-3 saatlere kadar indirmiştir ve araştırmalarda ciddi hızlanmalar gözlenmiştir.

Büyük veri ve veri analitiğine bir diğer güzel örnek spor alanından. Futbol ve amerikan futbol takımları ve tenisçiler bugün büyük veri, bulut bilişim ve bellekiçi veritabanı teknolojilerinin bir arada olduğu yeni nesil yazılımları kullanmakta ve kendilerine yeni yollar keşfetmektedir. Futbol takımları daha hızlı pas yapabilmekte, gole daha hızlı gidebilmekte ve başarının yolunu sayısallaştırabilmektedir. Başka farklı örnekler verebilmek mümkündür. Ormanlara konulacak ısı sensörlerinin anlık takibi ile radikal ısı artışları görüntülenebilir ve olası orman yangınları önceden bilinebilir. Böylece hektarlarca orman kül olmadan önce müdahale edilebilir. Sosyal medya analizi de yine büyük veri örnekleri arasında yer almaktadır. Farklı sistemlerden, ortak bir sisteme akacak yapısal olmayan bütün verilerin gerçek zamanlı analiz edilmesi ve müşterilere kişiye özel pazarlama yapılabilmesi mümkün olabilmektedir. Bu yıl ve sonrasında üretilen araçların bir bulut sistemine bağlı olarak anlık veri transfer etmesi ve yine bu bulut sisteminden veri alabilmesi bugün mümkün. Bunun en büyük örneğini SAP ve BMW hazırlamaktadır. Bu ve buna benzer birçok örnek üretebilmek mümkün.

Yazımın başında da söylediğim gibi, elimizde bunca teknolojik imkan varken yapabileceklerimiz sadece hayal gücümüz ile sınırlıdır...
Takip et: @oganozdogan