$UFKLWHFWXUHVQWLHUVHW GpSORLHPHQWG DSSOLFDWLRQV:HE 3ODQ /HVDUFKLWHFWXUHVQWLHUVSRXUOH:HE 3ODWHIRUPHV0LFURVRIW'1$1(7 3ODWHIRUPH-(( /HV:HE6HUYLFHV 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 1 / 54 /HVDUFKLWHFWXUHVQWLHUVSRXUOH :HE /HVDUFKLWHFWXUHVWLHUVFODVVLTXHV /HVDUFKLWHFWXUHV:HE /HWLHUVFOLHQW /HWLHUV:HE /HWLHUVGXPLOLHX /HWLHUVUHVVRXUFH(,6 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 2 / 54 1
/HVDUFKLWHFWXUHVWLHUV FODVVLTXHV client du milieu (Middle tier) ressource (EIS) Le côté serveur 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 3 / 54 /HVDUFKLWHFWXUHVZHE Clients web services Clients lourds client web du milieu Le côté serveur ressource (EIS) Services 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 4 / 54 2
/HVDUFKLWHFWXUHVZHEOHWLHUV FOLHQW Clients web services Clients lourds client web du milieu Le côté serveur ressource (EIS) Services 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 5 / 54 /HWLHUVFOLHQW 8QZHEEURZVHU +773+7736+70/;0/ 8Q3'$ +773+7736:0/;0/ 8QFOLHQWORXUGIDWFOLHQWDSSOHWVDSSV,,2350,&25%$ -50350, DXWUHV«8Q:HEVHUYLFH +773+7736HE;0/(OHFW%XVLQHVV([FKDQJH 6SHFLILFDWLRQ62$3;0/ 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 6 / 54 3
/HVDUFKLWHFWXUHVZHEOHZHE WLHUV Clients web services Clients lourds client web du milieu Le côté serveur ressource (EIS) Services 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 7 / 54 /HWLHUVZHEU{OH ± UHoRLVOHVUHTXrWHV+773GHVFOLHQWVHWUHQYRLV OHVUpSRQVHV ± SHUPHWODVpSDUDWLRQHQWUHSUpVHQWDWLRQ VSpFLILTXHDXFOLHQWHW EXVLQHVVORJLFª ± JpQqUHGXFRQWHQXG\QDPLTXHPHQW ± WUDQVIRUPHGHVUHTXrWHV+773GDQVXQIRUPDW FRPSULVSDUO DSSOLFDWLRQ ± FRQWLHQWODORJLTXHGXIORWGHSUpVHQWDWLRQ ± LGHQWLILHODVHVVLRQGHO XWLOLVDWHXU ± VXSSRUWHSOXVLHXUVW\SHVGHFOLHQWV 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 8 / 54 4
/HWLHUVZHEDUFKLWHFWXUH Clients web services client HTML, XML / HTTP, HTTPS SOAP / HTTPS Serveur Contenu statique CGI scripts web Container Scripts (Fast CGI) Autres extensions SQL, propriétaire XML, RMI / HTTP, IIOP, JRMP, JMS SOAP / HTTPS ressource (EIS) du milieu Services Le côté serveur 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 9 / 54 7HFKQRORJLHVXWLOLVpHVGDQVOH WLHUVZHE &*,)DVW&*,&RPPRQ*DWHZD\,QWHUIDFH 3HXWrWUHpFULWHQ-$9$&&3HUO $63$FWLYH6HUYHU3DJHV 6FULSWLQJLQWHUSUpWpGDQVGHVSDJHV+70/0LFURVRIW -DYD6HUYOHWV QpFHVVLWHXQFRQWHQHXU-DYD -63-DYD6HUYHU3DJHV 6FULSWLQJGDQVGHVSDJHV+70/FRPSLOpHQ6HUYOHW 3+33\WKRQ -DYD6FULSW6HUYHU6LGH 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 10 / 54 5
/HVDUFKLWHFWXUHVZHEOHWLHUVGX PLOLHX Clients web services Clients lourds client web du milieu Le côté serveur ressource (EIS) Services 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 11 / 54 /HWLHUVGXPLOLHXU{OH *HVWLRQGHFRPSRVDQWV! " $# %& (') * "+ " # "&, #,-.! /",0 132!45%4 6872!75 9:87!; 7 ; ;%< =)5 1>;?5 @%A8B =)5%7C7%94 ;?5 @%A8B =)5%7D5%= 9 < E < @ 4%9 < =5 7ROpUDQFHGHIDXWHVKDXWHGLVSRQLELOLWp GF # # H&, I # # "&, ) J,,. K# H# L! H&,#!MCND %, O $&, # M QPR!ST 3DVVDJHjOpFKHOOH GF # #, H('( * 0H&!U #$ $V H$O 0# %, ". H# H&!I # # H&, ) # %DODQFHGHFKDUJH GF # # H&WI ', L X H#"& ) "& #H&!. H& 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 12 / 54 6
/HWLHUVGXPLOLHXU{OH 5HVVRXUFHVSRROLQJ *, 0 O H, # & &H ) # # 7UDQVDFWLRQ0DQDJHPHQW # #) "),, &. H& ##! " # # C& "# H& X H ) I! H&& K O DF N & + # #) # " ) # # "# &,&! #. &RQVROHGHPDQDJHPHQW L, &K0# # 0 80 # &", I H. H&! (') * K # $ 6pFXULWp % $# # 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 13 / 54 3URSULpWpVGHVWUDQVDFWLRQV $&,' ACID (atomicity, consistency, isolation and durability) $WRPLFLW\ 1A8< ; < 2 <7 ; < 5 :)<< ;%< 8< <9?45%?D< 5 :)<)<;%< 7C=%7B 4%9 <=)5 =)5 7A8< @%A< %7<9 A%7B$@ =2 7%9 7!E?C=B 5 =%94%94 <; ; 4<:C9 =%7C4%9 =2 <@! &RQVLVWHQF\ 1 "9 B 45%; 4 @ 9 <=)5 2# ; 9$9 B 45 ;%<9 <=)5 %7B ;%<; 9 75 9:4%9 4!E B =)2=5 7!@ =)5%;%< ; 9 75%9; 9 4%9 7!9 = 45%= 9 Ä 7B$ E4 E 4< B 7!=8@ @%8B ;:&B < 5 68B =8@ 7 ; ;%< 5%6')9 A%7C:84%9 4D2 %; 9(%7DB 7 ; 9 =)B 7 :C9 =!9 Ä 7C; 9 4%9 7 <9 4 ; < 5 8B <=)B(9 = 9 A%7!9 B 45 ; 4 @ 9 < =5&,VRODWLRQ 1B 45 ; 4 @ 9 < =5 ;;%Ä =:5%= 94%E E 7 @ 97 4 @%A!= 9 A%7B"9 B 45 ; 4 @ 9 < =5 < 5 8B = 6)B 7 ; ; '5 =%9? 7%9@ =)2C2 <9 9 7 :C=)B B = 7 :)%4 @%* 9 Ä 7 ; 7 9 7B 2 ; 4B 7C7%+ 4< 5 7 : 4%9$9 Ä 7C75%: =%E(9 A<; ; 7 @ 9 <=)5 '$2 %; 9(%7D<; =&4%9 7 :!E B =2 = 9 Ä 7B(9 B 45 ; 4 @ 9 < =5 ;!!" 9 Ä = 6)A!; 7% 7B 4 9 B 45%; 4 @ 9 < =5 ; 2!4%?DB 85C@ =)5 @ B B 75%9?'< 9;%A%=& : 4%7 4B(9 = 7 4 @%A 9 A%4%94 9 A%7C=%9 Ä 7B ; @ =2 7%9 7 : 7%E =)B 7C=B$4%E 9 7B<9 $4 %;% @%A!@ =5 @ B B 75%9$9 B 45%; 4 @ 9 <=)5%;!2# ; 9 7%E E 7 @ 9 <87?C75 :D< 5!; 7!,&%75%9 <4%=)B :87B 'XUDELOLW\ 1.-5%@ 7C4 9 B 45%; 4 @ 9 <=)5 A%4 ; ;%%@ @ 7 ; ; E?C@ =2 2 <9 9 7 :'(; 9 4%9 7C@%A%45 687 ;@ =)2C2 <9 9 7 :?!9 Ä 4%9 9 B 45 ; 4 @ 9 < =5 2 ; 9(%7!:&B 47C45%:)%7B ;%<; 9 75 9 '):7 ; 8<9 7!45%?!E 4< B 7 ;9 A%4%9=8@ @%8B$4%E 9 7B 4B :8;! 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 14 / 54 7
1LYHDXG LVRODWLRQGHV WUDQVDFWLRQV A%7D<; =& 4%9 < =)5 7%8782 7 4 ;%B 7 ; @ =5 @%8B B 75 99 B 45%; 4 @ 9 < =)5%; @ 4%4 @%<9?!9 =#< 7! :84%9 4 9 A%4%9A%4%87 %7 75 %:84%9 7 :' 95 =%9? 7%9@ =)2C2 <9 9 7 :'? 45 =%9 A%7B9 B 45 ; 4 @ 9 <=)5 &$ E= 9 Ä 7B(9 B 45 ; 4 @ 9 < =5 ;7B 7C4 =7 :!9 =DB 7 4 : :84%9 4!9 Ä 4%94B 7C4 ;?87%9(85 @ =2 2 <9 9 7 :&'9 A%=8; 7 9 B 45%; 4 @ 9 <=)5%; @ =: 75%:) <9 A < 5%@ =)5%;%<; 9 75%9:84%9 4#7B 7 9 A%7!9 B 45 ; 4 @ 9 < =5 9 =DB = %4 @%* '(=)B75%:) 4<9 < 5%6)855%7 @ 7 ; ; 4B <?#7B 7!9 A%7!9 B 45 ; 4 @ 9 < =5 9 =C@ =2 2 <9;% @ @ 7 ; ; E? "A<6)Ä 7B< ; =&4%9 < =5 7% 782!7 45%;7 ; ; @ =)5 @ B B 75 @ 7!45 : 4!6)B 7 4%9 7B < * 7 < Ä = =8:C= E %7B E =)B 2 45 @ 7 %= 9 9 75%7 @%* ; ' %94; =C4C:87 @%B 7 4 ; 7 : @%Ä 45%@ 7C=%E B 7 4 :)< 5 6D< 5%@ =)5%;%< ; 9 75%9:84%9 4&!"68= =8:DB 7C=%E(9 A82 C< ;9 = ; 7!9 A%7DA8< 6)A%7 ; 9<; = 4%9 <=)5 7%87 9 Ä 4%9$?)<7 :8;45!4 @ @ 7 9 47%7B E =)B 2!45%@ 77%87!(Ä 7 E = =< 5%6 4B 7!@ =)2C2!=5D<; = 4%9 <=)5 7%87; '(4B B 45 687 :!E B =2 =!7 ; 9$9 =DA<6)Ä 7 ; 9 5HDG8QFRPPLWWHG 1 4%9 4!9 Ä 4%9Ä 4% 7%7 75 %:84%9 7 :) 95%= 9$? 7%9@ =2 2C< 9 9 7 :)?C4 9 B 45%; 4 @ 9 < =)5 2 4%? 7 B 7 4 :? =%9 A%7B 9 B 45 ; 4 @ 9 < =5 ;! 5HDG&RPPLWWHG 1.-5?C:84%9 4 9 A%4%9A%4%87 %7 75!@ =)2C2 <9 9 7 :%?C4 9 B 45%; 4 @ 9 <=5C@ 45 %7 B 7 4 :)?C=%9 A%7B9 B 45 ; 4 @ 9 < =5 ;% 5HSHDWDEOH5HDG 1.-5?C:84%9 4 9 A%4%9A%4%87 %7 75!@ =)2C2 < 9 9 7 :%?C4 9 B 45%; 4 @ 9 < =5C@ 45 %7 B 7 4 :)?C=%9 A%7B9 B 45 ; 4 @ 9 < =5 ; ' 45 :D2 9 < 7DB 7 4 :8;<?)<7:C9 A%7C; 42 7DB 7 ;%94 ; =5 6C4 ;9 A%7C:84%9 4DA%4%87D5%= 9(%7 75!@ =2 2 <9 9 7 : 6HULDOL]DEOH 1A8< ; ')9 A%7DA8< 6)Ä 7 ; 9 %= ; ;%< 7 < ; = 4%9 < =57%87 '(75%;%B 7 ; 4 9 B 45%; 4 @ 9 <=)5 ; 7%+ @% ;%<87 B 7 4 : B <9 7 4 @ @ 7 ; ;9 =C:84%9 4&$ 9< 5%@% %:87 ;9 Ä 7!@ =)5%:)< 9 < =5 ; =%E 7 4 : =2 2C< 9 9 7 : 45%: 7%7 4%9 4 7 7 4 : 45 : ; 9 < 4%9 7 ;9 A%4%94 9 B 45%; 4 @ 9 < =5 ; B 5!; 7B < 4?!9 =C4 @%A8< 7% 7D2 4%+)< 2 820:84%9 4D< 5%9 7 6)B <9?!(A<;?<7 :8; 9 A%7C;%=7 ; 9 %7B E =B 2!45%@ 7C45%:)7 4 ; 9@ =)5 @ B B 75 @?& 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 15 / 54 7\SHGHVHUYHXUV:HE,QIRUPDWLRQ6HUYHXUV :HE,QIRUPDWLRQ6HUYHXUV ± $ODIURQWLqUHGXWLHUVZHEHWGXWLHUVGXPLOLHX ± 3DVGHWUDQVDFWLRQV ± 6HUYHXUVVDQVpWDWV ± 8WLOLVHGHVWHPSODWHVHWXQODQJDJHGHVFULSW SRXUJpQpUHUOHVSDJHV+70/G\QDPLTXHPHQW WRXWHQDFFpGDQWOHWLHUVUHVVRXUFH ± ([HPSOHV,,6$63 :HEVHUYHXU3+33\WKRQ&*, 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 16 / 54 8
7\SHGHVHUYHXUV6HUYHXUVGH FRPSRVDQWV 6HUYHXUVGHFRPSRVDQWV ± 3HUPHWODFFqVDXWLHUVUHVVRXUFH ± *quhohvwudqvdfwlrqv ± 6HUYHXUVVDQVpWDWV ± 6RQWPDLQWHQDQWDXF XUGHVVHUYHXUV G DSSOLFDWLRQV ± ([HPSOHV 0LFURVRIW7UDQVDFWLRQ6HUYHU076GDQVQHW 6\EDVH-DJXDUGDQV6\EDVH($6HUYHU,%0&RPSRQHQWEURNHUGDQV:HE6SKHUH 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 17 / 54 7\SHGHVHUYHXUV6HUYHXUV G DSSOLFDWLRQV 6HUYHXUG DSSOLFDWLRQV (QYLURQQHPHQWFRPSOHWGHGpYHORSSHPHQWFRWp VHUYHXU &RPSUHQGVWRXMRXUVXQVHUYHXUGHFRPSRVDQWV 6HUYHXUVDYHFpWDWV 6XSSRUWH EXVLQHVVORJLFªGpFULWHjO DLGHG REMHWV GHUqJOHVHWGHFRPSRVDQWV ([HPSOHV M! $P!. D. ( $ KF.#! # & % # L K &!I # # F.#H!H * P M H! "# # "! S # & 13A%9 9 # # (( 7%+ 7 @%%@! @ =)2#$68=%4 45 #%2 <; @ # 7 % 82 9 ; # 7 % 82 9 ; @ =2 A%9 2 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 18 / 54 9
/HVDUFKLWHFWXUHVZHEOHWLHUV UHVVRXUFH Clients web services Clients lourds client web du milieu Le côté serveur ressource (EIS) Services 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 19 / 54 /HWLHUVUHVVRXUFH(,6 (QWHUSULVH,QIRUPDWLRQ6\VWHPV %DVHGHGRQQpHVGDWDEDVHV -'264/--'%&$'21(7 $QFLHQVV\VWqPHVOHJDF\V\VWHPV -((&RQQHFWRUSURWRFROHVSURSULpWDLUHV (53(QWHUSULVH5HVRXUFH3ODQQLQJ -((&RQQHFWRUSURWRFROHVSURSULpWDLUHV ($,(QWHUSULVH$SSOLFDWLRQ,QWHJUDWLRQ -((&RQQHFWRUSURWRFROHVSURSULpWDLUHV 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 20 / 54 10
3ODWHIRUPHV0LFURVRIW'1$1(7 'HX[PRQGHV" 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 21 / 54 0LFURVRIW'1$'LVWULEXWHG LQWHU1HW$UFKLWHFWXUH 0pWKRGRORJLHVRIWZDUHSDWWHUQ DSSRUWHXQHVROXWLRQjXQHQVHPEOHGHSUREOqPH UHQFRQWUpVGDQVOHVDSSOLFDWLRQVGLVWULEXpHV (QVHPEOHGHWHFKQRORJLHV0LFURVRIW 0LFURVRIWDSSRUWHOHVRXWLOVORJLFLHOVSRXU LPSOpPHQWHUFHWWHPpWKRGRORJLH $ # &, & % 80# C % &! S )! #!! GF, " # " " " # F F GF " # F F,0.8) & ## "! $ S ND# # ) ND#%#.8) F N F $*# H& N # ND# # # & N" N ) # C % " # ) KN ) '"! 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 22 / 54 11
0LFURVRIW'1$'LVWULEXWHG LQWHU1HW$UFKLWHFWXUH Source : http://msdn.microsoft.com/ 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 23 / 54 3ODWHIRUPH0LFURVRIW1(7 1(7HVWXQHVWUDWpJLHGHSURGXLWV0 5HPSODFHPHQWGH0LFURVRIW'1$ &RPSRVpGHSDUWLHV ± &/5&RPPRQ/DQJXDJH5XQWLPH ± %&/%DVH&ODVV/LEUDU\ ± $631(7 &/6 "! &76 # $ # &%' #'"(! 06,/ *)+,- "( /.0, $1#! 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 24 / 54 12
&/5&RPPRQ/DQJXDJH 5XQWLPH & HVWOHPRWHXUGH[pFXWLRQSRXUOHV DSSOLFDWLRQGX1(7)UDPHZRUN L # #, &! K0 & ## GF &W# # # 0 $ 0 &K #K0,# # # D % # H& +%' GF H&! H$ &K #8 #& I # $*# K0 # S &# # 80# H %' ) H&, #K0 0,.8 % #.#" (8 GF "&#$*&! H &! %' # # % ) H& $ D # + O S # # # " 8 W# # &"$ & F.8) # &K S ) N ( 8 0# #&, &H# &,&# #! # "& % C&. C M M M 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 25 / 54 &76&/606,/ 7KH&RPPRQ7\SH6\VWHP 1?%7C;?8; 9 72' 8< 9< 5%9 =!9 Ä 7 (=)2C2!=)5 45 6&%4 687 5 9 < 2!7')9 Ä 4%9;%%=B 9 ;9 A%7!9?&%7 ;45 : =&%7B 4%9 < =)5%;E =5%:< 5 2!=8; 9 8B =86)B 42C2 < 5 6) 45 6&%4 687 ;!!(Ä 7!@ =)2C2!=)5 9?&%7!;?8; 9 720; %=)B 9 ;9 Ä 7 @ =2 7%9 7D< 2 72!75%9 4%9 <=)5!=%E$4< :87 B 45%687C= E 8B =86)B 42C2 < 5 6)45 6&%4 687 ;! 7KH&RPPRQ/DQJXDJH6SHFLILFDWLRQ 1 )7%9=%E$@ =)5 ; 9 B %@ 9 ;45 : @ =)5%; 9 B 4< 5%9 ;9 A%4%9; 7B 7 ; 4 ;4C6&8< :87!E =)B < 8B 4B?#B <9 7B ;45 :C@ =)2#8< 7B B <9 7B ;!&$ 94 =!; < 8B 4B < 7 ;9 =%7 E? ; 4 7!E B =)245%? 45 6&%4 687C;%%=)B 9 < 5%6C9 A%7 '(45%:CE =)B 9 A%=8; 7 45%6& 4 687 ;9 =D< 5 9 7 6)B 4%9 7#<9 A!7 4 @%A!=%9 Ä 7B!A%7 (=2 2!=5 45%6& 4 687 %7 @%<E < @ 4%9 < =5 < ;4 ;%%; 7%9=%E(9 Ä 7!@ =2 2!=5 9?&%7!;? ; 9 72 %A%7 (=)2C2!=5 45 6&%4 687 %7 @%< E < @ 4%9 < =5D<;4 ; =D< 2 %=)B 9 45 9 9 =C4 < @ 4%9 < =5!:87%87 =&%7B ;Ä =C4B 7#B < 9 < 5 6C@ =8:87 9 A%4%9 < %7 ; 7 :?C= 9 Ä 7B:87%87 =&%7B ;% Ä 75 :87%87= 7B ; :87 ;%<6)5 < @%?C4 @ @ 7 ; ;%< 7 "%$ ;E = =< 5%6C9 A%7DB 7 ;= E(9 Ä 7 '9 Ä = ; 7" %$ ;4B 7 7 4 ;%<?%; 7 :CE B =)24 %= 9 A%7B 8B =86)B 42 2 < 5 6 45%6& 4 687 ;9 Ä 4%9$9 4B 687%99 Ä 7 =2 2 =)5 45 6& 4 687 5 9 < 2!7& 7KH0LFURVRIW,QWHUPHGLDWH/DQJXDJH 1 < 5 :87%75%:875%9< 5%; 9 B @ 9 <=5C; 7%9< 5%9 = A<@%A %B 42!7!=B *8B = 6)B 42 ; 4B 7!@ =)2#8< 7 : &$ 9 @ =5%9 4< 5 ; < 5%; 9 B @ 9 < =5 ;E =)B =84 :)< 5 6'(; 9 =)B < 5%6'$< 58<9 < 4 < < 5 6')45 :C@ 4 < 5%62 7%9 Ä = :8; =5!=& % 7 @ 9 ;! (=)2#8< 5%7 : <9 A 2!7%9 4 :84%9 4C45%:C9 A%7C@ =2 2 =)5 9?%7C;? ; 9 72' &$ 4 =;E =B(9 B %7C@%B =8; ; 45 6& 4 687 < 5 9 7 6)B 4%9 < =5& 1!#"$# % &')( *,+-.-",%#/## 0 12#"!3 % ",04*. % 5 %# # 6 #0 4 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 26 / 54 13
$631(7:HE)RUPV $631(7HVWXQHDEVWUDFWLRQGH+773 ± DEVWUDFWLRQVFRQWH[WKDQGOHUPRGXOH ± SDJHVFRPSLOpHVHWH[pFXWpHVGDQVOH&/5 0 & * H&"&.#H. 80L! 8& &, % #H # L.H! "0, K # # L ± VpSDUHWUDLWHPHQWVHWSUpVHQWDWLRQ 8 " #, $ %K #,#. 8 # % 0 $ & # H &,#H# F & & GF K#K X H &H& # O U " %"L # #H&! # 0,M! " 0, 0 O JH,#!M (# #! # HL #H H# " *!, #, $ %# H F & &, H. # &! # # M 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 27 / 54 $631(7DUFKLWHFWXUH 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 28 / 54 14
0LFURVRIW$'21(7 Dataset sont une vue en mémoire de la BD Les clients reçoivent les données en XML 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 29 / 54 /DSODWHIRUPH-(( -((HVWXQVWDQGDUGLQGXVWULHO # 0 J M I ) H % # 8QHDSSOLFDWLRQ-((DVVHPEOH GHVFRPSRVDQWV!H #!# # #!H #. C!H #. $" ##" " H,.' & # ". &# I # # P & '& # H P /HVHUYHXU-((IRXUQLWGHV FRQWHQHXUVTXLSHUPHWWHQWGH VLPSOLILHUOHVFRPSRVDQWVHWG RIIULU WRXVOHVVHUYLFHVQpFHVVDLUHV 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 30 / 54 15
$UFKLWHFWXUHG XQVHUYHXU-(( 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 31 / 54 $3,VGHODSODWHIRUPH-(( (QWHUSULVH-DYD%HDQV7HFKQRORJ\(-% %ULTXHGHEDVHSRXUFRQVWUXLUHO DSSOLFDWLRQ W\SHVGHEHDQV,.# %'K.# 0# S &,.# -'%&$3, 3HUPHWOH[pFXWLRQGHFRPPDQGHV64/ SDUWLHVGDQVO $3, #,# H# #, #& J, # N #,# & H O # # H& N F 8 P -DYD'DWD2EMHFWV-'2 JK #, # S 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 32 / 54 16
$3,VGHODSODWHIRUPH-(( -DYD6HUYOHW7HFKQRORJ\ LQWURGXLWXQPRGqOH5HTXrWH5pSRQVHGDQV-DYDHW pwhqgvodfdsdflwpg XQVHUYHXU+773 -DYD6HUYHU3DJHV-637HFKQRORJ\ PpODQJHWH[WHVWDWLTXH+70/;0/DYHF FRQVWUXFWLRQVG\QDPLTXHVGHFRQWHQXHjO DLGHGH WDJV-63 -DYD0HVVDJH6HUYLFH-06 LQWURGXLWXQPRGqOHGHPHVVDJHVHQWUHFRPSRVDQWV 0200HVVDJHV2ULHQWHG0LGGOHZDUH SHUPHWGHVFRPPXQLFDWLRQVDV\QFKURQHVILDEOHHW LQGpSHQGDQWHVHQWUHFRPSRVDQWV 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 33 / 54 $3,VGHODSODWHIRUPH-(( -DYD7UDQVDFWLRQ$3,-7$ IRXUQLWOHVVHUYLFHVQpFHVVDLUHVSRXUFRQWU{OHUOH QLYHDXG LVRODWLRQGHVWUDQVDFWLRQV -DYD0DLO7HFKQRORJ\ 3HUPHWO HQYRLHG HPDLOVSDUWLHVGDQVO $3, #,# H# #,, I H&!I 0# #,# & H 0# -DYD%HDQV$FWLYDWLRQ)UDPHZRUN-$) 6HUYLFHGHGpFRXYHUWHHWG HQFDSVXODWLRQGH FRPSRVDQWVDO DLGHGH-DYD%HDQ 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 34 / 54 17
$3,VGHODSODWHIRUPH-(( -DYD$3,IRU;0/-$;3 6WDQGDUG$3,SRXUSDUVHUHWWUDQVIRUPHUOHVGRQQpHV ;0/'206$;;67/7U$; -((&RQQHFWRU$3, 3HUPHWODFUpDWLRQGDGDSWDWHXUVGHUHVVRXUFHVSRXU SHUPHWWUHODFFqVDX[V\VWqPHV(,6 -DYD$XWKHQWLFDWLRQDQG$XWKRUL]DWLRQ 6HUYLFH-$$6 3HUPHWODJHVWLRQGHODVHFXULWHGDQVOHVDSSOLFDWLRQV -(( 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 35 / 54 $3,VGHODSODWHIRUPH-(( :HE6HUYLFHV :6'3 -DYD:HE6HUYLFHV'HYHORSHU3DFN ± -DYD$3,IRU;0/%LQGLQJ-$;% ± -DYD$3,VIRU;0/0HVVDJLQJ-$;0 ± -DYD$3,IRU;0/5HJLVWULHV-$;5 ± -DYD$3,IRU;0/EDVHG53&-$;53& ± -DYD6HUYHU)DFHV-6) ± ;0/:66HFXULW\ ± -$;3-DYD$3,IRU;0/SURFHVVLQJ ± 62$3ZLWKDWWDFKPHQWV$3,6$$- ± -DYD6HUYHU3DJHV6WG7DJ/LEUDU\-67/ 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 36 / 54 18
-'2-'%& Source : http://www.java-application-servers.com/articles/app_servers.html 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 37 / 54 &RPSDUDLVRQGHO DUFKLWHFWXUH -((HW1(7 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 38 / 54 19
+ D + + &RPSDUDLVRQGXPRGqOHGH GpYHORSSHPHQWGH-((HW1(7 8QODQJDJH 3OXVLHXUVSODWHIRUPHV 3OXVLHXUVODQJDJHV 8QHSODWHIRUPH 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 39 / 54 *HVWLRQGHVFRPSRVDQWV PDQDJHGXQPDQDJHG!#" $% & ' ( ) )* "!#" $,-.* -/ $* &. &* " " 0 )' 12 ) 34 56 *,-74849,-7:8;9=< $ * " )6& >!#" 2*:))? 0)2! $6&.? * ". * @#." < < 0 2* $ BA,#%@# @ * C ):EF. ;* ).) $ * " %*? 0 0 6E )2!)G ( )" 4HIJKE HL E 2* ( %$ )* %>( 2M 0$>&* * )6&. &.*N2!." 2* ).)? 0. 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 40 / 54 20
7DEOHDXFRPSDUDWLIGHVSODWH IRUPHV1(7HW-(( Langage Services Microsoft. NET C#, Multi- Langage BCL Présentation ASP.NET J2EE Java Java core API Servlet JSP Interprète CLR JVM GUI composants Win Forms Forms Swing différences essentielles C# a certains des JavaBeans et ajoute les metadata tags. L'intégration dans la syntaxe est différente. J2EE est plate-forme indépendant mais langage spécifique,.net est langage indépendant mais plate-forme spécifique. Similaire services ASP.NET utilise tout les langages supportes dans.net et est compile en code natif par le CLR. JSPs utilisent Java code (snippets, ou JavaBean références), compile en bytecodes. CLR permet a du code de plusieurs langages d utiliser un ensemble de composants partages. Composants similaire ne sont pas disponible en Java. WinForms et Forms sont complètement intègre a VisualStudio.net DB accès ADO.NET JDBC, JDO, SQL/J ADO.NET est construit a partir d une architecture XML Services oui oui.net web services supposent un model de message base sur SOAP tandis que J2EE laisse le choix au developpeur. Implicit middleware oui oui Technologie Produit Standard J2EE est une specification,.net est une strategie de produits 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 41 / 54 'pilqlwlrqghv:he6huylfhv &ROOHFWLRQGHIRQFWLRQVSDFNDJpHVGDQV XQHPrPHHQWLWpHWSXEOLpHVSRXUHWUH XWLOLVpHVXUOHUHVHDX #$ H ". H&H$ K #8 H&(') * 0&! ). & 0 &.H $) I $# H& K0# # & ) # &# &,! "0!! - &H%! +#,#, # / 3URWRFROHVVLPSOHVHWVWDQGDUGV SHUPHWWDQWXQHXWLOLVDWLRQXQLYHUVHOOH N N DN. & &,QWHUIDFHDXGHVVXVGHVDUFKLWHFWXUHVQ WLHUVH[LVWDQWH1(7-(( 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 42 / 54 21
0RWLYDWLRQGHV:HE6HUYLFHV /LQWpJUDWLRQGHPRGXOHVGLVWULEXpVHVWWUqV GLIILFLOHjFDXVHGHO KpWpURJpQpLWpGHV V\VWqPHV &25%$pWDLWXQHVROXWLRQPDLVVDFRPSOH[LWpDIUHLQpVRQ GpYHORSSHPHQW 0LFURVRIWDYDLWVDSURSUHWHFKQRORJLH&20 /HV:HE6HUYLFHVVRQWVLPSOHVEDVpVVXU;0/ /HVSURWRFROHVVRQWVLPSOHVHWVWDQGDUGV 8QHpQRUPHV\QHUJLHHVWQpHGHUULqUHHX[ /HVZHEVHUYLFHVVRQWIDLEOHPHQWFRXSOpV 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 43 / 54 7HFKQRORJLHVGHV:HE6HUYLFHV :6'/ :6'/:HE6HUYLFHV'HVFULSWLRQ/DQJXDJH IRUPDWGHUHSUpVHQWDWLRQGHVLQWHUIDFHVGH6HUYLFH :HEHQ;0/ VSpFLILHOHSURWRW\SHGHVVHUYLFHVVLJQDWXUHVGHV PpWKRGHVGLIIpUHQWVW\SHVXWLOLVpV :6'/HVWODUHSUpVHQWDWLRQ;0/GXODQJDJH,'/,QWHUIDFH'HILQLWLRQ/DQJXDJHRX0,'/0LFURVRIW GHGHVFULSWLRQGHVLQWHUIDFHV U{OHV &, HJK #H # "&, # HL!, H$ #H, " " 0 # #, # H H&# U " 0 # H&!U " K U # #H# "#) " # L!, O #$O ) #!H#. M 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 44 / 54 22
([HPSOHGH:6'/ <?xml version="1.0"?> <definitions name="stockquote" targetnamespace="http://example.com/stockquote.wsdl" xmlns:tns="http://example.com/stockquote.wsdl" xmlns:xsd1="http://example.com/stockquote.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <schema targetnamespace="http://example.com/stockquote.xsd" xmlns="http://www.w3.org/2000/10/xmlschema"> <element name="tradepricerequest"> <complextype> <all> <element name="tickersymbol" type="string"/> </all> </complextype> </element> <element name="tradeprice"> <complextype> <all> <element name="price" type="float"/> </all> </complextype> </element> </schema> </types> <message name="getlasttradepriceinput"> <part name="body" element="xsd1:tradepricerequest"/> </message> <message name="getlasttradepriceoutput"> <part name="body" element="xsd1:tradeprice"/> </message> <porttype name="stockquoteporttype"> <operation name="getlasttradeprice"> <input message="tns:getlasttradepriceinput"/> <output message="tns:getlasttradepriceoutput"/> </operation> </porttype> <binding name="stockquotesoapbinding" type="tns:stockquoteporttype"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="getlasttradeprice"> <soap:operation soapaction="http://example.com/getlasttradeprice"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="stockquoteservice"> <documentation>my first service</documentation> <port name="stockquoteport" binding="tns:stockquotebinding"> <soap:address location="http://example.com/stockquote"/> </port> </service> </definitions> The WSDL definition shown in the example below contains the following key pieces of information: - A description/format of the messages that can be passed (via embedded XML Schema Definitions) within the <types> and <message> elements - The semantics of the message passing (e.g. Request-only, request-response, response-only) within the <porttype> element - A specified encoding (various encodings over a specified transport such as HTTP, HTTPS, or SMTP) within the <binding> element The endpoint for the service (a URL) within the <service> element 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 45 / 54 7HFKQRORJLHVGHV:HE6HUYLFHV 8'', 8'',8QLYHUVDO'HVFULSWLRQ'LVFRYHU\DQG,QWHJUDWLRQ IRXUQLHXQDQQXDLUHSHUPHWWDQWGHUHWURXYHUGHVZHE VHUYLFHVVXUOHPrPHSULQFLSHTXHOHVSDJHVMDXQHV 8'',LPSOLTXHTXHOHVGLIIpUHQWVIRXUQLVVHXUVGHZHE VHUYLFHVSDUYLHQQHQWjVHQWHQGUHVXUODGpILQLWLRQGH FULWqUHVFRPPXQVHWGHFDWpJRULHVPpWLHUELHQ GpWHUPLQpHV PLVHHQ XYUHGDQVOHFDGUHGHSODFHVGHPDUFKp FROODERUDWLYHVRXGDQVGHVGRPDLQHVWUqVVSpFLILTXHV 0LFURVRIWHW,%0SURSRVHQWGHVVROXWLRQVSOXVOpJqUHVj PHWWUHHQ XYUHWHOOHVTXH:6,QVSHFWLRQ:HE6HUYLFHV,QVSHFWLRQ/DQJXDJH 3E/DFNRIPRGHUDWLRQLQSXEOLF8'',UHSRVLWRU\ROG:6,QDGHTXDWH4R6VHF,QIRUPDWLRQ1)3IRUFRPPXQLFDWLRQ %XVLQHVVPRGHOVWLOOQHHGWRQHJRFLDWHDJUHHRQFRQWUDFW«29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 46 / 54 23
62$36LPSOH2EMHFW$FFHVV 3URWRFRO 62$3HVWXQSURWRFROHPLQLPDOSRXUIDLUH GX53&EDVpVXU;0/ 62$3HVWLQGpSHQGDQWGXQSURWRFROHGH WUDQVSRUWSDUWLFXOLHU & HVWOH,,23GH&RUEDRXOH-503GH50, 6WUXFWXUH 8QHGpFODUDWLRQ;0/RSWLRQQHOOH XQH(QYHORSSH62$3OpOpPHQWUDFLQH62$3 (19(QYHORSH!TXLHVWFRPSRVpHGH!"$# %& '( )+*,-.)0/10 +!"$# 2 ( 34* 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 47 / 54 ([HPSOHGHUHTXrWHV62$3 <!-- Request --> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/xmlschema-instance" xmlns:xsd="http://www.w3.org/1999/xmlschema"> <SOAP-ENV:Body> <ns1:doubleaninteger xmlns:ns1="urn:mysoapservices"> <param1 xsi:type="xsd:int">123</param1> </ns1:doubleaninteger> </SOAP-ENV:Body> </SOAP-ENV:Envelope> <!-- Response --> <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/xmlschema-instance" xmlns:xsd="http://www.w3.org/1999/xmlschema"> <SOAP-ENV:Body> <ns1:doubleanintegerresponse xmlns:ns1="urn:mysoapservices" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <return xsi:type="xsd:int">246</return> </ns1:doubleanintegerresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 48 / 54 24
([HPSOHG LQYRFDWLRQG XQ:HE 6HUYLFH 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 49 / 54 ([HPSOHG LQYRFDWLRQG XQ:HE 6HUYLFH /HFOLHQWGHPDQGHXQVHUYLFHHWIDLWXQHUHFKHUFKH VpPDQWLTXHGDQVXQDQQXDLUH8'',TXLGRQQHOD OLVWHGHVSUHVWDWDLUHVKDELOLWpVjUpSRQGUHjOD UHTXrWH XQHIRLVODUpSRQVHUHoXHHQ;0/UHFKHUFKHGH OLQWHUIDFHGXFRPSRVDQWUpIpUHQFpGDQVODQQXDLUH O LQWHUIDFH:6'/GpFULWOHQVHPEOHGHVVHUYLFHV LPSOpPHQWpVSDUOREMHWGLVWULEXpHWLOHVWSRVVLEOHGH YpULILHUVLO LQWHUIDFHFRUUHVSRQGDODGHPDQGH LQYRFDWLRQGXVHUYLFHO LQYRFDWLRQHVWSULVHHQ FKDUJHSDUXQ3UR[\62$3JpQpUpFRWpFOLHQWjODLGH GHOLQWHUIDFH:6'/ $[LVIURP$SDFKH SUR[\FOLHQWZHEVHUYLFH!-DYDREMHFWFOLHQW!-DYDREMHFW 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 50 / 54 25
+ + + + /DUFKLWHFWXUH:HE6HUYLFHV1(7 2!." 2** * ) * " 2* 0?. 0 H#!)* )?? 00" * 0 ( ( ) $ " * $ * &. * * ).2* ( &* " " N " *: &. $%& @ * " 34%*.&1 ) 23; 5 " )$ *:2" * " <K>&.N < )$;*N>& ( " 2* 0?. )* " ( &* " " >& ) * &." )2!$' ) )* < J $2! 0" * " ".& 0 ( '.&" * ; )? ) 84" $2 < *: >* J J 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 51 / 54 /DUFKLWHFWXUH:HE6HUYLFHV-(( EF. < &. " & ( HI2J %*( " * < )$;)6 &*N N & 2" &. " 02* )* " ; #" < < 0 * H= ( & )$ * & -2M$ * 0!#" $I)$256 &. < )" ).2*N< < " $.J A.2< $J * )* " C " ( 2M." * ) & $>&..&" * " 2* 0?. ).2** &* %$:HNI2J 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 52 / 54 26
&RQFOXVLRQVXUOHVZHEVHUYLFHV $YDQWDJHV / ) /- / )& /1 / ' ) /( ' / /1 / ' ' / ( 03 ' ' ) ) ) ' 0 ) ',-, ) / ) ( 0/ / 3 /+ / /+ ' 3UREOqPHV!" # $%&('*)+&%,# - # $%! $.&(!/021435# 67)- +68 $%$9# '*:<; ; ;=;?> / ',-' / /- ( 0( ' /,-. ) @ / 0' ) ( / ) ' /-' / (. ) /?> ' ' A / 0'/B ' ) '?> / ) ',+ / 0 C ) / 3, ). / '/ 3, ). /1 ED$'03?> A ' ( '/., ) /+,?> /$ ) ' 0/ ',+ / /-. 0'/ / ) /?> ),- /+ ) EC ) 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 53 / 54 5HTXLUHPHQWVSRXUOHVIXWXUHV :HE6HUYLFHV *;$*OREDO;0/:HE6HUYLFHV$UFKLWHFWXUH, ) # F 4, ) 3 F & >,- /-?G ' # F 4 G F 4 ( (.) /-/ F 4 G )) '?H ' # G ' % I I # %I I G I&) ' /-',+. / # 24& +2 / /-/ 0), 0/ / &,, ', ' #4 JLK > ( J >!M (K, ) /- ( F H> =F ) C, 0/ H D > ' ' # 2K 24 > # ) ',- NF H> 2K ' (OJ >!M %K, ) /- &' (P(3 F > F ) C,- / (. > ' ' # 2K Q /RTSU Q,</*&V*# W RL :'**&(W8S &%68 X!'&ZY [ '&\$.]<^4R\_` 29/03/04 D. Caromel, L. Mestre, R. Quilici --- Maîtrise Info --- Programmation Répartie et Architecture N-tiers 54 / 54 27