Das Magazin für Netze, Daten- und Telekommunikation - ITwelzel.biz
Das Magazin für Netze, Daten- und Telekommunikation - ITwelzel.biz
Das Magazin für Netze, Daten- und Telekommunikation - ITwelzel.biz
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
fokusE-COMMERCE<br />
JSP, SERVLETS UND XML<br />
Architektur <strong>für</strong><br />
Anwendungen<br />
Während Java auf dem Client der Durchbruch noch<br />
nicht so recht gelang, erfreut sich die plattformunabhängige<br />
Programmiersprache auf der Server-<br />
Seite wachsender Beliebtheit. Denn die Kombination<br />
aus Java-Servlets, Java-Server-Pages (JSP) <strong>und</strong><br />
XML eignet sich hervorragend als Architektur <strong>für</strong><br />
flexible, skalierbare <strong>und</strong> vom Betriebssystem<br />
unabhängige E-Commerce-Anwendungen.<br />
Es gibt in der Praxis die verschiedensten<br />
Möglichkeiten,<br />
E-Commerce-Anwendungen<br />
zu strukturieren. Viele Hersteller<br />
entwickeln in diesem Umfeld<br />
proprietäre Anwendungen,<br />
die vor der Benutzung zunächst<br />
einmal auf den Client-<br />
Rechnern installiert werden<br />
müssen <strong>und</strong> meist an ein bestimmtes<br />
Betriebssystem geb<strong>und</strong>en<br />
sind. Im Gegensatz dazu<br />
stehen die so genannten<br />
“Thin-Client”-Lösungen, die<br />
in den allermeisten Fällen auf<br />
der Nutzung der bestehenden<br />
Web-Infrastruktur basieren.<br />
Mit anderen Worten: Die Benutzerschnittstelle<br />
auf den<br />
Client-Rechnern stellt ein gängiger<br />
Web-Browser zur Verfügung.<br />
Die Anwendungsdaten<br />
werden vom Server, der die gesamte<br />
Anwendungslogik bereitstellt,<br />
in HTML oder XML<br />
kodiert <strong>und</strong> per HTTP an den<br />
Client geschickt. Der Server<br />
generiert diese dynamischen<br />
Web-Seiten aus den in <strong>Daten</strong>banken<br />
gehaltenen Anwendungsdaten<br />
<strong>und</strong> aus Benutzer-<br />
238 LANline 12/2000<br />
wünschen. Ein Beispiel: Ein<br />
Online-Buchhändler bietet seinen<br />
K<strong>und</strong>en zunächst ein in<br />
HTML kodiertes Suchformular.<br />
Nach Auswertung der<br />
Stichworte, die der K<strong>und</strong>e angegeben<br />
hat, kontaktiert der<br />
Server eine <strong>Daten</strong>bank <strong>und</strong> erhält<br />
von dieser eine Reihe von<br />
Buchtiteln, die zu den Stichworten<br />
passen. Diese werden<br />
nun in HTML umgesetzt <strong>und</strong><br />
an den Web-Browser des<br />
Clients geschickt, der die Seite<br />
als Antwort auf das Abschicken<br />
eines Formulars im Fenster<br />
darstellt. Diese heute am<br />
häufigsten eingesetzte Architektur<br />
Web-basierter E-Com-<br />
Bild 1. 3-Tier-Architektur mit Servlets<br />
merce-Anwendungen wird<br />
auch als “3-Tier-Architektur”<br />
bezeichnet. Bild 1 stellt diese<br />
Variante grafisch dar.<br />
Jeder der drei Bereiche übernimmt<br />
dabei unterschiedliche<br />
Aufgaben. Tier 1 stellt die webbasierte<br />
Benutzerschnittstelle<br />
dar. Hier gibt der Benutzer seine<br />
Anfragen ein <strong>und</strong> erhält die<br />
Antworten der Anwendung.<br />
Tier 2 ist das Kernstück, denn<br />
dort ist die ganze Anwendungslogik<br />
untergebracht. Tier<br />
3 schließlich ist <strong>für</strong> die <strong>Daten</strong>haltung<br />
zuständig <strong>und</strong> wird<br />
über SQL angesprochen.<br />
Für die Umsetzung von Tier<br />
2, die sich im Wesentlichen auf<br />
die Erstellung eines Anwendungsprogramms<br />
konzentriert,<br />
gibt es heute eine Vielzahl von<br />
Möglichkeiten. Bekannte<br />
Techniken <strong>für</strong> die Erzeugung<br />
dynamischer Web-Seiten, die<br />
heute auch <strong>für</strong> E-Commerce im<br />
Einsatz sind, sind CGI-Skripte<br />
in Perl, PHP3 oder Microsofts<br />
Active Server Pages (ASP). In<br />
diesem Artikel betrachten wir<br />
eine spezielle Variante dieser<br />
3-Tier-Architektur, in der Tier<br />
2 durch die so genannte Java-<br />
Servlets realisiert wird.<br />
Die Servlet-Technologie ist<br />
eine logische Weiterentwicklung<br />
<strong>und</strong> Kombination zweier<br />
schon länger existierender Ansätze<br />
zur Erzeugung dynamischer<br />
Web-Seiten: CGI-Programme<br />
<strong>und</strong> den Java-Applets.<br />
CGI (Common Gateway Interface)<br />
ist wie schon erwähnt eine<br />
Server-seitige Technik,<br />
während Applets kleine Java-<br />
Programme sind, die im Browser<br />
des Clients ausgeführt werden.<br />
Servlets sind ebenfalls eine<br />
Server-seitige Technologie,<br />
aber sie werden nicht in Perl,<br />
sondern in Java geschrieben.<br />
Ein einzelnes Servlet ist ein<br />
üblicherweise relativ kleines<br />
Programm, das vom Benutzer<br />
wie ein CGI-Skript aufgerufen<br />
<strong>und</strong> dann mit den entsprechenden<br />
Parametern ausgeführt<br />
wird. Man kann sich das wie<br />
die Ausführung eines Applets<br />
in einer Java Virtual Machine<br />
vorstellen, nur, dass eben sämtliche<br />
Aktivitäten auf dem Server<br />
stattfinden. Wie Bild 1 verdeutlicht,<br />
benötigt man <strong>für</strong> eine<br />
Servlet-basierte Lösung eine<br />
Servlet-Erweiterung <strong>für</strong> den<br />
Web-Server, praktisch eine<br />
virtuelle Java-Maschine auf<br />
dem Server. Einige Web-Server<br />
wie etwa der Iplanet-Server<br />
unterstützen von Haus aus<br />
Servlets. Für die Web-Server<br />
von der Apache Group, Microsoft,<br />
Zeus, Netscape <strong>und</strong><br />
O’Reilly bietet Allaire mit Jrun<br />
Erweiterungen an.<br />
Auf einem Web-Server mit<br />
Servlet-Unterstützung definiert<br />
der Administrator zunächst<br />
ein spezielles virtuelles<br />
Verzeichnis, <strong>für</strong> das alle<br />
HTTP-Anfragen an die Servlet-Engine<br />
weitergegeben werden.<br />
Üblicherweise ist dies das<br />
“/servlet” Directory. Wird beispielsweise<br />
der GET Aufruf<br />
“http://www.mybookshop.de/<br />
servlet/Search?titel=potter”<br />
von einem HTML-Formular<br />
auf einer Suchseite empfangen,<br />
lädt die Java-Virtual-Machine<br />
(JVM) auf dem Web-Server<br />
die Java-Klasse Search.class.<br />
Denn Servlets sind gewöhnli-<br />
www.lanline.de