Services
Mit unseren Services ebnen wir Ihnen den Weg in die digitale Zukunft.
Digital Engineering
Wir realisieren digitale Lösungen, mit denen Sie zum Vorreiter in Ihrem Markt werden.
Intelligent Enterprise
Wir beschleunigen Ihre Transformation zu einem intelligenten Unternehmen.
Experience und Design
Für wirkungsvolle Produkte und Services, die Ihre Kunden lieben.
Events & Webinar
Unsere Eventserien
Featured Event
31 Jul
Sydney Masonic Centre | Australia
Unser jüngster Vortrag
By Kanchan Ray, Dr. Sudipta Seal
video icon 60 mins
Über
Nagarro
Wir sind nicht nur exzellenter
Anbieter digitaler
Lösungen sondern gleichzeitig auch
großartiger Arbeitgeber. Erfahren Sie mehr!
Investor
Relations
Informationen zu Finanzdaten
und Unternehmensführung sowie
Berichte, Ankündigungen
und Events für Investoren.
News &
press releases
Was wir tun und worüber
man spricht.
Nachhaltigkeit
Wir achten auf unsere Umwelt.
Erfahren Sie mehr über unsere Initiativen.
Fluidic Enterprise
Über Agilität hinaus: die Verschmelzung von Technologie und menschlichem Scharfsinn.
Wir sind für Sie da
Willkommen in unserer digitalen Welt.
Vielen Dank für Ihr Interesse. Wie können wir helfen?
 
 
Autor
Swanand Purankar
Swanand Purankar
connect

Das Internet der Dinge (IoT) breitet sich rasch aus und vernetzt alles, vom Kühlschrank bis zur Fabrik. Diese vernetzte Welt bringt jedoch ein neues Problem mit sich: Wie lässt sich eine effiziente Kommunikation zwischen diesen Geräten sicherstellen? Hier kommen Kommunikationsprotokolle ins Spiel, die als Sprache fungieren, die es den Geräten ermöglicht, miteinander zu kommunizieren. Ein solches Protokoll ist CoAP, das eine leichtgewichtige Lösung für ressourcenbeschränkte IoT-Geräte bietet.

Nagarro hat leistungsstarke CoAP-Kommunikationslösungen entwickelt, die den strengen Anforderungen moderner IoT-Anwendungen gerecht werden. Dieser Artikel gibt einen Überblick über CoAP und die Middleware-Lösung CoAPConnect von Nagarro, die eine nahtlose Integration von CoAP in neue und bestehende Anwendungen ermöglicht.

CoAP und andere IoT-Protokolle

Stellen Sie sich ein intelligentes Haus mit Dutzenden von Thermostaten vor, die ständig die Raumtemperaturen überwachen. Herkömmliche Protokolle wie HTTP haben aufgrund der umfangreichen Header und TCP-Verbindungen, die die Batteriekapazität belasten, Probleme. MQTT bietet eine zuverlässige Übertragung, erhöht aber die Komplexität und den Stromverbrauch. CoAP geht als Sieger hervor. Es wurde für Geräte mit eingeschränkten Möglichkeiten entwickelt und reduziert die Datengröße und den Ressourcenverbrauch erheblich.

Dank der optimierten Header von CoAP können Thermostate beispielsweise Daten mit nur 144 mAh/Tag übertragen, verglichen mit 576 mAh bei HTTP. Die Auswirkungen von CoAP gehen über einzelne Geräte hinaus. Stellen Sie sich einen zentralen Hub vor, der diese Thermostate steuert. Dank der geringeren Latenzzeit von CoAP (20-50 ms im Vergleich zu 50-100 ms bei MQTT und 100-200 ms bei HTTP) und dem geringeren Speicherbedarf (1-3 MB im Vergleich zu 3-5 MB bei MQTT und 5-10 MB bei HTTP) kann der Hub Echtzeitdaten empfangen und die Einstellungen effizient anpassen und so eine bessere, energiebewusstere Zukunft schaffen.
Dieses Konzept lässt sich auf verschiedene Bereiche anwenden, z. B. Landwirtschaft, Wearables und Industrieautomatisierung, wo eine effiziente Kommunikation mit ressourcenbeschränkten Geräten entscheidend ist.

CoAP MQTT HTTP AMQP
Transport UDP TCP TCP TCP
Multicast-Unterstützung Ja Nein Nein Nein
Größe des Headers 4 Bytes 2 Bytes Variable 8 Bytes
Art der Kommunikation Anfrage - Antwort Veröffentlichen - Abonnieren Anfrage - Antwort Veröffentlichen - Abonnieren
QoS Bestätigbare Nachricht\ Nicht bestätigbare Nachricht 0 - Höchstens einmal,
1 - Mindestens einmal,
2 - Genau einmal
Begrenzt (über Transportprotokoll - TCP) Settle (wie höchstens einmal)/ Unsettle (wie mindestens einmal)
Latenzzeit Gering Mittel Hoch Niedrig
Ressourcenverbrauch Niedrig Niedrig Hoch Hoch
Dynamische Erkennung Ja Nein Nein Nein
Art der Architektur P2P Makler P2P P2P, Makler
Cache und Proxy Ja Teilweise Ja Ja
Serialisierung von Daten Konfigurierbar Undefiniert Nein AMQP-Typ definiert
Sicherheit DTLS SSL SSL/TLS TLS
Stromverbrauch Gering Mäßig Hoch Sehr hoch
Interoperabilität Ja Nein Ja Ja

Wie funktioniert CoAP?

CoAP arbeitet mit einem optimierten Client-Server-Tanz für eine effiziente Kommunikation in der ressourcenbeschränkten Welt des IoT. Hier ist der Kern des Austauschs:

  • Der Client initiiert: Ein ressourcenbeschränktes Gerät (Client) sendet eine CoAP-Anfrage mit Angabe der gewünschten Operation (GET, PUT usw.) und der Datenquelle (Ressourcenkennung).
  • UDP-Zustellung: CoAP verwendet UDP für den Nachrichtentransport, wobei die Geschwindigkeit Vorrang vor der garantierten Zustellung hat, um den Overhead zu reduzieren.
  • Nachrichtentypen: CoAP bietet Flexibilität bei den Nachrichtentypen. Bestätigbare Nachrichten haben Vorrang vor der Zuverlässigkeit durch erneute Übertragungen, während nicht bestätigbare Nachrichten den Vorrang vor der Geschwindigkeit für Echtzeitszenarien haben.
  • Server-Verarbeitung: Nach dem Empfang der Anfrage verarbeitet der Server diese auf der Grundlage des Vorgangs und der Ressourcenkennung.
  • Server-Antwort: Der Server erzeugt eine CoAP-Antwort, die einen Statuscode (Erfolg/Misserfolg) und möglicherweise Daten oder eine Fehlermeldung enthält.
  • Zustellung der Antwort: Der Server sendet die Antwort, die Nachrichten enthält, an den Client und schließt damit den Kommunikationszyklus ab.

Dank dieses effizienten Austauschs eignet sich CoAP hervorragend für IoT-Anwendungen, bei denen Bandbreite und Verarbeitungsleistung begrenzt sind.

Einführung von "CoAPConnect"

Die Integration von CoAP in Anwendungen wird in der Regel mit einer CoAP-Anpassungsbibliothek implementiert. Dieser Ansatz bringt jedoch Herausforderungen bei der Ressourcenverwaltung mit sich und schränkt gleichzeitig die Flexibilität und Fehlertoleranz ein. Nagarro hat einen Middleware-Dienst, "CoAPConnect", für Linux-basierte Systeme entwickelt, der sich über Yocto-Rezepte oder Buildroot-Paketdefinitionen nahtlos in das Betriebssystem integrieren lässt. Der Dienst startet automatisch beim Systemstart und ermöglicht es Anwendungen, CoAP-Clients und -Server über D-Bus, einen weit verbreiteten IPC-Mechanismus in Linux, zu erstellen, zu konfigurieren und zu verwalten.

Dieses Design abstrahiert die Komplexität von CoAP und ermöglicht es Entwicklern, sich auf die Anwendungslogik zu konzentrieren, ohne sich um die Feinheiten des Protokolls oder die Speicherverwaltung zu kümmern.

Architektur

Ohne CoAPConnect

Die Integration von CoAP in eine Linux-Anwendung beinhaltet in der Regel die Einbettung einer CoAP-Bibliothek in die Anwendung selbst.

Integrating CoAP into a Linux application

Dieser Ansatz bietet zwar Flexibilität und direkte Kontrolle über das Protokoll, bringt aber auch erhebliche Herausforderungen mit sich.

Komplexität des Protokolls:

  • Anwendungen erfordern eine direkte Handhabung von Low-Level-Protokoll-Feinheiten wie Nachrichtenmanagement, erneute Übertragungen und Ressourcenbeschränkungen.
  • Dies erhöht den Entwicklungsaufwand und die Wahrscheinlichkeit von Fehlern.

Ressourcen-Overhead:

  • Der Fußabdruck der Bibliothek kann auf ressourcenbeschränkten Systemen erhebliche Anforderungen an Speicher und CPU stellen.
  • Diese Anforderungen nehmen zu, je mehr Anwendungen separate Instanzen der CoAP-Bibliothek verwenden.

Ineffizienz in Szenarien mit mehreren Anwendungen:

  • Wenn mehrere Anwendungen CoAP-Funktionen benötigen, muss jede ihre eigene Instanz der Bibliothek enthalten.
  • Diese Duplizierung führt zu einer redundanten Speicher- und CPU-Nutzung sowie zu einer erhöhten Netzwerkauslastung.
  • Die Ressourcennutzung skaliert linear mit der Anzahl der Anwendungen, was zu einer Überlastung des Geräts führen kann.

Komplexität der Wartung:

  • Aktualisierungen der Bibliothek müssen für jede Anwendung einzeln durchgeführt werden, was den Aktualisierungsprozess erschwert.
  • Versionsabweichungen zwischen Anwendungen können zu inkonsistentem Verhalten und Systeminstabilität führen.

Mit CoAPConnect

Die Verwendung eines zentralisierten Dienstes für CoAP bietet eine robuste Alternative zur Einbettung von CoAP-Bibliotheken in jede Anwendung.

Using a centralized service for CoAP

CoAPConnect von Nagarro rationalisiert die Entwicklung, optimiert die Ressourcennutzung und bietet Anwendungen die Flexibilität, ihre Rolle als Client, Server oder beides zu konfigurieren, je nach ihren spezifischen Anforderungen.

Die folgenden Punkte heben die wichtigsten Merkmale und technischen Vorteile von CoAPConnect hervor:

Vereinfachte Protokollverwaltung:

  • CoAPConnect abstrahiert die Details des CoAP-Protokolls auf niedriger Ebene, wie z. B. die Behandlung von Nachrichten, erneute Übertragungen und das Ressourcenmanagement.
  • Dies reduziert die Komplexität für einzelne Anwendungen, so dass diese sich ausschließlich auf ihre Kernfunktionalität konzentrieren können, anstatt protokollspezifische Aufgaben zu verwalten.

Effiziente Ressourcennutzung:

  • CoAPConnect wickelt alle Protokolloperationen ab, so dass keine redundanten Bibliotheksinstanzen für mehrere Anwendungen erforderlich sind.
  • Dies minimiert die Speicher-, CPU- und Netzwerknutzung und ist somit ideal für Geräte mit eingeschränkten Ressourcen.

Leichtere Konfiguration:

  • CoAPConnect erfordert nur eine minimale Konfiguration, um eine CoAP-Verbindung aufzubauen.
  • Anwendungen können dynamisch mehrere Sitzungen erstellen und bei Bedarf neue Ressourcen veröffentlichen.
  • CoAPConnect ermöglicht jeder Sitzung die Wahl zwischen gesicherter und ungesicherter Kommunikation.

Unterstützung von zwei Rollen und P2P:

  • CoAPConnect unterstützt sowohl die Client- als auch die Server-Rolle, so dass Anwendungen je nach Bedarf in beiden Funktionen arbeiten können.
  • Im Peer-to-Peer (P2P)-Modus fungiert jede Anwendung sowohl als Client als auch als Server und ermöglicht so die direkte Kommunikation zwischen Geräten ohne Vermittler.

Sichere Kommunikation:

  • CoAPConnect verwendet OSCAR (Open Security for CoAP and REST), um eine sichere, verschlüsselte Kommunikation zwischen CoAP-Clients und Servern zu ermöglichen.
  • CoAPConnect nutzt die Authentifizierungsmechanismen von OSCAR, um sicherzustellen, dass nur autorisierte Geräte mit dem System interagieren können, und schützt so vor unberechtigtem Zugriff.
  • Mit den Datenintegritätsprüfungen von OSCAR garantiert CoAPConnect die Authentizität der übertragenen Nachrichten und gewährleistet so eine zuverlässige und fälschungssichere Kommunikation.

Skalierbarkeit:

  • Das Hinzufügen neuer Anwendungen erhöht den Ressourcenbedarf nicht wesentlich, da sich alle Anwendungen eine einzige Instanz des CoAPConnect-Dienstes teilen.
  • Die Architektur unterstützt Multi-Applikations-Szenarien ohne lineare Skalierung der Ressourcennutzung.

Einfache Wartung und Fehlermanagement:

  • Aktualisierungen und Fehlerkorrekturen werden auf den Dienst angewendet, um ein einheitliches Verhalten aller Anwendungen zu gewährleisten.
  • Dadurch wird die Komplexität der Wartung und Aktualisierung der CoAP-Funktionalität über mehrere Anwendungen hinweg reduziert.
  • Im Gegensatz zu einer Bibliothek unterbricht ein kritischer Fehler im Dienst nicht den Betrieb der gesamten Anwendung.

CoAPConnect ArbeitsablaufCoAPconnect workflow

CoAPConnect Workflow

Initialisierung und Startup

Während des Systemstarts wird CoAPConnect initialisiert und meldet sich automatisch am D-Bus an, der als Kommunikationsbus für die Interprozesskommunikation dient. Dadurch ist CoAPConnect für Anwendungen beim Start sofort zugänglich und bietet eine sofort einsatzbereite Umgebung für CoAP-Operationen ohne zusätzliche Netzwerkkonfigurationen.

Interaktion über D-Bus

Anwendungen interagieren mit CoAPConnect, indem sie High-Level-Befehle über D-Bus-Nachrichten senden. Diese Nachrichten enthalten typischerweise Anweisungen zum Erstellen von CoAP-Clients oder -Servern, zum Konfigurieren von Ressourcen, zum Senden von CoAP-Anfragen und zum Verarbeiten eingehender Antworten. CoAPConnect verarbeitet diese D-Bus-Anfragen und verwendet interne Mechanismen, um die Befehle in CoAP-spezifische Operationen zu übersetzen, wie z.B. Nachrichtenformatierung, Routing und Antwortbehandlung.

Handhabung des Netzwerks

CoAPConnect ist für alle Operationen auf Netzwerkebene zuständig, einschließlich der Socket-Verwaltung. Es nutzt das UDP-Protokoll (da CoAP auf UDP basiert), um die für die Kommunikation erforderlichen Sockets zu öffnen und zu konfigurieren. CoAPConnect bindet die Sockets an bestimmte Ports und IP-Adressen, verwaltet den Socket-Status und stellt sicher, dass sie für eine kontinuierliche Kommunikation offen bleiben. Wenn OSCAR vor Beginn der Kommunikation konfiguriert wird, ermöglicht es einen sicheren Schlüsselaustausch zwischen den kommunizierenden Einheiten (Client und Server) unter Verwendung von asymmetrischer Kryptographie oder Pre-Shared Keys. Dieser Schlüssel wird zum Ver- und Entschlüsseln der Nachrichten verwendet.

Protokoll-Kapselung

CoAPConnect kapselt CoAP-Nachrichten in UDP-Pakete ein und hält sich dabei an die CoAP-Protokollspezifikation. Es kümmert sich um den Aufbau der Nachrichten, einschließlich der Header-Verwaltung (z. B. CoAP-Code, Token, Nachrichten-ID und Optionen), und sorgt für eine korrekte Segmentierung bei großen Nutzdaten. Um die Zuverlässigkeit zu gewährleisten, kümmert sich CoAPConnect auch um die erneute Übertragung von Nachrichten, die innerhalb einer bestimmten Zeitspanne keine Bestätigung erhalten haben, und verwaltet die Zeitgeber für die erneute Übertragung sowie den Status der Nachrichten. Wenn konfiguriert, verschlüsselt CoAPConnect die ausgehenden Daten und authentifiziert und entschlüsselt die eingehenden Daten.

Sitzungs- und Ressourcenmanagement

CoAPConnect bietet Sitzungsverwaltung für CoAP-Clients und -Server. Es verfolgt den Status jeder CoAP-Sitzung, einschließlich der Erstellung, Wartung und Beendigung von Sitzungen. Für die Ressourcenverwaltung unterhält CoAPConnect ein internes Verzeichnis der auf der Serverseite verfügbaren Ressourcen und ordnet jede Ressource dem zugehörigen URI zu. CoAPConnect verarbeitet eingehende CoAP-Anfragen, prüft die Ressourcenregistrierung und verarbeitet Antworten in Echtzeit. Außerdem verwaltet es Beobachtungsbeziehungen, Zeitüberschreitungen und andere sitzungsbezogene Attribute und stellt sicher, dass die Ressourcen bei Bedarf für Client-Interaktionen zur Verfügung stehen.

Fehlerbehandlung und erneute Übertragung:

CoAPConnect erkennt Kommunikationsfehler und verwaltet erneute Übertragungen automatisch. CoAPConnect nutzt einen zuverlässigen Mechanismus zur Nachrichtenübermittlung unter Verwendung der Confirmable Messages (CON) von CoAP für Transaktionen, die eine Bestätigung erfordern. Wenn eine CoAP-Nachricht nicht innerhalb einer bestimmten Zeitspanne beantwortet wird, löst CoAPConnect eine erneute Übertragung aus. Darüber hinaus behandelt es Fehlerszenarien wie fehlerhafte Nachrichten, Timeout-Bedingungen und unerreichbare Endpunkte und gewährleistet so Robustheit auch in unzuverlässigen Netzwerkumgebungen. CoAPConnect verwendet exponentielle Backoff-Strategien für Wiederholungen und verfolgt die Wiederholungsversuche, um übermäßige Wiederholungen oder Paketfluten zu vermeiden.

Fazit

CoAP ist eine überzeugende Wahl für die Kommunikation in ressourcenbeschränkten IoT-Umgebungen. Sein leichtgewichtiges Design, asynchrone Nachrichtenübermittlung, integrierte Erkennung und Multicast-Unterstützung machen es ideal für batteriebetriebene Geräte und dynamische Netzwerke. Darüber hinaus ermöglicht die Einhaltung der RESTful-Architektur von CoAP eine nahtlose Integration mit vorhandenem Wissen über HTTP-Methoden, was die Effizienz der Entwickler erhöht.
Durch die Abstrahierung der Protokollkomplexität und die Zentralisierung der Ressourcenverwaltung reduziert CoAPConnect von Nagarro die Produktentwicklungszeit und -kosten erheblich und bietet damit einen Wettbewerbsvorteil. Kontaktieren Sie embedded@nagarro.com, um mit unseren CoAP-, IoT- und Sicherheitsexperten zu kommunizieren und intelligente und sichere IoT-Geräte zu entwickeln.

Tags

IoT, eingebettete Systeme, Optimieren Sie

Autor
Swanand Purankar
Swanand Purankar
connect
Tags

IoT, eingebettete Systeme, Optimieren Sie