SlideShare ist ein Scribd-Unternehmen logo
„Multi-Channel“-Architecture
Lars Röwekamp | CIO New Technologies | @mobileLarson
open knowledge | #WISSENTEILEN
Branchenneutrale Softwareentwicklung und IT-Beratung
ÜBER OPEN KNOWLEDGE
#WISSENTEILEN
Lars Röwekamp (a.k.a. @mobileLarson)
ÜBER MICH
LR
#WISSENTEILEN
Wer bin ich - und wen ja, wie viele?
• CIO New Technologies
• Enterprise & Mobile
• Author, Speaker, Coach & Mentor
• Snowboard & MTB Enthusiast
• dreifacher Vater, einfacher Ehemann
#WISSENTEILEN
„Multi-Channel?
Warum?“
Motivation
#WISSENTEILEN
Motivation
#WISSENTEILEN
„The Mindshift“
#WISSENTEILEN
„The expectation that I can get what i want in
my immediate context and moments of need!“
#WISSENTEILEN
„Mindshift“ in ...
Verhalten, Erwartungen, Kontrolle
#WISSENTEILEN
„Multi-Channel, na klar!
Wo liegt das Problem?“
Motivation
#WISSENTEILEN
Motivation
#WISSENTEILEN
Motivation
#WISSENTEILEN
Motivation
#WISSENTEILEN
Responsiveness
#WISSENTEILEN
Responsiveness
#WISSENTEILEN
Multi-Channel?
Responsiveness
#WISSENTEILEN
Cross-Channel?
Responsiveness
#WISSENTEILEN
Omni-Channel!
Responsiveness
#WISSENTEILEN
Responsiveness
Single-Channel
(a.k.a. „the Past“)
Multi-Channel
(a.k.a. „the Reality“)
Cross-Channel
(a.k.a. „the Wannabe“)
#WISSENTEILEN
Responsiveness
Omni-Channel
(a.k.a. „the far-far-away Future“)
#WISSENTEILEN
Responsiveness
Hmmm, kind of Fail?
#WISSENTEILEN
Responsiveness
#WISSENTEILEN
What‘s the Problem?
It‘s old but not sooo bad.
#WISSENTEILEN
Architektur
#WISSENTEILEN
A responsive Monolith
is still a Monolith!
Multi-Channel Architecture
Monolith
#WISSENTEILEN
• Umsetzung von Features dauert zu lange
• Architektur-Qualität nimmt ab (an Bedeutung)
• Qualität verwässert
• Technologische „Schulden“ sind bekannt
• „-ility“ Probleme wohin man schaut
• Deplyoment ist kompliziert und dauert lang
• Skalierung hat Limit erreicht
• Replacement/Refactoring ist zu teuer
#WISSENTEILEN
Monolith meets
„Time to Market“
#WISSENTEILEN
Architektur
Resources vs. Views
#WISSENTEILEN
Architektur
#WISSENTEILEN
Architektur
#WISSENTEILEN
Heavy Load
#WISSENTEILEN
Requst / Response
vs.
Event / Notification
Architektur
#WISSENTEILEN
Architektur
#WISSENTEILEN
Architektur
#WISSENTEILEN
Skalierung?
#WISSENTEILEN
Architektur
You want to be here!
#WISSENTEILEN
Domain vs. Application
Architektur
#WISSENTEILEN
Architektur
#WISSENTEILEN
Architektur
#WISSENTEILEN
Architektur
#WISSENTEILEN
Autonomie?
#WISSENTEILEN
Architektur
Application Server
vs.
Platform Service
#WISSENTEILEN
Architektur
#WISSENTEILEN
Architektur
#WISSENTEILEN
Oh, my god!
#WISSENTEILEN
Microservices! PaaS!
#WISSENTEILEN
TODO
Yeah, all Work done!
#WISSENTEILEN
TODO
Really? ALL Work done?
#WISSENTEILEN
Architektur
#WISSENTEILEN
Distributed
System
#WISSENTEILEN
Versionierung?
Error	Handling?
Caching	&	Sync?
Security?
Analytics?
#WISSENTEILEN
Versionierung?
Multi-Channel Architecture
Versionierung
#WISSENTEILEN
• Client/Service entwickeln sich unterschiedlich
• Request /Response passen nicht zueinander
• Fehlende/unbekannte Request Attribute
• Fehlende/unbekannte Response Attribute
• Geänderte Semantik von Attributen
• Geänderte Semantik von Defaults
Multi-Channel Architecture
Versionierung
#WISSENTEILEN
Best Practices strategisch
• so lang wie möglich verhindern
• enge Koppelung vermeiden
• Consumer-Driven Contracts
• Semantic Versioning (Major.Minor.Patch)
• Koexistenz verschiedener Endpoints
• konkurierende Service Versionen
#WISSENTEILEN
Versionierung
#WISSENTEILEN
Versionierung
#WISSENTEILEN
Versionierung
#WISSENTEILEN
Versionierung
#WISSENTEILEN
Versionierung
#WISSENTEILEN
Versionierung
Multi-Channel Architecture
Versionierung
#WISSENTEILEN
Best Practices technisch
• gar nicht
• gar nicht (via neue Ressourcen)
• gar nicht (via erweiterbarer Datenformate)
• Versionsnummer in der URL
• Version Request Header
• Content Negotiation
Multi-Channel Architecture
Versionierung
#WISSENTEILEN
// Versioning via multiple resources
// GET all orders
GET /orders HTTP/1.1
// GET all neworders
GET /neworders HTTP/1.1
Multi-Channel Architecture
Versionierung
#WISSENTEILEN
// Versioning via adaptable data format
{ "items" : [ {
"name" : "coffee",
"quantity" : 1,
"milk" : "semi",
"size" : "large",
} ],
"location" : ”take-away"
}
Multi-Channel Architecture
Versionierung
#WISSENTEILEN
// Versioning via adaptable data format
{ ”items" : [ {
"name" : "coffee",
"quantity" : 1,
"milk" : "semi",
"size" : "large",
"price" : "4.00 USD"
} ],
"location" : "take-away"
}
Multi-Channel Architecture
Versionierung
#WISSENTEILEN
// Versioning via adaptable data format
{ ”items" : [ {
"name" : "coffee",
"quantity" : 1,
"milk" : "semi",
"size" : "large",
"price" : "4.00 USD"
} ],
“total-price" : "4.00 USD"
"location" : "take-away"
}
Multi-Channel Architecture
Versionierung
#WISSENTEILEN
// Versioning via adaptable data format
{ ”items" : [ {
"name" : "coffee",
"quantity" : 1,
"milk" : "semi",
"size" : "large",
"price" : "4.00 USD"
} ],
“price" : "4.00 USD"
"location" : "take-away"
}
„Are	you a		
tolerant	reader?“
Multi-Channel Architecture
Versionierung
#WISSENTEILEN
// Versioning via URL (default version)
GET /orders/1234 HTTP/1.1
[various other headers]
// Versioning via URL (version part of path)
GET /v2/orders/1234 HTTP/1.1
[various other headers]
// Versioning via URL (as request parameter)
GET /orders/1234?ver=v2 HTTP/1.1
[various other headers]
Multi-Channel Architecture
Versionierung
#WISSENTEILEN
// Versioning via Header(default version)
GET /orders/1234 HTTP/1.1
// Versioning via Version Header
GET /orders/1234 HTTP/1.1
Api-version: 2.1
// Versioning via Accept Header
GET /orders/1234 HTTP/1.1
Accept: application/vnd.abc.xyz.v2.1+json
#WISSENTEILEN
Errors?
Multi-Channel Architecture
Error Handling
#WISSENTEILEN
„Is it a bug or a feature?“
• Error Handling
• Compensation Algorithm
Multi-Channel Architecture
Error Handling
#WISSENTEILEN
Status Codes - Pro Tipp: Use them!
• 1xx: Hold on ...
• 2xx: Here you go!
• 3xx: Go away!
• 4xx: You f#!?ed up!
• 5xx: I f#!?ed up!
Facebook	„Always
200“	Anti-Pattern
Multi-Channel Architecture
Error Handling
#WISSENTEILEN
Multi-Channel Architecture
Error Handling
#WISSENTEILEN
// POST a request for some async workload
POST /asynccall ... HTTP/1.1
[various other headers]
// Response with no payload, because it is
// not calculated yet
HTTP/1.1. 202 Accepted
Multi-Channel Architecture
Error Handling
#WISSENTEILEN
// DELETE order with id 1234
DELETE /orders/1234 HTTP/1.1
[various other headers]
// Order successfully deleted. Response has
// no content (by purpose)
HTTP/1.1. 204 No content
Multi-Channel Architecture
Error Handling
#WISSENTEILEN
// Response with error payload
HTTP/1.1 403 Forbidden
Content-Type: application/problem+json
Content-Language: en
{ "type": https://example.com/no-credit,
"title": “You have not enough credit.“,
"detail": "Your balance is 30, but ...“,
"instance": "/account/12345/msgs/abc“,
"balance": 30,
"accounts": ["/account/12345",
"/account/67890”]
}
Multi-Channel Architecture
Error Handling
#WISSENTEILEN
Manchmal kommt es anders als man denkt!
• „Code for Code“
• „Message for People“
• „Payload and Format“
• Kein Stacktrace
• Exception Mapper als Provider
Multi-Channel Architecture
Error Handling
#WISSENTEILEN
// JAX-RS Exception Handler Example
@Provider
public class MyAppExceptionHandler implements
ExceptionMapper<MyAppError> {
@Override
public Response toResponse(MyAppError error){
return Response.
status(Status.BAD_REQUEST).
entity(error.getMessage()).
build();
}
}
Multi-Channel Architecture
Error Handling
#WISSENTEILEN
Compensation Algorithm
• Transactions
• Eventual Consistency
• Service not available
„Starbucks	does not	use
Two-Phase	Commit“
http://www.enterpriseintegrationpatterns.com/ramblings/18_starbucks.html
#WISSENTEILEN
Caches
&	Sync?
Multi-Channel Architecture
Caching
#WISSENTEILEN
Always remember: „The Web is your Friend“
• das Web bietet tolle Möglichkeiten
• RESTful Service nutzen das Web bzw. HTTP
Multi-Channel Architecture
Caching
#WISSENTEILEN
Aber wer cached eigentlich was?
• Client (Web Browser, REST Client, ...)
• Proxy Caches („man in the middle cache“)
• Content Delivery Networks (CDNs)
Multi-Channel Architecture
Caching
#WISSENTEILEN
Wie funktioniert HTTP Caching?
• Expires Header (HTTP 1.0)
• Cache-Control (HTTP 1.1)
• Revalidation & Conditional GETs
Multi-Channel Architecture
Caching
#WISSENTEILEN
Expires Header (HTTP 1.0)
• Hint, ob Daten noch gültig sind oder nicht
Expires: Tue, 22 DEC 2015 16:00 GMT
Multi-Channel Architecture
Caching
#WISSENTEILEN
Cache Control (HTTP 1.1)
• deutlich genauere Cache-Steuerung als bei
Expires Header
• private, public
• no-cache
• no-store
• no-transform
• max-age, s-maxage
Multi-Channel Architecture
Caching
#WISSENTEILEN
Revalidation & Conditional GET (HTTP 1.1)
• Prüfung, ob Cache-Daten wirklich invalide
• Server sendet Header zur Prüfung zurück
• Last-Modified
• Etag
#WISSENTEILEN
Analytics?
Multi-Channel Architecture
Analytics
#WISSENTEILEN
Wider dem Kontrollverlust: Analytics als
Grundlage für strategische Entscheidungen
• Was macht der User eigentlich?
• Und in welchem Kontext?
• Werden meine Daten genutzt?
• Und wenn ja, wie?
Multi-Channel Architecture
Analytics
#WISSENTEILEN
Schritt 1: notwendige Daten identifizieren
• Was sind die Business relevanten Metriken?
• Was sind die technischen Metriken?
• Was sind weitere Erfolgsmetriken?
Multi-Channel Architecture
Analytics
#WISSENTEILEN
Schritt 2: Nutzbarkeit prüfen
• Kann ich die gewünschten Daten sammeln?
• Habe ich die notwendigen Analysetools?
• Habe ich die notwendige Analyseerfahrung?
Multi-Channel Architecture
Analytics
#WISSENTEILEN
Monitore deine Ratings
• Ratings unbedingt ernst nehmen!
• Bester Kanal hin zu den Nutzern
• Nächstes Feature ist wahrscheinlich schon als
Review in den Ratings und nicht im Backlog
Multi-Channel Architecture
Analytics
#WISSENTEILEN
Monitore deinen Traffic
• Erkennen von Serverproblemen
• Probleme werden auf den Client geschoben.
• BTW: App ist nicht Web - einmal deinstalliert
ist immer deinstalliert!
Multi-Channel Architecture
Analytics
#WISSENTEILEN
Monitore deine UX
• Nutzerverhalten verstehen lernen
• Client Performance messen
• Netzwerklatenz erkennen
• In welchen Ländern/Regionen?
• Auf welchen Geräten/Browsern?
#WISSENTEILEN
FAZIT
Mutli-Channel Architecture
Fazit
#WISSENTEILEN
„Mit Multi-Channel verlagere ich
bestehendes Business.
Mit Omni-Channel generiere ich
neues Business!“
#WISSENTEILEN
Mutli-Channel Architecture
Fazit
#WISSENTEILEN
„Time-to-Market“ via
• Resources statt Views
• Events statt Request/Response
• Domain Services statt Application
• Modularization statt Monolith
Omni
___
FRAGEN
? ? ?
#WISSENTEILEN
LARS RÖWEKAMP
CIO NEW TECHNOLOGIES
lars.roewekamp@openknowledge.de
+49 (0)441 4082 – 101
@mobileLarson
@_openknowledge
OFFENKUNDIGGUT
KONTAKT
#WISSENTEILEN
#1: © Rawpixel.com - shutterstock.com
#6: © OneinchPunch- fotolia.com
#40: © g-stockstudio – shutterstock.com
#82: © tomer_turjeman – fotolia.com
#84: © Peshkova - shutterstock.com
All other pictures inside this presentation orginate from pixabay.com.
BILDNACHWEISE
#WISSENTEILEN

Weitere ähnliche Inhalte

PDF
App-Delivery-Pipeline
PDF
Java EE goes Microservices. Are you serious?
PDF
App war gestern: Mobile Engagement als Teil der Enterprise-Strategie
PDF
CQRS, der etwas andere Architekturansatz
PDF
The Day after – nach dem Release ist vor dem Release
PDF
Herausforderung „Multi-Channel Architecture”
PDF
Das passende Backend für meine Apps
PDF
Mobile Ideation – der sanfte Weg zum mobilen Mehrwert
App-Delivery-Pipeline
Java EE goes Microservices. Are you serious?
App war gestern: Mobile Engagement als Teil der Enterprise-Strategie
CQRS, der etwas andere Architekturansatz
The Day after – nach dem Release ist vor dem Release
Herausforderung „Multi-Channel Architecture”
Das passende Backend für meine Apps
Mobile Ideation – der sanfte Weg zum mobilen Mehrwert

Was ist angesagt? (20)

PPTX
iOS: einheitliche Oberflächen mit Auto Layout
PDF
Java EE meets Microservices
PDF
Modern Lightweight Enterprise Architectures mit Java
PDF
Less Server vs. Serverless?
PDF
Aus der Rubrik "Spaß mit Microservices": Transaktionen
PDF
Web-API-Design jenseits von REST und Request/Response
PDF
Der Enterprise-Java-Architekt – eine aussterbende Gattung!?
PDF
Microservices mit dem MicroProfile
PDF
Der perfekte Microservice
PDF
Web APIs jenseits von REST & Request/Response
PDF
Die Matrix: Enterprise-Architekturen jenseits von Microservices
PDF
The Day after
PDF
Microservices Architecture: Architektur und Patterns
PDF
Microservices Migration: Vom Monolithen zu Microservices
PDF
Spaß mit Microservices: Transaktionen
PDF
Shared Data in verteilten Systemen
PDF
Zukunftssichere Architekturen mit Microservices
PDF
Enterprise Java auf Diät
PDF
Cloud Architekturen - von "less Server" zu Serverless
PDF
Mobile Ideation aka "Der mobile Mehrwert"
iOS: einheitliche Oberflächen mit Auto Layout
Java EE meets Microservices
Modern Lightweight Enterprise Architectures mit Java
Less Server vs. Serverless?
Aus der Rubrik "Spaß mit Microservices": Transaktionen
Web-API-Design jenseits von REST und Request/Response
Der Enterprise-Java-Architekt – eine aussterbende Gattung!?
Microservices mit dem MicroProfile
Der perfekte Microservice
Web APIs jenseits von REST & Request/Response
Die Matrix: Enterprise-Architekturen jenseits von Microservices
The Day after
Microservices Architecture: Architektur und Patterns
Microservices Migration: Vom Monolithen zu Microservices
Spaß mit Microservices: Transaktionen
Shared Data in verteilten Systemen
Zukunftssichere Architekturen mit Microservices
Enterprise Java auf Diät
Cloud Architekturen - von "less Server" zu Serverless
Mobile Ideation aka "Der mobile Mehrwert"
Anzeige

Andere mochten auch (20)

DOC
EDWIN MATHEW CV
PPT
CONOCIENDO LA CAPITAL DE MI PROVINCIA
PDF
Defib Course
PPTX
La pobreza en el distrito federal en el 2004
PDF
Resources for Mobiles
DOC
1%2 b inteligencias%2bm%25c3%25baltiples%2bok
PDF
Condiciones Generales ADESLAS COMPLETA
ODP
Santa maria 5
PPS
Taller de velomancia Sabado 12 de Mayo
PPTX
Beefcious quotes slideshare
PDF
Brochure EQUIPMAG 2016
PDF
Buenas prácticas Dinamización Parques "Yo soy tetuan"
PDF
Detection of brown dwarf like objects in the core of ngc3603
PDF
Archivos Web y Economía Digital. María Fernández Rancaño
PDF
REVISTA NUMERO 27 CANDÁS MARINERO
PDF
African Leadership in ICT and Knowledge Societies: Issues, Tensions and Oppor...
DOC
Bảo mật mạng máy tính và tường lửa
PPTX
Aricent corporate presentation
PPTX
Didáctica los incendios forestales por María José Chamorro
EDWIN MATHEW CV
CONOCIENDO LA CAPITAL DE MI PROVINCIA
Defib Course
La pobreza en el distrito federal en el 2004
Resources for Mobiles
1%2 b inteligencias%2bm%25c3%25baltiples%2bok
Condiciones Generales ADESLAS COMPLETA
Santa maria 5
Taller de velomancia Sabado 12 de Mayo
Beefcious quotes slideshare
Brochure EQUIPMAG 2016
Buenas prácticas Dinamización Parques "Yo soy tetuan"
Detection of brown dwarf like objects in the core of ngc3603
Archivos Web y Economía Digital. María Fernández Rancaño
REVISTA NUMERO 27 CANDÁS MARINERO
African Leadership in ICT and Knowledge Societies: Issues, Tensions and Oppor...
Bảo mật mạng máy tính và tường lửa
Aricent corporate presentation
Didáctica los incendios forestales por María José Chamorro
Anzeige

Ähnlich wie Herausforderung „Multi-Channel“-Architektur (20)

PDF
Mag. Gerald Lanzerits (hybris Austria)
PPTX
Frontend-Architektur der 1&1 Bestellsysteme
PDF
Hilfe, ich will meinen Monolithen zurück!
PDF
Web-API Design in Java
PDF
Lego-Bausteine des Online-Handels
PDF
Shared Data in verteilten Architekturen
PDF
E-Commerce Architektur aus Sicht eines Dienstleisters, IPC 2013
PDF
Mobile Commerce (Meet-Magento 04.10)
PDF
Gerade genug Architektur vorneweg - Zur eigenen Architektur-Vision in 12 Minuten
PDF
API-Design, Microarchitecture und Testing
PPTX
API-Industrie
PDF
Cloud APIs - Wettbewerbsvorteile durch Einbindung externer Services
PDF
Back to the Frontend – aber nun mit Microservices
PDF
Q-1 - Die 5 wichtigsten Online-Trends und Ihr CMS
PDF
Globetrotter @ E-Commerce Hacktable HH
PDF
E-Commerce vs Architektur CodeTalks.Commerce_2018
PPT
CRM mit Call Center Integration
PDF
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
 
PDF
Wie Unternehmen Multichannel-Kampagnen selbständig realisieren können.
PDF
Zeitgemäße Webentwicklung
Mag. Gerald Lanzerits (hybris Austria)
Frontend-Architektur der 1&1 Bestellsysteme
Hilfe, ich will meinen Monolithen zurück!
Web-API Design in Java
Lego-Bausteine des Online-Handels
Shared Data in verteilten Architekturen
E-Commerce Architektur aus Sicht eines Dienstleisters, IPC 2013
Mobile Commerce (Meet-Magento 04.10)
Gerade genug Architektur vorneweg - Zur eigenen Architektur-Vision in 12 Minuten
API-Design, Microarchitecture und Testing
API-Industrie
Cloud APIs - Wettbewerbsvorteile durch Einbindung externer Services
Back to the Frontend – aber nun mit Microservices
Q-1 - Die 5 wichtigsten Online-Trends und Ihr CMS
Globetrotter @ E-Commerce Hacktable HH
E-Commerce vs Architektur CodeTalks.Commerce_2018
CRM mit Call Center Integration
Cloud Deployment und (Auto)Scaling am Beispiel von Angrybird
 
Wie Unternehmen Multichannel-Kampagnen selbständig realisieren können.
Zeitgemäße Webentwicklung

Mehr von OPEN KNOWLEDGE GmbH (20)

PPTX
Warum der Computer "Nein" sagt - Mehr Nachvollziehbarkeit dank Explainable AI
PDF
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
PDF
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
PDF
Der Spagat zwischen BIAS und FAIRNESS (2024)
PDF
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
PPTX
Nie wieder Log-Files!
PDF
Cloud-native and Enterprise Java? Hold my beer!
PPTX
From Zero to still Zero: The most beautiful mistakes going into the cloud.
PDF
API Expand Contract
PDF
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & Co
PDF
Machine Learning mit TensorFlow.js
PDF
KI und Architektur
PDF
It's not Rocket Science: Neuronale Netze
PDF
Business-Mehrwert durch KI
PDF
Mehr Sicherheit durch Automatisierung
PDF
Supersonic Java für die Cloud: Quarkus
PDF
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
PDF
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
PDF
Das Product Goal oder "Ohne Ziele laufen eben alle in die Richtung, die ihnen...
PDF
Serverless Survival Guide
Warum der Computer "Nein" sagt - Mehr Nachvollziehbarkeit dank Explainable AI
Machine Learning? Ja gerne! Aber was und wie? Eine Kurzanleitung für den erfo...
From Zero to still Zero: Die schönsten Fehler auf dem Weg in die Cloud
Der Spagat zwischen BIAS und FAIRNESS (2024)
FEHLENDE DATEN? (K)EIN PROBLEM!: Die Kunst der Data Imputation
Nie wieder Log-Files!
Cloud-native and Enterprise Java? Hold my beer!
From Zero to still Zero: The most beautiful mistakes going into the cloud.
API Expand Contract
Ready for the Future: Jakarta EE in Zeiten von Cloud Native & Co
Machine Learning mit TensorFlow.js
KI und Architektur
It's not Rocket Science: Neuronale Netze
Business-Mehrwert durch KI
Mehr Sicherheit durch Automatisierung
Supersonic Java für die Cloud: Quarkus
Das ist doch alles nur Frontend - Wer braucht da schon Architektur?
Auf geht‘s in die Cloud: „Das kann doch nicht so schwer sein!“
Das Product Goal oder "Ohne Ziele laufen eben alle in die Richtung, die ihnen...
Serverless Survival Guide

Herausforderung „Multi-Channel“-Architektur