Embedded Entwicklung

Wurden früher noch Geräte mit einem unveränderlichen Betriebssystem für sehr spezifische Anwendungsfälle entwickelt und ausgeliefert, so hat sich die Erwartungshaltung der Kunden, aber auch die Art, Embedded-Systeme zu entwickeln, fundamental geändert.

So ist es für ein Unternehmen unwirtschaftlich geworden, für gleichartige Produkte aus dem eigenen Portfolio, immer wieder ein neues Betriebssystem bzw. eine Anwendung zu entwickeln.

Dennoch stellen wir sehr häufig fest, dass die Plattformentwicklung, bei der die Gerätesoftware aus einem Baukasten von Software-Modulen zusammengestellt wird, für viele Unternehmen eine sehr hohe Herausforderung darstellt.

Bei der Plattformentwicklung nehmen bestimmte Funktionalitäten einen viel höheren Stellenwert ein, als einzelne Features eines ganz spezifischen Produkts. Durch die konsequente und auf besonders hohe Qualität bedachte Entwicklung des Fundaments, profitieren alle Produkte gleichermaßen. Die Härtung und Stabilität können Kunden sofort erleben.

Embedded Plattformen haben u. a. folgende Funktionalitäten:

  • Modularisierung (Paketverwaltung)
  • Remote-Aktualisierbarkeit der Gerätesoftware
  • Security (Autorisierung / Authentifikation / Resilienz)
  • Digital-Twin über die Cloud
  • Fernwartung
  • Gerätestatus
  • Backup & Restore
  • Factory Reset
  • Anbindung von I/O-Modulen
  • Generische Treiberverwaltung
  • Datenschutzkonformes Logging
  • Ereignislog
  • Startup-Performance
  • Flash-Speicherschutzstrategien
  • Recovery nach einem Stromausfall während des Schreibvorgangs

Je früher o. g. Plattform-Funktionalitäten eingeplant werden (je nach Anwendungsfall), desto einfacher ist deren Entwicklung. Dabei ist es nicht entscheidend, dass die gesamte Funktionalität von Anfang an bereitsteht, jedoch sollte eine grundlegende Integrationsvorstellung bestehen.
Die nachträgliche Integration in eine gewachsene Anwendung verursacht sehr hohe Kosten. Oft sind aber noch nicht einmal die Kosten der entscheidende Faktor, sondern der deutlich längere Entwicklungszyklus, der die Konkurrenzfähigkeit sehr stark einschränkt.

Wir entwickeln seit über 20 Jahren Java Embedded-Systeme und beraten Unternehmen hinsichtlich geeigneter Architekturen unter Einhaltung von hohen Sicherheitsstandards auch in einem sehr komplexen Umfeld. Wir haben sehr viel Erfahrung in der Entwicklung von full-featured Plattformen und unterstützen Unternehmen dabei, eine gehärtete Plattform zu schaffen, und das von Anfang an.

Wir haben an trendsetzenden Plattformen gearbeitet, die zu 100.000-fach in smarten Geräten bei Endverbrauchern oder in der Industrie Einsatz finden.

Unser Tätigkeitsschwerpunkt liegt in den Bereichen:

  • IoT-Plattformen (Internet of Things)
  • Erneuerbare Energien
  • Elektromobilität
  • Navigationssysteme

Wir sind immer neugierig, in neue Branchen einzutauchen.

  • Java SE (Java Plattform von 1 – 17)
  • OSGi R3-R7 (Gateway-Spezifikation)
  • Bosch mBS / Felix / Equinox / Knopflerfish (Applikationsplattform)
  • Jetty / Netty (Server)
  • JAX-RS / OpenAPI (REST-Webservices)
  • Jackson / gson (JSON-Binding)
  • Protocol Buffers / Plain Socket mit TCP/IP und UDP/IP (Protokolle)
  • HTTP(s) WebSocket / CoAP / MQTT (Spezifische Protokolle)
  • OAuth2 / OpenID / Basic Auth (Autorisierungsverfahren)
  • X.509 Zertifikatsketten und lokale CA (Security)
  • JDBC / SQL (Datenbankanbindung)
  • SQLite / H2 (Datenbanksysteme)
  • JUnit 5 / Mockito / AssertJ / REST Assured (Test-APIs)
  • Maven / Jenkins / Nexus / Docker (CI/CD)

Weitere von uns eingesetzte Technologien finden Sie bei unseren Backend-Technologien.

Neben unserer Einstellung hinsichtlich der Softwarequalität, die wir auch in der Backend-Entwicklung besitzen, verstehen wir, dass geeignete Mechanismen hinsichtlich der Qualitätsabsicherung notwendig sind, um eine Beschädigung der Geräte, oder gar einen Rückruf zu verhindern.

Wir wissen, dass oft keine Experten die Geräte einsetzen, und die Erwartungshaltung besteht, dass das Gerät hochverfügbar sein muss (praktisch ohne Neustarts stabil arbeitet).