background image

1

4

4

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

4

4

EJB Server

EJB Server

Serwer EJB

Serwer EJB

serwer aplikacyjny 

serwer aplikacyjny 

realizuj

realizuj

ą

ą

cy obs

cy obs

ł

ł

ug

ug

ę

ę

kontenera EJB.

kontenera EJB.

Serwer EJB

Serwer EJB

dostarcza (implementuje) 

dostarcza (implementuje) 

wsp

wsp

ó

ó

lne us

lne us

ł

ł

ugi elementarne dost

ugi elementarne dost

ę

ę

pne 

pne 

dla wszystkich EJB. Rol

dla wszystkich EJB. Rol

ą

ą

serwera EJB 

serwera EJB 

jest ukrycie wysokiej z

jest ukrycie wysokiej z

ł

ł

o

o

ż

ż

ono

ono

ś

ś

ci tych 

ci tych 

us

us

ł

ł

ug przed korzystaj

ug przed korzystaj

ą

ą

cymi z nich 

cymi z nich 

komponentami (tworzonymi przez 

komponentami (tworzonymi przez 

developer

developer

ó

ó

w)

w)

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

3

3

4

4

EJB Server

EJB Server

Przyk

Przyk

ł

ł

ady :

ady :

JBoss

JBoss

http://www.jboss.org

http://www.jboss.org

Glasfish

Glasfish

http://www.glasfish.dev.java.net

http://www.glasfish.dev.java.net

Uwaga : 

Uwaga : 

Tomcat

Tomcat

nie zawiera kontenera EJB

nie zawiera kontenera EJB

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

4

4

4

4

Services 

Services 

provided

provided

by Server

by Server

Naming

Naming

Transaction

Transaction

Security

Security

Persistence

Persistence

Concurrency

Concurrency

Life 

Life 

cycle

cycle

Messaging

Messaging

Timer

Timer

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

5

5

4

4

EJB 

EJB 

Container

Container

Kontener EJB (jako element serwera 

Kontener EJB (jako element serwera 

aplikacyjnego) funkcjonuje jako 

aplikacyjnego) funkcjonuje jako 

ś

ś

rodowisko 

rodowisko 

(runtime environment)

(runtime environment)

wspieraj

wspieraj

ą

ą

ce 

ce 

zarz

zarz

ą

ą

dzanie procesem wykonania EJB oraz 

dzanie procesem wykonania EJB oraz 

dostarczaj

dostarczaj

ą

ą

ce us

ce us

ł

ł

ug pierwotnych 

ug pierwotnych 

(elementarnych) 

(elementarnych) 

Kontener EJB odpowiada za zarz

Kontener EJB odpowiada za zarz

ą

ą

dzanie EJB 

dzanie EJB 

w ca

w ca

ł

ł

ym cyklu 

ym cyklu 

ż

ż

ycia oraz za identyfikacj

ycia oraz za identyfikacj

ę

ę

EJB.

EJB.

Kontener jest odpowiedzialny za tworzenie 

Kontener jest odpowiedzialny za tworzenie 

instancji EJB, zarz

instancji EJB, zarz

ą

ą

dzanie 

dzanie 

pol

pol

ą

ą

instancji oraz 

instancji oraz 

likwidacj

likwidacj

ą

ą

obiektu 

obiektu 

(destroy)

(destroy)

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

6

6

4

4

Naming

Naming

Kontener EJB jest odpowiedzialny za 

Kontener EJB jest odpowiedzialny za 

wykonanie procesu rejestracji unikalnej 

wykonanie procesu rejestracji unikalnej 

nazwy komponentu EJB w przestrzeni 

nazwy komponentu EJB w przestrzeni 

nazw JNDI (Java 

nazw JNDI (Java 

Naming

Naming

and 

and 

Directory

Directory

Interface

Interface

) w momencie startu serwera 

) w momencie startu serwera 

oraz wykonanie procesu powi

oraz wykonanie procesu powi

ą

ą

zania 

zania 

(

(

binding

binding

) z w

) z w

ł

ł

a

a

ś

ś

ciwym obiektem w 

ciwym obiektem w 

przestrzeni nazw JNDI

przestrzeni nazw JNDI

background image

2

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

7

7

4

4

Transaction

Transaction

Kontener EJB 

Kontener EJB 

mo

mo

ż

ż

e realizowa

e realizowa

ć

ć

obs

obs

ł

ł

ug

ug

ę

ę

transakcji automatycznie

transakcji automatycznie

, zale

, zale

ż

ż

nie od typu 

nie od typu 

komponentu EJB oraz atrybutu okre

komponentu EJB oraz atrybutu okre

ś

ś

laj

laj

ą

ą

cego 

cego 

żą

żą

dany typ transakcji 

dany typ transakcji 

oba te elementy s

oba te elementy s

ą

ą

zewn

zewn

ę

ę

trzne w stosunku do komponentu i 

trzne w stosunku do komponentu i 

opisywane w jego deskryptorze.

opisywane w jego deskryptorze.

W przypadku obs

W przypadku obs

ł

ł

ugi transakcji przez kontener  

ugi transakcji przez kontener  

aplikacja mo

aplikacja mo

ż

ż

e by

e by

ć

ć

tworzona bez  u

tworzona bez  u

ż

ż

ycia 

ycia 

jawnego kodu obs

jawnego kodu obs

ł

ł

ugi demarkacji (np. 

ugi demarkacji (np. 

begin

begin

commit

commit

rollback

rollback

)

)

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

8

8

4

4

Security

Security

Kontener EJB jest odpowiedzialny za 

Kontener EJB jest odpowiedzialny za 

egzekwowanie strategii bezpiecze

egzekwowanie strategii bezpiecze

ń

ń

stwa 

stwa 

okre

okre

ś

ś

lonej na etapie tworzenia komponentu 

lonej na etapie tworzenia komponentu 

realizuje t

realizuje t

ę

ę

funkcjonalno

funkcjonalno

ść

ść

w oparciu o listy 

w oparciu o listy 

ACL (Access 

ACL (Access 

Control

Control

Lists

Lists

). ACL jest 

). ACL jest 

wykazem u

wykazem u

ż

ż

ytkownik

ytkownik

ó

ó

w, grup do kt

w, grup do kt

ó

ó

rych 

rych 

nale

nale

żą

żą

oraz wynikaj

oraz wynikaj

ą

ą

cych z tego uprawnie

cych z tego uprawnie

ń

ń

efektywnych. 

efektywnych. 

Kontener EJB zapewnia, 

Kontener EJB zapewnia, 

ż

ż

e u

e u

ż

ż

ytkownicy 

ytkownicy 

uzyskuj

uzyskuj

ą

ą

dost

dost

ę

ę

p wy

p wy

łą

łą

cznie do tych zasob

cznie do tych zasob

ó

ó

oraz mog

oraz mog

ą

ą

wykona

wykona

ć

ć

tylko te zadania, do 

tylko te zadania, do 

kt

kt

ó

ó

rych posiadaj

rych posiadaj

ą

ą

uprawnienia (

uprawnienia (

granted

granted

permissions

permissions

)

)

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

9

9

4

4

Persistence

Persistence

Kontener EJB jest odpowiedzialny za 

Kontener EJB jest odpowiedzialny za 

zarz

zarz

ą

ą

dzanie sp

dzanie sp

ó

ó

jno

jno

ś

ś

ci

ci

ą

ą

danych r

danych r

ó

ó

ż

ż

nych 

nych 

typ

typ

ó

ó

w komponent

w komponent

ó

ó

poprzez 

poprzez 

synchronizacj

synchronizacj

ę

ę

stanu instancji 

stanu instancji 

bean

bean

’ó

’ó

w

w

utrzymywanych w pami

utrzymywanych w pami

ę

ę

ci z 

ci z 

powi

powi

ą

ą

zanym rekordem w odpowiednim 

zanym rekordem w odpowiednim 

zewn

zewn

ę

ę

trznym 

trznym 

ź

ź

r

r

ó

ó

dle danych 

dle danych 

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

10

10

4

4

Concurrency

Concurrency

Kontener EJB obs

Kontener EJB obs

ł

ł

uguje proces 

uguje proces 

zarz

zarz

ą

ą

dzania r

dzania r

ó

ó

wnoczesnym dost

wnoczesnym dost

ę

ę

pem 

pem 

do komponent

do komponent

ó

ó

w, zgodnie z regu

w, zgodnie z regu

ł

ł

ami 

ami 

okre

okre

ś

ś

lonymi dla r

lonymi dla r

ó

ó

ż

ż

nych typ

nych typ

ó

ó

w EJB

w EJB

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

11

11

4

4

Life 

Life 

cycle

cycle

Kontener EJB kontroluje komponenty w ca

Kontener EJB kontroluje komponenty w ca

ł

ł

ym 

ym 

cyklu ich 

cyklu ich 

ż

ż

ycia. W miar

ycia. W miar

ę

ę

jak nadchodz

jak nadchodz

ą

ą

żą

żą

dania (

dania (

client

client

requests

requests

)  do komponent

)  do komponent

ó

ó

EJB, kontener dynamicznie tworzy niezb

EJB, kontener dynamicznie tworzy niezb

ę

ę

dn

dn

ą

ą

instancj

instancj

ę

ę

obiektu w pami

obiektu w pami

ę

ę

ci, decyduje o jej 

ci, decyduje o jej 

usuni

usuni

ę

ę

ciu lub ponownym u

ciu lub ponownym u

ż

ż

yciu (

yciu (

reuse

reuse

zale

zale

ż

ż

nie od potrzeb.

nie od potrzeb.

Kontener mo

Kontener mo

ż

ż

e dostarcza

e dostarcza

ć

ć

mechanizmy  

mechanizmy  

optymalizacji wykorzystania zasob

optymalizacji wykorzystania zasob

ó

ó

w, oraz 

w, oraz 

wspieraj

wspieraj

ą

ą

ce  zarz

ce  zarz

ą

ą

dzanie pul

dzanie pul

ą

ą

obiekt

obiekt

ó

ó

w.

w.

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

12

12

4

4

Messaging

Messaging

Kontener EJB wspiera niezawodny 

Kontener EJB wspiera niezawodny 

routing

routing

asynchronicznych komunikat

asynchronicznych komunikat

ó

ó

przesy

przesy

ł

ł

anych przez klient

anych przez klient

ó

ó

w (JMS)  do 

w (JMS)  do 

sterowanych komunikatami 

sterowanych komunikatami 

bean

bean

ó

ó

w

w

EJB (MDB 

EJB (MDB 

-

-

Message

Message

Driven

Driven

Beans

Beans

).

).

Komunikaty mog

Komunikaty mog

ą

ą

by

by

ć

ć

przetwarzane 

przetwarzane 

zar

zar

ó

ó

wno technik

wno technik

ą

ą

peer

peer

-

-

to

to

-

-

peer

peer

(kolejki) 

(kolejki) 

jak r

jak r

ó

ó

wnie

wnie

ż

ż

w modelu 

w modelu 

publisher

publisher

-

-

subscriber

subscriber

(temat, tre

(temat, tre

ść

ść

)

)

background image

3

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

13

13

4

4

Timer

Timer

Aplikacje modeluj

Aplikacje modeluj

ą

ą

cz

cz

ę

ę

sto procesy, kt

sto procesy, kt

ó

ó

re s

re s

ą

ą

zale

zale

ż

ż

ne od zdarze

ne od zdarze

ń

ń

wyst

wyst

ę

ę

puj

puj

ą

ą

cych w 

cych w 

okre

okre

ś

ś

lonych momentach czasu. Do obs

lonych momentach czasu. Do obs

ł

ł

ugi 

ugi 

tego typu rozwi

tego typu rozwi

ą

ą

za

za

ń

ń

kontener musi 

kontener musi 

implementowa

implementowa

ć

ć

pewn

pewn

ą

ą

, transakcyjn

, transakcyjn

ą

ą

us

us

ł

ł

ug

ug

ę

ę

EJB 

EJB 

Timer

Timer

Service, kt

Service, kt

ó

ó

ra umo

ra umo

ż

ż

liwia 

liwia 

odwo

odwo

ł

ł

ania do zaplanowanych (

ania do zaplanowanych (

scheduled

scheduled

zale

zale

ż

ż

nych od czasu zdarze

nych od czasu zdarze

ń

ń

. Zdarzenia 

. Zdarzenia 

mog

mog

ą

ą

by

by

ć

ć

planowane na okre

planowane na okre

ś

ś

lony moment 

lony moment 

czasu, po up

czasu, po up

ł

ł

ywie okre

ywie okre

ś

ś

lonego odcinka czasu 

lonego odcinka czasu 

lub jako powtarzaj

lub jako powtarzaj

ą

ą

ce si

ce si

ę

ę

żą

żą

danym 

danym 

okresem.

okresem.

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

14

14

4

4

EJB 

EJB 

-

-

klasyfikacja

klasyfikacja

Session Beans

Session Beans

Stateless

Stateless

Stateful

Stateful

Entity Bean

Entity Bean

Bean Managed Persistency

Bean Managed Persistency

Container Managed Persistency (CMP)

Container Managed Persistency (CMP)

Message Bean

Message Bean

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

15

15

4

4

Session 

Session 

bean

bean

Bean

Bean

y

y

sesyjne graj

sesyjne graj

ą

ą

wa

wa

ż

ż

n

n

ą

ą

rol

rol

ę

ę

w fazie 

w fazie 

implementacji logiki 

implementacji logiki 

bussines

bussines

owej

owej

. W EJB 

. W EJB 

2.1 i wcze

2.1 i wcze

ś

ś

niej 

niej 

bean

bean

y

y

sesyjne by

sesyjne by

ł

ł

y cz

y cz

ę

ę

sto 

sto 

u

u

ż

ż

ywane.  Wg. specyfikacji  EJB 3.0 proces 

ywane.  Wg. specyfikacji  EJB 3.0 proces 

definiowania 

definiowania 

bean

bean

a

a

sesyjnego staje si

sesyjnego staje si

ę

ę

prosty i bardzo zbli

prosty i bardzo zbli

ż

ż

ony do definiowania 

ony do definiowania 

typowej klasy Java (lub POJO).

typowej klasy Java (lub POJO).

Skrajnie wa

Skrajnie wa

ż

ż

ne jest w

ne jest w

ł

ł

a

a

ś

ś

ciwe zrozumienie 

ciwe zrozumienie 

poj

poj

ę

ę

cia sesji oraz podstawowych koncepcji  

cia sesji oraz podstawowych koncepcji  

zwi

zwi

ą

ą

zanych z poj

zanych z poj

ę

ę

ciem stanu (

ciem stanu (

stateless

stateless

stateful

stateful

)

)

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

16

16

4

4

Co nazywamy sesj

Co nazywamy sesj

ą

ą

?

?

Sesja

Sesja

to po

to po

łą

łą

czenie (

czenie (

connection

connection

pomi

pomi

ę

ę

dzy klientem i serwerem 

dzy klientem i serwerem 

istniej

istniej

ą

ą

ce w pewnym ograniczonym 

ce w pewnym ograniczonym 

przedziale czasu.

przedziale czasu.

Sesja mo

Sesja mo

ż

ż

e by

e by

ć

ć

bezstanowa (

bezstanowa (

stateless

stateless

z sytuacj

z sytuacj

ą

ą

tak

tak

ą

ą

mamy do czynienia w 

mamy do czynienia w 

przypadku, gdy stan 

przypadku, gdy stan 

żą

żą

dania nie jest 

dania nie jest 

obs

obs

ł

ł

ugiwany w jakikolwiek spos

ugiwany w jakikolwiek spos

ó

ó

pomi

pomi

ę

ę

dzy kolejnymi wo

dzy kolejnymi wo

ł

ł

aniami.

aniami.

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

17

17

4

4

Stateless Session Bean

Stateless Session Bean

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

18

18

4

4

Czym jest sesja ?

Czym jest sesja ?

Żą

Żą

danie HTTP oraz sesja musz

danie HTTP oraz sesja musz

ą

ą

obs

obs

ł

ł

ugiwa

ugiwa

ć

ć

(zachowywa

(zachowywa

ć

ć

) stan 

) stan 

(

(

stateful

stateful

) je

) je

ż

ż

eli ma on by

eli ma on by

ć

ć

zachowany 

zachowany 

pomi

pomi

ę

ę

dzy nast

dzy nast

ę

ę

puj

puj

ą

ą

cymi po sobie 

cymi po sobie 

kolejnymi wo

kolejnymi wo

ł

ł

aniami 

aniami 

Np. : sesja Telnet, w kt

Np. : sesja Telnet, w kt

ó

ó

rej u

rej u

ż

ż

ytkownik 

ytkownik 

wysy

wysy

ł

ł

a kilka kolejnych komend do 

a kilka kolejnych komend do 

serwera, ka

serwera, ka

ż

ż

da z komend jest 

da z komend jest 

oddzielnym wo

oddzielnym wo

ł

ł

aniem, a stan musi by

aniem, a stan musi by

ć

ć

utrzymywany (np. 

utrzymywany (np. 

uid

uid

u

u

ż

ż

ytkownika )

ytkownika )

background image

4

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

19

19

4

4

Stateful Session Bean

Stateful Session Bean

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

20

20

4

4

Entity Bean

Entity Bean

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

21

21

4

4

Session and Entity Beans

Session and Entity Beans





Wymagane

Wymagane





Reprezentuj

Reprezentuj

ą

ą

okre

okre

ś

ś

lonego klienta

lonego klienta

(1 

(1 

instancja / klient

instancja / klient

)

)





Kr

Kr

ó

ó

tkotrwa

tkotrwa

ł

ł

e

e





Chwilowy (

Chwilowy (

transient

transient

)

)





Dowolna klasa 

Dowolna klasa 

Java

Java

y

y





Mo

Mo

ż

ż

e by

e by

ć

ć

transakcyjny

transakcyjny





Business Logic Beans

Business Logic Beans





Opcjonalne

Opcjonalne





Reprezentuj

Reprezentuj

ą

ą

pewien 

pewien 

obiekt danych lub 

obiekt danych lub 

kontekst 

kontekst 

(wsp

(wsp

ó

ó

ł

ł

dzielona

dzielona

instancja

instancja

)

)





D

D

ł

ł

ugi okres 

ugi okres 

ż

ż

ycia

ycia





Trwa

Trwa

ł

ł

y (

y (

persistent

persistent

)

)





Klasa mapowana na 

Klasa mapowana na 

obiekt danych

obiekt danych

(

(

np

np

.

.

database)

database)





Zawsze jest 

Zawsze jest 

transakcyjny

transakcyjny





Reprezentuje dane

Reprezentuje dane

Session Beans

Entity Beans

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

22

22

4

4

Message Bean

Message Bean

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

23

23

4

4

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

24

24

4

4

Dzi

Dzi

ę

ę

kuj

kuj

ę

ę

za uwag

za uwag

ę

ę