WoT (Web of Things) gerçek dünyadaki nesneleri geniş alan ağlarındaki Web’in (www) bir parçası haline getiren bir dizi yazılımsal mimari stillerini ve programlama şablonlarının bütününü ifade eder. İnternet dünyası için Web (uygulama katmanı) neyse IoT uygulamaları için uygulama katmanı olan Web of Things de benzer şeyi ifade eder.
Sıfırdan yeni standartlar üretmek yerine WoT programlanabilir Web (REST, HTTP, JSON), anlamsal Web (JSON-LD, Microdata), gerçek zamanlı Web (WebSocket) ve sosyal Web (oauth ve diğer sosyal ağlar) gibi iyi bilinen Web stantandartlarını kullanır.
WoT’un ilgi alanındaki nesneler genellikle geniş anlamda tüm fiziksel nesneleri kapsar. Bu nesneler etiketlenmiş objelerden (RFID, NFC, QR codes, Barcodes, Görüntü Tanıma) kablosuz algılayıcı ağlarına (WSN), makinalara, araçlara ve tüketici elektroniğine kadar genişleyebilir.
Mimari ve Yapı
Bu alanda standartlaşma çalışmaları devam ederken, WoT aslında WoT mimarilerine göre sınıflandırılmış en iyi yöntemlerin bir kümesidir. Mimari içeriğindeki farklı şablonları ve protokolleri sınıflandıran yapıları (framework) kullanan dört farklı katmandan oluşur: erişebilirlik katmanı, bulunabilirlik katmanı, paylaşım katmanı ve birleştirme katmanı.
Erişebilirlik katmanı:
Bu katman nesnelerin İnternet’e erişebilmesi ve Web API’ler sayesinde üzerlerindeki servisleri geniş ağlara açabilmelerini sağlamakla ilişkilidir. Bu katman WoT’un çekirdek katmanıdır ve erişilebilir Web API’lere sahip nesneleri programlanabilir nesnelere çevirmeye çalışır.
Erişim katmanı iki ana şablon üzerine kurulmuştur: Öncelikle tüm nesneler üzerlerindeki servisleri RESTful API (direkt veya bir ağgeçidi) ile ortaya koyalar. REST programlanabilir Web’in köklerinden olan HTTP 1.1 uygulamasına bağlı bir mimari stildir. Bunun sonucu olarak eğer nesneler HTTP üzerinden RESTful API’ler sağlarsalar aynı zamanda bir URL’e de sahip olurlar ve Web dünyasına ve onun tarayıcılarına, HTML sayfalarına ve JavaScript uygulamaları gibi İnternet’in çeşitli araçlarına da pürüzsüzce entegre olmuş olurlar.
Nesnelerin sahip olduğu servislerin REST ile nasıl paylaşılacağını belirleyen birden fazla tasarım mevcuttur (örneğin bunlardan birisi Guinard tarafından yapılmıştır).
HTTP’nin istek-yanıt üzerine kurulu doğası IoT’un kullanım durumu için sıklıkla bir eksiklik olarak görülür çünkü HTTP protokolü kablosuz algılayıcı ağlarının genelinde olan olay-güdümlü uygulamalara uyum sağlayamaz. Bu eksikliğin üstesinden gelmek ve IoT’u Web’e entegre etmeye teşvik etmek için bazı geliştiriciler doğal yoldan (direkt) ya da protokol dönüştürcüler kullanarak (örneğin MQTT veya CoAP’ın WebSocket’e dönüştürülmesi) HTML5 WebSocket protokolünü kullanmayı önermişlerdir. Böylece Web ekosistemine büyük ölçüde entegre olan üyelik mekanizmalı REST API’lere sahip nesnelerin entegrasyonu tamamlanmış olur.
Bazı nesneler İnternet’e direkt olarak bağlanabilir (örneğin Ethernet, WiFi veya GSM/3G kullanarak) fakat diğer durumlarda (örneğin pil ile beslenen cihazlarda) cihazlar İnternet’e Akıllı Ağ Geçitleri üzerinden erişebilirler. Akıllı Ağ Geçitleri bir ağın çıkış noktasındaki protokol dönüştürücülerdir. (bknz. Nesta IoT Ağ Geçidi)
Bulunabilirlik katmanı:
Bu katmanın amacı Web üzerindeki nesneleri bulup konumlandırmaktır bundan dolayı anlamsal (şemantik) Web’ten oldukça etkilenmiştir.
Buradaki yaklaşım nesneleri ve onların servislerini tanımlamak için anlamsal Web standartlarını yeniden kullanmayı önerir. Geliştiriciler özellikle HTML5 Microdata entegrasyonu, RDF / RDFa, JSON-LD ve EXI üzerinde çalışmaktadır. Bu protokoller nesnelerin arama motorları ve Web üzerindeki diğer indeksleme mekanizmaları tarafından keşfedilmesini sağlar ve ayrıca az sayıda iyi tanımlanmış biçim ve standartlar ile makinalar arası etkileşime de olanak verir.
Paylaşım katmanı:
WoT genellikle Web’e bolca veri göndermeyi amaçlayan nesnelerin üzerine kuruludur. Böylece algılayıcılarla nesnelerden daha fazla haber alma ve büyük-veri şablonları oluşturma özelliklerini sağlığımızı takip etme (giyilebilir teknolojiler), enerji tüketimini optimize etme (Smart Grid) gibi alanlara uygulayabiliriz. Bu gibi uygulamalar servisler arasında veriler eğer efektif bir şekilde paylaşılırsa yalnızca geniş ölçekli durumlarda gerçeklenebilir. Paylaşım katmanı nesnelerin ürettiği verinin etkili ve güvenilir biçimde paylaşılmasını sağlar.
Birleştirme katmanı:
Bu son katmanın rolü daha yüksek seviyeli Web uygulamalarının nesnelerden istediği servis ve verileri bir araya getirerek nesneleri ve sanal Web servisleri içeren üst seviyeli uygulamaların daha kolay oluşturulmasını sağlamaktır.
Birleştirme katmanındaki araçlar Web’e ait uygulama geliştirme araçlarından (örneğin JavaScript SDK’ları yüksek seviyeli soyutlama sağlarlar) programlanabilir varsayımsal nesnelere dayalı kontrol ya da gösterge panellerine ve fiziksel Mashup araçlarına kadar çeşitlilik gösterebilir. Fiziksel Mashup; klasik Web ile WoT’un birleştirildiği bir bakış sunar. Böylece programlama kabiliyeti gerektirmeden kişilerin WoT servislerini kullanarak uygulama geliştirmelerine olanak sağlar (IFTTT).
WoT Tarihi
Nesnelerin Web’e bağlandığı ilk çalışmalar aşağı yukarı 2000’li yılarda başladı. 2002 yılında Cooltown projesinden bahseden bir kaç makale yayınlandı. Bu proje ortak alanda olan ekran ve yazıcı gibi bazı fiziksel nesneler ile URL ve HTTP protokolünü kullanarak etkileşime geçebilmeyi araştırdı.
Bu ilk çalışmayı takiben, IoT’a olan büyük ilgi IoT’un uygulama katmanına dair bazı soruların sorulmasını sağladı. IoT alanındaki bir çok çalışma ağ protokollerine odaklanmışken IoT cihazlarından gelen verilerin nasıl toplanacağı üzerine düşünülmesini de gerektirdi. Özellikle “bir cihaz bir uygulama” tarzı yaklaşımlar yerine araştırmacılar daha çok farklı cihazlardan toplanan verilerin biraraya getirilip yenilikçi uygulamara dönüştüğü kullanım durumlarını göz önüne aldılar.
IoT uygulama katmanının Web olarak düşünülmesi 2007 yılında ortaya çıktı. Birden fazla araştırmacı paralel olarak bu konu üzerine çalışmaya başladı. Bunlardan birisi çeşitli W3C ve IoT konferansında Nesnelerin Web’inden bahseden W3C’den Dave Ragget’tir. Dominique Guinard ve Vlad Trifa WoT üzerine çevrimiçi bir topluluk kurarak bu alandaki ilk bildilerini yayınladılar. IoT’a uygulama katmanı oluşturmak için Web standartlarını (REST, Lightweight semantik vs.) kullanmayı savundular. Erik Wilde “Putting Things to REST” isimli bir makale yayınlayarak fiziksel nesneleri algılayabilmek ve kontrol etmek için REST protokolünden yararlandığı bir görüşü ortaya attı. Nesnelerin Web’i (WoT) terimi ilk defa Vlad Stirbu’na ait bir makalede görüldü.
2007’den sonra Trifa, Guinard, Wilde ve diğer araştırmacılar fikir ve görüşlerini içeren makalelerini çeşitli hakemli konferanslarda yayınladılar. Ancak bu makaleler Kablosuz Algılayıcı Ağları araştırma topluluğu tarafından reddedildi. Internet ve Web protokolleri gerçek dünyada kısıtlı hafıza ve hesaplama gücüne sahip cihazlar için sınırlamalara ve birçok gereksiz ayrıntıya sahipti.
Buna rağmen WSN tarafındaki birkaç araştırmacı bu fikirlere daha fazla önem vermeye başladı. 2009’un başlarında WSN alanında önde gelen araştırmacılardan olan David Culler, Jonathan Hui, Adam Dunkels ve Dogan Yazar Internet ve Web protokollerinin düşük güç tüketimli algılayıcılar için kullanılıp kullanılamayacağını değerlendirdiler ve bu yaklaşımın uygulanabilirliğini gösterdiler.
Bunu takiben Guinard ve Trifa bu konseptin uçtan uça uygulamasını gösterdiler ve bunu 2009’daki World Wide Web konferansında bir makale olarak yayınladılar. 2010’da Guinard, Trifa ve Wilde nesneler için RESTful mimarisi üzerinde durdukları bir makale yayınladılar. Nesnelerin Web’e bağlanması kopseti üzerine artan akademik ve endüstriyel ilgi nedeniyle Guinard, Trifa ve Wilde WoT üzerine ilk uluslararası çalıştayı başlattı. Bu çalıştay 2010’dan beri her sene düzenlenmektedir. Bu çalıştay araştırmacılar ve çalışanlardan oluşan ve giderek büyüyen bir topluluğun WoT üzerine yeni gelişmeleri ve fikirleri tartıştığı ilk forum olmuştur.
WoT alanındaki ilk doktora tezleri 2011’de Vlad Trifa ve Dominique Guinard tarafından Zürih Üniversitesi’nde verildi. Yine aynı yıl Dominique Guinard, Vlad Trifa, Niall Murphy ve Andy Hobsbawm bir araya gelerek tümüyle WoT ile endüstrinin ihtiyaçlarını karşılayabilecek bir bulut yazılımı olan EVRYTHNG’i oluşturup, şirket kurdular. Paralel zamanlarda diğer birkaç WoT şirketi daha kuruldu.
2014’te W3C WoT’a artan bir ilgi gösterdi ve WoT üzerine Dave Raggett liderliğinde Siemens ve the COMPOSE European projesiyle beraber bir çalıştay düzenledi. Bu çalıştay üzerine the Web of Things Interest Group kuruldu.
Aynı yıl Siemens WoT üzerine bir araştırma grubu oluşturacağını duyurdu. Ekim 2014’te Google da Physical Web github projesiyle bu konulara olan ilgisini dile getirdi.
Uygulama Örnekleri
WoT alanındaki ilk prototip uygulama Energie Visible projesidir. Bu projede evdeki araçların enerji tüketimleri monitör ve kontrol edilmektedir. Bu işlevsellik cihazlardaki RESTful API’ler sayesinde sağlanmaktadır. Bu API’ler daha sonra fiziksel bir Mashup yapmak için de kullanılmıştır.
Nimbits bulut mimarisi üzerine kurulmuş açık kaynaklı bir veri sakalama sunucusudur. Veri noktalarını kullanarak cihazlar arasında iletişimi sağlar.
Xively (eski adıyla Pachube) WoT verilerini biraraya getiren ve veri madenciliği sağlayan ticari bir yazılımdır.
EVRYTHNG WoT mimarisine dayalı olarak birbirne bağlı cihazlar ve bağımsız ürünler üreten bir platformdur.
WeIO yalnızca HTML5 ve Pyhton gibi popüler Web dillerini kullanarak birbiriyle etkileşimli kablosuz bağlı nesneler oluşturmak için açık kaynak kodlu donanım ve yazılım sunan bir platformdur.
2012’deki bir doktora tezinde heterojen yapıdaki ev cihazlarından doğan problemi çözmek için Web teknolojilerinin yeniden kullanımını amaçlayan akıllı ev konusu araştırılmıştır.
Alternatif Yaklaşımlar
Web standartlarına alternatif birkaç yaklaşım da sunulmuştur. Buna örnek olarak WS-* servisleri verilebilir fakat sonrasında bunun gerçek dünyadaki nesnelere çok da uygun olmadığı gösterilmiştir.
Çok bahsedilen CoAP da kaynakları kısıtlı cihazlar için alternatif ya da tamamlayıcı bir yaklaşımdır. CoAP, RESTful kaynaklarını kullanan WoT mimarisine benzerlikler göstermektedir.
Kaynaklar
Bu yazı aşağıda kaynağı verilen yazıdan sadeleştirilmiş bir şekilde tercüme edilerek oluşturulmuştur.
[1] http://en.wikipedia.org/wiki/Web_of_Things
KAYNAK : http://www.nestaelektronik.com/blog/index.php?article=wot