background image

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

background image

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

background image

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 ...

background image

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

ż

ż

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.

background image

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

ę

ę