Einführung in die Wirtschaftsinformatik

Werbung
Einführung in die Wirtschaftsinformatik
Programmierung
20.11.2005
Prof. Dr. Andreas Schmietendorf
1
Übersicht zu Lehreinheit
§ Spezifikation und Algorithmen
§ Überblick zu Programmiersprachen
- Maschinenorientierte Programmiersprachen
- Prozedurale Programmiersprachen
- Deskriptive Programmiersprachen
- Objektorientierte Programmiersprachen
§ Programmiersprache Java
§ Programmierung von Web-Anwendungen
20.11.2005
Prof. Dr. Andreas Schmietendorf
2
Spezifikation und Algorithmen
20.11.2005
Prof. Dr. Andreas Schmietendorf
3
Spezifikation
Eine Spezifikation ist eine vollständige, detaillierte und unzweideutige Problembeschreibung. Dabei heißt eine Spezifikation
- Vollständig, wenn alle Anforderungen und alle relevanten
Rahmenbedingungen angegeben worden sind
- Detailliert, wenn klar ist, welche Hilfsmittel, insbesondere welche BasisOperationen zur Lösung zugelassen sind
- Unzweideutig, wenn klare Kriterien angegeben werden, wann eine
Lösung akzeptabel ist
Quelle: Gumm, H. P.; Sommer, M.: Einführung in die Informatik, 5. Auflage. München, Oldenbourg Verlag, 2002
20.11.2005
Prof. Dr. Andreas Schmietendorf
4
Spezifikation
Berechnung des größte größten gemeinsamen Teiler zweier Zahlen:
Potentielle informelle Spezifikation:
Für beliebige Zahlen M und N berechne den größten gemeinsamen Teiler ggT(M,N),
also die größte Zahl, die sowohl M als auch N teilt.
Ein informelle Spezifikation lässt viele Fragen offen:
Vollständigkeit: Welche Zahlen M, N sind zugelassen? Dürfen M und N nur positive
Zahlen oder auch negative oder gar rationale Zahlen sein? Ist 0 erlaubt?
Detailliertheit: Welche Operationen sind erlaubt? (+, -, div, mod)
Unzweideutigkeit: Was heißt berechnen? Soll das Ergebnis ausgedruckt werden oder
in einer bestimmten Variablen gespeichert werden?
Quelle: Gumm, H. P.; Sommer, M.: Einführung in die Informatik, 5. Auflage. München, Oldenbourg Verlag, 2002
20.11.2005
Prof. Dr. Andreas Schmietendorf
5
Spezifikation
Verwendung von Vor- und Nachbedingungen durch Angabe eines Paares P
und Q von logischen Aussagen. {P} {Q}:
Beispiel ggt(a,b):
Vorbedingung
{a und b sind ganze Zahlen mit 0<a<32767 und 0<b<32767}
Nachbedingung
{z = ggt(a,b), d.h., z ist Teiler von a und b und für
jede andere Zahl z‘, die auch a und b teilt, gilt z‘=z}
Quelle: Gumm, H. P.; Sommer, M.: Einführung in die Informatik, 5. Auflage. München, Oldenbourg Verlag, 2002
20.11.2005
Prof. Dr. Andreas Schmietendorf
6
Algorithmen
Ein Algorithmus ist eine detaillierte und explizite Vorschrift zur
schrittweisen Lösung eines Problems.
D.h. im einzelnen:
- Die Ausführung des Algorithmus erfolgt in einzelnen Schritten
- Jeder Schritt besteht aus einer einfachen und offensichtlichen
Grundaktion
- Zu jedem Zeitpunkt muss eindeutig definiert sein, welche Schritte als
nächste auszuführen sind.
Quelle: Gumm, H. P.; Sommer, M.: Einführung in die Informatik, 5. Auflage. München, Oldenbourg Verlag, 2002
20.11.2005
Prof. Dr. Andreas Schmietendorf
7
Algorithmen
Eine Maschine wird deterministisch genannt, wenn ihre Tätigkeiten
oder Ausgaben Funktionen ihres Anfangsstatus und der Folge der
erhaltenen Eingaben sind. Wenn in zwei Fällen eine
deterministische Maschine in denselben Anfangszustand versetzt
wird und dieselbe Eingabemenge präsentiert bekommt, so wird sie
die exakt gleiche Ausgabe produzieren.
Computer sind deterministische Maschinen!
Quelle: Goldschlager, L.; Lister, A.: Informatik – Eine moderne Einführung, 3. Auflage. München, Hanser Verlag, 1990
20.11.2005
Prof. Dr. Andreas Schmietendorf
8
Algorithmen
Sichten auf Algorithmen
Ein Algorithmus löst typischerweise eine ganze Klasse von Problemen. Das
jeweils zu bearbeitende Problem wird durch Parameter bestimmt. Ein
Algorithmus liefert zu einer solchen Eingabe jeweils ein Resultat.
Repräsentationsformen:
-
informell
formal
Funktionale Sicht:
Operationale Sicht:
-
Welche Aufgabenklasse soll der Algorithmus
bewältigen?
Wie sollen die Aufgaben bewältigt werden?
Angabe von elementaren Verarbeitungsschritten
Beschreibung des Kontrollflusses
Angabe von Daten und Parametern
20.11.2005
Prof. Dr. Andreas Schmietendorf
9
Algorithmen
Der Euklidsche Algorithmus (3. Jh. V. Chr.) zur Berechnung des
größten gemeinsamen Teilers zweier natürlicher Zahlen.
Eine informelle Beschreibung
Aufgabenstellung:
Gegeben: Zwei ganze Zahlen a und b mit a>0 und b>0.
Gesucht: Der größte gemeinsame Teiler ggt(a,b) von a und b.
Der Algorithmus ggt(a,b):
-
(1) Falls a gleich b ist, gilt ggt(a,b) = a;
-
(2) Falls a kleiner als b, wende ggt auf a und b-a an;
-
(3) Falls a größer b ist, wende ggt auf a-b und b an.
20.11.2005
Prof. Dr. Andreas Schmietendorf
10
Algorithmen
Für den ggt(a,b) Algorithmus gilt:
§
Die arithmetische Operation „-“ und die Vergleichsoperationen
„kleiner als“, „größer als“ und „gleich“ werden als elementare
Verarbeitungsschritte vorausgesetzt.
§
Der Algorithmus ist deterministisch, d.h. für jede Eingabe ist die
Folge der einzelnen Schritte genau festgelegt.
Für deterministische Algorithmen ist die Relation zwischen Eingabeund Ausgabewerten eine partielle Abbildung.
Der Algorithmus heißt korrekt, wenn diese Funktion der
Aufgabenstellung entspricht, die der Algorithmus bewältigen soll.
20.11.2005
Prof. Dr. Andreas Schmietendorf
11
Algorithmen
Algorithmen werden u.a. durch folgende Merkmale klassifiziert. Ein
Algorithmus heißt
- terminierend, wenn er für alle zulässigen Schrittfolgen nach endlich
vielen Schritten endet,
- deterministisch, wenn die Abfolge der einzelnen Verarbeitungsschritte
eindeutig festgelegt ist,
- determiniert, wenn es zu jeder Eingabe höchstens eine Ausgabe gibt,
d.h. der Algorithmus berechnet eine (partielle) Funktion,
- endlich, wenn er mit einer endlichen Anzahl von Worten beschrieben
werden kann,
- sequentiell, wenn die Verarbeitungsschritte stets hintereinander
ausgeführt werden,
- parallel, wenn gewisse Verarbeitungsschritte nebenläufig ausgeführt
werden.
20.11.2005
Prof. Dr. Andreas Schmietendorf
12
Übung Algorithmen
§
Wann kann man einen Algorithmus als korrekt bezeichnen? Wie könnte
man diese Eigenschaft nachweisen?
§
In welchem Bezug stehen Algorithmen und Programme zueinander?
Entscheiden Sie für die folgenden Bereiche, ob es sich um einen
Algorithmus oder ein Programm (oder um keines von beiden) handelt:
- Ergebnis einer Routenplaneranfrage im WWW
- Wahlprogramm einer Partei
- Backanleitung für den Brotbackautomat
- Verhalten eines kundenfreundlichen Fahrscheinautomaten
- Musiknoten auf einem Notenblatt
§
Warum ist der als Beispiel gegebene Algorithmus (ggt) deterministisch?
20.11.2005
Prof. Dr. Andreas Schmietendorf
13
Überblick zu Programmiersprachen
20.11.2005
Prof. Dr. Andreas Schmietendorf
14
Der Programmbegriff
Algorithmen, die von einem automatischen Prozessor abgearbeitet
werden, bezeichnet man als Programme. Ein Programm stellt die
Realisierung eines Algorithmus dar. Im Gegensatz zu einem
Algorithmus ist ein Programm konkreter und eingeschränkter.
- Es wird eine Programmiersprache gewählt, die auf der Basis definierter
Grundelemente den Algorithmus vollständig beschriebt.
- Für benötigte Daten wird eine bestimmte Darstellung (Repräsentation)
gewählt.
Quelle: Balzert, H.: Lehrbuch Grundlagen der Informatik, Spektrum Adademischer Verlag, Heidelberg/Berlin 1999
20.11.2005
Prof. Dr. Andreas Schmietendorf
15
Programmieren und
Programmiersprachen
§ Kommunikation „Mensch – Maschine“
§ Unterschiede im Sprachvorrat
§ Mensch
Umfangreicher Sprachvorrat
§ Maschine
Eingeschränkter Sprachvorrat
20.11.2005
Prof. Dr. Andreas Schmietendorf
16
Generationen von
Programmiersprachen
1. Binäre Maschinensprachen
2. Assemblersprachen
3. Problemorientierte, imperative/prozedurale Sprachen
4. Anwendungsorientierte 4GL-Sprachen
5. Deklarative Programmiersprachen
20.11.2005
Prof. Dr. Andreas Schmietendorf
17
Programmiersprachen und
Programmierparadigmen
Imperativ
Prozedural
Objektorienitert
C
+
+
C++
+
+
C#
+
+
EIFFEL
+
+
+
+
Pascal
+
+
+
+
Java
+
+
SMALLTALK
+
+
20.11.2005
+
Logikbasiert
Regelbasiert
Wissensbasiert
+
+
PROLOG
SQL
Funktionsorientiert
+
LISP
VB
Deklarativ
+
+
+
+
Prof. Dr. Andreas Schmietendorf
18
Algorithmen und
Programmiersprachen
Syntax und Semantik
§
Die Menge der grammatikalischen Regeln, die bestimmen, wie die
Symbole einer Sprache korrekt zu benutzten sind, heißen Syntax
der Sprache.
§
Die Bedeutung besonderer Ausdrucksformen einer Sprache heißt
die Semantik einer Sprache.
20.11.2005
Prof. Dr. Andreas Schmietendorf
19
Algorithmen und
Programmiersprachen
Syntax von Programmiersprachen:
Programmiersprachen sind umfangreiche formale Sprachen.
Programme sind dementsprechend syntaktisch korrekte Sätze.
int ggt(int a, int b) {
if (a == b){
return a;
}
else if (a < b){
return ggt(a, b - a);
}
else{
return ggt(a - b, b);
}
}
20.11.2005
Prof. Dr. Andreas Schmietendorf
20
Algorithmen und
Programmiersprachen
Semantik von Programmiersprachen:
§ Grundsätzlich lässt sich die Bedeutung eines Programms durch die
spezielle Wirkungsweise bei Ausführung auf einem konkreten
Rechner beschreiben.
§ Um die Bedeutung von Programmen jedoch unmissverständlich zu
beschreiben, werden für Programmiersprachen vorzugsweise
formale Semantiken angegeben, d.h. es wird eine mathematische
Beschreibungsform gewählt.
-
-
Operationale Semantik: Beschreibung der Abfolge einzelner
Bearbeitungsschritte -> elementare Schritte auf einer sehr einfachen
Maschine
Funktionale Semantik: Beschreibung der Funktion durch Festlegung
des Ein-/Ausgabeverhaltens (extensionales oder beobachtbares
Verhalten)
20.11.2005
Prof. Dr. Andreas Schmietendorf
21
Algorithmen und
Programmiersprachen
Implementierung von Programmiersprachen (I)
§
Computer verwenden prozessoreigene Befehlssätze. Diese können
in der maschinennahen Programmierung zur Umsetzung von
Algorithmen verwendet werden.
§
Jedoch:
-
§
Komplexere Programme sind unübersichtlich und schwer lesbar.
Lösung:
-
Verwendung höherer Programmiersprachen
-
Übersetzung der Programme in Maschinensprache durch einen
Übersetzer (Compiler)
-
Interpretation, d.h. unmittelbare Ausführung der Programme durch
einen Interpretierer (Interpreter).
20.11.2005
Prof. Dr. Andreas Schmietendorf
22
Algorithmen und
Programmiersprachen
Implementierung von Programmiersprachen (II)
§ Compiler und Interpreter sind selbst Programme, die Programme in
der entsprechenden Programmiersprache als Eingabe akzeptieren.
§ Compiler
-
§
erzeugen als Ausgabe ein entsprechendes Programm in der jeweiligen
Maschinensprache.
Forderung: Die Übersetzung ist semantikerhaltend, d.h. das erzeugte
Maschinenprogramm hat die gleiche Wirkung wie das Quellprogramm
(siehe auch Fachgebiet Compilerbau)
Interpreter
-
führen das eingegebene Quellprogramm unmittelbar aus, d.h. sie
stoßen die Aktionen an, die durch das Programm vorgegeben sind.
20.11.2005
Prof. Dr. Andreas Schmietendorf
23
Algorithmen und
Programmiersprachen
Programmiersprache Basic:
-
-
Basic hat aufgrund der Verfügbarkeit entsprechender Interpreter im
ROM eine starke Verbreitung erfahren. Wegen anfänglich fehlender
Strukturierungsmöglichkeiten wurden Konzepte der prozeduralen- und
objektorientierten Programmierung sukzessive aufgenommen.
Beispiel:
10 INPUT M
20 INPUT N
30 IF M = N THEN GOTO 90
40 IF M <= N THEN GOTO 70
50 LET M = M – N
60 GOTO 30
70 LET N = N – M
80 GOTO 30
90 PRINT M
100 END
20.11.2005
Prof. Dr. Andreas Schmietendorf
24
Algorithmen und
Programmiersprachen
Programmiersprache Pascal:
-
-
Programme setzen sich aus Folgen von Anweisungen zusammen.
Elementar ist die Wertzuweisung. Der Zustand im Speicher und des
Ablaufs gibt den Stand eines Programms an. Iteration ist wichtige
Kontrollstruktur.
Beispiel:
PROGRAM ggT;
CONST M = 60; N = 30;
VAR x,y,z : Integer;
BEGIN
x:= M; y:= N;
WHILE x <> y DO
IF x > y
THEN x:= x – y
ELSE y:= y – x
z:= x
END.
20.11.2005
Prof. Dr. Andreas Schmietendorf
25
Algorithmen und
Programmiersprachen
Programmiersprache Java:
-
Programme sind Familien von Klassen, die Daten als Attribute und
Algorithmen als Methoden zusammenfassen (Prinzip der Kapselung).
Strukturierung erfolgt durch hierarchische Anordnung von Klassen und
das Prinzip der Vererbung (von Attributen und Methoden).
Beispiel:
public class MathGGT {
public static void main(String[] args) {
int x = 30; int y = 80; int z;
while (x != y){
if (x > y) x = x-y;
else y = y-x;
}
z = x;
System.out.println(z);
}
}
20.11.2005
Prof. Dr. Andreas Schmietendorf
26
Übung Programmiersprachen
§
Welche Möglichkeiten gibt es, sich wiederholende Programmteile zu
programmieren?
§
Nennen Sie Vor- und Nachteile von Compiler- bzw. Interpretersprachen.
§
Die Programmiersprache Java ist eine Interpretersprache. Zur
Steigerung der Ausführungsgeschwindigkeit werden anstatt des
Interpreters so genannte Just-in-Time-Compiler eingesetzt. Machen
Sie Vorschläge, wie ein solcher Compiler arbeiten könnte!
20.11.2005
Prof. Dr. Andreas Schmietendorf
27
Programmiersprache Java
20.11.2005
Prof. Dr. Andreas Schmietendorf
28
Java-im Überblick
§
1990 James Gosling beginnt Arbeiten an Oak
-
Idee einer portablen objektorientierten Sprache
-
Einsatz im Bereich eingebetteter Systeme (Microchips)
§
1992 Experiment Video on Demand (interaktives Fernsehen)
§
1993 Plattformunabhängiges Programmiersystem Oak
§
1995 System Oak zu Java (entspricht Kaffee umbenannt)
§
1996 erste industriell verwendbare Version
20.11.2005
Prof. Dr. Andreas Schmietendorf
29
Java-im Überblick
§
§
§
Java-Softwareentwicklungskit – Java 2 SDK oder kurz JDK
-
http://java.sun.com
-
http://developer.java.sun.com
Java ist auf unterschiedlichsten Plattformen verfügbar
-
Windows95/98, Windows 2000, Windows XP
-
SUN Solaris (SPARC- und Intel-Version)
-
LINUX/Intel-Version
Strategische Positionierung
-
Portierbare Anwendungen „Write once run anyware“
-
SUN plaziert Java als Middleware und Programmiersprache
20.11.2005
Prof. Dr. Andreas Schmietendorf
30
Java-im Überblick
§
Java-Softwareentwicklungskit
-
§
Werkzeuge z.B. unter C:\j2sdk1.4.2_08\bin (je nach Installation)
Auswahl verfügbarer Werkzeuge
-
javac - Java Compiler übersetzt Quellcode in Bytecode
-
appletviewer - lädt HTML-Dokumente und zeigt Applets an
-
java - Java-Interpreter lädt Java-Bytecode und führt ihn aus
-
javadoc - erzeugt aufgrund spezieller Kommentare HTML-Doku
-
javah - Verknüpfung von Java-Klassen mit ext. Code (z.B. mit C++)
-
javap - Java-Disassembler Java Bytecode in Quelltext zurückübersetzen
-
jdb - Java Debugger (Test und Fehlersuche)
-
jar - Java-Archive (Klassen einen Applets mit einem Transfer übertragen)
20.11.2005
Prof. Dr. Andreas Schmietendorf
31
Java-Eigenschaften
§
einfach: hinsichtlich seiner Erlernbarkeit, u.a. keine Zeiger, einer
ausschließlich einfachen Vererbungsmöglichkeit, der Vermeidung der
GOTO's, des C-Präprozessors und der Überladungstechniken,
§
objektorientiert: mit der Ausnahme der einfachen Datentypen, wie int, char
und boolean, sind alle anderen Verarbeitungskomponenten Objekte,
§
verteilt: Java-Klassenbibliotheken wurden von Anfang an so ausgelegt,
dass sie eine Realisierung verteilter Systeme über Netzwerke unterstützen,
§
interpretiert: durch eine virtuelle Maschine (Java Virtual Machine (JVM))
wird der Java-Code als so genannter Bytecode einheitlich interpretiert,
§
robust: durch die Einfachheit werden eine Reihe typischer Programmierfehler bereits vermieden bzw. sind durch Testhilfen analysierbar,
20.11.2005
Prof. Dr. Andreas Schmietendorf
32
Java-Eigenschaften
§
sicher: durch die Bereitstellung unterschiedlichster Sicherheitsfunktionen,
wie beispielsweise durch für die sogenannte Applet-Technik (s. u.),
§
architekturneutral: durch die Berücksichtigung der meisten, gängigen
Plattformen und deren Spezifika,
§
portabel: durch die strenge Kapselung plattformabhängiger Merkmale,
§
performant: Java-Code läuft zwar ca. 20-mal langsamer als übersetzter CCode, jedoch sind dafür die Entwicklungszeiten wesentlich kürzer,
§
dynamisch: Java lädt genau die Klassen (übers Netz), die die Anwendung
benötigt, und passt sich leicht neuen Umgebungen an.
20.11.2005
Prof. Dr. Andreas Schmietendorf
33
Java-Eigenschaften
Applets vs. Applikationen
§ Kleine Anwendung die zur
Ausführung einen Web-Browser
(inkl. virtuelle Java-Maschine)
benötigt und in einer HTML-Seite
eingebunden ist. (enthalten keine
main()-Methode)
§ Anwendungen enthalten eine
main()-Methode als Startpunkt der
Applikation.
20.11.2005
Prof. Dr. Andreas Schmietendorf
34
Java-Beispiel
// Ein erstes einführendes Beispiel eines einfachen Java-Programms
/* Einführung in die Programmierung */
public class HalloStudenten
{
public static void main (Strings [ ] args)
{
System.out.println(„Hallo Studenten an der FHW Berlin“);
}
}
20.11.2005
Prof. Dr. Andreas Schmietendorf
35
Erläuterungen I
§
Die ersten beiden Zeilen zeigen die Verwendung unterschiedlicher
Java-Kommentare
§
public steht für ein Zugriffsrecht (aus anderen Klassen und
Paketen), class bezeichnet eine Klassendefinition.
§
System.out.println() ist eine Bibliotheksfunktion, die eine Ausgabe
im Konsolenfenster produziert.
§
Dieser Quellcode muss in einer Datei mit dem Namen
„HalloStudenten.java“ gespeichert werden (Eclipse übernimmt
durch Angabe des Klassennamens diese Aufgabe).
20.11.2005
Prof. Dr. Andreas Schmietendorf
36
Erläuterungen II
§
Durch Aufruf des Java-Compilers javac wird die Klasse übersetzt und der
Bytecode in der Datei „HalloStundenten.class“ generiert. Mit dem JavaInterpreter java kann der Bytecode dann ausgeführt werden.
§
Geschweifte Klammern trennen die Teile eines Programms
(Anweisungsblöcke). Sie treten immer paarweise auf.
§
Jedes Programm muss eine Main-Funktion der Form public static void
main(String[ ] args) haben. Diese wird als Einstiegspunkt (driving class) in
das Programm zuerst ausgeführt.
20.11.2005
Prof. Dr. Andreas Schmietendorf
37
Programmierung von Web-Anwendungen
20.11.2005
Prof. Dr. Andreas Schmietendorf
38
Hypermediale Informationssysteme
Hypertextfunktionalität als Kern der Verbreitung
§
§
§
§
§
Vision von Ted Nelson für System zum Finden von Informationen
Prototyp eines Hypertextsystems 1990 bei CERN
50 WWW-Server bereits 1993 auf der Basis des HTTP
erster grafisch arbeitender Browser „NCSA Mosaic“
sprunghafter Anstieg der Web-Server und ISP‘s (Internet Service Prov.)
Hypertext - Verweise auf weitere Textstellen oder Dateien (ursprüngliche
Idee der Dokumentenbeschreibungssprache).
Hypermedia - Verweise nicht nur auf Textstellen sondern auch auf andere
Medien (z.B. *.wav-Dateien) oder komplette Anwendungen.
20.11.2005
Prof. Dr. Andreas Schmietendorf
39
Hypermediale Informationssysteme
Interne Funktionen des HTTP-Protokolls
§
GET - Datei vom Server laden, z.B. zu einem Web-Browser
§
HEAD - Datei-Information laden
§
POST - Daten an den Web-Server senden
§
PUT - Dateien an den Web-Server senden
§
DELETE - Datei auf dem Web-Server löschen
§
LINK - Ressourcen verknüpfen
§
UNLINK - Verknüpfung zwischen Ressourcen aufheben
Beispiel:
GET /http://www.tpc.org/index.htm HTTP/1.1
If-Modified-Since: Thu, 12 Dec 1997 23:12:32 GMT
20.11.2005
Prof. Dr. Andreas Schmietendorf
40
Hypermediale Informationssysteme
Unterschiede HTTP V1.0 zu V1.1
- HTTP V1.0 (3-way-handshake)
• Aufwendiger „Hand-Shake“-Mechanismus
• Für die Übertragung einer HTML-Seite und referenzierter Dateien
(z.B. eingebettete Grafiken) sind mehrere TCP-Verbindungen
notwendig
• Keine parallele Übertragung von Dateien einer Web-Seite
• HTTP V1.0 kann nur ca. 10% der Bandbreite effektiv nutzen
- HTTP V1.1
• „Keep Alive“ ermöglicht eine Verbindung aufrecht zu halten bis alle Dateien
der Web-Seite übertragen sind.
- HTTP-NG (Next Generation)
• Ansätze für eine stärkere Modularisierung
• Berücksichtigung der Anwendungs-Charakteristika im Sinne eine Quality of
Service (ermöglicht z.B. Multimedia-Anwendungen)
20.11.2005
Prof. Dr. Andreas Schmietendorf
41
Hypermediale Informationssysteme
Medientypen (MIME-Types)
(Multipurpose Internet Mail Eytension)
§
Darstellung verschiedener Medientypen (Text, Audio, Video) erfordert im
Browser verschiedene Programme
-
§
Web-Client kann dem Web-Server die darstellbaren Medientypen mitteilen
(Anfragezeile Accept: typ/untertyp )
Web-Server schickt vor dem eigentlichen Dokument eine Antwortzeile mit dem
entsprechenden Medientyp (Content-type: image/gif )
Browser verwaltet Tabelle für Zuordnung von Medientypen und die
erforderliche Darstellung
-
Medientypen die vom Browser selbst dargestellt werden können:
• text/html, image/gif, image/jpeg
-
Medientypen deren Darstellung Hilfsprogramme erfordern
• model/vrml
• Medientyp nicht in der Tabelle >>> Ablegen im Speicher
§
Zugang zur Web-Technologie für Handy‘s, Pager, PDA‘s
-
HDML Handheld Device Markup Language
20.11.2005
Prof. Dr. Andreas Schmietendorf
42
Hypermediale Informationssysteme
Dokumentenbeschreibungsprache HTML:
§
logische Elemente eines Dokuments in abstrakter Form beschreiben
§
logische Elemente sind Kapitel, Unterkapitel, Textabsätze, Listen, Tabellen,
Grafiken, Querverweise
§
physische Elemente für Textformatierungen, Formatvorlagen
§
Fomulare zur Möglichkeit der Dateneingabe (Eingabefelder, Auswahllisten,
Buttons,...)
§
Eindeutige Adressierung der Dokumete im Internet über einen Unified
Ressource Locator (URL)
§
Befehle des HTML sind sogenannte Tags, wobei es zumeist einen
einleitenden und abschließenden Tag gibt, dazwischen steht der
entsprechend auszugebende Text.
20.11.2005
Prof. Dr. Andreas Schmietendorf
43
Hypermediale Informationssysteme
HTML-Versionen im Vergleich (W3 Konsortiums):
HTML V1.0
- Überschriften, Textabsätze, Grafikreferenzen, Hypertext-Links
HTML V2.0 - 1995 (noch akademisch geprägt)
- kleinster gemeinsamer Nenner für Web-Seiten
HTML V3.2 - 1997 (Zusammenarbeit mit der Industrie)
- Tabellen, physische Textformatierungen
HTML V4.0 - 1998
- Verwendung von Frames (geteilte Seiten)
- Cascading Style Sheets - festlegen von z.B. Schriftgröße, -farbe, ...
- Verwendung von Scriptsprachen (z.B. JavaSkript)
XML V1.0 - 1998 (eXtensible Markup Language)
- eXtensible Markup Language
20.11.2005
Prof. Dr. Andreas Schmietendorf
44
Hypermediale Informationssysteme
Aufbau des Unified Ressource Locator:
Ziel: einheitliche Schnittstelle zum Internet
PROTOKOLL://SERVER/VERZEICHNISPFAD/DOKUMENT
§ Protokoll: http, file, ftp, mailto, ftp, https, ...
§ Server:
-
§
§
IP-Adresse z.B. 164.19.200.20
alternativ Domain Name Service (DNS-Name)
Verzeichnispfad: Verzeichnis innerhalb des lokalen Filesystems
Dokument: eigentliche auszugebende Datei, über Dateiextension erfolgt die
Wahl möglicher Plug-Ins (z.B. *.htm, *.pdf, ...)
Beispiel eines URL:
http://www.uni-magdeburg.de/schmiete/home/diss/index.html
20.11.2005
Prof. Dr. Andreas Schmietendorf
45
Hypermediale Informationssysteme
Erstellung von HTML-Dokumenten:
§ Einfache ASCII-Datei, neu erstellt oder übernommen z.B. von Word und mit
HTML-Befehlen versehene Datei
§ Verwendung einfacher Editoren (Vorschlag: UltraEdit-32)
§ Nutzung von Generatoren (Bsp.: Office-Produkte, HotMeTaL, ...)
§ Verwendung von Entwicklungsumgebungen wie z.B. MS Visual Interdev
und Frontpage (für Formulare sinnvoll)
§ Nutzung der Generatorfunktionen von Textverarbeitungsprogrammen wie
z.B. der Microsoft Office-Produktfamilie
Einstiegsdatei typischerweise index.htm oder default.htm
(*.htm unter DOS und *.html unter UNIX oder WindowsNT)
20.11.2005
Prof. Dr. Andreas Schmietendorf
46
Hypermediale Informationssysteme
Möglichkeiten der Einstellung
§
Angebot der Internet-ServiceProvider (ISP), z.B. T-Online
§
Im Rahmen von direkten InternetZugängen und eigenem HTTPServer
§
Verwendung akademischer ServerSysteme
§
Probleme bei dynamischen
Komponenten, z.B. zu startende
Services
HTTP-Server
Beispiel: WindowsNT Server
inetpub/wwwroot/default.htm
TCP/IP-Netz
Modem
Laptop
DFÜ
IBM RS/6000
IBM RS/6000
Einstellung per FTP (RAS), NW-Laufwerke, NFS,
20.11.2005
Prof. Dr. Andreas Schmietendorf
47
Hypermediale Informationssysteme
Grundaufbau einer einfachen HTML-Datei:
<HTML>
<!-----Kommentarzeile------->
<HEAD>
<TITLE>Dokumente und Informationen</TITLE>
</HEAD>
<BODY>
<H1>Dokumente und Informationen</H1>
<HR>
</BODY>
</HTML>
20.11.2005
Prof. Dr. Andreas Schmietendorf
48
Hypermediale Informationssysteme
Merkmale der HTML-Syntax:
§
Befehle meist aus einleitenden und abschließenden Tag, keine Beachtung
von Groß- und Kleinschreibung
§
Leerzeichen im Text zusammengefaßt, explizit mit &#160
§
Verschachtelte Tags führen zu Fehlern
§
Zusätzliche Attribute bei einleitenden Tag möglich, z.B. die Ausrichtung
einer Überschrift der 2. Kategorie.
Bsp.: <h2 align=center>Ausgabetext<h2>
§
Kommentare in HTML <!--Kommentar-->
§
Sonderzeichen im Ausgabetext wie z.B. „ä“ sollten für die international
richtige Darstellung durch „&auml“ ersetzt werden
20.11.2005
Prof. Dr. Andreas Schmietendorf
49
Hypermediale Informationssysteme
Vorgehensweise zur Erstellung von HTML-Systemen:
§
Analyse der auszugebenden Daten (über was soll informiert werden)
§
Navigationsstruktur grob entwerfen (z.B. Baumstrukturen verwenden)
§
Grundgerüst der HTML-Datei erstellen
§
Maskierungsvorschriften für Umlaute, Sonderzeichen beachten
§
Seiten durch Zeilenumbrüche und Leerzeilen verwenden
§
Verwenden von mehreren kleinen HTML-Dateien
§
-
nicht größer als 64 KByte (typische Größen ca. 5 KByte)
-
Audio/Video-Sequenzen sollten explizit angekündigt werden
Test der erstellten Seiten unter verschiedenen Browser-Systemen
20.11.2005
Prof. Dr. Andreas Schmietendorf
50
Hypermediale Informationssysteme
Übersicht zum HTML-Befehlsumfang (1):
§
§
§
Textformatierung (Überschriften <H1>Text</H1>, Absätze <P>, Zentrieren
<CENTER>, Zeilenumbruch <BR>, Trennlienie <HR> )
Textattribute
-
physikalische à <I>...</I>, <B>...</B>, <blink>...</blink>
-
logische à <CITE>...</CITE>, <CODE>...</CODE>
Listen (z.B. numerierte und unnumerierte Listen)
<OL>
<UL>
<LI> Äpfel
</OL>
§
§
<LI>
</UL>
Grafiken anzeigen (<IMG SRC=„Adresse des Bildes>, die Angabe einer
alternativen Text-Ausgabe ist möglich)
Tabellen
<TABLE> <TR> <TH>Kopfzeile der Tabelle</TH> </TR>
<TR> <TD>Datenzelle</TD></TR>
</TABLE>
20.11.2005
Prof. Dr. Andreas Schmietendorf
51
Hypermediale Informationssysteme
Übersicht zum HTML-Befehlsumfang (2):
§
Frames für Teilung der Seite in z.B. linken und rechten Bereich
<frameset cols="20%,60%">
<frame src="cmgverw.htm" name="links">
<frame src="ov_cmg.htm" name="rechts">
</frameset>
§
Hypertextlinks (Start- und Zielpunkt)
Links auf Dokumente: <A HREF = „Adresse des Zieldokuments“>...</A>
Link innerhalb der WWW-Seite:
<A HREF = „#Marke“>...</A>
<A NAME = „Marke“>...</A>
§
Link auf Internetdienste: email, news, ftp, gopher, telnet
Imagemaps à Einteilung einer Grafik in anklickbare Bereiche
20.11.2005
Prof. Dr. Andreas Schmietendorf
52
Hypermediale Informationssysteme
Übersicht zum HTML-Befehlsumfang (3):
§
Multimedia- und Fremdprogrammreferenzen (Browserabhängig)
Standard ist das OBJECT-Tag, bei MS Audio mit SOUND-Tag
<OBJECT DATA=„test.avi“ TYPE=„video/x-msvideo></OBJECT>
§
Java-Applets mit APPLET-Tag
Interaktive Formulare zur Dateneingabe
Formulardefinition: <FORM ACTION=mailto:...METHOD=POST>
Eingabefelder: <INPUT TYPE=„text“ NAME=„VARIABLE“>
Auswahlcheckboxen: <INPUT TYPE=„checkbox“ NAME=„VARIABLE“>
Auswahllisten (Scrollbar):
<SELECT NAME="BenchmarkNutzung“SIZE=4 MULTIPLE>
<OPTION>Harwarekenndaten
Bestätigungsbutton: <INPUT
20.11.2005
TYPE=„submit“ [NAME=„OK-Button“]>
Prof. Dr. Andreas Schmietendorf
53
Herunterladen