Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-,...

31
Einführung in SOAP Seminar E-Services von Christoph Kurek

Transcript of Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-,...

Page 1: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

Ein

führ

ung

in S

OA

P

Sem

inar

E-S

ervi

ces

von

Chr

isto

ph K

urek

Page 2: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

Was

ist S

OA

P?

SO

AP

ste

ht fü

r Sim

ple

Obj

ectA

cces

s P

roto

koll

SO

AP

ist e

in S

tand

aris

ierte

s V

erpa

ckun

gspr

otok

oll f

ür N

achr

icht

enS

OA

P is

t ein

e A

nwen

dung

der

XM

L-S

pezi

fikat

ion

Es

ist k

eine

kom

plet

te v

erte

ilte

Arc

hite

ktur

Page 3: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

Vor

teile

von

SO

AP

+ X

ML

Bas

iere

nd⇒

Pla

ttfor

m-,

Bet

riebs

yste

m-,

und

Pro

gram

mie

rspr

ache

nuna

bhän

gig

+ E

infa

ch u

nd E

rwei

terb

ar+

Bau

t auf

Sta

ndar

tpro

toko

llen

auf,

wie

H

TTP

, SM

TP, F

TP+

Fire

wal

luna

bhän

gig

(Vor

teil?

)

Page 4: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

Nac

htei

le v

on S

OA

P

-S

iche

rhei

tsst

anda

rds

noch

nic

ht

Sta

ndar

isie

rt (S

igna

tur,

Ver

schl

üsse

lung

)-

Nac

hric

hten

größ

e-

Per

form

ance

Page 5: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

SO

AP

Nac

hric

hten

Bes

teht

aus

ein

en E

nvel

ope,

der

-O

ptio

nal e

inen

Hea

deru

nd-

dana

ch z

win

gend

ein

en B

ody

enth

ält.

Alle

s, w

as d

er X

ML

Syn

tax

ents

pric

ht,

kann

im B

ody

und

Hea

ders

tehe

n.X

ML

Syn

tax

eine

r SO

AP

Nac

hric

ht b

eruh

t au

f den

Nam

ensr

aum

ht

tp://

ww

w.w

3.or

g/20

01/0

6/so

ap-e

nvel

ope

Page 6: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

SO

AP

Nac

hric

hten

Page 7: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

SO

AP

Nac

hric

hten

<env:Envelopexmlns:env="http://www.w3.org/2002/06/soap-

envelope">

<env:Header>

<n:alertcontrol

xmlns:n="http://example.org/alertcontrol">

<n:priority>1</n:priority>

<n:expires>2001-06-22T14:00:00-05:00</n:expires>

</n:alertcontrol>

</env:Header>

<env:Body>

<m:alertxmlns:m="http://example.org/alert">

<m:msg>Pickup Mary at schoolat 2pm</m:msg>

</m:alert>

</env:Body>

</env:Envelope>

Page 8: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

SO

AP

als

RC

P

RC

P s

teht

für R

emot

eP

roce

dure

Cal

l

Nac

hric

hten

tret

en p

aarw

eise

auf

Clie

nt fr

agt,

Ser

ver a

ntw

orte

t (in

SO

AP

S

pezi

fikat

ion

nich

t vor

gesc

hrie

ben)

Page 9: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

SO

AP

als

RP

CA

ufru

f von

public Float getQuote(String

symbol);

<s:Envelope

xmlns:s="http://www.w3.org/2001/06/soap-envelope">

<s:Header>

<m:transaction

xmlns:m="soap-transaction"

s:mustUnderstand="true">

<transactionID>1234</transactionID>

</m:transaction>

</s:Header>

<s:Body>

<n:getQuotexmlns:n="urn:QuoteService">

<symbol

xsi:type="xsd:string"> IBM </symbol>

</n:getQuote>

</s:Body>

</s:Envelope>

Page 10: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

SO

AP

als

RP

CM

öglic

he A

ntw

ort:

<s:Envelope

xmlns:s="http://www.w3.org/2001/06/soap-

envelope">

<s:Body>

<n:getQuoteRespone

xmlns:n="urn:QuoteService">

<value

xsi:type="xsd:float"> 98.06 </value>

</n:getQuoteResponse>

</s:Body>

</s:Envelope>

Page 11: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

Attr

ibut

mus

tUnd

erst

and

Hea

derb

löck

ew

erde

n „o

ptio

nal“

vera

rbei

tet.

Der

mit

Attr

ibut

mustUnderstand=“true“

mus

s ve

rsta

nden

wer

den.

Falls

nic

ht d

er F

all,

mus

s ei

ne

Fehl

erm

eldu

ng e

rfolg

en.

Es

ist u

nabh

ängi

g da

von,

ob

die

Nac

hric

ht

im B

ody

vera

rbei

tet w

erde

n ka

nn.

Page 12: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

Dat

enco

dier

ung

in S

OA

P

Von

W3C

wird

ein

Cod

ieru

ngss

til

vorg

esch

lage

n<s:Body>

<n:getQuotexmlns:n="urn:QuoteService"

s:encodingStyle="http://www.w3.org/2001/06/soap-

encoding">

<symbolxsi:type="xsd:string">IBM</symbol>

</n:getQuote>

</s:Body>

Page 13: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

Dat

enco

dier

ung

in S

OA

P

3 M

öglic

he A

rten

, den

Dat

enty

p au

szud

rück

en1.

Ver

wen

dung

des

Attr

ibut

es x

si:ty

peun

d B

ezug

auf

ei

nen

Dat

enty

p de

s X

ML

Sch

emas

2.V

erw

eis

auf e

in X

ML-

Sch

ema-

Dok

umen

t, de

r den

xs

i:typ

ede

s E

lem

ente

s fe

stle

gt3.

Ver

wei

s au

f ein

Sch

ema

Dok

umen

t, de

r den

D

aten

typ

des

Ele

men

ts fe

stle

gt

Page 14: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

Dat

enco

dier

ung

in S

OA

P1.

<person>

<namexsi:type="xsd:string">ErikaMustermann</name>

</person>

2.

<personxmlns="personschema.xsd">

<name>ErikaMustermann</name>

</person>

<!--

wobei "personschema.xs

d" das Element nameals

type="xsd:string" definiert -->

3.

<personxmlns="urn:some_namespace">

<name>ErikaMustermann</name>

</person>

<!--

wobei "urn:some_na

mespace" einen Namensraum

anzeigt, in dem die Werte von name-Elementen

Strings

sind -->

Page 15: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

SO

AP

Dat

enty

pen

2 M

öglic

he S

chre

ibw

eise

n fü

r die

Ty

pisi

erun

g vo

n W

erte

n:

1.A

nony

m<SOAP-ENC:int>36</SOAP-ENC:int>

2.B

enan

nt<valuexsi:type="xsd:int">36</value>

Page 16: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

SO

AP

Dat

enty

pen

Meh

rfach

refe

renz

<valuexsi:type="xsd:int" id="v1">42</value>

<valuehref="#v1" />

Obj

ektre

fere

nz-

Java

Addressaddress= newAddress();

Person person= newPerson();

person.setAddress(address);

-S

OA

P<Person> <Addresshref="#address1" /> </Person>

<Addressid="address1" />

Page 17: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

SO

AP

Dat

enty

pen

Byt

e A

rray

s

<some_binary_dataxsi:type="SOAP-ENC:base64">

aDF4JIK34KJjk3443kjlkj43SDF43==

</some_binary_data>

Page 18: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

SO

AP

Dat

enty

pen

Ein

-und

Zw

eidi

men

sion

ale

Arra

ys<names

xsi:type="SOAP-ENC:Array" SOAP-

ENC:arrayType="xsd:string[2,2]">

<name

xsi:type="xsd:string">a1d1</name>

<name

xsi:type="xsd:string">a2d1</name>

<name

xsi:type="xsd:string">a1d2</name>

<name

xsi:type="xsd:string">a2d2</name>

</names>

<names

xsi:type="SOAP-ENC:Array" SOAP-

ENC:arrayType="xsd:string[4]">

<name

xsi:type="xsd:string">a1d1</name>

<name

xsi:type="xsd:string">a2d1</name>

<name

xsi:type="xsd:string">a3d1</name>

<name

xsi:type="xsd:string">a4d1</name>

</names>

Page 19: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

SO

AP

Dat

enty

pen

Dün

n be

setz

te A

rrays

<namesxsi:type="SOAP-ENC:Array" SOAP-

ENC:arrayType="xsd:string[10,10]">

<nameSOAP-ENC:position="[2,5]">Wert</name>

<nameSOAP-ENC:position="[5,2]">Wert</name>

</names>

Leer

e V

aria

blen

<namexsi:type="xsd:string" xsi:nil="true" />

Page 20: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

SO

AP

Nac

hric

hten

aust

ausc

h

Nac

hric

ht: e

ine

Ein

weg

über

tragu

ngId

ee: E

ine

Nac

hric

ht d

urch

läuf

t vie

le

Zwis

chen

vera

rbei

tung

sste

llen

(Pip

elin

e)N

achr

icht

enpf

adA

kteu

r

Page 21: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

SO

AP

Nac

hric

hten

aust

ausc

h

SO

AP

Tar

getin

g: B

estim

mt,

wel

cher

Tei

l de

r Nac

hric

ht fü

r wen

Nur

in B

ezug

auf

Hea

derb

löck

eA

ttrib

ut actor

Page 22: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

SO

AP

Nac

hric

hten

aust

ausc

h

Page 23: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

SO

AP

Nac

hric

hten

aust

ausc

h

<s:Envelopexmlns:s="...">

<s:Header>

<x:signatureactor="uri:SignatureVerifier"> ...

</x:signature>

</s:Header>

<s:Body>

<abc:purchaseOrder>...</abc:purchaseOrder>

</s:Body>

</s:Envelope>

Page 24: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

SO

AP

Nac

hric

hten

aust

ausc

h

Kon

stru

ktio

n de

s N

achr

icht

enpf

ades

nic

ht

in d

er S

OA

P S

pezi

fikat

ion!

Erw

eite

rung

en: z

.B. S

OA

P R

outin

gP

roto

coll

(WS

-Rou

ting

von

Mic

roso

ft)

Page 25: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

SO

AP

Nac

hric

hten

aust

ausc

h<s:Envelope

xmlns:s="...">

<s:Header>

<m:pathxmlns:m="http://schemas.xmlsoap.org/rp/"

s:mustUnderstand="true">

<m:action>http://www.im.org/chat</m:action>

<m:to>http://D.de/irgendein/endpunkt</m:to>

<m:fwd> <m:via>http://B.ch</m:via>

<m:via>http://C.at</m:via>

</m:fwd>

<m:rev> <m:via/>

</m:rev>

<m:from>mailto:[email protected]</m:from>

<m:id> uuid:84b9f5d0-33fb-4a81-b02b-5b760641c1d6 </m:id>

</m:path>

</s:Header>

<s:Body> ... </s:Body>

</s:Envelope>

Page 26: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

SO

AP

Fau

lts

Enth

alte

ne In

form

atio

nen:

Faul

t-Cod

eE

in W

ert,

der d

en F

ehle

r Ide

ntifi

zier

tFa

ult-S

tring

Fehl

erer

klär

ung

Faul

t-Act

orD

er K

note

n, a

n de

n Fe

hler

auf

trat

Faul

t-Det

ails

Ein

zelh

eite

n, n

ur fa

lls d

er F

ehle

r unm

ittel

bar m

it ei

nen

Pro

blem

in B

ody

zusa

mm

enhä

ngt.

Page 27: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

SO

AP

Fau

lts<s:Envelopexmlns:s="...">

<s:Body>

<s:Fault>

<faultcode>Client.Authentication</faultcode>

<faultstring> Ungültiger Identitätsnachweis

</faultstring>

<faultactor>http://spitze.de</faultactor>

<details> <!--AnwendungsspezifischeEinzelheiten-->

</details>

</s:Fault>

</s:Body>

</s:Envelope>

Page 28: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

SO

AP

Fau

lts

Stan

dart

code

s fü

r SO

AP-

Faul

ts:

Ser

ver

Fehl

er, d

er n

icht

dire

kt m

it N

achr

icht

enve

rarb

eitu

ng

zusa

mm

enhä

ngt

Clie

nt Pro

blem

mit

der N

achr

icht

Ver

sion

Mis

mat

chFa

lsch

er N

amen

srau

m fü

r SO

AP

Env

elop

eM

ustU

nder

stan

dE

in v

on E

mpä

nger

nich

t ver

stan

dene

r mustUnderstand

Hea

derb

lock

Page 29: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

SO

AP

Fau

ltsM

ustU

nder

stan

d-Fa

ults

<s:Envelope

xmlns:s="...">

<s:Header>

<f:M

isun

ders

tood

qnam

e="a

bc:t

rans

acti

on"

xmln

s:="

soap

-tr

ansa

ctio

ns"

/></s:Header>

<s:Body>

<s:Fault>

<faultcode>MustUnderstand</faultcode>

<faultstring> Header

nicht verstanden </faultstring>

<faultactor>http://spitze.de</faultactor>

</s:Fault>

</s:Body>

</s:Envelope>

Page 30: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

SO

AP

Fau

ltsV

ersi

onM

ism

atch

-Fau

lt<s:Envelope

xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">

<s:Header>

<V:U

pgra

dexm

lns:

V="h

ttp:

//ww

w.w3

.org

/200

1/06

/soa

p-up

grad

e">

<env

elop

eqn

ame=

"ns1

:Env

elop

e"

xmln

s:ns

1="h

ttp:

//ww

w.w3

.org

/200

1/06

/soa

p-en

velo

pe"/

></

V:Up

grad

e></s:Header>

<s:Body>

<s:Fault>

<faultcode>s:VersionMismatch</faultcode>

<faultstring>Versionsfehler</faultstring>

</s:Fault>

</s:Body>

</s:Envelope>

Page 31: Einführung in SOAP - VSIS Homepagevsis- fileVorteile von SOAP + XML Basierend ⇒Plattform-, Betriebsystem-, und Programmiersprachenunabhängig + Einfach und Erweiterbar + Baut auf

Lite

ratu

r

http

://w

ww

.w3c

.org

/200

0/xp

/Gro

up/

http

://w

ww

.ore

illy.d

e/ca

talo

g/pr

ogw

ebso

apge

r/cha

pter

/ch0

2.ht

ml

Web

serv

ice-

Prog

ram

mie

rung

mit

SOA

P Ja

mes

Sne

ll, D

oug

Tidw

ell&

Pav

el K

ulch

enko

O‘R

eilly

1. A

ufla

ge, J

uli 2

002

ISB

N 3

-897

21-1

59-9