Herausforderungen.
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.
Embedded Plattformen.
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 oft 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 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 der gewünschten Funktionen 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.
Unsere Schwerpunkte.
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
- Automobilbranche
- Navigationssysteme
- Cyber Security
Wir sind immer neugierig, in neue Branchen einzutauchen.
Unser Beratungsschwerpunkt liegt im Bereich der Plattformarchitektur und der Modularisierung unter Einhaltung von strengen Sicherheitsanforderungen.
Wir besitzen sehr große Erfahrung in der Schulung (Mentoring) von Kollegen, deren bisheriger Tätigkeitsschwerpunkt in der Backend-Entwicklung lag und nun im Bereich der Embedded-Systeme arbeiten. Wir vermitteln dabei die wesentlichen Methodiken der Optimierung hinsichtlich (Single) Core Processing, (Single) User Access, Threading, Synchronisation (z. B. über Actor-Model), Memory, I/O Access, Flash-Speicherschutz, und weisen auf die Gefahren eines Gerätedefekts durch Softwarefehler (Gefahr des Rückrufs) hin.
Unsere Technologien.
Eine kleine Auswahl von uns eingesetzter Kern-APIs, Standards und Technologien:
- 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.
Unser Qualitätsverständnis.
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).