Kundenbericht

Erfolgreicher Technologiewandel mit Transpiler von Badger Systems

PSI Logistics

Vom Monolith zur Vertikalisierung

Umstellung eines gewachsenen Warenwirtschaftsportfolios auf eine neue Technologie

Eine strategische Konzernentscheidung stellte PSI Logistics vor die Notwendigkeit, ihr komplett gewachsenes Warenwirtschaftsportfolio auf eine neue Technologiebasis umzustellen.
Die Aufgabe bestand darin, einen single-threaded C++-Monoliten (> 1 Mio. LoC) in eine multi-threaded JEE-Architektur zu übersetzen.

Über unseren Kunden PSI Logistics

Der PSI Konzern zählt zu den weltweit führenden Anbietern im Bereich leittechnischer Softwarelösungen für Energieversorger und Industrieunternehmen. PSI Logistics realisiert IT-Vorhaben in der Logistik in jeder Größenordnung, branchenübergreifend, national und international, für Unternehmen aus Industrie, Handel und Dienstleistung. Mit innovativen Produkten hilft PSI Logistics ihren Kunden dabei, Arbeit, Energie und Rohstoffe in besonderem Maße wirtschaftlich, sozialverträglich und umweltschonend einzusetzen und eröffnet ihnen dadurch einen Wettbewerbsvorteil.

Herausforderung: Vom Monolith zur Vertikalisierung

Eine strategische Konzernentscheidung stellte PSI Logistics vor die Notwendigkeit, ihr komplett gewachsenes Warenwirtschaftsportfolio auf eine neue Technologiebasis umzustellen. Um einen gesunden Technologiewandel und den reibungslosen operativen Betrieb im Unternehmen zu gewährleisten, sollte kein harter Technologie-Switch über die gesamte Kundenlandschaft erfolgen, sondern eine partielle kundenbasierte Portierung gegeben sein. Mit der Möglichkeit kundenbasierter Portierungen aus der bisherigen C++- in die Java-Welt mithilfe eines von Badger Systems speziell entwickelten Transpilers – basierend auf unserem h auseigenen Compilerbau-Know-how – konnten wir dies erfolgreich realisieren.

Unsere Lösung

Die Aufgabe bestand darin, einen single-threaded C++-Monoliten (> 1 Mio. LoC) in eine multi-threaded JEE-Architektur zu übersetzen. Mithilfe der LLVM/Clang-Tooling API haben wir eine Analyse des C++-Quelltextes auf Besonderheiten gestartet, die nicht direkt nach Java übersetzt werden können. Insbesondere waren dies Mehrfachvererbung,(partielle) Spezialisierungen von Templates, Pointer-Arithmetik, IO mit Streams, Iteratoren (insbesondere Arithmetik), Destruktoren und enum-int-Konvertierung. Bis auf partielle Template-Spezialisierung traten alle Besonderheiten auf. Im zweiten Schritt haben wir ein flexibles System aus Text-Templates zur einfachen Generierung von Java-Code-Fragmenten aus den C++-Artefakten (AST-Knoten) ersonnen. Diese wurden durch Traversierung des ASTs mittels Clangs Tooling-API angesteuert und konnten bereits einfache C++-Programme nach Java übersetzen. Im dritten Schritt adressierten wir die Spezialfälle und lösten Probleme wie Mehrfachvererbung, Iteratoren, Templates, so dass der Transpiler den gesamten Quelltext portieren konnte.

Fazit

Mit dem Badger Systems-eigenen Know-how zum Compilerbau konnten wir die Entwicklung eines Transpilers erfolgreich implementieren. So ist ein mächtiges Instrument entstanden, mit dem der Kunde das existierende IT-Asset, trotz kontinuierlicher Weiterentwicklung, ständig nach Java portieren kann.

Weitere Referenzbeispiele

Kundenbericht
ifa systems AG

Optimale Lösungen auf Rezept: Badger Systems macht für ifa Systems die Praxis-Software gesetzesfest

Mehr erfahren
Kundenbericht
Talado

Per Online-Auktion das beste Entsorgungsangebot für Verpackungshersteller finden

Mehr erfahren
Kundenbericht
Sportwettenportal

Refactoring einer komplexen Online-plattform mit höchsten Anforderungen an Stabilität und Verfügbarkeit

Mehr erfahren

Wir sind bereit für knifflige Heraus­forderungen!

Auch wenn Ihr IT-Problem noch so schwer ist — mit uns Kontakt aufzunehmen ist leicht. Rufen Sie uns an, schreiben Sie eine kurze E-Mail oder nutzen Sie unser Kontaktformular. Sie werden schnellstmöglich von uns hören.

Besucheradresse

Hohenzollernring 55
50672 Köln

Postadresse

Lessingstraße 26
50858 Köln

Badger Systems GmbH

+49 221 67772460
info@badgersystems.de

Zertifiziert nach ISO 9001:2015

© 2023 Badger Systems GmbH · Impressum · Datenschutzerklärung · Nutzungsbedingungen