• Keine Ergebnisse gefunden

Block Web Services Block Web Services

N/A
N/A
Protected

Academic year: 2022

Aktie "Block Web Services Block Web Services"

Copied!
139
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

R R ü ü ckblick ckblick

(2)

Block XML Block XML

Vorlesungen

Vorlesungen 6 Termine6 Termine ÜÜbung –bung 5 Termine5 Termine

XML-Grundlagen einsch.

Namenräume

XML-Syntax, Namensräume

DTD & XML-Schema DTD

XML-Schema im Detail XML Schema

SAX & DOM Parser

XSLT XPath, XSLT

(3)

Block Web Services Block Web Services

Vorlesungen

Vorlesungen 4 Termine4 Termine ÜÜbung –bung 2 Termine2 Termine

Web Services, RPCs vs. Messaging

SOAP im Detail SOAP

WSDL im Detail WSDL

Web Services in der Praxis &

Ausblick

(4)

Block Wiederholung + Klausur Block Wiederholung + Klausur

Vorlesungstermin

Vorlesungstermin VorlesungVorlesung

11.07. Rückblick

+ (14:00-16:00) Sprechstunde vor der Klausur, Fabeckstr. 15

18.07. Klausur

(5)

1. BLOCK 1. BLOCK

XML XML

(6)

1.1 XML

1.1 XML

(7)

Warum reicht HTML nicht aus?

Warum reicht HTML nicht aus?

immer häufiger medienneutrale Darstellungmedienneutrale Darstellung nötig:

ƒ Vielfalt von Endgeräten und Bandbreiten macht Trennung Inhalt von Pr

Trennung Inhalt von Prääsentationsentation nötig

ƒƒ Austausch vonAustausch von DatenDaten und Dokumenten zwischen Computern

Ö z.B. Übermittlung eines Bestellformulars Ö z.B. Web Services

HTML: keine layoutunabhängige Darstellung von Inhalten

(8)

XML XML

ƒƒ ExExtensible tensible MMarkuparkup LanguageLanguage

ƒƒ generische Auszeichnungssprache (generalized markupgenerische Auszeichnungssprache language)

ƒ keine Tags vorgegeben, beliebige Tags erlaubt

ƒ Vorteil: beliebige Metainformationen darstellbar

ƒ Nachteil: Bedeutung der Metainformationen (Tags) offen

ƒ Beispiele: SGML und XML

ƒ Unterschiede zu HTML:

ƒ medienneutral

ƒ Tag-Namen <name>…</name> beliebig

(9)

XML ist XML ist …

ƒ eine Methode, um strukturierte Daten in einer Textdatei Methode darzustellen

ƒƒ Text, aber nicht zum Lesen.Text

ƒ eine Familie von TechnologienFamilie von Technologien

ƒƒ lizenzfreilizenzfrei und plattformunabhplattformunabhäängigngig

ƒ ein offener Standard, der sich weit verbreitet hatStandard

ƒ ein Protokoll zur Aufnahme und Verwaltung von Protokoll Informationen

ƒ eine Philosophie für den Umgang mit InformationenPhilosophie

ƒ ein WerkzeugWerkzeug für die Speicherung von Dokumenten

ƒ ein konfigurierbares Mediumkonfigurierbares Medium

ƒ neu, aber nicht so neu

ƒ Modular

(10)

XML XML

ƒ sieht ein wenig wie HTML aus

ƒ überführt HTML in XHTML

ƒ erlaubt Strukturieren von Inhalten

ƒ lässt sich mit Stylesheets kombinieren um Dokumente in einer bestimmten Form darzustellen

ƒ mit klarem und einfachem Syntax und eindeutigen

Strukturen kann von Menschen und Maschinen verstanden werden

(11)

SGML SGML

ƒƒ SStandard tandard GGeneralizedeneralized MMarkuparkup LLanguageanguage

ƒ keine vorgegebenen Tags, auch keine für das Layout von Dokumenten

ƒ Vorgänger von XML

ƒƒ Anwendungen von SGML ÆAnwendungen mit DocumentDocument Type Type DefinitionsDefinitions (DTDs) können spezielle Auszeichnungssprachen mit DTDs

konkreten Tags definiert werden:

ƒ bekannteste Anwendung von SGML: HTML

ƒ Anwendung selbst kann keine Anwendung definieren

SGML Anwendung: spezieller

Wortschatz und Grammatik

DTD HTML

(12)

SGML SGML - - vs. vs. XML XML - - Anwendungen Anwendungen

XML

L DTD/XML

-Schema

SGML Anwendung

von SGML SGML-DTD L

ƒ L muss nicht Teilsprache von SGML sein.

ƒ L kann keine neue Sprache definieren.

ƒ Beispiel: HTML

ƒ L immer Teilsprache von XML XML-Sprache

= Anwendung von XML

(13)

SGML, HTML, XML, XHTML?!

SGML, HTML, XML, XHTML?!

HTMLHTML

ƒ Anwendung von SGML XMLXML

ƒ Teilsprache von SGML

SGML

HTML XML

XHTML

XHTML XHTML

ƒ XML-Sprache

= Anwendung von XML

ƒ alle XHTML-

Dokumente immer wohlgeformte XML-

(14)

Grundbausteine von XML Grundbausteine von XML

ƒƒ Elemente: strukturieren das XML-DokumentElemente

ƒƒ Attribute: Zusatzinformationen zu ElementenAttribute

ƒƒ XMLXML--Deklaration: Informationen für ParserDeklaration

ƒƒ NamensrNamensrääume: lösen Namenskonflikte auf und geben ume

<?xml version="1.0" encoding="UTF-8"?>

<name id="1232345">

<first>John</first>

<middle>Fitzgerald Johansen</middle>

<last>Doe</last>

</name>

(15)

XML XML - - Elemente Elemente Inhalt Inhalt

1.1. unstrukturierter Inhalt:unstrukturierter Inhalt

einfacher Text ohne Kind-Elemente 2.2. strukturierter Inhalt:strukturierter Inhalt

Sequenz von > Ø Kind-Elementen 3.3. gemischter Inhalt:gemischter Inhalt

enthält Text mit mind. einem Kind-Element 4.4. leerer Inhaltleerer Inhalt

(16)

XML- XML - Attribute Attribute

ƒƒ Attribut: Name-Wert-PaarAttribut

ƒ name="wert" oder name='wert' aber name= "wert'

ƒƒ AttributAttribut--Wert:Wert

- immer PCDATA: keine Kind-Elemente, kein < und &

- "we"rt" und 'we'rt' ebenfalls nicht erlaubt

- Normalisierung: u.a. Zeilenumbruch Î #xA

<name id="1232345" id="1232345" nickname="Shinynickname="Shiny John">John"

<first>John</first>

<last>Doe</last>

</name>

(17)

XML XML - - Deklaration Deklaration

Attribut

Attribut versionversion

ƒ verwendete XML-Version: "1.0" oder "1.1"

ƒ obligatorisch Attribut

Attribut encodingencoding

ƒ Kodierung der XML-Datei

ƒ optional Attribut

Attribut standalonestandalone

ƒ Gibt an, ob es eine zugehörige DTD oder ein XML- Schema gibt ("no") oder nicht ("yes").

ƒ optional

Beachte: immer in dieser Reihenfolge!

<?xml version="1.0" encoding="UTF-8"?>

(18)

Wohlgeformte

Wohlgeformte XML XML - - Dokumente Dokumente

1. Jedes Anfangs-Tag muss ein zugehöriges Ende-Tag haben.

2. Elemente dürfen sich nicht überlappen.

3. XML-Dokumente haben genau ein Wurzel-Element.

4. Element-Namen müssen bestimmten Namenskonventionen entsprechen.

5. XML beachtet grundsätzlich Groß- und Kleinschreibung.

6. XML belässt White Space im Text.

7. Ein Element darf niemals zwei Attribute mit dem selben Namen haben.

(19)

Namensr

Namensr ä ä ume ume

Namensraum

Namensraum (namespace):

ƒ alle Bezeichner mit identischen

Anwendungskontext

ƒ Namensräume müssen eindeutig identifizierbar sein.

course:course course:title

course:lecturers course:date

course:abstract

pers:title pers:first pers:last

pers:name

(20)

Namensr

Namensr ä ä ume in XML ume in XML

ƒ WWW: Namensräume müssen global eindeutig sein.

ƒ In XML wird Namensraum mit URI identifiziert.

ƒ Zuerst wird Präfix bestimmter Namensraum zugeordnet, z.B.:

xmlns:pers="http://www.w3.org/2004/pers"

ƒ Anschließend kann das Namensraum-Präfix einem Namen vorangestellt werden: z.B. pers:title

Namensraum

Namensraum--PräPräfixfix Namensraum-Namensraum-BezeichnerBezeichner (URI)

(21)

Standard

Standard - - Namensraum Namensraum

ƒƒ xmlns="URIxmlns="URI"" statt xmlns:prefix="URI"

ƒ Namensraum-Präfix kann weggelassen werden.

ƒ Standard-Namensraum gilt für das Element, wo er definiert ist.

ƒ Kind-Elemente erben Standard-Namensraum von ihrem Eltern-Element.

ƒ Ausnahme: Standard-Namensraum wird überschrieben

ƒ Beachte: StandardnamensrStandardnamensrääume gelten nicht fume gelten nicht für ür Attribute

Attribute

(22)

Qualified

Qualified vs. Unqualified vs. Unqualified

ƒ Element- oder Attribut-Name heißt namensraumeingeschr

namensraumeingeschräänktnkt (qualifiedqualified), wenn er einem Namensraum zugeordnet ist.

ƒ Einschränkung vom Element-Namensraum:

1. Standard-Namensraum festlegen 2. Namensraum-Präfix voranstellen

ƒ Einschränkung vom Attribut-Namensraum:

1. Namensraum-Präfix voranstellen

(23)

XML XML Æ Æ Lernziele Lernziele

(24)

XML XML

Lernziele Lernziele

ƒ Was ist eine generische Auszeichnungssprache?

ƒ Vor- und Nachteile einer generischen Auszeichnungssprache

ƒ Unterschiede zwischen SGML, HTML, XML und XHTML

ƒ Grundbausteine von XML

ƒ Funktionen von Namensräumen

ƒ Wie werden Elementen/Attributen in XML Namensräume zugeordnet?

ƒ Syntaxregel und Wohlgeformtheit von XML

(25)

1.2 DTD & XML Schema 1.2 DTD & XML Schema

(DTD)

(DTD)

(26)

DTDs DTDs vs. vs. XML XML - - Schema Schema

DTD‘s XML-Schema

vereinfachte SGML-DTD, Teil von XML 1.0/1.1

eigener W3C-Standard

eigene Syntax XML-Schemta = XML-Sprache

kompakter und lesbarer ausdrucksstärker

zur Beschreibung von Text- Dokumenten ausreichend

zur Beschreibung von Daten besser geeignet.

(27)

Die DTD f

Die DTD fü ü r das Beispiel- r das Beispiel - Dokument Dokument

<!ELEMENT BookStore (Book+)>

<!ELEMENT Book (Title, Author, Date, ISBN?, Publisher)>

<!ELEMENT Title (#PCDATA)>

<!ELEMENT Author (#PCDATA)>

<!ELEMENT Date (#PCDATA)>

<!ELEMENT ISBN (#PCDATA)>

<!ELEMENT Publisher (#PCDATA)>

<!ELEMENT

<!ELEMENT Name ContentName Content--ModellModell>>

Element-Deklaration

(28)

Datentypen f

Datentypen fü ü r Element- r Element -Inhalte Inhalte

verschiedene Datentypen:

1.1. Element: Element mit speziellen Symbolen + * | ?Element 2.2. #PCDATA: unstrukturierter Inhalt ohne reservierte #PCDATA

Symbole < und &.

<!ELEMENT Title (#PCDATA)>

2.2. EMPTY: leerer Inhalt, Element kann aber Attribute habenEMPTY

<!ELEMENT br EMPTY> Î <br/>

3.3. ANY: beliebiger Inhalt (strukturiert, unstrukturiert, ANY gemischt oder leer)

<!ELEMENT title ANY>

(29)

Operatoren Operatoren

ƒƒ ++ bezeichnet n Wiederholungen mit n n > 0. > 0

ƒƒ ** bezeichnet n Wiederholungen mit n n 0. 0

ƒƒ || bezeichnet Auswahl: genau eine der beiden AlternativenAuswahl

ƒƒ ,, bezeichnet SequenzSequenz von Elementen.

ƒƒ ?? bedeutet optional

ƒƒ ( )( ) fassen den Kontent zusammen, auf die sich ein nachfolgender Operator bezieht

Beachte:

ƒ Rekursive Deklaration nicht äquivalent zur iterativen Definition!

ƒ (fast) beliebige Verschachtelung von Sequenz, Auswahl |, ?,

*, + und Rekursion erlaubt

(30)

Deklaration von Attributen Deklaration von Attributen

<!ATTLIST

<!ATTLIST BookStore

version CDATA #IMPLIED>>

<!ATTLIST

<!ATTLIST Name Name

AttrName1 AttrTyp1 Attrbeschr1 AttrName1 AttrTyp1 Attrbeschr1 AAttrName2ttrName2 AttrTyAttrTyp2 Ap2 Attrbeschrttrbeschr22

>>

Attribut-

Deklarationen

(31)

Deklaration von Attributen Deklaration von Attributen

<!ATTLIST BookStore

version CDATA #IMPLIED>CDATA

ƒ Element BookStoreBookStore hat Attribut versionversion.

ƒƒ CDATA: Attribut-Wert = String ohne <, & und 'CDATA bzw. "

<BookStore version="1.0">

</BookStore>

<!ATTLIST Author

gender (male | female(male | female)) "female">

ƒ statt CDATA AufzAufzäählungstyp:hlungstyp

ƒ Attribut gendergender hat entweder Wert male oder female.

ƒƒ femalefemale ist Standard-Wert von gendergender.

(32)

Datentypen f

Datentypen fü ü r Attribute r Attribute

Zusätzlich zu CDATA (Strings) und Aufzählungstypen:

ƒƒ NMTOKEN: String (Namenskonventionen von XML)NMTOKEN

ƒƒ ID: eindeutiger Bezeichner (Namenskonventionen von XML)ID

ƒƒ IDREF: Referenz auf einen eindeutigen BezeichnerIDREF

<!ATTLIST Author

key IDID #IMPLIED

keyref IDREFIDREF #IMPLIED>

ƒ Wert des Attributes keyref

keyref muss gültige Referenz sein Æ

Wert von keyrefkeyref muss Wert eines Attributes vom Typ IDID sein.

ƒ Wert von keykey muss eindeutig sein Æ zwei Attribute vom

Typ IDID dürfen niemals

(33)

Optionale/erforderliche Attribute Optionale/erforderliche Attribute

<!ATTLIST BookStore

version CDATA #FIXED #FIXED ""1.01.0">"

ƒƒ #FIXED: Attribut hat immer den gleichen Wert. #FIXED

ƒƒ #IMPLIED: Attribut optional#IMPLIED

ƒƒ #REQUIRED: Attribut obligatorisch#REQUIRED

ƒƒ "1.0":"1.0" Standard-Wert des Attributes

(34)

1.2 DTD & XML Schema 1.2 DTD & XML Schema

(XML Schema)

(XML Schema)

(35)

XML- XML - Schema Schema : : Ü Ü berblick berblick

ƒ eine XML basierte Alternative zu DTD

ƒ beschreibt die Struktur eines XML Dokuments

ƒ eine W3C Recommendation

ƒ statt XML Schema wird oft die Abkürzung XSD (XML Schema Definition) benutzt

ƒ definiert

ƒ Elemente/Attribute , die im Dokument vorkommen dürfen

ƒ die Reihenfolge & Anzahl der (Kinder-)Elemente

ƒ wie Inhalt eines Element auszusehen hat

ƒ Datentypen für Elemente und Attribute

(36)

XML- XML - Schema Schema vs. DTD (Auszug) vs. DTD (Auszug)

ƒ Für jede DTD gibt es ein äquivalentes XML-Schema.

ƒ Umgekehrt gibt es jedoch XML-Schemata, für die es keine äquivalente DTD gibt.

ÎXML-Schemata ausdrucksmächtiger als DTDs

ƒ XML-Schemata sind wohlgeformte XML-Dokumente.

ƒ Wurzel-Element: Schema aus W3C-Namensraum http://www.w3.org/2001/XMLSchema

ƒ hier XML-Schema für XML-Schema hinterlegt: Schema Schema der Schemata

der Schemata

(37)

Ziel- Ziel -Namensraum Namensraum

<?xml version="1.0"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"

targetNamespace="http

targetNamespace="http://://www.books.orgwww.books.org"">

</xsd:schema>

ƒ jedes XML-Schema definiert bestimmtes Vokabular

ƒ Dieses Vokabular wird einem Namensraum zugeordnet:

ZielZiel--NamensraumNamensraum (target namespace).

ƒ Ziel-Namensraum wird wie jeder Namensraum mit URI identifiziert

ƒ Definiertes Vokabular kann über URI identifiziert werden.

ƒ Beachte: DTD definiert keinen Namensraum

(38)

Verschiedene Arten von Datentypen Verschiedene Arten von Datentypen

Datentypen

abgeleitete primitive Unterteilung bzgl. Ableitung

benannte anonyme Unterteilung bzgl. Gültigkeit

einfache komplexe Unterteilung bzgl. Komplexität

(39)

Einfache vs. komplexe Datentypen Einfache vs. komplexe Datentypen

einfache Datentypen

einfache Datentypen (simple types)

ƒ beschreiben unstrukturierten Inhalt ohne Elemente oder Attribute (PCDATA)

komplexe Datentypen

komplexe Datentypen (complex types)

ƒ beschreiben strukturierten XML-Inhalt mit Elementen oder Attributen

ƒ natürlich auch gemischten Inhalt

(40)

Anonyme vs. benannte Datentypen Anonyme vs. benannte Datentypen

<xsd:element name="BookStore">

<xsd:complexType>

Liste von Büchern

</xsd:complexType>

</xsd:element>

ƒ anonymer komplexer Datentyp

ƒ lokale Deklaration

<xsd:complexType name="BookStoreType">

Liste von Büchern

</xsd:complexType> ƒ benannter komplexer Datentyp

ƒ globale Deklaration

(41)

Element

Element -Deklaration: 1. M - Deklaration: 1. M öglichkeit ö glichkeit

<xsd:element name="name" type="type“ minOccurs="int" maxOccurs="int"/>

ƒƒ name: Name des deklarierten Elementesname

ƒƒ type: Datentyp (benannt oder vordefiniert)type

ƒƒ minOccurs: so oft erscheint das Element mindestens minOccurs (nicht-negative Zahl)

ƒƒ maxOccurs: so oft darf das Element höchstens erscheinen maxOccurs (nicht-negative Zahl oder unbounded).

ƒ Default-Werte von minOccurs und maxOccurs jeweils 1

ƒ Beachte: abhängig vom Kontext gibt es Einschränkungen von minOccurs und maxOccurs

<xsd:element name="Book" type="BookType" maxOccurs="unbounded"/>

(42)

Element

Element -Deklaration: 2. M - Deklaration: 2. Mö ö glichkeit glichkeit

<xsd:element name="name" minOccurs="int" maxOccurs="int">

<xsd:complexType>

</xsd:complexType>

</xsd:element>

<xsd:element name="name" minOccurs="int" maxOccurs="int">

<xsd:simpleType>

</xsd:simpleType>

ƒ einfach sein

anonymer Datentyp kann entweder

ƒ komplex oder

(43)

Attributen

Attributen - - Deklaration Deklaration

<xsd:attribute name= "name" type= "type" />

<xsd:attribute name= "name">

<xsd:simpleType>

</xsd:simpleType>

</xsd:attribute>

ƒ Deklaration mit benanntem Datentyp: benanntem Datentyp

ƒ oder mit anonymem Datentyp: anonymem Datentyp

ƒ ähnlich wie Elemente

ƒ aber nur einfache Datentypeneinfache Datentypen erlaubt

lokaler Typ

globaler Typ

global

global: Deklaration Kind von xsd:schema

(44)

Attributen

Attributen- -Deklaration Deklaration

<xsd:attribute name= "name" type= "type" use="use"

default= "value" />

ƒƒ useuse=="optional"optional"" Attribut optional

ƒƒ useuse==""requiredrequired"" Attribut obligatorisch

ƒƒ useuse==""prohibitedprohibited"" Attribut unzulässig

ƒ Beachte: Wenn nichts anderes angegeben, ist das Attribut optional!

ƒƒ default: Standard-Wert für das Attributdefault

ƒƒ fixed: Standard-Fix-Wert für das Attributfixed

(45)

Einfache Datentypen Einfache Datentypen

einfache Datentypen

einfache Datentypen (simple types)

ƒ beschreiben unstrukturierten Inhalt ohne Elemente oder Attribute (PCDATA)

ƒ Schema der Schemata definiert 44 einfache Datentypen

ƒ eigene einfache Datentypen können definiert werden

(46)

Primitive vs. abgeleitete einfache Datentypen Primitive vs. abgeleitete einfache Datentypen

primitive Datentypen primitive Datentypen

(primitive types)

ƒ nicht von anderen Datentypen abgleitet abgeleitete Datentypen abgeleitete Datentypen

(derived types)

ƒ auf Basis von anderen

Datentypen definiert, z.B.

durch Einschränkung oder Erweiterung

Primitive einfache Datentypen

(47)

Abgeleitete einfache Datentypen Abgeleitete einfache Datentypen

<xsd:simpleType name="longitudeType">

<<xsd:restrictionxsd:restrictionbase=base="xsd:integer"xsd:integer">">

<xsd:minInclusive value="-180"/>

<xsd:maxInclusive value="180"/>

</

</xsd:restrictionxsd:restriction>>

</xsd:simpleType>

<xsd:simpleType name="IntegerList">

<<xsd:listxsd:listitemType=itemType=""xsd:integerxsd:integer"/>"/>

</xsd:simpleType>

<xsd:simpleType name="MyInteger">

<xsd:union<xsd:union>>

<xsd:simpleType>

<xsd:restriction base="xsd:integer"/>

</xsd:simpleType>

<xsd:simpleType>

<xsd:restriction base="xsd:string">

<xsd:enumeration value="unknown"/>

</xsd:restriction>

</xsd:simpleType>

</

</xsd:unionxsd:union>>

</xsd:simpleType>

Listen Listen

Liste als String (PCDATA): einzelne

Vereinigung Vereinigung

Vereinigung der Wertebereiche mehrerer einfacher Datentypen Einschr

Einschräänkung (Teilmenge)nkung (Teilmenge)

Einschränkung des Wertebereiches eines einfachen Datentyps

(48)

Komplexe Datentypen Komplexe Datentypen

komplexe Datentypen

komplexe Datentypen (complex types)

ƒ beschreiben strukturierten XML-Inhalt mit Elementen oder Attributen

ƒ natürlich auch gemischten Inhalt

Elemente mit komplexen Typen können andere Elemente und/oder Attribute enthalten.

(49)

Komplexen Datentypen BILDEN Komplexen Datentypen BILDEN

1.1. Sequenz <Sequenz <xsd:sequence>xsd:sequence>……< /< /xsd:sequencexsd:sequence>>

ƒ Reihenfolge vorgegeben

ƒ Elemente erscheinen so oft, wie mit minOccurs/maxOccurs festgelegt.

2.2. Menge <Menge <xsd:allxsd:all>></</xsd:allxsd:all>>

ƒ Reihenfolge der Elemente beliebig

ƒ Jedes Element erscheint hier genau einmal.

3.3. Auswahl <Auswahl <xsd:chiocexsd:chioce>>…< /< /xsd:choice>xsd:choice>

ƒ Inhalt besteht aus genau einem der aufgezählten Alternativen.

Beachte: Alle Operatoren können minOccurs und maxOccurs selbst spezifizieren

(50)

Komplexe Datentypen ABLEITEN Komplexe Datentypen ABLEITEN

1.1. ErweiterungErweiterung

ƒ Datentyp wird durch zusätzliche Attribute und Elemente erweitert.

ƒ Ergebnis: immer komplexer Datentyp

2.2. TeilmengeTeilmenge

ƒ Einschränkung des Wertebereiches eines Datentyps

ƒ Resultierender Datentyp darf nur gültige Werte des

ursprünglichen Datentyps enthalten (echte Teilmenge).

ƒ hier wäre z.B. xsd:string statt xsd:unsignedShort nicht erlaubt:

Basis

Basis--Datentyp Datentyp (einfach oder (einfach oder

komplex) komplex)

erweiterter erweiterter Datentyp (immer Datentyp (immer

komplex) komplex) zusäzusätzliche tzliche

Attribute oder Attribute oder

Elemente Elemente

+ =

(51)

Typsubstitution Typsubstitution

ƒ Voraussetzung: XML-Schema S leitet Datentyp t' von Datentyp t ab:

entweder mit xsd:extension oder xsd:restriction

ƒ Betrachten wir eine Instanz von S.

Typsubstitution Typsubstitution

ƒ An jeder Stelle in der Instanz, wo S den Datentyp t verlangt, kann auch t' verwendet werden.

ƒ Verwendete Datentyp t' muss mit xsi:type explizit angegeben werden.

(52)

M M ö ö gliche Probleme gliche Probleme

t' Teilmenge (

t' Teilmenge (restrictionrestriction) von t) von t

ƒ Laut Schema S müssen Anwendungen sowieso mit allen gültigen Werten von t umgehen, also auch mit t'.

Ö unproblematisch t' Erweiterung (

t' Erweiterung (extensionextension)) von tvon t

ƒ Laut Schema S müssen Anwendungen mit allen gültigen Werten von t umgehen, nicht aber mit zusätzlichen

Attributen und Elementen Ö evtl. problematisch

Ö Typsubstitution für Erweiterungen evtl. unterdrücken:

(53)

DTD & XML Schema DTD & XML Schema

Æ Æ Lernziele Lernziele

(54)

DTDs DTDs und XML und XML- - Schemata Schemata

Lernziele Lernziele

ƒ DTDs und XML-Schemata lesen und vestehen können

ƒ Vorteile von XML-Schemata gegenüber DTDs

ƒ Was ist ein Ziel-Namensraum?

ƒ Verschiedene Arten von Datentypen in XML Schema

ƒ Wie kann man Datentypen in XML Schema bilden/ableiten?

ƒ Was bedeutet Typsubstitution in Schema-Instanzen und welche Probleme ergeben sich hierdurch?

(55)

1.3 XML Parser

1.3 XML Parser

(56)

Kategorien von Parser Kategorien von Parser

Validierender

Validierender vs. nichtvs. nicht--validierendervalidierender ParserParser

ƒ Wird die Validität des Dokumentes untersucht?

Pull-Pull- vs. Push-vs. Push-ParserParser

ƒ Wer hat Kontrolle über das Parsen: die Anwendung oder der Parser?

Einschritt

Einschritt-- vs. Mehrschrittvs. Mehrschritt--ParserParser

ƒ Wird das XML-Dokument in einem Schritt vollständig geparst oder Schritt für Schritt?

ƒ Beachte: Kategorien unabhängig voneinander, können kombiniert werden

(57)

Pull Pull - - Parser Parser

ƒ Anwendung hat Kontrolle über das Parsen.

ƒ Analyse der nächsten syntaktischen Einheit muss aktiv angefordert werden.

ƒ Beachte: „Pull” aus Perspektive der Anwendung.

Pull-Parser

geparste Einheit nächste Einheit?

Anwendung

geparste Einheit nächste Einheit?

(58)

Push Push - - Parser Parser

ƒ Parser hat Kontrolle über das Parsen.

ƒ Sobald der Parser eine syntaktische Einheit analysiert hat, übergibt er die entsprechende Analyse.

ƒ Beachte: „Push” aus Perspektive der Anwendung.

Push-Parser

geparste Einheit

Anwendung

geparste Einheit geparste Einheit

alles Parsen!

(59)

SAX: Simple API

SAX: Simple API for for XML XML

ƒƒ Mehrschritt-Mehrschritt-PushPush--Parser füParser für XMLr XML

ƒ kein W3C-Standard, sondern de facto Standard

ƒ standardisiertes API

ƒ ursprünglich nur Java-API, inzwischen auch: C, C++, VB, Pascal, Perl

SAX-Parser

Anwendung

Event Handler

einmaliges Anstoßen des Parsers

Ereignis: neue

syntaktische Einheit geparst

(60)

Callback

Callback - - Methoden Methoden

ƒ Methoden des Event-Handlers (also der Anwendung), die vom Parser aufgerufen werden

ƒ für jede syntaktische Einheit eigene Callback-Methode, u.a.:

- startDocument und endDocument - startElement und endElement

- characters

- processingInstruction DefaultHandler

DefaultHandler

ƒ Standard-Implementierung der Callback-Methoden: tun jeweils nichts!

(61)

Beispiel Beispiel

<priceList>

<coffee>

<name>

Mocha Java

</name>

<price>

11.95

</price>

</coffee>

</priceList>

Parser ruft startElement(…,priceList,…) auf.

Parser ruft startElement(…,coffee,…) auf.

Parser ruft startElement(…,name,…) auf.

Parser ruft characters("Mocha Java",…) auf.

Parser ruft endElement(…,name,..) auf.

Parser ruft startElement(…,price,…) auf.

Parser ruft characters("11.95",…) auf.

Parser ruft endElement(…,price,…) auf.

Parser ruft endElement(…,coffee,…) auf.

Parser ruft endElement(…,priceList,…) auf.

ƒƒ Ereignisfluss: Sobald Einheit geparst wurde, wird Ereignisfluss Anwendung benachrichtigt.

ƒ Beachte: Es wird kein Parse-Baum aufgebaut!

(62)

Logik der

Logik der Callback Callback - - Methoden Methoden

<priceList>

<coffee>

<<namename>>

Mocha

Mocha JavaJava

</name>

<price<price>>

11.95 11.95

</price>

</coffee>

</priceList>

Start

inName

inMochaJava

inMJPrice

startElement = "name"?

characters = "Mocha Java"?

startElement = "price"?

characters = "s"?

ƒ Zustände als boolesche

(63)

Vor Vor - - und Nachteile von SAX und Nachteile von SAX

+ sehr effizient und schnell, auch bei großen XML- Dokumenten

+ relative einfach

– Kontext (Parse-Baum) muss von Anwendung selbst verwaltet werden.

– abstrahiert nicht von XML-Syntax

– nur Parsen möglich, keine Modifikation oder Erstellung von XML-Dokumenten

(64)

Document

Document Object Object Model (DOM) Model (DOM)

ƒ streng genommen kein Parser, sondern abstrakte

Schnittstelle zum Zugreifen, Modifizieren und Erstellen von Parse-Bäumen

ƒ W3C-Standard

ƒ unabhängig von Programmiersprachen

ƒ nicht nur für XML-, sondern auch für HTML- Dokumente

XML-

Parser DOMDOM Anwendung

(65)

DOM- DOM - Parse- Parse -B ä ume ume

<?xml version="1.0" ?>

<priceList>

<coffee>

<name>Mocha Java</name>

<price>11.95</price>

</coffee>

</priceList>

Document Node NodeList

Element Node: PriceList NodeList

Element Node: coffee

ƒ Beachte: Dokument-Wurzel (Document Node) ≠ priceList

ƒƒ DocumentDocument Node: virtuelle Dokument-Wurzel, um z.B. Node version="1.0" zu repräsentieren

ƒ Document Node und Element Node immer NodeListNodeList als

(66)

DOM- DOM - Parse- Parse -B ä ume ume

<?xml version="1.0" ?>

<priceList>

<coffee>

<name>Mocha Java</name>

<price>11.95</price>

</coffee>

</priceList>

Document Node NodeList

Element Node: PriceList NodeList

Element Node: coffee

Element Node: name NodeList

Element Node: price NodeList

NodeList

ƒ Beachte: PCDATA wird als eigener Knoten dargestellt.

(67)

Vor Vor - - und Nachteile von DOM und Nachteile von DOM

+ Kontext (Parse-Baum) muss nicht von Anwendung verwaltet werden.

+ einfache Navigation im Parse-Baum

+ direkter Zugriff auf Elemente über ihre Namen + nicht nur Parsen, sondern auch Modifikation und

Erstellung von XML-Dokumenten – speicherintensiv

– abstrahiert nicht von XML-Syntax

(68)

SAX oder DOM?

SAX oder DOM?

SAX SAX DOMDOM

ereignis-orientierter Ansatz modell-orientierter Ansatz vollständige Umsetzung in eine Baumstruktur

parsen mehrere Verarbeitungsmöglichkeiten

XML-Dokument als

Eingabestrom (Streaming- Verfahren)

XML-Dokument vollständig im Speicher (Baummodell des

Dokuments ) schnelle Verarbeitung von großen

XML-Dokumenten

langsame Verarbeitung von großen XML-Dokumenten

wenig Hauptspeicher benötigt mehr Hauptspeicher benötigt nach dem Einlesen kann auf alle

(69)

XML Parser XML Parser

Æ Æ Lernziele Lernziele

(70)

XML- XML - Parser Parser

Lernziele Lernziele

ƒ Kategorien von Parser

ƒ Wie arbeitet ein SAX-Parser?

ƒ Was ist ein DOM-Parser?

ƒ Vor- und Nachteile von SAX- und DOM-Parser

ƒ Welchen Parser für welche Anwendung?

(71)

1.4 XSLT

1.4 XSLT

(72)

XPath

XPath: absolute und relative Pfade : absolute und relative Pfade

ƒ Standard zum Zugreifen beliebiger Teile eines XML-Dokumentes

absolute Pfade absolute Pfade

ƒ beginnen mit "/"

ƒ z.B. /order/item

Î lesen: Folge dem Pfad von der Dokument-Wurzel zu

einem Kind-Element order und von dort aus zu einem Kind- Elementen item!

relative

relative PfadePfade

ƒ beginnen mit einem Element oder Attribut

ƒ z.B. order/item

Í lesen: item-Elemente, die Kind eines Elementes order sind

(73)

Filter: Randbedingungen f

Filter: Randbedingungen fü ü r Pfade r Pfade

ƒ order/item[@item[@item--idid = 'E16= 'E16-25A']-25A']

item-Elemente, die Kind von order sind und Attribut item-id mit Wert 'E16-25A' haben

ƒ können an beliebiger Stelle in einem Pfad vorkommen:

order[@order[@order--idid = '4711']/item= '4711']

(74)

Warum XML transformieren Warum XML transformieren? ?

Trennung Inhalt und Pr

Trennung Inhalt und Prääsentationsentation

ƒ XML trennt Inhalt von Präsentation (Layout)

ƒ Für eine entsprechende Darstellung müssen XML-Inhalte transformiert werden:

ƒ XML-Inhalt Î Layout Inhaltliche Transformationen Inhaltliche Transformationen

ƒ Daten mit XML repräsentiert

ƒ unterschiedliche Sichten (Views) auf XML-Inhalte erfordern Transformationen:

ƒ XML-Inhalt Î XML-Inhalt

(75)

Was ist XSLT?

Was ist XSLT?

ƒ Programmiersprache zur Transformation von XML- Dokumenten

ƒ erlaubt XML-Dokumente in beliebige Textformate zu Transformieren:

XML Î XML/HTML/XHTML/WML/RTF/ASCII …

ƒ XSLT-Programme (stylesheets) haben XML-Syntax Î plattformunabhängig

ƒ W3C-Standard seit 1999

(76)

Ursprungs

Ursprungs- - und Ergebnisdokument und Ergebnisdokument

<?xml version="1.0"?>

<order>

<salesperson>John Doe</salesperson>

<item>Production-Class Widget</item>

<quantity>16</quantity>

<date>…</date>

<customer>Sally Finkelstein</customer>

</order>

<p>Production-Class Widget</p>

Ursprungsdokument Ursprungsdokument ÆÆ Ursprungsbaum

Ursprungsbaum (source document Æ source tree)

Ergebnisbaum Ergebnisbaum ÆÆ

<xsl:template match="order/item">

<p><xsl:value-of select="."/></p>

</xsl:template>

Template

Transformation

(77)

1. Neue Inhalte erzeugen 1. Neue Inhalte erzeugen

ƒ statt üblicher XML-Syntax

<xsl:template match="…">

<p

<p style="color:red">neuerstyle="color:red">neuer Text</p>Text</p>

</xsl:template>

ƒ auch möglich:

<xsl:template match="…">

<xsl:elementxsl:element name="p">

<xsl:attributexsl:attributename="style">color:red</xsl:attribute>xsl:attribute

<xsl:text>neuer Text</xsl:textxsl:text xsl:text>

</xsl:elementxsl:element>

</xsl:template>

(78)

2. Inhalte

2. Inhalte ü ü bertragen bertragen

<<xsl:copy-xsl:copy-ofof select="."> Elementselect="."> Element

ƒ Kopiert aktuellen Teilbaum

ƒƒ aktueller Teilbaum: Baum, der vom aktuellen Knoten aktueller Teilbaum aufgespannt wird, einschließlich aller Attribute und PCDATA

<<xsl:copyxsl:copy> Element> Element

ƒ Kopiert aktuellen Knoten ohne Kind-Elemente, Attribute und PCDATA

Ö Kopiert nur Wurzel-Element des aktuellen Teilbaums

<<xsl:value-xsl:value-ofof selectselect="."> Element="."> Element

ƒ Extrahiert PCDATA, das im aktuellen Teilbaum

(79)

Beispiel Beispiel

<source>

<A id="a1a1">

<B id="b1"/>

<B id="b2"/>

</A>

<A id="a2a2">

<B id="b3"/>

<B id="b4"/>

<C id="c1">

<D id="d1"/>

</C>

<B id="b5">

<C id="c2"/>

</B>

</A>

<xsl:template match="A">

<xsl:value-of select="@id"/>

</xsl:template>

<xsl:template match="B">

<xsl:value-of select="@id"/>

</xsl:template>

<xsl:template match="C">

<xsl:value-of select="@id"/>

</xsl:template>

<xsl:template match="D">

<xsl:value-of select="@id"/>

</xsl:template>

a1a1 a2a2

Stylesheet kein Template

anwendbar Template "A"

wird angewandt

Template "B"

wäre anwendbar, es werden aber keine Templates

aufgerufen!

Template "A"

wird angewandt

Template "B"

wäre anwendbar, es werden aber keine Templates

aufgerufen!

(80)

Rekursiver

Rekursiver Aufruf Aufruf aller aller Templates Templates

ƒ versucht Templates auf Kinder des aktuellen Knotens anzuwenden

ƒ Kind bedeutet hier: Kind-Element, Text-Knoten oder Attribut-Knoten

ƒ Mit <xsl:apply-templates selectselect = "= "……"/>" auch rekursiver Aufruf an beliebiger Stelle möglich.

ƒ Vorsicht: Terminierung nicht automatisch sichergestellt!

ƒ Beispiel:

<<xsl:applyxsl:apply--templatestemplates/>/>

<xsl:template match="A">

<xsl:value-of select="@id"/>

(81)

Iteration statt

Iteration statt Rekursion Rekursion

<source>

<A id="a1">

<B id="b1b1"/>

<B id="b2b2"/>

</A>

<A id="a2">

<B id="b3b3"/>

<B id="b4"/> b4

<C id="c1c1">

<D id="d1"/>

</C>

<B id="b5b5">

<C id="c2"/>

</B>

</A>

</source>

<xsl:template match="A">

<xsl:for<xsl:for--eacheach select="*">select="*">

<<xsl:valuexsl:value-of-of select="@idselect="@id"/>"/>

</

</xsl:forxsl:for--eacheach>>

</xsl:template>

b1b1 b2b2 b3b3 b4b4 c1c1 b5b5

ƒƒ xsl:value-xsl:value-ofof wird auf alle select- Pfade der for-each-Schleife

angewandt.

ƒ Beachte: select-Pfad von xsl:for- each relativ zum Kontext-

Knoten des Templates, hier also "A/*".

(82)

Zwei Vordefinierte

Zwei Vordefinierte Templates Templates

1.1. vordefiniertes vordefiniertes TemplateTemplate

ƒ realisiert rekursiven Aufruf des Prozessors, wenn kein Template anwendbar ist

2.2. vordefiniertes vordefiniertes TemplateTemplate

ƒ kopiert PCDATA und Attribut-Werte des aktuellen Knotens in das Ergebnisdokument

Leeres

Leeres StylesheetStylesheet

ƒ traversiert gesamtes Ursprungsdokument und extrahiert dabei PCDATA und Attribut-Werte

ÜÜberschreibenberschreiben

ƒ Vordefinierte Templates können durch speziellere

(83)

Vor- Vor - und Nachteile von XSLT und Nachteile von XSLT

+ plattformunabhäng + relativ weit verbreitet + Verarbeitung in Web-

Browsern

+ Standard-Transformationen (wie XML Î HTML) einfach zu realisieren.

+ Nicht nur HTML, sondern beliebige andere Sprachen können erzeugt werden.

+ extrem mächtig

- Entwickler müssen speziell für die Transformation von XML-Dokumenten neue Programmiersprache lernen.

- Anbindung von

Datenbanken umständlich - manche komplexe

Transformationen nur

umständlich zu realisieren

+ -

(84)

XSLT

XSLT Æ Æ Lernziele Lernziele

(85)

XSLT XSLT

Lernziele Lernziele

ƒ XPath: XPath-Ausdrücke, XPath-Funktionen

ƒ Warum XML transformieren?

ƒ Was ist XSLT?

ƒ Iteration/Rekursion bei XSLT

ƒ Welche vordefinierten Templates gibt es?

ƒ Vor- und Nachteile von XSLT

(86)

1.5 XML &

1.5 XML &

Datenbanken

Datenbanken

(87)

Wie XML

Wie XML persistent persistent speichern? speichern?

Anwendung

relationale Datenbank

Tabellen/SQL

Anwendung

XML- Datenbank

XML/XPath

Wrapper

relationale Datenbank

Tabellen/SQL Anwendung

XML

XML als

einfachen String speichern

XML als strukturiertes XML-Dokument

speichern

XML als Tabellen speichern

NYC Henderson Sally 2

NYC Thompson Brian 1

CityId LastName FirstName CustomerNo Customers

NYC Henderson Sally 2

NYC Thompson Brian 1

CityId LastName FirstName CustomerNo Customers

NYC Henderson Sally 2

NYC Thompson Brian 1

CityId LastName FirstName CustomerNo Customers

NYC Henderson Sally 2

NYC Thompson Brian 1

CityId LastName FirstName CustomerNo Customers

(88)

1. XML als String speichern 1. XML als String speichern

ƒ hierarchische XML-Struktur als Wert eines Feldes in einer Tabelle speichern

ƒ XML-Struktur als String serialisieren VorVor-- und Nachteileund Nachteile

+ vorhandenes relationales

Datenbanksystem (RDBMS) kann genutzt werden

+ triviale Schnittstelle zwischen XML und RDBMS

- keine komplexen Anfragen (z.B. mit XPath)

Anwendung

relationale Datenbank

Tabellen/SQL

(89)

2. XML in

2. XML in XML XML - - Datenbank Datenbank speichern speichern

ƒ Internes Model basiert auf XML

ƒ Übersicht XML-Datenbanken:

www.rpbourret.com/xml/XMLDatabaseProds.htm

Vorteile Vorteile

+ komplexe Anfragen auf XML-Struktur möglich

+ XPath wird unterstützt

+ Schnell bei einheitlichen Views

Anwendung

XML- Datenbank

XML/ XPath

(90)

2. XML in

2. XML in XML XML - - Datenbank Datenbank speichern speichern

Nachteile Nachteile

- neue Datenbank nötig

- XML-Datenbanken nicht interoperabel

- XML-Datenbanken liefern nur XML zurück - schwierige Integration mit bestehenden

relationalen Datenbanken (RDB)

- keine Systematik der Datenmodellierung

- Langsam bei Anfragen, die unterschiedliche Views verlangen

(91)

3. XML als Tabellen speichern 3. XML als Tabellen speichern

ƒ Abbildung XML ÎTabellen möglich

ƒ Abbildung Tabellen Î XML problemlos

ƒ Anfragen: SQL mit XML-Funktionen (z.B.

SQL/XML)

VorVor-- und Nachteileund Nachteile

+ vorhandene RDB kann genutzt werden + von modernen RDBMS unterstützt

+ Systematik der Datenmodellierung für Tabellen

- Abbildung XML ÎTabellen Î XML liefert nicht unbedingt ursprüngliche XML-Struktur

Wrapper

relationale Datenbank

Tabellen/SQL

Anwendung

XML

NYC Henderson Sally 2

NYC Thompson Brian 1

CityId LastName FirstName CustomerNo Customers

NYC Henderson Sally 2

NYC Thompson Brian 1

CityId LastName FirstName CustomerNo Customers

NYC Henderson Sally 2

NYC Thompson Brian 1

CityId LastName FirstName CustomerNo Customers

NYC Henderson Sally 2

NYC Thompson Brian 1

CityId LastName FirstName CustomerNo Customers

(92)

Fazit: Wie XML speichern?

Fazit: Wie XML speichern?

ƒ Sollen Daten oder Dokumente gespeichert werden?

ƒ Wie tief XML-Strukturen in die Datenbank integrieren?

1. XML als einfachen String in Feld einer Tabelle speichern: gar nicht integrierengar nicht integrieren

2. XML-Datenbanken: voll integrierenvoll integrieren

3. XML als Tabellen speichern: soweit wie msoweit wie mööglich glich integrieren

integrieren

ƒ nur zu beantworten, wenn XML mit relationalem Datenmodell verglichen wird

(93)

Systematik der Datenmodellierung Systematik der Datenmodellierung

relationales Modell relationales Modell

ƒ schrittweise Normalformbildung: Ergebnis formal definiert

XMLXML

ƒ Normalformen aus relationalem Modell nicht auf XML übertragbar

ƒ Grund: relationales Model erlaubt keine geschachtelten Tabellen

ƒ bisher keine Systematik der Datenmodellierungkeine Systematik der Datenmodellierung

ƒ informelles Verfahren:

Asset-Oriented Modeling (AOM), www.aomodeling.org, (Daum & Merten, System Architecture with XML, 2003).

(94)

XML & Datenbanken XML & Datenbanken

Æ Æ Lernziele Lernziele

(95)

XML und Datenbanken XML und Datenbanken

Lernziele Lernziele

ƒ drei Arten, XML persistent zu speichern

ƒ Wie können Primär- und Fremdschlüssel in einem XML- Schema definiert werden?

ƒ XML als Datenmodell oder relationales Datenmodell:

Vor- und Nachteile

(96)

2. BLOCK

2. BLOCK

Web Services

Web Services

(97)

2.1 Web Services

2.1 Web Services

(98)

Was sind Web Services?

Was sind Web Services?

Browser

Anwendung traditionelle Web

traditionelle Web--AnwendungAnwendung

Anwendung Anwendung

Web Service Web Service

HTML

SOAP

Webseiten

Daten

Î Mensch-Maschine-Kommunikation

(99)

Definition Definition

Ein Web ServiceWeb Service ist eine Softwareanwendung, die 1. mit einer URIURI eindeutig identifizierbar ist,

2. über eine WSDL-Schnittstellenbeschreibung verfügt,WSDL 3. nur über die in ihrer WSDL beschriebenen Methoden

zugreifbar ist und

4. über ggäängige Internetngige Internet--ProtokolleProtokolle unter Benutzung von XML-basierten Nachrichtenformaten wie z.B. SOAPSOAP

Web-Dienst

Inhalt: SOAP Schnittstellenbeschreibung mit WSDL

Funktionalität Transport:

HTTP(S), SMTP, FTP

Server Client

(100)

Web Services Web Services

Web Service WSDL

beschreibt Service UDDI

Verzeichnis

findet Service

Verweist auf

die Service-Beschreibung

Verweist a

uf de

n Service Service Nutzer SOAP

(Service Consumer)

(101)

Dienstorientierte Architektur Dienstorientierte Architektur

ƒ engl. serviceservice--orientedoriented architecture, kurz architecture SOASOA

ƒ statt Anwendungen isoliert zu entwickeln, nur um sie später zu integrieren:

ƒ neue Anwendungen von Anfang an auf existierenden Web Services aufbauen

ƒ neue Anwendung wiederum als Web Service anbieten

„… eine Systemarchitektur, die vielfältige, verschiedene und eventuell inkompatible Methoden oder Applikationen als

wiederverwendbare und offen zugreifbare Dienste repräsentiert und dadurch eine plattform- und sprachunabhängige Nutzung und Wiederverwendung ermöglicht.“*

(102)

Dienstorientierte Architektur Dienstorientierte Architektur

ƒƒ publizierenpublizieren (publish): Beschreibung eines Dienstes in publish einem Verzeichnis (registry) veröffentlichen.

ƒƒ suchensuchen (find)find

:

Beschreibung eines Dienstes suchen, entweder dynamisch oder zur Entwicklungszeit

ƒƒ abrufenabrufen (bindbind): Beschreibung des Dienstes verwenden,

Anbieter Nutzer

Verzeichnis

2. Dienst suchen 1. Dienst publizieren

4. Abfrage der Beschreibung

3. Verweis auf Dienst

5. Dienst benutzen 0. Dienst

implementieren

(103)

Standards Standards

ƒ SOAP und WSDL allgemein akzeptiert

ƒ UDDI: Standard zur Beschreibung von Web-Service- Verzeichnissen

ƒ UDDI umstritten und wenig genutzt

Anbieter Nachfrager

öffentliches Verzeichnis

WSDL-

Beschreibung WSDL-

Beschreibung

SOAP-Nachrichten UDDI

(104)

2.1 Web Services 2.1 Web Services

Æ Æ Lernziele Lernziele

(105)

Web Services Web Services

Lernziele Lernziele

ƒ Was sind Web Services?

ƒ Was ist neu an Web Services und was nicht?

ƒ Was ist SOA?

(106)

2.2 SOAP

2.2 SOAP

(107)

Web Services Web Services

Web Service WSDL

Beschreibt Service UDDI

Verzeichnis

Sucht nach Service

Verweist auf

die Service-Beschreibung

Verweist a

uf de

n Service Service Nutzer SOAP

(Service Consumer)

(108)

Was ist SOAP?

Was ist SOAP?

ƒ Kommunikationskomponente von Web Services.

ƒ Protokoll für Nachrichtenaustausch zwischen Web Service-Konsument und Web Service-Anbieter

ƒ XML-basiert

ƒ Plattformunabhängig

ƒ Programmierspracheunabhängig

ƒ basierte auf Entwicklungen von Microsoft und IBM

Referenzen

ÄHNLICHE DOKUMENTE

Description logic reasoners offer the computation of a subsumption hierarchy (taxonomy) of all

§ Für den Einsatz von SOAP muss man Parameter, Datentypen, Methodennamen und die Adresse eines Web Services kennen. § Beschreibung eines WS durch die Web Service

ƒ Ports eines Service sollen semantisch äquivalente Alternativen einer abstrakten Schnittstelle

- theoretisch aber auch synchron: Sender solange blockiert, bis Empfang der Nachricht bestätigt flüchtige Kommunikation. - auch in der Praxis sowohl synchron als auch

ƒ Seit SOAP 1.2 steht SOAP nicht mehr für Simple Object Access Protocol.

ƒ beschreibt die Schnittstelle (Syntax) eines Web- Dienstes und wo dieser abgerufen werden kann. ƒ baut auf

Cristiana Cott Negoescu Andrea Dolidze Nils Dunkel Nils-Simon Fischer Keta Gavasheli Yaël Kempf Daria Nazarenko Moritz Riesenbeck Maximilan Sandfort Kai Werner Schmidt.. In der

3.4 elektronische Geschäftsprozesse 3.5 Partner Interface Process 3.6 Bedeutung für das Unternehmen