1
5
5
Jerzy R. Jaworowski,
Jerzy R. Jaworowski,
dr in
dr in
ż
ż
.
.
Instytut Teleinformatyki PK
Instytut Teleinformatyki PK
Zaawansowane techniki
Zaawansowane techniki
programowania
programowania
2013 / 2014
2013 / 2014
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
2
2
5
5
J2EE
J2EE
patterns
patterns
Definowane
Definowane
dla poszczeg
dla poszczeg
ó
ó
lnych warstw :
lnych warstw :
•
•
Presentation
Presentation
Layer
Layer
(
(
np
np
. Front
. Front
Controller
Controller
)
)
•
•
Business
Business
Layer
Layer
•
•
Integration
Integration
Layer
Layer
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
3
3
5
5
Bussines
Bussines
Layer
Layer
patterns
patterns
Najbardziej typowe :
Najbardziej typowe :
•
•
“
“
Session
Session
Facade
Facade
”
”
•
•
“
“
Service
Service
Locator
Locator
”
”
•
•
“
“
Business
Business
Delegate
Delegate
”
”
•
•
“
“
Transfer
Transfer
Object
Object
”
”
•
•
>>
>>
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
4
4
5
5
Session
Session
Facade
Facade
Cel zasadniczy :
Cel zasadniczy :
Dla zapewnienia jednolitego
Dla zapewnienia jednolitego
-
-
zorientowanego na zarz
zorientowanego na zarz
ą
ą
dzanie
dzanie
strumieniem prac (
strumieniem prac (
workflow
workflow
)
)
-
-
interface
interface
’
’
u
u
z warstw
z warstw
ą
ą
prezentacji
prezentacji
(klientem)
(klientem)
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
5
5
5
5
Session
Session
Facade
Facade
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
6
6
5
5
Session
Session
Facade
Facade
Transakcje :
Transakcje :
Zarz
Zarz
ą
ą
dzanie skomplikowane, ka
dzanie skomplikowane, ka
ż
ż
dy
dy
bean
bean
realizuje
realizuje
‘
‘
swoj
swoj
ą
ą
’
’
oddzieln
oddzieln
ą
ą
transakcj
transakcj
ę
ę
po stronie serwera.
po stronie serwera.
Potrzebna zatem koordynacja
Potrzebna zatem koordynacja
(synchronizacja) operacji na poziomie
(synchronizacja) operacji na poziomie
repozytorium.
repozytorium.
Zapewnienie koordynacji w celu obj
Zapewnienie koordynacji w celu obj
ę
ę
cia
cia
wielu
wielu
bean
bean
’ó
’ó
w
w
pojedyncz
pojedyncz
ą
ą
transakcj
transakcj
ą
ą
wymaga dodatkowej logiki.
wymaga dodatkowej logiki.
2
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
7
7
5
5
Session
Session
Facade
Facade
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
8
8
5
5
Session
Session
Facade
Facade
Takie rozwi
Takie rozwi
ą
ą
zanie w oczywisty spos
zanie w oczywisty spos
ó
ó
b
b
pozwala na obj
pozwala na obj
ę
ę
cie operacji
cie operacji
wykonywanych przez wiele obiekt
wykonywanych przez wiele obiekt
ó
ó
w
w
pojedyncz
pojedyncz
ą
ą
transakcj
transakcj
ą
ą
.
.
Daje zar
Daje zar
ó
ó
wno mo
wno mo
ż
ż
liwo
liwo
ść
ść
obs
obs
ł
ł
ugi b
ugi b
łę
łę
d
d
ó
ó
w
w
jak i wycofania si
jak i wycofania si
ę
ę
(
(
rollback
rollback
) z
) z
pomy
pomy
ś
ś
lnie zako
lnie zako
ń
ń
czonych fragment
czonych fragment
ó
ó
w
w
operacji, je
operacji, je
ż
ż
eli w p
eli w p
ó
ó
ź
ź
niejszych etapach
niejszych etapach
pojawia si
pojawia si
ę
ę
problem.
problem.
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
9
9
5
5
Session
Session
Facade
Facade
W praktyce pojedynczy obiekt tego typu
W praktyce pojedynczy obiekt tego typu
by
by
ł
ł
by zbyt rozbudowany.
by zbyt rozbudowany.
Z drugiej strony traci sens tworzenie
Z drugiej strony traci sens tworzenie
obiekt
obiekt
ó
ó
w tego typu na zasadzie 1
w tego typu na zasadzie 1
-
-
1 dla
1 dla
ka
ka
ż
ż
dego przypadku u
dego przypadku u
ż
ż
ycia.
ycia.
W praktyce stosujemy grupowanie
W praktyce stosujemy grupowanie
operacji, a wi
operacji, a wi
ę
ę
c pojedynczy obiekt
c pojedynczy obiekt
steruje przep
steruje przep
ł
ł
ywem prac w obr
ywem prac w obr
ę
ę
bie
bie
pewnej logicznie wyodr
pewnej logicznie wyodr
ę
ę
bnionej grupy
bnionej grupy
operacji.
operacji.
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
10
10
5
5
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
11
11
5
5
Session
Session
Facade
Facade
Session
Session
Facade
Facade
jest
jest
‘
‘
synchroniczn
synchroniczn
ą
ą
’
’
metod
metod
ą
ą
komunikowania si
komunikowania si
ę
ę
z warstw
z warstw
ą
ą
logiki
logiki
bussinesowej, a wi
bussinesowej, a wi
ę
ę
c mo
c mo
ż
ż
e (winna) by
e (winna) by
ć
ć
u
u
ż
ż
ywana w sytuacjach w kt
ywana w sytuacjach w kt
ó
ó
rych oczekujemy
rych oczekujemy
natychmiastowej odpowiedzi (reakcji). Ten
natychmiastowej odpowiedzi (reakcji). Ten
typ operacji dotyczy np.
typ operacji dotyczy np.
‘
‘
odczytu
odczytu
’
’
(pobrania)
(pobrania)
informacji.
informacji.
W sytuacji zapisu (
W sytuacji zapisu (
write
write
) lub aktualizacji
) lub aktualizacji
(
(
update
update
) mo
) mo
ż
ż
e by
e by
ć
ć
sensownym rozwa
sensownym rozwa
ż
ż
enie
enie
u
u
ż
ż
ycia wzorca
ycia wzorca
Message
Message
Facade
Facade
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
12
12
5
5
Service
Service
Facade
Facade
3
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
13
13
5
5
Service
Service
Facade
Facade
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
14
14
5
5
Bussines
Bussines
Delegate
Delegate
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
15
15
5
5
Bussines
Bussines
Delegate
Delegate
Bussines
Bussines
Delegate
Delegate
pe
pe
ł
ł
ni rol
ni rol
ę
ę
proxy
proxy
dla
dla
klient
klient
ó
ó
w
w
–
–
dla ka
dla ka
ż
ż
dego odwo
dego odwo
ł
ł
ania do
ania do
obiektu zdalnego istnieje zwykle
obiektu zdalnego istnieje zwykle
odpowiednik lokalny (relacja 1
odpowiednik lokalny (relacja 1
-
-
1).
1).
Korzystaj
Korzystaj
ą
ą
c z takiego podej
c z takiego podej
ś
ś
cia klient
cia klient
wo
wo
ł
ł
a
a
żą
żą
dan
dan
ą
ą
‘
‘
us
us
ł
ł
ug
ug
ę
ę
’
’
i po pierwsze nie
i po pierwsze nie
musi
musi
‘
‘
wiele o niej wiedzie
wiele o niej wiedzie
ć
ć
’
’
(service
(service
locator
locator
), po drugie nie jest istotne, czy
), po drugie nie jest istotne, czy
jest to us
jest to us
ł
ł
uga lokalna, czy zas
uga lokalna, czy zas
ó
ó
b zdalny
b zdalny
(bussines
(bussines
delegate
delegate
)
)
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
16
16
5
5
Bussines
Bussines
Delegate
Delegate
Ten obiekt winien zapewnia
Ten obiekt winien zapewnia
ć
ć
niezb
niezb
ę
ę
dn
dn
ą
ą
logik
logik
ę
ę
dla obs
dla obs
ł
ł
ugi :
ugi :
–
–
b
b
łę
łę
d
d
ó
ó
w
w
–
–
typu us
typu us
ł
ł
uga czasowo
uga czasowo
niedost
niedost
ę
ę
pn
pn
ą
ą
(np. brak
(np. brak
łą
łą
czno
czno
ś
ś
ci sieciowej
ci sieciowej
z zasobem zdalnym)
z zasobem zdalnym)
–
–
powt
powt
ó
ó
rnego wykonania (
rnego wykonania (
retry
retry
) w przypadku
) w przypadku
wyst
wyst
ą
ą
pienia sytuacji umo
pienia sytuacji umo
ż
ż
liwiaj
liwiaj
ą
ą
cych
cych
dalsz
dalsz
ą
ą
obs
obs
ł
ł
ug
ug
ę
ę
np. w trybie
np. w trybie
failover
failover
–
–
obs
obs
ł
ł
ugi wyj
ugi wyj
ą
ą
tk
tk
ó
ó
w (t
w (t
ł
ł
umaczenie wyj
umaczenie wyj
ą
ą
tk
tk
ó
ó
w
w
‘
‘
warstwy us
warstwy us
ł
ł
ug
ug
’
’
na wyj
na wyj
ą
ą
tki
tki
‘
‘
warstwy
warstwy
aplikacji
aplikacji
’
’
)
)
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
17
17
5
5
Business
Business
Delegate
Delegate
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
18
18
5
5
Business
Business
Delegate
Delegate
4
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
19
19
5
5
BD
BD
with
with
Adapter
Adapter
strategy
strategy
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
20
20
5
5
JNDI
JNDI
Java
Java
Naming
Naming
and
and
Directory
Directory
Interface
Interface
Interface
Interface
, kt
, kt
ó
ó
ry umo
ry umo
ż
ż
liwia wi
liwia wi
ą
ą
zanie (
zanie (
binding
binding
)
)
‘
‘
nazw
nazw
’
’
z us
z us
ł
ł
ugami oraz danymi
ugami oraz danymi
(informacjami)
(informacjami)
Us
Us
ł
ł
uga JNDI umo
uga JNDI umo
ż
ż
liwia stworzenie dla potrzeb
liwia stworzenie dla potrzeb
aplikacji pojedynczego mechanizmu
aplikacji pojedynczego mechanizmu
‘
‘
oznaczania
oznaczania
’
’
(nazywania) :
(nazywania) :
–
–
maszyn (serwer
maszyn (serwer
ó
ó
w)
w)
–
–
u
u
ż
ż
ytkownik
ytkownik
ó
ó
w
w
–
–
obiekt
obiekt
ó
ó
w
w
–
–
us
us
ł
ł
ug (innych)
ug (innych)
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
21
21
5
5
Service
Service
Locator
Locator
Service
Service
Locator
Locator
pattern
pattern
‘
‘
przes
przes
ł
ł
ania
ania
’
’
(
(
hide
hide
)
)
fakt korzystania z us
fakt korzystania z us
ł
ł
ug JNDI przed
ug JNDI przed
klientem (klient korzysta z
klientem (klient korzysta z
‘
‘
nazw
nazw
’
’
)
)
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
22
22
5
5
Service
Service
Locator
Locator
Pojedyncza instancja obs
Pojedyncza instancja obs
ł
ł
uguje
uguje
wszystkich klient
wszystkich klient
ó
ó
w. Poszukiwanie
w. Poszukiwanie
zasob
zasob
ó
ó
w (
w (
resource
resource
’
’
s
s
) JNDI odbywa si
) JNDI odbywa si
ę
ę
w obr
w obr
ę
ę
bie kontekstu, kt
bie kontekstu, kt
ó
ó
ry tworzony jest
ry tworzony jest
raz (podczas pierwszego wo
raz (podczas pierwszego wo
ł
ł
ania
ania
Service
Service
Locator
Locator
’
’
a
a
)
)
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
23
23
5
5
Example
Example
scenario
scenario
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
24
24
5
5
Transfer
Transfer
Object
Object
5
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
25
25
5
5
Integration
Integration
Layer
Layer
patterns
patterns
•
•
Data Access
Data Access
Object
Object
•
•
Message
Message
Facade
Facade
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
26
26
5
5
Data Access
Data Access
Object
Object
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
27
27
5
5
JDBC Driver
JDBC Driver
Type
Type
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
28
28
5
5
Chwila na refleksj
Chwila na refleksj
ę
ę
...
...
•
•
Czy dowiedzia
Czy dowiedzia
ł
ł
e
e
ś
ś
si
si
ę
ę
czego
czego
ś
ś
nowego ?
nowego ?
•
•
Czy dowiedzia
Czy dowiedzia
ł
ł
e
e
ś
ś
si
si
ę
ę
czego
czego
ś
ś
Twym zdaniem
Twym zdaniem
wa
wa
ż
ż
nego ?
nego ?
•
•
Czy dostrzegasz zwi
Czy dostrzegasz zwi
ą
ą
zek i przydatno
zek i przydatno
ść
ść
przekazanych tre
przekazanych tre
ś
ś
ci w zawodzie, kt
ci w zawodzie, kt
ó
ó
ry sobie
ry sobie
wybra
wybra
ł
ł
e
e
ś
ś
?
?
•
•
Masz ewentualne uwagi b
Masz ewentualne uwagi b
ą
ą
d
d
ź
ź
sugestie,
sugestie,
podziel si
podziel si
ę
ę
nimi ...
nimi ...
jrj@pk.edu.pl
jrj@pk.edu.pl
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
29
29
5
5
Dzi
Dzi
ę
ę
kuj
kuj
ę
ę
za uwag
za uwag
ę
ę