• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Web Service Composition mit WS-BPEL und dem Open-Source-Orchester
 

Web Service Composition mit WS-BPEL und dem Open-Source-Orchester

on

  • 3,540 views

 

Statistics

Views

Total Views
3,540
Views on SlideShare
3,368
Embed Views
172

Actions

Likes
3
Downloads
0
Comments
0

5 Embeds 172

http://www.iaas.uni-stuttgart.de 88
http://www.taval.de 55
http://www.slideshare.net 12
http://localhost:4000 10
http://taval.de 7

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Web Service Composition mit WS-BPEL und dem Open-Source-Orchester Web Service Composition mit WS-BPEL und dem Open-Source-Orchester Presentation Transcript

    • Web Service Composition mit WS-BPEL und dem Open-Source-Orchester Tammo van Lessen Daniel Lübke Simon Moser
    • About us
      • Tammo van Lessen
        • SOA/BPM consultant
        • Committer & PMC Member @ Apache ODE
        • Member of the BPMN 2.0 FTF at OMG (representing Intalio, Inc.)
      • Simon Moser
        • Software Architect @ IBM
        • Co-lead of the BPEL Designer Project
        • Member of the WS-BPEL Technical Committee at OASIS
      • Daniel Lübke
        • Senior Consultant @ innoQ Schweiz
        • Architect in MDA & SOA Projects
        • BPELUnit Maintainer
    • The Talk Today
      • Motivation & Background
      • WS-BPEL
        • Concepts
        • Extensions
      • BPEL Open Source Orchestra
        • Eclipse BPEL Designer
        • BPELUnit
        • Apache ODE
      • Demo
    • BPEL Background & Motivation
    • The Base: Service Platform Messaging Quality of Service Transport Description Transports Interface + Bindings Composite XML Non-XML Security Policy Discovery, Negotiation, Agreement Atomic Orchestration Protocols State Components Reliable Messaging Transactions
    • The Base: Web Services Messaging Quality of Service Transport Description HTTP, SMTP, XMPP, TCP/IP, FTP, Tuple Spaces,… WSDL Composite SOAP, WS-A JMS, RMI/IIOP WS-Security* WS-Policy* UDDI, WS-A, WS-MEX, WSIL Atomic BPEL WS-C, WS-CDL, BPEL4Chor WSRF Components WSRM WS-AT, WS-BA,…
    • Why Orchestration? ??? To achieve a business goal, you often need more than one service… Which to use, in which order, how to use them?
    • Web Service Orchestration BPEL!
    • What is BPEL?
      • Business Process Execution Language, since 4/07 OASIS Standard
      • High-level programming language
      • Recursive Model
      • BPEL has native support for
        • Long running processes
        • Scalability
        • Concurrency
        • Message and instance correlation
        • Fault handling
        • Compensation based recovery
        • Phoenix behaviour
        • Most important: BPEL is standard and supported by most important vendors.
      • Defined Execution Semantics
      • Abstract Processes (protocols, “views” on internal processes)
    • What is BPEL not?
      • “ BPEL is block-structured only and therefore not usable for business users”
      • “ BPEL does not support multiple transport protocols”
        • Look at WSDL
      • “ BPEL interactions are only synchronous”
        • Look at WSDL
      • “ Look at this ugly XML, business people won’t understand this cumbersome stuff”
        • Not meant to be hand-written, use tools!
      • BPEL is not a modeling notation
    • BPEL’s Foundation
      • Web Services
        • WSDL 1.1 – abstract part (concrete part  ESB)
        • (SOAP)
        • (WS-Addressing)
      • Flow Control
        • Block structured (nested blocks)
        • Graph-based flows (using <flow>)
      • Data Model
        • W3C XML Schema 1.0
        • XML InfoSet
        • XPath 1.0
        • XSLT 1.0
    • BPEL 2.0 Activities compensateScope compensate Basic Activities Structured Activities receive reply invoke assign validate throw rethrow exit wait empty extensionActivity forEach sequence 2. N. 1. … flow B C A while c repeatUntil c if-elseif-else c1 c2 … 2. N. 1. … pick … A M2 M1 scope
    • Partner Links / Partner Link Types process partner link partner link type Peer-to-peer conversational partner relationship “ I expect from my partner an implementation of this!”
        • Define “contract channels” between partners - Key concept to enable asynchronous messaging!
      WSDL port type myRole Provided port type WSDL port type partnerRole Required port type receive Inbound request – service provided by the process invoke Outbound request – service required by the process
    • Properties and Correlation Sets
      • How to identify stateful instances via stateless WS interfaces?
      • A process instance is assigned one or more keys
        • Business data is used as key, e.g., customerID
        • A key can be compound, e.g., (customerID, orderNumber)
        • WS-BPEL calls a key a correlation set – it is used to correlate an incoming message with a process instance
      Process 4 (0123,15) Process 3 (0815,42) Process 2 (4711,37) Process 1 (0815,12) 0815 42 Message 2 customerID orderNumber 4711 37 Message 1
    • Fault Handling & Compensation
      • Fault Handling
        • Like in Java, enables alternative execution paths
        • Can trigger compensation
      • Compensation
        • ACID Transactions are not applicable when dealing with long running processes
        • Compensation-based recovery
          • Compensation Handler can reverse the work performed by an already completed scope
          • Compensation Handler is “installed” after successful execution of a scope
          • Compensation can only be triggered by fault/compensation/termination handler of the enclosing scope
    • Fault and Compensation Handling
    • Modelling Styles
      • Block structured modelling
        • Nesting of structured activities
        • Use of <flow> activity for parallelism
      • Graph based modelling
        • <flow> activity with links
        • Transition conditions & join conditions
        • Dead-Path-Elimination
        • Acyclic graph to ensure sound execution semantics
        • Loops can be realized with <while> / <repeatUntil> / <forEach>
        • Not supported by Sun & Oracle!
      t 1 t 2 j
    • Modeling Styles: Example
      • BPEL4People/WS-HT
        • Support for Human Tasks
        • Standardization Committed at OASIS currently being formed
      • BPEL-SPE
        • Support for sub-processes
        • Autonomy is key
      • BPELJ
        • Use Java in BPEL Activities
        • Use Java types in BPEL
      • BPEL4SWS
        • Support for Semantic Web Services (Service Discovery)
        • Data Mediation
      • BPEL light
        • WSDL-less BPEL
        • Is about message exchanges
      • BPEL JS/E4X
        • Use JavaScript/E4X for variable assignments
      BPEL Extensions
    • BPEL Open Source Orchestra
    • Eclipse BPEL Designer
      • BPEL 2.0 Design Tool …
        • … all standard activities are supported
        • No full support of extensibility mechanisms
        • Partial support of abstract BPEL
        • BPEL 2.0 Validator included
      • Synchronized graphical & XML modelling mode
      • Prototypical graphical process compare
    • BPELUnit
      • BPELUnit is a test framework
        • like JUnit is for Java
        • http://www.bpelunit.net
      • Supports BPEL specifics:
        • Web service mocking
        • Transparent (un-)deployment
        • Test Coverage calculation
      • Most functionality independent of BPEL Engine
      • Front-ends for Eclipse, Ant, and command-line
    • Testing
      • Testing is the execution of a program with the intend to find defects
        • find defects also means:
          • systematically
          • in a repeatable way
        • in our case: automate it!
      • Simulation is not Testing
        • Testing also includes the application server, JVM, BPEL Engine, Database configuration, ...
        • Simulation uses another &quot;target engine&quot;
    • Test Structure BPEL BPELUnit Real Services deploy <soap> <soap> <soap> <soap> Client Mock A Mock B <soap> undeploy Eclipse Ant Command Line Deployer (optional)
    • BPEL Execution: Apache ODE
      • BPEL 1.1 and 2.0 supported
      • Fast and scalable process engine
      • Modular design & embeddable
      • 3 deployment targets supported
        • Web container (Axis2)
        • JBI (ServiceMix)
        • SCA (Tuscany)
      • Implicit Message Correlation
      • XPath 1.0 & 2.0, XQuery
      • Management and Auditing
      • Backed by Intalio & Red Hat
    • Tammo van Lessen (IAAS, Uni Stuttgart) & Simon Moser (IBM) Demo
    • Demo schedule
      • Open & Explain Fahrschulservice (v1)
      • Run Tests (3 tests)
        • Tests are green
      • Verbal: New func required, create Testcase
      • Open pre-defined new Testcase (testcase 4)
      • Run all 4 Tests against v1
        • One test is red
      • Verbal: Analyse, find and eliminate problem
      • Open & Explain prepared process (v2)
        • Show Processes in Process Compare View
      • Run tests again against v2
        • Tests are green
    • Is BPEL dead?
      • Not really!
      • BPMN 2.0 is still under development and not as mature as BPEL
      • BPMN 2.0 adds even more abstraction and makes it more difficult to bring models to execution
      • It‘s a matter of time!
    • Q&A Thank you for your attention!