Applicazioni Java – ebXML - Dipartimento di Ingegneria dell
Transcript
Applicazioni Java – ebXML - Dipartimento di Ingegneria dell
Applicazioni Java – e b X M L Laurea Specialistica in Ingegneria Informatica per la Gestione d'Azienda s o d i Informativi s t u d i o ( p a per r t e le I Aziende I) Corso Ca di Sistemi sistema di tr ac c iab il ità ag r o al imen tar e Ing. Mario G.C.A. Cimino Dicembre 2004 M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 1/71 Terminologia business = at t ivit à di t ipo (i) indust riale o ppure (ii) c o mmerc iale p r o c esso d i business = unit à di suddivisio ne f unz io nale del b usiness = q ualsiasi met o do o sist ema per (i) f are un pro do t t o / serviz io o ppure (ii) ac q uist arlo / venderlo . Es. appro vig io nament i, pag ament i, spediz io ni. sp ec if ic a = c o me la t ec no lo g ia deve f unz io nare: c o sa do vreb b e f are (met o di) e no n f are (vinc o li) st a nd a r d = spec if ic a appro vat a dalla mag g io ranz a di una c o munit à del set t o re. Es. V H S (st andard a p er t o per il f o rmat o dei dat i video sui nast ri mag net ic i per i video reg ist rat o ri), MP EG, SO A P , X ML,… … WIN D O WS (st andard p r o p r iet a r io “ de f ac t o ” per la g est io ne delle riso rse H W dei perso nal c o mput er, c o n la mag g io ranz a del merc at o mo ndiale). M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 2/71 C onc et t i int rod u t t iv i Lo sviluppo di un’ applic az io ne J a v a dist rib uit a c he ado peri e bX M L c o mpo rt a l’ut iliz z o di diverse c o mpo nent i A P I (A p p l ic a tion P r og r a m m in g I n te r f a c e ) e l’int eg raz io ne c o n so luz io ni di t erz e part i (Da ta ba s e M a n a g e m e n t S y s te m , F il e S y s te m , W e b S e r v e r , F ir e w a l l , … ). La t ec no lo g ia Java, i c ui c o mpo nent i so no eseg uit i sulla J a v a Vir tu a l M a c h in e , permet t e di realiz z are applic az io ni p l at f o r m i n d ep en d en t . J a v a f o rnisc e anc he un valido suppo rt o alla s e r ia l iz z a z ion e deg li o g g et t i, o ssia alla lo ro c o dif ic a in un f o rmat o lineare c he po ssa viag g iare in uno st ream. U no st ream può essere a sua vo lt a c o lleg at o ad un f ile per rendere persist ent e l’o g g et t o , o ppure ad un so c k et per t rasmet t ere dat i ad un pro c esso resident e su un ho st remo t o . T ut t avia, q uest a c o dif ic a si b asa su un f o rmat o b inario leg at o a J a v a . C iò sig nif ic a la nec essit à di N int erf ac c e per N applic az io ni “ no n Java” e – dualment e – alt ret t ant e int erf ac c e per o g ni f o rmat o leg at o ad alt ri f ramew o rk di sviluppo o applic at ivi. M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 3/71 Il ling uag g io X M L , derivat o da una f amig lia di ling uag g i di mark up nat i per c o dif ic are i do c ument i w eb , c o nsent e di st rut t urare i dat i in do c ument i p l a in te x t e t raspo rt arli su H T T P . Lo st andard X ML del W3 C permet t e a t ali do c ument i di essere pro c essat i da applic az io ni di q ualsiasi nat ura, def inendo ne la st rut t ura mediant e X M L S c h e m a , realiz z ando q uindi applic az io ni d evi c e i n d ep en d en t . U n do c ument o X ML può desc rivere ent it à di q ualsiasi livello , es. relat ive alle mo dalit à di esplet ament o del rappo rt o t ra due at t o ri del w eb in un pro c esso di b usiness. U n do c ument o X ML, al pari di un pro t o c o llo di int esa, relat ivament e ad uno spec if ic o sc enario , può def inire il mo do in c ui devo no essere ado perat i alt ri do c ument i X ML. Gli sc enari o rg aniz z at ivi dei rappo rt i t ra at t o ri del w eb po sso no essere rag g ruppat i in c lassi, q uindi è po ssib ile pensare ad uno st andard per f o rnire un suppo rt o (ent it à U ML, sc hemi X ML) alla pro g et t az io ne ed alla f o rmulaz io ne di pro t o c o lli di int esa (es. disc iplinari t ec nic i di pro c edura della f iliera). T ale st andard, el ec t r o n i c b u s i n es s X M L -b as ed (eb X M L ), t ende al rag g iung iment o della i n t er o p er ab i l i t à f r a l e o r g an i z z az i o n i . M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 4/71 M od ello d ei d at i e d oc u ment i X M L Suppo niamo di avere un sist ema di t rac c iab ilit à c o n il semplic e mo dello dei dat i raf f ig urat o di seg uit o in U ML. :C a n tin a c at eg or ia = "R os s o" Fig.1 D ia gr a m m a d e l l e c l a s s i :V in o :V in o denominazione = "C h iant i C l as s ic o" dat a = 2 3 .1 1 .1 9 9 8 denominazione = "L amb r u s c o F r izzant e" dat a = 1 5 .0 4 .2 0 0 0 :P r o d u tto r e :P r e z z o :P r o d u tto r e :P r e z z o nome = "G ior g io" c og nome = "R os s i" v al u t a = "E u r o" imp or t o = 1 4 .5 0 nome = "G ianni" c og nome = "F r izzi" v al u t a = "E u r o" imp or t o = 2 0 .1 1 Fig.2 D ia gr a m m a d e gl i o gge t t i ( is t a n z e ) U na C a n tin a c o nt iene diverse t ipo lo g ie di Vin o di una medesima c at eg o ria. C iasc un t ipo di Vin o, c arat t eriz z at o da una d e n om in a z ion e ed una d a ta di pro duz io ne, si c o mpo ne di un P r od u ttor e ed un P r e z z o. U n P r od u ttor e è c arat t eriz z at o da n om e e c og n om e , ment re il P r e z z o dalla v a l u ta e dall’ im p or to. M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 5/71 V o g liamo esprimere le ent it à di F ig .2 in un do c ument o X ML c he ne mant eng a la st rut t ura g erarc hic a. C i so no diversi mo di di rappresent are g li o g g et t i di F ig .2 in d oc u m e n ti d e l l e is ta n z e X M L . <?xml version=”1.0” enc od ing =”U T F -8 ”?> <! -- F orma t o n.1 --> <Cantina> <c ateg o r ia>R osso</ c ateg o r ia> <V ino > <d eno m inaz io ne>C h ia nt i C la ssic o</ d eno m inaz io ne> <d ata g iorno = “ 2 3 ” mese = “ 11” a nno = “ 19 9 8 ”/ > <P r o d u tto r e f orma t o = “ nome c og nome”>G iorg io R ossi</ P r o d u tto r e> <P r ez z o imp ort o = “ 14 .5 0 E u ro”/ > </ V ino > <V ino > <d eno m inaz io ne>L a mb ru sc o F riz z a nt e</ d eno m inaz io ne> <d ata g iorno = “ 15 ” mese = “ 04 ” a nno = “ 2 000”/ > <P r o d u tto r e f orma t o = “ nome c og nome”>G ia nni F riz z i</ P r o d u tto r e> <P r ez z o imp ort o = “ 2 0.11 E u ro”/ > </ V ino > </ Cantina> < ? P roc i n s tru c d ire ttiv a p a p p lic a z io e s s i n g ti on ? > e r l’ ne formato é un a ttr ib u to d e ll’ e le m e n to Produttore Fig. 3 – U n p o s s ib il e d o c u m e n t o X M L d e l l e is t a n z e M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 6/71 <?xml version=”1.0” enc <! -- f ile c a nt ina .xml, <Cantina c a t eg oria = “ R xmlns: xsi=”h t t xsi: noN a mesp a c <V ino > <d e no m inaz io ne >C h ia <d ata>19 9 8 -11-23 </ d <P r o d u tto r e > <no m e >G iorg io</ no m <c o g no m e >R ossi</ c o </ P r o d u tto r e > <P r e z z o va lu t a = “ E </ V ino > <V ino > <d e no m inaz io ne >L a mb <d ata>2000-04 -15 </ d <P r o d u tto r e > <no m e >G ia nni</ no m e <c o g no m e >F riz z i</ c </ P r o d u tto r e > <P r e z z o va lu t a = “ E </ V ino > </ Cantina> od ing =”U T F -8 ”?> F orma t o n.2 --> osso” p : / / w w w .w 3 .org / 2001/ X M L S c h ema -inst a nc e” eS c h ema L oc a t ion=' c a nt ina .xsd ' > nt i C la ssic o</ d e no m inaz io ne > ata> e > g no m e > u ro” >14 .5 0</ P r e z z o > ru sc o F riz z a nt e</ d e no m inaz io ne > ata> > o g no m e > <!- - co m m e n t o - - > P ro s tr u a ttr a ) se su ca g e tta z io n e d i u n a ttu r a d a ti X M L : ib u to o e le m e n to ? n u o v o e le m e n to , il d a to è s tr u ttu r a to lin e e m u ltip le , o m b ia s p e s s o b) n u o v o a ttr ib u to s e il d a to è u n a s tr in g a s e m p l i ce o n u m e r o ( e n o n ca m b i a n o s p e s s o ) , o a p p a r tie n e a u n s e t d i p o s s ib ilità p r e d e fin ite . u ro” >20.11</ P r e z z o > Fig. 4 – U n a l t r o p o s s ib il e d o c u m e n t o X M L d e l l e is t a n z e N ello sc amb io di do c ument i X ML, è nec essario avere st rut t ura e t ipi di dat o b en def init i, o ssia c he i do c ument i delle ist anz e siano c o nf o rmi al medesimo sc hema. Lo sc hema è un do c ument o X ML, c he def inisc e una c lasse di do c ument i X ML, i c ui M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 7/71 element i ed at t rib ut i appart eng o no al namespac e (amb it o di visib ilit à) ident if ic at o da una U R I predef init a. <?xml version=”1.0” enc od ing ="U T F -8 "?> <! -- f ile c a nt ina .xsd , S c h ema p er il F orma t o n.2 , --> <xs:schema xmlns: xs="h t t p : / / w w w .w 3 .org / 2 001/ X M L S c h ema " > <xs:el emen t na me="C a nt ina "> <xs:co mp l exT y p e> <xs:seq u en ce> <xs:el emen t ref ="V ino" minO c c u rs="0" ma xO c c u rs="u nb ou nd ed "/ > </ xs:seq u en ce> <xs:at t r i b u t e na me="c a t eg oria " t y p e="xs: st ring " u se="req u ired "/ > </ xs:co mp l exT y p e> </ xs:el emen t > <xs:el emen t na me="V ino"> <xs:co mp l exT y p e> <xs:seq u en ce> <xs:el emen t na me="d enomina z ione" t y p e="xs: st ring "/ > <xs:el emen t na me="d a t a " t y p e="xs: d a t e"/ > <xs:el emen t ref ="P rod u t t ore"/ > <xs:el emen t ref ="P rez z o"/ > </ xs:seq u en ce> </ xs:co mp l exT y p e> </ xs:el emen t > <xs:el emen t na me="P rod u t t ore"> <xs:co mp l exT y p e> <xs:seq u en ce> <xs:el emen t na me="nome" t y p e="xs: st ring "/ > <xs:el emen t na me="c og nome" t y p e="xs: st ring "/ > </ xs:seq u en ce> </ xs:co mp l exT y p e> </ xs:el emen t > <xs:el emen t na me="P rez z o"> <xs:co mp l exT y p e> <xs:si mp l eC o n t en t > <xs:ext en si o n b a se="xs: d ec ima l"> <xs:at t r i b u t e na me="va lu t a " t y p e="xs: st ring " u se="req u ired "/ > </ xs:ext en si o n > </ xs:si mp l eC o n t en t > </ xs:co mp l exT y p e> </ xs:el emen t > </ xs:schema> Universal Resource Identifier ( URI) è una stringa che id entif ica sim b o l icam ente una riso rsa nel w eb . A d if f erenz a d i una U R L ( U nif o rm R eso urce L o cato r) , d igitand o una U R I nel b ro w ser p uò no n esserci al cuna riso rsa. Fig. 5 U n d o c u m e n t o d e l l a c l a s s e ( X M L Sc h e m a ) p e r il Fo r m a t o n .2 M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 8/71 E lab oraz ione d i d oc u ment i X M L P er validare il do c ument o cantina.xml sullo sc hema cantina.xs d o c c o rre un validat ing X ML parser c he suppo rt i g li Sc hema, c o me il parser o pen so urc e X erc es (pro g et t o A pac he X ML). Sc rit t o in Java, il pac k ag e (ht t p:/ / x ml.apac he.o rg / dist / x erc es-j / X erc es-J-b in.2 .5 .0 .z ip) inc lude un pro g ramma a linea di c o mando c hiamat o dom.Writer (ht t p:/ / x ml.apac he.o rg / x erc es-j / do mw rit er.ht ml). r e m s e t j a v a m a k e . b a t C L A S S P A T H = -c l a s s p a t h x m l P a r s e r A P I s . j a r ; x e r c e s I m p l . j a r ; x e r c e s S a m p l e s . j a r ; d o m . W r i t e r -v -s c a n t i n a . x m l Fig.6 Fil e n e c e s s a r i e r e l a t iv a c o m p o s iz io n e Se il do c ument o è valido , D O MWrit er f arà semplic ement e ec ho alt riment i seg nalerà g li erro ri (d o m . W r i t e r –h per l’help) M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a sullo sc hermo , 9/71 Doc u m e n t O bj e c t M od e l (D O M) è un mo dello ad o g g et t i, def init o dal W3 C , c he c o nsent e di manipo lare un do c ument o X ML c o st ruendo una st rut t ura ad alb ero i c ui no di so no g li element i, mediant e una Int erf ac c ia di P ro g rammaz io ne delle A pplic az io ni (A P I) ug uale per t ut t i i ling uag g i di pro g rammaz io ne. Fig.7 St r u t t u r a d i p a r t e d e l d o c u m e n t o d i Fig.4 S im p l e A P I f or X M L (SA X ) è un alt ro mo dello , b asat o su un paradig ma ad event i, c he no n c o st ruisc e un mo dello dell’int ero do c ument o ma c o nsent e un ac c esso in so la let t ura e la def iniz io ne di un handler di event i per seg nalare le c at eg o rie di int eresse da risc o nt rare nel do c ument o . M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 10 /71 Es. un do c ument o t ipo Wo rd P ro c esso r (mo lt o st rut t urat o e dimensio ni c o nt enut e) si prest a ad essere manipo lat o in D O M, ment re per dat i di un’ag enda (no t evo li dimensio ni e st rut t ura po c o annidat a) si predilig e un appro c c io SA X . N ella piat t af o rma J a v a i pac k ag e j a v a x .x m l , or g .w 3 c .d om , or g .x m l .s a x f o rnisc o no le A P I g eneric he per ent ramb i i mo delli. U n’alt ra int erf ac c ia A P I, c hiamat a JD O M, rappresent a un livello più alt o del mo dello D O M del W3 C , sviluppat o appo sit ament e per g est ire do c ument i X ML sf rut t ando t ut t e le f unz io nalit à di j ava c he semplif ic ano la pro g rammaz io ne, int erf ac c iando si anc he alle princ ipali implement az io ni SA X e D O M (Sun, IB M, O rac le, X erc es, C rimso n,...). U na semplic e applic az io ne Java c he ado pera JD O M si c o mpo ne c o me in F ig .8 e si eseg ue c o n il c o mando ma k e da shell di Windo w s. Il pac k ag e jdom.jar è dispo nib ile su w w w .j d om .or g . M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 11/71 r e m s e t m a k e . b a t C L A S S P A T H = j a v a c j a v a c l a s s priv a te priv a te P r e z z o S t r i n g d ou b l e } l e e n t A d C rn m e t t t o n e n t g e = r i b u t e n t ; j d o m . j a r ; * . j a v a X M L _ t e s t { v a l u t a = "E u r o "; i m p o r t o ; pu b l ic P r e z z o (d ou b l e i m p o r t o ) th is .i m p o r t o = i m p o r t o ; } pu b l ic E E l e m e .s e e .a d re tu } -c l a s s p a t h j d o m . j a r Fig.8 Fil e n e c e s s a r i e r e l a t iv a c o m p o s iz io n e / / P r e z z o .j a v a import o r g .j d o m .E l e m e n t ; pu b l ic -c l a s s p a t h e t n e t e (D w E l e E ("v o u b / / P r o d u t t o r e .j a v a import o r g .j d o m .E l e m e n t ; m e l e a l l e n t m e u t .t { () { n t ("p r e z z o ") ; a ", v a l u t a ) ; o S t r i n g (i m p o r t o ) ) ; M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 12/71 pu b l ic c l a s s priv a te priv a te P r o d u t t o r e S t r i n g S t r i n g { n o m e ; c o g n o m e ; pu b l ic P r o d u t t o r e (S t r i n g n o m e , th is .n o m e = n o m e ; th is .c o g n o m e = c o g n o m e ; } } pu b l ic E E l e m e .a d e .a d re tu } / / V i n o import import import .j j a o r j a pu b l ic c l a s s priv priv priv priv l e e n d C d C rn m e t o n o n e n t g e = t e n t t e n t ; e t n e (n (n E l e E e w e w w m e l e E l E l n t m e e m e m S t r i n g c o g n o m e ) { () { n t ("P r o d u t t o r e ") ; e n t ("n o m e ") .a d d C o n t e n t (n o m e ) ) ; e n t ("c o g n o m e ") .a d d C o n t e n t (c o g n o m e ) ) ; a v a v a .u t i l .D a t e ; g .j d o m .E l e m e n t ; v a .t e x t .S i m p l e D a t e F o r m a t ; a te a te a te a te pu b l ic th th th th } V is is is is V i n o S t r D a t P r o P r e i n .d .d .p .p { i n g e d u t t o r e z z o o (S e n o a t a r o d r e z d e n d a t p r o p r e o m i n a z i o n e ; a ; d u t t o r e ; z z o ; t r i n g d e n o m i n a z i o n e , D a m i n a z i o n e = d e n o m i n a = d a u t t o r e = p r o d u t t o z o = p r e z z o ; pu b l ic E l e m e n t g e t E l e m E l e m e n t e = n e w E l e .a d d C o n t e n t (n e w E e .a d d C o n t e n t (n e w E e .a d d C o n t e n t (p r o d u e .a d d C o n t e n t (p r e z z re tu rn e ; } M.G.C.A.Cimino,”Applicazioni Java-e e n t e m e l e m l e m t t o o .g () n t e n e n r e e t { ("V i t ("d t ("d .g e t E l e m n o e n a t E l e n t e d a t a , z i o n e ; t a ; r e ; P r o d u t t o r e p r o d u t t o r e , P r e z z o p r e z z o ) { ") ; o m i n a z i o n e ") .a d d C o n t e n t (d e n o m i n a z i o n e ) ) ; a ") .a d d C o n t e n t (n e w S i m p l e D a t e F o r m a t ("y y y y -M M -d d ") .f o r m a t (d a t a ) ) ) ; e m e n t () ) ; t () ) ; b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 13/71 } / / C a n t i n a .j a v a import o r g .j d o m .E l e m e n t ; pu b l ic C a n t i n a c l a s s priv a te priv a te S t r i n g V i n o [ ] { c a t e g o r i a ; v i n i ; pu b l ic C a n t i n a (S t r i n g c a t e g o r i a , th is .c a t e g o r i a = c a t e g o r i a ; th is .v i n i = v i n i ; } pu b l ic E E l e m e .s e f or } } / / X M L _ import import import import import l e m e n t t A t (in e .a re tu rn t e j a j a o r o r o r s t .j v a .u v a .i g .j d g .j d g .j d e n t e t r i t i d d C e ; g e t n e b u t e = 0 ; o n t e = w E l e m E l ("c a i < v i n t (v e n e m t e n i i n t () e n t g o r .l e i [ i { ("C a i a ", n g t h ] .g e n t c a ; t E V i n o [ ] i n t e i + l e v i n i ) { a ") ; g o r i a ) ; + ) m e n t () ) ; a v a ; t i l .* ; o .* ; o m .* ; o m .i n p u t .* ; o m .o u t p u t .* ; pu b l ic c l a s s X M L _ t e s t { pu b l ic s ta tic v oid m a i n (S t r i n g [ ] a r g s ) V i n o [ ] v i n i = { n e w V i n o ( "C h i a n n e w G r n e w P r n e w P r ) , n e w V i n o ( "L a m b r n e w G r n e w P r n e w P r ) }; C a n t i n a c a n t i n a = n e w C a n t i n a ("R o s D o c u m e n t d o c 1 = n e w D o c u m e n t (c a n t i M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d th t i e g o o d u e z z u s e g o d e z row C l a r i a t t o o (1 c o F o r i a u t t o z o (2 s E x c s s i c o n C a l e r e ("G 4 .5 0 ) e p t i o n { ", n d a r (1 9 9 8 , 1 0 , 2 3 ) .g e t T i m e () , i o r g i o ", "R o s s i ") , r i z z a n t e ", n C a l e n d a r (2 0 0 0 , 0 3 , 1 5 ) .g e t T i m e () , r e ("G i a n n i ", "F r i z z i ") , 0 .1 1 ) s o ", v i n i ) ; n a .g e t E l e m e n t () ) ; i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 14/71 X M L O u t p u t t e r o u t p u t t e r o u t p u t t e r .o u t p u t (d o c 1 , = n e w X M L O u t p u t t e r (F o r m a t .g e t P r e t t y F o r m a t () ) ; n e w F i l e O u t p u t S t r e a m ("./ c a n t i n a .x m l ") ) ; S A X B u i l d e r b u i l d e r = n e w S A X B u i l d e r () ; D o c u m e n t d o c 2 = b u i l d e r .b u i l d ("./ c a n t i n a .x m l ") ; S y s t e m .o u t .p r i n t l n (o u t p u t t e r .o u t p u t S t r i n g (d o c 2 ) ) ; E l e m e n t r o o t = d o c 2 .g e t R o o t E l e m e n t () ; A t t r i b u t e a t t r i b u t e = (A t t r i b u t e ) r o o t .g e t A t t r i b u t e s () .g e t (0 ) ; S y s t e m .o u t .p r i n t l n ("L a " + a t t r i b u t e .g e t N a m e () + " e ` " + a t t r i b u t e .g e t V a l u e () ) ; } } L i E l S y a t S y s t e m s t t r s t c e n e m i b e m h i t .o u t .o l d r e c h i l u t .p e = u t .p n r o (E r i n t l n (A t t r i r i n t l n d = = o t .g e t C h i l d l e m e n t ) c h i ("I l " + c h b u t e ) c h i l d ("L a " + a t ("V l d r i l d .g e t r i i n e n .g t A b u o ") .g e .g e t (3 e t N a m e t t r i b u t e .g e t t C h ) ; () t e s N a m i l d r e n () ; + " e ` " + c h i l d .g e t T e x t () ) ; () .g e t (0 ) ; e () + " e ` i n " + a t t r i b u t e .g e t V a l u e () ) ; C o me risult at o della esec uz io ne, viene g enerat o e visualiz z at o il f ile cantina.xml do po dic hé veng o no visualiz z at e alc une inf o rmaz io ni sulla st rut t ura. D : \E s e m p i o 1 > m a k e < ? x m l v < C a n t i n < V i n o < d e < d a < P r < < < / P < p r < / V i n < V i n o < d e < d a < P r < < < / P e r s i a c a > n o m i t a >1 o d u t n o m e c o g n r o d u e z z o o > > n o m i t a >2 o d u t n o m e c o g n r o d u o n = "1 .0 " e n c o d i n g = "U T F -8 "? > t e g o r i a = "R o s s o "> n a 9 9 t o >G o m t t v z i o n e >C h 8 -1 1 -2 3 < r e > i o r g i o < / e >R o s s i < o r e > a l u t a = "E n a 0 0 t o >G o m t t z i o n e >L 0 -0 4 -1 5 r e > i a n n i < / e >F r i z z o r e > i a n t i C l a s s i c o < / d e n o m i n a z i o n e > / d a t a > n o m e > / c o g n o m e > u r o ">1 4 .5 < / p r e z z o > a m b r u s c o < / d a t a > F r i z z a n t e < / d e n o m i n a z i o n e > n o m e > i < / c o g n o m e > M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 15/71 < p r e z z o < / V i n o > < / C a n t i n a > L a I l L a c a t e g o r i a p r e z z o e ` v a l u t a e ` v a l u t a = "E u r o ">2 0 .1 1 < / p r e z z o > e ` R o s s o 1 4 .5 i n E u r o eb X M L e W S T ec nic ament e parlando , due o rg aniz z az io ni c he int endo no c o o perare in ret e hanno b iso g no di ac c o rdarsi su c o me invo c are i rispet t ivi serviz i/ pro c essi di b usiness e c o me sc amb iare dat i. Ent ramb i hanno b iso g no di avere a c o mune pro t o c o lli, f o rmat i e c o nt enut i dei messag g i. Le bu s in e s s c ol l a bor a tion si po sso no rac c hiudere in t re c at eg o rie: - B u s in e s s in f or m a tion s e r v ic e s : le o rg aniz z az io ni c o ndivido no inf o rmaz io ni, es. le q uo t az io ni dei t it o li o le new s. - B u s in e s s in te g r a tion s e r v ic e s : una o rg aniz z az io ne f o rnisc e serviz i int eg rat ivi ai c lient i es. sist emi di preno t az io ne, di c o nt ro llo del c redit o . - B u s in e s s tr a n s a c tion s e r v ic e s : due o rg aniz z az io ni si impeg nano in una o peraz io ne di b usiness mut uament e vinc o lant e, c o n o b b lig hi c hiarament e def init i, es. ac q uist o di pro do t t i, c o nt rat t az io ne di serviz i di t raspo rt o . Q uest a t ipo lo g ia di serviz i è spesso leg at a a pro c essi di b usiness. M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 16/71 Si dic e c he le o rg aniz z az io ni c o o perano c o n “ leg ame deb o le” se nessuna di esse può eserc it are c o nt ro llo sull’alt ra (es. un ac q uirent e no n deve po t er b lo c c are le riso rse di un vendit o re). P er t ro vare i serviz i o c c o rro no dei reg ist ri pub b lic i. Inf ine o c c o rre st ab ilire le c o nseg uenz e in c aso di c o ndiz io ni di malf unz io nament o (es. pro b lemi di c o munic az io ne). e bX M L si c o llo c a su un livello parallelo rispet t o allo st ac k di t ec no lo g ie st andard dei W e b S e r v ic e s (W S ). Ent ramb i f o rnisc o no int ero perab ilit à t ec nic a at t raverso un pro t o c o llo no n pro priet ario , ma so no c o mplement ari perc hè si o c c upano di diverse c at eg o rie di b usiness c o llab o rat io n. I W S so no t ipic ament e appro priat i per e -bu s in e s s n on c ol l a bor a tiv o o ssia bu s in e s s in f or m a tion s e r v ic e s e bu s in e s s in te g r a tion s e r v ic e s , ment re i bu s in e s s tr a n s a c tion s e r v ic e so no adeg uat ament e suppo rt at i da e bX M L . M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 17/71 B P E L S e rv ic e W S DL M e s s ag e S O A P T y p e Data ebXML B e h av i o r X M L S c h e m a X M L W e b S e r v i c e S tan d ar d s L’uso di un WS no n ric hiede bu s in e s s c ol l a bor a tion previst e A g r e e m e n t (C P A ) c he def inisc e (una so rt a di int erf ac c ia) sulle q nelle t ransaz io ni. SOAP, S i m p l e O b j e c t A c c e s s P r o t o c o l , i n s i e m e m i n i m a l e d i c o n v e n z io n i p e r lo s c a m b io d i d a ti in te rp ia tta fo rm a , c o d ific a ti in X M L e tra s fe riti m e d ia n te H T T P . SD L , W X M L p e r d i p u n ti d i u n p a ra d ig W B PE X M fo rm W S s ta n e b S e rv ic e D e fin itio n L a n g u d e s c riv e re u n s e rv iz io w e b a c c e s s o in g ra d o d i s c a m b ia m a a procedure o a docum en L , B u s in e s s P ro c e s s L -b a s e d p e r d e f i n i r e a d i c o re o g ra fie d i s e c o n d o re g o le d i d a rd c o n s e n te d i fo rm E x e c u tio n u n a c o m p o W S , o s s ia in te ra z io n u la re i W S a g e ,u n a g ra m m a tic a c o m e u n a c o lle z io n e re m e ssa g g i se c o n d o t i. L a n g s iz io n d i u n e p re c o m e u a g e , lin g u a g g io e d i s e rv iz i n e lla ’a g g re g a z io n e d i s ta b ilite . Q u e s to b u s in e s s p ro c e s s un ac c o rdo t ra ric hiedent e e f o rnit o re, ment re le da eb X ML prevedo no un C ol l a bor a tion P r otoc ol i serviz i messi a dispo siz io ne dalle due c o nt ro part i uali deve t ro varsi un ac c o rdo prima di impeg narsi M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 18/71 ebX M R e q u e s t/re s p o n s e C o lla b o ra tio n T y p e Web Services C o m m u n ic a tio n B u s in e s s S e rv ic e In te r fa c e d e s c r ip tio n W R P C -s t y l e s y n c c o m m u n ic a tio n tig h tly c o u p le d D o c u m e n t -s t y l e a s y n c h ro n o u s c o m m u n ic a tio n lo o s e ly c o u p le d S D L P ro to c o l a n d F o r m a ts S O A P , X M C o n te n t S ta n d a rd s N o n e H o w to fin d b u s in e s s p a rtn e rs L U D D I R e g is tr y h r o n o u s b e tw e e n s e r v ic e s , b e tw e e n s e r v ic e s L S y n c h ro n o u s , a s y n c h r o n o u s c o m m u n ic a tio n C P P , C P A ( W S D L w ith in C P P , C P A u n d e r re s e a r c h ) e b X M L M e s s a g e S e rv ic e ( o v e r S O A P ), X M L , B P S S (a s " b u s in e s s " p ro to c o l) R e c o m m e n d e d S ta n d a r d s (e .g . O A G I B O D s ) e b X ( U D a n e R e g M L R e D I R e g b X M L is tr y o b g i is R je s tr y tr y m a y p o in t to e g is tr y o r c ts ( e .g . C P A ) ) U D D I, D is c o v e ry s ta n d a rd iz p u b b lic a re su i W S U n a n z a to e iv e rs a l D e s c rip tio n , d In te g ra tio n , m e to d o , X M L -b a s e d , p e r ritro v a re in fo rm a z io n i OAG I (O p e n A p p l i c a t i o n s G r o u p , I n c .) h a s v i l u p p a t o u n v a s t o i n s i e m e d i m e s s a g g i d i b u s i n e s s (m e s s a g g i s c a m b ia ti fra le p a rti, in e b X M L ) e s c e n a ri d i in te g ra z io n e p e r e n te rp ris e a p p lic a tio n e B 2 B ,s e n z a s p e c ific a re u n a a rc h ite ttu ra d i im p le m e n ta z io n e (i m p l e m e n t a t i o n fra m e w o rk ). e b X M L fo rn is c e u n o s ta n d a rd p e r t r a s p o r t a r e O A G I B OD s (B u s i n e s s O b je c t D o c u m e n ts ). A dif f erenz a dell’int erf ac c ia nel WSD L, un c amb io dell’int erf ac c ia nel C P A no n inf luenz a lo sc amb io t ec nic o dei messag g i, ma invalida so lo il C P A . Ino lt re, in eb X ML anc he i pro b lemi a livello di b usiness so no presi in c o nsideraz io ne, nel B u s in e s s P r oc e s s S p e c if ic a tion S c h e m a (B P S S ). A d esempio , se una part e no n rispo nde ent ro un predef init o perio do di t empo , il B P SS rit o rna allo st at o prec edent e. N eg li sc enari B 2 B , eb X ML t ro va c o nsenso per amminist rare e n te r p r is e -s p a n n in g bu s in e s s tr a n s a c tion s e r v ic e s nel c o nt est o di b usiness c o llab o rat ivo ; invec e WS t ro vano po st o in in tr a -e n te r p r is e in te g r a tion of ba c k -e n d s y s te m s . M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 19/71 In t ermini di st andardiz z az io ne, eb X ML è in f ase più avanz at a di WS. Il primo f o rnisc e una c redib ile c o llab o raz io ne di b usiness ed un’aut o maz io ne di pro c essi int er-ent erprise, il sec o ndo f o rnisc e SO A P , WSD L ed U D D I. Sec o ndo g li analist i la t ec no lo g ia WS no n si dif f o nderà prima del 2 0 0 5 , q uando t ut t i g li st andard relat ivi avranno rag g iunt o un pari livello di st ab ilit à. A lla luc e dell’esist enz a di eb X ML, appare premat uro ag g iung ere ai WS una semant ic a per le b usiness c o llab o rat io n. E nt it à f ond ament ali d i eb X M L B u s in e s s p r oc e s s , la def iniz io ne di un bu s in e s s p r oc e s s m od e l rig uarda i “ run t ime aspec t s” o ssia l’o rdine c o n c ui veng o no inviat i i messag g i in una bu s in e s s c ol l a bor a tion , senz a c o nsiderare la elab o raz io ne dei dat i, e def inisc e i r u ol i dei part ec ipant i, c ui c o rrispo ndo no t ransaz io ni in un o rdinament o st ab ilit o dalla bu s in e s s tr a n s a c tion c or e og r a h y . U na bu s in e s s tr a n s a c tion c o nsist e in una f ase at o mic a di c o munic az io ne (c o n un mec c anismo di r ol l ba c k in c aso di f alliment o ) in c ui avviene lo sc amb io di do c ument i. M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 20 /71 BPSS, B u s in e s s P r oc e s s S p e c if ic a tion S c h e m a def inisc e un bu s in e s s p r oc e s s m od e l at t raverso (i) un diag ramma delle c lassi U ML, (ii) uno sc hema X ML, (iii) delle reg o le di pro duz io ne da U ML ad X ML, (iv) le B u s in e s s S ig n a l De f in ition s (do c ument i a livello applic at ivo , dist int i dal pro t o c o llo di t raspo rt o di b asso livello , c he seg nalano lo st at o c o rrent e delle t ransaz io ni) M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 21/71 U M M , U N / C E F A C T M od e l in g M e th od ol og y , met o do lo g ia per i pro c essi di b usiness e la mo dellaz io ne c o nsist ent e dell’inf o rmaz io ne. U MM Met a Mo del è una desc riz io ne di semant ic he di b usiness c he permet t e a part ner c o mmerc iali di inq uadrare i det t ag li per uno spec if ic o sc enario di b usiness. I B usiness D o c ument so no c o mpo st i da B usiness Inf o rmat io n D o c ument s riusab ili. A b asso livello , i B usiness Inf o rmat io n O b j ec t s so no c o mpo st i da C o r e C o m p o n e n t s riusab ili. M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 22/71 C PP, C ol l a bor a tion P r otoc ol P r of il e , def inisc e le po t enz ialit à sia t ec no lo g ic he (pro t o c o lli di messag g ist ic a e di c o munic az io ne suppo rt at i) sia c o mmerc iali (q uali B usiness C o llab o rat io n suppo rt a) ed i mo di in c ui una part e può impeg narsi in b usiness elet t ro nic o c o n alt re part i. C PA , C ol l a bor a tion P r otoc ol A g r e e m e n t, def inisc e l’ac c o rdo t ra le part i, ed è c reat o mediant e elab o raz io ni e neg o z iaz io ni derivant i dall’inc ro c io di due C P P . A d esempio : un C P A inc lude so lament e q ueg li element i c he so no c o muni o c o mpat ib ili f ra le due part i. M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 23/71 Business Service Interface: desc rive il mo do in c ui una so c iet à è in g rado di eseg uire le t ransaz io ni nec essarie nel suo pro c esso di b usiness. Ino lt re inc lude le t ipo lo g ie di messag g i suppo rt at i e i pro t o c o lli so pra c ui q uest i viag g iano . R eg istry / R e p os itor y : è un c o nt enit o re pub b lic o per mo delli di pro c esso , vo c ab o lari e pro f ili dei part ner. P uò essere implement at o c o n un server c ent rale. E s emp i <BusinessTransaction n a m e = " C r e a <R eq uesting BusinessA ctiv ity i s N o n R e p u d i a t i o n R e q u i r e d = t i m e T o A c k n o w l e d g e R e c e i p t = t i m e T o A c k n o w l e d g e A c c e p t a n <D ocum entE nv el op e B u s i n e s </R eq uesting BusinessA ctiv ity <R esp ond ing BusinessA ctiv ity i s N o n R e p u d i a t i o n R e q u i r e d = t i m e T o A c k n o w l e d g e R e c e i p t = <D ocum entE nv el op e i s P o s i t B u s i n e s s D o c u m e n t = " P O A </R esp ond ing BusinessA ctiv ity </BusinessTransaction> t e n a " t " P c e s D > n a " t " P i v c k > m o 2 r = O r e = u e D " " P c u m e r u 5 D e R n o d e r " > " " " 3 D " > m e n t = " P u r c h a s e O r d e r " /> = " " e " " > e s p o n s e = " t r u e " w l e d g e m e n t " /> E s e m p io d i B u s in e s s T r a n s a c tion , in q uest o esempio c i so no due f lussi di do c ument i e t re seg nali di b usiness. P o ic hé viene ric hiest o il " no n ripudio " la b usiness ac t ivit y M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 24/71 do vrà c o nservare i b usiness do c ument nella f o rma o rig inale in mo do c he l’inf o rmaz io ne di amb edue le part i no n po ssa essere disc o no sc iut a. La ric hiest a ric hiede sia la ric evut a c he l’ac c et t az io ne, la rispo st a so lo il ric o no sc iment o di ac c et t az io ne. “ P # D ” è uno sc hema W3 C ado t t at o per lo st andard ISO 86 0 1 (per la rappresent az io ne della dat a ed o ra in un c o nt est o g lo b ale) e sig nif ic a P erio d = # D ay s (a part ire dall’invio della ric hiest a) U na b usiness t ransac t io n c o nsist e di una R eq uest ing B usiness A c t ivit y , una R espo nding B usiness A c t ivit y , 1-2 f lussi di do c ument i t ra q uest e, event ualment e asso c iat i ad 1-2 B usiness Sig nals di ric o no sc iment o dei f lussi. Il seg nale di f ailure viene inviat o se ad esempio sc ade uno dei t imeo ut . M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 25/71 B u s ines s T rans ac tio n nam e : s tring p attern : s tring is G u aranteed D el iv ery R eq u ired : B o o l ean + u s es p reC o nd itio n : S tring + ac t iv it ies n p o stC o nd itio n : S tring 1 b egins W h en : S tring end s W h en : S tring + trans ac tio n + trans ac tio n tim eT o P erf o rm : T im e is C o nc u rrent : B o o l ean is L egal l y B ind ing : B o o l ean 1 1 B us ines s A c tion nam e : s tr ing is I ntel l igib l eC h ec k R eq u ired is A u th o ri z atio nR eq u ired : B tim eT o A c k no w l ed geR ec eip i sN o nR ep u d iat io nR eq u ired is N o nR ep u d iat io nO f R ec ie p + r eq u es t er B u s ines s T rans ac tio nA c tiv ity : B o o l ean o o l ean t : T im e : B o o l ean tR eq u ire d : B o o l ean 1 R eq u est ingB u sin ess A c ti v i ty R es p o nd ingB u s ines sA c tiv ity t im eT o A c k no w l ed geA c c e p tanc e : T i me + req u esting 0 ..1 0 ..1 1 + re sp o nd er + res p o nd ing n+ d o c u m entE nv el o p e + d o c u mentE nv el o p e1 D o c u m entE nv el o p e isP o s itiv eR es p o ns e : B o o l ean D iag ramma U ML di una B u s in e s s T r a n s a c tion M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 26/71 P o ssib ile f lusso di do c ument i e relat iva seq uenz a E s e m p io d i F l u s s o d i d oc u m e n ti, so no mo dellat i indiret t ament e c o me Invo luc ri di D o c ument i (D o c ument Envelo pe) inviat i da una part e e ric evut i dall’alt ra, asso c iat i c o n una ric hiest a di at t ivit à si b usiness ed una c o rrispo ndent e rispo st a. M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 27/71 R eq u esti ng Bu sinessA c ti v i ty R esp onding Bu sinessA c tiv ity tim eT oA c k now ledg eA c c ep tanc e : T im e + r eq u esting 0 ..1 0 ..1 + r esp onding n + doc u m entE nv elop e + doc u m entE nv elop e 1 D oc u m entE nv elop e isP ositiv eR esp onse : Boolean DocSecurity isConfidential : Boolean isT am p er P r oof : Boolean isA u th entic ated : Boolean n 1 + doc u m entE nv elop e + doc u m entE nv elop e + attac h m ent n A ttac h m ent nam e : m im eT y sp ec ific v er sion 1 + b u sinessD oc u m ent Bu sinessD oc u m ent S tr ing nam e : S tr ing + att ac h m ent p e : S tr ing sp ec ific ati onL oc at ion : U R I + b u sinessD oc u m ent ation : U R I sp ec ific ationE lem ent : S tr ing n : S tr ing 0 . . 1 c ondit ionE x p r ession : E x p r ession D iag ramma U ML di un Doc u m e n t F l ow C ’è sempre un so lo D o c ument Envelo pe asso c iat o ad una R eq uest ing A c t ivit y , q uest o può avere deg li at t ac hment , t ut t i leg at i al B usiness D o c ument primario . M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 28/71 In q uest o esempio la t ransaz io ne ha una ric hiest a e due po ssib ili rispo st e, suc c esso o f alliment o . La ric hiest a ha un alleg at o . T ut t i i b usiness do c ument so no q ualif ic at i c o n lo sc hema name. <BusinessDocument n a m e = "P u r c h a s <BusinessDocument n a m e = "P O A c k n <BusinessDocument n a m e = "P O R e j e <BusinessDocument n a m e = "D e l i v e r <BusinessT r a nsa ction n a m e = "C r e a t <R eq uesting BusinessA ctiv ity <DocumentE nv el op e i s P o s i t B u s i n e s s D o c u m e n t = "e b X M <A tta ch ment n a m e = ” D e m i m e T y p e B u s i n e s s s p e c i f i c i s C o n f i d i s T a m p e r i s A u t h e n </ A tta ch ment> </ DocumentE nv el op e> </ R eq uesting BusinessA ctiv ity <R esp ond ing BusinessA ctiv ity <DocumentE nv el op e B u s i n e s <DocumentE nv el op e i s P o s i t B u s i n e s s D o c u m e n t = "e b X M </ R esp ond ing BusinessA ctiv ity </ BusinessT r a nsa ction> e O r o w l e c t i o y I n e O r n a m e i v e R L 1 . 0 l i v e = ” X M D o c u a t i o e n t i P r o o t i c a > n a s D i v L 1 > m e o c e R . 0 d e r " d g e m e n t n " s t r u c t i d e r "> = "" e s p o n s e / P O A c k r y N o t e s L ” m e n t = "e n = ” ” a l = ” t r u f = ” t r u e t e d = ” t r s p s p s p o n s " s p " e c e c e c e c i f i f i f i f i c i c i c i c a t a t a t a t i o i o i o i o n L n L n L n L o c o c o c o c a t a t a t a t i o i o i o i o n = n = n = n = "s "s "s "s o m e o m e o m e o m e p l a p l a p l a p l a c e "/ c e "/ c e "/ c e "/ > > > > = "t r u e " n o w l e d g e m e n t "> ” ” b X M L 1 . 0 / D e l i v e r y I n s t r u c t i o n s " e ” u e ” > = "" u m e n t = "e b X M L 1 . 0 / P O e s p o n s e = "f a l s e " / P O R e j e c t i o n "/ > A c k n o w l e d g e m e n t "/ > E s e m p io d i C ol l a bor a z ion e B in a r ia , def inisc e un pro t o c o llo di int eraz io ne t ra due ruo li aut o riz z at i, c o reo g raf at a da un insieme di st at i di q uest i ruo li. M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 29/71 timeToPerform p reC on d ition p os tC on d ition b eg in s W h en / en d s W h en p a ttern rol e s ta tes u s ed B y tra n s ition s B inar yC ol l ab oration periodo di tempo dall’in iz io della prima attiv ità q u ale l’in tera c ollab oraz ion e dev e c on c lu ders i en tro il + c ol l ab oration des c riz ion e dello s tato es tern o a q u es ta c ollab oraz ion e, ric h ies to prima c h e es s a in iz i nam e : str ing p at te rn : s tr ing t im eToP er f or m p reC ond ition : p os tC ond ition b eg insW h en : end s W h en : S 1 des c riz ion e dello s tato c h e n on es is te prima ma es is terà dopo c h e q u es ta c ollab oraz ion e v errà es eg u ita des c riz ion e di u n ev en to es tern o alla c ollab oraz ion e, c h e n ormalmen te c au s a l’in iz io/ f in e della medes ima. rif erimen to opz ion ale ad u n c ollab oraz ion e s i b as a pattern + col l ab oration s u l q u ale q u es ta + s tates A uth oriz ed R ol e 1 + f rom nam e : s tring 1 is I nitiator : B ool ean + to n n B us ines s A c ti vity n nam e : s tring Bus ines s Trans ac t io n nam e : string p attern : string is G uaranteed D p reC ond ition : p ostC ond ition b eg ins W h en : end s W h en : S 1 n + rol e s tati della c oll. b in aria, s tatic o o s tato az ion e L a tran s iz ion e tra attiv ità + us es B us ines s S ta te u n a c ollab oraz ion e b in aria c on s is te di du e ru oli au toriz z ati, u n o di in iz iaz ion e ed u n o di ris pos ta u n a c oll. B in aria pu ò es s ere u s ata den tro u n ’altra c . b in aria in u n a attiv ità di c ollab oraz ion e : Ti m e S tring : S tring S tring 1 tr ing e l ivery R eq uired : B ool ean + us es S tring 1 : S tring S tring tring B us i ness Tr ans ac t io nA cti vi ty + act ivities tim eToP erf orm : Tim e isC oncurrent : B ool ean n isL eg al l y B i nd i ng : B oo l ean + used B y n C ol l ab ora tionA c ti vi ty D iag ramma U ML di una c o llab o raz io ne b inaria M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 30 /71 <BinaryCollaboration n a m <D oc u m e ntation> t i m e T o P e r f o r m = P e </ D oc u m e ntation> <I nitiating R ole n a m e = <R e s p ond ing R ole n a m e = <Bu s ine s s T rans ac tionA n a m e = " C r e a t e O r d e r b u s i n e s s T r a n s a c t i o f r o m A u t h o r i z e d R o l e t o A u t h o r i z e d R o l e = " i s L e g a l l y B i n d i n g = ” <Bu s ine s s T rans ac tionA n a m e = " N o t i f y s h i p m b u s i n e s s T r a n s a c t i o f r o m A u t h o r i z e d R o l e t o A u t h o r i z e d R o l e = " </ BinaryCollaboration> e = " P r o d u c t r i o d : " b u y " s e l c tiv " n = " C = " b u s e l l t r u e c tiv e n t " n = " N = " b u s e l l 5 F u l f i l l m e n t " d a y s f r o m s t a r t t i m e T o P e r f o r m = " P 5 D " > o f t r a n s a c t i o n e r " / > l e r " / > ity r e a t e y e r " e r " ” / > ity O r d e r " o t i f y o f y e r " e r " / > a d v a n c e s h i p m e n t " E s e m p io d i C ol l a bor a tion P r otoc ol P r of il e , i C P P po sso no essere immag az z inat i in un appo sit o repo sit o ry pub b lic o q uale l’eb X ML R eg ist ry . T ramit e un pro c esso di ric erc a ed individuaz io ne, c o dif ic at o nelle spec if ic he del repo sit o ry , una part e c o mmerc iale può t ro vare adeg uat i B usiness P art ner. M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 31/71 C P P La part e A c lassif ic a le inf o rmaz io ni da inserire nel reg ist ry per il pro c esso di disc o very , c o st ruisc e un C P P c o n q uest e inf o rmaz io ni e le inserisc e in un eb X ML R eg ist ry . U n C P P è c o mpo st o da q uat t ro livelli. P r oc e s s S p e c if ic a tion L a y e r (le b usiness t ransac t io ns c he le due part i po sso no c hiedersi e le reg o le di t ransiz io ne c he det erminano l’o rdine delle ric hiest e), De l iv e r y C h a n n e l s (le c arat t erist ic he dei messag g i di ric ez io ne e t rasmissio ne), Doc u m e n t-E x c h a n g e L a y e r (spec if ic a il M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 32/71 t rat t ament o dei do c ument i di b usiness es. enc ry pt io n, dig it al sig nat ure, messag g ist ic a af f idab ile), T r a n s p or t L a y e r (pro t o c o llo di t raspo rt o per mandare i messag g i nella ret e e def inire g li indiriz z i deg li endpo int ) C P A M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 33/71 Le due part i usano l’int ersez io ne t ra c o mpo rt arsi nell’ef St rut t ura di un C P P i lo ro C P P per c o st uire c o ng iunt ament e un unic o C P A c alc o lando i rispet t ivi C P P . Il risult at o def inisc e c o me essi po sso no f et t uare le lo ro B usiness C o llab o rat io n. . <tp:CollaborationProtocolProfile x m l n s : t p= "h t t p: / / w w w . o a s i s -o pe n . o r g / c o m m i t t e e s x m l n s : x s i = "h t t p: / / w w w . w 3 . o r g / 2 0 0 1 / X M L S c h e m a -i n x s i : s c h e m a L o c a t i o n = "h t t p: / / w w w . o a s i s -o pe n . o r g / h t t p: / / w w w . o a s i s -o pe n . o r g / x m l n s : d s = "h t t p: / / w w w . w 3 . o r g / 2 0 0 0 / 0 9 / x m l d s i g # " x m l n s : x l i n k = "h t t p: / / w w w . w 3 . o r g / 1 9 9 9 / x l i n k " t p: c ppi d = "u r i : c o m pa n y A -c pp" t p: v e r s i o n = "2 _ 0 b "> <tp:Party I nfo> . . . </ tp:Party I nfo> <tp:S im plePart i d = ". . . "> . . . </ tp:S im plePart> <tp:Pack ag ing i d = ". . . "> . . . </ tp:Pack ag ing > <tp:S ig natu re> . . . </ tp:S ig natu re> </ tp:Com m ent> <tp:Com m ent> t e x t </ tp:CollaborationProtocolProfile> / e s t c o c o b x a n m m m m <! <! <! <! <! ------ m l c e i t i t -c ppa / s c h e m a / c pp-c pa -2 _ 0 . x s d " " t e e s / e b x m l -c ppa / s c h e m a / c pp-c pa -2 _ 0 . x s d t e e s / e b x m l -c ppa / s c h e m a / c pp-c pa -2 _ 0 . x s d " o n o n o n z e z e e o r m o r e o r m o r e o r m o r r o o r o n r o o r m o e r e e e --> --> --> --> e --> tp (C P P / C P A namespac e), d s (X ML D ig it al Sig nat ure namespac e), x l i n k (X link namespac e, X l in k è un vo c ab o lario X ML st andardiz z at o c he può essere ag g iunt o a element i di do c ument i ist anz a X ML per desc rivere c o lleg ament i est esi, di q ualsiasi c o mplessit à, f ra riso rse nel Web ) C iasc un PartyInfo ident if ic a l’o rg aniz z az io ne e c o nt iene inf o rmaz io ni q uali l’id (es. EA N / U C C ) i ruo li c he può assumere, link a do c ument i ag g iunt ivi, c ert if ic at i, M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 34/71 det t ag li relat ivi alla sic urez z a, al pro t o c o llo di t raspo rt o . S i m p l e Part f o rnisc e una list a di element i c o st it ut ivi ident if ic at i dal c o rrispo ndent e t ipo MIME (Mult i-purpo se Int ernet Mail Ex t ensio n, met o do per t rasf erire o g ni t ipo di f ile t ramit e la po st a elet t ro nic a) Pac k ag i ng indic a inf o rmaz io ni sul Messag e H eader ed il pay lo ad dei messag g i.S i g natu re ab ilit a il C P A ad essere f irmat o usando le spec if ic he X MLD SIG (X ML D ig it al SIGnat ure spec if ic at io n). C P A c o me det t o , è c o mpo st o da due C P P , pert ant o mo lt i element i so no a c o mune c o n q uest o . Ec c o la st rut t ura di alt o livello . <CollaborationProtocolAgreement x m l n s : t p = "h t t p : / / w w w . o a s i s -o p e n . o r g / c o m m i t t e e s / e b x m l -c p p x m l n s : d s = "h t t p : / / w w w . w 3 . o r g / 2 0 0 0 / 0 9 / x m l d s i g # " x m l n s : x l i n k = "h t t p : / / w w w . w 3 . o r g / 1 9 9 9 / x l i n k " t p : c p a i d = "Y o u r s A n d M y C P A " t p : v e r s i o n = "2 . 0 a "> <tp : S tatu s t p : v a l u e = "p r o p o s e d "/ > <tp : S tart>1 9 8 8 -0 4 -0 7 T 1 8 : 3 9 : 0 9 </ S tart> <tp : E nd >1 9 9 0 -0 4 -0 7 T 1 8 : 4 0 : 0 0 </ E nd > <! -- C o n v e r s a t i o n C o n s t r a i n t s M A Y a p p e a r 0 o r 1 t i m e --> <tp : Conv ersationConstraints t p : i n v o c a t i o n L i m i t = "1 0 0 " t p : c o n c u r r e n t C o n v e r s a t i o n s = "4 "/ > <tp : Party I nf o> . . . </ tp : Party I nf o> <tp : Party I nf o> . . . </ tp : Party I nf o> <tp : S imp lePart t p : i d = ". . . ">. . . </ tp : S imp lePart> <! -- o <tp : Pack aging t p : i d = ". . . ">. . . </ tp : Pack aging> <! -- o <tp : S ignatu re> . . . </ tp : S ignatu re> <! -- z <tp : Comment x m l : l a n g = "e n -G B ">a n y t e x t </ Comment> <! -- z </ tp : CollaborationProtocolAgreement> M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a a / s c h e m a / c p p -c p a -2 _ 0 . x s d " n e o r m o n e o r m o e r o o r o e r o o r m r e --> r e --> n e t i m e --> o r e --> 35/71 essere implement at o in un eb X ML R eg ist ry so t t o f o rma di uno sc hema di dat ab ase relaz io nale, di uno sc hema di dat ab ase ad o g g et t i, o ppure di un alt ro sc hema f isic o , c o me un insieme di int erf ac c e e c lassi all’int erno di una R eg ist ry Implement at io n. F ig . Implement az io ne c o nc ret a in c ui il R eg ist ry Servic e suppo rt a c o lleg ament i c o n diversi pro t o c o li (SO A P ed eb MS) C o re C o m p o n e n t Element i semant ic i usat i per c o st ruire la st rut t ura semant ic a di un b usiness do c ument , rag g ruppat i in c at eg o rie di c on te s to. Es. la st rut t ura semant ic a di un p u r c h a s e or d e r avrà element i semant ic i q uali ite m , q u a n tity , p r ic e , … Q uando il b usiness pro c ess c o nt ex t è P u r c h a s in g ed il g eo po lit ic al c o nt ex t è E U (Euro pean U nio n) allo ra il c o re c o mpo nent ta x .a m ou n t è int erpret at o c o me VA T .a m ou n t (V alue A dded T ax = IV A ). M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 37/71 (Est rat t o dal C o re C o mpo nent D ic t io nary ) CCT ( Co r e Co m p o n e n t e T y p e ), B a s ic , o A g g re g a te … n o n a p p lic a b ile … M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 38/71 (A lt ro est rat t o ) M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 39/71 Ino lt re viene def init o un mo do per c reare nuo vi vo c ab o lari di b usiness e per rist rut t urare q uelli g ià esist ent i. Si c erc a di g arant ire rappresent az io ni delle inf o rmaz io ni c he siano allo st esso t empo leg g ib ili dall’ut ent e e pro c essab ili da sist emi aut o mat ic i. La st andardiz z az io ne viene po rt at a avant i sec o ndo un appro c c io “ sy nt ax -neut ral” , indipendent e dalla sint assi. I C o re C o mpo nent so no desc rit t i in U ML e c o nservat i nell’eb X ML reg ist ry . T ale rappresent az io ne si può c o nvert ire in q ualsiasi sint assi: X ML Sc hema, X ML D T D , … U sare i C o re C o mpo nent c o me part e f o ndament ale del f ramew o rk eb X ML aiut a a g arant ire c he due diversi part ner c o mmerc iali c he usano dif f erent i sint assi, ut iliz z ino la semant ic a di b usiness allo st esso mo do , a c o ndiz io ne c he le due sint assi siano b asat e sug li st essi C o re C o mpo nent . F u n z io n a m e n to d i e b X M L R iepilo g o dei c o nc et t i princ ipali: i. mec c anismo st andard per desc rivere pro c essi di b usiness ed i c o rrispo ndent i mo delli dell’inf o rmaz io ne ii. mec c anismo per reg ist rare e c o nservare t ali ent it à M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 41/71 iii. def iniz io ne di c iasc un part ec ipant e mediant e a) i B usiness P ro c ess (B P ) c he suppo rt a, b ) le B usiness Servic e Int erf ac es (B SI) c he o f f re in suppo rt o dei B P , c ) i B usiness Messag es sc amb iat i t ra le B SI, 4 ) c o nf ig uraz io ne t ec nic a di pro t o c o lli di t raspo rt o , sic urez z a e c o dif ic a. iv. mec c anismo per c o nservare t ali ent it à v. mec c anismo per desc rivere l’esec uz io ne di dispo siz io ni mut uament e ac c o rdat e (C P A ) vi. una piat t af o rma di messag g ist ic a di b usiness st andardiz z at a (eb MS) vii. mec c anismo di c o nf ig uraz io ne dei serviz i di messag ist ic a in ac c o rdo c o n i vinc o li def init i nell’ac c o rdo di b usiness. M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 42/71 XML Business S c ena rios Business Profiles 1 COMPANY A R eq u es t B u s i n es s D et a i l s 2 ebXML R eg i s t r y 3 B u i l d Lo c a l S y s t em I m p l em en t a t i o n R eg i s t er I m p l em en t a t i o n D et a i l s R eg i s t er C O MP A N Y A P r o f i l e ile of pr A Y s AN ile MP of Pr CO nd ut bo s a io ya ar er en Qu Sc ad lo w n D o 5 4 COMPANY B 6 ebXML c o m p l i a n t s y s t em M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 43/71 3 ) La so c iet à A invia le inf o rmaz io ni di B u s in e s s P r of il e al R e g is tr y . Il B usiness P ro f ile inviat o al R eg ist ro desc rive c apac it à e vinc o li della so c iet à c o sì c o me t ut t i g li sc enari di b usiness c he essa suppo rt a, o ssia versio ne X ML dei B P . 4 ) La so c iet à B sc o pre g li sc enari di b usiness suppo rt at i dalla So c iet à A nel R e g is tr y . 5 ) La so c iet à B invia una ric hiest a alla so c iet à A seg nalando l’int enz io ne di impeg narsi in una t ransaz io ne c o mmerc iale appo g g iando si sull’arc hit et t ura eb X ML. La so c iet à B si do t a di un’applic az io ne eb X ML-c o mpliant ed invia uno sc hema del b usiness pro po st o diret t ament e all’Int erf ac c ia del so f t w are eb X ML-c o mpliant della so c iet à A . T ale sc hema delinea i pro c essi di b usiness, ed alt ri spec if ic i req uisit i per lo sc amb io delle inf o rmaz io ni nec essarie per il b uo n f ine della t ransaz io ne, event uali piani di emerg enz a ed i req uisit i relat ivi alla sic urez z a. La so c iet à A ac c et t a la pro po st a di b usiness. 6 ) Le so c iet à A e B po sso no o ra lanc iarsi nell’eB usiness usando eb X ML. M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 44/71 e b X M L M e s s a g in g S e r v ic e (e b M S ) L’ebXML Message Service può essere co n cet t ual m en t e sud d iviso in t re part i ( i) un a Message Service I n t erf ace ast rat t a, ( ii) f un z io n i f o rn it e d al Message Service H an d l er – MSH , ( iii) il m appin g verso il serviz io d i t raspo rt o so t t o st an t e. Header Processing, l a creaz io n e d el l ’ebXML H ead er Message avvien e in base agl i in put d el l ’appl icaz io n e, passat i at t raverso l a Message Service I n t erf ace, e d el C P A ch e d ecid e l a st rut t ura d el m essaggio , e po i in f o rm az io n i q ual i f irm a d igit al e, id en t if icat o ri, et c. M essage Pack aging, l ’avvo l gim en t o f in al e d i un ebXML m essage ( h ead er+ pay l o ad ) n el m essaggio SO A P w it h at t ach m en t co n t ain er. M essage S erv ice I nt erf ace f o rn isce d el l e f un z io n i : - S end: sped isce un m essaggio ebXML, i val o ri per i param et ri so n o ricavat i d al Message H ead er. - R eceiv e: ricez io n e d ei m essaggi - N ot if y : f o rn isce n o t if ica d i even t i at t esi e in at t esi. - I nq u ire: f o rn isce un m et o d o per co n o scere l o st at o d i un part ico l are scam bio d i m essaggi. M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 45/71 SO A P w it h A t t ach m en t ( Sw A ) co m bin az io n e d el pro t o co l l o SO A P è un a co n il M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 46/71 <SOAP:Envelope x m l n s : S O A P = " h t t p : / / s c x m l n s : x s i = " h t t p : / / w w w x s i : s c h e m a L o c a t i o n = " h h <SOAP:H ea d er x m l n s : e b = " h t t p : / / w w x s i : s c h e m a L o c a t i o n = <eb :M es s </ SOAP:H ea <SOAP:B od y x m l n s : e b x s i : s c h e a g eH ea d er d er > h e . w t t t t w . " h h . . . = " h t t p : / / w w w m a L o c a t i o n = " h <eb :M a ni f es t e b : v e r s </ SOAP:B od y > </ SOAP:Envelope> m a 3 . p : p : s . o r / / / / x m g / s c w w l s 2 0 h e w . o a s i s -o t t p : / / w t t p : / / w > . . . o h t t t i o a s t p p : n = i s : / / / " 2 -o / w w w . 0 o a 0 1 m a o a p . / X s . s i o r g M L S x m l s -o p e n . o r w w . o a s w w . o a s . </ p e n w w . w . o " > . o o a a s . . g / i s i s eb / s c h s o p e o a e m a p n . p / e a -i . o r o r g c o -o -o :M m m p e p e es i t n . n . s a r g / c o m s i s -o p i s -o p e . </ eb m i e n n . :M n v n s g / / c e l t a s o o m o p n c a p m i t e e o r g o r g g eH s / / c / c ea e b x o m m o m m d er t t e . o r o r g a ni e s / g / c / c o f es e / " e " / e n v e l o p e / t t e e s / e b x m l -m s g / s c h e m a / e n v e l o p e . x s d " > m l -m s g / s c h e m a / m s g -h e a d e r -2 _ 0 . x s d " i t t e e s / e b x m l -m s g / s c h e m a / m s g -h e a d e r -2 _ 0 . x s d i t t e e s / e b x m l -m s g / s c h e m a / m s g -h e a d e r -2 _ 0 . x s d " > > e b x m l -m s g / s c h e m a / m s g -h e a d e r -2 _ 0 . x s d " o m m i t t e e s / e b x m l -m s g / s c h e m a / m s g -h e a d e r -2 _ 0 . x s d m m i t t e e s / e b x m l -m s g / s c h e m a / m s g -h e a d e r -2 _ 0 . x s d " > t > Esempio di Messag eH eader e Manif est in uno sc enario di c reaz io ne nuo vo o rdine: M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 47/71 <eb:MessageHeader S O A P : m u s t U <eb:F ro m > <eb:P art y I d>u r n : d u n s : 1 2 3 <eb:R o l e>h t t p : / / r o s e t t a n </ eb:F ro m > <eb:T o > <eb:P art y I d>u r n : d u n s : 9 1 2 <eb:R o l e>h t t p : / / r o s e t t a n </ eb:T o > <eb:C P A I d>h t t p : / / e s e m p i o . c <eb:C o n v ersat i o n I d>2 0 0 0 1 2 0 <eb:S erv i c e>u r n : s e r v i c e s : S <eb:A c t i o n >N e w O r d e r </ eb:A c <eb:MessageD at a> <eb:MessageI d>2 0 0 0 1 2 0 9 -1 <eb:T i m est am p >2 0 0 1 -0 2 -1 5 </ eb:MessageD at a> </ eb:MessageHeader> <SOAP:Body> <e b :M a n i f e s t e b : v e r <e b :R e f e r e n c e x l i x l i <e b :Sc h e m a e b : l <e b :D e s c r i p t i on </ e b :R e f e r e n c e > </ e b :M a n i f e s t > </ SOAP:Body> s i n k n k o c x o n : h : r a t m l = ″ 2 r e f o l e i o n : l a n d e r s t a n d = ″ 1 ″ e b : v e r s i o n = ″ 2 . 0 ″ > 4 5 6 7 8 9 </ eb:P art y I d> e t . o r g / r o l e s / B u y e r </ eb:R o l e> 3 4 5 6 7 8 </ eb:P art y I d> e t . o r g / r o l e s / S e l l e r </ eb:R o l e> o m / 9 -1 u p p t i o c p a s / n o s t r o c p a c o n v o i . x m l </ eb:C P A I d> 3 3 0 0 3 -2 8 5 7 2 </ eb:C o n v ersat i o n I d> l i e r O r d e r P r o c e s s i n g </ eb:S erv i c e> n > 3 3 0 0 3 -2 8 5 7 2 @ e x a m p l e . c o m </ eb:MessageI d> T 1 1 : 1 2 : 1 2 </ eb:T i m est am p > . 0 = ″ = ″ = " n g ″ > c i d X L i h t t = ″ e : e b n k R p : / n -U x m o l / r S ″ l p a y l e ″ x l e g r e p >P u r c o a i n . o h a d 1 1 1 @ k : t y p r g / p o s e O r e x e = . x d e a m ″ s s d r p l e i m p " e 1 </ . c l e b : e b From/ T o: id d el m it t en t e/ d es t in a t a r io e r u o l o a s s u n t o n el l a c o l l a b o r a z io n e. CP A I d : id en t if ic a t o r e d el C P A , s p es s o u n a U R I . Con v e rs a t i on I d : id en t if ic a l ’ in s iem e d ei m es s a g g i d i u n a c o n v er s a z io n e t r a d u e p a r t n er . È in iz ia l iz z a t o d a l l a p a r t e c h e in iz ia il d ia l o g o , e v er r à m a n t en u t o p er t u t t a l a d u r a t a d eg l i s c a m b i. S e rv i c e : in d ic a il s er v iz io r ic h ies t o n el m es s a g g io . A c t i on : id en t if ic a u n a p a r t ic o l a r e a z io n e a l l ’ in t er n o d i u n s er v iz io . A d es em p io l a c r ea z io n e d i u n n u o v o o r d in e. M e s s a g e D a t a : c o n t ien e t u t t e l e in f o r m a z io n i n ec es s a r ie a l l ’ id en t if ic a z io n e u n ic a d i u n m es s a g g io , in p a r t ic o l a r e u n id g en er a t o c a s u a l m en t e e u n t im es t a m p l eg a t o a l l ’ is t a n t e d i c r ea z io n e d el l ’ h ea d er . Q u es t o c a m p o p u ò c o n t en er e in o l t r e l ’ id d el m es s a g g io p r ec ed en t e, c o l l eg a t o a q u el l o a t t u a l e ed il t em p o d i v it a d el m es s a g g io . Manifest identifica, attraverso uno o p iù el em enti R efer enc e, i docum enti al l eg ati al m essag g io o risorse esterne o m ″ accessib il i attraverso un U R L . O g ni ″ > R efer enc e a sua vol ta contiene, nel v e r s i o n = " 2 . 0 " / > caso di al l eg ati di tip o X M L , un :D e s c r i p t i on > col l eg am ento ad uno sch em a ch e ne definisce l a struttura ed una descriz ione del suo contenuto. M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 48/71 T r a s m is s io n e d i d o c u m e n ti s e c o n d o e b X M L H e r m e s M e s s a g e S e r v ic e H a n d l e r (H ermes MSH ) è un eb X ML sviluppat o dal C ent er f o r EC o mmerc e dell’ U nell’amb it o del pro g et t o P h oe n ix , c he ha lo sc o po di realiz z c o mmerc io elet t ro nic o b asat a sull’ut iliz z o dello st andard eb sist ema di messag g ist ic a niversit à di H o ng K o ng are un’inf rast rut t ura per il X ML. L’arc hit et t ura si divide in due part i: una MSH Servlet ed un MSH St ub . Il mo t ivo princ ipale di q uest a so luz io ne è leg at a alla presenz a di f irew all. Generalment e g li M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 49/71 MSH endpo int so no c o nnessi diret t ament e ad Int ernet all’est erno del f irew all az iendale. Invec e i dest inat ari dei messag g i eb X ML so no applic az io ni all’int erno del f irew all per o vvi mo t ivi di sic urez z a. Le f unz io nalit à princ ipali di MSH so no q uindi implement at e nella MSH Servlet , e l’applic az io ne può g est irle ist anz iando un MSH St ub e reg ist rando si mediant e una o ppo rt una c hiamat a di met o do di t ale ist anz a. Le inf o rmaz io ni per la reg ist raz io ne so no prelevat e dal C o llab o rat io n P ro t o c o l A g reement (C P A ) e so no inf o rmaz io ni nec essarie per st ab ilire l’endpo int (indiriz z o del part ner) a c ui inviare il messag g io e per indiriz z are i pac c het t i in ing resso al g iust o dest inat ario . U na servlet MSH può inf at t i suppo rt are numero si c lient ma o g nuno deve reg ist rarsi c o n un diverso c o nt est o af f inc hé i messag g i siano rec apit at i c o rret t ament e al g iust o dest inat ario . MSH St ub c o nvert e i parameri di reg ist raz io ne in un messag g io SO A P ed invia t ale c hiamat a alla MSH Servlet via H T T P . I messag g i eb X ML g enerat i dal c lient so no inviat i allo st esso mo do . MSH St ub in t al c aso , no n so lo pro vvede al pac k ag ing del messag g io , ma anc he a q ualc he pic c o la elab o raz io ne (es. ag g iung ere f irma dig it ale e c ript are) e ad ino lt rarlo all’MSH Servlet L’MSH Servlet pro vvede ad ult erio ri elab o raz io ni (es. la g est io ne di messag g ist ic a af f idab ile) ed ad ino lt rarlo al dest inat ario . M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 50 /71 In ric ez io ne esist o no q uat t ro mo dalit à di f unz io nament o . La più semplic e, prevede c he MSH Servlet elab o ri il messag g io e ne individui l’applic az io ne c lient di dest inaz io ne sulla b ase delle inf o rmaz io ni di reg ist raz io ne. MSH st ub po ssiede un po lling t hread c he perio dic ament e c o nt ro lla se vi so no messag g i e li invia all’applic az io ne mediant e un met o do c allb ac k . P er sviluppare un c lient eb X ML in Java, la c lasse relat iva deve implement are l’int erf ac c ia MessageListener e def inire i met o di getC l ientU R L( ) (c he in mo dalit à b ase rit o rna semplic ement e nu l l ) ed o nMessage( )c he viene invo c at a dal mec c anismo di c allb ac k q uando arriva un messag g io , pert ant o c o nt iene t ut t e le elab o raz io ni nec essarie. La reg ist raz io ne avviene ist anz iando un o g g et t o Request(…) in c ui viene passat o un rif eriment o all’applic az io ne (per il mec c anismo di c allb ac k ), il t ipo di pro t o c o llo sc elt o , l’end-po int dell’applic az io ne, ed il c o nt est o (c o mpo st o dal C P A I d , C on v e r s a tion I d , il t ipo di serviz io ric hiest o e la part ic o lare az io ne all’int erno di esso ) Q uest i paramet ri veng o no prelevat i dal c p a , pert ant o o c c o rre c o st ruire una c lasse C P A P arser c o n t ut t i i met o di per prelevare le inf o rmaz io ni suddet t e. L’invio avviene ist anz iando un o g g et t o Eb x mlMessag e, c he do po essere st at o o ppo rt unament o “ c o nf ez io nat o ” viene spedit o nel c aso più semplic e mediant e il met o do send ( ). I messag g i ric evut i da MSH veng o no mant enut i in delle appo sit e c art elle (R epo sit o ry ), ment re g li id deg li st essi veng o no inserit i in un dat ab ase my sq l insieme M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 51/71 ad alt re inf o rmaz io ni prelevat e dall’int est az io ne. N el f ile di c o nf ig uraz io ne msh_ c lient _ pro pert y .x ml è po ssib ile indic are il t empo di at t esa, espresso in sec o ndi, f ra un po lling e il suc c essivo . Le o peraz io ni di ric ez io ne so no invo c at e all’int erno di o nMessage( )e rig uardano l’est raz io ne del pay lo ad, la c o st ruz io ne di un o g g et t o D o c ument e q uindi l’elab o raz io ne del c o nt enut o . S e m p lic e C lie n t e b X M L a ) In s ta lla z io n e e c o n fig u r a z io n e d e i c o m p o n e n ti d i s u p p o r to A m e n o c h e 1. I n s t a l l a r C:\j 2 s 2. I n s e r i r e e n o n s p e c ific a to , s c e g lie re le o p z io n i d i in s ta lla z io n e d i d e fa u lt. J 2S E v 1.4.2_ 0 5 S D K o s u p e rio re ( h t t p ://j a v a .s u n .c o m /j 2s e /1.4.2/d o w n l o a d .h t m l ) s u p p o n ia m o d k 1 . 4 . 2 _ 0 5 \ p e r d e fa u lt su s u p p o n ia m o su n e l l a v a r i a b i l e d i a m b i e n t e P A T H i l p e r c o r s o d e l l a c a r t e l l a b i n d i J 2S D K . C :\j 2 s d k 1 . 4 . 2 _ 0 5 \b i n 3. A s s i c u r a r s i c h e e s i s t a l a v a r i a b i l e a m b i e n t e J A V A _ H O M E s e t t a t a a l p e r c o r s o d i i n s t a l l a z i o n e d i j 2s d k J A V A _ H O M E 4. I n s t a l l a C:\t o 5. S c a r i c a p ac k ag re = C :\j 2 s d k 1 . 4 . 2 _ 0 5 T o m c a t ( full install) v e r s i o n e m c a t 5 \ 5.0 .27 o s u p e rio re ( h t t p ://j a k a r t a .a p a c h e .o r g /s i t e /b i n i n d e x .c g i ). P e r re H e rm e s M e ssa g e S e rv ic e H a n d le r (M S H ) im p le m e n ta tio n , re le a s e e )( h t t p ://w w w .f r e e b x m l .o r g /m s h d o w n l o a d .h t m ). E c c o i f i l e c h e s e r v i r a n n o : b u i d o c c o n c o n d i s l i b l d \m s h. j \ f \m s h_ c l f \m s h_ p r t\her m es \ a r i en t_ p r o p er ti es . x m l o p er ti es . x m l _ . . . z i p \m s h. w a r 0 .9.3.0 o s u p e rio re , b re v ità ( all in o ne .z ip J a v a A P I ja v a d o c , g u id a d i s v ilu p p o e d in s ta lla z io n e v e d e re p u n to 6 v e d e r e p u n t o 10 In s ie m e d i c o m p o n e n ti A P I in fo rm a to ja r, v e d e r e f i g .7 M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 52/71 6. Co p i a r e i f i l e d i c o n f i g u r a z i o n e m s h_ c l i en t_ p r o p er ti es . x m l e m s h_ p r o p er ti es . x m l , n e l l a h o m e d e l l ’ u t e n t e ( e s . C:\D o c u m en ts S etti n g s \n o m eu ten te). 7. M o d i f i c a r e i s u d d e t t i f i l e c o m e d i s e g u i t o : ELEMENT m s h. p r o p m s h. p r o p m s h. p r o p A u then ti m s h. p r o p T o U r l R es m s h. p r o p m s h. p r o p er er er c a er o l er er ti es ti es ti es ti o n ti es v er ti es ti es . x m . x m . x m F i l . x m l /M l /M l /M e l /M S H /L o g /L o g P a th S H /Co n f i g /U R L S H /Co n f i g / V A LU E C:/to m c a t5/w eb a p p s /m s h/ http ://l o c a l ho s t:8 0 8 0 /m s h/ C:/to m c a t5/m s h_ p a s s w d S H /Co n f i g / e lim in a re l’in te ro e le m e n to . x m l /M S H /M a i l . x m l /M S H /D i g i ta l S i g n a tu r e m s h. p r o p er ti es . x m l /M S H /P er s i s ten t/D a ta b a s e a n d e lim in a re l’in te ro e le m e n to <D i g i ta l S i g n a tu r e> <T r u s ted A n c ho r > <K ey S to r e> <P a th>C:/to m c a t5</P a th> <F i l e>k ey s to r e</F i l e> <P a s s w o r d >eb x m l m s </P a s s w o </K ey S to r e> </T r u s ted A n c ho r > <A c k S i g n > <K ey S to r e> <P a th>C:/to m c a t5</P a th> <F i l e>k ey s to r e</F i l e> <A l g o r i thm >d s a -s ha 1</A l g o r i <A l i a s >eb x m l m s </A l i a s > <P a s s w o r d >eb x m l m s </P a s s w o r d </K ey S to r e> </A c k S i g n > </D i g i ta l S i g n a tu r e> <D a ta b a s e> <D r i v er >o r g . g j t. m m . m y s q l . D r i v er <U s er >m s h</U s er > <P a s s w o r d >m s h</P a s s w o r d > <U R L > j d b c :m y s q l ://l o c a l ho s t:3 3 0 6 </U R L > <T r a n s a c ti o n I s o l a ti o n L ev el > R E A D _ CO M M I T T E D </T r a n s a c ti o n I s o l a ti o n L ev el > <I n i ti a l Co n n ec ti o n s > 1 </I n i ti a l Co n n ec ti o n s > <M a x i m u m Co n n ec ti o n s > 2 M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a r d > thm > > </D r i v er > /m s h 53/71 m s h. p r o p er ti es . x m M es s a g eR ep o s i to r y m s h. p r o p er ti es . x m B a c k u p F i l e m s h. p r o p er ti es . x m A r c hi v eD i r ec to r y m s h. p r o p er ti es . x m T r u s ted R ep o s i to r y m s h. p r o p er ti es . x m O b j ec tS to r e m s h_ c l i en t_ p r o p er L o g /L o g P a th m s h_ c l i en t_ p r o p er Co n f i g /U R L m s h_ c l i en t_ p r o p er Co n f i g /U s er N a m e m s h_ c l i en t_ p r o p er Co n f i g /P a s s w o r d m s h_ c l i en t_ p r o p er M es s a g eL i s ten er /M l /M S H /P er s i s ten t/ </M <M a <M a </D a ta b C:/to m c a x i m u x i m u m x i m u m a s e> a t5/w m Co n n ec ti o n s > W a i t>20 0 0 0 </M a x i m u m W a i t> I d l e>6 0 0 0 0 </M a x i m u m I d l e> l /M S H /P er s i s ten t/ C:/to m c a t5/M S H B a c k u p . z i p l /M S H /P er s i s ten t/ C:/to m c a t5/m s h_ a r c hi v e l /M S H /M es s a g eL i s ten er / l /M S H /M es s a g eL i s ten er / C:/to m c a t5/w eb a p p s /m s h/tr u s ted R ep o s i to r y 1; C:/to m c a t5/w eb a p p s /m s h/tr u s ted R ep o s i to r y 2 C:/to m c a t5/w eb a p p s /m s h/o b j ec tS to r e ti es . x m l /R eq u es t/ l o g ti es . x m l /R eq u es t/ http ://l o c a l ho s t:8 0 8 0 /m s h/ ti es . x m l /R eq u es t/ m s h ti es . x m l /R eq u es t/ m s h ti es . x m l /R eq u es t/ es s a g eR ep o s i to r y C:/to m c a t5/w eb a p p s /m s h/c l i en t eb a p p s /m s h/m es s a g eR ep o s i to r y 8. G e n e r a r e i l f i l e d i a u t e n t i c a z i o n e d e l c l i e n t , m s h _ p a s s w d , p o r t a n d o s i i n u n p e r c o r s o d o v e c i s i a i l p a c k a g e m s h . j a r , e d i g i t a n d o j a v a m s h . j a r h k . h k u . (D ig ita re P a s w o r d 9. Co p i a r e i l f i l e m s h _ 10 . Co p i a r e i l f i l e m s h c e f i p a . w c i d . l e : s s w d a r , n p h o e n i x . c o m m o n . u t i l . P a s s T o o l a d d m s h _ p a s s w d , U s e r : m s h , P a s s w o r d : m s h ) n e l l a c a r t e l l a C:/to m c a t5 e l l a c a r t e l l a C:/to m c a t5/w eb a p p s . I f i l e .war ( W e b A p p l i c a t i o n a R c h i v e ) s o n o d is trib u z io n e d i c o m p o n e n ti s e rv le t s u g li a p p lic a tio n s e rv e r.Il c o re d i M S H e ` u n a s e rv le t c o n te n u ta in ta le file .A n c o m p o n e n t i .c l as s , u n f i l e .war s i p u ò c r e a r e c o n l ’ a p p l i c a t i v o j ar e s f o g l i a r e c o n wi n z i p . 11. M S H h a b i s o g n o d i u n d a t a b a s e p e r a r c h i v i a r e l o s t a t o d e l l a c o m u n i c a z i o n e e f o r n i r e s e r v i z i d i s u p p o r t o ( r e c u p e r o , m e s s a g g i ). I n s t a l l a r e M y S Q L d a t a b a s e s e r v e r & s t a n d a r d c l i e n t s , v . 4.0 .18 o s u p e r i o r e , s u p p o n i a m o p e r d e f a u l t s u s c a r i c a b i l e d a h t t p ://d e v .m y s q l .c o m /d o w n l o a d s /, è u t i l e i n s t a l l a r e a n c h e l ’ i n t e r f a c c i a g r a f i c a , M y S Q L G r a p h i c a l c l i e 12. A v v i a r e i l s e r v e r C :/mysql/w i n mysqla d mi n . e x e ( S i c o n s i g l i a d i p o r r e u n c o l l e g a m e n t o a q u e s t a “ e s e c u z io n e a u to m a tic a ” d i w in d o w s ) 13. Cr e a r e u n d a t a b a s e msh n e l s e g u e n t e m o d o . Co l l o c a r s i n e l p e r c o r s o c:/mysql/b i n , d i g i t a r e m y s ql ( e n t r a n d o a l p ro m p t d i m y s q l d ig ita re C R E A T E D A T A B A S E m s h ; 14. Cr e a r e u n u t e n t e m s h c o n p a s s w o r d m s h n e l s e g u e n t e m o d o . Cr e a r e u n f i l e d i t e s t o myscr i pt . sql d a l s e g u e n t e c a r t e l l a c:/mysql/b i n : M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a –c p u n m o d o s ta n d a rd p e r la a l o g a m e n t e a l f i l e .j ar p e r i a ffid a b ilità , tra c c ia b ilità d e i c:/mysql ( I l s o f t w a r e è n t s a d . e s . Co n t r o l Ce n t e r ). a p p lic a z io n e n e lla c a rte lla d i d e fa u lt c o m e r o o t ) e d c o n te n u to e s a lv a rlo n e lla 54/71 U S E M I N S E R ( H o s D el (' l o c F L U S H G R A N T I D E N T Y S Q L T i n t, U ete_ a l ho P R I CR E I F I E ; to s er p r i s t' V I L A T E D B u s er , P a v , A , ' m E G E S ,D R O Y ' m s s w o r l ter _ s h' , ; P ,S E L s h' ; d , S el ec t_ p r i v , I n s er t_ p r i v , U p d a te_ p r i v , p r i v , G r a n t_ p r i v ) V a l u es p a s s w o r d (' m s h' ) , ' Y ' , ' Y ' , ' Y ' , ' Y ' , ' Y ' , ' Y ' E CT ,I N S E R T ,U P D A T E ,D E L E T E ,A L T E R O N m s h. * T O ) ; m s h@ l o c a l ho s t 15. D a l p r o m p t m y s q l a v v i a t o a l p u n t o 13 d i g i t a r e \. myscr i pt . sql. S e n o n s o n o v i s u a l i z z a t i e r r o r i , è p o s i b i l e u s c i r e d a m y s q l ( m e d i a n t e \q) e d e n t r a r e c o m e u t e n t e msh n e l s e g u e n t e m o d o : mysql –u msh –p, q u i n d i d i g i t a r e l a p a s s w o r d msh , i n f i n e p r o v a r e a d i g i t a r e U S E m s h ; p e r c o n t r o l l a r e c h e e s i s t a i l d a t a b a s e m s h e s i a a c c e s i b i l e d a l l ’ u t e n t e m s h . I n a l t e r n a t i v a , i p u n t i 1 4 -1 5 p o s s o n o e s s e r e e s e g u i t i c o n l ’ i n t e r f a c c i a g r a f i c a . 16. A v v i a r e e t e r m i n a r e T o m c a t . Q u e s t a o p e r a z i o n e p e E s e g u i r e C :/t o mca t 5 /b i n /st a r t u p. b a t p e r C :/t o mca t 5 /b i n /sh u t d o w n . b a t p e r t e r m i n a r 17. R i m u o v e r e i l f i l e msh . w a r e d i l f i l e w e b a p p s \m s 18. R i a v v i a r e T o m c a t , c o n t r o l l a r e c h e l a c o n s o l e n o n s e g U R L h t t p://lo ca lh o st /msh /. E v e n t u a l i e r r o r 19. M o d i f i c a r e l a r i g a 30 1 d e l f i l e CP A .x m l , c o n t e n u t o i n c o o r d i n a t o r e , ( e s . h t t p ://l o c a l h o s t :80 80 /m s h /). r m e t t e l ’ i s t a l l a z i o n e a u t o m a t i c a d e l l a s e r v l e t n e l l a c a r t e l l a C:/to m c a t5/w eb a p p s /m s h. a v v ia re T o m c a t (c o n tro lla re c h e n e lla c o n s o lle n o n a p p a ia n o m e s s a g g i d i e rro re ) e e . h \W E B -I N F \l i b \s e r v l e t . j a r p o i c h é c a u s a c o n f l i t t o c o n l ’ o m o n i m o f i l e d i T o m c a t . n a li e rro ri e d a s ic u ra rs i c h e la s e rv le t m s h s ia a ttiv a a c c e d e n d o m e d ia n te u n b ro w s e r a lla i p o s s o n o e s s e r e i n d a g a t i e s a m i n a n d o i l f i l e C :/ t o m c a t 5 / w e b a p p s / m s h / m s h . l o g . s e r e n d o l ’ e n d -p o i n t d e l d e s t i n a t a r i o , o s s i a l ’ i n d i r i z z o d e l s e r v e r m s h c h e s e r v e i l b ) S v ilu p p o e d e s e c u z io n e M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 55/71 r e m s e t m a k e .b a t C L A S S P A T H = j a v a c j a v a -c l a s s p a t h -c l a s s p a t h l i b \m s h .j a r ;... * .j a v a l i b \m s h .j a r ;...; e b X M L C l i e n t I r if e r im e n ti c la s s p a th d i c u i s o p r a c o n te n g o n o l’ e le n c o d i f ile .ja r c o n te n u ti n e lla c a rte lla lib . La c a r t e l l a l i b c o n t i e n e msh.jar e t u t t i i f i l e .jar d e l l a c a r t e l l a lib d e l p a c c h e tto m s h . Fig.9Fil e n e c e s s a r i e r e l a t iv a c o m p o s iz io n e // eb X M L Cl i en t. j a v a ; i m p i m p i m p i m p i m p o r t o r t o r t o r t o r t j a v j a v o r g o r g o r g a . u a . i . j d . j d . j d ti l o . * o m . o m . o m . i m p i m p i m p i m p i m p o r t o r t o r t o r t o r t j a v j a v j a v hk . hk . a . n a x . a x . hk u hk u et. * a c ti x m l . . c ec . c ec . * ; ; * ; i n p u t. * ; o u tp u t. * ; ; v a ti s o a p i d . p i d . p o n . * ; . * ; ho en i x . m es s a g e. ha n d l er . * ; ho en i x . m es s a g e. p a c k a g i n g . * ; M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 56/71 p u b l i c c l a s s p r i v a t e p r i v a t e p r i v a t e eb X M L Cl i en t i m p l e m e n t s CP A P a r s er S tr i n g R eq u es t p u b l i c eb X c p a = n e c o n v er A p p l i c } M L Cl CP s a ti a ti o w i en A P a o n I n Co c p a ; t() r s er d = n tex { c o n v er s a ti o n I d ; m s hR eq ; { (" A z i en d a T " ," c p a . x m l " ) ; //p r el ev a i l c p a n e w S tr i n g (" T E S T " ) ; t a c = n e w A p p l i c a ti o n Co n tex t(c p a . g etCp a I d () , t r y { m s hR eq = n e w } c a t c h (E x c ep ti o n p u b l i c U R L r e t u r n } M es s a g eL i s ten er R eq u es t(a c , e) g etCl i en tU r l () n u l l ; {} c o n v er s a ti o n I d , c p a . g etS er v i c e() , c p a . g etA c ti o n () ) ; n e w U R L (c p a . g etE n d P o i n t() ) , t h i s , c p a . g etP r o to c o l () ) ; { p u b l i c v o i d o n M es s a g e(E b x m l M es s a g e m s g ) { S y s tem . o u t. p r i n tl n (" m es s a g g i o r i c ev u to " ) ; I ter a to r p l = m s i f (p l . ha s N ex t() P a y l o a A tta c hm en tP a S tr i n g S tr i n g t r y { D a i n I n S A D o g . g etP a y l o a d Co n ta i n er s () ; ) { d Co n ta i n er tm p = (P a y l o a d Co n ta i n er ) p l . n ex t() ; r t a tt = tm p . g etA tta c hm en tP a r t() ; c o n ten tI d = tm p . g etCo n ten tI d () ; m s g I D = m s g . g etM es s a g eI d () ; ta t p u X B c u H a n d l er n u m B y te tS tr ea m u i l d er b m en t d o c d a ta H = tm p = a tt. g etS c o n ten t = u i l d er = n = b u i l d er . g i z d a e w . b etD e() ta H S A u i l a ta H a ; . g etI X B u i l d (c o n n d l er () ; n p u tS tr ea m () ; d er () ; ten t) ; X M L O u tp u tter o u tp u tter = n e w X M L O u tp u tter (F o r m a t. g etP r etty F o r m a t() ) ; S y s tem . o u t. p r i n tl n (o u tp u tter . o u tp u tS tr i n g (d o c ) ) ; M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 57/71 o u tp u tter . o u tp u t(d o c , n e w } c a t c h } } } F i l eO u tp u tS tr ea m (" . /m s g /c a n ti n a . x m l " ) ) ; (E x c ep ti o n e) { e. p r i n tS ta c k T r a c e() ; p u b l i c v o i d i n v i a (Ca n ti n a c a n ti n a ) t h r o w s E x c ep ti o n { D o c u m en t d o c 1 = n e w D o c u m en t(c a n ti n a . g etE l em en t() ) ; S y s tem . o u t. p r i n t(" I n v i o d el m es s a g g i o . . . " ) ; X M L O u tp u tter o u tp u tter = n e w X M L O u tp u tter (F o r m a t. g etP r etty F o r m a t() ) ; S tr i n g s tr = o u tp u tter . o u tp u tS tr i n g (d o c 1) ; b y t e [ ] d o c B y te = s tr . g etB y tes () ; A tta c hm en tD a ta S o u r c e a d s D a ta H a n d l er d a ta H a n d l er = n e w E b x m l M es s a g e m es s a g e = n e w M es hea hea hea hea hea hea hea s a g d er d er d er d er d er d er d er eH . a . a . s . s . s . s . s S tr i n g ea d er hea d er d d F r o m P a r ty I d d d T o P a r ty I d (c etCp a I d (c p a . g etCo n v er s a ti o etS er v i c e(c p a etA c ti o n (c p a . etT i m es ta m p (U m es s a g eI d A tta c hm en tD a ta S o u r c e(d o c B y te, " tex t/x m l " ) ; = n e w D a ta H a n d l er (a d s ) ; E b x m l M es s a g e() ; = m es s a g e. a d d M es (c p a . g etP a r ty N a m p a . g etD es tN a m e() etCp a I d () ) ; n I d (c o n v er s a ti o n . g etS er v i c e() ) ; g etA c ti o n () ) ; ti l i ty . to U T CS tr i s a g eH ea d er () ; e() , " T es t" ) ; , " T es t" ) ; I d ) ; n g (n e w D a te() ) ) ; D a te() , m es s a g e) ; = U ti l i ty . g en er a teM es s a g eI d (n e w hea d er . s etM es s a g eI d (m es s a g eI d ) ; m es s a g e. a d d P a y l o a d Co n ta i n er (d a ta H a n d l er , " c o n ten tI d " , " d es c r i p ti o n " ) ; } m es s a g e. s a v eCha n g es () ; m s hR eq . s en d (m es s a g e) ; p u b l i c s t a t i c v o i d m a i n (S tr i n g [ ] a r g s ) t V i n o [ ] v i n i = { n e w V i n o ( " Chi a n ti n e n e M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I h r o Cl w G w P ng e g w s E x c ep ti o a s s i c o " , r eg o r i a n Ca l r o d u tto r e(" ne r ia d e ll’ I nf or n { en d a r (19 9 8 ,10 ,23 ) . g etT i m e() , G i o r g i o " ," R o s s i " ) , mazione - U nive r s it à d i P is a 58/71 n e w V i n o ( n e w P r ez z o (14 . 50 ) ) , " L a m b r u s c o F r i z z a n te" , n e w G r eg o r i a n Ca l en d a r (20 0 0 ,0 3 ,15) . g etT i m e() , n e w P r o d u tto r e(" G i a n n i " ," F r i z z i " ) , n e w P r ez z o (20 . 11) ) }; eb X M L Cl i en t s = n e w eb X M L Cl i en t() ; s . i n v i a (n e w Ca n ti n a (" R o s s o " , v i n i ) ) ; //////////////////////////////////////////////////////////////////////////////////// } } // CP A P a r s er . j a v a i m p o r t i m p o r t j a v a . i o . * ; j a v a . u ti l . * ; i m p o r t i m p o r t i m p o r t o r g . j d o m . * ; o r g . j d o m . i n p u t. * ; o r g . j d o m . o u tp u t. * ; p u b l i c /* p r i p r i 2_ 0 . x s d p r i p r i /* S tr S tr S tr S tr S tr S tr S tr N a m c l a Cl a v a t v a t " ; v a t v a t V a r i n g i n g i n g i n g i n g i n g i n g es p s s CP s s e S e s t a e s t a s t a t S A X B i a b i l i c p a i d s er v i a c ti o p r o to en d p o p a r ty d es tN a c e eb e e A P a r s A X D r t i c f t i c f er { i v er d i d ef a u l t * / i n a l S tr i n g D E F A U L T _ S A X _ D R I V E R _ CL A S S = " o r g . a p a c he. x er c es . p a r s er s . S A X P a r s er " ; i n a l S tr i n g D E F A U L T _ N A M E S P A CE = " http ://w w w . o a s i s -o p en . o r g /c o m m i ttees /eb x m l -c p p a /s c hem a /c p p -c p a - i c f i n a l S tr i n g D E F A U L T _ A CT I O N u i l d er b u i l d er ; p er l a c r ea z i o n e d el c o n tes to ; c e; n ; c o l ; i n t; N a m e; a m e; ; p u b l i c CP A P a r s er () { /* i n i z i a l i z z a z i o n c p a i d = n e w S tr i n g s er v i c e = n e w S tr i M.G.C.A.Cimino,”Applicazioni Java-e e () n g b X = " T es t" ;//" S en d T r a c e M es s a g e" ; * / v a r i a b i l i * / ; () ; ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 59/71 } a c ti o p r o to en d p o p a r ty d es tN n c o i n N a a m = n e w l = n t = n m e = e = n S tr i n g e w S tr i e w S tr i n e w S tr e w S tr i (D n g n g i n n g E F A U L T _ A CT I O N ) ; () ; () ; g () ; () ; p u b l i c CP /* i n c p a i d s er v i a c ti o p r o to en d p o p a r ty d es tN } A P a r s er i z i a l i z = n e w c e = n e n = n e w c o l = n i n t = n N a m e = a m e = n (S tr i n g n a m e) z a z i o n e v a r i a S tr i n g () ; w S tr i n g () ; S tr i n g (D E F A U e w S tr i n g () ; e w S tr i n g () ; n e w S tr i n g (n a e w S tr i n g () ; p u b l i c CP /* i n c p a i d s er v i a c ti o p r o to en d p o p a r ty d es tN A P a r s er i z i a l i z = n e w c e = n e n = n e w c o l = n i n t = n N a m e = a m e = n (S tr i n g n a m e, z a z i o n e v a r i a b S tr i n g () ; w S tr i n g () ; S tr i n g (D E F A U L e w S tr i n g () ; e w S tr i n g () ; n e w S tr i n g (n a m e w S tr i n g () ; /* s c a n s i o n p er i l p b u i l d er = n eb = N a m es p } E l em en t n t r y { D o c u m n o d e c p a i d t h i s . } c a t c h (E x c e. p r i } e d el d o r el i ev o e w S A X B u a c e. g etN { b i l i * / L T _ A CT I O N ) ; m e) ; S tr i n g c p a ) { i l i * / T _ A CT I O N ) ; e) ; c u m en to c o d el l e i n f o i l d er (D E F A a m es p a c e(D n ten r m a z U L T _ E F A U en i o S A L T te n i X _ D _ N A i l n ec R I V M E S CP es E R P A A s a r i e. * / _ CL A S S ) ; CE ) ; o d e; en t = d o = n s c a n d o c . o d (n c = b u i l d er . b u i l d (n e w F i l e(c p a ) ) ; g etR o o tE l em en t() ; e. g etA ttr i b u teV a l u e(" c p a i d " ,eb ) ; o d e) ; ep ti o n e) { n tS ta c k T r a c e() ; /* * M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 60 /71 * * * * * * * Q u es to m eto c o s tr u tto r d a l CP A . I l m eto d o - tr u e : - f a l s e : * d o d ev e es s er e c hi a m a to n el c a s o i n c u i n o n s i a s ta to u s a to i l e CP A P a r s er (S tr i n g n a m e, S tr i n g c p a ) p er p r el ev a r e l e i n f o r m a z i o n i r i to r s e tu s e q u n o n è o d a l n a u n tto è a l c he s ta ta l a f u n b o o l ea a n d a to s tr i n g s etta z i o n e * / p u b l i c b o o l e a n S c a n CP A (S tr i n g i f (p a r ty N a m e. l en g th() == 0 r e t u r n f a l s e ; b u i l d er = n e w S A X B u i l d er (D eb = N a m es p a c e. g etN a m es p a c E l em en t n o d e; t r y { D o c u m en t d o c = b u i l d er n o d e = d o c . g etR o o tE l em c p a i d = n o d e. g etA ttr i b t h i s . s c a n (n o d e) ; } c a t c h (E x c ep ti o n e) { e. p r i n tS ta c k T r a c e() ; } } i f ((p r o to c o l . l en g th() r e t u r n f a l s e ; r e t u r n t r u e ; p r i v a t e b o o l e a n i f (p a r ty r e t u f o r (I ter E l em t h i s i f (" n u o n è Q u es a r ty f i n s ta ta N a m e. ta tr o v a ta o s e v a r i a b i l e p a r ty N a m e v a r i a b i l e v a s etta ta d a l c o s tr u tto r e e(S tr i n g n a m e) . c p a ) { ) E F A U L T _ S A X _ D R I V E R _ CL A S S ) ; e(D E F A U L T _ N A M E S P A CE ) ; . b u i l d (n e w F i l e(c p a ) ) ; en t() ; u teV a l u e(" c p a i d " ,eb ) ; == 0 ) s c a n (E l em en t N a m e. l en g th() r n f a l s e ; a to r i =n o d e. g en t x = (E l em . s c a n (x ) ; S er v i c e" . eq u a n o : a b a n o ta . S etP | | (c p a i d . l en g th() == 0 ) | | (s er v i c e. l en g th() == 0 ) | | (en d p o i n t. l en g th() == 0 ) ) n o d e) { == 0 ) etChi l d r en () . i ter a to r () ; i . ha s N ex t() ;) { en t) i . n ex t() ; l s (x . g etN a m e() ) ) i f (p a r ty N a m e. eq u a l s (((E l em en t) (x . g etP a r en t() . s er v i c e = x . g etT ex t() e l s e d es tN a m e = ((E l em en t) (x . g etP a r en t() . g etP a r en t() . g etP a r en i f (" T r a n s p o r tP r o to c o l " . eq u a l s " T r a n s p o r tS en d er " . eq u a l s (((E l em en t) x . g etP a r en p r o to c o l = x . g etT ex t() ; i f (" E n d p o i n t" . eq u a l s (x . g etN a m M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng g etP a r en t() . g etP a r en t() ) ) . g etA ttr i b u teV a l u e(" p a r ty N a m e" ,eb ) ) ) ; t() ) ) . g etA ttr i b u teV a l u e(" p a r ty N a m e" ,eb ) ; (x . g etN a m e() ) & & t() ) . g etN a m e() ) ) e() ) ) { e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 61/71 } p u b l i c eb } } } r e t u r n en d p o i n t = x . g etA ttr i b u teV a l u e(" u r i " ,eb ) ; i f (!en d p o i n t. en d s W i th(" /" ) ) en d p o i n t + = " /" ; t r u e ; v o i d s etN a m eS p a c e(S tr i n g n a m e) { = N a m es p a c e. g etN a m es p a c e(n a m e) ; p u b l i c S tr i n g g etN a m eS p a c e(S tr i n g r e t u r n eb . to S tr i n g () ; } n a m e) { p u b l i c S tr i n g g etCp a I d () { r e t u r n c p a i d ; } p u b l i c S tr i n g g etS er v i c e() { r e t u r n s er v i c e; } p u b l i c S tr i n g g etA c ti o n () { r e t u r n a c ti o n ; } p u b l i c S tr i n g g etP r o to c o l () { r e t u r n p r o to c o l ; } p u b l i c S tr i n g g etE n d P o i n t() { r e t u r n en d p o i n t; } p u b l i c v o i d s etP a r ty N a m e(S tr i n g p a r ty N a m e = n a m e; } n a m e) { p u b l i c S tr i n g g etP a r ty N a m e() { r e t u r n p a r ty N a m e; } p u b l i c S tr i n g g etD es tN a m e() { r e t u r n p a r ty N a m e; M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 62/71 } } c ) c p a .x m l <? x m l v er s i o n =" 1. 0 " <!-- N <Co l l a x m x m x m tp tp el b o l n l n l n :c :v <!-- L o l ' el r a ti s :tp s :d s s :x l p a i d er s i s ta - p r - a g - s i em o n =" =" i n =" o n en c o d i n g =" U T F -8 " ? > en to d i r o o P r o to c o l A g r http ://w w w . http ://w w w . k =" http ://w CP A _ 20 0 4 " =" 2. 0 a " > t è eem o a s w 3 . w w . n en i s o r w 3 ec es s a r i t -o p en . o r g /20 0 0 /0 . o r g /19 9 tu s p u ò a s s u m er e tr e v a o p o s ed = i l c o r r en te CP r eed = i l CP A è s ta to a g n ed = i l CP A è s ta to f A o d ef i n i r e i n a m es p a c e e l ' i d d el CP A --> g /c o m m i ttees /eb x m l -c p p a /s c hem a /c p p -c p a -2_ 0 . x s d " 9 /x m l d s i g # " 9 /x l i n k " l o r i è u n a p r o p o s ta m a d ev e a n c o r a es s er e c o n c o r d a to c c o r d a to m a n o n a n c o r a f i r m a to i r m a to i n d a ta <S ta r t> ed è v a l i d o f i n o a l l a d a ta --> <tp :S ta tu s tp :v a l u e=" s i g n ed " /> <tp :S ta r t>20 0 4 -0 4 -0 4 T 18 :3 9 :0 9 </tp :S ta r t> <tp :E n d >20 0 6 -0 4 -0 4 T 18 :4 0 :0 0 </tp :E n d > <!-- Co n P er n ec d i --> <tp :Co n v tp :i tp :c <!-- N c E p --> <tp :P a tp tp tp <!-- E v er s a ti o n Co n m ette d i d ef es s a r i a u n a c o n v er s a z i o n s tr i n i r i n i c a i n ts p r e i l n eg o z i a z o n tem p o u ò a p p u m er o i o n e d r a n ee a r i r e a l p i ù u m a s s i m o d i c o n el CP A (i n v o c a (c o n c u r r en tCo n n a v er ti o v er v o s a n L s a l ta z i o i m i ti o . n i d o p o t) e i l n s ) <E n d > d el l e q u a l i è n u m er o m a s s i m o er s a ti o n Co n s tr a i n ts n v o c a ti o n L i m i t=" 10 0 " o n c u r r en tCo n v er s a ti o n s =" 4 " /> el CP A v a n n o d ef i n i ti d u e c a m p i P a r ty I n f o , u n o p er o g n i u n a d el l e d u e p a r ti he ha n n o s ti p u l a to q u es to a c c o r d o . ' p o s s i b i l e d ef i n i r e u n n o m e e g l i i d d el Cha n n el e d el P a c k a g e d i d ef a u l t d ef i n i ti i ù a v a n ti n el c o d i c e. r ty I n f o :p a r ty N :d ef a u l :d ef a u l ' n ec es a m tM tM s a e=" A z s hCha s hP a c r i o d i en d a n n el I k a g eI ef i n i T " d =" T r a c eCha n n el " d =" T r a c eP a c k a g i n g " > r e l ' i d d el l ' a z i en d a c he p u ò es s er e i n v a r i f o r m a ti . M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 63/71 --> N el n o s tr o <tp :P a 3 4 </tp :P <!-- <tp :P <!-- E ' p p i ù --> <tp :P x x r ty I 8 257 a r ty a r ty d c a s o 9 s i è u s a ta l a c o d i f i c a E A N /U CC. tp :ty p e=" u r n :o a s i s :n a m es :tc :eb x m l -c p p a :p a r ty i d -ty p e:ea n _ u c c " > I d > I d >u r n :i c a n n :ex a m p l e. c o m </tp :P a r ty I d > --> o s s i b i l e d ef i n i r e u n d etta g l i a te r i g u a r d o l i n k a d u n d o c u m en to a l l ' a z i en d a . es ter n o c he f o r n i s c e i n f o r m a z i o n i a r ty R ef l i n k :ty p e=" s i m p l e" l i n k :hr ef =" http ://w w w . a z i en d a T . c o m /i n f o . x m l " /> <!-- B i s o g n a s c o l l a b o r a --> <tp :Co l l a b <!-- I n P r o c es l e s p ec i f s u o u s o s --> <tp :P r tp tp x l x l <!-- N el n o s tr I d etta g l n el n o s tr --> <tp :R o tp x l x l o p ec i f i c a r e i l r u o l o z i o n e e i d o c u m en ti i a s s u n to d a l l ' a z i en d a c he è a u to r i z z a to a d i n q u es ti o n e a l l ' i n ter n o i n v i a r e ed a r i c ev er e. o r s S i c i a ti p ec he r i m o c :v :n i n i n es s S p ec i er s i o n =" a m e=" S en k :ty p e=" k :hr ef =" o c a s o i l r u o l o d ef i n i to p r en d e i l n o m e d i T r a c eA c to r . d i q u es to r u o l o v a n n o s p ec i f i c a ti n el B u s i n es s P r o c es s p r o to ti p o . d el l a o n R o l e> i f i c a ti o n v a i n s er i to i l c o l l eg a m en to a d u n f i l e X M L c he d ef i n i s c e d el B u s i n es s P r o c es s . N el N o s tr o es em p i o n o n è u ti l i z z a to e p er i l a n d a a l l a d o c u m en ta z i o n e f o r n i ta d a O A S I S e d a U N CE F A CT (w w w . eb x m l . o r g ) f i c a 2. 0 a d T r a s i m p http ti o n " c ea b i l i ty " l e" ://w w w . a z i en d a T . c o m /p r o c es s es /T r a c eB P S . x m l " /> m a n o n è n ec es s a r i o l e :n a m e=" T r a c eA c to r " i n k :ty p e=" s i m p l e" i n k :hr ef =" http ://w w w . a z i en d a T . c o m /p r o c es s es /T r a c eB P S . x m l # T r a c eA c to r I d " /> <!-- I l S er v i c eB i n d i n g d ef a ttr a v er s o i l D el i v er --> <tp :S er v i c eB i n d i n g <!-- I l c a m p o S er v i c e è m o i n f o r m a z i o n i d i r o u ti r i c ev u ti a l c o r r etto I l S er v i c e v i en e d ef i --> M.G.C.A.Cimino,”Applicazioni Java-e i n i s c e i l tr a f f i c o d i m es s a g g i c he p o s s o n o es s er e i n v i a ti o r i c ev u ti y Cha n n el s c el to , l a c u i d ef i n i z i o n e è p i ù a v a n ti n el c o d i c e. > l to i m p o r n g p er l ' en tr y p o i n i to i n d ta n te eb X M L n t d el etta g l n el n o s tr M es s a g e H l ' a p p l i c a i o n el B P o p r o to ti p o , i n f a tti es s o f o r n i s c e l e ea d er . S er v e p er i n d i r i z z a r e i m es s a g g i z i o n e. . b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 64/71 <tp :S er v i c e tp :ty p e=" a n y U R I " >u r n :T r a c eS er v i c e</tp :S er v i c e> <!-- E ' l ' a i n f T r a a l c E ' --> p o s s tto r o r m a c eD o u n e p o s s <!-- E ' p o p r o to r i m a n N el n n el c n o n v --> i b e z i c u i n i b i l e d r es p o o n i p m en tP f o r m a i l e a ef i n s a er a c k z i o v er n i b i l a a g n i e <tp :Ca n S en d > <tp :T hi s P tp :i d tp :a c tp :p a s s i b i l c o l l i d a a l l o s tr o o d i c e i en e d e d i a p r s o a r e l e tr e è s u p i ù a r =" ti c k d ef i n i r e s i c u r ez z d o c u m en ta o to ti p o l r g en te e n o i u ti l i <tp :B u tp tp tp tp tp tp tp tp i d p u ò a c c l ' i c d i ty A z o n a g <!-- Q u es te i n f o r m a z i o n i c o l d ef i n i te n el d o c u m en to --> <tp :A c ti tp :b tp :b tp :r <!-- Cha n n eI d c o n ti en e l ' i d d o c u m en to . Q u es to c a m p --> <tp :Cha </tp :T hi s P a </tp :Ca n S en d > M.G.C.A.Cimino,”Applicazioni Java-e b u m en ti n v i a r e b i l i tà d el c a ten u ti n c a m p o A c ti o i en d a =" S en eI d =" l e a . z i o e i n o n z z a s i n :i s :i s :i s :i s :i s :i s :ti :ti o c i i a i d o n u n B i n T _ S T d T r T r a c n ec es P er i n e f o n f o r m v en g to . s a n f r n a z o n es s T r a n s N o n R ep u d N o n R ep u d Co n f i d en A u then ti T a m p er P r A u tho r i z m eT o A c k n m eT o P er f c he u n u d el l m p o d el Ca n è p n i c a f P a c m es S en o o s s d i l i k a g s a g d . i b o c er i n g i o Co n tex a r y Co l i n es s T u es tO r e i n v i a r e. N el n o s tr o c a s o , en to c he c o n ti en e l e n ec es s a r i e d ef i n i to S O A P . p i ù s o tto c he d ef i n i s c e d i n g D " a c e D o c u m en t A c ti o n " eD o c u m en tP a c k a g e" > r i e o r m a i ta i o n i o p r i n f o z i o n n el s u l el ev i r m a z p i s i to l a s a te ù i o n d w w i c u d a i p er etta g l w . eb x m r ez z a q u es to l ' i a l . s o i m p l te s o r g . n o i CP A , em en ta z i o n e d ei q u es to c a m p o s i u n s er i te m a n u a l m en te p er ta n to q u es to c a m p o a c ti o n Cha r a c ter i s ti c s i a ti o n R eq u i r ed =" tr u e" i a ti o n R ec ei p tR eq u i r ed =" tr u e" ti a l =" tr a n s i en t" c a ted =" p er s i s ten t" o o f =" p er s i s ten t" a ti o n R eq u i r ed =" tr u e" o w l ed g eR ec ei p t=" P T 2H " o r m =" P 1D " /> l eg a n o q u es to d o c u m en to d i s p ec i f i c a d el B P . o n i n u s eq i l u m a . g o c o n l a o l e c o l l a b o r a z i o n i b i n a r i e t l a b o r a ti o n =" S en d T r a c e D o c u m en t" r a n s a c ti o n A c ti v i ty =" S en d T r a c e D o c u m en t" R es p o n s eA c ti o n =" S en d T r a c e D o c u m en t A c ti o n " /> d el c a n a l e d i tr a s m i s s i o n e u ti l i z z a to è d ef i n i to p i ù i n b a s s o . p er l ' i n v i o d el n n el I d >T r a c eCha n n el </tp :Cha n n el I d > r ty A c ti o n B i n d i n g > X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 65/71 </tp :S er v i c eB i n d i n g > </tp :Co l l a b o r a ti o n R o l e> <!-- I n q u es to c a m p o è i n s er i te n ei m es s --> <tp :Cer ti f i c a te tp <d s :K ey I n f o > A 6 V Cs f d 9 T N j 12g h3 8 9 6 R d s f 8 7 G 7 9 E 7 0 j 9 9 8 F D 5D w i T u 6 6 F H Y hm 6 u i I 0 0 O I m n </d s :K ey I n f o > </tp :Cer ti f i c a te> <!-- I l c a m p o D e d ef i n i s c --> <tp :D el i v er tp :c ha n tp :tr a n tp :d o c E n ec es s a r i o a g g i S O A P . d ef i n i r e l e i n f o r m a z i o n i s u l <!-- Q u es to c a m p A n c he p er q N el n o s tr o --> <tp :M es s tp :s tp :a tp :a tp :d tp :a </tp :D el i v er c he a n d r a n n o :c er tI d =" A z i en d a T S i g n i n g Cer t" > N 120 8 V G 5h6 W 1T l j 4 23 w 4 6 7 T v c 4 Cy hn c j u s 0 7 0 j etr N 5k hF 2H D 5g 7 9 G 4 5e6 B D i 7 J 8 6 M 8 V 3 Y M O 8 H E f G F 0 N g j V B 0 50 9 R j 7 E T 8 2f 58 9 0 9 j 9 j 0 9 7 5g h8 7 J 6 H 7 n 7 5R D F k 3 6 k k i 8 k F 8 3 v 56 0 5B j j hJ Y 9 H 7 T g f b 7 R E c 7 J 5J M 0 9 2R J T G F U Y 4 f 5e6 S F V 55f 6 9 8 B 0 Y B V 8 4 7 4 3 G 8 9 G F g 9 3 6 S s 4 H M B u R 8 R H D F 5X 9 8 m k 0 CW H 4 G 4 127 r g f d D r y b H n h9 G 7 6 8 K 8 9 8 el i v er y Cha n n el c o l l eg a u n el em en to T r a n s p o r t a d e l e c a r a tter i s ti c ti c he d i c o m u n i c a z i o n e y Cha n el I s p o r x c ha c eti f i c a to 0 V j H F 9 56 4 l u H f 56 9 G 6 u n J H G V F D 9 7 5V 5f 2U 54 7 6 8 6 6 D r 7 R 0 5K 56 H Y 7 f f 8 T 6 57 5n 7 j y t9 P el em en to l 7 G 524 H 8 7 E D U 8 H 7 k j L R V C0 H 9 G 7 b g o 9 D o c E x c ha n g e n n el d =" T r a c eCha n n el " tI d =" T r a c eT r a n s p o r t" n g eI d =" T r a c eD o c E x c ha n g e" > o d es c r i v e a l c u n e i n f o r m a z i o n i r i g u a r d a n ti i m es s a g g i u es to r i r i m a n d a a l l a d o c u m en ta z i o n e d i eb x m l . p r o to ti p o n o n v en g o n o tr a tta te. a g i n g Cha r a c ter y n c R ep l y M o d e=" c k R eq u es ted =" a c k S i g n a tu r eR eq u p l i c a teE l i m i n c to r =" u r n :o a s i y Cha n n el > i s ti c s m s hS i g n a l s l w a y s " u es ted =" a l a ti o n =" a l w s :n a m es :tc A c k n o w l ed g em en t. O n l y " w a y s " a y s " :eb x m l -m s g :a c to r :n ex tM S H " /> <!-- I l c a m p o T r a n p o r t d ef i n i s c e i p r o to c o l l i d i tr a s p o r to <tp :T r a n s p o r t tp :tr a n s p o r tI d =" T r a c eT r a n s p o r t" > <!-- I l c a m p o T r a n s p o r tS en d a ttr a v er s o i l p r o to c o l --> <tp :T r a n s p o r tS en d er <tp :T r a n s p o r tP r <tp :T r a n s p o r tCl M.G.C.A.Cimino,”Applicazioni Java-e b d i er , s e p r es en te, d ef i n i s c e l a l o s p ec i f i c a to . e d i c a p a c i ta s i c u r ez z a d i u ti l i z z a ti . --> i n v i a r e m es s a g g i > o to c o l tp :v er s i o n =" 1. 1" >H T T P </tp :T r a n s p o r tP r o to c o l > i en tS ec u r i ty > X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 66/71 <tp :T r a S S L </tp :T r <tp :Cl i </tp :T r a n s p </tp :T r a n s p o r tS </tp :T r a n s p o r t> <!-- I l c a m p r o p r i --> <tp :D o c <tp <!-- Q u i è a n en o r en tp :v er s i o n =" 3 . 0 " > s p o r tS ec u r i ty P r o to c o l > tCer ti f i c a teR ef tp :c er tI d =" A z i en d a T S i g n i n g Cer t" /> tCl i en tS ec u r i ty > d er > p o D o c E x c ha n g e f o r n i s c e i n f o r m a z i o n i età d el M es s a g e S er v i c e. u ti l i p er l o s c a m b i o d ei m es s a g g i e l e E x c ha n g e tp :d o c E x c ha n g eI d =" T r a c eD o c E x c ha n g e" > :eb X M L S en d er B i n d i n g tp :v er s i o n =" 2. 0 " > <!-- I n q u es to c a m p o m es s a g g i o e l ' i n --> <tp :R el i a <tp :R <tp :R <tp :M </tp :R el i <!-- Q u i n s p o r tS ec u r i ty P r o to c o l è p o s s i b i l e d ef i n i r e i l n u m er o d i ten ta ti v i p er l ' i n v i o d i u n ter v a l l o tr a u n ten ta ti v o e l ' a l tr o (P T 2H = P er i o d o d i 2 o r e) b l eM es s a g i n g etr i es >5</tp etr y I n ter v a l es s a g eO r d er S a b l eM es s a g i n > :R etr i es > >P T 2H </tp :R etr y I n ter v a l > em a n ti c s >G u a r a n teed </tp :M es s a g eO r d er S em a n ti c s > g > p o s s i b i l e i n s er i r e i n f o r <tp :S en d er N o n R ep u d i a ti o <tp :N o n R ep u d i a ti o n P http ://w w w . w 3 . o </tp :N o n R ep u d i a ti o n <tp :H a s hF u n c ti o n > http ://w w w . w 3 . o </tp :H a s hF u n c ti o n > <tp :S i g n a tu r eA l g o r i http ://w w w . w 3 . o </tp :S i g n a tu r eA l g o r <tp :S i g n i n g Cer ti f i c </tp :S en d er N o n R ep u d i a ti m a z i o n > r o to c r g /20 P r o to n i s u i p r o to c o l l i p er l a f i r m a d i g i ta l e. --> o l > 0 0 /0 9 /x m l d s i g # c o l > r g /20 0 0 /0 9 /x m l d s i g # s ha 1 thm > r g /20 0 0 /0 9 /x m l d s i g # d s a -s ha 1 i thm > a teR ef tp :c er tI d =" a z i en d a T S i g n i n g Cer t" /> o n > è p o s s i b i l e i n s er i r e i n f o r m a z i o n i <tp :S en d er D i g i ta l E n v el o p e> <tp :D i g i ta l E n v el o p eP r o to c o S /M I M E </tp :D i g i ta l E n v el o p eP r o to c <tp :E n c r y p ti o n A l g o r i thm >D E <tp :E n c r y p ti o n S ec u r i ty D eta tp :s ec u r i ty I d =" a z i en d a </tp :S en d er D i g i ta l E n v el o p e> M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d s u i l p r o to c o l l i p er i l c r i tta g g i o d ei m es s a g g i . --> tp :v er s i o n =" 2. 0 " > o l > S -CB C</tp :E n c r y p ti o n A l g o r i thm > i l s R ef T S i g n i n g Cer t" /> i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 67/71 </tp :eb X M L S en d er B i n d i n g > </tp :D o c E x c ha n g e> </tp :P a r ty I n f o > <tp :P a r ty I n f o tp :p a r ty N a m e=" Co o r d i n a to r " tp :d ef a u l tM s hCha n n el I d =" T r a c eCha tp :d ef a u l tM s hP a c k a g eI d =" T r a c eP a c <tp :P a r ty I d tp :ty p e=" u r n :o a s i s :n 3 0 4 7 26 4 </tp :P a r ty I d > <tp :P a r ty R ef x l i n k :ty p e=" s i m p l e" x l i n k :hr ef =" http ://w w w . c o o r d <tp :Co l l a b o r a ti o n R o l e> <tp :P r o c es s S p ec i f i c a ti o n tp :v er s i o n =" 2. 0 a " tp :n a m e=" R ec ei v eT r a c ea b i x l i n k :ty p e=" s i m p l e" x l i n k :hr ef =" http ://w w w . c <tp :R o l e tp :n a m e=" Co o r d i n a to r " x l i n k :ty p e=" s i m p l e" x l i n k :hr ef =" http ://w w w . c <tp :S er v i c eB i n d i n g > <tp :S er v i c e tp :ty p e=" a n y n n el " k a g i n g " > a m es :tc :eb x m l -c p p a :p a r ty i d -ty p e:ea n _ u c c " > i n a to r e. c o m /i n f o . x m l " /> l i ty " o o r d i n a to r e. c o m /p r o c es s es /T r a c eB P S . x m l " /> o o r d i n a to r e. c o m /p r o c es s es /T r a c eB P S . x m l # Co o r d i n a to r I d " /> U R I " >u r n :T r a c eS er v i c e</tp :S er v i c e> <!-- Q u es to c a m p o è s i m i l e a l Ca n S en d u ti l i z z a to n el P a r ty I d d el l ' a tto r e r es p o n s a b i l e m a s er v e p er d ef i n i r e i m es s a g g i c he è p o s s i b i l e r i c ev er e. --> <tp :Ca n R ec ei v e> <tp :T hi s P a r ty A c ti o n B i n d i n g tp :i d =" Co o r d i n a o tr _ R T D " tp :a c ti o n =" R ec ei v e T r a c e D o c u m en t A c ti o n " tp :p a c k a g eI d =" T r a c eD o c u m en tP a c k a g e" > <tp :B u s i n es s T r a n s a c ti o n Cha r a c ter i s ti c s tp :i s N o n R ep u d i a ti o n R eq u i r ed =" tr u e" tp :i s N o n R ep u d i a ti o n R ec ei p tR eq u i r ed =" tr u e" tp :i s Co n f i d en ti a l =" tr a n s i en t" tp :i s A u then ti c a ted =" p er s i s ten t" tp :i s T a m p er P r o o f =" p er s i s ten t" tp :i s A u tho r i z a ti o n R eq u i r ed =" tr u e" tp :ti m eT o A c k n o w l ed g eR ec ei p t=" P T 2H " tp :ti m eT o P er f o r m =" P 1D " /> <tp :A c ti o n Co n tex t tp :b i n a r y Co l l a b o r a ti o n =" R ec ei v e T r a c e D o c u m en t" M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 68/71 tp :b u s i n es s T r a n s a c ti o n A c ti v i ty =" R ec ei v e tp :r eq u es tO r R es p o n s eA c ti o n =" R ec ei v e T r a c <tp :Cha n n el I d >T r a c eCha n n el </tp :Cha n n el I d > </tp :T hi s P a r ty A c ti o n B i n d i n g > </tp :Ca n R ec ei v e> </tp :S er v i c eB i n d i n g > </tp :Co l l a b o r a ti o n R o l e> <tp :Cer ti f i c a te tp :c er tI d =" Co o r d i n a to r S i g n i n g Cer t" > <d s :K ey I n f o > A 6 V Cs f d 9 T N N 120 8 c j u s 0 7 8 V 0 N g j V B 0 D F 3 v 56 J 5J M 0 Y B F g R 8 0 CW H 4 j 12g h3 8 9 6 R V G 5h6 0 j etr N 3 Y 50 9 R j 7 E k 3 0 5B j 9 2R J T V 8 9 3 R H G 4 127 d s f 8 7 G 7 9 E 7 W 1T l j 5k hF 2H M O T 8 2f 58 9 6 k j hJ Y G F U Y 4 4 7 6 S D F r g f d D 0 j 9 9 8 F D 5D w 4 23 w 4 D 5g 7 9 G 8 H 0 9 j 9 j 0 9 k i 9 H 7 T f 5e6 S 4 3 s 4 5X r y b H n i T u 6 6 F H Y hm 6 7 T v c 4 5e6 B D E f 7 5g h8 7 J 8 k g f b 7 F V 55f G 8 H M 9 8 h9 G 7 6 6 u i I 0 0 O I m n 4 Cy hn i 7 J 8 6 M G F 6 H 7 n 7 5R F 8 R E c 7 6 9 8 B 0 9 G B u m k 8 K 8 9 8 </d s :K ey I n f o > </tp :Cer ti f i c a te> <tp :D el i v er y Cha n n el tp :c ha n n el I d =" T r a c eCha n n el " tp :tr a n s p o r tI d =" T r a c eT r a n s p o r t" tp :d o c E x c ha n g eI d =" T r a c eD o c E x c ha n g e" > <tp :M es s a g i n g Cha r a c ter i s ti c s tp :s y n c R ep l y M o d e=" m s hS i g n a l s O n l y " tp :a c k R eq u es ted =" a l w a y s " tp :a c k S i g n a tu r eR eq u es ted =" a l w a y s " tp :d u p l i c a teE l i m i n a ti o n =" a l w a y s " tp :a c to r =" u r n :o a s i s :n a m es :tc :eb x m l -m s g :a c to r :n ex tM S H </tp :D el i v er y Cha n n el > <tp :T r a n s p o r t tp :tr a n s p o r tI d =" T r a c eT r a n s p o r t" > <tp :T r a n s p o r tR ec ei v er > <tp :T r a n s p o r tP r o to c o l tp :v er s i o n =" 1. 1" >H T T P </tp :T r a n <tp :E n d p o i n t tp :u r i =" http ://l o c a l ho s t:8 0 8 0 /m s h" tp :ty p e=" a l l P u r p o s e" /> <tp :T r a n s p o r tS er v er S ec u r i ty > <tp :T r a n s p o r tS ec u r i ty P r o to c o l tp :v er s i o n =" 3 . 0 " > S S L </tp :T r a n s p o r tS ec u r i ty P r o to c o l > <tp :S er v er Cer ti f i c a teR ef tp :c er tI d =" Co o r d i n a to r S </tp :T r a n s p o r tS er v er S ec u r i ty > </tp :T r a n s p o r tR ec ei v er > </tp :T r a n s p o r t> <tp :D o c E x c ha n g e tp :d o c E x c ha n g eI d =" T r a c eD o c E x c ha n g e" > <tp :eb X M L R ec ei v er B i n d i n g tp :v er s i o n =" 2. 0 " > <tp :R el i a b l eM es s a g i n g > <tp :R etr i es >5</tp :R etr i es > M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione T r a c e D o c u m en t" e D o c u m en t A c ti o n " /> 0 V j H F 9 56 4 l u H f 56 9 G 6 J H G V F D 9 7 5V 5f 2U 54 7 6 8 6 6 D r 7 R 0 5K 56 H Y 7 f f 8 T 6 57 5n 7 j y t9 P l 7 G 524 H 8 7 E D U 8 H 7 k j L R V C0 H 9 G 7 b g o 9 " /> s p o r tP r o to c o l > i g n i n g Cer t" /> - U nive r s it à d i P is a 69/71 <tp :R <tp :M </tp :R el i <tp :R ec ei <tp :N etr y I n ter v a l >P T 2H </tp :R etr y I n ter v a l > es s a g eO r d er S em a n ti c s >G u a r a n teed </tp :M es s a g eO r d er S em a n ti c s > a b l eM es s a g i n g > v er N o n R ep u d i a ti o n > o n R ep u d i a ti o n P r o to c o l > http ://w w w . w 3 . o r g /20 0 0 /0 9 /x m l d s i g # </tp :N o n R ep u d i a ti o n P r o to c o l > <tp :H a s hF u n c ti o n > http ://w w w . w 3 . o r g /20 0 0 /0 9 /x m l d s i g # s ha 1 </tp :H a s hF u n c ti o n > <tp :S i g n a tu r eA l g o r i thm > http ://w w w . w 3 . o r g /20 0 0 /0 9 /x m l d s i g # d s a -s ha 1 </tp :S i g n a tu r eA l g o r i thm > <tp :S i g n i n g S ec u r i ty D eta i l s R ef tp :c er tI d =" a z i en d a T S i g n i n g Cer t" /> </tp :R ec ei v er N o n R ep u d i a ti o n > <tp :R ec ei v er D i g i ta l E n v el o p e> <tp :D i g i ta l E n v el o p eP r o to c o l tp :v er s i o n =" 2. 0 " > S /M I M E </tp :D i g i ta l E n v el o p eP r o to c o l > <tp :E n c r y p ti o n A l g o r i thm >D E S -CB C</tp :E n c r y p ti o n A l g o r i thm > <tp :E n c r y p ti o n Cer ti f i c a teR ef tp :c er tI d =" Co o r d i n a to r S i g n i n g Cer t" /> </tp :R ec ei v er D i g i ta l E n v el o p e> </tp :eb X M L R ec ei v er B i n d i n g > </tp :D o c E x c ha n g e> </tp :P a r ty I n f o > <!-- E ' p o s s i b i l e d ef i n i r e i Co n ten t T y p e c he c o s ti tu i s c o n o <tp :S i m p l eP a r t tp :i d =" S P 1" tp :m i m ety p e=" tex t/x m l " /> <tp :S i m p l eP a r t tp :i d =" S P 2" tp :m i m ety p e=" * /x m l " /> i m es s a g g i <!-- I l c a m p o P a c k a g i n g ev i d en z i a l e v a r i e c o m p o n en ti d el m es s a g g i o S O A P <tp :P a c k a g i n g tp :i d =" T r a c eP a c k a g i n g " > <tp :P r o c es s i n g Ca p a b i l i ti es tp :g en er a te=" tr u e" tp :p a r s e=" tr u e" /> --> <!-- I l c a m p o Co m p o s i teL i s t i n d i c a <tp :Co m p o s i teL i s t> <!-- E n c a p s d i tr a l e i n f --> <tp c o m e c o m b i n a r e i d a i n v i a r e --> S i m p l eP a r t --> u l a ti o n c o n ti en e u n c a m p o c r i tta to c he, n el n o s tr o c a s o , è i l m es s a g g i o c c i a b i l i tà c he è d i ti p o S P 1 ed u n a l tr o m es s a g g i o c he v i en e u r i l i z z a to o r m a z i o n i s u l l a q u a l i tà s em p r e d i ti p o S P 1 (tex t/x m l ) :E n c a p s u l a ti o n tp :i d =" E P 1" tp :m i m ety p e=" tex t/x m l " tp :m i m ep a r a m eter s =" s m i m e-ty p e=& q u o t;en v el o p ed -d a ta & q u o t;" > M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a p er 70 /71 <Co n <Co n </tp :E n c </tp :Co m p o s i </tp :P a c k a g i n g > </Co l l a b o r a ti o n P s ti s ti a p s teL tu tu u l i s en t tp :i d r ef =" S P 1" /> en t tp :i d r ef =" S P 1" /> a ti o n > t> r o to c o l A g r eem en t> M.G.C.A.Cimino,”Applicazioni Java-e b X ML ”, D ipar t ime nt o d i I ng e g ne r ia d e ll’ I nf or mazione - U nive r s it à d i P is a 71/71