Backend-Rewrite: von JavaScript/TypeScript nach Rust

Ausgangssituation
- Ein Produkt, mit dem Maschinen- und Anlagenbauer die Bedienoberflächen ihrer Anlagen erstellen und betreiben -
webbasiert, im Browser bedienbar und ohne eigenen Programmieraufwand konfigurierbar
- Das Backend läuft nicht im Rechenzentrum, sondern auf der Steuerungshardware der Anlage selbst
- Mehrere Bedienstationen arbeiten gleichzeitig auf derselben Anlage
- Über Jahre gewachsene Codebasis in JavaScript und TypeScript, durchgehend im Produktiveinsatz bei Bestandskunden
Herausforderung
- Ein vollständiger Rewrite bei laufendem Betrieb: das Bestandsprodukt wird weiterentwickelt und ausgeliefert,
während die Neuentwicklung entsteht
- Funktionsgleichheit über einen großen, gewachsenen Funktionsumfang - einschließlich der Eigenheiten, auf die
sich Bestandskunden verlassen
- Die bestehenden Schnittstellen mussten erhalten bleiben, damit Weboberfläche und kundenseitige Erweiterungen
unverändert weiterarbeiten
- Begrenzte Ressourcen auf der Zielhardware: Arbeitsspeicher und Rechenleistung einer Steuerung, nicht die eines
Servers
- Zuverlässigkeit über lange Laufzeiten - eine Anlage läuft Jahre, nicht Wochen
slowtec Lösung
- Vollständige Neuentwicklung des Backends in Rust, bei gleichbleibendem Funktionsumfang
- Übernahme der bestehenden Schnittstellen, sodass die vorhandene Oberfläche und die Erweiterungen der Kunden
ohne Anpassung weiterlaufen
- Nebenläufigkeit und Speicherzugriffe werden zur Übersetzungszeit abgesichert: eine ganze Klasse von Fehlern,
die in der bisherigen Codebasis erst zur Laufzeit auffiel, kann gar nicht erst entstehen
- In ersten Vergleichstests sank der CPU- und RAM-Bedarf der Laufzeitumgebung um bis zu 90 % - damit läuft das
Produkt auch auf deutlich schwächerer Zielhardware stabil
- Enge Zusammenarbeit mit dem Entwicklerteam des Kunden über die gesamte Projektlaufzeit
Warum slowtec?
- Rust ist bei uns seit Jahren Produktionssprache - wir veröffentlichen und pflegen selbst
Open-Source-Bibliotheken in diesem Umfeld
- Erfahrung mit hardwarenaher Software auf Steuerungen und eingebetteten Systemen, nicht nur mit Web-Backends
- Ein Rewrite dieser Größe verlangt, beide Seiten gleichzeitig lesen zu können: die gewachsene Bestandssoftware
und die Architektur, auf die sie überführt wird
Projektstatus: Abgeschlossen.
Wir sind für Sie da! Kontakt
Zurück zur Übersicht