Contenu connexe Similaire à Web Services Orchestration with BPEL 2.0 (20) Plus de Tammo van Lessen (6) Web Services Orchestration with BPEL 2.02. 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. 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. 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. 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. The Talk Today
WS‐BPEL
Motivation
Concepts
Extensions
Apache ODE
History
Architecture
Extensions
What’s next?
© Tammo van Lessen 6
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. 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. 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
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. 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. 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. 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. 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. 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
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. 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
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. 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
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. 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. 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. 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. Apache ODE: Extensions
Activity Recovery
JS/E4X
RESTful BPEL
Extensibility
SimPEL/BPELscript
External Variables
Process Multicasts
© Tammo van Lessen 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. 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