Viele IoT-Geschäftsmodelle sind nur mit Hilfe global nutzbarer Konnektivität möglich, wobei aus Gründen der Prozessoptimierung und Kostenminimierung eine intelligente Reduzierung der Datenmenge bereits am Ort ihrer Entstehung stattfinden sollte. Die Lösung dafür sind IoT-Edge-Gateways, welche nahe der Datenquelle – also am Rand („Edge“) des weltweiten Kommunikationsnetzes – positioniert und zu einer intelligenten Datenvorverarbeitung befähigt sind.

Als Hilfestellung bei der Auswahl des richtigen IoT Edge-Gateways vergleichen wir für Euch in einer Video-Serie im Rahmen des SIC! TechTalks die Vor- und Nachteile von aktuell am Markt befindlichen IoT-Edge-Gateway Devices.

Neben den Hardware-Eigenschaften werden insbesondere die nicht sofort so offensichtlich erkennbaren Vor- und Nachteile rund um die Software untersucht, gezeigt und erläutert, wie z.B.

  • welches Betriebssystem kommt zum Einsatz?
  • wie sind die Konzepte zur Verwaltung eigener Software?
  • wie steht es um das Thema Updatebarkeit (a. der eigenen Software / b. des Betriebssystem selbst)?
  • wie sieht es mit der Zukunftssicherheit aus?

 




Der IoT-Edge-Gateway-Vergleich wird fortgesetzt,

Videos zu weiteren IoT Edge Devices folgen in Kürze!

 


Edge Computing in der Praxis

Unsere Expertise im Bereich IoT in der Cloud und Embedded Engineering hat bereits zum Erfolg von zahlreichen Innovationen beigetragen.

Einige Beispiele aus der Praxis für den Einsatz von IoT Edge Gateway Devices finden Sie in unseren IoT-Projekt-Referenzen.


Warum Edge Computing?

Erfahren Sie, wie wir den Wert von Daten steigern und die IoT-Cloud-Kosten senken indem wir Sensor-Daten bereits auf den Edge Devices für die Cloud mit AWS Greengrass veredeln:

Vorteile und Funktionen mit Edge Computing


Kostenfreie IoT Projekt-Beratung

Sie haben ein IoT Projekt und benötigen Unterstützung? Profitieren Sie bei unserem „Experten-Feedback“ Angebot von unserem Know-how und der langjährigen Erfahrung aus zahlreichen IoT-Projekten. In einer kostenfreien Online-Beratungsstunde erhalten Sie Feedback für Ihre IoT-Cloud-Projekte von unseren IoT-Spezialisten sowie Best Practice Tipps.

Mehr Info


 

Eine grundlegende Anforderung vieler IoT Projekte ist die Visualisierung der Daten, egal ob Sensor- oder Maschinendaten. Insbesondere steht gerade zu Beginn vieler Projekte eine Visualisierung der Daten direkt am Edge ganz oben auf der Wunschliste von Kunden, aber auch dem Entwickler selbst.

Bei dieser Anforderung geht es in erster Linie darum, schnell und einfach Feintuning an den erhobenen Daten vorzunehmen oder einfach nur zu sehen, ob Sensoren richtig positioniert oder kalibriert sind.

In vielen IoT Projekten und bei Demonstratoren auf Messen sehen wir immer wieder Node-RED als das Mittel der Wahl, um Dashboards auf IoT Edge Geräten zu bauen und diese initiale Visualisierung der Daten zu ermöglichen.

Ohne Frage ist das sicher eine Möglichkeit, vergleichsweise schnell und mit wenigen oder keinen Programmierkenntnissen Datenvisualisierung zu betreiben.

Allerdings hat die Nutzung von Node-RED in der Praxis auch viele Einschränkungen, die uns bewogen haben, hier einen etwas anderen Weg zu gehen. Auch wenn es in Node-RED sehr einfach erscheint, Dashboards zu bauen, so sind diese jedoch trotzdem relativ starr. Sobald sich an den eingehenden Daten etwas verändert – und sei es nur ein neuer Sensorwert – muss sofort wieder am Dashboard Hand angelegt werden. Scripte werden angepasst, neue Widgets werden angelegt und positioniert etc.

Zudem sind die Daten dann meist auch verloren, wenn man sich nicht die Mühe gemacht hat, diese auch in einer Datenbank zwischenzuspeichern.

Um das alles flexibler zu gestalten, bietet sich der Technologistack von Influx, der sogenannte „TICK Stack“ an. TICK steht hier für Telegraf – InfluxDB – Chronograf – Kapacitor. InfluxDB stellt hier den Kern als TimeSeries Datenbank dar. Telegraf ist die universale Waffe, um die Daten von beliebigen Quellen in die Datenbank zu bekommen und Chronograf ist für die Visualisierung zuständig.

Wie sieht das in der Praxis also aus:

 

Die Daten werden vom Sensor oder der Maschine an einen MQTT Broker (z.B. Mosquito) geschickt.

Der Telegraf kann mit Bordmitteln auf den MQTT Broker auf beliebige Topics subscriben und diese Daten dann direkt an die Datenbank weitergeben. Der Vorteil, der diese Konstellation so flexibel macht, ist die Tatsache, dass man nirgends spezifizieren muss, welche Daten erwartet werden. Solange die MQTT Payload aus Key/Value Werten besteht, werden diese alle einfach in die Datenbank übernommen. Wenn einer dazu kommt, muss nichts verändert werden.

Entscheidend ist hier die Konfiguration des MQTT Consumer Plugin:

https://github.com/influxdata/telegraf/tree/master/plugins/inputs/mqtt_consumer

Zum einen muss das Topic spezifiziert werden. In diesem Beispiel würde alles, was unterhalb von Sensor gepublished wird, in die Datenbank übernommen.

topics = [

„sensors/#“,

]

 

Am Ende der Config ist es noch wichtig, das Datenformat zu spezifizieren:

data_format = „json“

 

Ist das gemacht, landen alle Daten vom MQTT Broker automatisch in der Datenbank.

Die Payload des MQTT sollte dieses Format haben:

{

„Druck“: 100,

„Temperatur“: 34.2

}

Damit ist die Arbeit auch schon getan, denn der Chronograf wird diese Daten über den Explore direkt für die Visualisierung zugänglich haben.

Jetzt kann ich ohne weitere Konfiguration mit beliebigen Sensordaten arbeiten und muss mich nicht mehr um die Konfiguration dieser Kette kümmern.

Als weiterer kleiner Nebeneffekt überwacht der Telegraf auch noch den Host und man bekommt ein Systemmonitoring (Speicher/CPU/Festplatte) zusätzlich geschenkt.


Download

Hier können Sie das Beispielprojekt für die HARTING MICA als Datei downloaden:

SIC-TICK-Container_v1.0.tar


Video

Hier finden Sie ein Anleitungsvideo, in dem Schritt für Schritt gezeigt wird, wie man mit dem von SIC! Software bereitgestellten Container für die HARTING MICA den TICK Stack von InfluxDB deployen und damit sehr einfach Maschinen- bzw. Sensordaten in einer Datenbank auf dem Gateway speichern und auf einem Dashboard ganz einfach visualisieren kann.

Video: Flexible IoT Edge Datenverarbeitung mit dem TICK Stack


Stehen Sie aktuell vor einer Edge Computing Herausforderung?

Gerne unterstützen unsere IoT Experten Sie bei Ihren Projekten und helfen Ihnen dabei, möglichst optimale Lösungen zu finden.

Sprechen Sie uns an: Kontakt


 

 

Überall dort wo Cloud-Computing auf die Steuerung und Überwachung im Feld trifft und dies zudem zuverlässig funktionieren muss, wird oft auf Edge-Computing zurückgegriffen.
Dies hilft beispielsweise Unterbrechungen im Betrieb zu vermeiden, da das Gesamtsystem auch ohne eine permanente Online-Verbindung über ein Netzwerk weiter funktioniert.
In der Cloud selbst (und dies gilt auch für jedes vernünftige Rechenzentrum) ist es hier ohne Probleme möglich, eine entsprechende Verfügbarkeit zu gewährleisten.
Wendet man den Blick aber in Richtung Edge, sieht die Welt wieder ganz anders aus: Keine redundante Internetanbindung/-Infrastruktur, Zuständigkeiten verschiedenster Dienstleister/Provider und Netzwerke zwischen Rechenzentrum und Edge-Device.
Hier kann dann schnell mal etwas schiefgehen oder einfach ausfallen – die Fehlerquellen sind sehr vielfältig. Eine Analyse der Probleme ist jedoch unter diesen Umständen relativ zeitraubend und aufwendig.
Aber schieben wir diese sehr kurze Einführung in das Thema Edge-Computing beiseite und betrachten das hieraus resultierende Problem:

Wie verwalte ich die Edge-Devices am besten?

Hat man bereits ein Cloud-Setup für seine IT-Infrastruktur und nutzt hier die Vorteile wie beispielsweise IaC (Infrastrucute-as-Code) und CD (Continuous-Delivery), meldet sich sofort dieses unangenehme Gefühl in der Magengegend, das einem nichts Gutes signalisiert, da solche Tools und Workflows für Edge-Computing – wenn überhaupt – nur sehr schwer umzusetzen sind.
Um genau dieses Thema zu adressieren, haben die großen Cloud Anbieter – und hier allen voran AWS – entsprechende Frameworks für Edge Devices geschaffen. Mit AWS Greengrass steht ein mächtiges Werkzeug zur Verfügung, um Komfortfunktionen, wie man sie aus der Cloud Welt kennt, auch auf einem Edge Device zur Verfügung zu haben.
Zu den wichtigsten Funktionen zählen:

  • Sicherer Remote Zugriff auf die Geräte (Tunnel)
  • Verwaltung von Software, insbesondere die Verteilung von Updates
  • Sicherer Datenkanal in die Cloud mit automatischer Zwischenspeicherung für den Fall, dass die Verbindung nicht möglich ist
  • Eine Laufzeitumgebung, um z.B. Serverless-Anwendungen, wie z.B. Lambda auszuführen

Der Workflow sieht dabei primär vor, die Greengrass Installation in einen Container zu packen und diesen auf dem Edge-Device laufen zu lassen. Da sich tendenziell auch viel häufiger Änderungen an der Anwendung selbst ergeben, als es z.B. nötig ist, eine neue Greengrass Version einzusetzen oder die Firmware des Edge-Devices zu aktualisieren, ist hiermit zumindest schon einmal ein großer Teil der Deployments von Änderungen an der Software sehr einfach möglich.

Firmware und Betriebssystemupdates

Was ist aber mit dem ganzen Rest: Updates von Greengrass selbst, das Betriebssystem, sonstige Systemkomponenten, wie Treiber, Bibliotheken, usw.?
Auch diese Teile des Systems müssen regelmäßig aktualisiert werden!
Um dies zu ermöglichen, ist ein Edge-Device mit einer zuverlässigen Gesamtarchitektur notwendig. Das bedeutet, das es möglich sein muss, die Basis Softwarekomponenten upzudaten, ohne hier im Urschleim der Linux Paketverwaltung herumzuwühlen.
Aus unserer Sicht hat HARTING hier mit der MICA Box ein hervorragendes Gesamtsystem gebaut, welches den Betreiber von diesen Arbeiten großenteils entlastet.
Was bedeutet das in der Praxis?
Bei der HARTING MICA stellt der Hersteller das Basissystem (Linux) sowie diverse Funktionscontainer zur Verfügung. Das Besondere dabei ist der Umstand, dass alle vom Hersteller gelieferten Container mit einer Web-Socket Schnittstelle ausgestattet sind. Damit wird es einem ermöglicht, sehr einfache die Container zu Verwalten und zu Konfigurieren.
Auf diese Weise ist es mit sehr geringem Aufwand möglich, über den von SIC! Software verfügbaren Greengrass Container alle anderen Container auf der MICA und das Betriebssystem selbst über einige wenige API-Aufrufe vollständig zu steuern. Der Greengrass Container ist der Master und somit in der Lage, neue Container zu installieren, bestehende Upzudaten, etc.
Ohne die Bereitstellung dieser Basisfunktionalität von HARTING müsste der geneigte Nutzer das alles selbst in die Hand nehmen. Insbesondere das Update der Basissoftware eines Edge-Device, wie der MICA, ist ohne diese Vorarbeiten nur mit erheblichem Entwicklungsaufwand zu bewerkstelligen.
Um dies zu gewährleisten greift Harting hier auf Container zurück.
Allerdings setzt man hier aufgrund der nur geringen Hardware-Ressourcen, die in der Regel auf einem Edge-Device zur Verfügung stehen, nicht auf Technologien wie Docker oder Podman, sondern verwendet die Basis-Technologie LXC.
Mit Containern kann man alle diese Abhängigkeiten als ein einzelnes Image zur Verfügung stellen, dass mit wenig Handgriffen installiert bzw. aktualisiert werden kann.
Nachdem nun die Application(s) sowie das Image über eine CD-Pipeline ausgerollt werden können, bleibt noch die Aktualisierung des Host-OS bzw. der Firmware selbst.
Hier gilt es ein Edge-Device auszuwählen, das per Netzwerk aktualisiert werden kann.
Integrieren wir nun unseren Management-Dienst mit AWS Greengrass, erhalten wir einen zentralen Management-Hub in der Cloud, der alle Teilbereiche unseres Edge-Devices verwaltet – von Firmware über LXC-Container bis hin zur Greengrass Installation.
Und damit ist dann das Ziel eines jeden Systemadministrators erreicht: Ein transparenter, durchgängiger Prozess, um alle Ebenen der Software eines professionell eingesetzten Edge-Computing-Devices zu verwalten.

Fazit

Unter Verwendung der HARTING MICA und von AWS Greengrass lassen sich grundsätzlich alle Aspekte eines Edge-Devices zentral verwalten. Integrieren wir diese nun in einen Management-Dienst, erhalten wir einen zentralen Management-Hub, der alle Teilbereiche unseres Edge-Devices verwaltet – von Firmware über LXC-Container bis hin zur Greengrass Installation. Außerdem lassen sich so der Status und die Zustände aller Komponenten zentral überwachen, und im Falle von Problemen können diese schnell identifiziert werden oder sogar vor dem Eintreten erkannt und beseitigt werden.


Einige IoT Praxis-Beispiele für den Einsatz der der HARTING MICA mit AWS Greengrass finden Sie bei unseren IoT Case Studies.

Z.B. beim Technologiedemonstrator für vernetzte Ventilatoren, einem Projekt der Firma Rosenberg Ventilatoren:

 


Stehen Sie aktuell vor einer Edge Computing Herausforderung?

Gerne unterstützen unsere IoT Experten Sie bei Ihren Projekten und helfen Ihnen dabei, möglichst optimale Lösungen zu finden.

Sprechen Sie uns an: Kontakt

 


 

Ein seit mehr als 50 Jahren bekanntes Geschäftsmodell erlangt durch die Möglichkeiten der Digitalisierung mit einem Mal ein komplett neues Gewicht und hat weltweit bereits mehr als 50 % aller Fertigungsunternehmen dazu gebracht, ihr Geschäftsmodell zu überdenken und teilweise sogar vollkommen umzukrempeln. Die Rede ist von „Servitization“. Doch was ist das und wem nützt es wirklich?


Was ist Servitization?

„Servitization ist eine Geschäftsmodellinnovation, die für produzierende Unternehmen relevant ist und die Änderung des bisherigen Angebotsportfolios weg von nur Sachgütern und hin zu einer Kombination aus Sachgütern und Dienstleistungen bezeichnet. Damit spiegelt sie den gesamtwirtschaftlichen Trend zur Dienstleistungsgesellschaft auf Unternehmensebene wider.“ – Wikipedia

Anders gesagt: Hersteller ergänzen ihre Produkte durch Services oder tauschen diese sogar komplett damit aus. Dabei sind viele unterschiedliche individuelle Implementierungen möglich und es lassen sich drei grundsätzliche Service-Typen unterscheiden: Base Services, Intermediate Services und Advanced Services. [1]

  • Base Services sind solche Dienstleistungen, die zusätzlich zur Produktbereitstellung kommen. Dies ist in der Regel eine Bereitstellung von zusätzlichen zugehörigen Produkten, wie zum Beispiel Ersatzteile.
  • Intermediate Services dienen dazu, die Funktion eines Produktes und dessen Leistungsfähigkeit zu garantieren, beispielsweise durch Überwachung des Betriebs und präventive Wartungsarbeiten.
  • Advanced Services bedeuten, dass ein Kunde kein physisches Produkt, sondern anstelle dessen eine Leistung erwirbt und pro solch einer erbrachten Leistung bezahlt. Es findet hier vermehrt kein Eigentumswechsel des Produktes statt. Denkbar sind hier viele verschiedene Möglichkeiten.

Ein bekanntes und oft zitiertes Beispiel für die Anwendung eines Advanced Service, bietet der Triebwerkhersteller Bristol Siddeley. Dieser hat mit dem „Power-by-the Hour“-Modell bereits in den 1960er Jahren ein Servitization-Modell eingeführt. Nachdem Bristol Siddeley 1968 von Rolls Royce gekauft wurde, wurde das Konzept aufgegriffen, ausgebaut und seitdem als Service namens TotalCare bis heute angeboten.
Dabei geht es darum, die Triebwerke für Flugzeuge nicht mehr im klassischen Sinne an den Flugzeugbauer zu verkaufen. Der Flugzeugbauer bezahlt lediglich für die tatsächlichen Betriebsstunden des Triebwerks. Das Gerät bleibt dabei vollständig Eigentum von Rolls Royce, die sich dann auch um Wartung und Reparatur kümmern. Rolls-Royce war es so möglich, die Erlösströme zu stabilisieren und höhere Umsätze zu erzielen. Gleichzeitig bietet es dem Kunden wiederum planbare Betriebskosten, reduzierte finanzielle Risiken und ein effizienteres und zuverlässigeres Produkt.

Servitization findet aber auch vereinzelt in anderen Branchen Anwendung. Während Beispiele wie die Betreuung einer Maschine durch den Hersteller relativ naheliegend sind, findet man Servitization auch immer häufiger in zunächst unüblich erscheinenden Bereichen. So hat zum Beispiel das schwedische Bauunternehmen Skanska ein Krankenhaus gebaut und ist nun im Anschluss auch der Betreiber des Krankenhauses.

Ein Servitization Potenzial liegt für einen Hersteller meistens dann vor, wenn die Service-Angebote außerhalb der Kernkompetenz des Kunden liegen. Es entsteht durch sie also zusätzlicher Aufwand und Kosten und somit kein Gewinn für den Kunden.

 

Vorteile durch Servitization

Für Hersteller und Kunden bietet Servitization einen gemeinsamen Fokus auf den reibungslosen Betrieb. Es ergibt sich für Hersteller und Kunde eine Angleichung der Anforderungen an das Produkt. Für Kunden steht in der Regel ein möglichst effizientes und langlebiges Produkt im Vordergrund. Der Hersteller verdient allerdings unter Umständen mehr an seinem Produkt, wenn es gegen Abrechnung repariert wird oder wenn aufgrund eines Defektes ein neues (Austausch-) Produkt verkauft werden kann. Durch Servitization entsteht nun ein Zustand, indem sowohl für den Kunden, als auch den Hersteller, ein wartungsarmes Produkt den größten finanziellen als auch wirtschaftlichen Nutzen bietet.
Da der Hersteller nun auch z.B. für die Wartung zuständig ist, werden für ihn die Bedürfnisse des Kunden deutlich relevanter. Je zuverlässiger und wartungsärmer das Produkt, um so besser für den Hersteller, da jetzt weniger Wartungsarbeiten ausgeführt werden müssen und mehr Betriebsstunden abgerechnet werden können. Überspitzt könnte man sagen, dass theoretisch betrachtet der Hersteller selber die Rolle übernimmt, die bisher sein Kunde eingenommen hatte. Wenn so die Effizienz und Langlebigkeit von Produkten verbessert werden kann, wird im selben Moment der Betrieb automatisch ressourcenschonender und nachhaltiger.

Darüber hinaus kann man Mithilfe eines Servitization-Modells die Beziehung zu Kunden festigen und vertiefen und es ist einem Unternehmen möglich, sich von seinen Mitbewerbern durch mehr als nur die Produktqualität und den Preis zu differenzieren. Ein Lieferant von Sachgütern lässt sich schneller austauschen, als eine enge Zusammenarbeit mit einem Kunden. Außerdem lässt sich so bei einem Kunden der Ausschluss eines Mitbewerbers erzielen.

Natürlich wirkt sich ein Servitization-Modell auch auf den Umsatz aus. So lässt sich durch Service-Angebote beispielsweise ein stetiger Erlösstrom bilden und damit die Erlöse stabilisieren.
Durch die Positionierung als Dienstleister am Markt, kann zusätzlich auch die Wettbewerbsfähigkeit für die Zukunft gesichert werden.

 

Wann ist Servitization für mich lohnenswert?

Als Hersteller ist es zunächst wichtig zu erkennen, ob Servitization Potential vorhanden ist und worin es liegt. Es gilt herauszufinden, welche Aufgaben ein Produkt bei einem Kunden auslöst und welche dieser Aufgaben der Hersteller selbst bewältigen kann. Diese Aufgaben bilden typischerweise immer dann ein geeignetes Servitization Potential, wenn sie außerhalb der Kernkompetenzen des Kunden aber innerhalb der Kernkompetenzen des Herstellers liegen.

Ein typisches Beispiel wäre hier wieder die Wartung von Maschinen. Wer, wenn nicht der Hersteller selber weiß am besten, wie sich seine Maschinen verhalten sollten und wie sie optimal zu warten sind. Darüber hinaus können aber auch andere Bereiche wie der Betrieb, die Installation oder viele weitere individuelle Vorgänge ein Servitization Potential bergen. Wenn erkannt wurde, in welchen Bereichen Servitization Potential vorhanden ist, sollte geprüft werden ob dies einen wirtschaftlichen Nutzen bietet. Hierfür gibt es verschiedene Anhaltspunkte, z.B.
Wie viele bereits in Betrieb befindliche Einheiten gibt es pro neu Verkaufter Einheit? Je mehr Einheiten sich bereits im Betrieb befinden, um so sinnvoller ist es, mit diesen Geschäfte zu machen, statt sich auf die Geschäfte mit neuen Einheiten zu konzentrieren.
Wie ist das Verhältnis der Kosten über die gesamte Produktlebenszeit zu den Anschaffungskosten für den Kunden? Je höher dieses Verhältnis ist, um so lohnenswerter ist das Service-Geschäft.
Weniger Lohnenswert ist eine Dienstleistung zum Beispiel dann, wenn ein Lieferant oder Hersteller im Produktgeschäft zum Beispiel durch Patente oder besondere Technologien sehr stark ist.

So individuell Service Angebote sein können, so unterschiedlich lässt sich auch die Wirtschaftlichkeit eines solchen Service-Angebots ermitteln. Im Endeffekt sollte jeder einzelne Fall separat geprüft werden.

 

Wie gestaltet man einen effizienten Service?

Servitization ist – wie am Rolls Royce Beispiel zu sehen ist – nicht nur durch die fortschreitende Digitalisierung entstanden. Aber die Digitalisierung bietet neue Möglichkeiten, ein Servitization-Modell immer optimaler umzusetzen.

Denn der Servitization Ansatz profitiert von den gleichen oder zumindest von vergleichbaren Technologien, die auch verschiedenen IoT-Anwendungen oder der Industrie 4.0 zugrunde liegen: Sammlung, Übermittlung, Speicherung und Analyse von Daten.

In verschiedenen Bereichen hat die SIC! Software GmbH bereits verschiedenste Sensoren zum Sammeln von Daten eingesetzt und damit ermöglicht, z.B. den Betrieb einer Maschine zu überwachen. Dabei sind verschiedene Möglichkeiten der Analyse denkbar. Ausgelegt auf bloßes Erkennen der Betriebszeit über kleine Änderungen und Abweichungen im Betriebsablauf bis hin zum Erkennen von kompletten Ausfällen.
Bei einer geeigneten Auswertung sind die Daten außerdem dazu geeignet, Wartungsintervalle flexibel auf das tatsächliche Nutzungsverhalten der Maschinen anzupassen. Durch das Überwachen von Verschleißteilen kann ein möglicher Betriebsausfall der Maschine vorhergesagt werden und vorbeugend gehandelt werden („Predictive Maintenance“). So kann die Betriebszeit der Maschine maximiert werden, da unvorhergesehene Ausfälle und Wartungsarbeiten minimiert werden.

Es ist außerdem möglich, das Übermitteln und Visualisieren der Daten in Echtzeit zu realisieren. Über die passende IoT Cloud-Anwendung können die Art der Visualisierung und Alarme individuell konfiguriert und so auf jeden Anwendungsfall abgestimmt werden. Dies ermöglicht in Echtzeit auf Veränderungen im Betriebsablauf zu reagieren, Optimierungen vorzunehmen werden und Daten für weitere Analysen bereitzustellen.

So ist es möglich, eine Abrechnung basierend auf Betriebszeit zu realisieren, vollständig automatisiert Servicetechniker zu Wartungs- und Instandsetzungsarbeiten zu rufen, Verbrauchs- und Verschleißteile automatisch nachzubestellen, eine Rund-um-die-Uhr-Betreuung zu ermöglichen und noch viele weitere denkbare Anwendungsfälle umzusetzen.

Auch über den Einsatz von Servitization-Modellen hinaus birgt die Möglichkeit, Daten über seine Produkte zu sammeln, viele Vorteile. Diese lassen sich unter anderem zur Optimierung der Produkte, Entwicklung von Innovationen und letztendlich auch zur Differenzierung gegenüber Mitbewerbern im Markt einsetzen.

 


[1] [Baines, Tim & Lightfoot, Howard: Made to Serve: How manufacturers can compete through servitization and product service systems. Wiley, 2013, S. 64–68]

Eine kurze Einführung in das Paradigma der Serverless-Architekturen – am Beispiel der AWS Cloud


Da das Schlagwort „serverlose Technologien“ im Kontext der Cloud Nutzung immer wieder genannt wird, fragen Sie sich möglicherweise, was den „serverlos“ in der Praxis genau bedeutet.

Es ist allgemein bekannt, dass man keine Rechenleistung (Compute-Workload) ohne einen physisch vorhandenen Computer bzw. Server erbringen kann. Das führt zu der Frage, wie spiegelt sich dies in den verschiedenen Serverless-Technologien wie Docker, Kubernetes und Function-as-a-Service (FaaS) wider?

Beginnen wir damit warum man diese Technologien überhaupt als „serverless“ bezeichnet, wenn doch immer noch ein Server zur eigentlichen Ausführung benötigt wird?

Ohne Software geht es nicht

Im Grunde genommen ist es aber ganz einfach: Es kommt auf den Betrachtungswinkel an.

In einer klassischen IT-Umgebung würde man einen Server bereitstellen, seine Anwendung dort installieren und diese dann dort ausführen lassen. Dabei muss man natürlich dafür sorgen, dass alle technischen Abhängigkeiten der betreffenden Anwendung (wie z.B. Sprachbibliotheken, Datenbanken, Visualisierungstools, usw.) auf dem betreffenden Server installiert sind.

Wenn ein neues Release der Anwendung verfügbar ist oder man weitere Ressourcen benötigt, weil das System zum Beispiel mehr Rechenleistung erbringen soll, muss ein Entwickler oder Administrator auf den Server zugreifen und dort die betreffende Software installieren. Das kann zwar mit Tools wie Configuration-Management, Continous-Delivery-Pipelines, zentralisiertem Logging, usw. vereinfacht werden, aber am Ende des Tages muss immer eine Person, also ein Entwickler oder Administrator, zumindest etwas Kenntnis über den betreffenden Server und seine darauf installierten Anwendungen haben. Nur dann ist sie in der Lage, im Falle, dass es technische Probleme gibt, nach einer Lösung zu suchen und diese zu beheben.

Container

An diesem Punkt müssen wir einen kleinen Abstecher in das grundlegende Konzept von Serverless machen – den sogenannten „Container“.

Ein „Container“ ermöglicht es eine Anwendung inklusive der benötigten Systemumgebung auszuliefern. Dies macht es überflüssig, anwendungsspezifische Abhängigkeiten separat zu installieren, da sie bereits zusammen mit der Anwendung als Image ausgeliefert werden.
Und daraus resultiert auch der große Vorteil von Containern: Sie laufen praktisch überall.

Mit dem Begriff „Container“ ist übrigens nicht unbedingt nur ein „Docker Container“ gemeint, sondern auch der gute alte LXC Container (worauf Docker basiert) oder jede andere Container-Technologie.

Die Nutzung von Containern verschiebt die Verwaltung der Abhängigkeiten und die Bereitstellung der für die Ausführung der Anwendung erforderliche Umgebung vom Administrator des Servers hin zu den Entwicklern der Anwendung.

Ich bin mir sicher, dass auch Ihr Betriebsteam ein Mitspracherecht haben will und sollte. Im Wesentlichen ist dies der Punkt, an dem Sie eine DevOps-Kultur oder noch besser eine DevSecOps-Kultur benötigen.

Container können verwendet werden, ohne große Änderungen in der klassischen Umgebung umzusetzen. Es ändern sich lediglich ein paar Zuständigkeiten.

Geht man einen Schritt weiter bei der Verwendung von Serverless-Technologien, verschiebt sich die Interaktion zwischen Entwickler und Anwendung vom Server zu dem gewählten Orchestration-Tool (ich verwende für den Rest des Artikels Kubernetes als Beispiel, aber dasselbe gilt auch für andere Tools). Es gibt kein direktes Deployen von Anwendungen auf dem Server oder manuelle Konfiguration von Netzwerk-Komponenten, z.B. ein Load-Balancer. Man übergibt Kubernetes einfach eine neue Konfiguration und die neuste Version der Anwendung wird auf dem verfügbaren Server (Node) oder auf mehreren Servern (Nodes) ausgeliefert.

Doch hier sind sie ja schon wieder, diese verflixten Server!?!

Ohne Server geht es nicht

Die Verwaltung dieser Server häng davon ab ob man sein Kubernetes-Cluster On-Premise oder in der Cloud als Managed-Service betreibt. Das macht einen großen Unterschied, wenn es darum geht, sein Cluster zu verwalten.

Läuft es On-Premise, so muss man das Kubernetes-Cluster selbst verwalten und pflegen. Die Systemadministratoren müssen sich nicht länger mit dem Verwalten einzelner Anwendungen beschäftigen, sondern nur um das Cluster (oder mehrere Cluster) und alle dazugehörigen Server kümmern.

Wenn Kubernetes als Managed-Service in einer Cloud wie Amazon (AWS) Elastic Kubernetes Service (EKS), Google (GCP) Google Kubernetes Engine (GKE) oder Azure Kubernetes Service (AKS) läuft, reduziert sich der Verwaltungsaufwand aufgrund der automatischen Updates und des Betriebs der Master-Nodes durch den Provider drastisch. Das einzige, was von dem Prozess übrig bleibt, ist die Sicherheitskonfiguration der Umgebung.

In beiden Fällen hat man immer noch Zugriff auf die Server VM-Instanzen, auch wenn man einen Cloud-Service verwendet, da die Server als ganz normale virtuelle Maschinen bereitgestellt werden. Aber nachdem das Cluster eingerichtet ist, kann man nach Belieben Server zum Cluster hinzufügen und das Bereitstellen geschieht automatisch. In der On-Premise Variante kommt man um den normalen Verwaltungsprozess nicht herum.

Also hat man bei einem verwalteten Kubernetes-Service zwar immer noch Server aus denen der Cluster besteht und man verwaltet lediglich, wie stark automatisiert es skaliert, aber die Server muss man nicht direkt verwalten.

Somit sind wir schon ein wenig weiter mit unserer Erwartung an eine Serverless-Infrastruktur: Der Entwickler sieht den Server nicht mehr und man muss ihn auch nicht mehr verwalten.

Weg mit der Zuständigkeit

Aber können wir noch ein Stück weiter gehen und Server komplett aus unserer Zuständigkeit entfernen?

Ja, das können wir! Da jedoch das Rechnen ohne Computer / Server nicht möglich ist, ist dies nur durch Dienste möglich, bei denen die untergeordneten Rechenressourcen von jemand anderem verwaltet werden und entsprechend abstrahiert sind.

AWS bietet derzeit den Fargate-Service an, mit dem Sie Docker-Container ausführen können, ohne Compute-Instances (EC2) bereitzustellen, auf denen die Container ausgeführt werden. Dies bedeutet, dass Sie Ihre Docker-Container ausführen können, ohne jemals einen Server zu sehen oder zu verwalten. Es besteht auch die Möglichkeit, dass AWS in Kürze eine Option anbietet, dass EKS-Cluster von Fargate unterstützt werden (https://github.com/aws/containers-roadmap/issues/32). Dies würde bedeuten, dass auch Server (EC2-Instanzen) aus Ihrem EKS-Cluster wegfallen.

Eine andere Möglichkeit, die Server, die Sie mit Rechenleistung versorgen, vollständig loszuwerden, ist FaaS. AWS bietet den Dienst AWS Lambda an, in dem die Anwendung nur dann ausgeführt wird, wenn sie tatsächlich gebraucht wird. Der Service wird ausgeführt, wenn er ausgelöst wird. Wie eine Funktion ausgelöst werden kann, hängt von dem von Ihnen ausgewählten Cloud-Anbieter ab, da diese alle unterschiedliche Funktionsumfänge in diesem Bereich haben. Die Verwendung des systemeigenen Dienstes der Plattform für Nachrichtenwarteschlangen und HTTPs funktioniert mit allen Anbietern. FaaS führt Ihre Anwendung auch in einem Container aus – dies ist möglicherweise nicht direkt ersichtlich, wenn Sie die Dienste verwenden, da Sie kein Container-Image bereitstellen. Ihre Anwendung wird jedoch in einem Container ausgeführt, um sie zu isolieren. GCP bietet außerdem auch einen Dienst „Cloud Run“ an, welcher zwar Docker Container unterstützt aber aktuell nur über einen HTTPS Aufruf getriggert werden kann.

 

Fazit

Sie können nur dann wirklich „serverlos“ werden, wenn Sie Managed-Services von Cloud-Providern wie z.B. AWS verwenden, welche die Interaktion mit den Servern so weit abstrahieren, dass Sie diese nicht mehr direkt verwalten müssen.

Das bedeutet in der Regel, dass die Architektur einer Anwendung entsprechend ausgelegt werden muss. Ja, das macht zunächst ein wenig Arbeit, aber die gesparten Kosten sowohl bei der Administration der Anwendung als auch beim Betrieb in der Cloud machen sich erfahrungsgemäß recht schnell bezahlt.


Gerne beraten Sie unsere Spezialisten zum Thema Serverless mit AWS und unterstützen Sie bei Ihren IoT-Projekten.

Nehmen Sie Kontakt mit uns auf:

zum Kontaktformular


 

Wenn die ersten Konzeptstudien eines IoT-Projektes das Entwicklungslabor verlassen und mit der industriellen Realität konfrontiert werden, geraten die vielfach eingesetzten populären Bastel-Platinen-Rechner wie Raspberry PI oder Beaglebone beim Einsatz als Edge Computing Device schnell an ihre Grenzen. Dann ist eine leistungsfähige, professionelle Hardwareplattform erforderlich.

Hier hat sich in unserem Hause in vielen IoT-Projekten im Industrieumfeld die HARTING MICA® (Modular Industry Computing Architecture) als kleines, leistungsfähiges Edge-Computing System überaus bewährt.

Der gesamte mechanische Aufbau ist sehr robust gestaltet. Egal ob Staub, Öl-Nebel oder feine Eisenspäne aus dem CNC-Bohrwerk – die MICA® Box erfüllt die Schutzklasse IP67 und lässt sich davon nicht beeindrucken. Ebenso genügen die an der MICA® Box verbauten Steckverbinder höchsten Ansprüchen an Lebensdauer und Kontaktsicherheit. Damit ist die MICA® Box ohne Einschränkungen industrietauglich.

HARTING MICA als IoT Edge Computing Device 01

Dem interessierten Leser möchten wir deshalb hier einen Einblick in das Innenleben dieses Edge-Computing Devices geben.

Merkmale der MICA® BOX

Zunächst ist die Harting MICA® BOX eine sehr unscheinbare kleine Box aus Aluminium die nach IP67 geprüft ist. Die Hardware des Systems ist mit einem 1 GHz ARM-Prozessor, 1 GB RAM und 4 GB eMMC Speicher ausgestattet. Zudem kann das System um bis zu weitere 32 GB Flash über eine Micro-SD-Karte nachgerüstet werden.

Als Betriebssystem kommt ein virtualisiertes, auf dem Kernel 3.2.X basierendes, LINUX zum Einsatz. Dies kann mit einer Vielzahl von weiteren Betriebssystem-Komponenten erweitert werden. Zu den Möglichkeiten, die hier auf der Softwareseite beim Einsatz als Edge Computing Device bestehen, folgt in Kürze ein weiterer Blog-Artikel.

Das Gehäuse

Die MICA® Box besitzt ein robustes Alu-Druckgussgehäuse aus einer Aluminum-Slilizium-Magnesium-Legierung (AlSi10Mg). Das gibt dem Gehäuse eine hohe mechanische Stabilität, gute thermische Eigenschaften als passiver Kühlkörper und ein geringes Gewicht.

Das mechanische Konzept der MICA® erlaubt die flexible, modulare Konfiguration mit verschiedenen Schnittstellen. Dabei ist stets die Schutzklasse IP67 erfüllt und die MICA® kann in einem Temperaturbereich von -25 Grad Celsius bis +75 Grad Celsius im Dauerbetrieb eingesetzt werden.

Die Rückwand der MICA® Box ist mit einer Gummidichtung versehen, ebenso alle Bohrungen und Durchlässe für Steckverbinder, LED usw.

Nach dem Entfernen der Schrauben kann die Rückwand abgenommen und der Kühlkörper mit den einzelnen Platinen herausgezogen werden.

Die Module der MICA® Box

Es folgt hier der Blick auf das modulare Platinen-Konzept der MICA® Box. Oben in der Mitte die zentrale Prozessor-Platine mit dem SD-Karten Halter. Links die I/O-Platine – in diesem Falle die Version mit zwei USB 2.0 Schnittstellen. Rechts die Stromversorgungs- und Netzwerkplatine mit LAN-POE-Anschluss und Streckverbindern für eine externe 24V Stromversorgung.

Der Prozessor der MICA® Box ist auf der Unterseite der CPU-Platine montiert. Die Kühlung erfolgt passiv über einen groß dimensionierten Alu-Kühlkörper.

Hier der Blick auf die CPU-Platine mit entfernten Schnittstellenmodulen.

Die Verbindung zwischen CPU Platine und den Schnittstellenmodulen erfolgt über einen Kontaktbügel mit leitfähigem Gummi. Damit ist die Verbindung elektrisch sehr sicher und gegen Vibration geschützt.

So entsteht eine kompakte Einheit von Kühlkörper, Platinen und Steckverbindern die in das Gehäuse eingeschoben wird.

Im Inneren des Gehäuses sorgen dann großzügig dimensionierte Auflageflächen für eine formschlüssige Verankerung der Elektronik im Inneren. Gleichzeitig wird der Kontaktbügel mit definierter Kraft auf die Platinen gedrückt und so eine vibrationssichere elektrische Verbindung der einzelnen Module im Inneren der MICA® Box garantiert.

Es ist dieser intelligente mechanische Aufbau, dem die Harting MICA® Box ihre Widerstandskraft im industriellen Umfeld verdankt.

Hier zum Schluß noch ein Blick auf alle Bauteile einer MICA® Box.

Zusammenfassung

Mit der Harting MICA® Box steht ein Edge-Computing Device mit einer sehr hohen Fertigungsqualität „Made in Germany“ zur Verfügung. Die längerfristige Verfügbarkeit ist durch die Firma HARTING garantiert.


Sie haben eine prototypische IoT Anwendung lauffähig und wollen diese jetzt im Feld erproben?

Sie wollen Sicherheit, dass Ihr wertvolles IoT-Projekt nicht wegen unzulänglicher Edge-Computing Hardware verzögert wird oder gar scheitert?

Dann sprechen Sie uns an.

Gemeinsam mit unseren IoT-Experten finden wir sicherlich einen Weg, Ihr bestehendes IoT-Pilotprojekt von simpler Labor-Hardware wie dem Raspberry Pi auf eine industrietaugliche Edge Computing Plattform wie die HARTING MICA® Box zu heben.


Messen sind für viele Unternehmen auch in Zeiten der verstärkten digitalen Kommunikation noch immer ein wichtiges Instrument zur Gewinnung neuer Kunden und Interessenten, den sogenannten „Leads“. Denn auf Messen treffen konzentriert an einem Ort viele Kunden, Interessenten auf der einen Seite und Anbieter von Waren und Dienstleistungen auf der anderen Seite aufeinander. Nur Messen bieten diese einzigartige Möglichkeit zur schnellen, einfachen und unkomplizierten persönlichen Kontaktaufnahme für beide Seiten.

Für ein Unternehmen gibt es wohl kaum eine bessere Möglichkeit, so viele persönliche Gespräche in so kurzer Zeit mit potentiellen Kunden und Interessenten zu führen und neue Leads zu gewinnen, wie die Präsentation seiner Waren und Dienstleistungen auf einer Fach- oder Publikumsmesse.

Doch die Beteiligung an einer Messe ist für ein Unternehmen auch immer mit einer entsprechenden Investition in Messestand und Messe-Personal verbunden. Darum ist auch jeder einzelne auf einer Messe gewonnene Lead für das Unternehmen extrem wertvoll und muss nach der Messe vom Vertrieb möglichst zeitnah und individuell auf Basis der beim Messegespräch gewonnenen und im Messe-Leadbogen dokumentierten Interessen und Anforderungen bearbeitet werden.

Doch Achtung, genau hier beim anschließenden Lead-Nurturing nach der Messe lauert eine gefährliche Falle, die unter Umständen für das Unternehmen teuer werden kann. In unserem Video „Vorsicht bei Messe-Leads! Diese böse Falle sollten Sie kennen … „ erfahren Sie, welche das ist und wie Sie dieser Falle mit einer einfachen Maßnahme entgehen können:



 

Jedes Unternehmen, das sich mit der Digitalisierung und dem Internet der Dinge (Internet of Things – IoT) beschäftigt, kommt früher oder später an den Punkt, an dem eine IoT-Plattform ausgewählt werden muss. Denn ganz gleich, ob die Digitalisierung im Unternehmen der Optimierung der eigenen Prozesse dienen soll oder ob neue datenbasierte Geschäftsmodelle entwickelt werden – im Regelfall sind IoT-Funktionen und/oder IoT-Devices im Spiel. Und schon wird eine passende IoT-Plattform als technischer und betriebswirtschaftlicher Enabler benötigt. Diese Plattform muss dann aber auch zu der eigenen Digitalisierungsstrategie des Unternehmens und den individuellen IoT-Anforderungen der IoT-Projekte passen. Doch bei einem aktuellen Angebot von mehreren hundert Plattformen gestaltet sich die Auswahl nicht einfach. Dazu kommt, dass nicht alles, was sich als IoT-Plattform bezeichnet, auch tatsächlich eine IoT-Plattform im eigentlichen Sinn ist.

Was ist eine IoT-Plattform?

Eine IoT-Plattform ist eine zentrale technische Einheit, welche Daten aus unterschiedlichen Quellen (IoT-Sensor-Daten, Nutzer-Daten, Maschinen-Daten, Umgebungs-Daten, etc.) über unterschiedliche Schnittstellen und Protokolle sammelt und aggregiert, um daraus mit Hilfe von speziellen IoT-Applikationen dem Plattform-Nutzer datenbasierte Mehrwerte zur Verfügung zu stellen. Mit einer IoT-Plattform können verschiedenartige Gerätetypen und Anwendungen miteinander verknüpft werden, die sich über ihre jeweils eigenen Kommunikationswege hinweg über die Plattform austauschen und ggf. automatisiert aufeinander reagieren. Als IoT Application Enablement Platform (IoT AEP) stehen dem IoT-Plattform-Nutzer neben der Basis-Funktion der Konnektivität auch Tools für das IoT-Device-Management, für die Daten-Visualisierung und Daten-Analyse, für ein regelbasiertes Aktions-Management, etc. zur Verfügung.

IoT-Plattform Typen

Von entscheidender Bedeutung für die Auswahl einer IoT-Plattform ist der Plattform-Typ. Um eine Entscheidung treffen zu können, müssen zuvor die individuellen Anforderungen an die Plattform bereits definiert worden sein. Diese leiten sich wiederum von den Anforderungen der geplanten IoT-Projekte und der Digitalisierungs-Strateggie des Unternehmens ab. Nur so lässt sich feststellen, welcher IoT-Plattform-Typ für die eigenen IoT-Projekte am geeignetsten ist.

 

 

Die am Markt befindlichen IoT-Plattformen lassen sich grundsätzlich anhand der angebotenen Service-Modelle unterscheiden (siehe Grafik).

Allgemeine Cloud Dienste

Die Basis-Services für jede IoT-Plattform stellen die Server-, Speicher- und Netzwerk-Dienste dar. Diese werden von den Anbietern von allgemeinen Cloud Diensten, wie z.B. AWS, Azure oder IBM in Form von „Infrastructure as a Service“ (IaaS) bereitgestellt. Die Anbieter der anderen Plattform-Typen benötigen diese Services von Drittanbietern, um dann auf diesen ihre eigenen IoT-Service-Modelle aufzusetzen.

Spezialisierte IoT Plattformen

Der größte Teil der am Markt befindlichen IoT-Plattformen bieten „Platform as a Service“ (PaaS) in Kombination mit spezialisierten Applikationen als „Software as a Service“ (SaaS) an. Den Komfort der spezialisierten Plattform auf Mandanten-Basis bezahlt der Nutzer allerdings mit einer beschränkten Hoheit über seine Daten.

Individuelle IoT-Plattformen

Die absolute Hoheit über die eigenen Daten ist – neben einer maßgeschneiderten Anpassung an die eigenen Anforderungen – daher auch der große Vorteil einer individuellen IoT-Plattform. Hierbei werden mit IoT SaaS-Applikationen individuelle Anwendungen erstellt und selektiv mit den passenden PaaS- und IaaS-Komponenten eines allgemeinen Cloud-Dienste-Anbieters kombiniert. Somit bietet die individuelle IoT-Plattform die höchste Flexibilität und Anpassungsfähigkeit an neue oder sich ändernde Anforderungen.

IoT Kompetenz-Partner

Grundsätzlich lassen sich individuelle IoT-Plattformen von Unternehmen mit entsprechenden IoT-Fachkräften auch Inhouse und in Eigenregie erstellen und verwalten. Wer jedoch dabei kein Lehrgeld zahlen und schneller sein IoT-Projekt zum Erfolg bringen möchte, lässt sich von einem erfahrenen Partner mit IoT-Plattform Architektur- und Entwicklungs-Know-how beraten und unterstützen. Für einen einfacheren Einstieg bieten diese IoT-Spezialisten oftmals auch bereits vorkonfigurierte IoT Cloud Plattform Pakete an. Diese können dann als Ausgangsbasis für den schnellen Start dienen und dann im Laufe des Projekts sukzessive an die eigenen Anforderungen des IoT-Projekts angepasst werden.

Drum prüfe …

Die Auswahl des richtigen IoT-Plattformtyps ist insofern wichtig, als die Entscheidung für einen Plattform-Typ eine langfristige Entscheidung ist. Denn läuft ein IoT-Projekt erst einmal auf einem ausgewählten Plattform-Typ, so ist ein aufgrund neuer oder geänderter Anforderungen notwendiger Wechsel des IoT-Plattformtyps zu einem anderen nur mit extremen Anstrengungen und großem zeitlichen und finanziellem Aufwand machbar.


Unser aktuelles Angebot auf Basis einer individuellen IoT-Cloud-Plattform:

IoT-Einstiegspaket

  • Lernen Sie die Möglichkeiten des Internet of Things für Ihr eigenes Unternehmen kennen – im kleinen Rahmen, risikolos und mit geringem Ressourceneinsatz
  • Sammeln Sie grundlegende IoT-Praxiserfahrungen mit den eigenen Anlagen bzw. Produkten und gewinnen Sie dabei wichtige Erkenntnisse für die Entwicklung Ihrer IoT-Strategie
  • Nutzen Sie das IoT-Einstiegspaket als validierte Ausgangsbasis für Ihre Proof-of-Concepts bzw. IoT-Projekte

 

Herausforderungen bei IoT- und Smart Products Projekten

Heutzutage ist Embedded Software Entwicklung nicht mehr vergleichbar mit dem, was noch vor 10 Jahren Stand der Technik war. Die IoT-Produkte werden immer komplexer und die IoT-Hardware immer leistungsfähiger. Steigende Komplexität beim Embedded Software Design führt aber aber zwangsweise auch zu einer höheren Fehleranfälligkeit.

Gerade bei Smart Products ist aber die Robustheit des Embedded Software Designs ein ganz entscheidendes Kriterium. Denn die IoT-Devices müssen häufig über sehr lange Zeiträume laufen, haben aber kein User Interface, um das Gerät neu zu starten, wenn es mal hängt.

Mit klassischen Software-Entwicklungs-Methoden lässt sich aber die Komplexität bei der Entwicklung eines robusten Embedded Software Designs kaum mehr beherrschen. Zahlreiche von uns durchgeführte Code-Review-Projekte zeigen das immer wieder schmerzlich aufs Neue.

Doch wie erreicht man nun einen anderen Level bei der Embedded Software Entwicklung für Smart Products mit einem Real Time OS wie z.B. RTOS oder ThreadX?

 

Quality by Design: Das Standard Finite State Machine Framework

Das Zauberwort heißt hier: Event Driven Architecture. Durch den Einsatz eines Standard Finite State Machine Framework (http://www.state-machine.com/) erreicht man einen neuen Level an Stabilität und Robustheit im Embedded Software Design. Dabei geht die Architektur weg von klassischen Thread-Syncronisations-Methoden hin zu Event gesteuerten Programmabläufen.

Dieses Schaubild verdeutlich diesen Paradigmenwechsel sehr gut:

Embedded Software Design Paradigm Shift

http://embedded-computing.com/eletter-products/asynchronous-event-driven-architecture-for-high-reliability-systems/

Doch warum ist nun eine Event Driven Architecture so viel besser als „klassische“ Embedded Software Entwicklungs-Methoden?

Dafür gibt es zwei Gründe:

 1. Threads

Threads sind eine große Hilfe bei der Entwicklung komplexer Embedded Software. Allerdings gestaltet sich die Synchronisation und Kommunikation schwierig und erfordert vom Entwickler ein sehr hohes Maß and Disziplin, Erfahrung und Überblick über den Code. Mit wachsender Komplexität der Anwendung wird das Thread Handling aber immer anfälliger für Fehler. Die üblichen damit einhergehenden Probleme sind Race Conditions, Deadlocks, Performance Probleme, usw. Fehler in diesem Bereich sind in der Regel auch am schwersten zu finden und zu reproduzieren.

Um diese Probleme beim Embedded Software Design zu adressieren, hat man entsprechende Regeln für die Software Entwickler erdacht.

Siehe: https://herbsutter.com/2010/07/12/effective-concurrency-prefer-using-active-objects-instead-of-naked-threads/


  1. Don’t block inside your code. Instead communicate among threads asynchronously via event objects → This makes threads run truly independently, without blocking on each other
  2. Don’t share any data or resources among threads. Keep data and resources encapsulated inside threads (“share-nothing” principle) and instead use events to share information
  3. Organize your threads as “message pumps” (event queue + event loop)

Wenn man es schafft, diese Regeln konsequent umzusetzen, erhält man entsprechend robusten Embedded Software Code. Die Erfahrung zeigt aber, dass Menschen immer wieder Fehler machen bzw. sich aufgrund von Komplexität Fehler einschleichen.

Die Lösung:
Durch den Einsatz des Standard Finite State Machine Framework erzwinge ich die Einhaltung der oben genannten Regeln einfach durch eine Umkehr der Kontrolle. Das Framework sorgt mit dem Design dafür, dass die Spielregeln bei der Embedded Software Entwicklung eingehalten werden und ich kann als Entwickler keine solchen Fehler mehr einbauen.

 2. Spaghetti Code

In der Regel fängt alles immer ganz harmlos an und der Entwickler schreibt eine Methode, um Events zu verarbeiten. Mit der Zeit kommen jedoch immer mehr neue Events und immer komplexere Bedingungen hinzu. Die if-then-else Statements werden mehr und mehr und immer verschachtelter – bis zu dem Punkt, dass ein Außenstehender nicht mehr versteht, was eigentlich passiert. Dieses Problem lässt sich dann durch entsprechendes Refactoring zwar wieder eindämmen – besser wäre es aber, wenn es erst gar nicht entstehen kann.

Die Lösung:
Auch dafür sorgt das Standard Finite State Machine Framework, weil hier gänzlich anders an die Problemstellung heran gegangen werden muss. Das führt nachweislich zu besseren Ergebnissen bei der Entwicklung eines robusten Embedded Software Designs. Eine sehr schöne Beschreibung (englisch) gibt es hier:
https://www.state-machine.com/doc/Modern_Programming_Slides.pdf


Wenn auch Sie Probleme mit unzuverlässigem Embedded Software Code haben, sprechen Sie uns an! Unsere Spezialisten prüfen gerne gemeinsam mit Ihnen, wie ein Re-Design Ihrer Lösung aussehen kann. Sie profitieren dabei von unserem speziellen Architektur- und Entwicklungs-Know-how für robustes Embedded Software Design und der langjährigen Erfahrung aus zahlreichen IoT- und Smart Products Projekten.

Auch für die Entwicklung neuer Smart Products und in neuen IoT-Projekten hat sich diese Vorgehensweise mit dem Standard Finite State Machine Framework als sehr erfolgversprechend gezeigt.


Vielleicht auch interessant:

Das MQTT Protokoll – Hintergründe (Teil 1)

Das MQTT Protokoll – Praxis (Teil 2)

IoT Protokolle – MQTT vs. AMQP

MQTT Protokoll – Anwendungsbeispiele

Modbus über MQTT – wie geht das?

 

Ausgereifte Bedienkonzepte sparen Zeit und Geld

Es ist eigentlich eine altbekannte Regel der Softwareprogrammierung, die jedoch leider immer wieder unterschätzt wird: Wer bereits mit ausgereiften Bedienkonzepten beginnt, spart auf lange Sicht viel Zeit, Geld und Nerven. Und eines hat sich in unseren zahlreichen Software-Projekten immer wieder bestätigt: Je enger und häufiger wir mit unseren Kunden und den späteren Nutzern in Kontakt stehen, desto schneller können wir uns dem optimalen Bedienkonzept annähern.
Bedienkonzepte sind neue Prozesse in Form von Bedienoberflächen, sozusagen Arbeitsschritte zum Anklicken. Sie sollen so oft wie möglich gemeinsam mit Kunden und späteren Nutzern sach- und fachgerecht beurteilt werden – das nennt sich dann „Review“. Am wichtigsten für die Entwicklung eines Softwareprojekts sind die Reviews der späteren Nutzer sowie deren Vorgesetzte, möglichst sowohl aus dem Management als auch aus dem technischen Bereich. Mit jedem Review kommen wir so der optimalen Software-Lösung ein Stückchen näher. Doch das kostet Zeit: Wie können sich unsere Spezialisten mit den Ansprechpartnern beim Kunden permanent 1 bis 2 mal pro Woche abstimmen, wenn gleichzeitig auch viele weitere Termine und das Tagesgeschäft gemeistert werden müssen?

Moderne digitale Tools machen es möglich

Der Schlüssel dazu sind digitale Abstimmungsprozesse mit Hilfe der Tools von Amazon und Adobe. Amazon kann uns mit seiner Video-Chat-Software Chime dabei helfen mit vielen Personen an verschiedenen Orten gleichzeitig an einem Bedienkonzept zu arbeiten. Chime ist so ähnlich wie Skype oder Team Viewer und funktioniert so: Sie sehen meinen Desktop und ich moderiere durch den Klick-Dummy. Nach ca. einer halben Stunde sind wir uns über Verbesserungen einig und am gleichen Tag können Sie Ihren Kollegen und Vorgesetzten Ihre Vision interaktiv vermitteln – ohne dass eine Zeile Programmier-Code geschrieben wurde.

Um Klick-Dummys zu erstellen, zu teilen und erlebbar zu machen verwenden wir den „Experience Designer“ von Adobe. Adobe hat mit diesem Tool den schnellsten und intuitivsten Prototyp-Builder auf dem Markt gebracht, der die Herzen von Designern, Programmierern und unseren Kunden höherschlagen lässt. Neben dem Feature, einen Klick-Dummy zu teilen, kann ich eine Design-Spezifikation erstellen. Statt einem langen, textbasiertem PDF, das langwierig erstellt wird, liefern wir automatisiert ein interaktives und fehlerfreies Dokument kostenlos zu jedem Zeitpunkt der Konzeption hinzu. So können Ihre Profis aus dem Marketing schnell prüfen, ob alle Vorgaben, die Ihr Erscheinungsbild wiedergeben, eingehalten werden.
Auch Programmierer profitieren von dieser Spezifikation. Sie können selbständig alle Parameter auslesen und müssen nicht auf Beschreibungsdokumente warten. Der Klick-Dummy ist nämlich die interaktive Beschreibung aller programmierrelevanter Werte wie Farbwerte, Farbverläufen Abständen, Satzspiegel, und Schriftbeschreibungen. So kann schnell, genau und effizient Ihre Software entstehen.

Maximale Effektivität und Effizienz

Beide Produkte in Kombination bieten Ihnen nicht nur den komfortabelsten Weg mit uns über Ihre zukünftige Software zu sprechen, ohne dass Sie dazu Ihr Büro verlassen müssen, sondern auch ein Maximum an Effizienz und Effektivität. Und wenn Sie mal keine Zeit haben, dann schauen Sie sich die Aufzeichnung des Meetings an.

Hier können Sie gleich mal einen Klick-Dummy ausprobieren und Ihre Verbesserungswünsche als Kommentar ganz bequem im Klick-Dummy hinterlassen:

Ritter & Burgen – High Performance Kunden-Manager für Aussendienst-Mitarbeiter

Möchten Sie einmal Chime ausprobieren? Sprechen Sie uns einfach darauf an – wir helfen Ihnen gerne dabei.