Bu yazıda akıllı cihazlar verileri nasıl topladığını ve nasıl sakladığını öğreneceğiz?
Nesnelerin İnterneti, farklı insanlar için farklı şeyler ifade eder. Satıcılar için, kurumsal müşterilerini etkileyen bir dizi büyük ölçekli trendin en sonuncusu ve dikkate almaları gereken en son pazarlama kervanı. Kurumsal kuruluşlar için hala teknik standartlar, çelişkili görüşler ve büyük potansiyel kargaşası. Geliştiriciler için, doğru araç ve teknoloji karışımını ve muhtemelen zaten başka bir ad altında yaptıkları bir şeyi bir araya getirmek için büyük bir fırsat. Bu teknolojilerin teknik düzeyde birlikte nasıl çalıştığını anlamak önemli hale geliyor ve yazılım tasarımını genel işin bir parçası olarak kullanmak için daha fazla fırsat sağlayacak.
Nesnelerin İnterneti projeleri kavramlardan gerçeğe geçerken, en büyük zorluklardan biri, cihazların oluşturduğu verilerin sistemden nasıl akacağıdır. Bilgi oluşturacak kaç cihaz olacak? Bu bilgiyi nasıl geri gönderecekler? Bu verileri gerçek zamanlı olarak mı yoksa toplu olarak mı yakalayacaksınız? Analitik gelecekte nasıl bir rol oynayacak?
Bu sorular tasarım aşamasında sorulmalıdır. Konuştuğum kuruluşlardan, bu hazırlık aşaması, en baştan doğru araçları kullandığınızdan emin olmak için çok önemlidir.
Verileri Gönderme
Bir cihaz tarafından oluşturulan verileri üç aşamada düşünmekte fayda var. Birinci aşama, cihazda gerçekleşen ve daha sonra İnternet üzerinden gönderilen ilk oluşturmadır. İkinci aşama, merkezi sistemin bu verileri nasıl topladığı ve düzenlediğidir. Üçüncü aşama, bu verilerin gelecek için sürekli kullanımıdır.
Akıllı cihazlar ve sensörler için her olay veri oluşturabilir ve oluşturacaktır. Bu bilgi daha sonra ağ üzerinden merkezi uygulamaya geri gönderilebilir. Bu noktada verilerin hangi standartta oluşturulacağına ve ağ üzerinden nasıl gönderileceğine karar verilmelidir. Bu verileri geri göndermek için MQTT, HTTP ve CoAP kullanılan en yaygın standart protokollerdir. Bunların her birinin faydaları ve kullanım durumları vardır.
HTTP, cihazlar ve merkezi sistemler arasında veri sağlamak için uygun bir yöntem sağlar. Başlangıçta istemci-sunucu bilgi işlem modeli için geliştirilmiş olan bu model, günümüzde Internet of Things cihazlarıyla ilgili daha uzman hizmetlere kadar günlük web taramasını da desteklemektedir. HTTP, veri göndermek için işlevsellik gereksinimlerini karşılarken, başlıklarında mesajın etrafında çok daha fazla veri içerir. Düşük bant genişliği koşullarında çalışırken bu, HTTP’yi daha az uygun hale getirebilir.
MQTT, makineden makineye ve Nesnelerin İnterneti dağıtımları için bir protokol olarak geliştirildi. Mesajların cihazdan aracı görevi gören merkezi bir sisteme geri iletilmesi için bir yayınlama / abone olma modeline dayanır, burada daha sonra onları tüketecek diğer tüm sistemlere geri iletilebilir. Yeni cihazlar veya hizmetler, mesajlara ihtiyaç duydukları için aracıya kolayca bağlanabilir. MQTT, mesaj boyutu açısından HTTP’den daha hafiftir, bu nedenle bant genişliğinin potansiyel bir sorun olduğu uygulamalar için daha kullanışlıdır. Ancak standart olarak şifreleme içermediği için bunun ayrı olarak değerlendirilmesi gerekir.
CoAP, düşük güçlü, düşük bant genişliğine sahip ortamlar için geliştirilmiş başka bir standarttır. CoAP, MQTT gibi bir aracı sistem için tasarlanmaktan ziyade, bire bir bağlantılara yöneliktir. HTTP ile arabirim oluşturmanın bir yolunu sağlayarak REST tasarımının gereksinimlerini karşılamak için tasarlanmıştır, ancak yine de düşük güçlü cihazların ve ortamların taleplerini karşılar.
Bu protokollerin her biri, bireysel cihazdan bilgi veya güncelleme almayı ve merkezi bir konuma göndermeyi destekler. Ancak, daha büyük bir fırsatın olduğu yerde, bu verilerin gelecekte nasıl depolanacağı ve kullanılacağıdır. Burada iki ana endişe vardır: uygulamaya girerken verilerin nasıl etkilendiği ve gelecekte kullanılmak üzere nasıl saklandığı.
Verilerin Saklanması
Nesnelerin İnterneti genelinde cihazlar, gönderilmek, tüketilmek ve kullanılmak üzere ana uygulamaya gönderilen verileri oluşturur. Cihaza, ağ ve güç tüketimi kısıtlamalarına bağlı olarak, veriler herhangi bir zamanda gerçek zamanlı olarak veya gruplar halinde gönderilebilir. Ancak gerçek değer, veri noktalarının oluşturulduğu sırada türetilir.
Bu zaman serisi verilerinin Nesnelerin İnterneti uygulamaları için doğru olması gerekir. Değilse, uygulamaların kendi amaçlarını tehlikeye atar. Araçlardan telemetri verilerini alın. Verilerin sırası tamamen uyumlu ve doğru değilse, analiz edildiğinde potansiyel olarak farklı sonuçlara işaret eder. Belirli bir parça belirli koşullarda arızalanmaya başlarsa – örneğin, belirli bir aşınma seviyesiyle aynı anda bir sıcaklık düşüşü – o zaman bu koşulların gelen verilere doğru bir şekilde yansıtılması gerekir, aksi takdirde yanlış sonuçlara yol açar. Sonuçlar.
Zaman serisi verileri, olaylar cihaz çevresinde gerçekleştikçe ve daha sonra gönderildikçe oluşturulabilir. Gerçek zamanlı bilgilerin bu şekilde kullanılması, her cihaz için olduğu gibi tam bir kayıt sağlar. Alternatif olarak, veriler toplu olarak gönderilirken harmanlanabilir – verilerin tarihsel kaydı orada olacak, gerçek zamanlı olarak mevcut değil. Bu, pil ömrünün verilerin gerçek zamanlı olarak teslim edilmesi ihtiyacından çok önemli bir gereksinim olduğu cihazlarda yaygındır. Her iki durumda da, temel gereksinim, her cihazdaki her işlemin sıralama ve hizalama için doğru zaman damgasına yerleştirilmesidir. Bunu yüz binlerce veya potansiyel olarak milyonlarca cihazla gerçek zamanlı olarak yapmak istiyorsanız, veritabanı düzeyinde yazma hızı önemli bir husustur.
Her yazma, cihazın kendisinden alındığı gibi alınmalı ve veritabanına konulmalıdır. Daha geleneksel ilişkisel veritabanı teknolojileri için bu, yazma isteklerinin veritabanının oluşturulma amacının ötesine geçmesi mümkün olduğundan, sınırlayıcı bir faktör olabilir. Doğru ve faydalı bilgiler oluşturmak için cihazlardan gelen tüm verilere sahip olmanız gerektiğinde, bu potansiyel kaybın büyük etkisi olabilir. Nesnelerin İnterneti projeleri etrafında konuştuğum kuruluşlar için Cassandra gibi NoSQL platformları gereksinimlerine daha uygun bir çözüm sunuyor.
Bunun bir kısmı, Cassandra gibi bir şeyin yapabileceği çok sayıda yazıdan kaynaklanıyor; Her zaman veri oluşturan milyonlarca cihazda bile, veritabanı oluşturulduğu kadar veriyi almak için tasarlanmıştır. Ancak, aynı zamanda veritabanlarının kendilerinin nasıl tasarlandığından da kaynaklanmaktadır. Geleneksel veritabanlarında, ana veritabanı sunucusunun tüm işlemleri ele alacağı ve gerektiğinde bunları eşzamanlı olarak diğer sunuculara ileteceği bir birincil çoğaltma düzenlemesi vardır. Bu, olası bir veri kaybına yol açan yeni bir birincilin yerleştirilmesi gerektiğinden, bir kesinti veya sunucu arızası durumunda sorunlara yol açar.
Cassandra gibi uygun şekilde yapılandırılmış dağıtılmış veritabanı sistemleri için sorumlu olan bir “birincil” sunucu yoktur; bir küme içindeki her düğüm, işlemleri geldikleri anda işleyebilir ve tam kayıt zaman içinde korunur. Bir sunucu arızalansa veya ağ bağlantısının kesilmesi nedeniyle bir düğüm kaldırılsa bile, kümenin geri kalanı verileri geldiği gibi işlemeye devam edebilir. Zaman serisi verileri için bu özellikle değerlidir çünkü olması gerektiği anlamına gelir. zamanla işlem listesinde veri kaybı olmaz.
Verileri Analiz Etme
Bu zaman serisi veri deposuna sahip olduğunuzda, bir sonraki fırsat zaman içindeki eğilimleri aramaktır. Zaman serisi verilerinin analiz edilmesi, ilgili cihazların sahipleri için daha fazla değer yaratma veya karşılanan belirli bir dizi koşula dayalı olarak otomatikleştirilmiş görevleri gerçekleştirme fırsatı sağlar. Tipik örnek, sütün bittiğini fark eden internete bağlı buzdolabıdır; bununla birlikte, Nesnelerin İnterneti verileri, daha büyük özel veya kamusal faydalarla ve karşılanması gereken daha karmaşık koşul kümeleriyle ilişkilendirildiğinde daha değerlidir. Trafik analizi, kamu hizmeti ağları ve gayrimenkul konumlarında güç kullanımı, trendleri tespit etmek ve paradan veya zamandan tasarruf etmek için birden fazla cihazdan veri tüketmekle ilgilidir.
Bu ortamda, analitik sonuçlarının ne zaman gerekli olacağını düşünmek yardımcı olur: acil, neredeyse gerçek zamanlı bir analiz ihtiyacı var mı, yoksa bu tarihsel bir gereklilik mi? Büyük veri analizi için Apache Spark’ın ve neredeyse gerçek zamanlı akış için Spark’ın popülaritesi artmaya devam etti ve Cassandra’nın benzerleriyle birleştirildiğinde geliştiricilere büyük, hızlı hareket eden veri kümelerini işleme ve analiz etme yeteneği sağlayabilir. herbiri.
Ancak, bu sadece şu anda olanlarla ilgili değil. Zaman serisi verilerinden gelen değer de zamanla gelebilir. Örnek olarak, Birleşik Krallık’taki i2O Water, dünya çapındaki su dağıtım şebekelerine gömülü cihazlardan alınan su basıncıyla ilgili bilgilere bakar. Bu veriler iki yılda toplandı ve bir Cassandra kümesinde depolandı. Şirket, bu bilgileri analizleri için ve bakım gerekebilecek yerler konusunda müşterileri uyarmak için kullanır.
Bu verilerin şirket için kendi değeri vardır. Müşteriler için yeni ürünlerde de kullanılabilecek hazır bir modelleme ve analitik bilgi kaynağına sahiptir. Bu, şirketin uygulamalarını modüler bir şekilde tasarlamasının ilginç yolu; yeni bir modül veya hizmet eklendiğinde, zaman serisi verileri, veriler oluşturuluyormuş gibi sistemde “oynatılabilir”. Bu daha sonra analitik için ve su şebekesindeki cihazların bu süre zarfında basınçtaki veya diğer sensör verilerindeki değişikliklere nasıl tepki vereceğini göstermek için kullanılabilir.
i2O Water için buradaki fırsat, müşteri olan kamu hizmeti şirketlerine daha fazla değer gösteren hizmetler eklemektir. Suyun değeri ancak daha fazla insanın erişime ihtiyacı olduğu için artacak ve bu da doğru ve zamanında verileri daha değerli kılacaktır. Bu, cihazların ve verilerin birbirine bağlanmasının yaşamları nasıl iyileştirebileceğinin yanı sıra ilgili şirketler için yeni fırsatlar yaratabileceğinin güzel bir örneğidir.
Zaman serisi verilerine geriye dönüp bakma yeteneği, bir bütün olarak Nesnelerin İnterneti için en geniş kapsamlı sonuçlara sahiptir. Özel sektör kazancı veya kamu sektörü yararı için olsun, uygulamanın tasarımı ve bu verilerin zaman içinde nasıl depolandığını anlamak çok önemlidir. Nesnelerin İnterneti için tasarım yaparken, yaratılan büyük miktarda veriye ayak uydurabilen dağıtılmış sistemlerin rolü de önemlidir.