Legacy-Modernisierung: Java EE, EJB, SOAP, JSP zu modernem Java

Verstehen, absichern, strangeln, extrahieren und modernisieren ohne Blindflug.

Enterprise JavaBeispieleArchitekturOffline HTML

Modernisierung beginnt mit Verstehen

Legacy-Code ist nicht automatisch schlecht. Er enthält Geschäftsregeln, Ausnahmen, historische Partnerverträge und Produktionswissen. Modernisierung bedeutet, dieses Wissen zu sichern, bevor Technik ersetzt wird.

PhaseZielArtefakt
InventurSysteme, Schnittstellen, Jobs, DB, Deployments verstehenSystemlandkarte, Abhängigkeitsmatrix
AbsicherungTests und Observability für kritische Pfade schaffenCharacterization Tests, Logs, Traces
Schnitt setzenNeue API/Fassade oder Strangler-Kante definierenAdapter, Facade, Proxy, Routing-Regel
ExtraktionFachliche Capability herauslösenModul oder Service mit Vertrag
AblösungTraffic umstellen, Altpfad entfernenMigrationsreport, Runbook, Rückbauplan

Strangler Fig praktisch

Strangler-Fassade für schrittweise Migration
public class OrderFacade {
    private final LegacyOrderService legacy;
    private final ModernOrderService modern;
    private final MigrationSwitch migrationSwitch;

    // Pattern: Facade + Strangler Fig - Aufrufer bleiben stabil, Implementierung wandert schrittweise.
    public OrderResponse placeOrder(PlaceOrderRequest request) {
        if (migrationSwitch.useModernPath(request.customerSegment())) {
            return modern.placeOrder(request);
        }
        return legacy.placeOrder(request);
    }
}

javax zu jakarta

Die Umstellung von javax.* auf jakarta.* ist nicht nur Suchen/Ersetzen. Application Server, Libraries, Annotation Processor, SOAP/JAX-WS, JPA Provider, Validation, Security und Tests müssen zusammenpassen. Besonders kritisch sind alte Bibliotheken, die noch javax-APIs erwarten.

⌂ Cockpit