Hizmetler
Mevcut vizyonunuzu hızlandırırken aynı zamanda sizi geleceğe hazır hale getiren bütünsel bir yaklaşım. Gelecekle akıcı bir şekilde yüzleşmenize yardımcı oluyoruz.
Dijital Mühendislik

Değer odaklı ve teknoloji meraklısı. İşinizi geleceğe hazırlıyoruz.

Akıllı Kurum
Kritik iş uygulamalarınızda ustalaşmanıza yardımcı olarak işletmenizin gelişmesini sağlar.
Deneyim ve Tasarım
Yepyeni bir başarı düzeyine ulaşmak için tasarımın gücünden yararlanın.
Events and Webinars
Our Event Series
Featured Event
14 - 15 May
Olympia London | Booth AI Zone - AI32
Our Latest Talk
By Kanchan Ray, Dr. Sudipta Seal
video icon 60 mins
Hakkında
nagarro
Hakkımızda daha fazlasını keşfedin,
olağanüstü bir dijital
çözüm geliştiricisi ve bir
çalışmak için harika bir yer..
Yatırımcı
ilişkiler
Finansal bilgiler,
yönetişim, raporlar,
duyurular ve
yatırımcı etkinlikleri.
Haberler &
Basın Bültenleri
Ne olduğumuzu yakalayın
ve insanların ne yaptığını
bahsediyoruz.
Bakım ve
sürdürülebi̇li̇rli̇k
Dünyamızı önemsiyoruz.
Hakkımızda bilgi edinin
girişimler.
Akışkan
Kurumsal
Çevikliğin ötesinde, teknoloji ve insan yaratıcılığının yakınsaması.
bizimle konuşun
Dijital ürün mühendisliğine hoş geldiniz
İlginiz için teşekkür ederiz. Nasıl yardımcı olabiliriz?
 
 
Yazar
Swanand Purankar
Swanand Purankar
connect

Nesnelerin İnterneti (IoT), buzdolaplarından fabrikalara kadar her şeyi birbirine bağlayarak hızlı bir genişleme yaşıyor. Ancak birbirine bağlı bu dünya yeni bir sorunu da beraberinde getiriyor: Bu cihazlar arasında verimli iletişim nasıl sağlanır? İşte bu noktada iletişim protokolleri devreye giriyor ve cihazların birbirleriyle konuşmasını sağlayan bir dil görevi görüyor. Bu protokollerden biri olan CoAP, kaynakları kısıtlı IoT cihazları için hafif bir çözüm sunuyor.

Nagarro, modern IoT uygulamalarının zorlu taleplerini karşılayan yüksek performanslı CoAP iletişim çözümleri sunmuştur. Bu makale, CoAP ve Nagarro'nun hem yeni hem de mevcut uygulamalara sorunsuz CoAP entegrasyonunu kolaylaştırmak için tasarlanmış ara yazılım çözümü CoAPConnect'e genel bir bakış sunmaktadır.

CoAP ve diğer IoT protokolleri

Oda sıcaklıklarını sürekli izleyen düzinelerce termostatın bulunduğu akıllı bir ev düşünün. HTTP gibi geleneksel protokoller, pil ömrünü tüketen hantal başlıklar ve TCP bağlantıları nedeniyle zorlanır. MQTT güvenilir teslimat sunar ancak karmaşıklığı ve güç tüketimini artırır. CoAP kazanan olarak ortaya çıkıyor. Kısıtlı cihazlar için tasarlanan CoAP, veri boyutunu ve kaynak tüketimini önemli ölçüde azaltır.

Örneğin, CoAP'nin aerodinamik başlıkları, termostatların HTTP'nin 576mAh'ına kıyasla sadece 144mAh/gün ile veri iletebilmesini sağlar. CoAP'nin etkisi bireysel cihazların ötesine geçer. Bu termostatları kontrol eden merkezi bir hub düşünün. CoAP'nin daha düşük gecikme süresi (MQTT için 50-100 ms'ye karşılık 20-50 ms ve HTTP için 100-200 ms) ve daha az bellek ayak izi (MQTT için 3-5 MB'ye karşılık 1-3 MB ve HTTP için 5-10 MB) sayesinde hub gerçek zamanlı verileri alabilir ve ayarları verimli bir şekilde yaparak daha iyi, daha enerji bilinçli bir gelecek yaratabilir.
Bu kavram, kaynakları kısıtlı cihazlarla verimli iletişimin çok önemli olduğu tarım, giyilebilir cihazlar ve endüstriyel otomasyon gibi çeşitli alanlar için geçerlidir.

CoAP MQTT HTTP AMQP
Nakliye UDP TCP TCP TCP
Çok noktaya yayın desteği Evet Hayır Hayır Hayır
Başlık boyutu 4 Bayt 2 Bayt Değişken 8 Bayt
İletişim türü İstek - Yanıt Yayınla - Abone Ol İstek - Yanıt Yayınla - Abone Ol
QoS Onaylanabilir Mesaj\ Onaylanamaz Mesaj 0 - En fazla bir kez,
1 - En az bir kez,
2 - Tam olarak bir kez
Sınırlı (Aktarım Protokolü - TCP aracılığıyla) Yerleşmek (en fazla bir kez gibi)/ Yerleşmemek (en az bir kez gibi)
Gecikme Düşük Orta Yüksek Düşük
Kaynak kullanımı Düşük Düşük Yüksek Yüksek
Dinamik keşif Evet Hayır Hayır Hayır
Mimari stil P2P Broker P2P P2P, Broker
Önbellek ve proxy Evet Kısmi Evet Evet
Verilerin serileştirilmesi Yapılandırılabilir Tanımsız Hayır AMQP Türü tanımlandı
Güvenlik DTLS SSL SSL/TLS TLS
Enerji tüketimi Düşük Orta düzeyde Yüksek Çok yüksek
Birlikte Çalışabilirlik Evet Hayır Evet Evet

CoAP nasıl çalışır?

CoAP, IoT'nin kaynak kısıtlı dünyasında verimli iletişim için kolaylaştırılmış bir istemci-sunucu dansı üzerinde çalışır. İşte temel değişim:

  • İstemci başlatır: Kaynakları kısıtlı bir cihaz (istemci), istenen işlemi (GET, PUT, vb.) ve veri kaynağını (kaynak tanımlayıcı) belirten bir CoAP isteği gönderir.
  • UDP teslimatı: CoAP, mesaj aktarımı için UDP kullanır ve ek yükü azaltmak için garantili teslimat yerine hıza öncelik verir.
  • Mesaj türleri: CoAP mesaj türleri ile esneklik sunar. Onaylanabilir mesajlar yeniden iletimlerle güvenilirliğe öncelik verirken, onaylanamayan mesajlar gerçek zamanlı senaryolar için hıza öncelik verir.
  • Sunucu işleme: Sunucu, isteği aldıktan sonra işlem ve kaynak tanımlayıcısına göre işler.
  • Sunucu yanıtı: Sunucu, bir durum kodu (başarı/başarısızlık) ve potansiyel olarak veri veya hata mesajı içeren bir CoAP yanıtı oluşturur.
  • Yanıt teslimi: Sunucu, mesajları içeren yanıtı istemciye göndererek iletişim döngüsünü tamamlar.

Bu verimli değişim, CoAP'nin bant genişliği ve işlem gücünün sınırlı olduğu IoT uygulamalarında mükemmel olmasını sağlar.

"CoAPConnect" ile tanışın

Uygulamalarda CoAP entegrasyonu genellikle bir CoAP adaptasyon kütüphanesi kullanılarak gerçekleştirilir. Ancak bu yaklaşım esnekliği ve hata toleransını sınırlandırırken kaynak yönetiminde zorluklar ortaya çıkarmaktadır. Nagarro, Linux tabanlı sistemler için Yocto tarifleri veya Buildroot paket tanımları aracılığıyla işletim sistemiyle sorunsuz bir şekilde entegre olacak şekilde tasarlanmış bir ara katman hizmeti olan "CoAPConnect" geliştirmiştir. Sistem açılışında otomatik olarak başlayan hizmet, uygulamaların Linux'ta yaygın olarak kullanılan bir IPC mekanizması olan D-Bus aracılığıyla CoAP istemcilerini ve sunucularını kolayca oluşturmasına, yapılandırmasına ve yönetmesine olanak tanır.

Bu tasarım, CoAP'nin karmaşıklığını soyutlayarak geliştiricilerin protokol karmaşıklıkları veya bellek yönetimi hakkında endişelenmeden uygulama mantığına odaklanmalarını sağlar.

Mimarlık

CoAPConnect olmadan

CoAP'yi bir Linux uygulamasına entegre etmek genellikle uygulamanın içine bir CoAP kütüphanesi yerleştirmeyi içerir.

Integrating CoAP into a Linux application

Bu yaklaşım protokol üzerinde esneklik ve doğrudan kontrol sağlarken, önemli zorlukları da beraberinde getirir.

Protokol karmaşıklığı:

  • Uygulamalar mesaj yönetimi, yeniden iletimler ve kaynak kısıtlamaları gibi düşük seviyeli protokol karmaşıklıklarının doğrudan ele alınmasını gerektirir.
  • Bu da geliştirme çabasını ve hata olasılığını artırır.

Kaynak yükü:

  • Kütüphanenin kapladığı alan, kaynak kısıtlaması olan sistemlerde bellek ve CPU üzerinde önemli talepler oluşturabilir.
  • Bu talepler, daha fazla uygulama CoAP kütüphanesinin ayrı örneklerini kullandıkça artar.

Çoklu uygulama senaryolarında verimsizlik:

  • Birden fazla uygulama CoAP işlevselliği gerektirdiğinde, her birinin kendi kütüphane örneğini içermesi gerekir.
  • Bu çoğaltma, gereksiz bellek ve CPU kullanımının yanı sıra ağ kullanımının artmasına neden olur.
  • Kaynak kullanımı, uygulama sayısı ile doğrusal olarak ölçeklenir ve potansiyel olarak cihazı zorlar.

Bakım karmaşıklığı:

  • Kütüphane güncellemeleri her uygulamaya ayrı ayrı uygulanmalıdır, bu da güncelleme sürecini karmaşıklaştırır.
  • Uygulamalar arasındaki sürüm uyumsuzlukları tutarsız davranışlara ve sistem kararsızlığına yol açabilir.

CoAPConnect ile

CoAP için merkezi bir hizmet kullanmak, CoAP kütüphanelerini her uygulamanın içine yerleştirmeye sağlam bir alternatif sunar.

Using a centralized service for CoAP

Nagarro'nun CoAPConnect'i geliştirmeyi kolaylaştırır, kaynak kullanımını optimize eder ve uygulamalara kendi özel gereksinimlerine göre rollerini bir istemci, bir sunucu veya her ikisi olarak yapılandırma esnekliği sağlar.

Aşağıdaki noktalar CoAPConnect'in temel özelliklerini ve teknik avantajlarını vurgulamaktadır:

Basitleştirilmiş protokol yönetimi:

  • CoAPConnect, mesaj işleme, yeniden iletimler ve kaynak yönetimi gibi düşük seviyeli CoAP protokolü ayrıntılarını soyutlar.
  • Bu, bireysel uygulamalar için karmaşıklığı azaltır ve protokole özgü görevleri yönetmek yerine yalnızca temel işlevlerine odaklanmalarını sağlar.

Verimli kaynak kullanımı:

  • CoAPConnect tüm protokol işlemlerini gerçekleştirerek birden fazla uygulamada gereksiz kütüphane örneklerine olan ihtiyacı ortadan kaldırır.
  • Bu sayede bellek, CPU ve ağ kullanımı en aza indirilerek kaynak kısıtlaması olan cihazlar için ideal hale gelir.

Daha kolay yapılandırma:

  • CoAPConnect, bir CoAP bağlantısı kurmak için minimum yapılandırma gerektirir.
  • Uygulamalar dinamik olarak birden fazla oturum oluşturabilir ve gerektiğinde yeni kaynaklar yayınlayabilir.
  • CoAPConnect, her oturumun güvenli veya güvenli olmayan iletişimi seçmesine izin verir.

İkili rol ve P2P desteği:

  • CoAPConnect hem istemci hem de sunucu rollerini destekleyerek uygulamaların gerektiğinde her iki kapasitede de çalışmasına olanak tanır.
  • Peer-to-Peer (P2P) modunda, her uygulama hem istemci hem de sunucu olarak işlev görür ve aracılar olmadan cihazlar arasında doğrudan iletişim sağlar.

Güvenli iletişim:

  • CoAPConnect, CoAP istemcileri ve sunucuları arasında güvenli, şifreli iletişim sağlamak için OSCAR (Open Security for CoAP and REST) kullanır.
  • CoAPConnect, yetkisiz erişime karşı koruma sağlayarak yalnızca yetkili cihazların sistemle etkileşime girebilmesini sağlamak için OSCAR'ın kimlik doğrulama mekanizmalarından yararlanır.
  • OSCAR'ın veri bütünlüğü kontrolleri ile CoAPConnect, iletilen mesajların gerçekliğini garanti ederek güvenilir ve kurcalamaya karşı korumalı iletişim sağlar.

Ölçeklenebilirlik:

  • Tüm uygulamalar CoAPConnect hizmetinin tek bir örneğini paylaştığından, yeni uygulamaların eklenmesi kaynak taleplerini önemli ölçüde artırmaz.
  • Mimari, kaynak kullanımının doğrusal ölçeklendirilmesi olmadan çoklu uygulama senaryolarını destekler.

Bakım kolaylığı ve hata yönetimi:

  • Güncellemeler ve hata düzeltmeleri hizmete uygulanarak tüm uygulamalarda tutarlı davranış sağlanır.
  • Bu, birden fazla uygulamada CoAP işlevselliğini sürdürme ve yükseltme karmaşıklığını azaltır.
  • Bir kütüphanenin aksine, hizmetteki kritik bir hata tüm uygulamanın çalışmasını kesintiye uğratmaz.

CoAPConnect İş AkışıCoAPconnect workflow

CoAPConnect Workflow

Başlatma ve başlatma

Sistem önyüklemesi sırasında CoAPConnect başlatılır ve işlemler arası iletişim için iletişim veriyolu görevi gören D-Bus'a otomatik olarak kaydolur. Bu, CoAPConnect'in başlangıçta uygulamalar tarafından hemen erişilebilir olmasını sağlayarak ek ağ yapılandırmaları olmadan CoAP işlemleri için kullanıma hazır bir ortam sağlar.

D-Bus üzerinden etkileşim

Uygulamalar, D-Bus mesajları aracılığıyla üst düzey komutlar göndererek CoAPConnect ile etkileşime girer. Bu mesajlar genellikle CoAP istemcileri veya sunucuları oluşturma, kaynakları yapılandırma, CoAP istekleri gönderme ve gelen yanıtları işleme talimatlarını içerir. CoAPConnect, komutları mesaj biçimlendirme, yönlendirme ve yanıt işleme gibi CoAP'ye özgü işlemlere çevirmek için dahili mekanizmalar kullanarak bu D-Bus isteklerini işler.

Ağ işleme

CoAPConnect, soket yönetimi de dahil olmak üzere ağ düzeyindeki tüm işlemlerden sorumludur. İletişim için gerekli soketleri açmak ve yapılandırmak için UDP protokolünü (CoAP UDP'ye dayandığından) kullanır. CoAPConnect soketleri belirli portlara ve IP adreslerine bağlar, soket durumlarını yönetir ve sürekli iletişim için açık kalmalarını sağlar. İletişim başlamadan önce yapılandırılırsa, OSCAR asimetrik kriptografi veya önceden paylaşılan anahtarlar kullanarak iletişim kuran varlıklar (istemci ve sunucu) arasında güvenli bir anahtar değişimini kolaylaştırır. Bu anahtar mesajları şifrelemek ve şifrelerini çözmek için kullanılır.

Protokol Kapsülleme

CoAPConnect, CoAP protokol spesifikasyonuna bağlı kalarak CoAP mesajlarını UDP paketlerine kapsüller. Başlık yönetimi (örn. CoAP kodu, belirteç, mesaj kimliği ve seçenekler) dahil olmak üzere mesaj yapısını yönetir ve büyük yükler için doğru segmentasyonu sağlar. Güvenilirlik için, CoAPConnect ayrıca tanımlanmış bir zaman aşımı içinde bir onay almayan mesajların yeniden iletimlerini, yeniden iletim zamanlayıcılarını yönetir ve mesaj durumlarını takip eder. Yapılandırıldığında, CoAPConnect giden verileri şifrelerken gelen verilerin kimliğini doğrular ve şifresini çözer.

Oturum ve kaynak yönetimi

CoAPConnect, CoAP istemcileri ve sunucuları için oturum yönetimi sağlar. Oturum oluşturma, bakım ve sonlandırma dahil olmak üzere her CoAP oturumunun durumunu izler. Kaynak yönetimi için CoAPConnect, sunucu tarafında mevcut olan kaynakların dahili bir kaydını tutar ve her kaynağı ilişkili URI ile eşleştirir. CoAPConnect gelen CoAP isteklerini işler, kaynak kayıt defterini kontrol eder ve yanıtları gerçek zamanlı olarak işler. Ayrıca gözlem ilişkilerini, zaman aşımlarını ve oturumla ilgili diğer öznitelikleri yöneterek kaynakların gerektiğinde istemci etkileşimleri için kullanılabilir olmasını sağlar.

Hata işleme ve yeniden iletim:

CoAPConnect iletişim hatalarını tespit eder ve yeniden iletimleri otomatik olarak yönetir. Onay gerektiren işlemler için CoAP'nin Onaylanabilir mesajlarını (CON) kullanarak güvenilir bir mesaj teslim mekanizmasından yararlanır. Bir CoAP mesajı tanımlanmış bir zaman aşımı süresi içinde yanıt almazsa, CoAPConnect yeniden iletimi tetikler. Ayrıca, hatalı biçimlendirilmiş mesajlar, zaman aşımı koşulları ve ulaşılamayan uç noktalar gibi hata senaryolarını ele alarak güvenilmez ağ ortamlarında bile sağlamlık sağlar. CoAPConnect, yeniden denemeler için üstel geri alma stratejileri kullanır ve aşırı yeniden denemeleri veya paket taşmasını önlemek için yeniden iletim denemelerini izler.

Sonuç

CoAP, kaynakları kısıtlı IoT ortamlarında iletişim için cazip bir seçenek olarak öne çıkmaktadır. Hafif tasarımı, eşzamansız mesajlaşma, yerleşik keşif ve çoklu yayın desteği, onu pille çalışan cihazlar ve dinamik ağlar için ideal hale getirir. Ayrıca CoAP'nin RESTful mimarisine bağlılığı, mevcut HTTP yöntemleri bilgisiyle sorunsuz entegrasyona olanak tanıyarak geliştirici verimliliğini artırır.
Nagarro'nun CoAPConnect ürünü, protokol karmaşıklıklarını soyutlayarak ve kaynak yönetimini merkezileştirerek ürün geliştirme süresini ve maliyetini önemli ölçüde azaltır ve rekabet avantajı sağlar. CoAP, IoT ve Güvenlik uzmanlarımızla etkileşime geçmek ve akıllı ve güvenli IoT cihazları oluşturmak için embedded@nagarro.com adresiyle iletişime geçin.

Yazar
Swanand Purankar
Swanand Purankar
connect