67
ZUHÖREN. ANALYSIEREN. BERATEN SIDION

Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

ZUHÖREN. ANALYSIEREN. BERATEN

SIDION

Page 2: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

2

M a t t h i a s K o c h | M a r k u s G r a b e r t

J a v a F o r u m S t u t t g a r t 2 0 1 9

HALLO MICROSERVICES, GIBT’S EUCH

AUCH TRANSAKTIONAL ?

Page 3: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

3

Service

Oriented

Architecture

Von Gartner Inc. 1996 geprägt

B e g r i f f

Hohe Investitionskosten

U n t e r n e h m e n s w e i t e r A n s a t z

„SOA ist ein Paradigma für die Strukturierung und

Nutzung verteilter Funktionalität, die von unterschiedlichen

Besitzern verantwortet wird.“

D e f i n i t i o n n a c h O A S I S ( 2 0 0 6 )

Page 4: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

4

K a n o n i s c h e s

D a t e n m o d e l l

H o h e r A b s t i m m u n g s -

a u f w a n d

Generische Lösungen,

um allen Eventualitäten

gerecht zu werden

Wi e d e r v e r w e n d u n g

MÖGLICHE PROBLEME

MIT SOA

Page 5: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

5

Micro-

services

Wurde 2011 zum ersten Mal verwendet

B e g r i f f

Erster Release von Dropwizard bereits Ende 2011

R e l e a s e

Unabhängige Deploymenteinheiten

Ansatz pro Service und nicht für ein gesamtes Unternehmen

A n s a t z

Page 6: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

6

MICROSERVICES-FRAMEWORKS

Page 7: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

7

MICROSERVICES-FRAMEWORKS

Page 8: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

8

SERVICE-DISCOVERY

Page 9: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

9

SERVICE-DISCOVERY

Page 10: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

10

CONSUMER DRIVEN CONTRACTS

Page 11: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

11

CONSUMER DRIVEN CONTRACTS

FRAMEWORKS

Page 12: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

12

CONSUMER DRIVEN CONTRACTS

FRAMEWORKS

Page 13: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

13

API-GATEWAY

Page 14: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

14

Application

Gateway

Authentifizierung / Autorisierung

Routing

Protokoll-Neutralisation

Service-Discovery

Skalierung

Resillience

Asset-Verwaltung

Traffic-Shaping

Metriken

Page 15: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

15

APPLICATION GATEWAYS

Page 16: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

16

APPLICATION GATEWAYS

Page 17: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

17

TRANSAKTIONEN FRAMEWORKS

Page 18: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

18

Trans-

aktionen

Folge von Aktionen, die als logische Einheit

betrachtet werden

Müssen konsistenten Zustand sicherstellen

Sollten dann eingesetzt werden, wenn teilweise

Umsetzung hohe Risiken birgt

Gegenbeispiel:

Postschalter, Rathaus

Beispiel für Transaktion:

Banküberweisung

Flugbuchung

Page 19: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

19

CAP-THEOREM

Page 20: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

20

XA Trans-

aktionen

Locking von Daten für ggf. lange Zeit

Enge Kopplung

2-Phase-Commits (2PC)

Unterschiedliche Verfügbarkeit der Services

Heterogenes Laufzeitverhalten der Systeme

(DB/HW) Vendor specific

Page 21: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

21

PROBLEME MIT

XA TRANSAKTIONEN

H o h e r O v e r h e a d M a s s i v e E i n s c h r ä n k u n g

p a r a l l e l e r

Ve r a r b e i t u n g

D a t e n s ä t z e b l e i b e n

( g g f . f ü r i m m e r )

g e l o c k t

R e s s o u r c e n k ö n n e n

n i c h t m e h r

v e r f ü g b a r s e i n

M o n o l i t h i s c h e s

S y s t e m

S c h w e r t e s t b a r u n d

g g f . F e h l e r a n a l y s e

t e u e r

Page 22: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

22

Ziele

Keine Locks auf Daten

Lose Kopplung

Einfache Änderbarkeit des Systems

Einfacher Umgang mit nicht verfügbaren Services /

verlorenen Nachrichten

Generischer Ansatz um Datenkonsistenz

sicherzustellen

Page 23: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

23

CAP-THEOREM

Page 24: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

24

CAP-THEOREM

Page 25: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

25

“FALSE FRIENDS”

Page 26: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

26

Das SAGA

Pattern

„Sagas“ erstmalig 1987 als Alternative zu Long Lived

Transactions (LLT) in der Datenbank-Programmierung

vorgeschlagen

U r s p r u n g

Transaktionen in Teil-Transaktionen trennen, die sequentiell

oder auch parallel verarbeitet werden können.

Vorteil: keine längere Blockade von DB-Tabellen

Nachteil: Komplexität der Datenwiederherstellung im

Fehlerfall

I d e e

LLT blockieren Datenbank-Tabellen, behindern andere

(parallele) Prozesse

P r o b l e m

Page 27: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

27

Das SAGA

Pattern

2012: Das Buch „SOA Pattern“ von Arnon Rotem-Gal-

Oz beschreibt ein „Saga Pattern“ für verteilte

Transaktionen jeglicher Art

Ab 2013 und 2014 mehr und mehr Diskussionen über

das Saga-Pattern im SOA und Microservices Umfeld.

2015 „Verteiltes Sagas“: mathematischer Beweis einer

orchestrierten Saga

F o r m u n g

Page 28: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

28

IDEEN

Kompensatorische Transaktionen

Identifikation aller möglichen Zustände

Werden zu jedem Command registriert

Im Fehlerfalle werden alle

kompensatorischen Transaktionen in

inverser Reihenfolge ausgeführt

Keine Fehler durch nicht beachtete Fälle

Page 29: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

29

KOMPENSATION

Page 30: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

30

KOMPENSATION

Page 31: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

31

KOMPENSATION

Page 32: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

32

KOMPENSATION

Page 33: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

33

KOMPENSATION

Page 34: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

34

KOMPENSATION

Page 35: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

35

Das SAGA

Pattern

Eventuate

https://github.com/eventuate-tram/eventuate-tram-sagas

Axon Framework

https://axoniq.io/

Diverse Drafts ohne erkennbare Fortschreibung

Eclipse Microprofile

https://github.com/eclipse/microprofile-lra

Befindet sich noch in der Entwicklung

Implementierung mittels Long-Running Actions (LRA)

I m p l e m e n t i e r u n g e n / F r a m e w o r k s

Page 36: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

36

ECLIPSE MICROPROFILE

Starke Unterstützer (RedHat, Oracle, Microsoft,…)

Große Auswahl an Implementierungen

Ideal für Umbau von Java EE Monolithen in

Microservices

Page 37: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

37

Microprofile

& LRA

In Entwicklung seit Juli 2017

Starke Unterstützer (RedHat, IBM)

Apache 2.0 Lizenz

Regelmäßige Fortschreibung

Page 38: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

38

Abgrenzung

die Trigger und Zustände

garantieren, dass Trigger nicht mehrfach ausgeführt

werden

L R A s d e f i n i e r e n

Prüfung, ob kompensatorische Transaktionen

notwendig sind

das Sicherstellen der Invertierbarkeit aller Commands

die Implementierung der kompensatorischen

Transaktionen

die Persistierung der Daten für Kompensation

die Definition des Verhaltens in allen Zuständen

D i e A p p l i k a t i o n i s t z u s t ä n d i g f ü r

Page 39: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

39

BEISPIEL FLUGBUCHUNG

Booking-

Service

+bookFlight

Flightplan-

Service

+updateFlightplan

Payment-

Service

+payment

Page 40: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

40

ZUSTÄNDE EINER LRA

ActiveLRA

Completing Cancelling

Completed FailedToComplete Canceled FailedToCancel

Complete Cancel

StartLRA

Page 41: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

41

ZUSTÄNDE EINER LRA

ActiveLRA

Completing Cancelling

Completed Canceled FailedToCancel

Complete Cancel

StartLRA

Page 42: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

42

ZUSTÄNDE EINER LRA

ActiveLRA

Completing Cancelling

Completed Canceled

Complete Cancel

StartLRA

Page 43: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

43

ZUSTÄNDE EINES PARTICIPANTS

Active

Completing Compensating

Completed FailedToComplete Compensated FailedToCompensate

Complete Compensate

join

Page 44: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

44

ZUSTÄNDE EINES PARTICIPANTS

Active

Completing Compensating

Completed Compensated FailedToCompensate

Complete Compensate

join

Page 45: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

45

ZUSTÄNDE EINES PARTICIPANTS

Active

Completing Compensating

Completed Compensated

Complete Compensate

join

Page 46: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

46

Wichtige LRA

Annotations

@LRA

@Complete

@Compensate

@Status

Page 47: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

47

Identifikation

einer LRA

LRA_HTTP_CONTEXT_HEADER

Nur annotierte JAX-RS Ressourcen nehmen an der

LRA teil

Kontext ist aber potentiell in allen Downstream-

Services verfügbar

Steuerung über HTTP Status Codes 200 bzw. 5XX

Achtung: Framework sagt nicht aus, wann eine

Methode gerufen wird. Garantiert nur deren

Ausführung

Page 48: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

48

BEISPIEL FLUGBUCHUNG

IM ERFOLGSFALL

Booking-

Service

+bookFlight

Flightplan-

Service

Payment-

Service

add pay

ok ok

Page 49: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

49

BOOKING-SERVICE

START EINER LRA

@Path("/")

@ApplicationScoped

public class BookService {

@LRA(LRA.Type.REQUIRES_NEW, timeLimit= 30, timeUnit=ChronoUnit.Seconds)

@Path("/book")

@PUT

public Response bookFlight(@HeaderParam(LRA_HTTP_CONTEXT_HEADER) String

lraId, BookInfo bookInfo) {

if(book(bookInfo.getFlightInfo())) {

addFlightlist(bookInfo);

}

return Response.accepted().build();

}

Page 50: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

50

FLIGHTPLAN-SERVICE

@Path("/")

@ApplicationScoped

public class FlightplanService {

@LRA(LRA.Type.REQUIRED, timeLimit= 30, timeUnit=ChronoUnit.Seconds)

@Path(“/add")

@PUT

public Repsonse addFlightlist(@HeaderParam(LRA_HTTP_CONTEXT_HEADER) String

lraId, BookInfo bookInfo) {

if(addPassenger(bookInfo.getPassengerInfo()) {

payFlight(bookInfo.getPaymentInfo());

return Response.accepted().build();

}

else {

return Response.serverError().build();

}

Page 51: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

51

PAYMENT-SERVICE

@Path("/")

@ApplicationScoped

public class PaymentService {

@LRA(LRA.Type.REQUIRED)

@Path(“/pay")

@PUT

public Response payFlight(@HeaderParam(LRA_HTTP_CONTEXT_HEADER) String lraId,

PaymentInfo paymentInfo) {

if(pay(paymentInfo)) {

return Response.ok().build();

}

else {

return Response.serverError().build;

}

}

Page 52: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

52

FLIGHTPLAN-SERVICE

COMPLETE

@Complete

@Path(“/complete”)

@PUT

public Response completeFlightlist(@HeaderParam(LRA_HTTP_CONTEXT_HEADER) String lraId){

return Response.accepted().build();

}

Page 53: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

53

BOOKING-SERVICE

COMPLETE

@Complete

@Path(“/complete”)

@PUT

public Response completeBooking(@HeaderParam(LRA_HTTP_CONTEXT_HEADER) String lraId){

return Response.accepted().build();

}

Page 54: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

54

BEISPIEL FLUGBUCHUNG

IM FEHLERFALL

Booking-

Service

+bookFlight

Flightplan-

Service

Payment-

Service

compensate

add pay

unbook remove

Page 55: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

55

PAYMENT-SERVICE

COMPENSATE

@Compensate

@Path(“/compensate”)

@PUT

public Response compensatePayment(@HeaderParam(LRA_HTTP_CONTEXT_HEADER)

String lraId) {

PaymentInfo paymentInfoCompensate = getPaymentInfo(lraId);

if(!undoPay(passengerInfoCompensate)) {

backOut(lraId, passengerInfoCompensate)

}

return Response.accepted().build();

}

Page 56: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

56

FLIGHTPLAN-SERVICE

COMPENSATE

@Compensate

@Path(“/compensate”)

@PUT

public Response removeFlightlist(@HeaderParam(LRA_HTTP_CONTEXT_HEADER)

String lraId) {

PassengerInfo passengerInfoCompensate = getPasssengerInfo(lraId);

if(!removePassenger(passengerInfoCompensate)) {

backOut(lraId, passengerInfoCompensate)

}

return Response.accepted().build();

}

Page 57: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

57

BOOKING-SERVICE

COMPENSATE

@Compensate

@Path(“/compensate”)

@PUT

public Response compensateBooking(@HeaderParam(LRA_HTTP_CONTEXT_HEADER)

String lraId) {

BookInfo bookInfoCompensate = getBookInfo(lraId);

if(!unbookFlight(bookInfoCompensate)) {

backOut(lraId, bookInfoCompensate);

}

return Response.serverError().build();

}

Page 58: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

58

BEISPIEL FLUGBUCHUNG

IM FEHLERFALL

Booking-

Service

+bookFlight

Flightplan-

Service

compensate

Payment-

Service

add

unbook

Page 59: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

59

BEISPIEL FLUGBUCHUNG

TIMEOUT

Booking-

Service

+book

compensate

Flightplan-

Service

compensate

Payment-

Service

compensate

add paytimeout

Page 60: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

60

BEISPIEL FLUGBUCHUNG

TIMEOUT

Booking-

Service

+book

compensate

Flightplan-

Service

compensate

Payment-

Service

add

timeout

Page 61: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

6161

Look! No locks!!

Page 62: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

62

w e n i g

L ö s u n g s a n s ä t z e

K l a s s i s c h e L ö s u n g e n

n i c h t g e e i g n e t

Nicht geeignet für

Transaktionen mit

starker Konsistenz

F r a m e w o r k L R A

FAZIT

MICROSERVICES-TRANSAKTIONEN

Open XA nicht sinnvoll

anwendbar

Page 63: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

63

FRAGEN

Mitdenken

Mi tgesta l ten

Mi tarbe i ten

be i s id ion

POWERPOINT TEMPLATE

Page 64: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

64

ftp://ftp.cs.princeton.edu/reports/1987/070.pdf

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.67.6951&rep=rep1&type=pdf

http://snapframework.com/

http://sparkjava.com/

http://www.royans.net/wp/2010/02/14/brewers-cap-theorem-on-distributed-systems/

https://arnon.me/2013/01/saga-pattern-architecture-design/

https://axoniq.io/

https://blog.couchbase.com/saga-pattern-implement-business-transactions-using-microservices-part/

https://cararuseugeniu.blogspot.com/p/saga-pattern.html

https://codahale.com/you-cant-sacrifice-partition-tolerance

https://de.wikipedia.org/wiki/Transaktion_(Informatik)

https://docs.apigee.com/

QUELLENANGABEN

Page 65: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

65

https://docs.microsoft.com/en-us/previous-versions/msp-n-p/jj591569(v=pandp.10)

https://dzone.com/articles/distributed-sagas-for-microservices

https://dzone.com/articles/distributed-sagas-for-microservices

https://en.wikipedia.org/wiki/CAP_theorem

https://en.wikipedia.org/wiki/Long-running_transaction

https://eventuate.io/

https://github.com/aphyr/dist-sagas/blob/master/sagas.pdf

https://github.com/eventuate-tram/eventuate-tram-sagas

https://github.com/Netflix/eureka

https://github.com/Netflix/zuul

https://graphql.org/

https://gravitee.io/

QUELLENANGABEN

Page 66: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

66

https://helidon.io/#/

https://javalin.io/

https://konghq.com/kong/

https://ktor.io/

https://martin.kleppmann.com/2015/05/11/please-stop-calling-databases-cp-or-ap.html

https://micronaut.io/

https://microprofile.io

https://microservices.io/patterns/data/saga.html

https://netflix.github.io/falcor/

https://openliberty.io/

https://people.eecs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf

https://reflectoring.io/consumer-driven-contracts-with-angular-and-pact/

QUELLENANGABEN

Page 67: Verzus PowerPoint Template - Java Forum Stuttgart · 3 Service Oriented Architecture Von Gartner Inc. 1996 geprägt Begriff Hohe Investitionskosten Unternehmensweiter Ansatz „SOA

67

https://spring.io/projects/spring-boot

https://spring.io/projects/spring-cloud-gateway

https://thorntail.io/

https://tyk.io/

https://vertx.io/

https://wso2.com

https://www.consul.io/discovery.html

https://www.cs.cornell.edu/andru/cs711/2002fa/reading/sagas.pdf

https://www.dropwizard.io

https://www.lagomframework.com/

https://www.nginx.com/

https://www.payara.fish/software/payara-server/payara-micro/

https://zookeeper.apache.org/

QUELLENANGABEN