Upload
halia
View
23
Download
0
Embed Size (px)
DESCRIPTION
infm2 :: AW1 :: SOA (2). Transaktionsmanagement mit Services und Geschäftsprozessen Martin Gerlach. Agenda. Motivation: Ferienclub Klassische Transaktionen Services und Transaktionen Long Running Distributed Transactions Geschäftsprozesse Ausblick: AW2+Projekt. Agenda. - PowerPoint PPT Presentation
Citation preview
25.05.2005
infm2 :: AW1 :: SOA (2)
Transaktionsmanagement mit Services und Geschäftsprozessen
Martin Gerlach
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 2
Agenda
Motivation: Ferienclub Klassische Transaktionen Services und Transaktionen Long Running Distributed Transactions Geschäftsprozesse Ausblick: AW2+Projekt
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 3
Agenda
Motivation: Ferienclub Klassische Transaktionen Services und Transaktionen Long Running Distributed Transactions Geschäftsprozesse Ausblick: AW2+Projekt
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 4
Motivation :: Verteilte Services im Ferienclub
FerienclubAutovermietung B
Restaurant[Ort, Preiskl., …]
Reservierungs-Service
Hotel[Ort, Preiskl., …]
Reservierungs-Service
Kino[Ort, Genre, …]
Reservierungs-Service
Autovermietung A[Attribute…]
Reservierungs-Service
Kalender-Service
Reservierungs-Broker-Service
Payment-Service
Anw
en
dung
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 5
Motivation :: Club-Anwendungen sollen funktionieren
Kombinierte Buchung von Leistungen Mietwagen + Restaurant + Auswärtiges Hotel + Bezahlung Getränkebestellung + Bezahlung Buchen von Sportgerät/-plätzen …
Geht nur mit zuverlässigem "Transaktionskonzept"
"(Geschäfts)Prozesse" definieren die Abfolge der Service-Aufrufe
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 6
Agenda
Motivation: Ferienclub Klassische Transaktionen Services und Transaktionen Long Running Distributed Transactions Geschäftsprozesse Ausblick: AW2+Projekt
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 7
Klassischer Transaktionsbegriff
Transaktion [10, 11]
Handel: Geschäftsvorfall (Business Transaction) Datenbanken: Allgemein zugängliche Daten bei Zugriff
durch mehrere Clients konsistent halten Ausgeweitet von Datenbanken auf andere Ressourcen
Atomicity, Consistency, Isolation, Durability Verteilte Transaktionen
Gesamtsystem nach der Transaktion konsistent Erweiterte Konzepte [nach [2]]
Nested TX + Open Nested TX Saga SplitJoin ConTracts Long Running Activity
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 8
Klassische verteilte TX :: Zuverlässigkeit
2 Phase Commit (2PC) Koordinator (C) steuert Knoten A und B
aus [1]
… und andere (3PC etc.), die auch den Ausfall des Koordinators berücksichtigen
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 9
Klassische verteilte TX :: Zeit
Üblicherweise vollautomatisch
Daher "schnell" Typischer Abstand zwischen 2PC "PREPARE" und "COMMIT"
im Millisekunden/Sekunden-Bereich [1]
Bei Timeout ROLLBACK
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 10
Agenda
Motivation: Ferienclub Klassische Transaktionen Services und Transaktionen
Nutzung klassicher TX Zeitbetrachtung
Long Running Distributed Transactions Geschäftsprozesse Ausblick: AW2+Projekt
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 11
… und zwar hier
Services :: Nutzung klassischer TX
Jeder Service kann für die Erfüllung seiner Aufgabe, klassische – auch verteilte – Transaktionen nutzen
Der gesamte Prozess muss aber auch gesichert sein …
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 12
Services :: Verteilte Services im Ferienclub
FerienclubAutovermietung B
Restaurant[Ort, Preiskl., …]
Reservierungs-Service
Hotel[Ort, Preiskl., …]
Reservierungs-Service
Kino[Ort, Genre, …]
Reservierungs-Service
Autovermietung A[Attribute…]
Reservierungs-Service
Kalender-Service
Reservierungs-Broker-Service
Payment-Service
Anw
en
dung
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 13
Services :: Verteilung und Zeit
Hochgradige Verteilung Über unterschiedliche Organisationen
Abarbeitung eines Requests Ist u. U. nicht vollautomatisch Kann u. U. "lange dauern" Besonders dann, wenn andere Services (entfernt)
aufgerufen werden
Mit ACID TX und 2PC würden Ressourcen für zu lange Zeit gesperrt bleiben
Folge: Man benötigt ein Konzept für "Long Running Distributed Transactions"
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 14
Agenda
Motivation: Ferienclub Klassische Transaktionen Services und Transaktionen Long Running Distributed Transactions
Überblick, Konzepte Lösungen: BTP, THP, WS-*
Geschäftsprozesse Ausblick: AW2+Projekt
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 15
Long Running Distributed Transactions
"Long-running activities can be structured as many independent, short-duration transactions, to form a 'logical' long-running transaction." [1]
Anforderungen Verteilung Lange Laufzeit Ressourcen sollen nicht zu lange gesperrt bleiben
ACID zu restriktiv Einzelsysteme sollen schnell "committen" Aber der Mietwagen soll nicht gebucht bleiben, wenn das
Restaurant ausgebucht ist… Optimistische Nebenläufigkeitskontrolle
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 16
Long Running Distributed TX :: Kompensation
Wenn ACID nicht erwünscht ist, benötigt man kompensierende Aktionen Typischerweise auch über Service Call
Beispiel (aus [1]) t1: Mietwagen/Taxi t2: Restaurant t3: Theater t4: Hotel (ausgebucht) tc1: Storno t2/t3 t5': Kino t6': More fun stuff
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 17
Long Running Distributed TX :: Systementwurf
Hochgradige Verteilung von Anfang an berücksichtigen Nicht erstmal alles als lokal, schnell, verfügbar, zuverlässig
betrachten. Unzuverlässigkeiten, Verzögerungen etc. müssen u. U.
zunächst simuliert werden (z.B. beim Prototyping)
Architektur muss für verteilte Services gebaut werden (nicht andersherum)
Service Oriented Architecture
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 18
Long Running Distributed TX :: Lösungen :: BTP
Business Transaction Protocol (OASIS) [2, 17]
Koordinator-basiert (ähnl. 2PC) Applikation hat Kontrolle über beide Commit-Phasen
durch Business-Logik "Open Top" Commit Protocol Normale Kontroll-Verben
BEGIN, COMMIT, ROLLBACK Neue Kontroll-Verben
PREPARE, CONFIRM, CANCEL
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 19
Long Running Distributed TX :: Lösungen :: BTP
Zwei Arten von Transaktionen Atoms
Garantiert konsistent, alle Teilnehmer sehen gleiches Ergebnis (confirm oder cancel)
Cohesions Teilnehmer können unterschiedliche Ergebnisse haben 2-Phasen-Protokoll erlaubt genaue Parametrisierung welche
Teilnehmer "confirmed"/"canceled" werden Nur "confirmed" Teilnehmer sehen das gleiche Ergebnis Dadurch teilweise Aufhebung von "Atomicity" und
"Isolation"
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 20
Long Running Distributed TX :: Lösungen :: BTP
Gedacht für QoS-Layer
aus [1]
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 21
Long Running Distributed TX :: Lösungen :: BTP
Optimierungen und weitere Details in [1], [2], [17]
<?xml version="1.0" encoding="UTF-8" ?><SOAP:Envelope
SOAP:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body><btp:begin transaction-type="atom"
xmlns:btp="urn:oasis:names:tc:BTP:1.0:core"/></SOAP:Body>
</SOAP:Envelope>
Für Web Services über SOAP 1.1:
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 22
Long Running Distributed TX :: Lösungen :: THP
Tentative Hold Protocol [2, 18]
Nicht-blockierende Sperren vor der TX "Reservierung" Paradigma "Online-Ordering" Nachrichten-basiert Wenn ein reservierender Prozess "committed", werden
andere benachrichtigt Framework: THP-Koordinatoren auf Requestor- und
Provider-Seite Sollten durch Firewall kommunizieren können Requestor/Provider-spezifische APIs Verwaltung der Sperren
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 23
Long Running Distributed TX :: Lösungen :: THP
aus [2]
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 24
Long Running Distributed TX :: Lösungen :: THP
Erweiterung: Web Service Tentative Hold and Compensation Composition Transaction Model
Dynamische Service-Choreography Reihenfolge Parallel/Sequentiell Constraints
Kompensierung
Kompliziert… [2] / AW2 / Projekt …
aus [2]
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 25
Long Running Distributed TX :: Lösungen :: WS-*
WS-* Spezifikationen WS-Addressing WS-Coordination WS-Policy WS-Security …
Nur Web Services BEA, IBM, Microsoft, VeriSign u.a. Praktisch für alles rund um Web Serivces
http://www.ibm.com/developerworks/views/webservices/standards.jsp
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 26
Long Running Distributed TX :: Lösungen :: WS-*
[5]
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 27
Long Running Distributed TX :: Lösungen :: WS-Coordination
Coordination Framework
1. Coordination Services (WS-Coordination Spec) Activation Service Registration Service Coordination Service
2. Coordination Protocols (WS-Transaction Specs) Protocol for Atomic Transactions Protocol for Business Transactions (Long Running TX)
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 28
Long Running Distributed TX :: Lösungen :: WS-Coordination
aus [8]
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 29
Long Running Distributed TX :: Lösungen :: WS-Coordination
Transaktionsprotokolle kombinierbar
aus [8]
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 30
Long Running Distributed TX :: Lösungen :: WS-Coordination
Coordination Context
<?xml version="1.0" encoding="utf-8"?><S:Envelope xmlns:S="http://www.w3.org/2001/12/soap-envelope"><S:Header> . . . <wscoor:CoordinationContext xmlns:wsme="http://www.w3.org/2002/06/msgext"
xmlns:wscoor="http://www.w3.org/2002/06/Coordination"xmlns:myApp="http://www.w3.org/2002/06/myApp">
<wsme:Identifier>http://foobaz.com/SS/1234</wsme:Identifier> <wsme:Expires>2005-06-30T13:20:00.000-05:00</wsme:Expires> <wscoor:CoordinationType> http://xml-soap.org/2002/06/AtomicTransaction </wscoor:CoordinationType> <wscoor:RegistrationService> <Address>http://myservice.com/mycoordinationservice/registration</Address> <myApp:BetaMark> ... </myApp:BetaMark> <myApp:EBDCode> ... </myApp:EBDCode> </wscoor:RegistrationService> <myApp:IsolationLevel>RepeatableRead</myApp:IsolationLevel> </wscoor:CoordinationContext> . . . </S:Header>
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 31
Long Running Distributed TX :: Lösungen :: WS-AtomicTransaction
aus [8]
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 32
Long Running Distributed TX :: Lösungen :: WS-BusinessActivity
aus [8]
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 33
Long Running Distributed TX :: Lösungen :: WS-*
Spezifikationen teilweise noch nicht vollständig
Implementierungen?
Security ( Thies) WS-Policy WS-Security
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 34
Agenda
Motivation: Ferienclub Klassische Transaktionen Services und Transaktionen Long Running Distributed Transactions Geschäftsprozesse
SOA Einordnung BPEL4WS
Ausblick: AW2+Projekt
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 35
Geschäftsprozesse
Geschäftsprozess Technischer Prozess
Technischer Prozess Services
Analyse, Modellierung für Technische Prozesse: "Service-based processes: design for business and technology"[13]
Technischer Prozess ist auch ein Service
Geschäftsprozessmodellierung
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 36
Geschäftsprozesse :: SOA Einordnung
SOA Schicht: "Process Layer" (Sven) Service Orchestration + Choreography [3, 4]
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 37
Geschäftsprozesse :: Integration
Organisation der Aktivitäten eines Prozesses Verschiedene existierende Services werden aufgerufen Patterns (Sven) zur Prozess-Integration [5, 6]
Seriell und/oder parallel
nein ja
Serieller Prozess Paralleler ProzessWork Flow
Eine Nachricht BrokerRouter
parallel
seri
ell
nein
ja
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 38
Geschäftsprozesse :: BPEL4WS
[5]
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 39
Geschäftsprozesse :: BPEL4WS
XML-basierte Modellierungssprache für Service-basierte Prozesse [9]
Kontrollsemantik auf Mengen von Interaktionen mit Services, die Bestandteil des Prozesses sind
Runtime Engine benötigt, z. B. BPWS4J [19]
Rekursiv: BPEL Prozesse sind Web Services
Grober Ablauf Aufruf ("Receive") Logik + Service-Aufrufe Antwort ("Reply")
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 40
Geschäftsprozesse :: BPEL4WS Tooling<process expressionLanguage="Java" name="Process" xmlns:wsdl="http://www.example.com/process/interface" xmlns:wsdl0="http://service1/Serivce1" xmlns:wsdl1="http://service2/Serivce2" ... > <partnerLinks> <partnerLink name="PartnerLink" partnerLinkType="wsdl:PartnerLinkType" partnerRole="ProcessRole"/> <partnerLink name="PartnerLinkA" partnerLinkType="wsdl0:PartnerLinkType" partnerRole="ProcessRole"/> <partnerLink name="PartnerLinkB" partnerLinkType="wsdl1:PartnerLinkType" partnerRole="ProcessRole"/> </partnerLinks> <variables> <variable name="InputVariable" messageType="wsdl:InputMessage"/> <variable name="VariableB" messageType="wsdl0:MessageB"/> <variable name="VariableE"messageType="wsdl1:MessageE"/> </variables> <sequence> <receive createInstance="yes" partnerLink="PartnerLink" variable="InputVariable"/> <switch> <case condition="DefinedByJavaCode"> <wpc:condition> <wpc:javaCode><![CDATA[return getInputVariable().getContents().startsWith("A"); ]]></wpc:javaCode> </wpc:condition> <sequence> <invoke inputVariable="InputVariable" operation="OperationA" outputVariable="VariableB" partnerLink="PartnerLinkA" portType="wsdl0:PortTypeA"/> <assign> <copy> <from part="NumParam" variable="VariableB"/> <to part="contents" variable="InputVariable"/> </copy> </assign> </sequence> </case> <otherwise> ... </otherwise> </switch> <reply operation="InputOperation" partnerLink="PartnerLink" variable="InputVariable"/> <terminate/> </sequence></process>
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 41
Geschäftsprozesse :: BPEL4WS & WS-*
Interessantes Paper [3] zur Kombination von BPEL4WS und WS-Coordination mittels WS-Policy[7]
Beispiel 1 "Coordinated BPEL-PartnerLinks":
<wsp:Policy wsu:Name="tns:WSATPolicy"> <wsce:CoordinatedService CoordinationType= "http://schemas.xmlsoap.org/ ws/2003/09/wsat"> <wsce:Protocol ProtocolIdentifier= "http://schemas.xmlsoap.org/ ws/2003/09/wsat#Durable2PC"/> </wsce:CoordinatedService></wsp:Policy>
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 42
Geschäftsprozesse :: BPEL4WS & WS-*
Beispiel 2"Coordinated BPEL-Scope":
<service name="ABCBankService" <port name="creditAccount" binding="tns:CreditBinding" wsp:PolicyRefs="tns:WSATPolicy" > <soap:address location=…/> </port></service>
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 43
Agenda
Motivation: Ferienclub Klassische Transaktionen Services und Transaktionen Long Running Distributed Transactions Geschäftsprozesse Ausblick: AW2+Projekt
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 44
Ausblick: AW2 + Projekt (infm3)
Vorschlag für Gesamt-Architektur mit Tobias Kraue, Thies Rubarth, Sven Stegelmeier
Web Services Transaktionen: Konzept, Architektur
WS-* BTP/THP Features evtl. einfließen lassen Bereitstellung von Framework und Templates
Geschäftsprozesse: Service Orchestration + Choreography Konzeptionell Hands-on: Implementierungen testen, z.B. IBM/Rational Transaktionen BPEL4WS + WS-* ausprobieren(?) Hier könnte sich herausstellen, dass das in unserem Fall
mit Kanonen auf Spatzen geschossen ist.
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 45
Referenzen :: Haupt
1. Mark Little, "Service-oriented Computing: Transactions and Web Services", Communications of the ACM, Volume 46 Issue 10, Oktober 2003
2. Benchaphon Limthanmaphon, Yanchun Zhang, "Web Service Composition Transaction Management", Proceedings of the fifteenth conference on Australasian database - Volume 27, Januar 2004
3. Stefan Tai, Rania Khalaf, Thomas Mikalsen, "Composition of Coordinated Web Services", Proceedings of the 5th ACM/IFIP/USENIX international conference on Middleware, Oktober 2004
4. Girish B. Chafle, Sunil Chandra, Vijay Mann, Mangala Gowri Nanda, "Decentralized Orchestration of Composite Web Services", Proceedings of the 13th international World Wide Web conference on Alternate track papers & posters, Mai 2004
5. Mark Endrei et. al., "Patterns: Service Oriented Architecture and Web Services", IBM ITSO Redbook SG246303, April 2004
6. Martin Keen et. al., "Patterns: Serial and Parallel Processes for Process Choreography and Workflow", IBM ITSO Redbook SG246306, April 2004
7. WS-* Spezifikationen, Überblick: http://www.ibm.com/developerworks/views/webservices/standards.jsp (WS-Addressing, WS-Coordination, WS-AtomicTransaction, WS-BusinessActivity, …)
8. Tom Freund, Tony Storey, "Transactions in the world of Web services", http://www.ibm.com/developerworks/webservices/library/ws-wstx1/ und http://www.ibm.com/developerworks/webservices/library/ws-wstx2/, August 2002
9. BPEL4WS: http://www.ibm.com/developerworks/library/specification/ws-bpel/ 10. Tanenbaum, van Steen, "Distributed Systems", Prentice Hall, 200211. Couloris, Dolimore, Kindberg, "Distributed Systems", Pearson Education, 2001
25.05.2005 infm2 :: AW1 :: SOA (2) :: Martin Gerlach 46
Referenzen :: Interessant
12. Martin Gudgin, "Web Services: Secure, reliable, transacted: innovation in Web Services architecture", Proceedings of the 2004 ACM SIGMOD international conference on Management of data, Juni 2004
13. Martin Henkel, Jelena Zdravkovic, Paul Johannesson, "Service-based Processes: Design for Business and Technology", Proceedings of the 2nd international conference on Service oriented computing, November 2004
14. Anis Charfi, Mira Mezini, "Service composition: Hybrid Web Service Composition: Business Processes Meet Business Rules", Proceedings of the 2nd international conference on Service oriented computing, November 2004
15. Fabien Baligand, Valérie Monfort, "Service security: A Concrete Solution for Web Services Adaptability Using Policies and Aspects", Proceedings of the 2nd international conference on Service oriented computing, November 2004
16. http://www.ibm.com/developerworks/webservices (Sehr viele Ressourcen zu SOA und Web Services)
17. Business Transaction Protocol (BTP) bei OASIS: http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=business-transaction
18. Jerry Roberts, Krishnamurthy Srinivasan et al., "Tentative Hold Protocol (THP)": http://www.w3.org/TR/tenthold-1/ und http://www.w3.org/TR/tenthold-2/
19. BPWS4J (BPEL4WS Java Runtime): http://www.alphaworks.ibm.com/tech/bpws4j