SOAP Contract-First & Portal-Integration

WSDL, XSD, Binding, Process, SOAP Faults und Fassade vor Altsystemen.

Version 2IntegrationCodeDiagramm
Diagramm SOAP Contract-First & Portal-Integration
Fachlich-technische Darstellung zu SOAP Contract-First & Portal-Integration.

Warum SOAP wichtig bleibt

In Banken, Versicherungen, Behörden und B2B-Landschaften ist SOAP oft weiterhin produktiv. Verträge, XSD-Typen und WS-* Erweiterungen sind in solchen Umgebungen kein Zufall, sondern Stabilitätsfaktor.

Contract-first statt Java-first

Der Vertrag soll bewusst versioniert und fachlich geprüft werden. Java-Code wird gegen WSDL/XSD gebaut, nicht zufällig zum öffentlichen Vertrag.

Portal kommuniziert über Fassade

Ein Portal sollte Altsystemdetails nicht direkt kennen. Eine Fassade übersetzt Fehler, Datenformate und Sicherheitskontext.

Entscheidungen

EntscheidungGute PraxisPrüffrage
Fachliche GrenzeZuerst Use Case, Invariante und Verantwortlichkeit klären.Welche Geschäftsentscheidung wird geschützt?
Technische GrenzeFramework-/Library-Code hinter Port, Adapter oder Konfiguration kapseln.Kann die Domain ohne Framework getestet werden?
BetriebTimeouts, Logs, Metriken, Traces, Security und Rollback definieren.Wie erkennt der Betrieb Fehler rechtzeitig?

Ausführliche Beispiele

XSD Ausschnitt
<xs:complexType name="PlaceOrderRequest">
  <xs:sequence>
    <xs:element name="customerNumber" type="xs:string" />
    <xs:element name="orderLine" type="tns:OrderLine" minOccurs="1" maxOccurs="unbounded" />
  </xs:sequence>
</xs:complexType>
SOAP Adapter als Port-Implementierung
public final class SoapBillingAdapter implements BillingPort {
    private final BillingSoapClient client;

    // Pattern: Adapter - SOAP-Vertrag bleibt außerhalb des Use Case.
    public InvoiceId createInvoice(Order order) {
        CreateInvoiceResponse response = client.createInvoice(SoapMapper.toRequest(order));
        return new InvoiceId(response.getInvoiceNumber());
    }
}

Typische Stolperfallen

StolperfalleWarum gefährlich
WSDL driftet durch Java-CodeKleine Codeänderung wird Breaking Change.
Faults unstrukturiertClients können Fehler nicht zuverlässig auswerten.
Portal kennt Legacy-CodesModernisierung wird später blockiert.
⌂ Cockpit