当前位置:首页 >> >>

Using UML to derive stochastic petri net models


?× ? ??? ?? ? ? ??? ×? ? ?? ? ? ?? ?×
? ? ??? ?? ???? ?
×?? ?
? ?? ? ?? ?? ? ? ? ? ????? × ? ? ?×??? ×? ? ? ?? ? ? ?? ?? × ? ??? ? ??? ×?????? ? ? ? ? ? ? ? ?? ???? ??? ?? ?? × ?? ? ? ?? ??? ? ? ?? ? × ? ? ×? ?? ? ? ? ????? ? ×?×? ?× ? ???? ?? ????? ??? ?? × ? ? ?? ?? ???? ?? ?? ??× ? ?? ?? ? ? ? ? ??? ? ? ??× × ? ×? × ?×? ?× ? ? ??? ? × ??? ? ????? ?? ?? ?? ?× ? ??× ? ×?? ?? ? × × ?× ? ??? ? ? × ? ? ? × ??× ?? ??? × ?× ? ?? ?×? ??? ×?×? ? ? ??? ??? ? ?? ? ?× ? ×?? ? ×? ? ? ???? ? ??? ?× ?? ???? ? ? ??? ? ×? ? ? ×?

?

????? ? ? ??

?? × ? ?? ?? ? ? ? ? ??? ? ? ??× × ? ? ?? × ? ×?? ? ? ? ?? ? ? ? ? ? ×? ?? ? × ? ????? ??? ? ??×? ??? ?? ? ? ×?? × ? ? ?? ? ? ? × ? ?× ?? ? ?? ? ×? ? × ??? ? ×?× ? ?? ? ? ?? ? ? ? ???? ? ??× × ? ? ? ?? ? ??? ? ? ×???? ?? ? ? ?? ×? ??? ? ????× ?? ? ? ? ? ? × ? ??? ? ??× ? ???? ?? ? ?? ×? ?? ? ? ? ?× ? × ? ?× ? ?? ?? ? ?× ?? ?? ? ? ? ??? ? ? ? ? ? ? ? ?? ??× ??? ?? ? × ×? ?? ? ?? ? ??× ? ? ???? ?? ? ? ?? ? ? × ? ? ?? ?? ?×? ? ? ??? ? ??× ?× ? ? ? × ? ? ? ? ×? ×× ? ?? ? ??? ? ? × ? ? ??? ? × ? ?? ?? ? ? ? ×? ×? × ? ? ? ? ????? ? ?? ? ×? ×× ? ? × ???? ? ? ?× ? ? ? ? ? ????? ? ?? ? ? × ? ??? ? ??× ?× ? ? ??? × ? ? × ? ?? ? ??? ? ? ? × ? ? ? ???? ? ?? ? × ? ????? ?? ?? ×? ??? ? ??? ? ?? × ?? ? ??×? ? ?? ?? ?? ? ?? ?? ×? ? ? ? ? ???? ? ??? ? ?? ?× ? × ? ?? ? ?? ?? ? ? ? ? ????? ?? ? × × ? ?? ?? ??? ?? ? ? ? ??×? ? ?? ?× ? ? ?? ?? × ? ??? ? ? ??×? ?? × ? ??? ? ? ? ? ? ? ? ?? ???? ??? ? × ? ? ×? ? ? ? ?? ?? ? ? ? ?× ? ????? ? ??×× ? ? × ?? × ??? ? ?? ? ??? ?? ?× ?? ? ? ? ?? ? × ??? ?? ? ? ? ???? ?? ?× ??? ??? ????? ?? ? ?× ?? ? ? ? ? ? ??? ??? ?? ?? ? ?× ???? ? ?????× ? ? ?? ? ×?? ×? ? ?? ? ?×? ? × ?? ?? ? ? ? ??? ? × ??? ? ????? ?? ??? ? ?? ×?? ?? ? ×? ? ? ×? ? ? × ? ? ? × ×??? ??? × ?????×? ? ? ?? ×??? ? × × ? ????? × ??? ? ????? ?? × ?× ? ? × ? ? ?? ? ? ?? ? ???× ? ???
?
?? ? ? ??? ?? ? ?? ?? ????? ? ?? ? ? ? ? ?? ? ? ? ? ? ? ? ? ???? ?? ?? ? ?× ??? ?? ?? ? ? ? ?? ??

?? ? ? ? ??? ? ??? ? ?× ? ?? ? ?? ? ? ×??? ??? ? ×? ?× ? ? ×?×? ?? ? ? ?? ????? × ?? ? ??? ?? ? ? ?× ??? ? ??? ×? ? ? ?? ×???? ?? ? ????? ? ? ?? ?? × ??× ×?? ??? ? ? ×???× ? ? ? ? ×??? ? ? ?? ?? ? ? ?? ??? × ? ×?? ?? ? ??? ? ?× × ??? ?? ? ? ??? ? ?? ?? ? ? × ? × ??? ?? ? ? ??? ?

?

??? ?

× ??? ?

?? × ? ?× ? ? ? ? × ? ? ? × ? ? ? ??× ×? ?? ??? ?? ? ? ?? ?? ? ? ? ??? ×× × ? ?? ?? ? ?? ? ? ??? ? ??? ?? ×?? ?? ? ×? ?? ?× ? ?? ? ? ????? ??? ? ? ? × × ×?? ?? ? ??? ? ? × ?? ?×? ?? ? ? ×? ? ??? ×× ? × ? ??? ? ? ?? ?× ? ?? ??? ×? ?? × × ? ?? ?×? ?× ? ?? ×?× ?? ? ??? ×??? ? × ?? ?× ?? ? ? ×? ? ??? ×× × ? × ? ? ? ?? ×? ?? ? ? × ? × ×? ?? ? ???? × ×??? × ? ? ×? ?? ? ? × ? ? ? ? ?? ? ? ? ? ? ?? ×? ? × ??? × × ?????× ? ? ? ? ?? ×?× ?? × ?? ? ? ? ? ? ?? ? ?? ?? ? ?? ? ?? × ? × ? ? ?? ?? ? ?? × ??×? ? ??× ? ? ? ?? ?? × ? ?× ? ? ? × × ? × ??? ? ×???× ? ? × ??? ? ??? ? ? ? ? × ? ??? ? ? ? × ×? ×× ?? ? ?? ? ? ? ?? ×? ? ? ? ???× ? ????? ? ?? ? × ??×× ? ?? ?? ?? ? ? ?? × ? ?? ? ?? × ? ? ? × × ? ????? ? ??? ×? ??? × ?? ? × ?× ?? ? × ? ?? ?? ?? × ? ? ? × ? ?? ? ????? ? ?? × ???? ? ? ? ? × × ? × ? ? ? ×???× ? ? ?× ?? ? ??? ?? ??? ? ? ? ? ? × ? ? × ??? ? ? ?? ? × ? ? ? ? ? ?× ????? ? ??? ? ? × × ?? ?× ?? × ? ? × ? ? ? × ? ??? ? ? ? × × ?? ?× ?? × ? ? × ? ? ??? ?? ? ? ? ?? ? ??? ? ?× ? ? ? ? ? ×? ? ??? ×× ? ?× ??? ? ? ? ? ? ? × ?? ??? ? ×???× ? ? ? ? × ? × ? ??? ?? ?? ?× ? × × ? ?? ?× ? ??? ×? ? ? ?? ? ? ? × ? ? ? ×???× ??? ?? ?× ? × ×? ? ? ? × ? × ??? ? ?? ?? ?× ? × × ? ?? ??? ×? ? ? ? ? ×? ? ??? ×× ? ?? ??? ?? ?? × ? ???× ?? ?? ? × × ? ? × ? ? ×× ×? × ? ? × ? ?? ×?? ? ?× ?? ? ×??? ??? ? ?? ?? ? ? × ? ? ?

??

?

??? ??

? ? ??? ?

× ??? ?

? ? ??? ??? ?? ? ? × ??× ?? ×?? ?? ? × ×?×? ? ? ? ??? × ?? ?? ? ? ? ??? ? ??? ? ? ? ?? ? ??×× ? ??? ? ?×? ??× ? ?? ?? ??? ? ?? ? ?× ? ? ? ×× ?? ? ?? × ? ? ×??? ??? ? ? ??? ? ? ×?×? ??

???



×

??

?

? ? ?? ? ?

?× ?× ? ? ×?×? ? ? ××?? ?? ?? ? ×? ? ?×? ?? ??? ? ?× ? ?? ??? ?? ? ? ×? ? × ??? ? ?? ? ? ???? × ? ? ? ? ×× × ? ?? ? ?? ? ? × ×? ?? ?? ? ? ? ? ? ×?? ? ?? ? ? ?? ? ? ? ×?×? ? ???? ? ? ?? × ??× × ? ? ??? ? ???? ? ?× ?? ? × ? ? ?× × ? ?? ??? ?? ? ?× × ? ? ?? ??? ? × ??? ?

query

User

???

? ×× ??

?

? ×× ?? ? ?? × ? ×× ?? ? ??? × ? ? ? ? ? ? ?? ? ? ×?×? ?? ? ×× × × ? ? ? ? ? ? ? ? ? ?? ? × ? ? ?? ? ? ??? ??? ??× ??? ? ? ? ? ? ×? ? ??? ?? × ? ?? ? ? ??× ??? ? ? ?×? ? ? ?? ? ? ? ???? ? × ? ××? ? ×× × ? ? ? ? ? ? × ???? × ××? ? ??× ? ? ? ? ? ?? ? ? ? ×× × ???× ??? ? ?? ?? ?? × ??× ? ×× × ?? ?? ?× ? ??×? × ?? ?× ? ? × ×? ? ? ?× ? ?? ×?? ? ? ? ? ? ? ? ? ? ? ?× ?? ?? ? × ? ? ? ? ?? ? ? ? ? × ?× ? ?????? ? ? ? ? ? ??? ?? ? ?? × ?? ? ??? ? ? ? ? ?? ?? ? ?? ? ? ? ? ?? ? ? ? ? ??? ?? ×? ? ? ?? × ? ? ? ???? ???? ?? ? × × ?? ???? ? ?? × ? ? × ?? ?? ? ? ? ? ? ?? ??? ?? ? ? ??? ?? ?? ? ?? ×?× ? ????? ? ?? ? ? × ×? ? ? ?? ? ?? ×?× ? ? × × ? ?? ? ? ?? ?× ?? ? ×? ? ? ? ?? ? ? ? × ? ×× × ?×?? ?? ? ? ×× ? ? ?? ??? ? × ??? ?
1

Computation

1..*

carries out
1 1

runs on
1 1

spawns
1..*

Transaction

Task
1

executes on
1

Server
1

are needed for
1..*

is made to Lock Request
1..*

???

??? ? ? ??

? ?×

?? × × ?? ? ? ? × ?? ? ×? ?× ?? ? ? ? ×× × ? ×× ? ??? ? ?×? ?? ? ?× ? ? ?? ?? ??? ?? ?? ? ? × ? ? ×?×? ?× ? ?? ? ? ? ?? ? ? ? ×× × × ? ?? ?? ??? ????? ??? ? ? ?× ? × ??? ? ? ??? ? ? ? ? ? ? ×? ? ? × ××?? ?? ? ×× × ? ??? ??? ? ? ?? ??? ? ?× ? ? ? ?? ? ? ?? ? ? ?? ? ? × ×? ?? ??? ? ???? ??? × ?? ? ×? ?? ? ? ? ? ?? ? ? ?? × ??? ? ? ? ? ? ? × ×???? ? ? ? ? ? ? ?× ? × ? ?×? ? ? ? ??? ? ? ??? ×??? ? ?× × ? ?? ? ×× × ? × ?? ??? ?? ? ? ?? ??? ?? ??? ? ? ? ?? ???? ?? ? ?? ×? ? ??? ? ??? ? ? ??? ×??? ? ?? ? ? ??? ? ? ×× × ? ? × ??? × ×?? ?????×? ? ? ? ????? ? ? ? ? × ?? ? × ? × ??? ? ??× ? ?? ×? ?? ? ? ?? ?
:User t:Transaction request(q1) new Task(d1,l1) t1:Task new Task(d2,l2) t2:Task * lock(n,m) * grant(n) [n = every lock in l1] compute(d1) lock(n,m) grant(n) [n = every lock in l2] compute(d2) done() done() ready(2) ready(1) commit() commit() answer(reply)

? ? ?? ??? ? × ??? ? ? ×? ××
s1:Server s2:Server

??? ?? ? ??× ? ??? ? ??× ? ? ?×? ? ? ?? × ?? ? ? ? ? ?? ××?? ? ??× ?? ? ? ? ? ×× ×? ? × ?? ? × ? ? ×× × × ??? ? × ?? ? ? ?× ? ? ? ×?? ?? ???× ?? ? × ? ? ? ? ????× ????? ? ? ? ? ×? ?? ??? ?? ? ?? ? ? ?? ??? ? × ??? ?
t1:Task s1:Server

t:Transaction :User

t2:Task

s2:Server

??

?? ?

? ?×

?? ? ??× ? ??× ?

?? ?

?? ?? ?

? ??? ??×× ? ?? ? ?×? ? ?

? ×× ?

??

?? ?

? ? ?? ??? ? × ??? ? ? ?? ?× ? ??
needed := n/tasks := 0 spawning when(tasks<needed)/^newTask(locks,d)/tasks++ transaction failed when(tasks=0) when(suc+ref=tasks and ref>0) transaction succeeded running when(suc=tasks)

when(tasks>0)/^task[tasks].abort()/tasks--

when(tasks=needed) ready(n)/suc++

when(tasks=0)

when(tasks>0)/^task[tasks].commit()/tasks--

failed(n)/ref++

×? ? × ?

? × ??? × ??? ? × ? ? ? ? × ? ? ? ?? × ?? ??×× ? × ?? ? ?? ?? ? ? ? ? ? ? ? ×× ? ? ? ? ×? ? ? ? ? ? × × ??? × ? ??? ? ? ? ? ?? ? ? ? ×? ? × ? ? ??? ? ? ? ? ×? ?? ? ? ??? ? ? ?× ?? ?? ? × ??? × ????× ?? ? ×? ? ×? ?×? ??? ? ? ? ? ??? ?? ???? ? ? ?? × ?? ? ?? ??

?? ?× ? ??× ? ??

?× ? ? ?? × ?? ? ? ×?? ?? ? ? ? ?? ? ? ?? ×? ? ??? ×??? ? ?? ?× ? ?? ?? ??? ? ×? ? ??? ??? ? ?? ? ? ×× ? × ??? ? ? ?×? ? ? ? ?? ? ×× ×? ?? ? ?? ? × ??? × ? ? ??? ? ? ????? ? ? ?? ? ?× ? ? ? ? ? × ??? ? ? ??? ? ? ????? ??

? ? ????? ?? ? × ? ? ? ? ?? ? ?? ? ?? ? ??

? ??× ?

? ?? ?? ? ? ??? ? ×? × ? ? ?? × ?? ×??? ? ??? ?? ?? ?? ??? ?? ?? ? ? ? ? ? ??× ????? × ? ? ? ×× × ? ? × ? ?? ?? ? ? ? ? ? ? ?? ? ? ×× × × ?? × ?? ?? ? ? ×× ? × ? ? ? ??? ? ? ???

?? ? ??× ? ? ? ×? ? ×?? ? ?? ? ? ???? ? ?

?? ?× ? ??? × ??? ? ?? ? ×? ??× ? ×? ?? ? ?? ? ? × × ? ?? ? ? ??? ?? ? × ? ? ×× × ? ? ?? × ? ? ?? ? ?? ?? ? ? ????? ? ??×? ? ?? ?× ? ?? ? ? ?? ?× ? ???? ? ×? ? ??? ? ? × ? ? ? ? ? ? ? ×× × ??? ?? ?× ? × ×? ? ? ? × ? × ? ? ?? ??? ? ? ×× ? ? ?? ? ? ×? ?? ? ? ? × ?? ?? ??? ? ? ×× ×? ? ? ? × ? × ??? ? ×× × ?? ?? ?× ? × × ? ? ?? ? ? ×? ? ××?? ? ? ? ? × ??? ? ?? ? ? ? ? ? ???× ? × ?? ?? ?? ? ?? ? ? ×?? ? ?×? ?? ?? ?
/locks:=0 locking grant(i,m)/locks++ refuse(i,m)/^tr.failed(n) when(locks>0)/release(locks)/locks-when(got all locks)/s.compute(d,this) failed abort() commit() computing done()/^tr.ready(n) ready abort() releasing when(locks=0)

? ? ?? ??? ? × ??? ? ? ? ×
when(not got all locks)/^s.lock(i,m,this) asking

? × ×? ?? ? × ? ? ??? ? ? ?? ? ×? ? ? ??? ? ? ? × ? ? ? ?? ?× ? ??× ?? ? × ? ×? ? ? ??? ? ? ? ×? ?? × ? ? ?? ? ? ? ? ? × ? × ?? ?× ? ?? ? × ? × ? ×× ?? ?× ? ?? ?? ×? × ? ??

??

?? ?
Server

? ? ?? ??? ? × ??? ? ? × ?? ?
compute(d,t)/tasks++/^newActive(dur(d),t) give(n,m,t)/^t.grant(n,m)/locks++

waiting release()/locks-finished(t)/tasks--/^t.done()

lock(n,m,t)/^newRequest(delay(),n,m,t) [prob(p)]/^s.give(n,m,t)

Lock request
111111 000000 111111 000000 1111 0000 1111 0000 1111 0000
newRequest(d,n,m,t)

1 0 1 0

[prob(1-p)]/^t.refuse(n,m) fail or not after(d)

asking

Computational task 1 0 111 000 1 0 1 0 111 000 1111 0000 1 0 newActive(d,t) 111 000 1111 0000 111 000 1111 0000 111 000 1111 0000 111 000 after(d)/^s.finished(t) 1111 0000 111 000 1111 0000 111 000 1111 0000 111 000 1111 0000
running

?? ? ?? ? × ? ×? ? ? ? ?? × ? ? ? ?? ? ?? ?? ?? ?× ? ?? ?? ?? ? ? ? ? ? ?? ? ?? ×? ?? ? ?× ? ?? ?? ?? ?× ? ?? ?? ? ? ?× ? ? ? ×× ?? × ?? ?? ? ?? ?× ? ??? ??? ? ?? ?? × ? ? ?? ? ? ? × × ? × ????? ? ?? ×? ?? ?× ? ?? ? ? ?? ?× ? ????? ? ×? ? ? ?? ? ?× ? ? ??? ? ? ? ? × ?? ? ×× ? ? ? ? × ? × ? ? ? ×× ?? ?× ?? ?× ? ??? ??? ? ?? ?× ? ? ? ×? ? ? ? ? ? × ? × ? ? ? ×? ? ? ? ? × ??? ? ? ×× ??? ?× ?? ?× ? ??? ? ??? ?×? × ??? ? × × ???? ??? ? ?? ? ? ? × ? ×? ? ? ?? ? ? ? ×?×? ? ????? ? ?? ? ? ? ??? ?? ?? × ? ?× ? ? ?? ? ? ? ? ?? ? ? ? ×? ? × ? ??? ? ×× ?× × ? ? × ?? ??? ?? ? ? ? × ? ×? ? ? ?? ? ? ? × ? ×? ? ? ?? ?? × ? ?? ?? ? × ? × ? ? ? × ? ? ? ?? ?? ?? ? ? ? × ? ×× × ?? ?? × ?? ????? ? ?? ? ? × ×? ? ? ? ? × ×? ? ? ? ? ??× ? ???? ? ?? × ?? ? × × ??× ?? ×? ? ? ?? ?? ??? ? ? × ? ? ? × ? ? ? ? ??? ? ?? ?? ? ? ? × ? ?? ×? ?? ? ? × ?????? ? ? ? ? ? ? ? × ? ?? ?? × ? ×× ? ? × ? ? × ×? ×× ?? ?? ? ? × ×? × ? ×? × × ??? ? ? ? × ??? ×? ? ? ?×? ?? ? ? ?×? ? ? ? ? × ??? ??? ?? ? ?? ??? ? ? × ?
?? ?? ? ? ??? ?? ? ??× ? ×? ? ??×

??? ?? ? ??× × ? ? ? ? ? ? ? ?× ?? ? ? ?? ?? ???? ?? ? ??× × ? ?? ?×? ? × ? ? ×× × ? ?? ?? ???? ?? ???? ? × ?? ? ???? ??? × ? ?? ?? ? ?? ? ×?×? ? ??? ×? ? ?× ?? ? ×? ? ?? ?? ? ? ??? ?× ?? ? ? ??? ?? ? ??? ? ?? ?? ?? ? ? ? ? ? ? ? × ×?×? ?? ? ? ??×? ? ?? ? ? ???? ?? ? ? ?× ?? ?? ? ×? ? ×? ?? ? ×× × ? ×× ? ? ? ? ?× ×? ? ? ? ? ? ? ? ? ? ? ? × ? ? ?× ??? ? ? ×× ?? ? ×× ?? ? ? ? ? ? ? ??? ? ? ? ? ? × ? ××? ? ??? ? ? ?? ?? ? ? ×?×? ? ? ? ? × ? ??? ? ?? ? ? ? × × ?? ? ? ?? ? ?? ?? ? ? ?? × ? ?? ???? ? ? ? ?? ? ?? ×? ? ? ×?×? ? ? ?? ? ?? ? ? ?? ? ?? ? ??? ?? ?? ?? ? ×? ? × ? ?× ? ?×? ???× ? ??? ?? ? ?? × ? ?? ? ? ? ?? ??? ?? × ? ? ?? ? ? ? ?? ? ?? ? ? ?? ?× ???× ? ? ? ??? ???? ? ?× ? ?? ? ? ?? ?×? ???× ?? ? ×× × ??? ???? × ?? ? ??? ? ×??? ??? ? ?× ? ? ? ? ? ? ?? ? ?× ? ? × ?× ?? ??? × ? ? ? ?? ?? ? ?? ?? ? ? ? ? ? ? ? ? ? ? ? ? ??

??

?? ?

??? ?? ? ???×? ?

? ? ?? ??? ? × ??? ?

tr:Transaction
needed := n/tasks := 0

:User
when(tasks>0)/^task[tasks].abort()/tasks-transaction failed when(tasks=0)

spawning when(tasks<needed)/^newTask(locks,d)/tasks++

when(tasks=needed)

when(suc+ref=tasks and ref>0) transaction succeeded running when(suc=tasks)

ready(n)/suc++

when(tasks=0)

when(tasks>0)/^task[tasks].commit()/tasks--

failed(n)/ref++

when(not got all locks)/^s.lock(i,m,this)

when(not got all locks)/^s.lock(i,m,this)

t1:Task
/locks:=0 locking grant(i,m)/locks++ refuse(i,m)/^tr.failed(n) when(locks>0)/release(locks)/locks-when(got all locks)/s.compute(d,this) failed when(got all locks)/s.compute(d,this) abort() commit() computing done()/^tr.ready(n) ready abort() releasing when(locks=0) computing done()/^tr.ready(n) ready failed abort() commit() abort() asking /locks:=0 locking grant(i,m)/locks++ refuse(i,m)/^tr.failed(n) asking

t2:Task

when(locks>0)/release(locks)/locks--

releasing

when(locks=0)

s1:Server

release()/locks--

give(n,m,t)/^t.grant(n,m)/locks++

s2:Server

release()/locks--

give(n,m,t)/^t.grant(n,m)/locks++

waiting compute(d,t)/tasks++/^newActive(dur(d),t)

lock(n,m,t)/^newRequest(delay(),n,m,t) compute(d,t)/tasks++/^newActive(dur(d),t)

waiting

lock(n,m,t)/^newRequest(delay(),n,m,t)

finished(t)/tasks--/^t.done()

finished(t)/tasks--/^t.done() [prob(p)]/^s.give(n,m,t)

Lock request

Lock request

[prob(p)]/^s.give(n,m,t)

11 00 111 000 11 00
newRequest(d,n,m,t)

asking

1111 0000
after(d)

fail or not

111 000 1 11 0 00
newRequest(d,n,m,t) [prob(1-p)]/^t.refuse(n,m)

asking

1111 0000
after(d)

fail or not

1 0
[prob(1-p)]/^t.refuse(n,m)

Computational task

1 0 1111 0000 1 0
newActive(d,t)

running

11111 00000 1 0
after(d)/^s.finished(t)

Computational task

1111 0000 1 0
newActive(d,t)

running

1 0 11111 00000 1 0
after(d)/^s.finished(t)

? ? ??

? ?? ? ? ??

?

? ? ? ?? ? ? ?? ? ? ?? ? ??? ? ??? ?? ? ?? ??? ? × ?? ? ?? ? ??? ?? ? ?? ? ×? ? ?? ? ?×? ?? ? ? ? ×? ? × ? ×? ? ? ? ? ? ? ?? × ? ? ?? ? ? ? ? ×? ? ? × ? ? ?? ?× ? ??× ? ? ?? ? ?? ?? ? ??? ? ? ? ? ×× ?? ?? ???? ? ??? ?? × ?? ×? ? ?? ? ? ?? × ? ? ? ? × ? ? ?? ? × ? ?? ? ? ×? ? ? ×? ?× ? ?? ? ?× ???? × ? ? ? ? × ??×× ? ?? ? ?? ?× ? ??× ? ? ? ?? ? ? ? ? ? × ? ? ×? ? ? ? ?? ? ? ?? ? ? ? ? ?? ? ? × ? ? ??? ?? × ? ?×? ?? ? ??× ?? ?× ? ??× ?? ? ? ? ×? ? ? ? ??? ? × ????× ?? ?? ? ? ? ? ? ??? ? ?? ? ?? ? ? ?? × ? ??? ? ? ?? × ? ?× ? × ?? ? ? ×? ? ? ?? ? ???? ? ? ? ? ?? ? ? ×? ? ??× ?? ? ?? ? ?× × ? ?? ? ? ?? ? ? ?? ?× ? ??× ? ? ? ?? ? ?× ? ? ??? ? ×? ? ??× × ??? × ? ? ? ?? ? ????? ??× ? ? ? ? ? ? ? ? ?? ? ?× ? ?? ? ?× ? ? ??? ?? ? ?? ? ? × ? ? ? ? × × ? ?? ? ?? ? ?? ? ? ????? ? ?? ? ? ??? ? × ??? ? ?? ?? ??? ×× ? × ?× ? ?? × ? ? ×? ? ?? ?× ? ?? ? ×? ?? ? ? × ? ?? ?? ? ? ??? ? ? ? ?? ? ? ? ?? × × ??? ?? × ? ? ? ? × ? ? ??? ? ? ??? ×??? ? ×? ? ??? ?? ? ? ×? ?? ?? ?× ? ?? ?? × ??? ×??? ? ?? ? ? ? × ? ×? ?? ? ? ? ? × ?? ?× ?× ?? ?? × ? ?? ? × ? ?? × ?? ? ? ?? ?? ? ? ?? ? × ×? ? ? ? ?? ?× ? ?? ? ?? ×? ?? ?? × ? ? × × ??? ?? ? ? ×? ??? ? ? ?? ×? ? × ? × ? ? × ??? ? × ? ×? ? ? ? ? ? ? ? ?× ??? ? ? ?? × ? ? ? ?? ?? ? ?× ? ? ? ?? × ? ?? ? ? ? ? ?? ?× ? ?? ? ?? ? ????× ? ?? ? ?? ? ?? ? ?? ? ? ?×? ? ? ? ??× ?

??

? × ? ?? ? ?
start task i *

Task.start *

Running Task.done * Task.refuse *

some succeed

one failed

all done

some failed

all succeeded

abort transaction

Task.commit *

Task.abort *

??? ? ? ?? ?× ? ?? × ? ? ? ? ? ? ?? ? ??? ? ? ?? × ? ? ?? ? ? ? ? × ?? ?× ?× ????? ? ×? ? ? ? ? ? ? ? ? ?? ? ? ×? ? ? ? ×? ? × ?? ? ? ? ?? × ? ?× ? ? ? ? ? ×? ? × ?? ? ? ? ? × ? ? ?× ? ? ? ? ?? ? ×? ? × ??? ? ? ?? ?× ? ?? ? ×? ?? ? ? × ××? × ??? ? ?? ? ???? ? × ? ??? ×??? ? ?? ?× ? ??× ? ? ? ?? ? ? ? ? ?? ? ? ? × ? ×? ? ? ??? ? ? ? ? ? ??? ×? ? ? ?? ?× ? ??× ? ??? ×??? ?? ? ??? ? ×× ××? ? ? ?? ?× ? ??? ? × × ?× ? ??? ? ×× ? ? ? ? ? ?? ? × × ? ?? ? ?? ? ? ?? ? ? ? × ? ×? ? ? ? ?? × ? ? ? × ?? ? ?? ? ??? ? ? ? ? ?? ? ? ???? ? ? ?? ??? ? ? ?? ? ? ?? ?× ? ?? ?? × ?? ×???? ? ? × ? ??? ? ×?? ? ? ×? ? ? ? ?? ? ? × ? ? ? ? ?? ? ? × ??× ? ? ??? ×??? ? ?? ? ? ?? × ? ? ? ?? ? ?? ? ? ×? ? × ? ? ×? ? ??? ? ?? ? ?? × ? ? ? ? ? ?? ? ? ??? ×??? × ?? ? ? ? ? ?? × ? × ? ? ??? ? ? ? ?? ?× ? ??× ? ? ? × ?× ×? ? ??? ? ×? ? ? ? × × ? ? ? ? ×? ? ? ? ?? × ? ? ×? ? ??? ? ? ? ?? ? ? ?? × ? ? ? ? ? ? ?? ? ? ? ??? ? ? ?? ?× ? ×? ? ? ?? ? ? ?? ? ?? × ?? ? ? ??? ×??? ? ×? ? ? ? ? ??? ? ? ?? ?× ? ? ?? × ? ?? ?? ?? ? ? ? ?? ? ? ?? × ? ? ? ? ? × ??? ×??? ? ? ?× ? ? ?? × ? ? ?× ?? ? ? ? ?? ?× ? ?? ?? ?? ?? × ??? ×??? ? ?? ? ? ? ?? ? ??? ×? ? ?? ?? ?× ? ?? ?? ? ? ×? ? × ?? ? ? ????? ? ? ? ???? ? ??? ?? × ? ?? ? ?? ?× ? ?? ?? ?? ?? × ? ?× ? ? ? ?? ?× ? ?? ???? ?? ??? ? ? ??? ? ? ?? × × ? ? ??? ? ? ? ? ? ??? ?? ?? ?? × ?? ?? × ? ? ?? ?× ? ??? ? ? ?? × ? ? ? ?? ?× ? ?? ?? ×? ? ? × ? ?? ? ?? ? ? × × ? ×? × ? ?? ? ?? ? ? ???? ?? ? ? ?? × ?? ? ? × ? ? ????? ? ? ? ?? ? ? ? ? ? ×? ×? ? ? ?? ? ? ? ? ? ?? ? ? ??? ×??? ? ?? ? ?? ?× ? ?? × × ??? ?? ? ?? ?× ? ?? ? ? ??? ×? ??× ?× ? ? × ×? ?? ?? ? ? ? ? × ?? ?× ? ? ?? ? ×? ???? ?? ?? ?? ? × × ? ? ?????? ?? ?? ? ? ×

?? ?? ?? ?× ? ?? ? ?? ? ?
start task i *

Task.start *

Running Task.done * Task.refuse *

some succeed

one failed

all done

some failed

all succeeded

abort transaction

Task.commit *

Task.abort *

? ? ? × ? ?? ?? ?× ? ??? ? × × ? ?? × ?? ? ×? ?? ? × ? ? ? ? ×? ? × ?? ? ?? × ?? ? ? ?? ? ?? ?? ? ?? ? ? ? × ×? × ? × ×? ??×? ? ?? ?× ? ?? ? × ?×? ?? × ?? ? ? ? ? ×? ?? ?? ?× ? ?? ? ? ? × ? ?? ? ?? ? ???? ? ?? ? ?? × ??× ? ??? ? ? ? ? × × ? ? ? ? ? ? ?? ? ?? ????? ? ×? ? ×? ? ? ? ? ? × ???? ? × ?× ????? ? ? ? × ? ?? ?? ?× ? ?? ?? ×? ? ??? × ?? ? ?? ? ?????×? ?? ? ? ? × × ?? ? ?× ? ? ? × ?? ?× ?? ?× ? ?? ?? × ? ?? ? × ??? ?? ? ?????? ?× ?? ? ?? ? × ?? ?× ? ??× ? ?? ? ?? ? ?? ? ? × ? ? ?? ? ? ? ? ??? ×??? ? ?? ?× ? ?? ? ? ? ? × ? ? ?? ? × × ×? ? ? ? ? ×? ?? ?× ? ?? ? ?? ? ? ?? ? ?? ?× ?? ? ? ?? ?× ? ?? ×? ?? ? ??? ? ? ? ? × ? ??? ? ?? ?× ? ??? ? ?? ? ? ?? ?? ? ? × ×? ????× ? ? × × ?? ? ? × ? ? ?? × ? ? ?? ? ? ? ? ?? ?? ??? ?? ?× ? ??× ?? ? ?× ? ? ? ? ? ? ? ?? ?× ? ?? ? ?? ?? ? ? ?? ?? ?× ?? ? ? ?? ?× ? ?? ? ?? ? ??? ? ? ? ? ?? ? ?? ?× ? ??× ? × ? ??? ? ? × ? ???? ???? ? ? × × ?? ? ? × ? ? ?? × ? ? ?? ? ? ? ? × ?? ? ?? × ??× ? ? ? ? ? ?? ×??? ? ? ?? ? ?? ? × ?? ? ×? ? ? ? ? ?? × ? ? ????? ??×? ? ??? ×??? ? ? ?? ? ? ? ?? ?? ??? × ??? ????? ??×? ?? ?? ?? × ? ?? ?? ? ??? ?? ??? ? ? ? ? ? ??? ????? ??? ??× ×? ? ? ? ×? ? ? ? ? ? ??? ? ×??? × ?? × ? ? ?? ? ? ? ?? ? ?? ? × ?? ? ???? ? ?????? ?? ?? ?? ?× ? ??× ??? ×??? ? ?? ? × ??? ? ?? ×?? ? × ? ? ??? ? × ?? ? × ? ? ?? × ?? ? ?? ? ? ? ?? ? ??×? ? ?×? ? ???? ? ?????? ?? ?? ? × ?×? ??? ? ? × ?? ?? ? ? ? ? × ×? ? ? ? × ?? × ? ×× ?? ? ? ?? ? ? ??? ×? ? ?? ? ???? ? ???? ?? ? ? ? × ?? ? ?? ?? ? × ?? ?? ?? ? ?? ? × ??? ? ×? ? ?? ???? ? ????× ? ?? × ? ?× ? ? ??? ? ? ? × × ????? ? ? ?? ? ? ?? ? ?? ? × ? ?? ??? × ? ? ? ?? ?? ?× ? ? ? ? ?? ?? ?? ??? ????? ? ?? ? ?? ?? ? × ?? ??? ? ??? ? ??? ? ????? ?? ??? ×??? ? ?? ????? ? ?? ? ? × × ×?? ? ??? ? ?? ?×? ? ?? ??? ? ?? ? ?×? ? ? ?? ? ?? × ?? ? ? ??? ? ? ???? ?

?? ?? ? ?? ? ? ?? ? ?

lock asking

lock test

lock_select

? × ×? ? ? × ?×? ?? ?? ?× ? ??? ? ?? ? ?? ? ?? ? × ×? × ?? ? ?? ? × ?? ? ? × ? ?? ? ? × ? ??? ?? ? × ? ???? ?? ?× ? ??× ?? ? ??? ?? ?? ? × ? ?? × ? ? ?? ?× ? ?? ? ? ? ? ?? ? ? ? ? ?? ? ??? ? ? ?? ? ? × × ?× ? ? × ?? ?? ? ?? ? ?? ×? ????? ?? ?×? ?? ?×? ? × ? ??? ??? ? ?? ? ? ? ? × ??? ? ?? ×? ?? ?× ? ?? × ?? ? ?? ×?? ? ? ? ? ? ?? ?× ? ??? ? ? ×? × ?? ?×? ?× ? ? × ? ? ?? ?? ? × ?? ?× ?? ?? ? ?? ? ?? ? ???? ?? ? ?? ? ??? ? ? × ×? ? ? ? ?? ? × ?× ?? ? ?? ? ????? ?? ? ? ? ?? ? ? ??? ×??? × ?? ? ??? ? ? ?? × ? ?× ? ? ??? ? ? ? ? ? ? ??? ? ??? ? ? ?? ?× ? ? ??? ?? × ?? ? ? × ?? ? ??? ? ?? ? ?? ? ??? ? ? ?? ×? ? ? × ? ? ?? ?? ?× ? ?? ?? ?× ?× ?? ?? ? ??? ? ?? ?? ? ? × ?? ? × ?? ?× ?× ?? ? ? ? ?? ? ? ? ???

??? ? ? ? ×???×
? ? ? ?? ? ?? ?× ? ?? ? ??? ???× ? ? ?? ? ??? ? ? ?? × ? ?× ? ? ???? ?× ? ? ?? × ??× ×?×? ? ? ? ??? × ?? ?× ? ??? ?? ?×? ? ??×? ? × ?? ?× ? ? ?? × ? ×? ? ? ??? ? ??? ? ?? ? ? ? ×? ?? ?× ? ?? ? ? ? ?? ? ? ×? ? ? ? ×? ? ?× ?? ?× ? ??? ? ? ? ?? ?× ? ?? ? ?? ? ? ×? ? ? ? × ? ? ? ? ? ? ? ? ? ? ? × ?? ? ?? ?× ? ??× ? ? ? ?? ?? ×? ? ? ? ? ?? ?? ? ?? ? ??? ??? ? ?? ?× ? ??× ? ?? ?? ?× ? ? ??×? ?? ?× ? ?? ×? ??× ? ? × ×? ?? ?? ? × ?? × ?? ? ? ??? ?? ? ??×? × ?? ?? ? ? × × ? ?? ? ?? ?? ? ? ?? ×? ? ×? ? ? ??? ? × ?? ?? ?× ? ?? ×? ??× ???? ? ? × ×? ?? ?? × ?? ?? ? ? ?? ? ? ? ?? ×? ? ×? ? ? ??? ? ? ? ????? ? ? ? × ?? ? × ? ? ??? ?? ? ? ?? ?×?

? ? ? ??? ? ? ? ×???× ? ? ?? ??? ?? ?? ???? ? ?? ??? ????? ? ??? ??? ?? ?× ? ?? ?× ? ?? ?? ?? ?? ?? ?? ??? ??? ?? ??? ?? ? ?? ??? ??? ?? × ?× ? ?? ? ? ? ?? ? ? ?? ??? ?? ? ??? ?? ? ??? ?? ???? ?? ? ??? ?? ? ?? ???? ??

? ? ?
?

?

???

? ???

? ? ???? ? ? ????? ? ? ? ? ??? ?×? ? ? ?? ?? ? ?× ? ?? ? ? ?? ? ?× ?? ? ? ?? × ??? ? ? ? ??? × ? ?× ?? × ? ×?? ?? ×?×? ?×? ? ? ? ? ? ? ??× ? × ??? ? ?? ? ? ?? ×? ? × ??? × ? ?? ?? ? ? ? ? ?? ??? ×? ??? ?? ? ? ???? ? ?? ?× ? ? ??? ? ? ? × ? ? ? ? ??×??? ? ? ??? ?× ?? ? ?? ?? ? ? ? ? ? ? × ? ??? ? ??? ? × ? ?? ? ? ?× ? ??? ?? ? ? ??? ? ?? ?? ? ? ×?? ?? ×?×? ?×? ?× ? × ??? ? ??? ?? ? ?× ? ??? ???? ? ? × ?? ×?? ??? ? × ? ×?? ? ? ? ? ? ? ??? ? ? ? ? ???? ? ?? ??? ? ????? ? ?? ? ×?×? ? ? ? ?? ? × ??? ???? × ? ?? × ? ?? ? ?× ? ? ?? ? ×? ? ? ? ? ?? ? ? ? ???? × × ??×× ? ? ? ?×?

?

? ? ×
? ? ? ?× ?? ? ? ?? × ? ?? ?? ? ? ?? ×

?? ? ?× ? ?? ? ???? ????? ?? ? ??× × ?× ? ?? ??? ? × ? ? ?? ???? ?? ? ?? ??? ? ? ??? ? ??? ??? ? ?? ? ?? ?? ?? ?

? ? ?? ?? ???? ? ? ? ?? ?? ? ? ???? ??? ×? ? ?? ? ? ? ? ?? ??? ? × ? ?? ??? ?? ? ?? ? ??? × ?? ?? ? ?? ? ?× ? ? ? ??? ? ? ? ? × ? ??? ?? ?????? ? ? ?? ? ? ? ? ? ? ????? ?? ? ? ??? ?? ????? ? ?? ??× ? × ??? ×? ? ? ?? ? ?? ???? ? ? ? ??? ? ? ??

?? ? ?? ? ?? ???? ?? ? ??? ? ? ??? × ?? ? ? ?×? ?? ?? ???? ? ? ? ? ? ?? ×? ???×? ?? ? ? ? ? ? × ? ??? ? ?? ? ? ??? ? ? ? ? ? ??? × ??? ???? ? ?

? ???? ???? ? ? ???? ? ? ? ? ? ?? ? ?? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ? ? ??? ? × ? ?? ?? ? ? ? ???? ? ? ? ? ?? ?? ?? ? ?? ???? ? ? ? ? ? ?? ? ?×? ????? ?? ? ? ???? ×???? ×? ?? ??? ? ? ? ?
× ?? ?? ? ? ? ??

? ?? ? ? ? ??? ? ? ??? ? ? ??? ? × ? ?? ?? ? ? ??× × ?? ×? ?? ?? ×?×? ?× ?× ? ? ? ?? ? ?????? ?? ??? ???? ? ?? ?????× ?? ?? ????? ?? ?? ? ? ??? ? ×? ? ? ? ? ? ??? ???? ? ?? ? ??? ?? ?? ? ? ???? ? ? ?? ?×? ? ? ??? ? ? ? ? ? ? ?? ? ? ?? ? ? ? ?? ?? ×?×? ?× ? ? ×? ? ? ?? ?? ? ? ? ??? ???? ????? ? ? ? ??? ? ? ?? ? ?? ? ?? ?? ? ? ? ?? × ? ????×? ? ???? ?? ? ?? ?? ?? ? ? ? ?? × ? ????× ?? ????? ? ? ? ??? ? ? ?? ? ??? ??? ? ?? ? ?? ?? ? × ?? ?? ? ?? ? ??? ???? ? ? ??? ? ?? ? ? ? ???? ?? ?? ? ? ? ?? ? ? ? ? ? ?? ? ? ? ?? ? ? ? ???? × ? ? ??? ? ?? ?× ??? ???? ? ????? ×? ? ? ??×? ?? ?? ???? ? ? ?? ? ??×???? ???×? ????? ? ? ? ??? ? ? ?? ? ?? ? ?? ?? ? ? ? ?? × ? ????×? ? ???? ?? ? ?? ?? ?? ? ? ? ?? × ? ????× ?? ????? ? ? ? ??? ? ? ?? ? ??? ??? ? ?? ? ?×? ? × ???????? ? ?? ? ? ?? ? ? ? ?? ? ?? ?? ? ?× ?? ?? ××? ? ?? ? ? ? ? ?×? ?? ? ? ? ???? ? ??×?? ? ? ??? ×? ????? ? ??× ×? ?? ? ? ? ??? ? ?? ? ??? ?? ? ?? × ???? ?×?×? ???? ??? ?? ??? × ?? ?? ? ? ??? ? ? ? ? ? ? ????? ? ? ? ? ????? ? ? ?? ??×? ?×? ? × ? ???? ? ? ?? ? ?? ? ×? ?? × ? ? ???? ? ? ? ? ? ??? ? ? ? ? ? ?? ? ×? ?????

?

???


相关文章:
基于UML建模的计算机联锁进路模块Petri网验证_论文.pdf
Petri net, which has strict theoretical analysis method, was used to ...Keywords: station interlocking; UML; Petri net; modeling XUE Feng, YANG ...
Transforming UML Sequence Diagrams into Petri Nets_论文.pdf
Transforming UML Sequence Diagrams into Petri Nets_...modeling taking place between different entities,...“t in time.From their initial use as ...
...Analysis of Real-Time UML Using Stochastic Petri Nets.unkown
Towards Quantitative Analysis of Real-Time UML Using Stochastic Petri Nets J...Modeling Lan- guage [15] in combination with its UML Profile for Schedu-...
...Evaluation of UML State Machines Using Stochastic Petri Nets.unkown
Quantitative Evaluation of UML State Machines Using Stochastic Petri Nets vorgelegt von Diplom-Ingenieur Jan Trowitzsch aus Berlin von der Fakult¨at IV -...
Outline_图文.pdf
Extending UML to specify performance properties Step 2: Generating performance ...Pooley, “Using UML to derive stochastic Petri net models”, Proc. models...
结合UML和Petri Net技术的工作流建模的研究_论文.pdf
本文以汽车租赁流程为例,研究如何把UMLPetriNet两大工具结合起来对工作流进行建模和系统仿真的方法。UML能够有效地描述系统,但缺乏精确的语义描述;而PetriNet能对...
References.pdf
On the aggregation techniques in stochastic Petri nets and stochastic process ...Using UML to derive stochastic process algebra models. In Davies and Bradley...
Hypermedia modelling using UML.pdf
Hypermedia modelling using UML_专业资料。Abstract: ...Petri net based model is de?ned for example in...one “default browsing semantics” can be derived...
...the Verification of UML Models. Examples using Petri Nets_....pdf
A Framework for the Verification of UML Models. Examples using Petri Nets_专业资料。Abstract. This paper presents a framework for the verification of UML ...
基于Petri网和UML的工作流模型设计.pdf
( 2006) 01012105 Wokflow Modeling Design Based on Petri Net and UML K e... execut e ro ut e and data str ucture are described by using case ...
On transforming UML models into performance models.pdf
(STPN): Petri nets have long been used for modeling synchronization ...Pooley "Using UML to Derive Stochastic Process Algebra Models" Proc. of XV...
基于面向对象Petri网的UML建模技术.pdf
Modeling Techniques for UML Based on Object-oriented Petri Nets She Jianfeng1, Jian Wei2 1 Department of Computer Science and Technology ,Wu Han ...
UML实时活动图的形式化分析.pdf
Abstract Unified Modeling Language ( UML ) has been widely used since it ...UML activity diagrams are similar to Petri nets. However , from the ...
Modelling browsing semantics in hypertexts using UML.pdf
Modelling browsing semantics in hypertexts using UML...Their model evolved from classical petri nets used...The authors also define steps to derive a ...
Education.pdf
The methodology includes three modeling formalisms: UML class diagrams (CD),...Stochastic Petri nets are used instead for the dependability analysis of the...
...of Dynamic Behavior in UML Using Colored Petri Nets.pdf
Validation of Dynamic Behavior in UML Using Colored Petri Nets_专业资料。Abstract. This paper describes an approach for modeling the behavioral characteristics...
基于容器中间件的组件系统体系结构性能评价.pdf
The performance model derived from the integrated UML models can reflect the... 随机 Petri 网(stochastic Petri net)或者随机进程代数(stochastic process ...
Translation of UML Models to Object Coloured Petri Nets with ....pdf
Translation of UML Models to Object Coloured Petri Nets with a view to ...In [8], the authors use vUML to translate UML state charts into PROMELA...
AN EMBEDDED SW DESIGN EXPLORATION APPROACH BASED ON UML ....pdf
by using our estimation tool from UML, the ...stochastic Petri net and a composition of the ...A performance model is then derived, from which ...
Early Performance Modeling For Multi-Agent Systems Using UML....pdf
Performance Analysis of internet based software retrieval systems using Petrinet...LQN performance models can be derived automatically from UML specifications ...
更多相关标签: