PWIN - Web Portal System

Werbung
Wirtschaftsinformatik 2 (PWIN)
III.
Entwicklung von Informationssystemen
Kapitel 3:
Programmiertechniken
und Beschreibungssprachen
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
1
Agenda
ƒ 1. Algorithmen, Datenstrukturen & Design Patterns
ƒ 2. Beschreibungssprache XML
3.1
3.2
3.3
3.4
HTML und XML – wozu?
XML-Syntax
XML Verarbeitung
XML Beispielanwendungen aus der Praxis
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
2
Algorithmen und Programme
Algorithmus:
ƒ Präzise formulierte Verarbeitungsvorschrift zur Lösung
eines Problems (z
(z.B.
B durch einen Computer)
ƒ Gibt an,, wie Eingabedaten
g
schrittweise in
Ausgabedaten umgewandelt werden
ƒ Genaue
G
und
d eindeutige
i d ti
H
Handlungsanweisung
dl
i
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
3
Korrektheit und Verifikation
ƒ Ein Algorithmus heißt korrekt, wenn er genau die
vorgegebene
b
S
Spezifikation
ifik ti
erfüllt,
füllt also
l auff alle
ll Eingaben
Ei
b
mit
it
den gewünschten Ausgaben reagiert.
ƒ Verifikation: Formaler Nachweis von Korrektheit eines
Programmes (vgl. Testen eines Programmes für einzelne
g
Eingaben)
g
)
ausgewählte
ƒ Tatsächlich ist der „Beweis“ der Richtigkeit von
Programmen sehr aufwendig.
aufwendig
ƒ Durch „Testen“ zeigt man, dass eine gewisse Art von
Fehlern momentan nicht vorhanden ist.
ist
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
4
Ablaufstrukturen von
Algorithmen
Ablaufstruktur
Bedeutung
S
Sequenz
Aktivitäten werden
nacheinander ausgeführt.
Alternative
Aktivitäten werden alternativ
ausgeführt.
Wiederholung / Schleife
Eine Aktivität wird wiederholt
ausgeführt.
Rekursion
Aktivität „ruft sich selbst auf“.
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
5
Programm
ƒ Formulierung eines Algorithmus und der dazugehörigen
Datenbereiche in einer Programmiersprache.
ƒ Schema der Ausführung eines Programms:
Ei
Eingabe
b
Rechner
Ausgabe
Programm
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
6
Programmiersprachen
Programmiersprachen
g
p
ƒ Sprache zur Formulierung von Aktionen, die von einem
Computer verstanden und ausgeführt werden können.
können
ƒ Syntax und Semantik müssen eindeutig definiert sein, um die
automatische Abarbeitung zu eröffnen:
• Syntax
y
legt
g die als Programm
g
zulässigen
g
Zeichenfolgen
g
fest
(Grammatik),
• Semantik ist die Bedeutung der programmiersprachlichen
Ausdrücke.
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
7
Programmieren mit Python
ƒ Enwicklungsumgebung
g
g
g für Python
y
• Diverse Python Installer sind auf www.python.org zu
finden.
• Aktuelle Release
Release-Version
Version ist 2.5
25
• Direkter Link für Windows Clients (Stand 30.07.2007):
www.python.org/ftp/python/2.5/python-2.5.msi
• Der Installer installiert eine integrierte
Entwicklungsumgebung (Interpreter & Editor) auf dem
lokalen Rechner
ƒ Alternativ:
• Python Spielwiese der Professur für Information Systems
Engineering, Uni Frankfurt
• http://www.ise.wiwi.uni-frankfurt.de/spielwiesen/ Æ Python Spielwiese
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
8
Variablen
ƒ
ƒ
Variablen sind benannte Platzhalter für Daten. Eine Variable wird in
Python durch eine Zuweisung eingeführt:
a = 10
b = 20
c=a+b
# Zuweisung; führt die Variable „a“ ein
# Zuweisung;
Z
i
führt
füh t die
di Variable
V i bl „b“
b“ ein
i
# Zuweisung mit Ausdruck
print c
# Ausgabe von c; liefert den Wert „30“
30“
"Hello World" mit Variable:
text = "Hello World"
print text
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
9
Variablen / Zuweisungen
1.
2.
3.
a=2
b=5
c=a*b
p int c
print
# Ausgabe?
A
b ?
b=b+1
print b
# Ausgabe?
a, b = 3, 9
a=a*b
print a
# Ausgabe?
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
10
Strings, Numbers & Listen
ƒ Python kennt drei grundsätzliche Datentypen:
• Strings zur Speicherung von Zeichenfolgen
• Numbers zur Speicherung von Zahlen
• Listen zur Gruppierung von Werten
ƒ Beispiele:
text = "Zeichenfolge"
g
# String
g
a=7
# Number: Integer → Ganzzahl
b = 2.0
# Number: Float → Gleitkommazahl
L = [ 'abc'
abc , 'xy'
xy , 10,
10 a ]
# Liste von Werten
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
11
Liste
ƒ
Ein Array wird durch eckige Klammern definiert:
a = [ 1, 2, 3 ]
ƒ
ƒ
Die Variable a enthält nun eine Liste mit den Elementen 1
1, 2 und 3
als Ganzzahlen.
Der Zugriff auf die Elemente einer Liste erfolgt über Indizes. Die
Elemente sind durchnummeriert, beginnend mit 0.
print a[0]
print a[1]
print a[2]
ƒ
Möglich ist auch:
print a[-1]
p
[ ]
ƒ
# gibt die Zahl 1 aus
# gibt die Zahl 2 aus
# gibt die Zahl 3 aus
#g
gibt ebenfalls die Zahl 3 aus
Länge der Liste ermitteln
len ((a))
# ergibt
g
3
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
12
Listen
ƒ Listen können neben Strings und Numbers wiederum Listen
enthalten:
a=[[
["Artikel0001",
Artikel0001 , "V"],
V ], [
["Artikel0002",
Artikel0002 , "E"],
E ], … ]
ƒ Zugriff
g
auf Listenelemente:
a[0]
a[0][0]
a[1][1]
#
#
#
["Artikel0001", "V"]
"Artikel0001"
Artikel0001
"E"
a[0][0][0]
#
"A"
( Strings werden als Liste von
Zeichen interpretiert )
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
13
Boolesche Werte
ƒ Boolesche Variablen sind nach dem englischen Mathematiker
George Boole benannt, der den Grundstein für die formale
Logik und die Rechentechnik legte.
ƒ Ein boolescher Wert ist entweder True oder False.
ƒ Konnektoren:
and or und not
and,
ƒ Operatoren:
==
ist gleich?
>(=)
( ) ist größer
g
(g
(gleich)?
)
!=
<(=)
( )
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
ist ungleich?
ist kleiner (g
(gleich)?
)
14
Schleifen
ƒ In Python können zwei Schleifentypen genutzt werden:
while <Bedingung>:
<zu wiederholende Sequenz>
for <element> in <liste>:
<Sequenz pro Element>
ƒ Beispiel:
B i i l
a=1
while a < 5:
print a
a=a+1
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
15
Beispiel:
p
Fibonacci-Folge
g
ƒ Berechnet eine Fibonacci-Folge
g mittels einer Schleife:
a, b = 0, 1
while b < 1000:
print b
a, b = b, a+b
#
#
#
#
mehrfache Zuweisung
Wiederholung
Ausgabe
Folge "weiterdenken"
ƒ Ausgabe:
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
16
Wiederholung mittels FOR
ƒ Eine FOR-Schleife durchläuft eine Liste und führt für jedes
El
Element
t einer
i
Li
Liste
t d
den eingeschlossenen
i
hl
P
Programmcode
d aus.
ƒ Beispiel:
p
a = [ 98.90, 49.99, 225.50 ]
# Liste
for x in a:
# Für jedes x in (der Liste) a
print "Netto:", round(x, 2), # Ausgabe
print "Brutto:", round(x * 1.16, 2)
ƒ Ausgabe:
Netto:
Netto:
Netto:
98.9 Brutto: 114.72
49.99 Brutto: 57.99
225.5 Brutto: 261.58
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
17
Wiederholung mittels
FOR & range()
ƒ Problemstellung: Eine bestimmte Aktivität soll n-mal
ausgeführt werden.
ƒ Solche Zähl-Schleifen können in Python ebenfalls elegant durch
eine FOR
FOR-Schleife
Schleife umgesetzt werden.
werden
ƒ Die FOR-Schleife arbeitet nur auf Listen, folglich muss diese
erst generiert werden.
ƒ Dies erledigt die Funktion: range()
ƒ Beispiel:
range(10) liefert folgende Sequenz als Liste:
0123456789
for i in range(10):
# mach
h was
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
18
Äquivalente Programme
ƒ a=0
while a < 10:
print a
a=a+1
ƒ for a in range(10):
print a
ƒ for a in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]:
print a
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
19
Alternative mittels IF
ƒ Über die Ausführung alternativer Programmcodes wird
d
durch
h die
di Sprachkonstrukte
S
hk
t kt IF,
IF ELIF und
d ELSE entschieden.
t hi d
Dabei werden Bedingungen überprüft, die entweder wahr
(True) oder falsch (False) sind.
ƒ Beispiel:
x=1
if x < 0:
0
print "Negativ"
elif x == 0:
print "Null"
else:
print "Mindestens Eins"
Bedingung
Alternative mit
Bedingung
Alternative
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
20
Der "Print"-Befehl
ƒ
Der Befehl "print" erzeugt eine Ausgabe. Beispiel:
print "Hallo Welt"
ƒ
Mehrfache
f
Ausgabe durch Kommata:
print "Hallo", "Welt"
ƒ
# Hallo Welt
# Hallo Welt
Jedes Komma erzwingt ein Leerzeichen. Vermeidung der Leerzeichen
durch Konkatenation möglich.
print "Hallo" + "Welt"
# HalloWelt
print 7 + " Zwerge"
# Fehler
print str(7)
p
( ) + " Zwerge"
g
# 7 Zwerge
g
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
21
Funktionsaufbau
def helloWorld(x):
( )
y=1
while y<=x:
print "helloWorld"
helloWorld
x=x-1
Funktionskopf
Funktionsrumpf
Eingerückte Zeilen
gehören zur Funktion
Funktionsparameter
ƒ def summe(x,y):
return x+y
Rückgabewert der Funktion
ƒ print summe(3,5)
Funktionsaufruf
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
22
Iterative vs. rekursive Algorithmen
am Beispiel
Berechnung der Fakultät
ƒ
Iterativ
ƒ
Rekursiv
•
•
def fakultaet(n):
ergebnis = 1
faktor = 1
while faktor <= n:
ergebnis = ergebnis * faktor
faktor = faktor + 1
print ergebnis
def fakultaet(n):
if n <= 1:
return 1
else:
return n * fakultaet(n - 1)
# Selbstreferenz
Vorteile der jeweiligen Ansätze
•
Iterativ
•
Rekursiv:
o Hohe Effizienz (hinsichtl. Rechnerleistung & Speicherbedarf)
o Kompaktere Darstellung des Algorithmus bei komplexeren Problemstellungen
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
23
Rekursive Berechnung der Fakultät
am Beispiel
ƒ Formel:
• n>1: fak(n) = n * fak(n-1)
• n = 0,1: fak(n) = 1
ƒ Beispiel für fak(5)
5 * fak(4) =
4 * fak(3) =
3 * fak(2) =
2 * fak(1) =
1 * fak(0) =
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
120
5 * 24
4*6
3*2
2*1
1*1
R
Rückgabe
e
fak(5) =
24
Komplexe Datenstrukturen
ƒ
ƒ
Datenstrukturen dienen Speicherung, Zugriff sowie Manipulation von
Daten innerhalb einer Anwendung
Verschiedene grundlegende Datenstrukturen
• List
o Liste beliebiger Elemente
o Jedes Element besitzt einen Verweis auf das nächste Element (Verkettung).
• Stack
o Stapel beliebiger Elemente
o Der Zugriff auf die Elemente erfolgt nach dem LIFO Prinzip.
• Queue
o Warteschlange,
hl
d
die b
beliebige
l b
Elemente
l
aufnehmen
f h
k
kann
o Es gilt das FIFO-Prinzip.
• Graph
o G
Graph,
h d
der beliebige
b li bi
Elemente
El
t aufnehmen
f h
k
kann
o Knoten können uni-direktional oder bi-direktional auf andere Knoten verweisen.
• Tree
o Spe
Spezieller
ielle G
Graph
aph (Ba
(Baum)
m) mit einem Wurzelknoten,
W
elknoten mit dem weitere
eite e Knoten
verkettet werden
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
25
Komplexe Datenstrukturen
ƒ List
1
2
1
2
2
ƒ Graph
Die Pfeile zeigen die
möglichen
ö li h
Z
Zugriffsiff
punkte auf die Elemente.
3
2
1
ƒ Stack
St k
ƒ Queue
3
1
2
(
(gerichteter
h
Graph)
h)
3
Root
ƒ Tree
3
1
Parent
3
Child
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
26
Iterativer Algorithmus
auf einer Queue-Datenstruktur
ƒ Sequentielle
q
Suche eines Elements in einer Q
Queue
1
2
3
ƒ x: Erstes Element der Queue
s: Gesuchter Wert eines Elements
ƒ def
d f search(x,
h( s):
)
while x != null:
if key(x) == s:
print x
else:
x = next(x)
ƒ
ƒ
# Funktionsdeklaration
# Ergebnis anzeigen
# zum nächsten Element
Die Funktion next(x) liefert das nächste Element in der Queue.
Die Funktion key(x) liefert
f
den Inhalt des Elements x.
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
27
Rekursiver Algorithmus auf einer
Baum-Datenstruktur
ƒ Binary-Search-Tree-Algorithmus
• Baum
Baum, bei dem die Kind-Knoten
Kind Knoten links kleiner und rechts größer
sind als der aktuelle Knoten
• Suche nach einem bestimmten Knoten im Baum
5
4
ƒ
x: Wurzel des Search-Trees
s: Gesuchter Wert eines Elements
ƒ
def search(x, s):
if x == null or s == key(x):
print x
p
elif s < key(x):
search(left(x), s)
else:
search(right(x), s)
ƒ
ƒ
7
6
8
# Funktionsdeklaration
# Ergebnis-Knoten
g
anzeigen
g
# im linken Teilbaum weitersuchen
# im rechten Teilbaum weitersuchen
Die Funktionen left(x) bzw. right(x) liefern jeweils das linke bzw. rechte Kind eines
Knotens.
Di F
Die
Funktion
kti
k ( ) liefert
key(x)
li f t den
d
IInhalt
h lt des
d Knoten
K t
x.
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
28
Design Patterns
ƒ Entwurfsmuster für die Lösung bekannter
Probleme im Software Engineering
•
•
•
•
Im Software Engineering bewährtes Konzept
Wiederverwendbar für verwandte Probleme
Basieren ggf. auf anderen Entwurfsmustern
Unabhängig
g g von einer Programmiersprache
g
p
spezifiziert
• Idiome, als programmierspezifische
Implementierung von Entwurfsaspekten
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
29
Arten von Design Pattern
ƒ
Architectural patterns
ƒ
Fundamental patterns
ƒ
Creational pattern
ƒ
Structural patterns
ƒ
B h i
Behavioral
l patterns
ƒ
Concurrency patterns
ƒ
…
• E
Entwurfmuster
t
f
t fü
für A
Architekturprobleme
hit kt
bl
(z.B. Client-Server Konzept)
• Grundlage
g für andere Entwurfsmuster
(z.B. Kontrollstrukturen für den Zugriff auf Objekte)
• Kontrollierte Erzeugung von Objekten
(z B Sicherstellung,
(z.B.
Sicherstellung dass ein Objekt nur einmal erzeugt wird)
• Umsetzung von Beziehungen zwischen Objekten
(z.B. Container, zur Speicherung und Verwaltung von Objekten)
• Ermöglicht eine gemeinsame Kommunikation zwischen Objekten
(z.B. Meditatior, für eine einheitliche Schnittstelle zu unterschiedlichen
Objekten)
• Steuerung gemeinsamem Zugriffs auf ein Objekt
(z.B. Read/Write Lock, erlaubt gemeinsamen Lesezugriff, aber
g
auf ein Objekt)
j
)
exklusiven Schreibzugriff
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
30
Design Pattern Beispiel
ƒ Singleton-Pattern
g
((Creational Pattern))
• Kontrolliert, dass eine Instanz einer Klasse nur einmal
erzeugt wird
• Anwendungsszenario
o Ein Programm soll nur einmal auf einem PC gestartet
werden.
• UML Klassennotation
Singleton
static getInstance(): Singleton
static instance: Singleton
Kontrolliert Zugriff auf
Instanz der Klasse
Speichert die Instanz
der Klasse
• Funktion
o Nutzer einer bestimmten Klasse können von dieser Klasse
keine Instanzen selbst erzeugen
erzeugen, sondern müssen über die
Singleton-Klasse eine Referenz auf die Instanz anfordern.
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
31
Agenda
ƒ 1. Algorithmen, Datenstrukturen & Design Patterns
ƒ 2. Beschreibungssprache XML
3.1
3.2
3.3
3.4
HTML und XML – wozu?
XML-Syntax
XML Verarbeitung
XML Beispielanwendungen aus der Praxis
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
32
HTML und XML
ƒ HTML ist eine sehr einfache Beschreibungssprache:
g p
• Kaum semantische Beschreibung der Inhalte
(nur Unterteilung in Abschnitte, Überschriften, Listen,
etc )
etc.)
• Dies macht automatische Verarbeitung von Webinhalten
oft unmöglich.
ƒ Z.B. woran erkennt man automatisch die
Postadresse auf einer Webseite?
<H1>Lehrstuhl für M-Commerce und Mehrseitige Sicherheit</H1>
<P>Gräfstraße 78</P>
<H2>60054 Frankfurt am Main</H2>
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
33
HTML und XML
ƒ Beim Erzeugen von HTML-Seiten aus Datenbanken ist
erheblicher Aufwand nötig (Skripte, Formatierung,
Darstellung).
ƒ Dadurch redundante Datenhaltung
Datenhaltung, Gefahr von
Inkonsistenzen
ƒ HTML eignet sich nicht zur Datenhaltung, da die Sprache sich
nicht
i ht eignet,
i
t D
Daten
t
zu beschreiben.
b
h ib
ƒ Bei HTML hat sich unsaubere Syntax etabliert – Elemente
werden oft nicht abgeschlossen:
g
• <LI>Erta Ale is a shield volcano, part of the East African Rift
system.</LI>
ƒ Es besteht also Bedarf an einer Beschreibung von Daten,
welche diese Mängel beseitigt.
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
34
HTML und XML
Entwicklung
g von Metasprachen
p
zur Datenbeschreibung
g
GML
SGML
HTML XML XHTML
1969
1986
1994 1998 2000
GML:
Generalized Meta Language von IBM
SGML: Standard Generalized Meta Language als
Norm ISO 8879 für Datentausch und -speicherung
HTML: Def. der Version 2 als SGML-Dialekt
XML:
Verbindet HTML mit dem Anspruch von SGML:
Extensible Markup Language
XHTML: HTML formuliert auf Basis von XML
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
35
HTML und XML
ƒ Grundidee aller SGML-Sprachen
p
• Ermöglichen die Computerverarbeitung von Dokumenten
durch Meta-Information über deren Struktur und Inhalt
• SystemS t
und
d herstellerunabhängiger
h
t ll
bhä i
Standard
St d d
• Trennung von Struktur, Inhalt und Darstellung eines
Dokuments
ƒ Weitere bekannte SGML-Dialekte
• LaTeX
• Postscript
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
36
HTML und XML
Merkmale von XML
•
•
•
•
Einfache und menschenlesbare Syntax (nicht binär)
Standardisiert
Selbstbeschreibend durch enthaltene Meta-Beschreibung
Erweiterbar durch neue Elementbeschreibungen ->
anwendungsspezifische Datenmodelle
• Eignet sich zur Datenhaltung
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
37
XML-Begriffe
ƒ DTD
D
Document
t Type
T
Definition
D fi iti
– beschreibt
b
h ibt di
die fformale
l Struktur
St kt
eines Dokuments
ƒ XML Schema
Alternativer Ansatz mit Erweiterungen der DTD
ƒ Parser
Übersetzt XML-Dokument in einen Dokumentenbaum
ƒ Style Sheet
Layout-Vorgaben zur Ausgabe von Dokumenten
ƒ Style-Sheet-Prozessor
Setzt die Style-Vorgaben um und generiert die
Ausgabeseiten
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
38
Nutzung von XML
XMLDokument
DTD
XMLSchema
Styley
Sheet
Parser
Style Sheet
Prozessor
HTML
XML-Dokumentenbaum
(Daten und Metainformation)
Anwendung
Legende auf nächster Seite
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
39
XML-Anwendungen
XML-Sprachen
p
für Branchen und Anwendungen:
g
• OFX, OFE: Open Financial Exchange für Finanzinformationen
(
(www.ifxforum.org)
g)
• MathML: Mathematische Formelbeschreibung per XML
(www.w3.org/Math)
• SAML:
SAML Security
S
it Assertion
A
ti
Markup
M k
Language
L
for
f exchanging
h
i
authentication and authorization information
(www.oasis-open.org)
• EPAL: Enterprise Privacy Authorization Language
is a formal language to specify fine-grained enterprise
privacy policies
(www.zurich.ibm.com/security/enterprise-privacy/epal/)
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
40
Agenda
ƒ 1. Algorithmen, Datenstrukturen & Design Patterns
ƒ 2. Beschreibungssprache XML
3.1
3.2
3.3
3.4
HTML und XML – wozu?
XML-Syntax
XML Verarbeitung
XML Beispielanwendungen aus der Praxis
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
41
XML-Syntax
Do
okumen
nt
Prolog
Rumpf
Prolog enthält XML-Version und
Angaben zum verwendeten
Z i h
Zeichensatz.
t
Rumpf enthält die Daten.
Daten
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
42
Beispiel:
Dates verwalten mit XML
<?xml version=„1.0“ encoding=„ISO-8859-1“ ?>
<flirt>
<name>Daisy</name>
<mobilfon>+436508469249</mobilfon>
<email>[email protected]</email>
email daisy@m lehrstuhl.de /email
<stadt>Innsbruck</stadt>
<erstkontakt>20.6.2006</erstkontakt>
<letztkontakt>14.7.2007</letztkontakt>
/
<geburtstag>12.7.1978</geburtstag>
<vegetarier>nein</vegetarier>
<gebunden>nein</gebunden>
</flirt>
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
Prolog
Rumpf
43
XML-Syntax
ƒ XML erwartet abgeschlossene
g
Elemente!
• <name> ist ein „tag“ (engl. für Marke, Markierung)
• Syntax: <StartTag>Inhalt</EndTag>
• <name>Daisy</name>
ƒ Attribute
Att ib te werden
e den im Starttag
Sta ttag angegeben:
angegeben
• <stadt wohnsitz=„erster“>Innsbruck</stadt>
ƒ Ein „Datensatz“ wie der auf der Vorseite mit <stadt>
markierte heißt „„Document element“.
• Elemente können geschachtelt auftreten.
• Elemente dürfen sich nicht überlappen!
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
44
XML-Syntax
<?xml version=„1.0“ encoding=„ISO-8859-1“ ?>
<flirt>
<name>Daisy</name>
<telefon>
<mobilfon>+436508469249</mobilfon>
<zuhause>+431324087356</zuhause>
<arbeit>+498974448696</arbeit>
</telefon>
Schachtelung
<email>daisy@m-lehrstuhl de</email>
<email>[email protected]</email>
<stadt>Innsbruck</stadt>
<kontakte>
<erstkontakt anlass="Peters Party">20.6.2006</erstkontakt>
<letztkontakt anlass="Valentinstag">14.7.2007</letztkontakt>
</kontakte>
<geburtstag>12.7.1978</geburtstag>
<vegetarier>nein</vegetarier>
<gebunden>nein</gebunden>
</flirt>
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
45
XML-Syntax
ƒ Unerlaubte Schachtelung:
g
<telefon>
<mobil>+4916008154711
<zuhause>+497213848855
</mobil></zuhause>
</telefon>
ƒ Hier ist nicht mehr erkennbar, was zu <mobil>
und
d was zu <zuhause>
h
gehört!
hö t!
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
46
XML-Syntax
ƒ Es g
gibt wie bei HTML einige
g Zeichen,, die zur
Syntaxfeststellung genutzt werden:
Zeichen
<
>
&
‚
„
Schreibweise
<
>
&
'
"
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
47
XML-Syntax
ƒ Man kann XML-Dokumente auch als "Objekte"
j
einer
objektorientierten Datenbank oder als Baum
betrachten:
flirt
name
telefon
mobil
zuhause
email
stadt
arbeit
kontakte
erst
kontakt
letzt
kontakt
ƒ Daher der Name "document tree".
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
48
XML-Syntax
ƒ Wegen
g
der eindeutigen,
g , baumartigen
g
Struktur und
der Ähnlichkeit zu objektorientierten Systemen
erkennt ein Rechner beim Einlesen von XML die
Datenstruktur
k
eindeutig.
i d
i
ƒ Ein „wohlgeformtes Dokument“ in XML ist ein
syntaktisch korrektes Dokument mit
abgeschlossenen nicht überlappenden Tags und
abgeschlossenen,
einheitlicher Groß- und Kleinschreibung.
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
49
XML Document Type Definition
ƒ Eine Document Type
yp Definition (DTD)
(
) beschreibt
Struktur und Grammatik von XML-Dokumenten.
ƒ Ist vergleichbar
l i hb mit
i einer
i
Variableni bl
/
Typendeklaration in einer Programmiersprache
ƒ Es wird definiert, welche Werte in Elementen
vorkommen dürfen,, damit ein „gültiges“
„g
g
XMLDokument entsteht.
ƒ DTD „übersetzt“ also ein XML-Dokument in
Datentypen für Datenbanken und erzeugt Regeln für
Elemente
Elemente.
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
50
XML DTD
ƒ Element-Content:
EMPTY
ANY
|
,
()
(#PCDATA)
leeres Element
beliebiger Inhalt
Auswahlliste
Sequenz
Gruppierung
Zeichen- oder Stringdaten
ƒ Kardinalität:
+
?
*
leer: genau ein Wert nötig
mindestens ein Wert
Null oder ein Wert
Null oder mehr Werte
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
51
XML DTD
ƒ Deklaration der Elementregeln
g
in einer DTD:
<!ELEMENT flirt
(name,telefon,email,stadt,kontakte,
geburtstag,gebunden)>
Text
<!ELEMENT name
(#PCDATA)>
<!ELEMENT
!ELEMENT telefon
l f
(
(mobil
bil | zuhause
h
| arbeit)+>
b i)
<!ELEMENT mobil
(#PCDATA)>
<!ELEMENT zuhause
(#PCDATA)>
<!ELEMENT email
(#PCDATA)>
<!ELEMENT stadt
(#PCDATA)>
<!ELEMENT kontakte
(#PCDATA)>
Auswahlliste
<!ELEMENT geburtstag (#PCDATA)>
<!ELEMENT
!ELEMENT gebunden
b d
(#PCDATA)
(#PCDATA)>
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
52
XML Namespaces
ƒ Neues Problem
Wie vermeidet man Verwechslungen bei Daten aus
mehreren Quellen, die gleichlautende Tag-Namen
h b ?
haben?
<BUCH>
<TITEL>Computernetzwerke</TITEL>
…
</BUCH>
<Autor>
<TITEL>Professor</TITEL>
…
</Autor>
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
53
XML Namespaces
ƒ Lösung
g
Man definiert sich einen Namespace mit einem
Universal Resource Identifier (URI), welcher mittels
eines globalen Pfades eine Identifikation des
Elementes erlaubt. Dazu erzeugt man einen Präfix
vor dem Element-Namen:
<BUCH
xmlns:book="http://www.amazonen.de/namespaces/books"
xmlns:aut="http://www.amazonen.de/namespaces/authors"
>
<book:TITEL>Computernetzwerke</book:TITEL>
</BUCH>
ƒ URIs werden z.B. auch in Java zur global
eindeutigen Klassenidentifikation genutzt.
genutzt
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
54
XML Namespaces
ƒ Vorsicht: Eine URI ist oftmals nur eine eindeutige
g
Herkunftsangabe – unter der Adresse gibt es in
der Regel kein Dokument!
ƒ Man kann einen Default Namespace definieren:
<BUCH xmlns="http://www.amazonen.de/">
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
55
XML Schema
ƒ Alternativ zu DTD g
gibt es „XML
„
Schema“.
ƒ Schema beseitigt einige Schwächen der DTD:
•
•
•
•
•
•
Bessere Content-Modellierung zur Syntaxüberprüfung
Reihenfolge und Schachtelung festlegbar
Festlegbare Wertegrenzen von Werten
Prüfung der Datentypen der Elementinhalte
Bessere Definition der Kardinalitäten mit Min. und Max.
Ausführlichere Datentypenauswahl analog zu
Programmiersprachen und Datenbanken (z.B. boolean,
number double
number,
double, datetime,
datetime …))
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
56
XML Schema
ƒ Named Types:
yp
• Abgeleitete Datentypen basierend auf vorhandenen
Typen.
• Können
Kö
beispielsweise
b i i l
i R
Restriktionen
t ikti
d
definieren
fi i
ƒ Ziel der Schemas:
• Bessere Feststellung der „Gültigkeit“ eines Dokuments
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
57
Agenda
ƒ 1. Algorithmen, Datenstrukturen & Design Patterns
ƒ 2. Beschreibungssprache XML
3.1
3.2
3.3
3.4
HTML und XML – wozu?
XML-Syntax
XML Verarbeitung
XML Beispielanwendungen aus der Praxis
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
58
XML verarbeiten
ƒ Zur Verarbeitung benötigt man einen Parser.
ƒ Ein Parser ist eine Software, welche DTDs, Schemas und
XML-Dokumente einlesen kann, um dann einer Anwendung
Zugriffe auf alle Elemente zu ermöglichen.
ƒ Übliches Vorgehen:
• Anwendung öffnet XML-Datensatz.
• Parser
P
liest
li t XML
XML-Dokument
D k
t und
d nötige
öti
DTDs,
DTD Schemas.
S h
• Parser bietet Anwendung Schnittstellen mit Funktionen wie
"ElementeAuflisten()".
• Anwendung durchsucht mittels der Schnittstellen das Dokument und
bearbeitet die Elemente.
• Anwendung speichert den überarbeiteten XML-Datensatz ab.
ƒ Ergebnis
Ein syntaktisch fehlerfreies und gegen eine DTD geprüftes XML-Dokument
wird als "gültig" bzw. "valid" bezeichnet.
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
59
XML verarbeiten
XML
XMLDokument
DTD
XMLSchema
Parser
Datenverarbeitung
XML-Dokumentenbaum
(Daten und Metainformation)
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
60
XML verarbeiten
ƒ Es g
gibt zwei verschiedene Arten von Parsern:
• Document Object Model (DOM)
• Simple API for XML (SAX)
ƒ DOM-Parser laden alle Elemente in den Speicher
und
nd e
erzeugen
e gen eine Baum-Datenstruktur,
Ba m Datenst kt
auf
a f der
de
dann gearbeitet wird.
ƒ SAX-Parser navigieren sich lesend durch ein
Dokument ohne es komplett im Speicher
Dokument,
abzulegen.
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
61
XML verarbeiten
Vergleich
g
DOM- und SAX-Parser
• SAX kann Dateien beliebiger Größe parsen.
• SAX ist effizient,
effizient wenn nur bestimmte Teile interessant
sind.
• SAX hat einfaches Handling.
• DOM erlaubt freie Zugriffe und Änderungen am
Dokument.
Dokument
• DOM erzeugt eine vollständige Abbildung des
Dokuments.
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
62
XML verarbeiten
Einsatzszenarien von DOM und SAX
ƒ DOM-Parser eignen sich gut beim Bearbeiten
gesamter Dokumente, z.B. zur Bearbeitung eines
gegliederten Textes in einer Textverarbeitung.
ƒ SAX-Parser eignen sich zum schnellen Auffinden
von Datensätzen
Datensätzen, z
z.B.
B der Adressen in einer XMLXML
basierten Kundendatenbank.
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
63
Agenda
ƒ 1. Algorithmen, Datenstrukturen & Design Patterns
ƒ 2. Beschreibungssprache XML
3.1
3.2
3.3
3.4
HTML und XML – wozu?
XML-Syntax
XML Verarbeitung
XML Beispielanwendungen aus der Praxis
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
64
Semantic Web
ƒ Semantic Web Stack
Quelle: Tim Berners-Lee (W3C), http://www.w3.org/2000/Talks/1206-xml2k-tbl/slide10-0.html
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
65
XML Web Services
ƒ The term Web services describes a standardized way of
integrating Web-based applications using the XML, SOAP,
WSDL and UDDI open standards over an Internet protocol
backbone.
•
•
•
•
Q ll
Quelle:
www.webopedia.com/
TERM/W/Web_services.html
XML is used to tag the data,
SOAP is used to transfer the data,
WSDL is used for describing the services available and
UDDI is used for listing what services are available.
UDDI
Service finden
(UDDI Protokol)
Service
Broker
Service bekannt machen
(WDSL Datei übertragen)
Service binden
(WSDL Datei übertragen)
ServiceKonsument
Datenaustausch mit SOAP
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
ServiceService
anbieter
66
XML-basierte Office Dateiformate
ƒ OpenDocument-Format
• Entwickelt auf Basis des OpenOffice/StarOffice Datei
Formats
• OpenDocument 1.0 als ISO Standard verabschiedet
ƒ Open
O
XML
•
•
•
•
Von Microsoft entwickelt
European Computer Manufacturers Association Standard
ISO Standard geplant
Anwendung
g in Microsoft Office 2007
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
67
Literatur
ƒ Programmiersprache Python,
Internet: www.python.org
ƒ Tim Berners-Lee ((2000),
), W3C Talk,,
Internet: www.w3.org/2000/Talks/1206-xml2k-tbl/slide100.html
ƒ Webopedia,
Internet: www.webopedia.com/TERM/W/Web_services.html
Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security
68
Herunterladen