Dieser Intensivpfad konzentriert sich auf Anwendungen mit mehreren Integrationen, differenzierten Berechtigungen, Mandantenanforderungen und wiederverwendbaren Plattformkomponenten. Solche Systeme benötigen klare Grenzen und überprüfbare Sicherheitsregeln.
Die Inhalte verdichten die Seminare zu Architektur, Sicherheit, Integration, Messaging, Multi-Tenancy, NoSQL und Plugin-Entwicklung. Eine modulare Referenzanwendung dient als gemeinsamer technischer Rahmen.
Inhaltsverzeichnis
- Zielgruppe
- Voraussetzungen
- Lernziele
- Modul 1: Schichten, Module und fachliche Grenzen
- Modul 2: Enterprise-Patterns für Grails-Anwendungen
- Modul 3: Modularisierung und gemeinsame Komponenten
- Modul 4: Bedrohungsmodell und Sicherheitsarchitektur
- Modul 5: Authentifizierung mit Spring Security
- Modul 6: Autorisierung auf URL-, Controller- und Methodenebene
- Modul 7: Tokenbasierte API-Sicherheit und CORS
- Modul 8: REST-Ressourcen und API-Verträge entwerfen
- Modul 9: HTTP-Integration und robuste Clients
- Modul 10: Messaging, Ereignisse und Entkopplung
- Modul 11: Asynchrone Verarbeitung und Hintergrundaufgaben
- Modul 12: Resilienz bei gestörten Abhängigkeiten
- Modul 13: Mandantenmodell und Isolationsstrategie
- Modul 14: Multi-Tenancy mit GORM umsetzen
- Modul 15: Dokumentenmodellierung mit GORM für MongoDB
- Modul 16: Abfragen, Aggregationen und Geodaten
- Modul 17: Grails-Plugin anlegen und strukturieren
- Modul 18: Laufzeit-Hooks, Beans und Konventionen erweitern
- Modul 19: Abhängigkeiten, Kompatibilität und Veröffentlichung
- Praxisprojekt und Übungen
- Arbeitsweise
Zielgruppe
Erfahrene Grails-, Groovy-, Java- oder Spring-Entwickler, Softwarearchitekten und technische Leiter von Enterprise-Projekten.
Voraussetzungen
Sichere Grails-Grundkenntnisse, Erfahrung mit Services, GORM und HTTP sowie Grundlagen von Authentifizierung, Datenbanken und verteilter Kommunikation.
Lernziele
- Fachliche Module und Integrationsgrenzen tragfähig entwerfen.
- Authentifizierung und mehrstufige Autorisierung umsetzen.
- REST- und Messaging-Schnittstellen resilient gestalten.
- Mandantenfähigkeit mit technischer Datenisolation realisieren.
- Relationale und dokumentenorientierte Persistenz begründet kombinieren.
- Gemeinsame Funktionen als getestete Plugins bereitstellen.
Modul 1: Schichten, Module und fachliche Grenzen
Die Anwendung wird nach fachlichen Verantwortlichkeiten statt nach zufälligen technischen Paketen gegliedert.
- Schritt 1: Anwendungsfälle, Domänenbereiche und Abhängigkeiten erfassen.
- Schritt 2: Controller, Services, Domäne und Infrastruktur klar abgrenzen.
- Schritt 3: Zulässige Abhängigkeitsrichtungen und öffentliche Schnittstellen festlegen.
- Schritt 4: Architekturregeln mit Tests oder Buildprüfungen dauerhaft absichern.
Modul 2: Enterprise-Patterns für Grails-Anwendungen
Bewährte Muster werden nur dort eingesetzt, wo sie Komplexität reduzieren und Verantwortlichkeiten sichtbar machen.
- Schritt 1: DTOs, Fassaden, Repositories und Adapter anhand konkreter Probleme bewerten.
- Schritt 2: Synchrone und ereignisbasierte Anwendungsfälle unterscheiden.
- Schritt 3: Idempotenz, Auditierung und Fehlergrenzen entwerfen.
- Schritt 4: Überarchitektur erkennen und auf die tatsächlich benötigten Muster reduzieren.
Modul 3: Modularisierung und gemeinsame Komponenten
Wachsende Anwendungen werden in klar versionierbare Module oder Plugins mit kontrollierten Schnittstellen zerlegt.
- Schritt 1: Kohäsive Funktionsbereiche und gemeinsame Querschnittskomponenten bestimmen.
- Schritt 2: Abhängigkeiten und Initialisierungsreihenfolge zwischen Modulen festlegen.
- Schritt 3: Interne APIs und Erweiterungspunkte dokumentieren.
- Schritt 4: Getrennte Tests und Veröffentlichungszyklen praktisch erproben.
Modul 4: Bedrohungsmodell und Sicherheitsarchitektur
Schutzbedarf, Angriffsflächen und Vertrauensgrenzen werden vor der technischen Konfiguration geklärt.
- Schritt 1: Schützenswerte Daten und kritische Funktionen inventarisieren.
- Schritt 2: Rollen, Identitäten und Vertrauensgrenzen modellieren.
- Schritt 3: Angriffspfade für Weboberfläche, API und Administration bewerten.
- Schritt 4: Konkrete Sicherheitsanforderungen und Prüfkriterien ableiten.
Modul 5: Authentifizierung mit Spring Security
Anmeldeverfahren werden mit sicheren Passwörtern, kontrollierter Sitzung und klarer Fehlerbehandlung implementiert.
- Schritt 1: Benutzer-, Rollen- und Zuordnungsmodell erzeugen oder anpassen.
- Schritt 2: Passwortspeicherung, Login und Logout konfigurieren.
- Schritt 3: Session-Fixation, parallele Sitzungen und Remember-me bewusst behandeln.
- Schritt 4: Fehlgeschlagene und erfolgreiche Anmeldungen protokollieren und testen.
Modul 6: Autorisierung auf URL-, Controller- und Methodenebene
Berechtigungen werden nah an der geschützten Operation und mit nachvollziehbaren Regeln umgesetzt.
- Schritt 1: Rollen, Berechtigungen und Hierarchien fachlich definieren.
- Schritt 2: URL-Regeln und Annotationen konsistent kombinieren.
- Schritt 3: Objektbezogene Berechtigungen in Services prüfen.
- Schritt 4: Unzulässige Zugriffe mit negativen Tests absichern.
Modul 7: Tokenbasierte API-Sicherheit und CORS
System- und Browserzugriffe werden mit klaren Token-Lebenszyklen und minimalen Berechtigungen abgesichert.
- Schritt 1: Tokenausgabe, Ablauf und Widerruf modellieren.
- Schritt 2: Berechtigungen und Claims auf notwendige Informationen begrenzen.
- Schritt 3: CORS-Regeln für bekannte Clients restriktiv festlegen.
- Schritt 4: Abgelaufene, manipulierte und unberechtigte Anfragen testen.
Modul 8: REST-Ressourcen und API-Verträge entwerfen
Die API wird aus fachlichen Ressourcen, Zustandsübergängen und klaren Fehlerfällen abgeleitet.
- Schritt 1: Ressourcen, Identitäten und Beziehungen festlegen.
- Schritt 2: HTTP-Methoden, Statuscodes und Idempotenz konsistent zuordnen.
- Schritt 3: Request- und Response-Modelle von internen Domain-Klassen trennen.
- Schritt 4: Versionierungs-, Pagination- und Filterstrategie dokumentieren.
Modul 9: HTTP-Integration und robuste Clients
Externe Dienste werden mit expliziten Verträgen, Zeitgrenzen und kontrollierter Fehlerbehandlung angebunden.
- Schritt 1: Client-Schnittstelle und Transportmodell von der Fachlogik trennen.
- Schritt 2: Timeouts, Authentifizierung und Verbindungsverwaltung konfigurieren.
- Schritt 3: Fehlercodes und unvollständige Antworten in fachliche Ergebnisse übersetzen.
- Schritt 4: Integrationen mit Stubs und realitätsnahen Integrationstests absichern.
Modul 10: Messaging, Ereignisse und Entkopplung
Asynchrone Kommunikation wird mit eindeutiger Zuständigkeit, Nachrichtenschema und Fehlerpfad gestaltet.
- Schritt 1: Ereignis, Befehl und Nachricht fachlich voneinander unterscheiden.
- Schritt 2: Produktion und Verarbeitung von Nachrichten in Services kapseln.
- Schritt 3: Idempotenz, Reihenfolge und doppelte Zustellung berücksichtigen.
- Schritt 4: Fehlerwarteschlange, Wiederholung und manuelle Nachbearbeitung vorsehen.
Modul 11: Asynchrone Verarbeitung und Hintergrundaufgaben
Lang laufende oder entkoppelbare Arbeiten werden außerhalb des Request-Threads kontrolliert ausgeführt.
- Schritt 1: Geeignete Aufgaben und notwendige Konsistenzgrenzen identifizieren.
- Schritt 2: Executor, Ereignismechanismus oder Jobverarbeitung passend auswählen.
- Schritt 3: Kontext, Transaktionen und Fehler nicht unbeabsichtigt über Threadgrenzen tragen.
- Schritt 4: Status, Wiederholung, Abbruch und Überwachung implementieren.
Modul 12: Resilienz bei gestörten Abhängigkeiten
Die Anwendung reagiert auf Zeitüberschreitungen und Teilausfälle mit definiertem Verhalten statt mit Kettenfehlern.
- Schritt 1: Zeitgrenzen und Fehlerbudgets je Abhängigkeit festlegen.
- Schritt 2: Wiederholungen nur für idempotente und geeignete Fehler konfigurieren.
- Schritt 3: Circuit-Breaker-, Fallback- oder Warteschlangenstrategie bewerten.
- Schritt 4: Störungen gezielt simulieren und Betriebsreaktionen prüfen.
Modul 13: Mandantenmodell und Isolationsstrategie
Mandantenfähigkeit wird aus Sicherheits-, Betriebs- und Datenanforderungen abgeleitet.
- Schritt 1: Mandantenidentität und Lebenszyklus definieren.
- Schritt 2: Datenbank-, Schema- oder Diskriminatoransatz vergleichen.
- Schritt 3: Mandantenkontext für Web, Jobs und Integrationen festlegen.
- Schritt 4: Isolations-, Skalierungs- und Migrationsfolgen dokumentieren.
Modul 14: Multi-Tenancy mit GORM umsetzen
Der gewählte Ansatz wird in Domain-Klassen, Services und Datenzugriff konsistent verankert.
- Schritt 1: GORM-Multi-Tenancy konfigurieren und Tenant Resolver bereitstellen.
- Schritt 2: Mandantengebundene Abfragen und Services implementieren.
- Schritt 3: Systemweite administrative Operationen ausdrücklich trennen.
- Schritt 4: Fehlenden oder ungültigen Mandantenkontext sicher behandeln.
Modul 15: Dokumentenmodellierung mit GORM für MongoDB
Dokumentstrukturen werden an Zugriffsmustern, Änderungsgrenzen und erwarteter Größe ausgerichtet.
- Schritt 1: Aggregate, eingebettete Dokumente und Referenzen modellieren.
- Schritt 2: Schemaflexibilität durch explizite Validierung beherrschbar machen.
- Schritt 3: Indizes und eindeutige Schlüssel aus Abfragen ableiten.
- Schritt 4: Relationale Modellgewohnheiten erkennen und gezielt vermeiden.
Modul 16: Abfragen, Aggregationen und Geodaten
GORM-Abfragen und native Möglichkeiten werden nach Ausdrucksstärke und Betriebswirkung ausgewählt.
- Schritt 1: Finder und Where Queries für Dokumente einsetzen.
- Schritt 2: Text-, Bereichs- und geobasierte Abfragen modellieren.
- Schritt 3: Aggregationen für Auswertungen entwerfen.
- Schritt 4: Ausführungspläne und Indexnutzung mit realistischen Daten prüfen.
Modul 17: Grails-Plugin anlegen und strukturieren
Eine wiederverwendbare Erweiterung wird mit klarer Zielversion, API und minimalen Abhängigkeiten aufgebaut.
- Schritt 1: Plugin- oder Web-Plugin-Profil passend auswählen.
- Schritt 2: Metadaten, Packages und öffentliche Schnittstellen definieren.
- Schritt 3: Artefakte, Konfiguration und Ressourcen sauber trennen.
- Schritt 4: Plugin lokal in einer Beispielanwendung einbinden.
Modul 18: Laufzeit-Hooks, Beans und Konventionen erweitern
Framework-Erweiterungen werden über dokumentierte Lebenszyklus- und Registrierungspunkte umgesetzt.
- Schritt 1: Beans und Konfiguration im Plugin bereitstellen.
- Schritt 2: Artefakte oder Hilfs-APIs nur bei echtem Bedarf ergänzen.
- Schritt 3: Start- und Änderungsereignisse ohne globale Seiteneffekte behandeln.
- Schritt 4: Konflikte mit Anwendungskonfiguration und anderen Plugins testen.
Modul 19: Abhängigkeiten, Kompatibilität und Veröffentlichung
Das Plugin erhält einen reproduzierbaren Build und eine nachvollziehbare Kompatibilitätsstrategie.
- Schritt 1: Grails-Versionen und optionale Abhängigkeiten einschränken.
- Schritt 2: Unit-, Integrations- und Beispielanwendungstests ausführen.
- Schritt 3: Versionsschema, Changelog und Upgrade-Hinweise pflegen.
- Schritt 4: Artefakt in ein internes oder freigegebenes Maven-Repository veröffentlichen.
Praxisprojekt und Übungen
Eine modulare Anwendung erhält gesicherte Web- und API-Zugriffe, eine robuste externe Integration, Ereignisverarbeitung, Mandantenkontext und einen dokumentenorientierten Teilbereich. Eine gemeinsame Funktion wird als Plugin ausgelagert und getestet.
Arbeitsweise
Kurze fachliche Einführungen wechseln mit Demonstrationen, angeleiteten Implementierungsschritten, selbstständigen Übungen und gemeinsamer Auswertung. Entscheidungen werden im Code, in Tests und in einer knappen technischen Dokumentation nachvollziehbar festgehalten.
Fachbereichsleiter / Leiter der Trainer / Ihre Ansprechpartner
-

Lucas Beich
Telefon: + 49 (221) 74740055
E-Mail: lucas.beich@seminar-experts.de -

Paul Goldschmidt
Telefon: + 49 (221) 74740055
E-Mail: paul.goldschmidt@seminar-experts.de
Seminardetails
| Dauer: | 5 Tage ca. 6 h/Tag, Beginn 1. Tag: 10:00 Uhr, weitere Tage 09:00 Uhr |
| Preis: |
Öffentlich oder Live Stream: € 2.995 zzgl. MwSt. Inhaus: € 8.500 zzgl. MwSt. |
| Teilnehmeranzahl: | min. 2 - max. 8 |
| Teilnehmer: | Erfahrene Grails-, Groovy-, Java- oder Spring-Entwickler, Softwarearchitekten und technische Leiter von Enterprise-Projekten. |
| Voraussetzungen: | Sichere Grails-Grundkenntnisse, Erfahrung mit Services, GORM und HTTP sowie Grundlagen von Authentifizierung, Datenbanken und verteilter Kommunikation. |
| Standorte: | Stream Live, Inhaus/Firmenseminar, Berlin, Bremen, Darmstadt, Dresden, Erfurt, Essen, Flensburg, Frankfurt, Freiburg, Friedrichshafen, Hamburg, Hamm, Hannover, Jena, Kassel, Köln, Konstanz, Leipzig, Luxemburg, Magdeburg, Mainz, München, Münster, Nürnberg, Paderborn, Potsdam, Regensburg, Rostock, Stuttgart, Trier, Ulm, Wuppertal, Würzburg |
| Methoden: | Vortrag, Demonstrationen, praktische Übungen am System |
| Seminararten: | Öffentlich, Webinar, Inhaus, Workshop - Alle Seminare mit Trainer vor Ort, Webinar nur wenn ausdrücklich gewünscht |
| Durchführungsgarantie: | ja, ab 2 Teilnehmern |
| Sprache: | Deutsch - bei Firmenseminaren ist auch Englisch möglich |
| Seminarunterlage: | Dokumentation auf Datenträger oder als Download |
| Teilnahmezertifikat: | ja, selbstverständlich |
| Verpflegung: | Kalt- / Warmgetränke, Mittagessen (wahlweise vegetarisch) |
| Support: | 3 Anrufe im Seminarpreis enthalten |
| Barrierefreier Zugang: | an den meisten Standorten verfügbar |
| Weitere Informationen unter + 49 (221) 74740055 |
Seminartermine
Die Ergebnissliste kann durch Anklicken der Überschrift neu sortiert werden.
