Backend-Rewrite: von JavaScript/TypeScript nach Rust

Steuerungsmodule im Schaltschrank

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