BSE - TU Dresden

38
CBSE, © Prof. Uwe Aßmann 1 11b) Classical Component Systems – CORBA Prof. Dr. Uwe Aßmann Florian Heidenreich Technische Universität Dresden Institut für Software- und Multimediatechnik http://st.inf.tu-dresden.de 11-0.2, Mai 4, 2011 1. Basic mechanisms for modularity, exchangability, adaptation, transparency 2. Composition technique (connections) 1. Dynamic Call 2. Traded Call 3. Evaluation according to our criteria list 4. CORBA Services 5. CORBA Facilities Prof. U. Aßmann, CBSE 2 Obligatory Reading ISC, 3.1-3.3 Szyperski 2 nd edition, Chap 13 http://java.sun.com/javase/6/docs/technotes/guides/idl/ http://java.sun.com/developer/technicalArticles/releases/corba/

Transcript of BSE - TU Dresden

Page 1: BSE - TU Dresden

CB

SE

, © P

rof.

Uw

e A

ßman

n 1

11b)

Cla

ssic

al C

ompo

nent

Sys

tem

s –

CO

RB

A

Pro

f. D

r. U

we

Aßm

ann

Flor

ian

Hei

denr

eich

Te

chni

sche

Uni

vers

ität D

resd

en

Inst

itut f

ür S

oftw

are-

und

M

ultim

edia

tech

nik

http

://st

.inf.t

u-dr

esde

n.de

11

-0.2

, Mai

4, 2

011

1. 

Bas

ic m

echa

nism

s fo

r m

odul

arity

, exc

hang

abili

ty,

adap

tatio

n, tr

ansp

aren

cy

2. 

Com

posi

tion

tech

niqu

e (c

onne

ctio

ns)

1. 

Dyn

amic

Cal

l 2. 

Trad

ed C

all

3. 

Eva

luat

ion

acco

rdin

g to

our

cr

iteria

list

4. 

CO

RB

A S

ervi

ces

5. 

CO

RB

A Fa

cilit

ies

Pro

f. U

. Aßm

ann,

CB

SE

2

Obl

igat

ory

Rea

ding

► 

ISC

, 3.1

-3.3

► 

Szy

pers

ki 2

nd e

ditio

n, C

hap

13

► 

http

://ja

va.s

un.c

om/ja

vase

/6/d

ocs/

tech

note

s/gu

ides

/idl/

► 

http

://ja

va.s

un.c

om/d

evel

oper

/tech

nica

lArti

cles

/rele

ases

/cor

ba/

Page 2: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

3

Lite

ratu

re

► 

R. O

rfali,

D. H

arke

y: C

lient

/Ser

ver p

rogr

amm

ing

with

Jav

a an

d C

orba

. Wile

y&S

ons.

eas

y to

read

. ► 

R. O

rfali,

D. H

arke

y, J

. Edw

ards

: Ins

tant

Cor

ba. A

ddis

on-W

esle

y.

► 

CO

RB

A. C

omm

unic

atio

ns o

f the

AC

M, O

ct. 1

998.

All

artic

les.

O

verv

iew

on

CO

RB

A 3

.0.

► 

CO

RB

A 3

.1 s

peci

ficat

ion:

http

://w

ww

.om

g.or

g/sp

ec/C

OR

BA

/3.1

/ ► 

Jens

-Pet

er R

edlic

h, C

OR

BA

2.0

/ P

rakt

isch

e E

infü

hrun

g fü

r C++

und

Ja

va. V

erla

g: A

ddis

on-W

esle

y, 1

996.

ISB

N: 3

-827

3-10

60-1

Pro

f. U

. Aßm

ann,

CB

SE

4

The

CO

RB

A V

isio

n

One

Rep

osito

ry to

regi

ster

them

all,

One

Rep

osito

ry to

find

them

, O

ne R

epos

itory

to s

tart

them

all,

and

with

IIO

P b

ind

them

In

the

land

of C

OR

BA

whe

re th

e ob

ject

s lie

.

(J. S

iege

l, af

ter J

.J.R

. Tol

kien

)

Page 3: BSE - TU Dresden

CB

SE

, © P

rof.

Uw

e A

ßman

n 5

11b.

1 B

asic

Mec

hani

sms

Pro

f. U

. Aßm

ann,

CB

SE

6

CO

RB

A

► 

Com

mon

Obj

ect R

eque

st B

roke

r Arc

hite

ctur

► 

Foun

ding

yea

r of t

he O

MG

(obj

ect m

anag

emen

t gro

up) 1

989

► 

Goa

l: pl

ug-a

nd-p

lay

com

pone

nts

ever

ywhe

re

► 

Cor

ba 1

.1 1

991

(IDL,

OR

B, B

OA

) ► 

OD

MG

-93

(Sta

ndar

d fo

r OO

-dat

abas

es)

► 

Cor

ba 2

.0 1

995,

late

r 2.2

and

2.4

► 

Cor

ba 3

.0 1

999

Page 4: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

7

Ingr

edie

nts

of C

OR

BA

► 

Com

pone

nt M

odel

■ 

Com

pone

nts

are

clas

ses

and

obje

cts,

i.e.

, sim

ilar t

o ob

ject

-orie

nted

sof

twar

e . 

In C

OR

BA

3.0

, the

CC

M h

as a

dditi

onal

ly b

een

intro

duce

d

■ C

ompo

nent

s ha

ve m

ore

com

pone

nt s

ecre

ts

. La

ngua

ge in

tero

pera

bilit

y by

uni

form

inte

rface

des

crip

tion

. Lo

catio

n tra

nspa

renc

y . 

Nam

e tra

nspa

renc

y . 

Tran

spar

ent n

etw

ork

prot

ocol

s ■ 

Sta

ndar

diza

tion

. C

OR

BA

Ser

vice

s . 

CO

RB

A F

acili

ties

n 

Hor

izon

tal v

s. v

ertic

al

► 

Com

posi

tion

Tech

niqu

es

■ A

dapt

atio

n by

stu

bs a

nd s

kele

tons

■ 

CO

RB

A M

OF

for m

etam

odel

ling

Pro

f. U

. Aßm

ann,

CB

SE

8

OM

A (O

bjec

t Man

agem

ent A

rchi

tect

ure)

► 

A s

oftw

are

bus,

bas

ed o

n th

e M

edia

tor (

Bro

ker)

des

ign

patte

rn

■ C

oupl

ed b

y de

cora

tor-

conn

ecto

rs

Obj

ect R

eque

st B

roke

r

Obj

ect S

ervi

ces

App

licat

ion

Inte

rface

s D

omai

n In

terfa

ces

Com

mon

Fa

cilit

ies

Page 5: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

9

Cor

ba’s

Hyd

roce

phal

us

► 

Cor

ba is

larg

e ■ 

Obj

ect R

eque

st B

roke

r – 2

000

page

s of

spe

cific

atio

n ■ 

Obj

ect S

ervi

ces

– 30

0 pa

ges

■ C

omm

on F

acili

ties

– 15

0 pa

ges

► 

Tech

nica

l rea

sons

■ 

Cle

an d

etai

led

solu

tion

■ S

omet

imes

ove

rkill

► 

Soc

iolo

gic

reas

ons

■ O

MG

is la

rge

(ove

r 800

par

tner

s) a

nd h

eter

ogen

ic

■ S

tand

ard

cove

rs a

wid

e ra

ge

► 

Ling

uist

ic re

ason

s ■ 

Tons

of u

nint

uitiv

e 3-

capi

tals

-nam

es (O

MG

, OR

B, I

DL,

…)

Pro

f. U

. Aßm

ann,

CB

SE

10

The

Top

Cla

ss C

OR

BA

::Obj

ect

CO

RB

A::O

bjec

t

get_

impl

emen

tatio

n ge

t_in

terf

ace

is_n

il is

_a

crea

te_r

eque

st

dupl

icat

e re

leas

e ...

.

► 

The

clas

s C

OR

BA

::Obj

ect

defin

es a

com

pone

nt m

odel

■ 

The

clas

s m

ust b

e in

herit

ed to

al

l obj

ects

in th

e ap

plic

atio

n ► 

CO

RB

A su

ppor

ts re

flect

ion

and

intro

spec

tion:

■ 

get_

inte

rface

del

iver

s a

refe

renc

e to

the

entry

in th

e in

terfa

ce re

posi

tory

■ 

get_

impl

emen

tatio

n a

refe

renc

e to

the

impl

emen

tatio

n ► 

Ref

lect

ion

wor

ks b

y th

e in

terfa

ce re

posi

tory

(li

st_i

nitia

l_re

fere

nces

from

the

CO

RB

A::O

RB

inte

rface

).

Page 6: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

11

Prob

lem

: Mul

tiple

Inhe

ritan

ce o

f CO

RB

A

Obj

ect

► 

CO

RB

A::O

bjec

t inc

lude

s co

de in

to a

cla

ss

► 

Man

y la

ngua

ges

only

offe

r onl

y si

ngle

inhe

ritan

ce

■ A

pplic

atio

n su

per c

lass

mus

t be

a de

lega

tee

■ C

ould

be

solv

ed b

y m

ixin

inhe

ritan

ce (m

ixin

laye

rs)

CO

RB

A::O

bjec

t

App

licat

ionC

lass

th

at n

eeds

co

nnec

tion

App

licat

ionC

lass

S

uper

Cla

ss

CO

RB

A::O

bjec

t

App

licat

ionC

lass

th

at n

eeds

co

nnec

tion

App

licat

ionC

lass

S

uper

Cla

ss

CB

SE

, © P

rof.

Uw

e A

ßman

n 12

11b.

2 C

ompo

sitio

n Te

chni

que

of

CO

RB

A

(Bas

ic C

OR

BA

Con

nect

ions

)

Page 7: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

13

Bas

ic C

onne

ctio

ns in

CO

RB

A

► 

CO

RB

A c

ompo

ses

com

pone

nts

with

con

nect

ions

■ 

Sta

tic m

etho

d ca

ll w

ith s

tatic

stu

bs a

nd s

kele

tons

. 

Loca

l or r

emot

e ■ 

Pol

ymor

phic

cal

l . 

Loca

l or r

emot

e ■ 

Eve

nt tr

ansm

issi

on

■ C

allb

ack

(sim

plifi

ed O

bser

ver p

atte

rn)

■ D

ynam

ic in

voca

tion

(DII,

requ

est b

roki

ng)

. S

earc

hing

ser

vice

s dy

nam

ical

ly in

the

web

(loc

atio

n tra

nspa

renc

y of

a s

ervi

ce)

■ Tr

adin

g . 

Find

ser

vice

s in

a y

ello

w p

ages

ser

vice

, bas

ed o

n pr

oper

ties

Pro

f. U

. Aßm

ann,

CB

SE

14

Stat

ic C

OR

BA

Cal

l

► 

Adv

anta

ge: m

etho

ds o

f the

par

ticip

ants

are

sta

tical

ly k

now

n

■ In

dire

ct c

all b

y st

ub a

nd s

kele

tons

, with

out i

nvol

vem

ent o

f an

OR

B

■ S

uppo

rts d

istri

butio

n (e

xcha

nge

of lo

cal c

all i

n on

e ad

dres

s sp

ace

to re

mot

e ca

ll is

ve

ry e

asy)

. 

Inhe

rit fr

om C

OR

BA

cla

ss

. W

rite

an ID

L sp

ec

■ N

o se

arch

for s

ervi

ce o

bjec

ts, r

athe

r fas

t ■ 

Bet

ter t

ype

chec

k, s

ince

the

com

pile

r kno

ws

the

invo

lved

type

s

► 

The

call

goes

thro

ugh

the

serv

er o

bjec

t ada

pter

(ser

ver d

ecor

ator

) ■ 

Bas

ic (s

erve

r) o

bjec

t ada

pter

(BO

A)

■ P

orta

ble

(ser

ver)

obj

ect a

dapt

er (P

OA

) ■ 

This

hid

es th

e w

heth

er th

e se

rver

is tr

ansi

ent o

r per

sist

ent

Page 8: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

15

Bas

ic O

bjec

t Ada

pter

BO

A

► 

The

BO

A h

ides

■ 

Life

tim

e of

the

serv

er o

bjec

t (a

ctiv

atio

n: s

tart,

sto

p)

■ P

ersi

sten

cy

► 

The

BO

A is

impl

emen

ted

in

ever

y O

RB

, for

min

imal

ser

vice

pr

ovis

ion

► 

The

BO

A m

aint

ains

an

impl

emen

tatio

n re

posi

tory

(c

ompo

nent

regi

stry

) ► 

It su

ppor

ts n

on-o

bjec

t-orie

nted

co

de

► 

The

BO

A is

a re

al a

dapt

er (n

o de

cora

tor)

CO

RB

A::B

OA

crea

te

get_

id

disp

ose

set_

exce

ptio

n im

pl_i

s_re

ady

obj_

is_r

eady

ch

ange

_im

plem

enta

tion

deac

tivat

e_im

pl

deac

tivat

e_ob

j

Pro

f. U

. Aßm

ann,

CB

SE

16

Serv

er S

ite

Bas

ic O

bjec

t Ada

pter

B

OA

IDL

Ske

leto

n

Net

wor

k

Ser

ver /

Obj

ect I

mpl

emen

tatio

n

deac

tivat

e_ob

j de

activ

ate_

impl

im

pl_i

s_re

ady

obje

ct_i

s_re

ady

upca

lls cr

eate

get_

id

Page 9: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

17

Obj

ect A

ctiv

atio

n on

the

Serv

er th

roug

h a

BO

A

Serv

er

obje

ct1

obje

ct2

CO

RB

A::B

OA

crea

te

get_

id

obj_

is_r

eady

obj_

is_r

eady

im

pl_i

s_re

ady

deac

tivat

e_ob

j

deac

tivat

e_ob

j

deac

tivat

e_im

pl

Pro

f. U

. Aßm

ann,

CB

SE

18

Port

able

Obj

ect A

dapt

er P

OA

► 

The

PO

A is

a e

volu

tion

of th

e B

OA

in C

OR

BA

3.0

■ O

ne p

er s

erve

r, se

rvin

g m

any

obje

cts

■ N

este

d P

OA

s po

ssib

le, w

ith n

este

d na

me

spac

es

► 

Use

r pol

icie

s fo

r obj

ect

man

agem

ent

■ U

ser-

writ

ten

inst

ance

man

ager

s fo

r m

anag

emen

t of o

bjec

t ins

tanc

es

CO

RB

A::P

OA

crea

te_P

OA

find_

POA

crea

te_r

efer

ence

di

spos

e se

t_ex

cept

ion

impl

_is_

read

y ob

j_is

_rea

dy

chan

ge_i

mpl

emen

tatio

n ac

tivat

e_ob

ject

de

activ

ate_

obje

ct

Page 10: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

19

Obj

ect A

dapt

ers

Supp

ort D

iffer

ent S

erve

r Life

-Ti

me

Mod

els

► 

Com

mon

ser

ver p

roce

ss (s

hare

d se

rver

) ■ 

Sev

eral

obj

ects

resi

de in

one

pro

cess

on

the

serv

er; t

he B

OA

initi

aliz

es th

em a

s th

read

s w

ith c

omm

on a

ddre

ss s

pace

(com

mon

apa

rtmen

t)

. de

activ

ate_

impl

, im

pl_i

s_re

ady,

obj

_is_

read

y ar

e m

appe

d di

rect

ly to

thre

ad

func

tions

► 

Sepa

rate

ser

ver p

roce

ss (u

nsha

red

serv

er)

■ Fo

r eve

ry o

bjec

t an

own

proc

ess

► 

Serv

er-p

er-r

eque

st (s

essi

on s

erve

r)

■ E

very

requ

est g

ener

ates

a n

ew p

roce

ss

■ S

imila

r to

Ses

sion

EJB

► 

Pers

iste

nt s

erve

r ■ 

Ano

ther

app

licat

ion

stor

es th

e ob

ject

s (e

.g.,

a da

ta b

ase)

.

■ Th

e B

OA

pas

ses

on th

e qu

erie

s

■ S

imila

r to

Ent

ity B

ean

Pro

f. U

. Aßm

ann,

CB

SE

20

Cal

lbac

k C

onne

ctor

s w

ith th

e C

allb

ack

Serv

ice

► 

The

Cal

lbac

k pa

ttern

is a

sim

plifi

ed O

bser

ver p

atte

rn

■ R

egis

tratio

n an

d no

tific

atio

n, b

ut n

ot s

tatu

s up

date

► 

Cal

lbac

k fu

nctio

n re

gist

ratio

n ■ 

Reg

iste

r a p

roce

dure

var

iabl

e, a

clo

sure

(pro

cedu

re v

aria

ble

with

arg

umen

ts),

or a

re

fere

nce

to a

n ob

ject

at t

he s

ubje

ct, t

he s

erve

r

► 

Cal

lbac

k w

orks

for a

ll la

ngua

ges,

not

onl

y ob

ject

-orie

nted

one

s

Clie

nt

Ser

ver

(sub

ject

) C

lient

2

regi

ster

Cal

lbac

k()

riseE

vent

()

callC

allb

ack(

)

retu

rn()

sign

al()

Page 11: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

21

Even

t Con

nect

ions

► 

Mos

t fle

xibl

e w

ay o

f com

mun

icat

ion

(als

o ca

lled

mes

sage

s)

■ A

sync

hron

ous

com

mun

icat

ion

■ W

orks

for e

very

CO

RB

A la

ngua

ge

► 

Rec

eive

r mod

els

■ U

nica

st: o

ne re

ceiv

er

■ M

ultic

ast:

man

y re

ceiv

ers

■ D

ynam

ical

ly v

aryi

ng re

ceiv

ers

► 

Push

mod

el: P

ushC

onsu

mer

/Pus

hSup

plie

r: ob

ject

del

iver

s ev

ent w

ith p

ush,

ev

ent i

s sh

ippe

d au

tom

atic

ally

► 

Pull

mod

el: P

ullS

uppl

ier/P

ullC

onsu

mer

: ob

ject

wai

ts fo

r eve

nt w

ith p

ull

■ S

ynch

rono

us o

r asy

nchr

onou

s ■ 

Unt

yped

gen

eric

eve

nts,

or t

yped

by

IDL

► 

Even

t cha

nnel

s as

inte

rmed

iate

buf

fers

■ 

Cha

nnel

s bu

ffer,

filte

r, an

d m

ap o

f pul

l to

push

■ 

Adv

anta

ge:

. A

sync

hron

ous

Wor

king

in th

e W

eb (w

ith II

OP

and

dyn

amic

Cal

l) . 

Atta

chm

ent o

f leg

acy

syst

ems

inte

rest

ing

for u

ser i

nter

face

s, n

etw

ork

com

putin

g et

c.

■ D

isad

vant

age:

Ver

y ge

nera

l int

erfa

ce

CB

SE

, © P

rof.

Uw

e A

ßman

n 22

11b.

2.1

Dyn

amic

Cal

l Con

nect

or

(Req

uest

Bro

king

)

Page 12: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

23

Dyn

amic

Cal

l Con

nect

or (R

eque

st B

roki

ng)

► 

CO

RB

A d

ynam

ic c

all i

s a

sym

bolic

cal

l, i.e

., a

refle

ctiv

e ca

ll w

ith a

sy

mbo

lic n

ame

and

argu

men

ts

■ W

ithou

t kno

win

g th

at th

e se

rvic

e ex

ists

■ 

Ser

vice

s ca

n be

dyn

amic

ally

exc

hang

ed,

brou

ght i

nto

the

play

a p

oste

riori

■ 

With

out r

ecom

pila

tion

of c

lient

s, n

or re

gene

ratio

n of

stu

bs

■ B

indi

ng o

f nam

es to

adr

esse

s is

dyn

amic

► 

Req

uire

s de

scrip

tions

of s

eman

tics

of s

ervi

ce c

ompo

nent

s ■ 

For i

dent

ifica

tion

of s

ervi

ces

. M

etad

ata

(des

crip

tive

data

): ca

talo

gues

of c

ompo

nent

s (in

terfa

ce re

posi

tory

, im

plem

enta

tion

repo

sito

ry)

. P

rope

rty s

ervi

ce (l

ater

)

► 

and

a m

edia

tor,

that

look

s fo

r ser

vice

s: th

e O

RB

Pro

f. U

. Aßm

ann,

CB

SE

24

Obj

ect R

eque

st B

roke

r (O

RB

)

► 

For a

dyn

amic

cal

l, th

e O

RB

mus

t be

invo

lved

► 

The

OR

B is

a m

edia

tor (

desi

gn

patte

rn) b

etw

een

clie

nt a

nd s

erve

r ► 

Hid

es th

e th

e en

viro

nmen

t fro

m c

lient

s ► 

Can

talk

to o

ther

OR

Bs,

als

o on

the

web

CO

RB

A::O

RB

init

obje

ct_t

o_st

ring

strin

g_to

_obj

ect

BO

A_i

nit

list_

initi

al_s

ervi

ces

reso

lve_

initi

al_r

efer

ence

s ge

t_de

faul

t_co

ntex

t cr

eate

_env

ironm

ent

....

Page 13: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

25

OR

B A

ctiv

atio

n

Clie

nt ob

ject

CO

RB

A O

RB

OR

B_i

nit

BO

A_i

nit

list_

initi

al_s

ervi

ces

reso

lve_

initi

al_r

efer

ence

s

Del

iver

s se

rvic

e na

mes

(as

st

rings

) D

eliv

ers

obje

ct re

fere

nces

to

ser

ver o

bjec

ts fr

om s

ervi

ce

nam

es

Initi

aliz

es th

e se

rver

BO

A

Initi

aliz

es th

e m

edia

tor

Pro

f. U

. Aßm

ann,

CB

SE

26

Req

uest

ing

a Se

rvic

e vi

a th

e O

RB

► 

Ref

lect

ive

calls

■ 

Bui

ldin

g a

call

obje

ct (R

eque

st)

■ A

ddin

g ar

gum

ents

■ 

Invo

king

■ 

Pol

ling,

read

ing

CO

RB

A::O

RB

// dy

nam

ic c

all

crea

te_l

ist

crea

te_o

pera

tion_

list

add_

item

ad

d_va

lue

invo

ke

poll_

resp

onse

se

nd

get_

resp

onse

de

lete

...

.

Page 14: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

27

Prot

ocol

of D

ynam

ic C

all (

DII)

<<<<

<

Serv

er ob

ject

Nam

ing

Con

text

get_

inte

rface

reso

lve

crea

te_l

ist

Clie

nt ob

ject

Ope

ratio

nDef

OR

B

add_

valu

e

add_

item

_req

uest in

voke

dele

te Fr

ee

Req

uest

argu

men

ts

Pro

f. U

. Aßm

ann,

CB

SE

28

Exam

ple

Dyn

amic

Cal

l in

C++

// W

ow

, a c

om

ple

x p

roto

co

l!!

CO

RB

A::

OR

B_p

tr o

rb;

ma

in(i

nt

arg

c, c

ha

r* a

rgv[

]) {

o

rb=

CO

RB

A::

OR

B_i

nit

(arg

c,a

rgv,

OR

BID

);

// a

lte

rnat

ive

de

scri

pti

on

of

serv

ice

C

osN

am

ing

::N

am

ing

Co

nte

xt_p

tr n

am

ing

=

Co

sNa

min

g::

Na

min

gC

on

text

::_n

arr

ow

(

::

reso

lve

_in

itia

l_re

fere

nc

es

(“N

am

eS

erv

ice

”));

C

OR

BA

::O

bje

ct_

ptr

ob

j;

try

{

ob

j= n

am

ing

->re

solv

e(m

k_n

am

e("

dii_

smp

l"))

; }

cat

ch (

CO

RB

A::

Exc

ep

tio

n)

{

ce

rr <

< "

no

t re

gis

tere

d"

<<

en

dl;

exi

t(1

); }

//

co

nst

ruc

t a

rgu

me

nts

C

OR

BA

::A

ny

val1

; va

l1 <

<=

(C

OR

BA

::S

ho

rt)

12

3;

CO

RB

A::

An

y va

l2;

val2

<<

= (

CO

RB

A::

Sh

ort

) 0

; C

OR

BA

::A

ny

val3

; va

l3 <

<=

(C

OR

BA

::S

ho

rt)

45

6;

// M

ake

re

qu

est

(sh

ort

form

) C

OR

BA

::R

eq

ue

st_p

tr r

q=

ob

j->

_re

qu

est

("o

p")

; //

Cre

ate

arg

um

en

t lis

t r

q->

arg

um

en

ts()

= o

rb->

cre

ate

_lis

t();

r

q->

arg

um

en

ts()

->a

dd

_va

lue

("a

rg1

",va

l1,C

OR

BA

::A

RG

_IN

);

rq

->a

rgu

me

nts

()->

ad

d_v

alu

e("

arg

2",

val2

,CO

RB

A::

AR

G_O

UT

);

rq

->a

rgu

me

nts

()->

ad

d_v

alu

e("

arg

3",

val3

,CO

RB

A::

AR

G_I

NO

UT

);

// S

tart

re

qu

est

(sy

nch

ron

ou

sly)

c

ou

t <

< "

sta

rt r

eq

ue

st"

<<

en

dl;

r

q->

invo

ke()

;

/

/ an

aly

ze r

esu

lt

CO

RB

A::

Sh

ort

rsl

t ;

if

(*(r

q->

resu

lt()

->va

lue

())

>>

= r

slt)

{

// A

na

lyze

th

e o

ut/

ino

ut-

pra

me

ters

(a

rg1

ha

s in

de

x 0

)

C

OR

BA

::S

ho

rt _

arg

2, _

arg

3;

*(rq

->a

rgu

me

nts

()->

ite

m(1

)->

valu

e()

) >

>=

_a

rg2

;

*(

rq->

arg

um

en

ts()

->it

em

(2)-

>va

lue

())

>>

= _

arg

3;

co

ut

<<

" a

rg2

= "

<

< _

arg

2 <

< "

arg

3=

" <

< _

arg

3

<

< "

re

turn

= "

<<

rsl

t <

< e

nd

l; }

e

lse

{

co

ut

<<

“re

sult

ha

s u

ne

xpe

cte

d t

ype

" <

< e

nd

l; }

}

Page 15: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

29

DII

Invo

catio

n in

Jav

a (1

)

// Client.java

// Building Distributed Object Applications with CORBA

// Infowave (Thailand) Co., Ltd.

// http://www.waveman.com

// Jan 1998

public class Client {

public static void main(String[] args) {

if (args.length != 2) {

System.out.println("Usage: vbj Client <carrier-name> <aircraft-name>");

return;

}

String carrierName = args[0];

String aircraftName = args[1];

org.omg.CORBA.Object carrier = null;

org.omg.CORBA.Object aircraft = null;

org.omg.CORBA.ORB orb = null;

try {

orb = org.omg.CORBA.ORB.init(args, null);

}

catch (org.omg.CORBA.systemsxception se) {

System.err.println("ORB init failure " + se);

System.exit(1);

}

Pro

f. U

. Aßm

ann,

CB

SE

30

{ // scope

try {

carrier = orb.bind("IDL:Ship/AircraftCarrier:1.0",

carrierName, null, null);

} catch (org.omg.CORBA.systemsxception se) {

System.err.println("ORB init failure " + se);

System.exit(1);

}

org.omg.CORBA.Request request = carrier._request("launch");

request.add_in_arg().insert_string(aircraftName);

request.set_return_type(orb.get_priwithive_tc(

org.omg.CORBA.TCKind.tk_objref));

request.invoke();

aircraft = request.result().value().extract_Object();

}

{ // scope

org.omg.CORBA.Request request = aircraft._request("codeNumber");

request.set_return_type(orb.get_priwithive_tc(

org.omg.CORBA.TCKind.tk_string));

request.invoke();

String designation = request.result().value().extract_string();

System.out.println("Aircraft " + designation + " is coming your way");

}

DII

Invo

catio

n in

Jav

a (2

)

Page 16: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

31

// Building Distributed Object Applications with CORBA

// Infowave (Thailand) Co., Ltd.

// http://www.waveman.com

// Jan 1998

public class Server {

public static void main(String[] args) {

org.omg.CORBA.ORB orb = null;

try {

orb = org.omg.CORBA.ORB.init(args, null);

} catch (org.omg.CORBA.systemsxception se) {

System.err.println("ORB init failure " + se);

System.exit(1);

}

org.omg.CORBA.BOA boa = null;

try {

boa = orb.BOA_init();

} catch (org.omg.CORBA.systemsxception se) {

System.err.println("BOA init failure " + se);

System.exit(1);

}

Ship.AircraftCarrier carrier =

new AircraftCarrierImpl("Nimitz");

try {

boa.obj_is_ready(carrier);

} catch (org.omg.CORBA.systemsxception se) {

System.err.println(

"Object Ready failure " + se);

System.exit(1);

}

System.out.println(

carrier + " ready for launch !!!");

try {

boa.impl_is_ready();

} catch (org.omg.CORBA.systemsxception se) {

System.err.println(

"Impl Ready failure " + se);

System.exit(1);

}

}

}

Serv

er Im

plem

enta

tion

Pro

f. U

. Aßm

ann,

CB

SE

32

Exam

ple:

Tim

e Se

rver

in J

ava

► 

On

one

mac

hine

; 2 a

ddre

ss s

pace

s (p

roce

sses

) ► 

Cal

l pro

vide

s cu

rren

t tim

e ► 

Con

tain

s ■ 

IDL

■ S

erve

r . 

Sta

rts O

RB

. 

Initi

aliz

es S

ervi

ce

. G

ives

IOR

to th

e ou

tput

■ C

lient

. 

Take

s IO

R

. C

alls

ser

vice

// TestTimeServer.idl

module TestTimeServer{

interface ObjTimeServer{

string getTime();

};

};

Page 17: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

33

Serv

ice

Com

pone

nt

// TestTimeServerImpl.java – Server Skeleton

import CORBA.*;

class ObjTestTimeServerImpl extends

TestTimeServer.ObjTimeServer_Skeleton { // generated from IDL

// Variables

// Constructor

// Method (Service) Implementation

public String getTime() throws CORBA.SystemException {

return “Time: “ + currentTime;

}

};

Pro

f. U

. Aßm

ann,

CB

SE

34

Serv

er Im

plem

enta

tion

// TimeServer_Server.java

import CORBA.*;

public class TimeServer_Server{

public static void main(String[] argv){

try {

CORBA.ORB orb = CORBA.ORB.init();

ObjTestTimeServerImpl obj =

new ObjTestTimeServerImpl(…);

System.out.println(orb.object_to_string(obj));

}

catch (CORBA.SystemException e){

System.err.println(e);

}

}

};

Page 18: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

35

Clie

nt Im

plem

enta

tion

(Sim

pler

Pro

toco

l)

// TimeServer_Client.java

import CORBA.*;

public class TimeServer_Client{

public static void main(String[] argv){

try {

CORBA.ORB orb= CORBA.ORB.init();

CORBA.object obj = orb.string_to_object(argv[0]);

TestTimeServer.ObjTimeServer timeServer =

TestTimeServerImpl.ObjTimeServer_var.narrow(obj);

System.out.println(timeServer.getTime());

}

catch (CORBA.SystemException e){

System.err.println(e);

}

}

};

Pro

f. U

. Aßm

ann,

CB

SE

36

Exec

utio

n

// starting server

C:\> java TimeServer_Server

IOR:00000000000122342435 …

// starting client

C:\> java TimeServer_Client IOR:00000000000122342435 …

Time: 14:35:44

Page 19: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

37

OR

Bs

► 

Java

-bas

ed

■ IB

M W

ebS

pher

e ■ 

ION

A O

rbix

: In

Java

, O

RB

lets

pos

sibl

e ■ 

BE

A W

ebLo

gic

■ V

isib

roke

r (in

Net

scap

e)

■ V

oyag

er (O

bjec

tSpa

ce) (

with

M

obile

Age

nts)

■ 

free:

Jac

OR

B, I

LU, J

orba

, D

ynaO

RB

► 

C-b

ased

■ 

AC

E O

RB

TA

O, U

nive

rsity

W

ashi

ngto

n (w

ith tr

ader

)

■ Li

nux

OR

BIT

(gno

me)

■ Li

nux

MIC

O

► 

Pyth

on-b

ased

■ 

fnor

b

► 

http

://w

ww

.om

g.or

g

CB

SE

, © P

rof.

Uw

e A

ßman

n 38

11b.

2.2

Trad

er-B

ased

Cal

l

The

foun

datio

n of

ser

vice

-orie

nted

arc

hite

ctur

e (S

OA

)

Page 20: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

39

Bey

ond

Dyn

amic

Cal

l: Se

rvic

e C

all w

ith th

e Tr

ader

Ser

vice

► 

A s

ervi

ce c

all i

s a

call,

not

bas

ed o

n na

min

g bu

t on

sem

antic

at

tribu

tes,

pub

lishe

d pr

oper

ties

■ 

Req

uire

s a

yello

w p

age

dire

ctor

y of

ser

vice

s

► 

Ser

vice

-orie

nted

arc

hite

ctur

es (S

OA

), re

quire

s m

atch

mak

ing

of

serv

ices

■ 

The

OR

B re

solv

es o

pera

tions

stil

l bas

ed o

n na

min

g (w

ith th

e na

me

serv

ice)

. The

tra

der,

how

ever

, res

olve

s se

rvic

es w

ithou

t nam

es, o

nly

base

d on

pro

perti

es a

nd

polic

ies

► 

The

trade

r get

s of

fers

from

ser

vers

, con

tain

ing

new

ser

vice

s

Trad

er

Clie

nt S

ervi

ce

Med

iato

r pat

tern

, m

edia

tor l

ets

clie

nts

look

up s

ervi

ces

Inte

ract

Impo

rt fu

nctio

nalit

y E

xpor

t fu

nctio

nalit

y

Pro

f. U

. Aßm

ann,

CB

SE

40

Serv

ice

Offe

rs fo

r Tra

der

► 

Ser

vice

offe

r (IO

R w

ith p

rope

rties

(met

adat

a))

■ P

rope

rties

des

crib

e se

rvic

es

■ A

re u

sed

by tr

ader

s to

mat

ch s

ervi

ces

to q

uerie

s ■ 

not f

acet

-bas

ed, o

ne-d

imen

sion

al

► 

Dyn

amic

pro

perty

■ 

A p

rope

rty c

an b

e qu

erie

d dy

nam

ical

ly b

y th

e tra

der o

f ser

vice

■ 

The

serv

ice-

obje

ct c

an d

eter

min

e th

e va

lue

of a

dyn

amic

pro

perty

ane

w

► 

Mat

chin

g w

ith th

e st

anda

rd c

onst

rain

t lan

guag

e ■ 

Boo

lean

exp

ress

ions

abo

ut p

rope

rties

■ 

Num

eric

and

stri

ng c

ompa

rison

s

Page 21: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

41

Trad

ers

Prov

ide

Serv

ice

Hop

ping

► 

If a

trade

r doe

sn’t

find

a se

rvic

e, it

ca

lls n

eigh

bor t

rade

rs

■ D

esig

n pa

ttern

Cha

in o

f R

espo

nsib

ility

► 

Gra

ph o

f tra

ders

■ 

Link

s to

nei

ghbo

rs v

ia

Trad

erLi

nk

■ Tr

ader

Link

filte

rs

quer

ies

and

m

anip

ulat

e vi

a po

licie

s

trade

r 1

trade

r 1

trade

r 4

trade

r 3

trade

r 2

Pol

icie

s, th

at

chan

ge th

e va

lues

of

the

prop

ertie

s du

ring

pass

ing

on

Flow

of t

he

prop

ertie

s of

th

e se

rvic

e qu

ery

Offe

rs w

ith

the

trade

r

Pro

f. U

. Aßm

ann,

CB

SE

42

Mod

ifica

tion

of Q

uerie

s

► 

Pol

icie

s pa

ram

eter

ize

the

beha

viou

r of t

he tr

ader

s an

d th

e Tr

ader

Link

s

■ Fi

lters

, i.e

., va

lues

, mod

ifyin

g th

e qu

erie

s:

■ m

ax_s

earc

h_ca

rd: m

axim

um c

ardi

nalit

y fo

r the

ong

oing

sea

rche

s

■ m

ax_m

atch

_car

d: m

axim

um c

ardi

nalit

y fo

r mat

chin

gs

■ m

ax_h

op_c

ount

: car

dina

lity

sear

ch d

epth

in th

e gr

aph

po

ssib

le

off

ers

po

ssib

le

off

ers

po

ssib

le

off

ers

po

ssib

le

off

ers

fou

nd

off

ers

inve

stig

ated

o

ffer

s

ca

rdin

alit

ies

for

sea

rch

c

ard

ina

litie

s

for

mat

chin

g

Ca

rdin

alit

ies

fo

r re

turn

off

ers

Page 22: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

43

Inte

rfac

es T

radi

ng S

ervi

ce

► 

Bas

ic in

terfa

ces

■ Lo

okup

(que

ry)

■ R

egis

ter (

for e

xpor

t, re

tract

, im

port

of s

ervi

ces)

■ A

dmin

(inf

o ab

out s

ervi

ces)

■ Li

nk (c

onst

ruct

ion

of t

rade

r gra

ph)

► 

How

doe

s a

look

up q

uery

look

like

? ■ 

Lookup.Query(in ServicetypeName, in Constraint,

in PolicySeq, in SpecifiedProperties,

in howTo, out OfferSequence, offerIterator)

► 

Unf

ortu

nate

ly, n

o fa

cete

d m

atch

mak

ing

poss

ible

!

Pro

f. U

. Aßm

ann,

CB

SE

44

CO

RB

A T

rade

r Typ

es

Lo

oku

p

sim

ple

trade

r

Lo

oku

p

stan

dalo

ne

trade

r

Lo

oku

p R

eg

iste

r R

eg

iste

r A

dm

in

soc

ial t

rad

er

(lin

ked

tra

de

r)

Lo

oku

p Re

gis

ter

Ad

min

Lin

k

sub

stit

ute

t

rad

er

(pro

xy t

rad

er)

Lo

oku

p Re

gis

ter

Ad

min

pro

xy

full-

serv

ice

tra

de

r

Lo

oku

p Re

gis

ter

Ad

min

Lin

k p

roxy

quer

y tra

der

Page 23: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

45

Cor

ba 3

.0

► 

Pro

vide

s th

e w

ell-d

efin

ed p

acka

ging

for p

rodu

cing

com

pone

nts

■ C

OR

BA

Com

pone

nt M

odel

(CC

M):

sim

ilar t

o E

JB

► 

Mes

sage

Ser

vice

MO

M: O

bjec

ts h

ave

asyn

chro

nous

buf

fere

d m

essa

ge q

ueue

s

► 

Lang

uage

map

ping

s av

oid

IDL

► 

Gen

erat

ing

IDL

from

lang

uage

spe

cific

type

def

initi

ons

► 

C++

2ID

L, J

ava2

IDL,

► 

XM

L in

tegr

atio

n (S

OA

P m

essa

ges)

► 

Scr

iptin

g (C

OR

BA

scr

ipt),

a c

ompo

sitio

n la

ngua

ge

CB

SE

, © P

rof.

Uw

e A

ßman

n 46

11b.

3 Ev

alua

tion

of C

OR

BA

as c

ompo

sitio

n sy

stem

Page 24: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

47

Com

pone

nt M

odel

► 

Mec

hani

sms

for s

ecre

ts a

nd tr

ansp

aren

cy: v

ery

good

■ 

Inte

rface

and

Impl

emen

tatio

n re

posi

tory

■ 

Com

pone

nt la

ngua

ge h

idde

n (in

tero

pera

bilit

y)

■ Li

fe-ti

me

of s

ervi

ce h

idde

n ■ 

Iden

tity

of s

ervi

ces

hidd

en

■ Lo

catio

n hi

dden

► 

No

para

met

eriz

atio

n ► 

Sta

ndar

diza

tion:

qui

te g

ood!

■ 

Ser

vice

s, a

pplic

atio

n se

rvic

es a

re a

vaila

ble

■ O

n th

e ot

her h

and,

som

e st

anda

rds

are

FAT

■ Te

chni

cal v

s. a

pplic

atio

n sp

ecifi

c vs

bus

ines

s co

mpo

nent

s:

■ ..

but f

or b

usin

ess

obje

cts,

the

stan

dard

s m

ust b

e ex

tend

ed (v

ertic

al fa

cilit

ies)

(th

ats´

s w

here

the

mon

ey is

)

Pro

f. U

. Aßm

ann,

CB

SE

48

Com

posi

tion

Tech

niqu

e

► 

Mec

hani

sms

for c

onne

ctio

n ■ 

Mec

hani

sms

for a

dapt

atio

n . 

Stu

bs, s

kele

tons

, ser

ver a

dapt

ers

■ M

echa

nism

s fo

r glu

eing

: mar

shal

ling

base

d on

IDL

► 

Mec

hani

sms

for a

spec

t sep

arat

ion

■ M

ultip

le in

terfa

ces

per o

bjec

t . 

Faca

de c

lass

es/o

bjec

ts (d

esig

n pa

ttern

faca

de)

► 

Not

hing

for e

xten

sion

s ► 

Mec

hani

sms

for m

eta-

mod

elin

g ■ 

Inte

rface

Rep

osito

ries

with

type

cod

es

■ Im

plem

enta

tion

repo

sito

ries

■ D

ynam

ic c

all a

nd tr

aded

cal

l are

refle

ctiv

e an

d in

trosp

ectiv

e

► 

Sca

labi

lity

■ C

onne

ctio

ns c

anno

t eas

ily b

e ex

chan

ged

(exc

ept s

tatic

loca

l and

rem

ote

call)

Page 25: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

49

Com

posi

tion

Lang

uage

► 

Wea

k: C

OR

BA

scr

iptin

g pr

ovid

es th

e a

faci

lity

to w

rite

glue

cod

e, b

ut

only

bla

ck-b

ox c

ompo

sitio

n

Pro

f. U

. Aßm

ann,

CB

SE

50

CO

RB

A

Sca

labi

lity

Ada

ptat

ion

Met

acom

posi

tion

Asp

ect S

epar

atio

n

Ext

ensi

bilit

y S

oftw

are

proc

ess

Con

nect

ion

Pro

duct

qua

lity

Page 26: BSE - TU Dresden

CB

SE

, © P

rof.

Uw

e A

ßman

n 51

11b.

4 C

orba

Ser

vice

s

(opt

iona

l mat

eria

l)

Pro

f. U

. Aßm

ann,

CB

SE

52

Lite

ratu

re

► 

OM

G. C

OR

BA

ser

vice

s: C

omm

on O

bjec

t Ser

vice

Spe

cific

atio

ns.

http

://w

ww

.om

g.or

g.

► 

OM

G: C

OR

BA

faci

litie

s: C

omm

on O

bjec

t Fac

ilitie

s S

peci

ficat

ions

.

Page 27: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

53

Ove

rvie

w o

n C

orba

Ser

vice

s

► 

Ser

vice

s pr

ovid

e fu

nctio

nalit

y a

prog

ram

min

g la

ngua

ge m

ight

not

pr

ovid

e (e

.g, C

obol

, For

tran)

► 

16+

stan

dard

ized

ser

vice

inte

rface

s (i.

e., a

libr

ary)

■ 

Sta

ndar

dize

d, b

ut s

tatu

s of

impl

emen

tatio

n di

ffere

nt d

epen

ding

on

prod

ucer

► 

Obj

ect s

ervi

ces

■ D

eal w

ith fe

atur

es a

nd m

anag

emen

t of o

bjec

ts

► 

Col

labo

ratio

n se

rvic

es

■ D

eal w

ith c

olla

bora

tion,

i.e.

, obj

ect c

onte

xts

► 

Bus

ines

s se

rvic

es

■ D

eal w

ith b

usin

ess

appl

icat

ions

► 

The

serv

ices

ser

ve fo

r crit

erio

n M

-3, s

tand

ardi

zatio

n. T

hey

are

very

im

porta

nt to

incr

ease

reus

e.

■ R

emem

ber,

they

are

ava

ilabl

e fo

r eve

ry la

ngua

ge, a

nd o

n di

strib

uted

sys

tem

s!

Pro

f. U

. Aßm

ann,

CB

SE

54

Obj

ect S

ervi

ces:

Rat

her S

impl

e

► 

Nam

e se

rvic

e (d

irect

ory

serv

ice)

■ 

Rec

ords

ser

ver o

bjec

ts in

a s

impl

e tre

e-lik

e na

me

spac

e ■ 

(Is a

sim

ple

com

pone

nt s

yste

m it

self)

► 

Life

cycl

e se

rvic

e (a

lloca

tion

serv

ice)

■ 

Not

aut

omat

ic; s

eman

tics

of d

eallo

catio

n un

defin

ed

► 

Pro

perty

ser

vice

(fea

ture

ser

vice

for o

bjec

ts)

► 

Per

sist

ency

ser

vice

(sto

ring

obje

cts

in d

ata

base

s)

► 

Rel

atio

nshi

p se

rvic

e to

bui

ld in

tero

pera

ble

rela

tions

and

gra

phs

■ S

uppo

rt of

sta

ndar

d re

latio

ns re

fere

nce,

con

tain

men

t ■ 

Div

ided

in s

tand

ard

role

s co

ntai

ns, c

onta

ined

In, r

efer

ence

s, re

fere

nced

► 

Con

tain

er s

ervi

ce (c

olle

ctio

n se

rvic

e)

Page 28: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

55

Col

labo

ratio

n Se

rvic

es

► 

Com

mun

icat

ion

serv

ices

■ 

Res

embl

e co

nnec

tors

in a

rchi

tect

ure

syst

ems,

but

can

not b

e ex

chan

ged

to e

ach

othe

r

■ E

vent

ser

vice

. pu

sh m

odel

: the

com

pone

nts

push

eve

nts

into

the

even

t cha

nnel

. pu

ll m

odel

: the

com

pone

nts

wai

t at t

he c

hann

el a

nd e

mpt

y it

■ C

allb

ack

serv

ice

► 

Par

alle

lism

■ 

Con

curr

eny

serv

ice:

lock

s

■ O

bjec

t tra

nsac

tion

serv

ice,

OTS

: Fla

t tra

nsac

tions

on

obje

ct g

raph

s

. N

este

d tra

nsac

tions

?

Pro

f. U

. Aßm

ann,

CB

SE

56

Bus

ines

s Se

rvic

es

► 

Trad

er s

ervi

ce

■ Y

ello

w P

ages

, loc

aliz

atio

n of

ser

vice

s

► 

Que

ry s

ervi

ce

■ S

earc

h fo

r obj

ects

with

attr

ibut

es a

nd th

e O

QL,

SQ

L (O

DM

G-9

3)

► 

Lice

nsin

g se

rvic

e ■ 

For a

pplic

atio

n pr

ovid

ers

(app

licat

ion

serv

ers)

■ Li

cens

e m

anag

ers

► 

Sec

urity

ser

vice

■ 

Use

of S

SL

and

othe

r bas

ic s

ervi

ces

Page 29: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

57

Dep

ende

ncie

s B

etw

een

the

Serv

ices

Nam

es

Life

-tim

e

Rel

atio

ns

Per

sist

ency

M

arsh

allin

g

Con

curr

ency

Tran

sact

ions

Que

ry

Trad

er

Pro

perti

es

Sec

urity

Eve

nts

Lice

nses

Col

lect

ions

C

allb

ack

Pro

f. U

. Aßm

ann,

CB

SE

58

Obj

ect S

ervi

ces:

Nam

es

► 

Bin

ding

of

a na

me

asso

ciat

es a

nam

e to

an

obje

ct in

a n

ame

spac

e (d

irect

ory,

sco

pe, n

amin

g co

ntex

t) ■ 

A n

ame

spac

e is

an

asso

ciat

ive

arra

y w

ith a

set

of b

indi

ngs

of n

ames

to v

alue

s ■ 

Nam

espa

ces

are

recu

rsiv

e, i.

e., t

hey

can

refe

renc

e ea

ch o

ther

and

bui

ld n

ame

grap

hs

■ O

ther

s: A

ctiv

e D

irect

ory,

LD

AP

► 

The

repr

esen

tatio

n of

a n

ame

is b

ased

on

abst

ract

syn

tax,

not

on

the

conc

rete

syn

tax

of a

ope

ratin

g sy

stem

or U

RL.

■ 

A n

ame

cons

ists

of a

tupl

e (Id

entif

ier,

Kin

d).

■ Th

e id

entif

ier i

s th

e re

al n

ame,

the

Kin

d te

lls h

ow th

e na

me

is re

pres

ente

d (e

.g.,

c_so

urce

, obj

ect_

code

, exe

cuta

ble,

pos

tscr

ipt,.

.).

■ Fo

r cre

atio

n of

nam

es th

ere

is a

libr

ary

(des

ign

patte

rn A

bstra

ct F

acto

ry).

Page 30: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

59

Nam

e Se

rvic

e C

osN

amin

g

bind

(in N

ame

n, in

Obj

ect o

bj) /

/ ass

ocia

te a

nam

e re

bind

(in N

ame

n, in

Obj

ect o

bj)

bind

_con

text

re

bind

_con

text

m

k_na

me(

Stri

ng s

) O

bjec

t res

olve

un

bind

(in N

ame

n) /

/ dis

asso

ciat

e a

nam

e N

amin

gCon

text

new

_con

text

; N

amin

gCon

text

bin

d_ne

w_c

onte

xt(in

Nam

e n)

vo

id d

estro

y vo

id li

st(..

)

_nar

row

()

Cos

Nam

ing:

:Nam

ingC

onte

xt

Pro

f. U

. Aßm

ann,

CB

SE

60

Nam

e Se

rvic

e

void bind(in Name n, in Object obj)

raises(NotFound, Cannotproceed, InvalidName, AlreadyBoand);

void rebind(in Name n, in Object obj)

raises(NotFound, Cannotproceed, InvalidName );

void bind_context(in Name n, in NamingContext nc)

raises(NotFound, Cannotproceed, InvalidName, AlreadyBoand );

void rebind_context(in Name n, in NamingContext nc)

raises( NotFound, Cannotproceed, InvalidName );

Name mk_name(String s);

Object resolve(in Name n)

raises( NotFound, Cannotproceed, InvalidName );

void unbind(in Name n)

raises( NotFound, Cannotproceed, InvalidName );

NamingContext new_context();

NamingContext bind_new_context(in Name n)

raises( NotFound, AlreadyBoand, Cannotproceed, InvalidName );

void destroy()

raises( NotEmpty );

void list(in unsigned long how_many,

out BindingLis bl, out Bindingeserator bi );

Page 31: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

61

Nam

e Se

rvic

e in

IDL

module CosNaming{

struct NameComponent {

string id;

string kind;

};

typedef sequence <NameComponent> Name;

enum BindingType { nobject, ncontext };

struct Binding {

Name binding_name;

BindingType binding_type;

};

typedef sequence <Binding> BindingList;

interface BindingIterator;

interface NamingContext {

enum NotFoundReason { missing_node,

not_context, not_object };

exception NotFound {

NotFoundReason why;

Name rest_of_name;

};

}

exception Cannotproceed {

NamingContext cxt;

Name rest_of_name;

};

exception InvalidName {};

exception AlreadyBoand {};

exception NotEmpty {};

// methods see previous slide

};

interface BindingIterator {

boolean next_one(out Binding b);

boolean next_n(in unsigned long

how_many,

out BindingLis bl);

void destroy();

};

Pro

f. U

. Aßm

ann,

CB

SE

62

Bin

din

g (a

sso

cia

tio

n)

Se

arc

h/c

reat

e n

am

e s

pa

ce

Use

of N

ames

Sys

tem

de

pe

nd

en

t n

am

e Co

rba

-Na

me

ob

jec

t

Se

arc

h O

bje

ct

na

me

sp

ac

e

Cre

ate

Na

me

ob

jec

t

Page 32: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

63

Nam

e Se

rvic

e: E

xam

ple

// From: Redlich

import java.io.*;

import java.awt.*;

import IE.Iona.Orbix2.CORBA.SystemException; // OrbixWeb

import CosNaming.NamingContext; // name service/context

import CosNaming.NamingContext.*; // name service/Exceptions

import Calc5.calc.complex; // Typ 'complex' from Calc5

class MyNaming extends CosNaming {

...

}

public class client extends Frame {

private Calc5.calc.Ref calc;

private TextField inR, inI;

private Button setB, addB, multB,

divB, quitB, zeroB;

public static void main(String argv[])

{

CosNaming.NamingContext.Ref cxt;

Calc5.calc_factory.Ref cf;

Frame f;

try {

cxt= NamingContext._narrow( MyNaming.

resolve_initial_references(MyNaming.NameService));

cf = Calc5.calc_factory._narrow(

cxt.resolve(MyNaming.mk_name("calcfac")));

f = new client(cf.create_new_calc());

f.pack();

f.show();

}

catch (Exception ex) {

System.out.println("Calc-5/Init:" + ex.toString());

}

}

Pro

f. U

. Aßm

ann,

CB

SE

64

Obj

ect S

ervi

ces:

Per

sist

ency

► 

Def

initi

on o

f a P

ersi

sten

t Obj

ect I

dent

ifier

(PID

) ■ 

refe

renc

es th

e va

lue

of C

OR

BA

-obj

ects

(in

cont

rast

to a

CO

RB

A-o

bjec

t)

► 

Inte

rface

■ 

conn

ect,

disc

onne

ct, s

tore

, res

tore

, del

ete

► 

Atta

chm

ent t

o da

ta b

ases

pos

sibl

e (a

lso

OD

MG

com

patib

le)

Page 33: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

65

Obj

ect S

ervi

ces:

Pro

pert

y Se

rvic

e

► 

Man

agem

ent o

f lis

ts o

f fea

ture

s (p

rope

rties

) for

obj

ects

■ 

Pro

perti

es a

re s

tring

s

■ D

ynam

ical

ly e

xten

sibl

e

► 

Con

cept

wel

l-kno

wn

as

■ LI

SP

pro

perty

list

s, a

ssoc

iativ

e ar

rays

, Jav

a pr

oper

ty c

lass

es

► 

Itera

tors

for p

rope

rties

► 

Inte

rface

: ■ 

defin

e_pr

oper

ty, d

efin

e_pr

oper

ties,

get

_pro

perty

_val

ue, g

et_p

rope

rties

, de

lete

_pro

perty

,

Pro

f. U

. Aßm

ann,

CB

SE

66

Col

labo

ratio

n Se

rvic

es: T

rans

actio

ns

► 

Wha

t a d

ream

: the

Web

as

data

bas

e w

ith n

este

d tra

nsac

tions

. S

cena

rios:

■ 

Acc

ount

s as

Web

-obj

ects

. Tra

nsfe

rs a

s Tr

ansa

ctio

n on

the

obje

cts

of s

ever

al

bank

s

■ P

aral

lel w

orki

ng o

n w

eb s

ites:

how

to m

ake

cons

iste

nt?

► 

Sta

ndar

d 2-

phas

e co

mm

it pr

otoc

ol:

■ be

gin_

ta, r

ollb

ack,

com

mit

► 

Nes

ted

trans

actio

ns

■ be

gin_

subt

rans

actio

n, ro

llbac

k_su

btra

nsac

tion,

com

mit_

subt

rans

actio

n

Page 34: BSE - TU Dresden

CB

SE

, © P

rof.

Uw

e A

ßman

n 67

11b.

5 C

OR

BA

Fac

ilitie

s

(Sta

ndar

ds fo

r App

licat

ion

Dom

ains

)

App

licat

ion

dom

ain

spec

ific

inte

rface

s

Pro

f. U

. Aßm

ann,

CB

SE

68

Hor

izon

tal F

acili

ties

► 

Use

r int

erfa

ces

■ P

rintin

g, S

crip

ting

■ C

ompo

und

docu

men

ts: s

ince

199

6 O

penD

oc is

acc

epte

d as

sta

ndar

d fo

rmat

. S

ourc

e C

ode

has

been

rele

ased

of I

BM

► 

Info

rmat

ion

man

agem

ent

■ M

etad

ata(

met

a ob

ject

faci

lity,

MO

F)

■ To

ol in

terc

hang

e: a

text

- and

stre

am b

ased

exc

hang

efor

mat

for U

ML

(XM

I)

■ C

omm

on W

areh

ouse

Mod

el (C

WM

): M

OF-

base

d m

etas

chem

a fo

r dat

abas

e ap

plic

atio

ns

Page 35: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

69

Vert

ical

Fac

ilitie

s (D

omai

n-Sp

ecifi

c Fa

cilit

ies)

Th

e D

omai

n te

chno

logy

com

mitt

ee (D

TC) c

reat

es d

omai

n ta

sk fo

rces

DTF

for a

ap

plic

atio

n do

mai

n

► 

Bus

ines

s ob

ject

s ► 

Fina

nce/

insu

ranc

e ■ 

Cur

renc

y fa

cilit

y

► 

Ele

ctro

nic

com

mer

ce

► 

Man

ufac

turin

g ■ 

Pro

duct

dat

a m

anag

emen

t ena

bler

s P

DM

► 

Med

icin

e (h

ealth

care

Cor

baM

ed)

■ Le

xico

n Q

uery

Ser

vice

■ P

erso

n Id

entif

ier S

ervi

ce P

IDS

► 

Tele

com

mun

icat

ions

■ 

Aud

io/v

isua

l stre

am c

ontro

l obj

ect

■ N

otifi

catio

n se

rvic

e

► 

Tran

spor

tatio

n

Pro

f. U

. Aßm

ann,

CB

SE

70

CO

RB

A F

acili

ties

and

UM

L Pr

ofile

s

► 

Sin

ce 2

000,

the

OM

G d

escr

ibes

dom

ain-

spec

ific

voca

bula

ries

with

U

ML

prof

iles

■ P

roba

bly,

all

CO

RB

A fa

cilit

ies

will

end

up

in U

ML

prof

iles

► 

A U

ML

Pro

file

is a

UM

L di

alec

t of a

app

licat

ion

spec

ific

dom

ain

■ W

ith n

ew s

tere

otyp

es a

nd ta

gged

val

ues

■ C

orre

spon

ds to

an

exte

nsio

n of

the

UM

L m

etam

odel

■ 

Cor

resp

onds

to a

dom

ain

spec

ific

lang

uage

with

ow

n vo

cabu

lary

■ 

Eve

ry e

ntry

in p

rofil

e is

a te

rm

► 

Exa

mpl

e U

ML

Pro

files

: ■ 

ED

OC

Ent

erpr

ise

Dis

tribu

ted

Obj

ects

Com

putin

g ■ 

Mid

dlew

are

prof

iles:

Cor

ba, .

NE

T, E

JB

■ E

mbe

dded

and

real

tim

e sy

stem

s:

. M

AR

TE p

rofil

e on

sch

edul

abili

ty, p

erfo

rman

ce, t

ime

. R

aven

scar

Pro

file

. 

HID

OO

RS

Pro

file

on re

al-ti

me

mod

ellin

g w

ww

.hid

oors

.org

Page 36: BSE - TU Dresden

CB

SE

, © P

rof.

Uw

e A

ßman

n 71

11b.

6. C

OR

BA

and

the

Web

Pro

f. U

. Aßm

ann,

CB

SE

72

Cor

ba a

nd th

e W

eb

► 

HTM

L so

lves

man

y of

the

CO

RB

A p

robl

ems

► 

HTT

P o

nly

for d

ata

trans

port

■ H

TTP

can

not c

all m

etho

ds, e

xcep

t by

CG

I-Gat

eway

-func

tiona

lity

(com

mon

ga

tew

ay in

terfa

ce)

■ B

ehin

d th

e C

GI-i

nter

face

is a

gen

eral

s pr

ogra

m, c

omm

unic

atin

g w

ith H

TTP

with

un

type

d en

viro

nmen

t var

iabl

es (

HA

CK

!)

■ ht

tp-S

erve

r are

sim

ple

OR

Bs,

pag

es a

re o

bjec

ts

■ Th

e U

RI/U

RL-

nam

e sc

hem

a ca

n be

inte

grat

ed in

to C

OR

BA

► 

IIOP

bec

omes

a s

tand

ard

inte

rnet

pro

toco

l ■ 

Sta

ndar

d po

rts, U

RL-

map

ping

s an

d S

tand

ard-

prox

ies

for F

irew

alls

are

ava

ilabl

e

► 

CO

RB

A is

an

exte

nsio

n of

HTT

P o

f dat

a to

cod

e

Page 37: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

73

CO

RB

A a

nd J

ava

► 

Java

is a

n id

eal p

artn

er fo

r Cor

ba :

■ B

ytec

ode

is m

obile

, i.e

.,

. A

pple

ts:

mov

e ca

lcul

atio

ns to

clie

nts

(thin

/thic

k cl

ient

pro

blem

) . 

can

be u

sed

for m

igra

tion

of o

bjec

ts, O

RB

s an

d ag

ents

■ 

Sin

ce 1

999

dire

ct C

orba

sup

port

in J

DK

1.2

. 

IDL2

Java

map

ping

, ID

L co

mpi

ler,

Java

2ID

L co

mpi

ler,

nam

e se

rvic

e, O

RB

■ 

Cor

ba s

uppo

rts fo

r Jav

a a

dist

ribut

ed in

tero

pera

ble

infra

stru

ctur

e

► 

Java

imita

tes

func

tiona

lity

of C

orba

■ 

Bas

ic s

ervi

ces:

Rem

ote

Met

hod

Invo

catio

n R

MI,

Java

Nat

ive

code

Inte

rface

JN

I ■ 

Ser

vice

s: s

eria

lizat

ion,

eve

nts

■ A

pplic

atio

n sp

ecifi

c se

rvic

es (f

acili

ties)

: ref

lect

ion,

pro

perti

es o

f Jav

aBea

ns

Pro

f. U

. Aßm

ann,

CB

SE

74

Cor

ba a

nd th

e W

eb (O

rble

ts)

► 

OR

Bs

can

be w

ritte

n as

byt

ecod

e ap

plet

s if

they

are

writ

ten

in J

ava

(OR

Ble

t) ► 

Cou

plin

g of

HTT

P a

nd II

OP

: Dow

nloa

d of

an

OR

Ble

ts w

ith H

TTP

: Ta

lk to

thi

s O

RB

, to

get c

onta

ct to

ser

ver

► 

Sta

ndar

d w

eb s

ervi

ces

(see

late

r) a

re s

low

er th

an C

OR

BA

/OR

Ble

ts,

beca

use

they

incu

r int

erpr

etat

ion

over

head

OR

B

Htt

p s

erv

er

OR

B S

erv

er

We

b-C

lien

t W

eb

se

rve

r 1

) Fe

tch

pa

ge

2)

fetc

h O

RB

let

Bu

sin

ess

ob

jec

ts

3)

co

mm

un

icat

e w

ith

IIO

P

dat

a b

ase

s

Lo

tus

No

tes

Page 38: BSE - TU Dresden

Pro

f. U

. Aßm

ann,

CB

SE

75

Wha

t Hav

e W

e Le

arne

d

► 

CO

RB

A is

big

, but

uni

vers

al:

■ Th

e C

orba

-inte

rface

s ar

e ve

ry fl

exib

le, w

ork

and

can

be u

sed

in p

ract

ice

■ ..

but a

lso

com

plex

and

fat,

may

be

too

flexi

ble

■ If

you

have

to c

onne

ct to

lega

cy s

yste

ms,

CO

RB

A w

orks

► 

Cor

ba h

as th

e ad

vant

age

of a

n op

en s

tand

ard

► 

To in

crea

se re

use

and

inte

rope

rabi

lity

in p

ract

ice,

one

has

to le

arn

man

y st

anda

rds

► 

Trad

ing

and

dyna

mic

cal

l are

futu

re a

dvan

ced

com

mun

icat

ion

mec

hani

sms

► 

CO

RB

A w

as p

roba

bly

only

the

first

ste

p, b

ut w

eb s

ervi

ces

mig

ht b

e ta

king

ove

r

Pro

f. U

. Aßm

ann,

CB

SE

76

The

End