2013 ZTP 03

background image

1

3

3

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

3

3

Bussines

Bussines

Logic

Logic

Layer

Layer

Podczas projektowania warstwy logiki

Podczas projektowania warstwy logiki

bussinesowej mamy w zasadzie do

bussinesowej mamy w zasadzie do

wyboru dwie drogi :

wyboru dwie drogi :

Plain

Plain

Old Java

Old Java

Objects

Objects

(POJO)

(POJO)

Enterprise

Enterprise

Java

Java

Beans

Beans

(EJB 3.0)

(EJB 3.0)

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

3

3

3

3

Bussines

Bussines

Logic

Logic

Layer

Layer

Je

Je

ż

ż

eli potrzebujemy wsparcia wy

eli potrzebujemy wsparcia wy

łą

łą

cznie w

cznie w

zakresie obs

zakresie obs

ł

ł

ugi transakcji to mo

ugi transakcji to mo

ż

ż

emy

emy

wykorzysta

wykorzysta

ć

ć

JTA (Java

JTA (Java

Transaction

Transaction

API)

API)

Je

Je

ż

ż

eli korzysta

eli korzysta

ć

ć

b

b

ę

ę

dziemy np. z przetwarzania

dziemy np. z przetwarzania

rozproszonego (

rozproszonego (

distributed

distributed

computing

computing

) to

) to

mo

mo

ż

ż

emy wykorzysta

emy wykorzysta

ć

ć

zar

zar

ó

ó

wno RMI (

wno RMI (

Remote

Remote

Method

Method

Invocation

Invocation

) / RMI

) / RMI

-

-

IIOP (RMI

IIOP (RMI

over

over

Inter

Inter

Orb

Orb

-

-

Protocol

Protocol

) jak i Web Services

) jak i Web Services

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

4

4

3

3

Java

Java

Transaction

Transaction

API

API

Trzy zasadnicze elementy :

Trzy zasadnicze elementy :

1.Interfejs umo

1.Interfejs umo

ż

ż

liwiaj

liwiaj

ą

ą

cy realizacj

cy realizacj

ę

ę

linii

linii

demarkacyjnych na poziomie aplikacji

demarkacyjnych na poziomie aplikacji

2.Interfejs managera transakcji przewidziany do

2.Interfejs managera transakcji przewidziany do

wykorzystania przez serwer aplikacyjny

wykorzystania przez serwer aplikacyjny

3.Mechanizm mapowania protoko

3.Mechanizm mapowania protoko

ł

ł

u X/

u X/

Open

Open

XA

XA

dla potrzeb zarz

dla potrzeb zarz

ą

ą

dzania zasobami

dzania zasobami

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

5

5

3

3

Java

Java

Transaction

Transaction

API

API

Przyk

Przyk

ł

ł

ad :

ad :

bean

bean

-

-

managed

managed

transaction

transaction

, session

, session

bean

bean

@

@

Stateless

Stateless

@

@

TransactionManagement(BEAN

TransactionManagement(BEAN

)

)

public

public

class

class

ExampleBean

ExampleBean

{

{

@

@

Resource

Resource

private

private

UserTransaction

UserTransaction

tx

tx

;

;

public

public

void

void

example

example

() {

() {

// start a

// start a

transaction

transaction

tx.begin

tx.begin

();

();

// do

// do

work

work

//

//

commit

commit

it

it

tx.commit

tx.commit

();

();

}

}

}

}

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

6

6

3

3

Standard XA

Standard XA

XA

XA

eXtended

eXtended

Architecture

Architecture

Standard definiuj

Standard definiuj

ą

ą

cy spos

cy spos

ó

ó

b rozumienia

b rozumienia

(realizacji) transakcji globalnych

(realizacji) transakcji globalnych

(rozproszonych) w czasie realizacji kt

(rozproszonych) w czasie realizacji kt

ó

ó

rych

rych

nast

nast

ę

ę

puje dost

puje dost

ę

ę

p do wi

p do wi

ę

ę

cej ni

cej ni

ż

ż

jednego

jednego

repozytorium danych

repozytorium danych

Definiuje protok

Definiuje protok

ó

ó

ł

ł

dwufazowego zatwierdzania

dwufazowego zatwierdzania

transakcji dla zapewnienia sp

transakcji dla zapewnienia sp

ó

ó

jno

jno

ś

ś

ci danych

ci danych

(2PC :

(2PC :

two

two

-

-

phase

phase

commit

commit

)

)

background image

2

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

7

7

3

3

RMI

RMI

Remote

Remote

Method

Method

Invocation

Invocation

Obiekty zdalne s

Obiekty zdalne s

ą

ą

rejestrowane (RMI

rejestrowane (RMI

Registry)

Registry)

aplikacja mo

aplikacja mo

ż

ż

e pobra

e pobra

ć

ć

z

z

repozytorium

repozytorium

stub

stub

(trzpie

(trzpie

ń

ń

), pewien

), pewien

obiekt typu

obiekt typu

proxy

proxy

udost

udost

ę

ę

pniaj

pniaj

ą

ą

cy

cy

lokalnie po stronie klienta interfejs

lokalnie po stronie klienta interfejs

specyfikuj

specyfikuj

ą

ą

cy dost

cy dost

ę

ę

pne us

pne us

ł

ł

ugi (metody)

ugi (metody)

obiektu zdalnego

obiektu zdalnego

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

8

8

3

3

RMI

RMI

Remote

Remote

Method

Method

Invocation

Invocation

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

9

9

3

3

RMI

RMI

interfejs us

interfejs us

ł

ł

ugi

ugi

public

public

interface

interface

ExampleService

ExampleService

extends

extends

java.rmi.Remote

java.rmi.Remote

{

{

public

public

void

void

exampleMethod

exampleMethod

(

(

QQ

QQ

.)

.)

throws

throws

java.rmi.RemoteException

java.rmi.RemoteException

;

;

}

}

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

10

10

3

3

RMI

RMI

implementacja us

implementacja us

ł

ł

ugi

ugi

public

public

class

class

ExampleServiceImpl

ExampleServiceImpl

extends

extends

java.rmi.server.UnicastRemoteObject

java.rmi.server.UnicastRemoteObject

implements

implements

ExampleService

ExampleService

{

{

public

public

ExampleServiceImpl

ExampleServiceImpl

()

()

throws

throws

java.rmi.RemoteException

java.rmi.RemoteException

{

{

super;

super;

}

}

public

public

void

void

exampleMethod

exampleMethod

(

(

QQ

QQ

.)

.)

throws

throws

java.rmi.RemoteException

java.rmi.RemoteException

{

{

// body

// body

implementation

implementation

}

}

}

}

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

11

11

3

3

RMI

RMI

kompilacja implementacji

kompilacja implementacji

us

us

ł

ł

ugi

ugi

U

U

ż

ż

ywamy

ywamy

rmic

rmic

zamiast

zamiast

javac

javac

:

:

>

>

rmic

rmic

ExampleServiceImpl

ExampleServiceImpl

ExampleService.class

ExampleService.class

ExampleServiceImpl.class

ExampleServiceImpl.class

ExampleServiceImpl_Stub.class

ExampleServiceImpl_Stub.class

ExampleServiceImpl_Skel.class

ExampleServiceImpl_Skel.class

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

12

12

3

3

RMI

RMI

implementacja

implementacja

servera

servera

import

import

java.rmi.Naming

java.rmi.Naming

;

;

public

public

class

class

ExampleServer

ExampleServer

{

{

public

public

ExampleServer

ExampleServer

() {

() {

try

try

{

{

Server s =

Server s =

new

new

ExampleServiceImpl

ExampleServiceImpl

();

();

Naming.rebind

Naming.rebind

(

(

"

"

rmi

rmi

://localhost:1099/

://localhost:1099/

myService

myService

", s);

", s);

}

}

catch

catch

(

(

Exception

Exception

e) {

e) {

Q

Q

.. }

.. }

}

}

public

public

static

static

void

void

main(String

main(String

args

args

[]) {

[]) {

new

new

ExampleServer

ExampleServer

();

();

}

}

}

}

background image

3

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

13

13

3

3

RMI

RMI

implementacja klienta

implementacja klienta

import

import

java.rmi.Naming

java.rmi.Naming

;

;

import

import

java.rmi.RemoteException

java.rmi.RemoteException

;

;

import

import

java.net.MalformedURLException

java.net.MalformedURLException

;

;

import

import

java.rmi.NotBoundException

java.rmi.NotBoundException

;

;

public

public

class

class

ExampleClient

ExampleClient

{

{

public

public

static

static

void

void

main(String

main(String

[]

[]

args

args

) {

) {

try

try

{

{

ExampleService

ExampleService

e = (

e = (

ExampleService

ExampleService

)

)

Naming.lookup

Naming.lookup

(

(

"

"

rmi

rmi

://

://

localhost

localhost

/

/

myService

myService

");

");

e.exampleMethod

e.exampleMethod

(

(

Q

Q

..);

..);

}

}

catch

catch

(

(

MalformedURLException

MalformedURLException

murle

murle

) {

) {

Q

Q

.

.

}

}

catch

catch

(

(

RemoteException

RemoteException

re

re

) {

) {

Q

Q

.

.

}

}

catch

catch

(

(

NotBoundException

NotBoundException

nbe

nbe

) {

) {

Q

Q

.

.

}

}

catch

catch

(

(

java.lang.Exception

java.lang.Exception

ex) {

ex) {

QQ

QQ

}

}

}

}

}

}

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

14

14

3

3

Bussines

Bussines

Logic

Logic

Layer

Layer

Je

Je

ż

ż

eli oczekujemy wsparcia w zakresie :

eli oczekujemy wsparcia w zakresie :

transakcyjno

transakcyjno

ś

ś

ci (

ci (

transaction

transaction

control

control

)

)

dost

dost

ę

ę

pu zdalnego (

pu zdalnego (

remote

remote

access

access

)

)

klastrowania

klastrowania

(

(

clustering

clustering

)

)

pooling

pooling

trwa

trwa

ł

ł

o

o

ś

ś

ci / jako

ci / jako

ś

ś

ci danych (

ci danych (

persistence

persistence

)

)

cache

cache

Enterprise

Enterprise

Java

Java

Beans

Beans

s

s

ą

ą

w

w

ł

ł

a

a

ś

ś

ciwym

ciwym

rozwi

rozwi

ą

ą

zaniem

zaniem

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

15

15

3

3

Enterprise

Enterprise

Java

Java

Beans

Beans

Oryginalna specyfikacja

Oryginalna specyfikacja

IBM

IBM

a

a

pochodzi z

pochodzi z

1997 roku

1997 roku

-

-

bardzo krytykowane

bardzo krytykowane

rozwi

rozwi

ą

ą

zanie : przeznaczone dla

zanie : przeznaczone dla

wsparcia z

wsparcia z

ł

ł

o

o

ż

ż

onych problem

onych problem

ó

ó

w

w

samo

samo

w sobie by

w sobie by

ł

ł

o bardzo z

o bardzo z

ł

ł

o

o

ż

ż

one i trudno

one i trudno

zrozumia

zrozumia

ł

ł

e

e

EJB 1.0 oraz 1.1

EJB 1.0 oraz 1.1

specyfikacja rozwijana

specyfikacja rozwijana

i opublikowana przez Sun

i opublikowana przez Sun

Microsystems

Microsystems

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

16

16

3

3

Enterprise

Enterprise

Java

Java

Beans

Beans

Wszelkie dalsze specyfikacje zosta

Wszelkie dalsze specyfikacje zosta

ł

ł

y

y

stworzone z wykorzystaniem

stworzone z wykorzystaniem

JSRs

JSRs

(

(

Java

Java

Specification

Specification

Requests

Requests

) oraz

) oraz

weryfikowane / akceptowane z u

weryfikowane / akceptowane z u

ż

ż

yciem

yciem

JCP (

JCP (

Java Community

Java Community

Process

Process

)

)

Stan obecny : specyfikacja EJB 3.0

Stan obecny : specyfikacja EJB 3.0

pochodz

pochodz

ą

ą

ca z maja 2006 roku.

ca z maja 2006 roku.

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

17

17

3

3

Enterprise

Enterprise

Java

Java

Beans

Beans

Podstawowa koncepcja architektury SOA

Podstawowa koncepcja architektury SOA

(Service

(Service

Oriented

Oriented

Architecture

Architecture

) jest

) jest

oparta o poj

oparta o poj

ę

ę

cie us

cie us

ł

ł

ugi, kt

ugi, kt

ó

ó

r

r

ą

ą

definiuje

definiuje

si

si

ę

ę

zwykle jako

zwykle jako

discoverable resource that executes a

repeatable task, and is described by an
externalized service specification

.

( dający się wyszukać [w sieci] zasób, realizujący
powtarzalne zadanie [przetwarzania] i opisywany
przez zewnętrzną specyfikację usługi )

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

18

18

3

3

EJB as Services

EJB as Services

Komponenty EJB mog

Komponenty EJB mog

ą

ą

by

by

ć

ć

eksponowane na zewn

eksponowane na zewn

ą

ą

trz jako Web

trz jako Web

services, stwarzaj

services, stwarzaj

ą

ą

c tym samym

c tym samym

mo

mo

ż

ż

liwo

liwo

ść

ść

integracji z innymi us

integracji z innymi us

ł

ł

ugami

ugami

(powstaj

(powstaj

ą

ą

cymi w oparciu o inne

cymi w oparciu o inne

standardy) w celu budowy

standardy) w celu budowy

-

-

wype

wype

ł

ł

niaj

niaj

ą

ą

cych specyfikacj

cych specyfikacj

ę

ę

wymaga

wymaga

ń

ń

-

-

element

element

ó

ó

w Bussines

w Bussines

Application

Application

Service

Service

Layer

Layer

w architekturze SOA

w architekturze SOA

background image

4

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

19

19

3

3

EJB jako

EJB jako

WebServices

WebServices

serializacja

EJB

SOAP

EJB jako WebService

2014

2014

-

-

02

02

-

-

06

06

©

©

2014, Jerzy R. Jaworowski

2014, Jerzy R. Jaworowski

20

20

3

3

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

21

21

3

3

Dzi

Dzi

ę

ę

kuj

kuj

ę

ę

za uwag

za uwag

ę

ę


Wyszukiwarka

Podobne podstrony:
2013 01 03
2013 01 03
2013 ZTP 08
2013 ZTP 05
2013 ZTP 04
2013 ZTP 07
2013 ZTP 06
2013 07 03 Dec nr 182 MON WOG odznaki
2013 ZTP 00
2013 ZTP 02
2013 ZTP 01
2013 12 03 Znak zapytania zmiękczy wykład o gender
2013 04 03 Czerwona gwiazda kontra krzyż
2013 10 03 Blue Cactus nie wpuścił niewidomego
2013 12 03 Gender

więcej podobnych podstron