Sahadan gelen veri: akıllı tarımda edge işleme ve bağlantı koşulları
GAIA / AgroBlock, tarım alanındaki sensörleri, kamera düğümlerini ve edge cihazlarını tek bir sistem yaklaşımında ele alan bir Ar-Ge çalışması. Bu notta fiziksel ortamın ve bağlantı koşullarının yazılım mimarisini nasıl şekillendirdiğine dair düşüncelerimi topluyorum.
01Masa başındaki varsayımlar sahada geçerli değil
Web uygulaması geliştirirken bazı şeyleri neredeyse hiç sorgulamadan kabul ediyorum: sunucu erişilebilir, bağlantı var, gönderilen veri karşı tarafa hemen ulaşıyor. GAIA / AgroBlock üzerinde çalışırken bu varsayımların hiçbirine güvenemeyeceğimi kabul etmem gerekti. Tarım alanı, yazılımın genellikle düşünüldüğü ortamdan çok farklı bir yer.
Bu Ar-Ge çalışması; IoT sensörlerini ve kamera düğümlerini edge işleme, offline haberleşme, yapay zekâ ve blockchain tabanlı veri bütünlüğü bileşenleriyle bir araya getirmeyi hedefliyor. Çalışma devam ediyor. Burada yazdıklarım bitmiş sonuçlar değil, kapsamı ele alış biçimime dair notlar.
02Fiziksel ortam mimarinin bir parçası
Sahadan gelen verinin farklı cihazlardan toplanması, bağlantı koşullarının değişmesi ve bu verinin izlenebilir biçimde işlenmesi birbirinden ayrı düşünülebilecek ihtiyaçlar değil. Bir sensörün nerede durduğu, bir kamera düğümünün hangi koşullarda çalıştığı ve bir cihazın merkezle ne sıklıkla konuşabildiği doğrudan yazılım kararlarını etkiliyor.
Bu yüzden mimariyi düşünürken fiziksel katmanı yalnızca bir girdi kaynağı olarak soyutlamak yerine tasarımın bir parçası olarak ele almaya çalışıyorum. Cihazdan alınan verinin sonraki sistem adımlarına nasıl taşındığı, bu çalışmada en çok odaklandığım soru.
Bu yaklaşımın pratik bir sonucu da var: yazılım tarafında verilen her karar, bir cihazın sahada nasıl davranacağına dair bir varsayım içeriyor. Bu varsayımları açıkça yazmak, örneğin bir cihazın ne kadar süre bağlantısız kalabileceğini ya da hangi verinin öncelikli olduğunu baştan tartışmak, sonradan çıkacak sürprizleri azaltıyor. Ar-Ge sürecinde bu tür soruları erken sormayı, cevaplarını bulmaktan bile daha değerli buluyorum.
IoT sensörleri ──┐
Kamera düğümleri ──┴──> edge işleme ──> offline haberleşme ──> yapay zekâ ve blockchain tabanlı veri bütünlüğü03Neden edge işleme
Bağlantının sürekli olmadığı bir ortamda her şeyi merkeze göndermeye dayanan bir tasarım kırılgan kalıyor. Edge işleme fikri burada mantıklı bir yer buluyor: verinin bir kısmı üretildiği yere yakın işlenirse, merkezle iletişim kesildiğinde sistem tamamen kör kalmıyor. Kamera düğümleri gibi büyük hacimli veri üreten kaynaklarda bu daha da önemli hale geliyor, çünkü ham veriyi her zaman taşımak ne mümkün ne de anlamlı olabiliyor.
Burada kendime sorduğum soru, hangi işin cihazda, hangisinin merkezde yapılması gerektiği. Bu sorunun tek bir doğru cevabı olduğunu düşünmüyorum. Cihazın kapasitesi, bağlantının durumu ve verinin ne için kullanılacağı birlikte tartılması gereken etkenler. Bu dengeyi kurmak, Ar-Ge sürecinin en çok düşünme gerektiren kısımlarından biri.
04Offline haberleşme bir istisna değil
Offline haberleşmeyi bir hata durumu olarak değil, sistemin olağan çalışma koşullarından biri olarak düşünmeye çalışıyorum. Bağlantı yokken verinin nasıl tutulacağı, bağlantı geri geldiğinde nasıl aktarılacağı ve bu süreçte verinin bütünlüğünün nasıl korunacağı sonradan eklenecek özellikler değil. Bence baştan tasarımın içinde olmaları gerekiyor.
Sahada bağlantının kopması bir istisna değil, tasarımın baştan hesaba katması gereken bir durum.
Bu bakış açısı, web dünyasından gelen biri olarak alışkanlıklarımı değiştiren bir şey oldu. Bir istek başarısız olduğunda kullanıcıya hata göstermek yetmiyor, çünkü sahada çoğu zaman ekranın başında bekleyen bir kullanıcı yok. Sistemin, kimse müdahale etmeden kendi kendine toparlanabilmesi gerekiyor.
05Veri bütünlüğü ve izlenebilirlik
Çalışmanın blockchain tabanlı veri bütünlüğü tarafı, verinin izlenebilir olmasıyla ilgili. Farklı cihazlardan, farklı zamanlarda ve değişen bağlantı koşullarında gelen bir verinin sonradan güvenilir biçimde takip edilebilmesi gerekiyor. Blockchain bu kapsamda araştırdığım yaklaşımlardan biri. Bir teknolojiyi ilgi çekici olduğu için değil, çözdüğü sorun açıkça tanımlandığı için kullanmak gerektiğini düşünüyorum ve bu bileşeni de o çerçevede değerlendiriyorum.
Yapay zekâ bileşeni için de benzer bir tutum içindeyim. Sahadan gelen verinin anlamlandırılması bu kapsamın bir parçası, ama hangi işin nerede yapılacağı edge ile merkez arasındaki genel dengeye bağlı. Bana göre bu Ar-Ge çalışmasının değeri, bileşenleri tek tek değil, aynı sistem içinde birlikte düşünmekten geliyor.