POLITECNICO DI MILANO Polo Regionale di Como Facoltà di Ingegneria dell Informazione Corso di Studi in Ingegneria Informatica Studio basato su reti di Petri della semantica formale di modelli per applicazioni Web Tutor universitario: Prof. Marco Brambilla Elaborato finale di: Paolo Romano Matr. (655834) A.A. 2004/2005
... 5... 5... 7... 9... 10!... 13... 15 #... 15 $... 16 %... 18 &... 18... 19 &'... 19 (' )... 20 *' )... 20 *$... 21 *+... 21 *,... 21 *(%... 22 -... 22 -./... 23 -,... 24 -%... 25 -(0... 25!... 28 #!... 28 %!... 30!+... 32 12 3... 32 2... 34, %4... 43 %... 52 (!#5... 55 *%... 60-2... 62 2
(! 2... 66 (2... 67 (!62... 67 (2 7... 70 ( 2 7... 72 (2... 74 (2 278+%!9... 75 ((2 278./9... 79 (:%... 84 ($ :... 85 (2 :89... 88 ((0 +/;... 91 ((!... 92 *2... 111 -... 115 3
!!# $ %& ' (!( & ) $ $!# * ' $ $ 4
/ < = & > >? 0 @ A #B1>> A # < C B1 8 > > >9 #A > 8 9 > > > A> > > D > > A < E, > >A A > = > 4 =, F EA > > 5
# > # >A> 2 = 7 A < C ; > A> > = > A AA > > > 4 = > Prospettive per il futuro Evoluzione Web Application Primi 90 Condivisone delle informazioni Tardi 90 E-Commerce Inizio 00 Supply Chain Mgmt / B2B Complessi Processi di business Figura 1.1 : evoluzione e tendenze del web /C > A> A = > = = A 6
/ A < > > A ; < = HTTP/HTML WML Web Server Databases Files Web Services Legacy Applications Figura 1.2 : Architettura Applicazioni Web!#$$ / F > > 7
# $ A >C % 5 &, A C A, A A $ > > $ C > 4 D 5 # 3 = #& 7 < A C 8
% % > AC # A > ;;87!/9 C / A /! 8 /4!9 >> ; C > E > # E % A # A = C, A A 3! A CC! A + ; 9
A 7 C > #> > > & '$ > > 0 4 #!%8 49 G5 # CHC C! H +H F #A 7 >> => A # AC A A > A % A 8 9 < C 10
C > > A < # A < > 2 F '!#!#< > > C A7!/4>7!/0$;2 > I!/ %%>' A!# > C A > > C #> C > > C!#>! 8!9 A D > F> >= > #> < >!< F 0C A 0A > =!628! 62 9<, 11
# > A > 869 A = 82 9>A >A 8! 9 < % G > > # C J ( A A C 2 >F< JA A / % K> > > > # C L # F A A < C 12
& (# )* $A < C C #A A A Stato attuale dell arte Specfiche dei Processi Grande quantità di codice di basso livello Prospettive per il futuro Specifiche dei processi più connesse a una quantità minore di codice di basso livelo Figura 1.3 : sviluppo di processi business 7 A = C # > > > > 8!629 #A A F 5 <A % A, $ # AA < 48!622 9 F 13
# A >> 8!9> > = # > > > A A D A 8? @9 A < 5 > C F C # A / 5 7 = / A = A 7 = 7 > > A 7 A 7 7 A 14
/'> B-2,> 8 > > 9 > > C C 5 A > > A > A C # 5? @ > C 2 'A 8 9? @ ' /' > C />A > C $ 5 C > $C > > < 15
#> E 5 > C > > C / < = #A > C C / >A>< > C > > A $$* DA > C< 7<M8>&>+9 $ < >&< +< & /A > A C > A A > # C = A > C > C 8 9 16
0C A > > > A A $ > 5 1. P T = Ø 2. P T Ø 3. F (P T) (T P) 89> < 89> < > +> > 89 # > > > 3 > >A 8 9 A 17
* / C C J > A C A #> A>! $F C!>> C F # # A /?@ ' 8 9 / 8 9 > 8 9 / C 8 A A 9 D > > > > # 18
&$% % +, A -,! > A >! F!NA<J -,!< > > - 57 %< &$ # > '> / J < A./ 19
+,# #A > & J A A J A?@ ) F = > < -$, D./ A F= #> )> ) = D ) >A > ) # =,A < J> )>A FA = # > > J?@> > C 20
- 7 )& 8 )&9<A )&M8>&J+>>!19 $ >&+!1 > 1. W: F N-{0} 2. M0: P N /89 8 9 >89!1>! -. # A = F 5 C > > C C > 2 > < > A -& % <!A C C 21
-+ / F <! >!>!N 5 C A C A / L L / <A > < F /0*!# '< > AE> A = # > <A > >A A / 8./9 > < 7 FA / > > > %> E 22
/././M8J&J2J+JJ J!19 < &< 8P T = Ø 9 2< +5P T 2< > 5!15< 2 F A >2> F> > / A = >FA < 8 9 >>F > < E JA = = /01 $ 7 &5 F /5 A %, 5 8 > > 9 / C / F / 5C < A C / 5 > 23
/# 7 C <C # < 7 < 7 < / A /C >A< /C / < & A % C < /C 24
/& * D < 8 > 9 # < A 5 C C > > C 0C A /+$ D./ 5> /, /O4, 8>98>9 < OP4C < 25
/<,Q89 C!189MR>>S!<!189MRS #A R8>98>(98>*98>T98>(98>*98>*98>T9S O> 4 OP4 #A A 5 8>9Q8>*9 8>*9Q8>(9 8>T9Q8>-9Q8>T9 2 F> 8>9Q8>*9 >> >*>* 5 5> 5*> 5* 26
2 A $ 5!189MRS!189MR>*>*S 2 > G C C / > C A > 27
&) #A!#8!#9 / <! 8! 9 A > >!# < > >C A 7!/ 4 > 7!/ 0$;2 > I!/ %%>' >/ 6!> 02 ;FA < F A > > C 86$, 119! / C./ &)! < > >!#8!# 9 #!# D > /E < > L = 28
< E > E A A!< + > > A!F > F 2 < > > $!<A <> C > F! A < A A < #! 3 + 4 + + + =! D!#< A > > A >!> A!62 29
0! >C J A >C > 0/(%8 9 # >A >!A LA C & ) #A!JF > C 6$,8 119>! # >C > > # < D 0 > A >!< A #A C > C!> A>A 0C A 30
# A A $ F!J> C <A!!62, #< A!> > >!62 8 9A $ = F 31
&&). C 46$, &&2#3! $ < C./8./9 &, & 7 5 7 8 9 7 5 /C < < 32
' <5 ' / A D F 2,O, 2 A 5?8 U9@ C A U5;!0U&#;U#,VV, 7 A 8>9 2 A 8? @>@@9,O 2 A C89 C 33
&& $, * (!A A 4 7 %A+ /./,, C,, 849 4 F Figura 3.1 : HLPN Sequence Pattern 34
, * ' $ & $! A J C 34,$ A C,$ /<34;' = 4 %A+ 3 C;8A 2$9 /./,, A >,,$> AC A,$%< C,$ C,$ 35
# < # Figura 3.2 : HLPN parallel spilt 36
. ', * ' / 34, 8 % 9, %A + 3C, /./,, C, A, K 7 C,< C,,4%%A+ $;K A>,4, 8,1,O,9; =>,> A A C, 8,9/ A C 8U 9 8U 9 37
Figura 3.3 : HLPN Synchronization 38
, * '! = %A+ 3 I 34/ %A+ I A %A + / %A+ C 3 > A%A+ A I /./,> > I,A I %+2 %A+ %+2 < < %+2 F,< 8 90C %+2 I < %+2 = A,W�#A A 8? @9A ;;2 < C = 39
Figura 3.4 : HLPN Exclusive Choice 40
!. ', * ' $(!C = 34 I A 8A F > > XY9 0 8 I 9 A /> >,*,, 8A XB9 D A < I! A A I I # I /C 4 %4 F A C 41
Figura 3.5 : HLPN Simple Merge 42
&&#!* 4! /5)$!, *! 5 2 %A+ C 34;/ <%A+ 2 %A+ 8 9 ;34 8 9 # ; = < C; ; < A %A + 2 C;8 %A+ 2 9 A C C; #A C;!/ A 2 C; 43
Figura 3.6 : HLPN Multiple Choice 44
65 4!*)*H ' / ' / (, * ' /' $ ( / ( ) ( (!4; C = 8 34; A 9/C;> = > C; 7 A A A #A > > / A A < > 8A < > >; <C 9> 4 A A A A A # C; < 5%A+ 2 A 8, 89 9J %A + C; F 8,9?@ D 89 C; 45
# A > > C;#A C;> >,$C; J; 7 < AA D <! L >%A+ ><C ; J C; > 2 %A+ > J C; %+2, C; 46
Figura 3.7 : HLPN Synchronizing Merge 47
85 ) )* H 0 ', *' /('! A C 7 %A +,4 34J! C,(> A JA,( 2 F,,,( /C A JA > > # A C 2 4 F 48
Figura 3.8 : HLPN Multi Merge 49
95., * 1$ 0!A 34I = 8 34;9 >,4/ 34 A C,4 /A 5,,*D L $ 8 C A F9,C $ 2 > >,* %= C $2 CJA < A 8 9 89 # $ A > >C,* 50
# A < / J,, $ > A >$ Figura 3.9 : HLPN Discriminator! > > A34> 2 O34 51
&&& 2544 H 5 =! /$ 2 34 / F C Figura 3.10 : HLPN Arbitrary Cycle 52
5 $ H ('! A 0 A =/ F / 00! A 6 #0! 8 9 C 2 F>>,?0@ D, 0! /C + C A 53
Figura 3.11 : HLPN Implicit Termination 54
&&+)( 7 < A? @A > >< = A > >A! < > > = )$ 1$ ' '! A!#,40 %C!# < %A A C 8 92 < F X1 %C!# < 8?@9! < C!#U+ 2 5 A 7 %A + < A C, A 34,$J A ; 34I J/C 55
/ >!#,4>F C,4< > > ; F C8 / 2 9# 0!#U2 C 56
Figura 3.12 : HLPN Multi Instance Loop (None) Figura 3.13) HLPN Multi Instance Loop (All) 57
58
Figura 3.14 : HLPN Multi Instance Loop (One) 59
&&- ($ #$% & 5 ( '! = 3 34 I # 0 / < A X(# I #A F I 0# A A A A #A < C 0 JA < <,A %A+ C 60
Figura 3.154 : HLPN Deferred Choice 61
&&/ 95 #4H! A C,4 #0, A # 0 F %A+ C,4 D /, C C0 8 C C9 # C, C,< C C0!,,, 62
Figura 3.16 : HLPN Cancel Activity % A! 7 # 0> > < A!+ C C C /,,!0%%,30 63
Figura 3.17 : HLP Message Flow 64
25 H! % & #0F 65
+) $ 2 C? @< > > # > C > #A A > > $A F C $C >C > > A A > C F A C A A 66
+!*$$ < > A 0C A A C # A 5,C, 8 > > 9,,, Z C # < A < #A +*):, A!62 AC!62 C 5 #! C >,A C A A 2 7 / 6! > A F C > > 67
# 2 C! C C C! > 2 6 C 0 C 8 9 2 # >> A J K > ; > ) C / = C!62> A >< + % C : C,% + % C 2 : 0 0 > AAA /C%, %> 2 /, % 'A > F 2 68
A F C # < > > C, % ) D C?(2 7@ 7C 2 > > < 5 C > I8 O9# A < C > # 2 C 0 8 9 C C,A F!62 C A = C C!62 $ A 69
+; 7 < ; C > >C 0C C C /2 7 > > %F A A #AC C!62 A 0 >> C 8 9 C 6 0C C /2 7 <> C!62% 70
View Controller Model User client JSP page Control unit 1 Control unit 2 Control unit 3 Uniform data representation Relational DB XML document JAVA object JSP page User input 0C F 5??> = 0C 2 78279 6 8: 9 CF #< 2 7C C2 7 71
+;, 2 < < C,!62 < 2 A /2 7< A. A C #A 2 7 2!62A<,C A ( 2 7 8 9 Development level Data Retrieval App Action Control Unit Dispatch Data preparation Uniform data representation Implementation level *** Struts code *** 2 7! ' A 2 7 72
! A 2 7! + 2 7! >2 7>, A A 2 7 # A 5 $'5 A C 8A4! C C! 9,, 5 $5 ( $ 5 > > > < AA < 2 7 A! 0C # 2 7 > >! D 2 7J G 73
C 2 7 $' # 2 7 / > > C A = A D = 8> > 9 #A A 2 7 D > = > C D L A! A + # A 2 7 # ( 5 O ( % F> > > > > 74
> A! 5 ' C F. 7 ' C D 2 7 K <7 ' 2 7 C A # 2 7 A A /C F<C 7 ' C D C 2 7 +&$;=. )> % +%! 2 7 % '5 A 27 A C 75
% 5 C 27# K 27 + 5 K 27,A A 27Z +%! A < A #A < % A 27 & 27 > 275 $ 5 A 27 C % A A C $ 5 27 0C A G A, O 5A A 27 C 76
, A F A C = 27 $2 0 527 < A 2; C / A 27 & 5 A > 27 6 27 < : / C 27 C %5 27D C O A< % %5 27 A + '5 77
Figura 4.1 : FSM Control Unit 78
++$;=0*!1#> # > >./ 27 #A > F< +%!>< 27A A < 27 #A C 27, < > > O27 C # < 27 27 / A J < 2;&0I86 9 27 A O27 #A 27 2 O C 27 79
# < * AF? @ * C 27A< $ < 5 C 27 2 $ 2 27 A 5 C 27> > < A,C 5 & 27 2 %A4! $ C! %! '! 80
0 27 # A A, C 27< A < +%! A A C 27 + 27 <A 8 9 C 27/ 2;&0I& A ' # O 8 9 # O> > $ % + 2 8 9 89 :#A O 27 + F>+ 2 O # $,> %&,&0!,&(D70'#0%> & 27 A 8> 9 O AC! #A 8$,9 $,&,; :02& (,A + A $,&,; :02& $ > O89>27 81
* # O G 27! / > 27> OA D < '0+,4> F > > $2 0 > C! - AC 8$209 OA A A A O8 9 T DC 2;&0I& 8 9 A Y # & > O8 9>6> K> 8C 27 < : 9 # A A D F L & %0/02&0$,',!0&0' < C 27 B /C < 2;&0I& $ 2 0 % # & O% C O A C 27 1 # G $ 2 0?@? @ /C 2 O % % 27 % O 8 9 8 9F 82
Figura 4.2 :HLPN Control Unit 83
+&? * 2 <!62 # A 6/6! > D < 0C > F> C A G D > > > > 0C A C # > > C C # A C C 6AK2 2 < >27< A # 8$2 9A C 27 D 27 & 6C, A 6 C CC > > A< 84
, C C> A> < C 27 A & C $ F< A <C > > 6 <: +&?$* / : < C C 6C!62 0C A 5 6! K ' 8<2! 9! # C2 2 6 $ C $ C : C < /:< D < A A C C 2 G > > 27 0C < : C: D F A AC 85
*7 / >2 >F C A C : #C 27>$ > ;> > <27 A A 2 J < < >> & % C :, 2 A F 0C C ;$7 3 C C % C C 86
3 C A A C ;A F : F #< : A #A F D F?@ G K27 * 0 C K 2 < 27C : A 2 F 27> :> :A C 2 C27:8:9 L 27< # A 27 C : < D >> 27 & L C 2 C : Z #A A <C : A C 87
# A[ $ D A 8 9 A # >C 27>A > $ > 27,C : C ) 2 0 = +&$?$*=> : 6 < 2 7 #A (? 27@0C F : 5 & : # C 7#,, : 27 : 88
A > : 27 / C Figura 4.3 :HLPN Jsp Page /C,:#,',!0&0' DC < ' %0%%#;$,&, 0,30%2.0!0 D C 2 0 6 89
# &,305 87# 9 C C # ' ( DC A #&0',2&#;7# C C A 7# C * /C : < 5 C, :% D > :> #7&,%%0$2 < 7# C C : C: ; < 27A : 90
++.1@ #A A,C A <!A A F C C 0C A A #A <A<! # < A A > > C > > D < ) > > A,A 91
# %F C A < A = L > > #A > > A< ++ ) #A JF > C 6$,8119>! D!C, >C > > >! A, >A A >!!62 A A 92
A 7 #A 27: AF # >> 27:%< 27 27& F<?(2 :89@ 0C= 0C > C >A A: 0C # A :C 7# D 93
Figura 4.4 : Webflow per Sequence Pattern 94
$=( $> 4!=(?> #C = 2 A < C C C # A C,C < C # C, 34! 27 :D L< C > :> A % C #A C 0C C,K A C# C A C C,K A % A #, C A /C, A 27,,A CA : A7# : 27,$% 95
37# 27,$% $2 A 7##A <C C A A A < 8M?@9 ( D C,K 27> > A J =?@? @ $2 D? @ C,K 27, C C,K 27 M@ @ * #,A A = A -,, 0C > F>? @ A T % A C,K 278A 9? @ ;, 96
Figura 4.5 : Webflow per Parallel Pattern 97
# < #,$$ 8A 9 0 7#,$ C,$%,$K A A# C,K 6 A 8,$9 Figura 4.6 : HLPN Comportamento Parallel Split 98
< #! =B@( $> $)* /CO 27 5 $2 C 27 #A 27A > O A > 2 A A%!86?!@9 Figura 4.7 : Webflow per Excluisive Choice 99
)! =@ $> 4!*)*=@)*> %< 34, A C C : A 2 F CA < A C, A A < 27 ;' D A A C> : > A / C $ 27 C A <A C,; C C = % A /27; OA C C #A 27; <; $ 6 ;:;> > A C D?MC4C@ 100
7 :< A < A A A Figura 4.8 : Webflow per Multiple Choice Z A C0O2 C O27 # A /C 101
< ;' C % #A % '4 Figura 4.9 : HLPN Comportamento Multiple Choice 102
#$ C #A A A A # A C A 7? @ % A A A = % A #, C A /C, A 27,?4@ ; A?@ < 7?@ A? @ C 27 $;7&,C A 27?@ #A 27$;7& ( % C C 27$;7& * &27?@> >? @2 # C 103
> > Figura 4.10 : Webflow per Discriminator 1$* 0C 27 $2 # A 27 / 8 9 8,9 0C C A 104
D < :% 27 / C 8 9 8,9 Figura 4.11 : Webflow per Looping standart 1$*) 105
0C 27 A < ; 27 = = # > >C #A < C C D =A A CA A #A F A C, ; C >/ D 27 A D < A 27, #A! < C!#U+ 2 $ A 27 27 A % A 27,A C 106
; C8 9 C C F 8A A C8 9 9 $ % A / A / 1 C,8< 9,, ; % <, =, 107
Figura 4.12 : Webflow per Loop Multi Istance FlowCondition $ C C 27 7 C < =27 /2 % A < 108
Figura 4.13 : Webflow per Discriminator 109
! # C C A 0C 0O2 D J < = 0C > >CD < F A 2 7 2 CC F A D : 27 C Figura 4.14 : Webflow per Deferred Choice 110
' #A 1* 0, / < > 0, / 0 > #& 0,/ :00> L D :00 E : :00> E #&= $ > A > > #,#:00 K & > :00 > 0,/ 0 /E : A 3 :00 : 0,/ : #&# : A 0, / 0 D 5 ' #&\; ] ], => 111
#A 2'! ## A> >F 0 A )1! /8!/9< 0>!/ 0 < & A!/ > 0' 7!/5 # 2 G 0' >!/ 7!/> >!/< > 5 8 Q 9 ' ^>2,%0 A # 5 + ' ' 112
/!/ F > > ; < A 0C C!/ A &, /> ; $ 2'!> #> %,4 / > C! 113
- %<!> > #&> C < $ < A 0C C A! $ < 0C A? ) @ A 0C A < 0C < C = 114
/*! 8!96 1!4>11( #!%,>#!2!#! % 4! ;:'K> % (!,>,.!. > _>, ( * 2!4!, - High-level Petri Nets - Concepts, Definitions and Graphical Notation, Committee Draft ISO/IEC 15909 October 2, 1997 Version 3.4 T, # 2 >_:>2 %$>74, Y % %4 0 H. > 5 & # %#%;)#02 *B1B $ 6 1B1 9. 0%;, +40%;, 1 + W >!!>$Y11( ; > + 3 & H! ' > 5))) )) 115