1
1
1
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
1
1
Architektura 3
Architektura 3
-
-
warstwowa
warstwowa
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
3
3
1
1
Simple
Simple
Web
Web
App
App
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
4
4
1
1
Complex
Complex
Web
Web
App
App
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
5
5
1
1
Extended
Extended
Web
Web
App
App
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
6
6
1
1
Smart
Smart
Client
Client
App
App
2
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
7
7
1
1
Application
Application
OS
OS
JVM
JVM
App
App
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
8
8
1
1
Applet
Applet
OS
OS
JVM
JVM
App
App
OS
OS
Browser
Browser
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
9
9
1
1
Servlet
Servlet
/ JSP
/ JSP
OS
OS
JVM
JVM
AS
AS
OS
OS
Browser
Browser
Container
Container
D
D
A
A
B
B
C
C
E
E
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
10
10
1
1
EJB
EJB
(
(
Entrprise
Entrprise
Java
Java
Bean
Bean
)
)
EJB Server
EJB Server
OS
OS
JVM
JVM
AS
AS
OS
OS
Browser
Browser
Container
Container
D
D
C
C
E
E
B
B
A
A
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
11
11
1
1
EJB
EJB
OS
OS
Browser
Browser
EJB Server
EJB Server
OS
OS
JVM
JVM
AS
AS
Container
Container
D
D
C
C
E
E
B
B
A
A
EJB Server
EJB Server
OS
OS
JVM
JVM
AS
AS
Container
Container
D
D
C
C
E
E
B
B
A
A
EJB Server
EJB Server
OS
OS
JVM
JVM
AS1
AS1
Container
Container
D
D
C
C
B
B
A
A
EJB Server
EJB Server
OS
OS
JVM
JVM
AS2
AS2
Container
Container
N
N
L
L
K
K
M
M
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
12
12
1
1
Czym jest Java ?
Czym jest Java ?
J
J
ę
ę
zyk programowania
zyk programowania
Niezale
Niezale
ż
ż
ny od platformy
ny od platformy
Program stworzony w otoczeniu systemu
Program stworzony w otoczeniu systemu
operacyjnego jednej maszyny ...
operacyjnego jednej maszyny ...
... bez modyfikacji pracuje na innej
... bez modyfikacji pracuje na innej
Program raz napisany i uruchomiony
Program raz napisany i uruchomiony
pracuje w dowolnym innym
pracuje w dowolnym innym
ś
ś
rodowisku
rodowisku
Java Virtual Machine (JVM)
Java Virtual Machine (JVM)
Interpretuje program w
Interpretuje program w
Java
Java
’
’
ie
ie
3
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
13
13
1
1
Jak to dzia
Jak to dzia
ł
ł
a ?
a ?
Dwustopniowe t
Dwustopniowe t
ł
ł
umaczenie
umaczenie
Pierwotna kompilacja
Pierwotna kompilacja
Dokonywana przez programist
Dokonywana przez programist
ę
ę
Proces niezale
Proces niezale
ż
ż
ny od platformy
ny od platformy
Etap drugi
Etap drugi
Interpretacja realizowana przez
Interpretacja realizowana przez
JVM (Java Virtual
JVM (Java Virtual
Machine)
Machine)
Zale
Zale
ż
ż
ny od platformy
ny od platformy
Nie wymaga jakiejkolwiek dalszej interakcji z
Nie wymaga jakiejkolwiek dalszej interakcji z
u
u
ż
ż
ytkownikiem
ytkownikiem
Brak interakcji z plikiem
Brak interakcji z plikiem
ź
ź
r
r
ó
ó
d
d
ł
ł
owym programu
owym programu
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
14
14
1
1
Java
Java
-
-
zalety
zalety
Koszty
Koszty
Archite
Archite
k
k
tur
tur
a
a
Przeno
Przeno
ś
ś
no
no
ść
ść
(p
(p
ortability
ortability
)
)
Wielokrotne u
Wielokrotne u
ż
ż
ycie (r
ycie (r
eusability
eusability
)
)
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
15
15
1
1
Zalety
Zalety
-
-
koszty
koszty
Koszty zakupu oprogramowania stanowi
Koszty zakupu oprogramowania stanowi
ą
ą
zwykle istotny element koszt
zwykle istotny element koszt
ó
ó
w systemu
w systemu
Java
Java
dost
dost
ę
ę
pna jest nieodp
pna jest nieodp
ł
ł
atnie
atnie
... niezale
... niezale
ż
ż
nie od
nie od
łą
łą
cznej ilo
cznej ilo
ś
ś
ci u
ci u
ż
ż
ytkownik
ytkownik
ó
ó
w
w
Narz
Narz
ę
ę
dzia dla
dzia dla
development
development
’
’
u
u
s
s
ą
ą
r
r
ó
ó
wnie
wnie
ż
ż
dost
dost
ę
ę
pne nieodp
pne nieodp
ł
ł
atnie
atnie
E
E
dytory
dytory
,
,
ś
ś
rodowiska uruchomieniowe
rodowiska uruchomieniowe
Enterprise Servers
Enterprise Servers
Nieodp
Nieodp
ł
ł
atne narz
atne narz
ę
ę
dzia + nieodp
dzia + nieodp
ł
ł
atny j
atny j
ę
ę
zyk =
zyk =
kolejne nieodp
kolejne nieodp
ł
ł
atnie rozwi
atnie rozwi
ą
ą
zania
zania
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
16
16
1
1
Zalety
Zalety
-
-
architektura
architektura
Java rozpowszechniana jest
Java rozpowszechniana jest
nieodp
nieodp
ł
ł
atnie
atnie
Zarz
Zarz
ą
ą
dzana / rozwijana przez
dzana / rozwijana przez
‘
‘
spo
spo
ł
ł
eczno
eczno
ść
ść
’
’
ż
ż
adna z firm nie jest
adna z firm nie jest
‘
‘
w
w
ł
ł
a
a
ś
ś
cicielem
cicielem
’
’
Java
Java
’
’
y
y
Ka
Ka
ż
ż
dego dnia u
dego dnia u
ż
ż
ytkownicy dostarczaj
ytkownicy dostarczaj
ą
ą
nowych pomys
nowych pomys
ł
ł
ó
ó
w / idei
w / idei
nowego kodu (nowych klas)
nowego kodu (nowych klas)
rozwi
rozwi
ą
ą
za
za
ń
ń
sygnalizowanych problem
sygnalizowanych problem
ó
ó
w (b
w (b
łę
łę
d
d
ó
ó
w)
w)
Java znajduje si
Java znajduje si
ę
ę
‘
‘
pod kontrol
pod kontrol
ą
ą
’
’
ka
ka
ż
ż
dego z
dego z
programist
programist
ó
ó
w korzystaj
w korzystaj
ą
ą
cych z tego
cych z tego
ś
ś
rodowiska
rodowiska
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
17
17
1
1
Zalety
Zalety
-
-
przeno
przeno
ś
ś
no
no
ść
ść
Java
Java
jest niezale
jest niezale
ż
ż
na od platformy
na od platformy
sprz
sprz
ę
ę
towej
towej
program mo
program mo
ż
ż
e by
e by
ć
ć
wykonywany w
wykonywany w
r
r
ó
ó
ż
ż
nych otoczeniach sprz
nych otoczeniach sprz
ę
ę
towo
towo
-
-
programowych
programowych
Pliki skompilowane mog
Pliki skompilowane mog
ą
ą
by
by
ć
ć
kompresowane
kompresowane
Pliki skompresowane znane s
Pliki skompresowane znane s
ą
ą
jako pliki
jako pliki
Jar
Jar
Pliki typu
Pliki typu
Jar
Jar
s
s
ą
ą
‘
‘
wykonywane
wykonywane
’
’
proces wykonania nie wymaga oddzielnej fazy
proces wykonania nie wymaga oddzielnej fazy
dekompresji
dekompresji
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
18
18
1
1
Zalety
Zalety
-
-
reusability
reusability
Reusability
Reusability
–
–
mo
mo
ż
ż
liwo
liwo
ść
ść
wielokrotnego
wielokrotnego
wykorzystania raz napisanego kodu
wykorzystania raz napisanego kodu
uprzednio napisany kod wykorzystaj w
uprzednio napisany kod wykorzystaj w
bie
bie
żą
żą
cym projekcie
cym projekcie
niekoniecznie Tw
niekoniecznie Tw
ó
ó
j w
j w
ł
ł
asny kod
asny kod
Kto
Kto
ś
ś
inny wykona
inny wykona
ł
ł
prac
prac
ę
ę
koncepcyjn
koncepcyjn
ą
ą
i uruchomieniow
i uruchomieniow
ą
ą
za Ciebie
za Ciebie
Wykorzystaj prac
Wykorzystaj prac
ę
ę
innych (zgodnie z
innych (zgodnie z
warunkami licencji !!!)
warunkami licencji !!!)
Oszcz
Oszcz
ę
ę
dzaj czas ...
dzaj czas ...
4
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
19
19
1
1
Java
Java
-
-
wady
wady
Rozmiar kodu
Rozmiar kodu
Wydajno
Wydajno
ść
ść
Do
Do
kumentacja
kumentacja
Dubluj
Dubluj
ą
ą
ca si
ca si
ę
ę
funkcjonalno
funkcjonalno
ś
ś
ć
ć
Classpath
Classpath
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
20
20
1
1
Wady
Wady
–
–
rozmiar kodu
rozmiar kodu
Kluczowym zagadnieniem jest rozmiar
Kluczowym zagadnieniem jest rozmiar
kodu
kodu
kodu programu
kodu programu
kodu pomocy (
kodu pomocy (
helper
helper
’
’
s
s
)
)
Virtual Machine (JVM)
Virtual Machine (JVM)
Program w
Program w
Java
Java
’
’
ie
ie
wymaga
wymaga
JVM
JVM
JVM
JVM
posiada du
posiada du
ż
ż
e rozmiary
e rozmiary
Istotnie wi
Istotnie wi
ę
ę
ksze zapotrzebowanie na pami
ksze zapotrzebowanie na pami
ęć
ęć
Du
Du
ż
ż
e rozmiary kodu utrudniaj
e rozmiary kodu utrudniaj
ą
ą
dystrybucj
dystrybucj
ę
ę
oprogramowania
oprogramowania
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
21
21
1
1
Wady
Wady
-
-
wydajno
wydajno
ść
ść
Kod interpretowany jest mniej wydajny
Kod interpretowany jest mniej wydajny
od kodu
od kodu
natywnego
natywnego
W pe
W pe
ł
ł
ni dynamiczne zarz
ni dynamiczne zarz
ą
ą
dzanie
dzanie
pami
pami
ę
ę
ci
ci
ą
ą
(
(
garbage
garbage
collector
collector
–
–
czas
czas
niezb
niezb
ę
ę
dny na odzyskiwanie
dny na odzyskiwanie
nieu
nieu
ż
ż
ywanych obiekt
ywanych obiekt
ó
ó
w)
w)
Mechanizmy zarz
Mechanizmy zarz
ą
ą
dzania pami
dzania pami
ę
ę
ci
ci
ą
ą
trwa
trwa
łą
łą
(
(
persistance
persistance
)
)
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
22
22
1
1
Wady
Wady
-
-
dokumentacja
dokumentacja
Nie
Nie
zawsze
zawsze
kompletna
kompletna
Napisana bardzo
Napisana bardzo
‘
‘
technicznym
technicznym
’
’
j
j
ę
ę
zykiem co wyd
zykiem co wyd
ł
ł
u
u
ż
ż
a czas nauczania
a czas nauczania
W efekcie programowanie w
W efekcie programowanie w
Java
Java
’
’
ie
ie
mo
mo
ż
ż
e
e
wymaga
wymaga
ć
ć
du
du
ż
ż
ego
ego
samozaparcia (w przypadku np.
samozaparcia (w przypadku np.
nieoczekiwanych
nieoczekiwanych
p
p
roblem
roblem
ó
ó
w
w
z
z
dzia
dzia
ł
ł
aniem programu)
aniem programu)
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
23
23
1
1
Wady
Wady
–
–
‘
‘
mo
mo
ż
ż
e wszystko
e wszystko
’
’
Platforma trudna do wyboru
Platforma trudna do wyboru
‘
‘
a priori
a priori
’
’
w
w
ł
ł
a
a
ś
ś
ciwej technologii realizacji
ciwej technologii realizacji
‘
‘
nak
nak
ł
ł
adaj
adaj
ą
ą
ca si
ca si
ę
ę
’
’
funkcjonalno
funkcjonalno
ść
ść
Metoda pr
Metoda pr
ó
ó
b i b
b i b
łę
łę
d
d
ó
ó
w pozostaje cz
w pozostaje cz
ę
ę
sto
sto
jedynym ratunkiem (co oczywi
jedynym ratunkiem (co oczywi
ś
ś
cie
cie
wyd
wyd
ł
ł
u
u
ż
ż
a czas poszukiwania
a czas poszukiwania
rozwi
rozwi
ą
ą
zania)
zania)
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
24
24
1
1
Java Development Kit (JDK)
Java Development Kit (JDK)
•
•
JDK 1.4
JDK 1.4
•
•
JDK 1.5 (JDK 5)
JDK 1.5 (JDK 5)
Java
Java
Control
Control
Panel
Panel
Wi
Wi
ę
ę
ksza wydajno
ksza wydajno
ść
ść
Funkcje
Funkcje
Wi
Wi
ę
ę
ksze bezpiecze
ksze bezpiecze
ń
ń
stwo
stwo
•
•
JDK 1.6 (JDK 6)
JDK 1.6 (JDK 6)
–
–
Ulepszono wydajno
Ulepszono wydajno
ść
ść
i stabilno
i stabilno
ść
ść
.
.
–
–
Zapewniono lepsz
Zapewniono lepsz
ą
ą
zgodno
zgodno
ść
ść
z wcze
z wcze
ś
ś
niejszymi
niejszymi
wersjami
wersjami
ś
ś
rodowiska JRE.
rodowiska JRE.
–
–
Dodano wa
Dodano wa
ż
ż
ne poprawki b
ne poprawki b
łę
łę
d
d
ó
ó
w.
w.
–
–
Aktualizacje automatyczne zapewniaj
Aktualizacje automatyczne zapewniaj
ą
ą
natychmiastowy dost
natychmiastowy dost
ę
ę
p do krytycznych poprawek
p do krytycznych poprawek
i aktualizacji.
i aktualizacji.
5
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
25
25
1
1
Java Development Kit (JDK)
Java Development Kit (JDK)
•
•
JDK 1.7 (JDK 7)
JDK 1.7 (JDK 7)
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
26
26
1
1
Java Development Kit (JDK)
Java Development Kit (JDK)
•
•
JDK 1.
JDK 1.
8
8
(JDK
(JDK
8
8
)
)
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
27
27
1
1
Kto
Kto
powinien
powinien
u
u
ż
ż
ywa
ywa
ć
ć
Java
Java
’
’
y
y
?
?
Programi
Programi
ś
ś
ci, kt
ci, kt
ó
ó
rzy
rzy
:
:
Implementuj
Implementuj
ą
ą
systemy klasy
systemy klasy
Enterprise
Enterprise
(w uproszczeniu
(w uproszczeniu
‘
‘
du
du
ż
ż
e systemy
e systemy
’
’
)
)
Komunikuj
Komunikuj
ą
ą
si
si
ę
ę
lub wsp
lub wsp
ó
ó
ł
ł
pracuj
pracuj
ą
ą
z innymi
z innymi
systemami oprogramowania pozostaj
systemami oprogramowania pozostaj
ą
ą
cymi
cymi
poza obszarem ich kontroli
poza obszarem ich kontroli
Oczekuj
Oczekuj
ą
ą
maksymalnej elastyczno
maksymalnej elastyczno
ś
ś
ci
ci
Zarz
Zarz
ą
ą
dzaj
dzaj
ą
ą
du
du
ż
ż
ymi serwerami
ymi serwerami
WEB
WEB
’
’
owymi
owymi
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
28
28
1
1
Java Development Kit (JDK)
Java Development Kit (JDK)
J2SE
J2EE
J2ME
JDK 1.4
JDK 1.*
JDK 1.7
JDK 1.8
J2SE
J2EE
J2ME
Java *
Java EE *
Java 7
Java EE 7
Java 8
Java EE 8
2014
2014
-
-
02
02
-
-
06
06
©
©
2014, Jerzy R. Jaworowski
2014, Jerzy R. Jaworowski
29
29
1
1
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
30
30
1
1
Dzi
Dzi
ę
ę
kuj
kuj
ę
ę
za uwag
za uwag
ę
ę