background image

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.  

background image

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

ó

ó

pozwala  na obj

pozwala  na obj

ę

ę

cie operacji 

cie operacji 

wykonywanych przez wiele obiekt

wykonywanych przez wiele obiekt

ó

ó

pojedyncz

pojedyncz

ą

ą

transakcj

transakcj

ą

ą

.

.

Daje zar

Daje zar

ó

ó

wno mo

wno mo

ż

ż

liwo

liwo

ść

ść

obs

obs

ł

ł

ugi b

ugi b

łę

łę

d

d

ó

ó

jak i wycofania si

jak i wycofania si

ę

ę

(

(

rollback

rollback

) z 

) z 

pomy

pomy

ś

ś

lnie zako

lnie zako

ń

ń

czonych fragment

czonych fragment

ó

ó

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

background image

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

ó

ó

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

ł

ł

żą

żą

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

ó

ó

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

ó

ó

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

background image

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

background image

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

ę

ę