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