J a va e t le W e b (c) A . Le G ra nd C en tr e un ive rsi ta ir e d ’in fo rm a ti que
Jav
a
e
t
le
W
e
b
.
Thè m e : co de m ob ile e t le s nou ve lle s a rch it e ct u re s app lica ti ve s. q uo i? p ou r quo i fa ir e? co m m en t fa ir e? m o ts-cl é s: - app le t, se rvl e t, JD B C , R M I, C o rba , - p ro g ra m m a ti o n d ist ri b u éeJa va e t le W e b (c) A . Le G ra nd C en tr e un ive rsi ta ir e d ’in fo rm a ti que
c
od
e
m
o
b
il
e
.
dé fi n it ion : p rog ra m m e co m p ilé (code ), po rt ab le e t t ran sp o rt ab le tr an sp o rt ab le : lie u x d e st o ckage e t d ›e xé cu ti on d iff é re n ts po rt a b le : indépe n dan t de la p la te -f o rm e . P o u r quo i fa ir e? - ne p lu s gé re r le s c on fi gu ra ti on s de s po st e s cl ien ts, - d ist ri bue r f a ci le m e n t le s app lica ti on s e t le u rs v e rsi on s su c ce ss ive s. Ja va = code m ob ile + sé cu ri té .Ja va e t le W e b (c) A . Le G ra nd C en tr e un ive rsi ta ir e d ’in fo rm a ti que
a
rc
h
it
e
c
tu
res a
pp
li
ca
ti
ve
s
.
co m m en ta ir e s: a rch it e ct u re s c la ssi que s (J a va n o n n é c e ssa ir e ) T yp e A ct iv it é su r le se rv eu r A ct iv it é su r le cli en t D es cr ip ti on 0 D on née s T ra ite m en ts P ré sen ta tio n se rv eu r : a pp lic at io n Ja va av ec J D B C cl ie nt : v ia te lne t pa r ex em pl e 1 D on née s T ra ite m en ts P ré sen ta tio n P ré se nt at io n se rv eu r : a pp lic at io n Ja va av ec J D B C cl ie nt : na vi ga te ur ( do cu m en ts san s ap pl et ) 2 D on née s T ra ite m en ts P ré se nt at io n se rv eu r : s er vl et av ec J D B C cl ie nt : na vi ga te ur ( do cu m en ts av ec ap pl et ) ex em pl e : n et w or k co m pu te r T ab le 1 T y p o lo g ie d e la ré p a rt it io n d e s a c ti vi té sva e t le W e b A . Le G ra nd C en tr e un ive rsi ta ir e d ’in fo rm a ti que
n
o
u
ve
ll
es a
rc
h
it
ec
tu
re
s
a
p
p
li
c
a
ti
v
es
.
T yp e A ct iv it é su r le se rv eu r A ct iv it é su r le cli en t D es cr ip ti on 3 D on née s T ra ite m en ts T ra ite m en ts P ré se nt at io n se rv eu r : s er vl et av ec J D B C cl ie nt : na vi ga te ur ( do cu m en ts av ec ap pl et ) ex em pl e : n et w or k co m pu te r 4 D on née s T ra ite m en ts P ré se nt at io n se rv eu r : p ur se rv eu r de don née s cl ie nt : na vi ga te ur ( ap pl et + JD B C en lo ca l) ex em pl e : n et w or k co m pu te r 5 D on née s D onn ée s T ra ite m en ts P ré se nt at io n se rv eu r : p ur se rv eu r de don née s cl ie nt : na vi ga te ur ( ap pli ca tion + JD B C ) 6 D onn ée s T ra ite m en ts P ré se nt at io n A pp lic at ion ou a pp le t J av a su r le cli en t JD B C en lo ca l 7 D on née s T ra ite m en ts P ré sen ta tio n D onn ée s T ra ite m en ts P ré se nt at io n to ut : s er vl et, ap pl et, app lic at io ns , J D B C , R M I T ab le 2 T y p o lo g ie d e la ré p a rt it io n d e s a c ti vi té sJa va e t le W e b (c) A . Le G ra nd C en tr e un ive rsi ta ir e d ’in fo rm a ti que
P
ili
e
rs
d
e
la
p
ro
g
ra
m
m
a
ti
o
n
d
is
tr
ibu
ée
B a s e d e do n nées : d ro it s d ›a ccè s, ind e xa ti on s, in te rr o ga ti on s, t ra n s a ct ion s. H y p e rt ex tes (W eb ) : in te rf a ce de p ré se n ta ti o n e t d e n a v iga ti on en tr e le s d o cu m e n ts. C o d e m ob il e Ja v a : co m po rt e m en t a sso ci é à de s d o cu m e n ts. p ou r quo i fa ir e? ... de u x e xe m p le sJa va e t le W e b (c) A . Le G ra nd C en tr e un ive rsi ta ir e d ’in fo rm a ti que
E
xe
m
p
le 1
:
tr
ibu
n
a
l
fé
d
é
ra
l.
con te xt e : - 5500 ca s tr a it é s c ha q ue a nnée , - st o ckag e da n s un e B D te xt ue lle B AS IS p lu s, - 30 juge s and cl e rcs o n t a ccè s à ce tt e ba se , - 250 e m p lo yé s (15 in fo rm a ti ci en s) , - dé ve lo p pe m e n t d ›app lica ti on s en A da83 /M o ti f1 .2 , - fu tu r p ro c he : c hange r de p la te -f o rm e se rveu r. dé ci si on : é cr ir e le s app lica ti on s le + p o s si b le in dépend e m m en t d u m a té ri e l. sou rce : h tt p :/ /j a va .s u n .co m /p rod u c ts/ jd k/ rm i/ e x a m p le s .h tm lJa va e t le W e b (c) A . Le G ra nd C en tr e un ive rsi ta ir e d ’in fo rm a ti que
E
xe
m
p
le 1
:
tr
ibu
n
a
l
fé
d
é
ra
l.
dé m a rr age du p ro je t : débu t 1 9 96 , - cli e n t W WW p ou r a ccéde r à la b a se , - R M I pa s e n co re là , - don c C G I/ Fo rm s. déb u t 1997 . - AP I R M I a rr ive , - au tr e s type s de cl ien ts en vi sagé s, - R M I : « m idde w a re » en tr e la B D e t le s c lien ts, - Ja va N a ti ve In te rf a ce e st u ti lisé pou r f a ir e u n p ilo te d ›a ccè s à la BD . sou rce : h tt p :/ /j a va .s u n .co m /p rod u c ts/ jd k/ rm i/ e x a m p le s .h tm lva e t le W e b A . Le G ra nd C en tr e un ive rsi ta ir e d ’in fo rm a ti que
E
xe
m
p
le 1
:
tr
ibu
n
a
l
fé
d
é
ra
l.
S e rv e u r BA S IS p lu s ge st io n na ir e d ›a cc è s C li e n t 1 ) de m a nde de c o nne xi o n co nne xi o n 2 ) 3 )ad re sse 4 ) a d re sse de la conne xi on ap p lica ti o n 5 ) a ccè s pa r R M I sou rce : sc h é m a é la bo ré d ›a p rè s h tt p :/ /j a v a .sun .c o m /p ro du ct s/ jd k /rm i/ e xa m p le s. h tm lJa va e t le W e b (c) A . Le G ra nd C en tr e un ive rsi ta ir e d ’in fo rm a ti que
E
x
e
m
p
le 1
:
c
o
m
m
e
n
ta
ir
e
s
.
- dé p lo ie m en t pa r in te rne t de s app lica ti o n s , - f a ci lit é de m ise en o eu vr e (p ro to en deu x jou rs) , - R MI e t JN I son t u ti lisé s, - d ist ri bu ti o n du code : e n p a rt ie su r le cl ien t, e n p a rt ie su r le se rveu r ( pa r R MI a ccéd e r au x donnée s).Ja va e t le W e b (c) A . Le G ra nd C en tr e un ive rsi ta ir e d ’in fo rm a ti que
E
x
e
m
p
le 2
:
g
e
s
ti
on
d
e
n
o
tes
d
e
fr
a
is
sou rce : h tt p :/ /j a va .s u n .co m /m a rke ti n g /co lla te ra l/ ja v a rm i. h tm l con te xt e (f ict if ) : g e st ion de s n o te s de fr a is de l› en tr e p ri s e e n fon ct ion d ›u p o lit iq ue q u i peu t é vo lue r. app lica ti o n d ist ri bué e : cl ien t : in te rf a ce g ra p h iqu e de sa isi e de s n o te s de fr a is, co m m un ica ti o n a ve c le se rveu r vi a R M I. se rveu r : st o cke le s no te s d e fr a is d a n s u n e B D v ia JDBC . --> co n cep ti on cl a ssi q ue m u lt i-r ang s.Ja va e t le W e b (c) A . Le G ra nd C en tr e un ive rsi ta ir e d ’in fo rm a ti que
E
x
e
m
p
le 2
:
g
e
s
ti
on
d
e
n
o
tes
d
e
fr
a
is
C o m m e n t an ti ci p e r d e s nou ve lle s po lit ique s d e no te s d e fr a is au n iv e au d u d e si gn de l› app lica ti on? A rch it e ct u re s po ssi b le s : a ) in st a lle r la po lit ique dan s le cl ien t, --> p rob lè m e d e m ise -à -j ou r de s c lien ts b ) le se rve u r vé ri fi e chaque en tr é e a jou té e à une no te de fr a is, e t ce re la ti ve m en t à la po lit iqu e a ct ue lle . --> p rob lè m e de c ha rge d u se rveu r e t de pe rf o rm an ce c) le se rveu r vé ri fi e chaqu e no te de f ra is, au m o m en t o ù e e st sou m ise , e t ce re la ti ve m en t à la po lit ique a ct ue lle . --> p rob lè m e d u tr a it e m en t p a r lo ts.Ja va e t le W e b (c) A . Le G ra nd C en tr e un ive rsi ta ir e d ’in fo rm a ti que
E
x
e
m
p
le 2
:
g
e
s
ti
on
d
e
n
o
tes
d
e
fr
a
is
C o m po rt e m en t m ob ile : P o ssi b ili té vi a R M I, d e d é p la ce r d e s ob je ts d ›une a pp lica ti on d ist ri buée du c lie n t ve rs le se rveu r e t ré ci p roq u e m e n t. U ti lisa ti on dan s l› e xe m p le : L a p o lit iq u e (a ct ue lle o u fu tu re ) d e g e st io n d e s no te s de fr a is e st im p la n tée su r le se rveu r p a r un ob je t. C e t ob je t e st e n v o yé a u cl ien t lo rsq u ›i l s a isi t u ne n o te de fr a is.Ja va e t le W e b (c) A . Le G ra nd C en tr e un ive rsi ta ir e d ’in fo rm a ti que
E
x
e
m
p
le 2
:
g
e
s
ti
on
d
e
n
o
tes
d
e
fr
a
is
C a s d ›u sage : 1 ) l› u ti lisa teu r e st p rê t à sa isi r une no te de fr a is, 2 ) le cl ien t d e m a n de u n o b je t q u i im p lan te la po lit ique cou ra n 3 ) le se rveu r lu i en vo ie u n e co p ie de l› im p lan ta ti on de l› o b je t. C o m m e n ta ir e s : - La p o lit iq ue d e g e st io n d e s no te s de fr a is e st tou jou rs d yna m ique . - P ou r la ch ange r, il su ff it de : 1 ) im p lan te r u n e n o u ve lle p o lit iq u e , 2 ) l› in st a lle r su r le se rveu r, 3 ) con fi gu re r le se rveu r po u r r e tou rne r d e s ob je ts de ce n ou veau typ e .Ja va e t le W e b (c) A . Le G ra nd C en tr e un ive rsi ta ir e d ’in fo rm a ti que
E
x
e
m
p
le 2
:
g
e
s
ti
on
d
e
n
o
tes
d
e
fr
a
is
In té rê ts d e ce tt e app ro che : - La vé ri fi ca ti o n d e la p o lit iq u e s› e ff e ct ue su r le cl ien t. Il s so n t a ve rt is au p lu s tô t de le u rs e rr eu rs. - Il ne fau t n i a rr ê te r le s c lien ts, n i l e s m e ttr e à j o u r. L e s o b je ts s o n t m is-à -j o u r lo rsque le cli e n t en a b e so in . - P a s de su rcha rge du se rve u r pou r d e s vé ri fi ca ti on s qu p eu ven t ê tr e lo ca le s. - Fa ci lit é d e ge st io n de s é vo lu ti on s (si e lle s o n t é té a n ti ci pée s)Ja va e t le W e b (c) A . Le G ra nd C en tr e un ive rsi ta ir e d ’in fo rm a ti que
E
xe
m
p
le 2
:
im
p
la
n
ta
ti
o
n
.
In te rf a ce d e l› ob je t se rveu r. import jav a .rmi.*; public inte rface ExpenseServer ex tends Remote { Policy getPolicy () th rows RemoteException; void submitReport (Exp enseReport report) throws RemoteExceptio n, InvalidReportExcept ion; } M é th o de s q u e le cl ien t peu t in voque r su r le se rve u r.va e t le W e b A . Le G ra nd C en tr e un ive rsi ta ir e d ’in fo rm a ti que
E
xe
m
p
le 2
:
im
p
la
n
ta
ti
o
n
.
import java .rmi.*; import java .rmi.server.*; class Expen seServerImpl extends U nicastRemoteObject implemen ts ExpenseServer { ExpenseServerImpl() throws Remote
Exception {
// .
..set up server state.
.. } public Poli cy getPolicy () { retur n new TodaysPolicy();} public void submitReport (ExpenseR eport report) { // ...write
the report into the d
b...
Ja va e t le W e b (c) A . Le G ra nd C en tr e un ive rsi ta ir e d ’in fo rm a ti que
E
xe
m
p
le 2
:
im
p
la
n
ta
ti
o
n
.
in te rf a c e de l› ob je t po lit ique : public inte rface Policy { void checkValid (Expen seEntry entry) throws PolicyViolatio nException; } In te rf a ce co n nue du s e rveu r e t de s c lie n ts. In te rf a ce e s t im p lan tée pa r un ob je t su r le se rveu r.Ja va e t le W e b (c) A . Le G ra nd C en tr e un ive rsi ta ir e d ’in fo rm a ti que
E
xe
m
p
le 2
:
im
p
la
n
ta
ti
o
n
.
ob je t qu i i m p lan te la p o lit iq u e . ob je t dé fi n i su r le se rveu r. public clas s TodaysPolicy impleme nts Policy { public void checkValid (ExpenseEnt ry entry) throws Poli cyViolationException { if (entry.d ollars() < 20) {return ; // no receipt requir ed } else if ( entry.haveReceipt() == false) { throw n ew PolicyViolationExce ption; } // if } // method } // classJa va e t le W e b (c) A . Le G ra nd C en tr e un ive rsi ta ir e d ’in fo rm a ti que
E
xe
m
p
le 2
:
im
p
la
n
ta
ti
o
n
.
app le t cl ien t Policy curP olicy = server.getPoli cy(); // start a new expense report // show theGUI to the user
while (user
keeps adding entries)
{ try { curPol icy. checkValid (entry);
// throws exception if not OK add the entry to the expense report } catch (Poli
cyViolationException e
) {
// sho
w the error to the use
r } } server. subm itReport (report);
va e t le W e b A . Le G ra nd C en tr e un ive rsi ta ir e d ’in fo rm a ti que
E
x
e
m
p
le 2
:
a
rc
h
it
e
c
tu
re e
t
u
ti
li
s
a
ti
on
S e rve u r BD E xp en se S e rve rI m p C li e n t 1 ) té lé ch a rg e m en t de l› a pp le t JD B C 2 a ) R M I: a p pe l d e ge tP o licy a p p le t g e tP o licy su b m it R e p o rt H T T P T o d a yP o licy ch e ckV a lid 2 b )n e w 2 c) tr a n sf e rt su r le cl ien t 3 à n ) ch e ckV a lid .. . T o d a yP o licy che ckV a lid .. . n + 1 ) R M I: a p pe l d e sub m it R e po rtJa va e t le W e b (c) A . Le G ra nd C en tr e un ive rsi ta ir e d ’in fo rm a ti que
E
x
e
m
p
le
2
:
n
o
u
ve
ll
e
po
li
ti
q
u
e
.
W ri te th is c la ss, in st a ll i t on th e se rve r, and te ll the se rve r to st han d ing ou t T o m o rr o w sP o licy o b je ct s in st e a d o f Toda ysP o licy ob je ct s, a nd yo u r en ti re syst e m w ill st a rt u s ing th e ne w p o licy. W hen th e cl ien t in vo ke s the se rve r' s ge tP o licy m e thod , R M I o the cli e n t che cks to se e if the re tu rned ob je ct is o f a kno w n type The fi rs t ti m e ea ch cli e n t en cou n te rs a To m o rr o w sP o licy o b je R M I w ill do w n loa d the im p le m en ta ti on fo r t he po licy b e fo re ge tP o licy re tu rn s. T h e cl ien t w ill , w it hou t e ff o rt , st a rt en fo rci ng the ne w po licy. sou rce : h tt p :/ /j a va .s u n .co m /m a rke ti n g /co lla te ra l/ ja v a rm i. h tm lJa va e t le W e b (c) A . Le G ra nd C en tr e un ive rsi ta ir e d ’in fo rm a ti que
E
x
e
m
p
le 2
:
c
o
m
m
e
n
ta
ir
e
s
.
- a rch it e ct u re fa cil e à m e tt re en oeu vr e , -m a in te n an ce de l ›a p p lic a ti on fa ci lit ée , si l e s é vo lu ti on s s on t an ti ci pée s. - vo ir page 14 .Ja va e t le W e b (c) A . Le G ra nd C en tr e un ive rsi ta ir e d ’in fo rm a ti que