Title: Current Solution for Web Service Composition
1Current Solution for Web Service Composition
- Nikola Milanovich
- Miroslaw Malek
- Humboldt University, Berlin
2Introduction
- Complex problems solved by combining available
basic services - Composition accelerates rapid application
development, service reuse, and complex service
consumption - If Service Oriented Computing is to become a
successful paradigm, we must provide stable and
dependable service composition solution
3 Composition Requirements
- Connectivity
- composition must guarantee connectivity
- Nonfunctional Quality of Service
- Security, Dependability, or Performance
- Correctness
- Verification of composed services properties
- Scalability
4Example
- Service A is called synchronously and starts a
process - Two synchronous process B and C are then called
in parallel using service As output as their
input
B
A
C
5WS Composition Approaches
- BPEL4WS
- OWL-S
- Web Components
- Algebraic Composition Process
- Petri Nets
- Model Checking and Finite State Machine
6Business Process Execution Language (BPEL)
- Allow specification of compositions of Web
services - business processes as coordinated interactions of
Web services - Influences from
- Traditional flow models
- Structured programming
- Successor of WSFL and XLANG
7Structure of a BPEL Process
ltprocess ...gt ltpartnersgt ...
lt/partnersgt ltcontainersgt ... lt/containersgt ltco
rrelationSetsgt ...lt/correlationSetsgt ltfaultHandl
ersgt ...lt/faultHandlersgt ltcompensationHandlersgt
...lt/compensationHandlersgt (activities) lt/pro
cessgt
- Web services the process interacts with
- Data used by the process
- Used to support asynchronous interactions
- Alternate execution path to deal with faulty
conditions - Code to execute when undoing an action
- What the process actually does
8BPEL Structured Activities
ltsequencegtexecute activities sequentially ltflowgt
execute activities in parallel ltwhilegtiterate
execution of activities until condition is
violated ltpickgtseveral event activities (receive
message, timer event) scheduled for execution in
parallel first one is selected and corresponding
code executed ltlink ...gtdefines a control
dependency between a source activity and a target
9Example
- VariableAOutput/gt
- lt/sequencegt
- lt/scopegt
- ltassigngtltcopygt
- ltfrom variableAOutput/gt
- ltto variableBCInput/gt
- lt/copygtlt/assigngt
- ltflowgt
- ltsequencegt
- ltinvoke nameinvokeB partner-
- LinkserviceB
- inputVariableBCInput/gt
- ltreceive namereceive_invokeB
- partnerLinkserviceB
- variableBOutput/gt
- lt/sequencegt
- ltsequencegt
- ltinvoke nameinvokeC partner-
- LinkserviceC
- ltprocess nametestgt
- ltpartnerLink nameserviceA/gt
- ltpartnerLink nameserviceB/gt
- ltpartnerLink nameserviceC/gt
- lt/partnerLinksgt
- ltvariablesgt
- ltvariable nameprocessInput/gt
- ltvariable nameAInput/gt
- ltvariable nameAOutput/gt
- lt/variablesgt
- ltsequencegt
- ltreceive namereceiveInput variable
- input/gt
- ltassigngtltcopygt
- ltfrom variableprocessInput/gt
- ltto variableAInput/gt
- lt/copygtlt/assigngt
- ltscopegt
- ltfaultHandlersgt
10OWL-S (Formerly DAML-S)
- An emerging standard to add semantics
- An upper ontology for describing properties
capabilities of web services using OWL
- input types
- output types
- preconditions
- effects
ServiceProfile
provides
presents (what it does)
Resource
Service
describedby(how it works)
supports(how to access)
ServiceModel
ServiceGrounding
- communication protocol (RPC, HTTP, )
- port number
- marshalling/serialization
- process flow
- composition hierarchy
- process definitions
11OWL-S Process Model
- Process model is a service model subclass that
describes service in terms of input, output pre
condition and post condition - Process can be
- Atomic
- Simple
- Composite
- Constructs for composite processes
- Sequence
- Concurrency Split SplitJoin Unordered
- Choice
- If-Then-Else
- Looping Repeat-Until Iterate
12Verification of OWL-S
- Transferring OWL-S description to Prolog
- Developer manually translates an OWL-S
description to Prolog, which makes it possible to
find an adequate plan for composing Web Services. - Using Petri Net based notation
- OWL-S description is automatically translated
into Petri Nets. Developers use this to automate
tasks such as simulation, validation,
verification
13Web Components
- Treats services as components.
- Main idea is to encapsulate composite logic
information inside a class definition, which
represents a web component - Composition logic comprises composition type and
message - dependency
- Composite logic
- Order
- Alternate Execution
- Message Dependency
- Synthesis generates composed output message by
combining of constituent services - Decomposition binds the composed services
message into the input message - Message mapping allows custom mapping between
constituent services. - Supports several composition constructs
- Sequential, Sequential Alternative, Parallel with
result synchronization, Parallel alternative
14Web Components
- Compatibility Two services,S1 and S2 are
compatible when S1 is atleast as capable as S2,
and S1 can substitute for S2 - Conformance Checking
- S1 and S2 conform to each other when we can
combine S1 and S2 so that S1s output can be
taken as S2s input
15Example
- ltconstructgt
- ltcomposition typesequgt
- ltactivity nameAgt
- ltinput messageAInput/gt
- ltoutput messageAOutput/gt
- ltperformedBy serviceProviderA/gt
- lt/activitygt
- ltactivity nameBCgt
- ltinput messageBCInput/gt
- ltoutput messageBCOutput/gt
- ltperformedBy serviceProviderBC/gt
- lt/activitygt
- ltmessageHandlinggt
- ltmessageDecompositiongt
- .
- ltmessageMappinggt
- ltsource messageAOutput/gt
- lttarget messageBCInput/gt
- lt/messageMappinggt
- class BC is paraWithSyn
- public Msg BCInput, BCOutput
- public operation(Msg)-gtMsg
- private void compose(B.operation,
- C.operation)
- private void
- messageDecomposition(BCInput, BInput,
- CInput)
- private void messageSynthesis(BOutput,
- COutput, BCOutput)
-
16Algebraic Process Composition
- Models services as mobile processes.
- To ensure verification of properties such as
safety, liveness (correct termination, for
example), and resource management. - Mobile process theory is based on pi-calculus
- Basic entity is a process in which the basic
entity it can be an emptv process a choice
between several I/O operations and their
continuations a parallel composition a recursive
definition or a recursive invocation. I/O
operations can be input (receive) or output
(send). -
17Example
- Composition guarantees lock freedom
18Petri Nets
- Petri net is a directed connected and bipartite
graph in which nodes represent places and
transition occupy places. - We can model services as Petri nets
- by assigning transition to methods and place to
state. - At any given time service can be in one of the
states not instantiated, ready, running,
suspended, or completed. - Operators perform composition sequence,
alternative (choice), unordered sequence,
iteration, parallel with communication,
discriminator, selection, and refinement.
19Example
20Model Checking and Finite-State Machine
- Model Checking
- Model checking can be applied to web service
composition by verifying correctness inside a
workflow specification. We can check data
consistency etc. - Finite State
- Berardi and colleagues present a framework that
describes a web services behavior as an execution
tree and then translates into FSM. They propose
an algorithm that checks a compositions
existence and returns one if it exists.
21Method Comparison
- Connectivity and Nonfunctional properties
- All approaches offer service connectivity. Most
approaches neglect QOS properties such as
security, dependability or performance - Composition Correctness
- Except OWL and BPEL all other approaches
offer verification correctness. Pi calculus and
Petri nets offers algebraic verification - Model checking verification are compatible with
pi-calculus - Composition Scalability
- BPEL and OWL composition is tedious as XML files
begin to grow - Web Component requires additional time for
mapping between class definition and XML files. - Petri nets has complexity issues, since they are
not scalable modeling technique
22Comparison
23Conclusion
- Industry methods lack correctness verification.
On the other hand formal approaches are difficult
to apply in real world, and some face scalability
problems. - Composition problem will be there for a while.
Objective should be to adopt an industry
standard, and a long term goal should be to
incorporate those verification mechanisms that
scale well.