SlideShare a Scribd company logo
1 of 13
Download to read offline
Mein Service hat sechs Ecken
- Ports and Adapters am Beispiel
Christoph Thelen
25. Juni 2020
Ports and Adapters - fachlicher Kern
Domäne
Ports
Ports
Ports and Adapters - Integration
Integration
Domäne
REST
Messaging
UI
Messaging
Persistenz
Adapters
Adapters
Ports and Adapters - mit Umfeld
Integration
Domäne
REST
Messaging
UI
Messaging
Persistenz
Service
● Fachliche Logik nur im Kern
○ Keine Business-Logik in den technischen Komponenten
○ “Ports”-Interfaces liegen im Kern und sind rein fachlich geschnitten
● Technische Integration findet “außen” statt
○ Adapter implementieren/verwenden die Ports
○ Konkrete Instanzen per DI verwaltet
○ Der Kern hat keine Informationen über technische Implementierungen
● Abhängigkeiten nur “nach innen”
Ports and Adapters Architektur - Prinzipien
● Kapselt die Fachlogik vollständig
● Leichtes Testen der verschiedenen Komponenten
● Austauschen/Ergänzen ist einfach
Fazit:
Nichts wirklich Neues, aber Schichtentrennung und DIP konsequent angewandt.
Ports and Adapters Architektur
● Aufteilung in Domain Model und Services
● “Onion Architecture” - Application, Domain, Domain Model
● DDD Ansätze wie Application Services und Repositories
● Explizites Einbeziehen von Querschnittsthemen, s. “Cluster One”
Verfeinerungen und Varianten
8
Ports and Adapters
am Beispiel
Device Configuration Service
● Verwaltet Config-Parameter und -Werte für Devices
● User Parameter
○ gesetzt in einer Companion App
○ ausgelesen von den Devices
Unser konkretes Beispiel
Externe Sicht
Show me code!
● Onion Architecture; Jeffrey Palermo: https://jeffreypalermo.com/2008/07/the-onion-architecture-part-1/
● Domain Driven Design; Eric Evans
● Cluster One; JWI, MLR, JSI, JavaSPEKTRUM 1/2020
Referenzen
QAware GmbH Mainz
Rheinstraße 4 D
55116 Mainz
Tel.: +49 (0) 6131 215 69 – 0
Fax: +49 (0) 6131 215 69 – 68 xing.com/companies/qawaregmbh
linkedin.com/company/qaware-gmbh slideshare.net/qaware
twitter.com/qaware github.com/qaware
youtube.com/qawaregmbh

More Related Content

More from QAware GmbH

Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
QAware GmbH
 

More from QAware GmbH (20)

Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo Cloud Migration mit KI: der Turbo
Cloud Migration mit KI: der Turbo
 
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See... Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
Migration von stark regulierten Anwendungen in die Cloud: Dem Teufel die See...
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
Endlich gute API Tests. Boldly Testing APIs Where No One Has Tested Before.
 
Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!Kubernetes with Cilium in AWS - Experience Report!
Kubernetes with Cilium in AWS - Experience Report!
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAPKontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
Kontinuierliche Sicherheitstests für APIs mit Testkube und OWASP ZAP
 
Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.Service Mesh Pain & Gain. Experiences from a client project.
Service Mesh Pain & Gain. Experiences from a client project.
 
50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling50 Shades of K8s Autoscaling
50 Shades of K8s Autoscaling
 
Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.Blue turns green! Approaches and technologies for sustainable K8s clusters.
Blue turns green! Approaches and technologies for sustainable K8s clusters.
 
Per Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API GatewaysPer Anhalter zu Cloud Nativen API Gateways
Per Anhalter zu Cloud Nativen API Gateways
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
How to speed up Spring Integration Tests
How to speed up Spring Integration TestsHow to speed up Spring Integration Tests
How to speed up Spring Integration Tests
 
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-ClusterAus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
Aus blau wird grün! Ansätze und Technologien für nachhaltige Kubernetes-Cluster
 
Cloud Migration – Eine Strategie die funktioniert
Cloud Migration – Eine Strategie die funktioniertCloud Migration – Eine Strategie die funktioniert
Cloud Migration – Eine Strategie die funktioniert
 
Policy Driven Microservices mit Open Policy Agent
Policy Driven Microservices mit Open Policy AgentPolicy Driven Microservices mit Open Policy Agent
Policy Driven Microservices mit Open Policy Agent
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
Security Lab: OIDC in der Praxis
Security Lab: OIDC in der PraxisSecurity Lab: OIDC in der Praxis
Security Lab: OIDC in der Praxis
 
Die nächsten 100 Microservices
Die nächsten 100 MicroservicesDie nächsten 100 Microservices
Die nächsten 100 Microservices
 
Enterprise-level Kubernetes Security mit Open Source Tools - geht das?
Enterprise-level Kubernetes Security mit Open Source Tools - geht das?Enterprise-level Kubernetes Security mit Open Source Tools - geht das?
Enterprise-level Kubernetes Security mit Open Source Tools - geht das?
 

Mein Service hat sechs Ecken – Ports & Adapters am Beispiel

  • 1. Mein Service hat sechs Ecken - Ports and Adapters am Beispiel Christoph Thelen 25. Juni 2020
  • 2. Ports and Adapters - fachlicher Kern Domäne Ports Ports
  • 3. Ports and Adapters - Integration Integration Domäne REST Messaging UI Messaging Persistenz Adapters Adapters
  • 4. Ports and Adapters - mit Umfeld Integration Domäne REST Messaging UI Messaging Persistenz Service
  • 5. ● Fachliche Logik nur im Kern ○ Keine Business-Logik in den technischen Komponenten ○ “Ports”-Interfaces liegen im Kern und sind rein fachlich geschnitten ● Technische Integration findet “außen” statt ○ Adapter implementieren/verwenden die Ports ○ Konkrete Instanzen per DI verwaltet ○ Der Kern hat keine Informationen über technische Implementierungen ● Abhängigkeiten nur “nach innen” Ports and Adapters Architektur - Prinzipien
  • 6. ● Kapselt die Fachlogik vollständig ● Leichtes Testen der verschiedenen Komponenten ● Austauschen/Ergänzen ist einfach Fazit: Nichts wirklich Neues, aber Schichtentrennung und DIP konsequent angewandt. Ports and Adapters Architektur
  • 7. ● Aufteilung in Domain Model und Services ● “Onion Architecture” - Application, Domain, Domain Model ● DDD Ansätze wie Application Services und Repositories ● Explizites Einbeziehen von Querschnittsthemen, s. “Cluster One” Verfeinerungen und Varianten
  • 9. Device Configuration Service ● Verwaltet Config-Parameter und -Werte für Devices ● User Parameter ○ gesetzt in einer Companion App ○ ausgelesen von den Devices Unser konkretes Beispiel
  • 12. ● Onion Architecture; Jeffrey Palermo: https://jeffreypalermo.com/2008/07/the-onion-architecture-part-1/ ● Domain Driven Design; Eric Evans ● Cluster One; JWI, MLR, JSI, JavaSPEKTRUM 1/2020 Referenzen
  • 13. QAware GmbH Mainz Rheinstraße 4 D 55116 Mainz Tel.: +49 (0) 6131 215 69 – 0 Fax: +49 (0) 6131 215 69 – 68 xing.com/companies/qawaregmbh linkedin.com/company/qaware-gmbh slideshare.net/qaware twitter.com/qaware github.com/qaware youtube.com/qawaregmbh