Legacy Architektur
Die Legacy-Architektur bezeichnet den eingefrorenen technischen Stand von Business Flies vor Beginn der Entwicklung von BFlies Next. Sie dient als Referenz für bestehendes Verhalten, Datenstrukturen und Betriebsanforderungen. Das Legacy-System wird nicht mehr funktional weiterentwickelt.
Gesamtbild
Business Flies ist eine klassische Java-Webanwendung. Der Browser erhält serverseitig erzeugte JSF-Seiten und umfangreiche JavaScript-Ressourcen. Die Anwendung wird als WAR-Datei gebaut und in einem externen Tomcat 7 mit Java 8 betrieben. Persistente Daten liegen in einer MySQL-Datenbank.
| Schicht | Legacy-Technologie | Aufgabe |
|---|---|---|
| Browseroberfläche | JSF/Facelets, RichFaces, Dojo, JavaScript und WebGL | Darstellung und Bedienung des dreidimensionalen Wissensraums |
| HTTP und REST | Servlet 3.0, JSF 2.2 und Jersey 2.11 | Seitenaufrufe, Formulare und REST-Endpunkte |
| Komponentenmodell | CDI mit Weld 2.2 | Erzeugung und Verknüpfung der Anwendungskomponenten |
| Fachlogik | Java-Services und Business Objects | Suche, Ontologie, Benutzer- und Begriffsverwaltung |
| Persistenz | JPA 2.1 und Hibernate 4.3 | Objekt-relationaler Zugriff auf MySQL |
| Laufzeit | Java 8 und Apache Tomcat 7 | Servlet-Container, Authentifizierung und JNDI-Ressourcen |
| Build | Apache ANT | Java-Kompilierung, Dojo-Optimierung und WAR-Paketierung |
| Auslieferung | GitLab CI, Buildah und Tomcat-Container | Build und Verpackung als Container-Image |
Vereinfachter Ablauf
- Ein Browser ruft eine JSF-Seite oder einen REST-Endpunkt auf.
- Tomcat verarbeitet die Anfrage und erzwingt bei geschützten Pfaden die formularbasierte Anmeldung.
- JSF-Controller oder Jersey-Ressourcen rufen CDI-verwaltete Services auf.
- Die Services verwenden einen per JNDI bereitgestellten Entity Manager beziehungsweise die JPA-/Hibernate-Persistenzschicht.
- Hibernate liest und ändert Daten in MySQL.
- Die Antwort wird als gerenderte XHTML-Seite oder als JSON an den Browser zurückgegeben.
Kapitel
Bedeutung für BFlies Next
Die Legacy-Architektur ist kein Zielbild. Sie definiert jedoch den Funktions- und Integrationsumfang, den die neue Plattform zunächst erhalten muss. Insbesondere Datenmodell, Benutzerabläufe, REST-Verhalten und die Erzeugung der produktiven Frontend-Ressourcen müssen bei der Migration berücksichtigt werden.
Die Modernisierung erfolgt bewusst schrittweise. Der erste Meilenstein reproduziert das bisherige WAR mit Maven. Erst danach werden Laufzeit, Authentifizierung, Datenbankmigration, Oberfläche und Deployment modernisiert.