1
2
2
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
2
2
Enterprise
Enterprise
Edition
Edition
(J2EE)
(J2EE)
Java Server Pages (
Java Server Pages (
JSPs
JSPs
)
)
Java
Java
Servlet
Servlet
Enterprise JavaBeans (
Enterprise JavaBeans (
EJBs
EJBs
)
)
JDBC
JDBC
Java Messaging Server (JMS)
Java Messaging Server (JMS)
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
3
3
2
2
Java Server
Java Server
Pages
Pages
(JSP)
(JSP)
Technologia s
Technologia s
ł
ł
u
u
ż
ż
y to tworzenia stron
y to tworzenia stron
dynamicznych
dynamicznych
Przetwarzanie (wykonywanie) po stronie
Przetwarzanie (wykonywanie) po stronie
serwera
serwera
Zorientowane na prezentacj
Zorientowane na prezentacj
ę
ę
tre
tre
ś
ś
ci
ci
projektanci stron nie musz
projektanci stron nie musz
ą
ą
my
my
ś
ś
le
le
ć
ć
o
o
programowaniu
programowaniu
Wygl
Wygl
ą
ą
da podobnie jak regularny HTML
da podobnie jak regularny HTML
(XML)
(XML)
zapis z wykorzystaniem
zapis z wykorzystaniem
tag
tag
’ó
’ó
w
w
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
4
4
2
2
Java
Java
Servlet
Servlet
Programowanie po stronie serwera
Programowanie po stronie serwera
Technologia rozszerza funkcjonalno
Technologia rozszerza funkcjonalno
ść
ść
serwera WEB
serwera WEB
Technologia niezale
Technologia niezale
ż
ż
na od serwera i
na od serwera i
platformy
platformy
Stanowi pomost do wykorzystania wielu
Stanowi pomost do wykorzystania wielu
innych technologii
innych technologii
Java
Java
’
’
y
y
Zorientowana na generowanie tre
Zorientowana na generowanie tre
ś
ś
ci
ci
programi
programi
ś
ś
ci nie musz
ci nie musz
ą
ą
si
si
ę
ę
zajmowa
zajmowa
ć
ć
warstw
warstw
ą
ą
prezentacji tre
prezentacji tre
ś
ś
ci
ci
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
5
5
2
2
Enterprise
Enterprise
Java
Java
Beans
Beans
(EJB)
(EJB)
Technologia zorientowana na
Technologia zorientowana na
ł
ł
atwo
atwo
ść
ść
wielokrotnego u
wielokrotnego u
ż
ż
ycia
ycia
komponent
komponent
ó
ó
w oprogramowania
w oprogramowania
mo
mo
ż
ż
liwo
liwo
ść
ść
ł
ł
atwej adaptacji istniej
atwej adaptacji istniej
ą
ą
cych
cych
komponent
komponent
ó
ó
w dla specyficznych potrzeb
w dla specyficznych potrzeb
Posiada
Posiada
interface
interface
’
’
y
y
umo
umo
ż
ż
liwiaj
liwiaj
ą
ą
ce
ce
komunikacj
komunikacj
ę
ę
z r
z r
ó
ó
ż
ż
nymi
nymi
ź
ź
r
r
ó
ó
d
d
ł
ł
ami danych
ami danych
bazy danych
bazy danych
istniej
istniej
ą
ą
ce systemy typu
ce systemy typu
Enterprise Information
Enterprise Information
Systems
Systems
W my
W my
ś
ś
l zasady
l zasady
„
„
Raz napisane i
Raz napisane i
uruchomione,
uruchomione,
wykorzystywane wielokrotnie, wsz
wykorzystywane wielokrotnie, wsz
ę
ę
dzie tam,
dzie tam,
gdzie jest potrzebne ...
gdzie jest potrzebne ...
”
”
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
6
6
2
2
Enterprise
Enterprise
Java
Java
Beans
Beans
(EJB)
(EJB)
Oparte na koncepcji rozproszonej
Oparte na koncepcji rozproszonej
architektury
architektury
Client/Server
Client/Server
Kod wykonywany po stronie serwera
Kod wykonywany po stronie serwera
‘
‘
bli
bli
ż
ż
ej do danych
ej do danych
’
’
‘
‘
mocniejsza maszyna
mocniejsza maszyna
’
’
ni
ni
ż
ż
po stronie
po stronie
klienta
klienta
Kod
Kod
‘
‘
lokalizowany
lokalizowany
’
’
po stronie serwera
po stronie serwera
zmiana programu po stronie serwera nie
zmiana programu po stronie serwera nie
wymaga jakichkolwiek zmian po stronie
wymaga jakichkolwiek zmian po stronie
klienta
klienta
2
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
7
7
2
2
JDBC
JDBC
Interface
Interface
dost
dost
ę
ę
pu do warstwy danych
pu do warstwy danych
Zapewnia jednolit
Zapewnia jednolit
ą
ą
metod
metod
ę
ę
dost
dost
ę
ę
pu do
pu do
wielu typ
wielu typ
ó
ó
w
w
ź
ź
r
r
ó
ó
de
de
ł
ł
danych, np. do
danych, np. do
baz danych
baz danych
arkuszy kalkulacyjnych
arkuszy kalkulacyjnych
plik
plik
ó
ó
w o strukturze p
w o strukturze p
ł
ł
askiej (np. tekstowych)
askiej (np. tekstowych)
Realizuje szereg operacji typowych, jak np.
Realizuje szereg operacji typowych, jak np.
pooling
pooling
po
po
łą
łą
cze
cze
ń
ń
do baz danych
do baz danych
aktualizacje w trybie
aktualizacje w trybie
batch
batch
update
update
realizacj
realizacj
ę
ę
i zarz
i zarz
ą
ą
dzanie transakcjami
dzanie transakcjami
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
8
8
2
2
Java
Java
Messaging
Messaging
Service
Service
(JMS)
(JMS)
Metoda komunikacji pomi
Metoda komunikacji pomi
ę
ę
dzy
dzy
sk
sk
ł
ł
adowymi (komponentami) programu
adowymi (komponentami) programu
Obs
Obs
ł
ł
uga dw
uga dw
ó
ó
ch typ
ch typ
ó
ó
w komunikacji
w komunikacji
Point
Point
-
-
to
to
-
-
point
point
jak poczta elektroniczna
jak poczta elektroniczna
Publish/Subscribe
Publish/Subscribe
jak lista dyskusyjna
jak lista dyskusyjna
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
9
9
2
2
Java
Java
Messaging
Messaging
Service
Service
(JMS)
(JMS)
Synchronicznie
Synchronicznie
Wys
Wys
ł
ł
ane raz, brak gwarancji,
ane raz, brak gwarancji,
ż
ż
e serwer
e serwer
odebra
odebra
ł
ł
Zagubione, je
Zagubione, je
ż
ż
eli nie odebrane
eli nie odebrane
Asynchronicznie
Asynchronicznie
Wysy
Wysy
ł
ł
ane dop
ane dop
ó
ó
ki odbi
ki odbi
ó
ó
r nie zostanie
r nie zostanie
potwierdzony
potwierdzony
Kolejkowane, dop
Kolejkowane, dop
ó
ó
ki nie zostanie
ki nie zostanie
odebrane
odebrane
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
10
10
2
2
Model warstwowy J2EE
Model warstwowy J2EE
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
11
11
2
2
Architektura (
Architektura (
wielo)warstwowa
wielo)warstwowa
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
12
12
2
2
Jako
Jako
ść
ść
i niezawodno
i niezawodno
ść
ść
•
•
Avaliability
Avaliability
•
•
Scalability
Scalability
•
•
Flexibility
Flexibility
•
•
Manageability
Manageability
3
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
13
13
2
2
Avaliability
Avaliability
(dost
(dost
ę
ę
pno
pno
ść
ść
N
N
)
)
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
14
14
2
2
Scalability
Scalability
(skalowalno
(skalowalno
ść
ść
N
N
)
)
•
•
Vertical
Vertical
(pionowa)
(pionowa)
–
–
zwi
zwi
ę
ę
kszanie mocy
kszanie mocy
obliczeniowej poprzez rozbudow
obliczeniowej poprzez rozbudow
ę
ę
wielko
wielko
ś
ś
ci pami
ci pami
ę
ę
ci lub zwi
ci lub zwi
ę
ę
kszenie mocy
kszenie mocy
CPU z zachowaniem istniej
CPU z zachowaniem istniej
ą
ą
cej ilo
cej ilo
ś
ś
ci
ci
w
w
ę
ę
z
z
ł
ł
ó
ó
w (serwer
w (serwer
ó
ó
w)
w)
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
15
15
2
2
Scalability
Scalability
(skalowalno
(skalowalno
ść
ść
N
N
)
)
•
•
Horizontal
Horizontal
(pozioma)
(pozioma)
–
–
dodanie jednego
dodanie jednego
lub wi
lub wi
ę
ę
kszej ilo
kszej ilo
ś
ś
ci w
ci w
ę
ę
z
z
ł
ł
ó
ó
w do tej samej
w do tej samej
infrastruktury
infrastruktury
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
16
16
2
2
Scalability
Scalability
-
-
konsekwencje
konsekwencje
•
•
Nale
Nale
ż
ż
y projektowa
y projektowa
ć
ć
rozwi
rozwi
ą
ą
zania niezale
zania niezale
ż
ż
ne
ne
od platformy dla umo
od platformy dla umo
ż
ż
liwienia
liwienia
upgrade
upgrade
’
’
u
u
w
w
ę
ę
z
z
ł
ł
ó
ó
w/serwer
w/serwer
ó
ó
w
w
•
•
Projektowa
Projektowa
ć
ć
pami
pami
ę
ę
taj
taj
ą
ą
c o konsekwencjach
c o konsekwencjach
stosowania techniki
stosowania techniki
‘
‘
load
load
balancing
balancing
’
’
:
:
kolejne
kolejne
żą
żą
dania (
dania (
client
client
requests
requests
)
)
niekoniecznie s
niekoniecznie s
ą
ą
realizowane przez ten sam
realizowane przez ten sam
serwer (a wi
serwer (a wi
ę
ę
c danych nie mo
c danych nie mo
ż
ż
na
na
utrzymywa
utrzymywa
ć
ć
w pami
w pami
ę
ę
ci aplikacji)
ci aplikacji)
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
17
17
2
2
Flexibility
Flexibility
(elastyczno
(elastyczno
ść
ść
N
N
)
)
•
•
zdolno
zdolno
ść
ść
system
system
ó
ó
w komponentowych
w komponentowych
do integracji z r
do integracji z r
ó
ó
ż
ż
nymi technologiami,
nymi technologiami,
zmieniaj
zmieniaj
ą
ą
cym si
cym si
ę
ę
otoczeniem serwera
otoczeniem serwera
aplikacyjnego, niezale
aplikacyjnego, niezale
ż
ż
no
no
ść
ść
od
od
dostawcy softwaru i hardwaru
dostawcy softwaru i hardwaru
•
•
zmiany platformy technologicznej
zmiany platformy technologicznej
powinny mie
powinny mie
ć
ć
minimalny wp
minimalny wp
ł
ł
yw na
yw na
‘
‘
business
business
process
process
’
’
(ale r
(ale r
ó
ó
wnie
wnie
ż
ż
na
na
odwr
odwr
ó
ó
t !!!)
t !!!)
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
18
18
2
2
Manageability
Manageability
•
•
zdolno
zdolno
ść
ść
do utrzymania integralno
do utrzymania integralno
ś
ś
ci
ci
systemu w przypadku wyst
systemu w przypadku wyst
ą
ą
pienia
pienia
b
b
łę
łę
d
d
ó
ó
w oraz
w oraz
‘
‘
przewidywalny
przewidywalny
’
’
spos
spos
ó
ó
b
b
reakcji w warunkach b
reakcji w warunkach b
łę
łę
du (absolutne
du (absolutne
minimum : zapis do logu)
minimum : zapis do logu)
•
•
aktywne informowanie (notyfikacje) o
aktywne informowanie (notyfikacje) o
stanie systemu (
stanie systemu (
heartbeat
heartbeat
)
)
–
–
technika
technika
na tyle skuteczna na ile skuteczne s
na tyle skuteczna na ile skuteczne s
ą
ą
narz
narz
ę
ę
dzia u
dzia u
ż
ż
yte do monitorowania
yte do monitorowania
pracy aplikacji
pracy aplikacji
4
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
19
19
2
2
Wzorce architektury
Wzorce architektury
F.
F.
Buschmann
Buschmann
, R.
, R.
Meunier
Meunier
, H.
, H.
Rohnert
Rohnert
,
,
P.Sommerlad
P.Sommerlad
, and M. Stal (1996)
, and M. Stal (1996)
“
“
...
...
expresses
expresses
a
a
fundamental
fundamental
structural
structural
organization
organization
or
or
schema
schema
for software
for software
systems.
systems.
It
It
provides
provides
a set of
a set of
predefined
predefined
subsystems
subsystems
,
,
specifies
specifies
their
their
responsibilities
responsibilities
, and
, and
includes
includes
rules
rules
and
and
guidelines
guidelines
for
for
organizing
organizing
the
the
relationships
relationships
between
between
them
them
.
.
”
”
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
20
20
2
2
Model
Model
View
View
Controller
Controller
(MVC)
(MVC)
•
•
‘
‘
model
model
’
’
opisuje logik
opisuje logik
ę
ę
bussines
bussines
’
’
ow
ow
ą
ą
oraz spos
oraz spos
ó
ó
b reprezentacji danych
b reprezentacji danych
aplikacji
aplikacji
•
•
‘
‘
view
view
’
’
prezentuje dane aplikacji
prezentuje dane aplikacji
u
u
ż
ż
ytkownikowi oraz akceptuje dane
ytkownikowi oraz akceptuje dane
wej
wej
ś
ś
ciowe
ciowe
•
•
‘
‘
controller
controller
’
’
steruje przebiegiem procesu
steruje przebiegiem procesu
oraz oraz przesy
oraz oraz przesy
ł
ł
aniem/dystrybucj
aniem/dystrybucj
ą
ą
(
(
dispatch
dispatch
)
)
żą
żą
da
da
ń
ń
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
21
21
2
2
Model
Model
View
View
Controller
Controller
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
22
22
2
2
Service
Service
Oriented
Oriented
Architecture
Architecture
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
23
23
2
2
Service
Service
Oriented
Oriented
Architecture
Architecture
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
24
24
2
2
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
5
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
25
25
2
2
Dzi
Dzi
ę
ę
kuj
kuj
ę
ę
za uwag
za uwag
ę
ę