background image

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

background image

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

ó

ó

ź

ź

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

background image

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

ó

ó

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

background image

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

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

background image

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

ę

ę