Sunteți pe pagina 1din 17

Rough Draft

A Comparison of XPDL and BPML and


BPEL4WS
Cape Visions
Robert Shapiro
Version Date Author Description
1.0 3/25/02 RMS First draft of Comparison
1.1 4/2/02 RMS Revision based on suggestions b Roberta !orin" #$%ngines.
1.2 4/3/02 RMS Revision after &fMC &'1 te(e)onferen)e
1.3 4/15/02 RMS Minor edit
1.4 */2+/02 RMS Revision after ,$M- 1.0 .//24/020 re(ease" &fMC 1$2- 1.0
beta .+/30/02 and ,$%-4&S 1.0 .*/3/020.
! "ntroduction
4he ,usiness $ro)ess Mode(ing -anguage .,$M-0 is representative of a ne5 fami( of pro)ess
definition (anguages intended for e6pressing abstra)t and e6e)utab(e pro)esses that address a((
aspe)ts of enterprise business pro)esses" in)(uding in parti)u(ar those areas important for 5eb7
based servi)es. Mi)rosoft8s 1-#!' is another member of this fami(" as is 9,M8s &eb Servi)es
F(o5 -anguage .&SF-0. 4hese (atter t5o have no5 been )ombined in ,$%-4&S.
9n this paper 5e fo)us on a )omparison of ,$M- 5ith 1$2-" the &fMC proposed standard for
an 1M-7based pro)ess definition inter)hange (anguage. Comments .in red0 have been added to
e6tend the )omparison to ,$%-4&S" hereafter abbreviated to ,$%-.
Section #$!!$4 %Acti&it' Detai(s contains )rief descriptions inc(uded for the )enefit of
readers unfami(iar *ith BPML$
!$! +),ecti&es
:ur primar ob;e)tive is to )(arif the differen)es bet5een the ,$M- and 1$2- .and ,$%-0
paradigms. &e are interested in e6posing 5hat )an be done 5ith one (anguage and )annot be
done" or done on( 5ith diffi)u(t in the other. &hen simp(e e6tensions are possib(e" 5e propose
them.
&e are a(so )on)erned about the 5or< being done b the three standards organi=ations>
&fMC
:M'
$age 1 of 1+
Rough Draft
,$M9
4his effort intends to )reate a )ommon mode(ing notation .,$M!0. 4he )omparison of ,$M-
and 1$2- shou(d e6pose some of the )ha((enges in this underta<ing.
#s of #ugust" 2002" ,$M! remains a ,$M9 a)tivit> no signifi)ant )ooperation has deve(oped
bet5een the three organi=ations
9n addition to ,$M-" on 2/ ?une 2002" ,%# Sstems" 9nta(io" S#$ and Sun announ)ed the
pub(i)ation of the 1M-7based &SC9" a spe)ifi)ation that>
2efines the behavior of &eb servi)e interfa)es
Forms part of the ongoing &eb servi)e pro)ess f(o5 )omposition efforts .often referred to as
or)hestration" )horeograph or 5or<f(o50
9n)orporating man aspe)ts of ,$M-" &SC9 fo)uses on the )horeograph of 5eb servi)es. &e
do not e6p(ore this topi) further in this paper.
4here are at (east three other important pro;e)ts that address ,usiness $ro)ess Management
Sstem .,$MS0 issues in a &eb Servi)es )onte6t>
eb1M-.:#S9S/@!0
&SF- .9,M0
1-ang .MS0
9n #ugust 2002 Mi)rosoft/9,M re(eased a ne5 spe)ifi)ation" ,$%-4&S" 5hi)h )ombines
1-#!' and &SF-.
9t is our intent to in)(ude a dis)ussion of fun)tiona(it )ontained in an of these 5hi)h shou(d be
part of a business pro)ess definition (anguage" ,$M! or supported b ,$M simu(ation
te)hno(og.
5/13/2001 3>14 $age 2 of 1+ 22+5*4043.do)
Rough Draft
# BPML-XPDL Comparison
#$! +&er&ie*
,$M- and 1$2- .and ,$%-0 are 1M-7based pro)ess definition (anguages. 4he provide a
forma( mode( for e6pressing e6e)utab(e pro)esses that addresses a(( aspe)ts of enterprise business
pro)esses. 4he are based on signifi)ant( different paradigms.
%a)h paradigm uti(i=es acti&ities as the basi) )omponents of pro)ess definition. 9n ea)h" a)tivities
are a(5as part of some parti)u(ar process. %a)h has instan)e7re(evant data" propert' for ,$M-
and *or.f(o*/re(e&ant data %data fie(ds for 1$2- .and Containers for ,$%-0" 5hi)h )an be
referred to in routing (ogi) and e6pressions.
,$M- is )on)eived of as a b(o)<7stru)tured programming (anguage. Re)ursive b(o)< stru)ture
p(as a signifi)ant ro(e in s)oping issues that are re(evant for de)(arations" definitions and pro)ess
e6e)ution. F(o5 )ontro( .routing0 is hand(ed entire( b b(o)< stru)ture )on)epts .e.g. e6e)ute a((
the a)tivities in the b(o)< seAuentia((0.
1$2- is )on)eived of as a graph7stru)tured (anguage 5ith additiona( )on)epts to hand(e b(o)<s.
S)oping issues are re(evant at the pa)<age and pro)ess (eve(s. $ro)ess definitions )annot be
nested. Routing is hand(ed b spe)ifi)ation of transitions bet5een a)tivities. 4he a)tivities in a
pro)ess )an be thought of as the nodes of a dire)ted graph" 5ith the transitions being the edges.
Conditions asso)iated 5ith the transitions determine at e6e)ution time 5hi)h a)tivit or a)tivities
shou(d be e6e)uted ne6t
,$%- is a b(o)<7stru)tured programming (anguage" a((o5ing re)ursive b(o)<s but restri)ting
definitions and de)(arations to the top (eve(. &ithin a b(o)< graph7stru)tured f(o5 )on)epts are
supported to a (imited e6tent" )onstrained b inheritan)e from previous generation 5or<f(o5
soft5are .on( a))(i) graphs" hen)e no (oopsB some )onstraints on going a)ross b(o)<
boundariesB a )omp(i)ated semanti)s for determining 5hether an a)tivit a)tua(( happens0.
,$M- fo)uses on issues important in defining 5eb servi)es. 4his is ref(e)ted in severa( 5as>
#)tivit tpes spe)ifi)a(( for message inter)hange" event hand(ing" )ompensation .in
)ase of fai(ure0" de(a.
#ttributes to support instan)e )orre(ation" e6tra)tion of parts of messages" (o)ating
servi)e instan)es.
Support for transa)tions" uti(i=ing the b(o)< stru)ture )onte6t" e6)eption hand(ing and
)ompensation.
1$2- fo)uses on issues re(evant to the distribution of 5or<.
#)tivit attribute spe)ifies the resour)e.s0 reAuired to perform an a)tivit. 4his is an
e6pression" eva(uated at e6e)ution time" 5hi)h determines the resour)e reAuired.
#)tivit attribute spe)ifies the app(i)ation.s0 reAuired to imp(ement an a)tivit.
$age 3 of 1+
Rough Draft
4hese )on)epts together support the notion of a resour)e .e.g. parti)ipant0" in )on;un)tion
5ith an app(i)ation" performing the a)tivit. 4he imp(ementation of 5or< (ist hand(ers to
a)hieve this (ies outside the domain of the pro)ess definitions.
,$%- fo)uses on issues important in defining 5eb servi)es and does this in a 5a 5hi)h is Auite
simi(ar to ,$M-.
#$# B(oc. Structured &ersus Directed 0raph
9t is not the purpose of this paper to argue the merits of these t5o approa)hes. &e ma<e t5o
points in this regard.
,(o)< stru)tures 5or< 5e(( in programming (anguages.
,usiness operations peop(e are used to f(o5 diagrams and other graphi)a( notations.
9t seems (i<e( that business users of ,$M- and 1$2- 5ou(d prefer to use a '@9 based" at (east
in part" on diagrams. &e are )on)erned here 5ith Auestions about 5hat )an be represented in one
(anguage and not the other.
4rans(ation of b(o)<ed7stru)tured f(o5 )ontro( .routing0 into a graph stru)ture presents no
fundamenta( diffi)u(ties. 4he reverse is more prob(emati). 4his )an be fa)i(itated b imposing a
set of restri)tions on the graph stru)ture that guarantee it to be C5e((7stru)tured8. 9t is (i<e( that
,usiness $ro)ess Management Sstems that use ,$M- 5i(( support some tpe of graphi)a( too(
for pro)ess definition that imposes su)h restri)tions. 9t remains to be seen 5hether su)h
restri)tions (imit the usabi(it of ,$M-. &e do not pursue this topi) in this paper.
,$%- attempts to offer the best of both approa)hes b introdu)ing a f(o* )onstru)t and using
(in.s to )reate Carbitrar8 f(o5 dependen)ies bet5een the a)tivities )ontained 5ithin the f(o5
)onstru)t. Do5ever" there are )onstraints 5hi)h ru(e out (oops and )rossing )ertain stru)tura(
boundariesB additiona(( the semanti)s re(ies on a )omp(i)ated formu(ation 5hi)h tests and
propagates the status of (in<s. 9t is possib(e that a graphi)a( front end )ou(d simp(if this and be
more user7friend( to the business ana(st.
#$1 Definitions and Recursi&e B(oc. Structure
,$M- ma<es e6tensive use of b(o)< stru)ture s)oping re(ated to definitions and de)(arations.
Comp(e6 a)tivities refer to a)tivit sets 5hi)h have an asso)iated )onte6t. 9n the )onte6t it is
possib(e to de)(are or re7de)(are properties" define or re7define pro)esses .nested pro)esses0 and
so forth. .Man other features are s)oped b the )onte6t in 5hi)h the appear" in)(uding error
hand(ing" transa)tions and )onne)tors .for message hand(ing0. Sin)e a )omp(e6 a)tivit )an
appear in an a)tivit set" this nesting is re)ursive.
1$2- on( a((o5s pro)ess definitions on the top (eve(. Den)e there are no nested pro)esses.
Sin)e 5or<f(o5 re(evant data is de)(ared either on the top (eve(" or 5ithin a pro)ess definition" it
is (imited to 2 s)ope (eve(s. &e ma<e no assessment here as to 5hether nested pro)ess definitions
are an important feature. ,$%- does not support nested pro)ess definition. Furthermore" the
5/13/2001 3>14 $age 4 of 1+ 22+5*4043.do)
Rough Draft
eAuiva(ent of 5or<f(o5 re(evant data" containers" are g(oba( in s)ope. .4he )urrent spe) a(so fai(s
to ma<e )(ear 5hether .or ho50 )ontainers are instan)e7spe)ifi)0.
9n 5hat fo((o5s 5e ma<e use of t5o ne5 )onstru)ts in)(uded in 1$2- 1.0 beta" )(oc.acti&it'
and acti&it'set. 4he b(o)< a)tivit is then (i<e the )omp(e6 a)tivities in ,$M-" 5ith attributes for
designating the tpe of )omp(e6 a)tivit and other information appropriate to defining a )onte6t
for an a)tivit set. 9n)(uding data fie(d de)(arations in the )onte6t 5ou(d a((o5 the same s)oping
possibi(ities as ,$M-. 4o imp(ement nested pro)esses" pro)ess definitions 5ou(d a(so have to be
in)(uded.
Most of the features asso)iated 5ith ,$M- )omp(e6 a)tivities )ou(d be represented in 1$2- b
the b(o)< a)tivit. 4his )onstru)t refers b name to a set of a)tivities that have no transitions
outside the set. 4he )onstru)tion pro)ess for the ,$M- a(( a)tivit" for instan)e" 5ou(d simp(
introdu)e a first and (ast a)tivit 5ithin the a)tivit set" 5here the first a)tivit is an andsp(it and
the (ast a)tivit is an and,oin. 4here 5ou(d be a transition from the first a)tivit to ea)h of the
a)tivities 5ithin the b(o)< and a transition from ea)h a)tivit to the (ast a)tivit. :ther tpes of
)omp(e6 a)tivities )ou(d be represented b transitions that imp(ement the appropriate )ontro(
(ogi). 9n the seAue( 5e suggest an a(ternate approa)h 5hi)h ma<es the trans(ation from ,$M- to
1$2- easier" but passes some of the burden onto the 5or<f(o5 or simu(ation engine that
e6e)utes the 1M- definitions. 9n so doing 5e are not ma<ing a re)ommendation to )hange
1$2-.
.4he #ugust 2002 &fMC 1$2- 1.0 beta has in)(uded a version of B(oc.Acti&it' and
Acti&it'Set that )an b trivia(( e6tended to imp(ement )omp(e6 a)tivities.0
#$4 Specia(i2ed Atomic Acti&ities
,$M- .and ,$%-0 in)(udes a number of spe)ia(i=ed atomi) a)tivities. Some of these in turn
reAuire a parti)u(ar set of attributes to support their spe)ifi) fun)tion. 9n 1$2- there are severa(
basi) tpes>
9mp(emented b sub7f(o5" sn)hronous and asn)hronous.
9mp(emented b app(i)ation
Routing a)tivit .dumm" for routing purposes on(0
,(o)< a)tivit .proposa(> rep(a)es (oop a)tivit and in(ine b(o)<0
9t is natura( to map the atomi) ,$M- a)tivities into 1$2- a)tivities. 4here are severa( issues.
,$M- .and ,$%-0 does not have the notion of an app(i)ation. 4he ,$M- Ca(( a)tivit is
identi)a( .e6)ept for s)oping issues0 to an 1$2- a)tivit imp(emented b a sn)hronous
sub7f(o5. 4he ,$M- Spa5n a)tivit is (i<e the 1$2- asn)hronous sub7f(o5" e6)ept for
some spe)ia( boo<<eeping aspe)ts.
9n ,$%- a(( pro)esses are instantiated b re)eption of a message. .E4he on( 5a to
instantiate a business pro)ess in ,$%-4&S is to annotate a receive a)tivit 5ith the
createInstance attribute set to "yes"0.
:ther5ise" additiona( attributes must be used in 1$2- to )arr the information needed
b the spe)ia(i=ed ,$M- a)tivit.
5/13/2001 3>14 $age 5 of 1+ 22+5*4043.do)
Rough Draft
#$3 Acti&ities and Attri)utes for WSDL Messages
,$M- .and ,$%-0 bui(d on top of &S2-. 4he ea)h have spe)ifi) a)tivities 5ith the
appropriate attributes to uti(i=e the standard &S2- messages. 1$2- a)tivities 5ou(d be
e6tended to do the same b the addition of appropriate attributes.
BPML BPEL XPDL
a)tion
9mp(ements the standard &S2-
message patterns>
:ne75a" reAuest7response" so(i)it7
response" notifi)ation
re)eive" rep(" invo<e &ou(d reAuired
additiona( attributes .and
app(i)ations/too(s and
(ibrar fun)tions0
)orre(ation
@sed to mat)h the message to the
right instantiation of the pro)ess.
)orre(ation &or<f(o5 re(evant data is
instan)e spe)ifi). 4he
)orre(ation attribute
5ou(d have to be used to
identif the right instan)e.
(o)ator
@sed to find the )orre)t servi)e.
Refer to &SC9 spe).
Servi)e (in<" partners"
servi)e referen)e
)a((
#n a)tion )an perform an arbitrar
set of a)tivities on( if its
semanti)s reAuire that these
a)tivities be performed in order for
the a)tion to )omp(ete" spe)ifi)a((
5hen performing the &S2-
reAuest7response operation.
!ot supported
output" se(e)tor
@sed to )onstru)t messages from
propert va(ues.
properta(ias" assign"
Auer" )ontainer
Conne)tor
@sed in the spe)ifi)ation of the
intera)tion bet5een servi)es in the
'(oba( Mode(.
Refer a(so to &SC9 spe).
See Servi)e Composition"
a(so Re(ationship to &S7
4ransa)tion Spe)ifi)ation
#$4 We) Ser&ices +rchestration
#$4$! BPML and WSC"
5/13/2001 3>14 $age / of 1+ 22+5*4043.do)
Rough Draft
#$4$# BPEL and Business Protoco(s
,usiness pro)esses )an be des)ribed in t5o 5as. Executable business pro)esses mode( a)tua(
behavior of a parti)ipant in a business intera)tion. Business protocols" in )ontrast" use pro)ess
des)riptions that spe)if the mutua(( visib(e message e6)hange behavior of ea)h of the parties
invo(ved in the proto)o(" 5ithout revea(ing their interna( behavior. 4he pro)ess des)riptions for
business proto)o(s are )a((ed abstract processes. ,$%-4&S is meant to be used to mode( the
behavior of both e6e)utab(e and abstra)t pro)esses.
#$5 Specia(i2ed Comp(e6 Acti&ities
Comp(e6 ,$M- a)tivities refer to sets of a)tivities and provide some tpe of routing (ogi) or
f(o5 for the entire set.
1$2- 1.0 in)(udes a )(oc. a)tivit 5hi)h refers to an a)tivitset. 4his b(o)< a)tivit )ou(d have
an attribute that spe)ifies the f(o5 (ogi) for the a)tivities in the a)tivit set" or the f(o5 (ogi)
)ou(d be generated and represented b transitions bet5een the a)tivities in the set.
#dditiona( information" su)h as conte6t" 5ou(d be provided b attributes of the b(o)< a)tivit.
4he a)tivit set )ou(d be defined 5ith a b(o)< name and referred to b the b(o)< a)tivit. 4his
5ou(d ma<e the a)tivit set definition reusab(e. :n the other hand" to mat)h ,$M- s)oping" the
a)tivit set shou(d be defined 5ithin the b(o)< a)tivit. 9n this so(ution there need be no
transitions defined for an of these a)tivities" sin)e the routing (ogi) is )omp(ete( spe)ified b
the b(o)< a)tivit.
#$7 8ransactions and E6ception hand(ers
,$M- .and ,$%-0 provide )onstru)ts for supporting 8ransactions and hand(ing various tpes of
errors or e6)eption. 4his in)(udes the so7)a((ed #C92 or atomi) transa)tions" as 5e(( as open
nested transa)tions .supported in ,$%- as Long Running 8ransa)tions0. 4he )onstru)ts in)(ude
various attributes" s)oping ru(es and error hand(ing (ogi). 4he )ou(d map into 1$2- attributes
or spe)ia( (ibrar fun)tions. !o dis)ussion here of detai(s. Some of these reAuire a sophisti)ated
snta6 5hi)h shou(d be hand(ed b appropriate e6tension of the 1$2- 1M- S)hema. 9n ,$M-
.and ,$%-0 these a(( have a 5e((7defined semanti)s.
BPML BPEL XPDL
)ompensate
#sso)iated 5ith an e6ception
hand(er in a conte6t$
)ompensate
#sso)iated 5ith a
compensation hand(er in
a scope.
&ou(d reAuired additiona(
attributes and (ibrar
fun)tions
event hand(ers
time7out" fau(t
event hand(ers
)ompensation hand(er.
fau(t hand(er .@sed in
)on;un)tion 5ith catch
and thro*.0
1$2- 1.0 has been
e6tended to in)(ude the
spe)ifi)ation of 2ead(ines
and an e6)eption hand(er
for dead(ines and other
e6)eption )onditions.
5/13/2001 3>14 $age + of 1+ 22+5*4043.do)
Rough Draft
#$9 XPDL Constructs *ith no BPML %or BPEL Ana(og
&e have a(read dis)ussed b(o)< stru)ture versus graph stru)ture in respe)t to f(o5 (ogi) and do
not repeat that dis)ussion here. #n arbitrar 1$2- a)tivit net5or< )annot be represented
dire)t( in ,$M- .or ,$%-0. :ne 5hi)h satisfies )ertain )onstraints )an be.
,$M- .or ,$%-0 provides no 5a of de)(aring parti)ipants or defining" in the a)tivities"
an e6pression" possib( based on the instan)e va(ues of properties" that spe)ifies the
resour)e.s0 reAuired to perform the a)tivit. :f )ourse it 5ou(d be eas to add this
)onstru)t to the definition of an a)tivit" but it is not immediate( )(ear ho5 the semanti)s
5ou(d be defined.
,$M- .or ,$%-0 does not have the )on)ept of app(i)ation" neither in a de)(arative
)onte6t for the pa)<age" nor as an imp(ementation of an a)tivit. #nother 5a of (oo<ing
at this is to sa that there is no distin)tion being made bet5een a ,$M- pro)ess and an
app(i)ation invo<ed in performing an a)tivit.
,oth of these )onstru)ts )ou(d be supported b uti(i=ation of the ,$M- action a)tivit.
For instan)e" using the &S2- Solicit-response, a message )ontaining the performer
e6pression .or its va(ue" as a set of parti)ipants0 )ou(d be sent to a servi)e 5hi)h
imp(ements the 5or< (ist hand(er and responds 5ith the assigned parti)ipant.s0. 4his
)ou(d be e6tended to in)(ude designation of the app(i)ation.
1$2- )ontains a number of spe)ia( attributes usefu( in areas su)h as version )ontro("
simu(ation and so forth. 4hese )ou(d easi( be added to ,$M- .or ,$%-0.
#$!: ;igh (e&e( constructs
BPML XPDL BPEL
pa)<age $a)<age !o eAuiva(ent
pro)ess
9nstantiation issues must be
e6amined. 4op (eve( pro)esses
are spe)ia(. $ro)esses ma be
instantiated b message arriva(.
$ro)esses are the on( reusab(e
units.
&or<f(o5$ro)ess
9n addition to input/output
parameters" other reAuired
attributes in)(ude> instantiation
t'pe and scope. $ro)ess )ontains
an acti&it'Set.
pro)ess
!ested pro)ess
2efinition 5ithin a )onte6t
.su)h as a top (eve( pro)ess0.
&ou(d reAuire )(oc. a)tivit 5ith
an e(ement that a((o5ed
definitions" in)(uding pro)ess
definitions.
!o nested pro)esses.
5/13/2001 3>14 $age * of 1+ 22+5*4043.do)
Rough Draft
import %6terna($a)<age import
a)tivitSet
# conte6t is asso)iated 5ith an
a)tivit set. $roperties are
shared 5ithin an instan)e of a
)onte6t. S)oping issues to be
)(arified.
a)tivitset .introdu)ed in 1$2-
1.0 beta0
4his is the on( )onstru)t for
grouping a)tivities other than
pro)ess. S)oping issues remain.
@sed in 1.0 beta to imp(ement
sub7map.
S)ope is used in
)on;un)tion 5ith
)ompensation hand(ers
and fau(t hand(ers
)omp(e6 a)tivit
Consists of one or more a)tivit
sets. #re a)tivit sets reusab(eF
9 don8t thin< so.
#((" )hoi)e" forea)h" seAuen)e"
s5it)h" unti(" 5hi(e.
b(o)< a)tivit.
Refers to a)tivitset b name.
Proposa(< a(( BPML comp(e6
acti&ities are 6pd( )(oc.
acti&ities referring to an
acti&it'set and using other
attri)utes to descri)e routing
(ogic %or adding transitions and
conditions to the acti&ities in the
set$
Stru)tured a)tivities
SeAuen)e" s5it)h" 5hi(e"
pi)< and f(o5.
a)tivit
4here are a (ot of different
<inds of atomi) a)tivities and
)omp(e6 a)tivities.
a)tivit
9t seems natura( to use a)tivit
attributes to represent the
different <inds of a)tivities.
a)tivit
See separate tab(es for atomi)
a)tivities and )omp(e6
a)tivities.
#tomi) a)tivities map to 6pd(
a)tivities. :ther attributes used
for detai(s.
Comp(e6 a)tivities map to 6pd(
route a)tivities 5ith a referen)e to
the appropriate )(oc.. :ther
attributes used for )ontro( (ogi).
5/13/2001 3>14 $age 3 of 1+ 22+5*4043.do)
Rough Draft
#$!! Acti&ities
#$!!$! Acti&it' Set and Comp(e6 Acti&ities
BPML XPDL
For a(( these )ases> a )(oc. a)tivit
referring to an acti&it' set b name.
#(( f(o5 (ogi) )ou(d be made
e6p(i)it .imp(emented b transitions
and )onditions0 or retained in the
b(o)< a)tivit$
BPEL
a)tivitSet #ttributes to spe)if acti&it'Set and
conte6t information
s)ope
)onte6t
2e)(arative information
asso)iated 5ith an a)tivitSet.
2e)(arations" in)(uding properties
5hi)h are (i<e *or.f(o* re(e&ant
data .e.g. data fie(ds or variab(es0
#sso)iated 5ith s)ope
propert
See dis)ussion in tab(e about
)onte6t.
&or<f(o5 re(evant data
S)oping differen)es
)ontainer
Se(e)tor
:btains a propert' &a(ue
from a message.
part and =uer'
attributes" used in
e6tra)ting propert
va(ues from messages
.and )ontainers0
a(( #ttribute to spe)if a((.
# spe)ia( )ase of andsp(it/and;oin.
See a(so spa5n/;oin.
f(o5
See dis)ussion of (in<s"
;oin )onditions and graph
stru)ture.
)hoi)e #ttributes to spe)if choice and
e&ent hand(ers
pi)<
forea)h #ttribute to spe)if foreach and (ist
.as e6pression0
!o eAuiva(ent
seAuen)e #ttribute to spe)if se=uence. seAuen)e
s5it)h #ttribute to spe)if s*itch and (ist
of .condition>acti&it'Set0 pairs.
s5it)h
unti( #ttribute to spe)if unti( and
condition
!o eAuiva(ent
5hi(e #ttribute to spe)if *hi(e and
condition
5hi(e
5/13/2001 3>14 $age 10 of 1+ 22+5*4043.do)
Rough Draft
#$!!$# Atomic Acti&ities
BPML XPDL BPEL
action
performs an indirect assignment as the
result of any operation that receives an
input message. By default the entire
message contents are assigned to a
property with the same name as the
message. Handles all WSDL message
patterns.
#ttributes for corre(ate .(ist0" (ocate"
ca((" port8'pe and operation.
recei&e
rep('
in&o.e
4hese hand(e the
various &S2-
message patterns.
!o eAuiva(ent to
ca((.
assign
Changes the va(ue of a propert.
#ttributes for propert' and
e6pression
assign
Changes the va(ue
of an 1M-
va(ue.message0 in a
)ontainer
)a(( 9mp(emented b sn)hronous sub7
f(o5
!o eAuiva(ent. #((
instantiations done
b re)eiving a
message.
compensate #ttributes for transaction. )ompensate
delay #ttribute for spe)ifi)ation of de(a 5ait
empt 2umm a)tivit .route0. empt
fau(t #ttribute for name of fau(t thro5/)at)h
;oin
4his 5aits for n instan)es of a pro)ess to
)omp(ete. Conte6t of instantiation
re(evant. @sed 5ith spa*n.
#ttributes to spe)if process and
count.
!o eAuiva(ent. ?oin
)ondition is used in
)on;un)tion 5ith
f(o* )onstru)t and
(in.s to hand(e
)on)urren) and
graph stru)tures.
spa5n
@sed 5ith ,oin.
9mp(emented b asn)hronous sub7
f(o5.
Do5ever" a ma;or use of spa5n is in
)onne)tion 5ith ;oin" and this is a
spe)ia( <ind of andsp(it fo((o5ed b
and,oin. ,oo<<eeping entire(
automati).
#(( instantiations
done b re)eiving a
message.
!o e6p(i)it terminate !o e6p(i)it terminate terminate
5/13/2001 3>14 $age 11 of 1+ 22+5*4043.do)
Rough Draft
#$!!$1 Conte6t re(ated constructs
BPML XPDL
propert
9nherited from a(( an)estors .b(o)< stru)ture
a((o5s arbitrar depth0. 2e)(aration ma<es it
(o)a( to )onte6t in 5hi)h it o))urs. $a)<age
(eve( propert de)(arations are instantiated in
ea)h top (eve( pro)ess and thereafter the
pro)ess instan)e propert va(ues are
independent
&or<f(o5 re(evant data
:n( t5o (eve(s of de)(aration> pa)<age and
pro)ess. Route a)tivit for b(o)< .a)tivitS%40
)ou(d a((o5 more de)(arative (eve(s.
9nstan)e properties
&henever an a)tivit" transa)tion or pro)ess is
instantiated" a propert is instantiated in the
)urrent )onte6t to provide the instan)e
identifier and state of that a)tivit" transa)tion
or pro)ess. 4hese properties are )o((e)tive(
<no5n as instan)e properties.
ReAuires imp(i)it de)(aration of instan)e
properties.
@sed in e6)eption hand(ing" et).
e6)eption
Same s)oping idea.
!eed to add e6)eption information to pro)ess
definition and ne5 b(o)< )onstru)t .routing
b(o)< for a)tivit set0.
transa)tion
Simi(ar issues as e6)eption
Same treatment as e6)eption
)onne)tor
Simi(ar issues as e6)eption
Same treatment as e6)eption
)omp(etion
a)tivitSet
pro)ess definition .nested0 $ro)ess definitions )an8t be nested.
&hat prob(ems arise if this is )hangedF Cou(d
the a)tivit set b(o)< )onte6t information
simp( a((o5 a pro)ess definitionF &hat are the
run time and name s)oping issues that must be
dea(t 5ithF
%vent hand(ers asso)iated 5ith )onte6t
9nvo<e a)tivitSet
Message" time7out" fau(t a(( are events
5/13/2001 3>14 $age 12 of 1+ 22+5*4043.do)
Rough Draft
#$!!$4 Acti&it' Detai(s
#$!!$4$! Action
Action provides the context for performing an operation. In particular it
pertains to operations involving the exchange of messages with participants.
<action
name = NCName
portType = QName
operation = NCName
{extension attribute}>
Content: (documentation?, correlate*, locate?, call?,
output*)
</action>
An action does not define the operation that is to !e performed !ut indicates which
operation will !e performed and provides the execution context. An action is atomic and
so can only refer to a single atomic operation.
"perations are defined !y other specifications and imported !y a B#$L document using
the import element. %eferencing operations defined !y the WSDL specification is a
normative part of the B#$L specification
Corre(ate
&orrelating an action esta!lishes a relation !etween the context in which the
action occurs and the message received !y the action through properties that are
shared !y the context and the message.
-o)ate
A locator is re'uired if the action must identify the service instance. (his
specifically applies when performing the WSDL notification and solicit-response
operations. (he locate element is not allowed for other WSDL operations. A
service instance can !e located in one of three ways)
*. dynamically !y +%I
,. dynamically !y loo-up
.. statically
. Ca(( a pro)ess. -i<e )a(( a)tivit
:utput
It is necessary to construct to outputs only for actions that involve sending a
message. (his applies specifically when performing the WSDL re'uest/response
notification and solicit/response operations. (he output element is not allowed for
the WSDL one/way operation.
.&S2- operations
When the action performs an operation defined !y WSDL the portType and
operation attri!utes are used. (he portType attri!ute references the WSDL port
type definition while the operation attri!ute references the particular operation of
that port type definition. Actions may refer to the following WSDL operations)
One-way (he process receives the input message. &orrelation may !e
re'uired.
Request-response (he process receives the input message constructs and
sends an output message !ac- to the sender. Any wor- done !etween the input
5/13/2001 3>14 $age 13 of 1+ 22+5*4043.do)
Rough Draft
and output messages is performed !y calling a process. &orrelation may !e
re'uired.
Solicit-response (he process constructs and sends a message and waits for a
response from
the recipient. (he recipient must !e unam!iguously identified !y using the locate
element.
Notification (he process constructs and sends a message. (he recipient must
!e unam!iguously identified !y using the locate element.

#$!!$4$# A((
Activities are executed in non/se'uential order. A particular order must not !e enforced
however there is no re'uirement for activities to !e executed in parallel.
#$!!$4$1 Assign
(he property attri!ute provides the property name.
(he value is constructed using one of the following three means)
value #rovides an 0$L value that is statically provided in the content of that element
select #rovides an 0#ath expression that is evaluated in the context in which the
activity is used
extension element Supports other mechanisms !y which the value is constructed
(he three uses are mutually exclusive and cannot !e com!ined in the same element. If
the extension element defines a form of expression such as an 01uery0 'uery it is
always evaluated in the context in which this activity is used.
#$!!$4$4 Ca((
&an instantiate processes whose definition is visi!le from the current context. (he
process is instantiated in the same context in which it is defined which may !e different
than the context from which the process is called.
Waits until the instantiated process completes either successfully or with a fault. If the
called process faults the call activity completes with the same fault code.
Does not directly affect any call spawn or join activity relating to the same process and
occurring in the same or different context.
#$!!$4$3 Choice
(he choice activity is a complex activity. It selects and executes one activity set in
response to a triggered event.
#$!!$4$4 Compensate
(he compensate activity is an atomic activity. It performs compensation for all instances
of the named transaction.
#$!!$4$5 De(a'
(he delay activity is an atomic activity. It expresses the passage of time.
5/13/2001 3>14 $age 14 of 1+ 22+5*4043.do)
Rough Draft
#$!!$4$7 Empt'
(his activity can !e used in places where an activity is expected !ut no wor- is to !e
performed.
#$!!$4$9 @au(t
(he fault code is specified using the code attri!ute. (he fault occurs immediately in the
current context see the definition of exception handling for how faults and other
exceptions are handled.
#$!!$4$!: @oreach
(he foreach activity repeats once for each item in the resulting list in the same order in
which the list was constructed. (he value of the current item is held in the property
bpml:current. (hat property is accessi!le only from the context of the activity set.
#$!!$4$!! ?oin
(he join activity is an atomic activity. It waits for instances of process to complete.
#$!!$4$!# Se=uence
(he sequence activity is a complex activity. It performs all the activities within the activity
set in se'uential order.
#$!!$4$!1 Spa*n
(he process attri!ute names the spawned process and does not wait for it to perform any
activity. Instead the activity completes immediately. (he spawn activity can only
instantiate processes whose definition is visi!le from the current context. (he process is
instantiated in the same context in which it is defined. (his context may !e different than
the one from which the process is spawned.
(his activity modifies the process instance list. (his list is maintained as a property and
has the same name as the process under the current context. As such it can affect join
activities.
#$!!$4$!4 S*itch
(he switch activity is a complex activity. It selects and executes one activity set !ased on
the evaluation of one or more conditions.
#$!!$4$!3 Anti(
(he activity set is executed at least once. After completion of the activity set the
condition is evaluated. (he process is repeated if the condition evaluates to false.
"therwise the until activity completes.
#$!!$4$!4 Whi(e
(he condition is evaluated once !efore the activity set is executed. (he activity set is
executed only if the condition evaluates to true otherwise the while activity completes.
(his process is repeated until the condition evaluates to false.
5/13/2001 3>14 $age 15 of 1+ 22+5*4043.do)
Rough Draft
1 Buestions
9n ,$M- acti&it' sets are not re7usab(e. 9mp(ementing them as re7usab(e in(ine b(o)<s
might depend upon 5hether the have a )onte6t spe)ified or not. !eed to e6amine
s)oping issues
# pro)ess refers to an a)tivit set. # pro)ess )an evident( not be defined 5ithin an
a)tivit set. So ho5 do ou define a nested pro)essF Consider the fo((o5ing>
o #(though a pro)ess definition is based on the a)tivit tpe" a process definition
cannot )e used as an acti&it' *ithin an acti&it' set. #n a)tivit must e6e)ute
5ithin a )onte6t. #s a resu(t" a)tivities must be part of an a)tivit set. 9n turn"
a)tivit sets are a(5as )ontained 5ithin a (arger definition. 4his definition )an
be a )omp(e6 a)tivit" a pro)ess definition" or some other )onstru)t su)h as
e6)eption or )ompensation.
o # pro)ess is an a)tivit set that is not )ontained 5ithin an other a)tivit.
o !oti)e that a conte6t a((o*s definition of a nested process> e(ement defines a
nested pro)ess that 5i(( be instantiated in that )onte6t and overrides an other
definition 5ith the same name that 5ou(d be visib(e in this )onte6t.
o # )omp(e6 a)tion ma invo(ve the e6e)ution of a nested pro)ess" b instantiating
that pro)ess and 5aiting for it to )omp(ete 5ithin the )onfines of the a)tion. 4his
)an be done using the ca((. &hen referring to a &S2- operation this e(ement is
used on( for reAuest7response operations.
$age 1/ of 1+
Rough Draft
4 References
G1H ,$M- 5or<ing draft Mar)h 25" 2002.
G2H ,$M- 5or<ing draft ?une 24" 2002.
G3H ,$%-4&S .,usiness $ro)ess %6e)ution -anguage for &eb Servi)es0 Iersion 1.0 #ug 3" 2002
G4H &or<f(o5 $ro)ess 2efinition -anguage 7 1M- $ro)ess 2efinition -anguage 2o)ument
!umber &FMC74C71025 2o)ument Status J 2raft 0.04a .#(pha Status0 Mar)h 01" 2001 Iersion
0.04 .2raft0
G5H &or<f(o5 $ro)ess 2efinition 9nterfa)e 77 1M- $ro)ess 2efinition -anguage. 2o)ument
!umber &FMC74C71025 2o)ument Status 7 1$2- 1.0 beta. .?u( 30" 20020 .
G/H &S2- &eb Servi)es 2es)ription -anguage .&S2-0 1.1 &3C !ote 15 Mar)h 2001
G+H &eb Servi)es Choreograph 9nterfa)e .&SC90 1.0" ,%#" 9nta(io" Sun" S#$ et a(" ?une 2002
G*H &eb Servi)es Coordination .&S7Coordination0 ,%# Sstems" 9nternationa( ,usiness
Ma)hines Corporation" Mi)rosoft Corporation 3 #ugust 2002
$age 1+ of 1+

S-ar putea să vă placă și