O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Web Services Orchestration with BPEL 2.0

0 visualizações

Publicada em

Talk about BPEL and Apache ODE @ W-JAX 2008 in Munich, Germany

Publicada em: Tecnologia, Educação
  • Clear diagram and easy to understand
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui

Web Services Orchestration with BPEL 2.0

  1. 1. Web Services Orchestrierung mit BPEL 2.0 und Apache ODE Tammo van Lessen | Uni Stuttgart tammo.van.lessen@iaas.uni-stuttgart.de
  2. 2. IAAS (University of Stuttgart) Institute of Architecture of Application Systems Founded in September 2004 Director: Prof. Dr. Frank Leymann 22 research associates at present 5 external researchers Web: www.iaas.uni‐stuttgart.de © Tammo van Lessen 2
  3. 3. Research Focus in SOA / Web Services Co‐authoring Standards (OASIS, W3C) QoS in Web services Semantic Web Services (EU projects) Service Level Agreements Management of SLAs SLA Aggregation/Negotiation Service Composition (BPEL) Software as a Service / Cloud computing © Tammo van Lessen 3
  4. 4. Research Focus in BPM und EAI Business Processes BPEL (Standard, Extensions) Coordination protocols Transactions Human Task Management Semantic Business Process Management Choreography Business Activity Monitoring (BAM) Compliance, Governance Integration of Applications, Middleware and Processes Architecture e.g. EAI Patterns Technologies e.g. WS‐*, SCA, Messaging, ESB, Spaces © Tammo van Lessen 4
  5. 5. About me: Tammo van Lessen Research Associate @ IAAS EU Project SUPER Combining BPM with Semantic Web (SBPM) WSDL, BPEL, WSMO, WSMX, ServiceMix, ODE, … PhD Thesis Conversational Web Services, WSDL 2.0, BPEL 2.0, … Committer @ Apache Software Foundation PMC Member @ Apache ODE Extensibility, E4X/JS, Monitoring, SimPEL, BPELscript Google Summer of Code 2008 Mentor Milinda Pathirage: Management Console for Apache ODE © Tammo van Lessen 5
  6. 6. The Talk Today WS‐BPEL Motivation Concepts Extensions Apache ODE History Architecture Extensions What’s next? © Tammo van Lessen 6
  7. 7. BPEL Concepts © Tammo van Lessen 7
  8. 8. The Basis: Service Platform Orchestration Protocols State Components Discovery, Negotiation, Agreement Composite Atomic Reliable Quality  Security Transactions Messaging of Service Interface + Bindings Policy Description XML Non‐XML Messaging Transports Transport © Tammo van Lessen , Frank Leymann
  9. 9. The Basis: Web Service Platform WS‐C, WS‐CDL,  BPEL WSRF BPEL4Chor Components Composite Atomic UDDI, WS‐A, WS‐MEX, WSIL Quality  WSRM WS‐Security* WS‐AT, WS‐BA,… of Service WSDL WS‐Policy* Description SOAP, WS‐A JMS, RMI/IIOP Messaging HTTP, SMTP, XMPP, TCP/IP, FTP, Tuple Spaces,… Transport © Tammo van Lessen , Frank Leymann
  10. 10. Why Orchestration? ??? To achieve a business goal, you often need more than one service… Which to use, in which order, how to use them? © Tammo van Lessen , Frank Leymann
  11. 11. Web Service Orchestration BPEL! © Tammo van Lessen , Frank Leymann
  12. 12. The Notion of Orchestration: Deja Vu Workflow Business Functions © Tammo van Lessen , Frank Leymann
  13. 13. The Notion of Orchestration: Deja Vu Orchestration Web Services © Tammo van Lessen , Frank Leymann
  14. 14. The Programming Models Application Processes Programming in the Large Business Workflow System Service Configuration Deployment pL EPR Service Bus pT Programming in IT Web Services Service the Small Container © Tammo van Lessen
  15. 15. What is BPEL? Business Process Execution Language 7/02 IBM & MS, 5/03 +BEA+SAP+Siebel, 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 the most important  vendors. Defined Execution Semantics Abstract Processes (protocols, “views” on internal processes) © Tammo van Lessen 15
  16. 16. What is BPEL not? Common Misconceptions “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 modelling notation © Tammo van Lessen 16
  17. 17. 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 © Tammo van Lessen 17
  18. 18. BPEL Concepts: Variables & Partner Links Variables Shared variables, statically typed via WSDL messages, XSD elements or  XSD types “Global” process variables and “local” scoped variables Partner Links / Partner Link Types Partner Links define “contract channels” between partners Mutual call‐back dependency Associates interfaces (pTs) with roles Partner Links define which partner takes which role Key concept to enable asynchronous messaging! Role 1 / myRole Role 2 / partnerRole “I expect from my partner an implementation of this!” portType portType © Tammo van Lessen 18
  19. 19. BPEL Concepts: 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 © Tammo van Lessen 19
  20. 20. BPEL Concepts: Fault Handling & Compensation © Tammo van Lessen 20
  21. 21. BPEL Concepts: Data Manipulation (Strong type system) No explicit data flow Assigning variable values By receiving a message from a partner service By invoking a partner service and storing the result into a  variable Copying (parts) of variables into other variables <assign> Drawbacks: Quite cumbersome, requires often XSLT Look at E4X and BPELJ © Tammo van Lessen 21
  22. 22. BPEL Concepts: Modelling Styles Block structured modelling Nesting of structured activities Use of <flow> activity for parallelism Graph based modelling <flow> activity with links t1 t2 Transition conditions & join conditions j Dead‐Path‐Elimination Acyclic graph to ensure sound execution  semantics Loops can be realized with <while> /  <repeatUntil> / <forEach> Not supported by Sun & Oracle! © Tammo van Lessen 22
  23. 23. BPEL Concepts: Graph‐based Modelling © Tammo van Lessen 23
  24. 24. BPEL 2.0 Activities Basic Activities Structured Activities receive reply invoke A flow pick B C M1 M2 … A assign validate sequence forEach 1. 2. … N. 1. 2. … N. throw rethrow exit while if-elseif-else c1 c2 compensate compensateScope c … repeatUntil scope wait c empty extensionActivity © Tammo van Lessen , figures by Simon Moser and Oleg Danilov
  25. 25. BPEL Extensions BPEL4People/WS‐HT BPEL4SWS Support for Human  Support for Semantic  Tasks Web Services (Service  Standardization  Discovery) Committed at OASIS currently being formed Data Mediation BPEL‐SPE BPELlight Support for sub‐ WSDL‐less BPEL processes Is about message  Autonomy is key exchanges BPELJ BPEL JS/E4X Use Java in BPEL  Use JavaScript/E4X for  Activities variable assignments Use Java types in BPEL © Tammo van Lessen 26
  26. 26. Apache ODE © Tammo van Lessen 27
  27. 27. Apache ODE: Project History March 2006 Started in incubator Code donations from Intalio and Sybase Merge with Apache Agila July 2007 Graduated as top‐level project (TLP) August 2007 Release 1.1: Bug fixes, performance, BPEL compliance January 2008 Release 1.1.1: Bug fixes July 2008 Release 1.2: HTTP Binding, external variables, bug fixes November/December 2008 Release 1.3: RESTful BPEL, event multicasting, admin console, Eclipse  integration Release 2.0: Refactorings, backward compatibility, extensions. © Tammo van Lessen 28
  28. 28. Apache ODE: Project Stats Cool and diverse community ODE being used in commercial projects Intalio BPMS Coghead … Figures ~ 10 committers 250 eMail / month (dev & user) 1500 page views / day ~ 2000 downloads / week BPEL compliance Supports BPEL 1.1 & BPEL 2.0 http://ode.apache.org/ws‐bpel‐20‐specification‐compliance.html Interoperable with existing tools © Tammo van Lessen 29
  29. 29. Apache ODE: Features Fast and scalable process engine Modular design & embeddable Lightweight ESB included Supported protocols: SOAP via HTTP/JMS/SMTP/what ever Axis2  can do, POX/HTTP Implicit Message Correlation Via HTTP headers and WS‐Addressing Supports BPEL extensibility (not yet released) Different deployment scenarios JBI, hot‐deployment Robustness Everything is internally executed within JTA/XA transactions Management and Auditing © Tammo van Lessen 30
  30. 30. Apache ODE: Architecture Modular and extensible  architecture Deployment Unit *.bpel, *.wsdl,  deploy.xml Deployment Strategy Apache ODE Integration Layer BPEL  Process and Instance  Compiler OModel Management Data Access BPEL Runtime Scheduler Axis2 Management &  JACOB DAOs Event Processor JBI Events Transaction Manager SCA Hiber Open Scheduler Activity  … nate JPA Implementations Expressions DB © Tammo van Lessen 31
  31. 31. Apache ODE: Extensions Activity Recovery JS/E4X RESTful BPEL Extensibility SimPEL/BPELscript External Variables Process Multicasts © Tammo van Lessen 32
  32. 32. Apache ODE: Getting Started Visit http://ode.apache.org/getting‐ode.html Download latest release Axis2 deployable is the easiest starter kit Download Tomcat Deploy ode.war to Tomcat and run it Done. Distro come with samples, just copy them into  WEB‐INF/processes Go to http://host:port/ode  to see the management  console Use SOAPUI to explore processes © Tammo van Lessen 33
  33. 33. Apache ODE: What’s keeping us busy The upcoming release Both branches will be released soon New Features: AJAXy admin console Support for custom activities Event multicasting HTTP binding Integration with Eclipse BPEL RESTful BPEL Human Tasks (SingleShot) SimPEL / BPELscript Alternative Syntax for BPEL Targeting Developers SimPEL: BPEL relax BPELscript:  Bi‐directional mapping www.bpelscript.org © Tammo van Lessen 34
  34. 34. Apache ODE: MMC © Tammo van Lessen 35
  35. 35. Apache ODE: MMC © Tammo van Lessen 36
  36. 36. Apache ODE: MMC © Tammo van Lessen 37
  37. 37. Thank you! Questions? © Tammo van Lessen 38

×