Internet der Dinge: Coaty-Framework 2.0 gibt sich aufgeräumt

Das Open-Source-Framework für Collaborative IoT Coaty bringt in Version 2.0 vor allem eine aufgeräumte, vereinfachte API mit.

Lesezeit: 1 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen

(Bild: NicoElNino/Shutterstock.com)

Von

Das von Siemens vorangetriebene Open-Source-Projekt Coaty ist in Version 2.0 erschienen. Das Framework für Collaborative IoT bringt vor allem Aufräumarbeiten bei der API mit und ist nicht rückwärtskompatibel zu Coaty 1.0. Dabei ist es gleichzeitig für kommende Erweiterungen vorbereitet, die ohne Breaking Changes integriert werden sollen. Der Fokus für die neue Hauptversion lag auf dem Vereinfachen der Programmierschnittstellen und dem Entfernen überflüssiger Funktionen.

Siemens hat Coaty als Middleware für die Kommunikation zwischen Endgeräten im Internet der Dinge entwickelt, die nicht auf eine zentrale Komponente angewiesen ist. Das Framework kombiniert die Eigenschaften von Request-Response-Architekturen wie RPC oder REST mit der von Publish-Subscribe-Architekturen wie MQTT. Alle Endpunkte sind gleichwertig und können sowohl Producers/Requesters als auch Consumers/Responders sein.

Coaty nutzt ereignisgetriebene Kommunikationsabläufe, die wahlweise One-Way/Two-Way- oder One-to-Many/Many-to-Many-Patterns folgen. Eine Anfrage kann mehrere Responses auslösen, die von verschiedenen oder auch demselben Endpunkt kommen. Der Requester entscheidet, ob er beispielsweise nach der ersten Response alle weiteren ignoriert, Antworten über einen bestimmten Zeitraum entgegennimmt oder so lange wartet, bis eine bestimmte Bedingung erfüllt ist.

Coaty kombiniert die Request-Response-Kommunikation mit Publish-Subcribe-Architekturen.

(Bild: coaty.io)

In das nun veröffentlichte Coaty 2.0 ist vor allem das Feedback der Community beziehungsweise Nutzern eingeflossen. Es bringt unter anderem aufgeräumte Objekttypen und ein vereinfachtes Lifecycle-Management. Außerdem haben die Entwickler das Smart Routing neu gestaltet, das. zum Verteilen der Daten von den Quellen zu den Aktoren dient und Backpressure-Ansätze zum Entlasten überforderter Knoten bietet.

Außerdem führt Coaty 2.0 Namespacing ein, um den Netzwerkverkehr zu entlasten, indem die Kommunikation nur zwischen Agenten innerhalb desselben Namensraums stattfindet. Über die Option CommunicationOptions.shouldEnableCrossNamespacing lässt sich weiterhin eine übergreifende Kommunikation für Agenten beispielsweise für das Monitoring aktivieren, das über alle Namespaces hinweg stattfinden soll.

Bei der Open-Source-Freigabe war Coaty war das Framework auf das Entwickeln mit JavaScript und TypeScript ausgelegt. Im Oktober 2019 kam Swift hinzu. Unabhängig von der Programmiersprache sind Anwendungen für Coaty 2 nicht mit Coaty-1-Applikationen kompatibel. Die Entwickler haben Migrationsleitfaden sowohl für Coaty JS als auch für Coaty Swift veröffentlicht.

Weitere Details zu Coaty 2.0 lassen sich der Ankündigung entnehmen. Eine geplante Neuerung hat es nicht ins aktuelle Release geschafft, sie soll aber in Version 2.1 einfließen, das für April geplant ist: Sogenannte Communication Bindings sollen die Transportschicht abstrahieren und damit den Austausch der bisherige Kommunikation über MQTT gegen andere Protokolle beziehungsweise Methoden ermöglichen. (rme)