4. Verwendete Methoden und Werkzeuge

Werbung
VERWENDETE METHODEN UND WERKZEUGE | KAPITEL 4
4.
Verwendete Methoden und Werkzeuge
In diesem Kapitel werden die verschiedenen Methoden und Werkzeuge
vorgestellt, die bei der Realisierung der Mediathek eingesetzt wurden. Zuerst
werden die Grundlagen und einige Technologien für Internet-Anwendungen
erläutert. Im zweiten Abschnitt werden wichtige Programmierkonzepte umrissen
und im letzten Abschnitt gehen wir auf die Werkzeuge ein, die wir für die
Umsetzung der Mediathek verwendet haben.
4.1
Grundlagen und Architektur von Webanwendungen
Das World Wide Web (WWW) hat sich in den letzten Jahren von der einfachen
Darstellung statischer Textseiten zu einem Medium für komplexe Anwendungen
entwickelt.
Neben reinen Textinhalten können heutzutage Grafiken, Musik bis hin zu
Videodaten über das Internet im WWW übertragen werden. Webanwendungen
sind in der Lage, dynamische Inhalte mittels Datenbanksystemen zu erzeugen und
interaktive Webseiten auf unterschiedlichen Plattformen wie Mobiltelefone oder
PCs darzustellen. Die Anwendungspalette reicht dabei von einfachen
Informationsangeboten bis hin zum interaktiven Online-Fernsehen.
Das folgende Kapitel stellt einige wichtige Grundlagen für alle Webanwendungen
vor.
4.1.1
Internetprotokolle
Im Grunde genommen ist das Internet ein gigantisches Netzwerk aus unzähligen
Computern. Damit innerhalb des Netzwerkes Daten übertragen werden können,
müssen alle Computer bestimmte Regeln einhalten. Diese Regeln definieren
Spezifikationen und Verhaltensweisen für die Kommunikation zwischen den
Computern und werden im Allgemeinen als Protokolle bezeichnet.
Grundlage für die Kommunikation in Rechnernetzwerken bildet das Anfang der
achtziger Jahre entwickelte OSI-Modell 24. Das Modell besteht aus sieben
eigenständigen Schichten, welche die verschiedenen Aufgaben in der
24
engl. für Open Systems Interconnection Reference Model
56
VERWENDETE METHODEN UND WERKZEUGE | KAPITEL 4
Kommunikation unabhängig voneinander erfüllen können. Die Schichten sind
hierarchisch aufgebaut, d.h. jede Schicht bietet ihre Dienste der darüber liegenden
Schicht an, während sie gleichzeitig die unter ihr liegende Schicht zur Ausführung
benötigt. Die Verbindung zwischen den Protokollen der einzelnen Schichten
nennt man auch Protokollstapel25.
Applikationsschicht
HTTP,FTP,SMTP
Darstellungsschicht
SSL
Sitzungsschicht
Transportschicht
TCP, UDP
Vermittlungsschicht
IP
Sicherungsschicht
Ethernet, MAC, PPP
Bitübertragungsschicht
Ethernet-Basis-Signale, ISDN
Abbildung a4.1: OSI Modell
Zur Beschreibung der Kommunikation von Webanwendungen wird allerdings
meistens das TCP/IP-Referenzmodell verwendet. Das Modell ist in vier
Schichten unterteilt:
TCP/IP Schicht
Entsprechende OSI Schichten
Beispiel
Anwendungsschicht
Applikations-, Darstellungs-, und
HTTP, SMTP
Sitzungsschicht
Transportschicht
Transportschicht
TCP / UDP
Internetschicht
Vermittlungsschicht
IP
Netzwerkschicht
Sicherungs- und
Bitübertragungsschicht
Tabelle t4.1: TCP/IP Referenzmodell
Anwendungsschicht
In der Anwendungsschicht liegen alle Protokolle, die mit
Anwendungsprogrammen zusammenarbeiten, um das Netzwerk für den
25
Englisch: protocol stack
57
VERWENDETE METHODEN UND WERKZEUGE | KAPITEL 4
Austausch anwendungsspezifischer Daten zu nutzen. Dazu zählt zum Beispiel das
Simple Mail Transfer Protocol (SMTP), welches zum Versenden von Emails
verwendet wird.
Das bekannteste Protokoll innerhalb der Anwendungsschicht ist das Hypertext
Transfer Protocol (HTTP). Es kommt bei der Übermittlung von Webseiten, die
im HTML-Format (Hypertext Markup Language) beschrieben werden, zum
Einsatz. HTTP setzt auf das unter ihm liegende Transmission Control Protocol
(TCP)26 auf und arbeitet nach dem Anfrage-Antwort Prinzip. Das heißt, ein Server
antwortet nur dann einem Client, wenn dieser vorher eine Anfrage gestellt hat.
Transportschicht
Die Transportschicht ist für die Verbindung zwischen zwei Rechnern im
Netzwerk zuständig. Die wichtigsten Protokolle dieser Schicht sind das
Transmission Control Protocol (TCP) und das User Datagramm Protocol (UDP).
Während TCP eine gesicherte Verbindung zwischen den Rechnern im Netzwerk
herstellt, um eine möglichst fehlerfreie Datenübertragung zu gewährleisten,
verzichtet UDP auf die Sicherung des Datenstromes zugunsten einer besseren
Ausnutzung der vorhandenen Bandbreite.
Internetschicht
In der Internetschicht wird die Vermittlung von einzelnen Datenpaketen über
eine Punkt-zu-Punkt-Verbindung an den Empfänger geregelt. Die Hauptaufgabe
ist es, das nächste Ziel eines Datenpakets zu ermitteln und dieses dorthin
weiterzuleiten.
Um Rechner im Netzwerk eindeutig zu identifizieren und Datenpakete an sie zu
verschicken, wird das Internet Protocol (IP) verwendet. Es stellt einen
verbindungslosen Paketauslieferungsdienst bereit, der weder die sichere
Übertragung noch eine feste Reihenfolge der Übertragung von Datenpaketen
garantiert.
Netzwerkschicht
Die Netzwerkschicht ist zwar im TCP/IP-Referenzmodell angesiedelt, jedoch
enthält sie keine festen Protokolle aus der TCP/IP-Familie sondern lediglich
Platzhalter, die je nach verwendetem Netzwerktyp ersetzt werden (z.B. Ethernet
oder Token Ring). Hier wird die physikalische Kommunikation zwischen den
Netzwerken geregelt.
26
Siehe auch Transportschicht
58
VERWENDETE METHODEN UND WERKZEUGE | KAPITEL 4
4.1.2
Client – Server im WWW
Das World Wide Web ist ein Hypertext-System, das über das Internet abrufbar ist.
Im allgemeinen Sprachgebrauch werden das WWW und das Internet mittlerweile
gleichgesetzt, jedoch bietet das Internet auch noch andere Dienste wie z.B. Email
die nichts mit dem WWW zu tun haben. Wie im vorherigen Kapitel erläutert, wird
für die Kommunikation im WWW das HTTP als Übertragungsprotokoll
verwendet.
Möchte nun ein Benutzer eine Webseite im WWW betrachten, stellt sein Rechner
(der Client) eine HTTP-Anfrage an den Computer (Host27), auf dem die Webseite
gespeichert ist. Der Server28 wertet die Anfrage aus und schickt seinerseits eine
Antwort zurück. Der Clientrechner kann die empfangene Nachricht, die z. B.
Text, Bild, Audio, Video oder Applets29 enthalten kann, mit Hilfe eines WebBrowsers auf dem Bildschirm darstellen. Alle Nachrichten werden zur
Übertragung in das einheitliche Multipurpose Internet Mail Extension Format
(MIME)30 kodiert.
Dateisystem
Client
Server
Abbildung a4.2: Client - Server Kommunikation bei statischen Webseiten
27
Als Host (engl.: Wirt, Gastgeber) wird in der Informationstechnik ein Computer in einem Netzwerk bezeichnet,
auf dem ein oder mehrere Server betrieben werden.
URL: http://de.wikipedia.org/wiki/Host_%28Informationstechnik%29 , Stand: 19.6.2005
28
Ein Server ist ein Programm, welches auf die Kontaktaufnahme eines Client-Programmes wartet und nach
Kontaktaufnahme mit diesem Nachrichten austauscht. URL: http://de.wikipedia.org/wiki/Server , Stand: 24.6.2005
29
Der Begriff Applet bedeutet soviel wie „kleine Applikation“. Verstanden wird darunter meist ein Java-Applet,
ein kleines Computerprogramm, das in einem Web-Browser läuft und in der Programmiersprache Java
geschrieben ist. URL: http://de.wikipedia.org/wiki/Applet , Stand: 18.6.2005
30
MIME ermöglicht es, zwischen Sender und Empfänger Informationen über den Typ der übermittelten Daten
auszutauschen (Content-Type) und gleichzeitig eine für den verwendeten Übertragungsweg sichere Kodierung
(Content-Transfer-Encoding) festzulegen.
URL: http://de.wikipedia.org/wiki/Multipurpose_Internet_Mail_Extensions , Stand: 25.4.2005
59
VERWENDETE METHODEN UND WERKZEUGE | KAPITEL 4
Grundsätzlich kann man zwischen statischen und dynamischen Webseiten
unterscheiden. Statische Webseiten stehen mit allen Inhalten als Dateien im
Dateisystem des Servers zur Verfügung. Der Server liest die angeforderten
Dateien ein und schickt diese an den Client. Dynamische Webseiten werden von
einer Webanwendung zur Laufzeit generiert, indem z.B. Daten aus einer
Datenbank geholt und weiterverarbeitet werden. Auf der Client-Seite, macht es
dabei keinen Unterschied, ob eine statische oder eine dynamische Webseite
dargestellt wird.
Web-Server
API
Applikation
CGI / PHP
Applikation
Client
Server
Dateisystem
Datenbank
Abbildung a4.3: Client - Server Kommunikation bei dynamischen Webseiten
Bei den Technologien der Webanwendungen unterscheidet man allgemein
zwischen dem Ort der Ausführung in clientseitige und serverseitige Technologien.
Clientseitige Technologien werden im Speicher des Client-Rechners ausgeführt.
Die bekanntesten Beispiele für diese Technologieart sind JavaScript, Flash und
Applets. Viele dieser Techniken sollen vor allem die Präsentation der
übermittelten Daten beeinflussen und benötigen zum Aufruf ein installiertes
Softwaremodul31.
Serverseitige Technologien werden innerhalb des Servers ausgeführt und dienen
oft der dynamischen Erzeugung von Daten, z.B. aus einer Datenbank. Auf diese
Technologien gehen wir im folgenden Kapitel näher ein.
31
meist Plugin genannt
60
VERWENDETE METHODEN UND WERKZEUGE | KAPITEL 4
4.1.3
Serverseitige Technologien
In diesem Kapitel stellen wir die wichtigsten serverseitigen Technologien vor.
Generell unterscheidet man hier ob eine Technik als eigenständiger Prozess
funktioniert (z.B. CGI) oder innerhalb des Webserver-Dienstes (z.B. Server-APIs)
läuft.
CGI – Common Gateway Interface
Über die CGI-Schnittstelle können Webbrowser Programme aufrufen, die auf den
Webserver vorliegen. Hierbei können sowohl Daten vom Browser empfangen
(z.B. aus einem Web-Formular) als auch an diesen versendet werden (z.B. eine
generierte HTML-Seite).
CGI-Programme können in vielen verschiedenen Programmiersprachen wie z.B.
PERL oder C geschrieben sein. Als Vorraussetzung für den Betrieb über CGI
muss auf dem Webserver lediglich ein entsprechender Interpreter vorhanden sein,
bzw. die Programme für das Betriebssystem kompiliert werden. Am häufigsten
wird in Verbindung mit CGI die Skriptsprache PERL verwendet,
Für jede Anfrage über die CGI-Schnittstelle wird jeweils ein neuer Prozess
gestartet, der nach fertiger Abarbeitung wieder beendet wird. Dieser Tatbestand
macht die Ausführung von Programmen über CGI bedeutend langsamer als
andere Methoden, was dazu geführt hat, das CGI heutzutage keine große Rolle
mehr bei der Erstellung von dynamischen Webanwendungen spielt. Eine
mögliche Verbesserung für die langsamere Ausführungsgeschwindigkeit ist die
Einbettung der Programmiersprachen über Module direkt in den WebserverDienst. Leider wird hier der Vorteil bei der Programmiersprachen-Unabhängigkeit
verspielt.
Server-API – Application Programming Interfaces
APIs sind herstellerabhängige Programmbibliotheken. Server-APIs werden beim
ersten Aufruf dynamisch in den Speicher geladen und bleiben dort bestehen. Im
Gegensatz zu CGI-Programmaufrufen muss nun nicht jedes Mal ein neuer
Prozess gestartet werden, was die Ausführungsgeschwindigkeit erheblich
verringert. Die Anfragen aus Webseiten werden innerhalb des WebserverDienstes abgearbeitet und direkt an die API weitergegeben, wodurch eine gute
Performance erreicht wird. Beispiele für Server-APIs sind z.B. Java Servlets oder
ISAPIs von Microsoft.
Neben der schnelleren Ausführungsgeschwindigkeit haben Server-APIs aber auch
einige Nachteile. Sie sind herstellerabhängig, d.h. sie funktionieren nur auf den
61
VERWENDETE METHODEN UND WERKZEUGE | KAPITEL 4
Servern, für die der Hersteller sie programmiert hat. Außerdem sind sie nicht vom
Webserver-Dienst getrennt, was dazu führen kann, dass schlecht programmierte
APIs den Webserver-Dienst zum Absturz bringen können.
Skriptsprachen – z.B. PHP, ASP, JSP etc.
Am häufigsten werden dynamische Webanwendung derzeit mit serverseitigen
Skriptsprachen wie PHP, ASP (Active Server Pages) oder JSP (Java Server Pages)
realisiert.
Wird vom Webbrowser eine Anfrage auf eine dynamische Webseite gestellt, liefert
der Webserver nicht die entsprechende physikalisch vorliegende Datei an den
Webbrowser zurück. Stattdessen wird die Seite zur Laufzeit von einem
entsprechenden Interpreter32 ausgeführt und erst diese Ausgabe – meist in Form
einer HTML-Seite – anschließend an den Webbrowser geschickt.
Ähnlich wie Server-APIs bleibt auch der Interpreter der Skriptsprache im
Speicher des Servers und muss nicht für jede Anfrage neu gestartet werden, was
gegenüber CGI einen Performance-Vorteil darstellt. Ein weiterer Pluspunkt ist
der mittlerweile große Funktionsumfang vieler Skriptsprachen, wie Zugriffe auf
unterschiedliche Datenbanken oder die Erzeugung von Grafiken zur Laufzeit.
Ein Nachteil, den prinzipiell alle Skriptsprachen teilen, liegt im Grundkonzept,
dass alle vom Server erstellten Seiten interpretiert werden müssen. Dadurch steigt
die Auslastung des Webservers, was bei vielen gleichzeitigen Zugriffen einen
Performance-Nachteil darstellen kann.
4.2
Verwendete Konzepte
4.2.1
OOP
OOP steht für objektorientierte Programmierung und bezeichnet ein Verfahren
zur Strukturierung von Computerprogrammen.
Das Konzept der OOP ist ungefähr vergleichbar mit einer abstrakten Sicht auf
die reale Welt. In unserer Umwelt können alle Dinge durch einen Zustand mit
Eigenschaften und Verhaltensregeln beschrieben werden. Einige Dinge sind dabei
sehr einfach und andere hoch komplex und nur sehr schwer zu fassen.
32
Ein Interpreter ist ein Software-Programm, das Quellcode zur Laufzeit direkt analysiert und ausführen kann.
Es bedarf keiner vorherigen Kompilierung durch einen Assembler o.ä.
62
Herunterladen