Web-Application-Server

Aus Wikibooks

Wechseln zu: Navigation, Suche
Gnome-applications-office.svg Dieses Buch steht im Regal EDV.

Inhaltsverzeichnis

[Bearbeiten] Ziele des Buches

Dieses Buch wird Ihnen helfen zu verstehen, was ein Web-Application-Server ist, wie er funktioniert und wie man ihn betreibt. Darüber hinaus gibt dieses Buch antworten, wie verschiedene Application Server arbeiten oder konfiguriert werden.

[Bearbeiten] Was ist ein Web-Server, was ein (Web-)Application-Server?

[Bearbeiten] Web-Server oder wie werden statische Daten ausgeliefert

Ein Web-Server ist ein Programm, das Informationen über einen, hauptsächlich als Pull-Dienst genutzten, Zugriff zur Verfügung stellt. Die übertragbaren Daten folgen dabei einem standardisierten Übertragungsprotokoll namens HTTP (Hyper Text Transfer Protokoll).

Zusätzliche Pull-Dienste eines Webservers wie etwa ein FTP-Zugriff (FTP = File Transfer Protokoll) oder Kombinationen aus Pull- und Push-Diensten wie WebDAV werden eventuell angeboten, sind aber für die Klassifizierung des Programms als Web-Server unerheblich.

Für den Zugriff auf einen Web-Server wird in den meisten Fällen ein Web-Browser als Client eingesetzt. Die Kommunikation geschieht dabei häufig auf dem für WWW-Dienste standardisierten Port 80 des Web-Servers. Abweichende Einstellungen sind jedoch zulässig.

Die weitestgehend verwendete Sprache des WWW ist die HTML (Hyper Text Markup Language), einem Derivat des SGML Standards. Daher sind die vom Server bereitgestellten Daten meist HTML, Erweiterungen des HTML Standards.

Durch die hohe Verbreitung und hohe Nutzung des WWW (World Wide Web), welches als Rückgrat die Daten und Informationen von Web-Servern nutzt und über Hyper-Links miteinander verknüpft, ist leider fälschlich teils das Internet umgangssprachlich mit dem WWW gleichverwendet. Das WWW bietet aber nur eine Dienstart im Internet an und stellt daher nur einen Bruchteil der heutigen Ausprägung des Internets dar.

Die Standardisierung des WWW übernimmt das WWW Consortium (W3C). Tim Berners-Lee gilt als der Erfinder des World Wide Web, der Definition des HTML, HTTP und der URLs (Universal Resource Locators) und URIs (Unified Resource Identifier). Diese Entwicklungen fanden zwischen 1989 bis 1991 statt. Tim Berners-Lee ist momentan Präsident des W3C.

Die Adressierung von Daten auf Web-Servern wird durch die manuelle Eingabe oder der Traversierung von Links (Verbindungen) in Form von URIs / URLs durchgeführt. Hierbei erhält der Web-Server von aussen die URL und löst diese in eine interne Repräsentation auf, in der er die auszuliefernden Daten sucht. Ein http-Web-Server wie der "Apache Webserver" oder der "Internet Information Server" sucht dabei, zum Beispiel, im Dateisystem nach einer Datei, welche der angegebenen URL entspricht. Findet er sie, so liefert er sie zurück, die Seite kommt bei dem, der sie angefragt hat an. Dies ist das Verhalten bei der sogenannten statischen Auslieferung: Die Inhalte liegen bereits statisch (im Dateisystem) vor und werden auf Anfrage einfach zurückgegeben.

[Bearbeiten] Web-Application-Server oder wie werden Daten "on-demand" generiert und ausgeliefert

Der Zusatz Application im Web-Server unterscheidet den Web-Server vom Web-Application-Server. Liefert der Web-Server quasi nur bereits genau so wie gewollt Daten aus einem Dateisystem aus, so steckt hinter einem Web-Application-Server ein Programm (eine "Applikation"), welche die Seiten nicht nur statisch ausliefert, sondern diese auf verschiedene Arten und Weisen zusammensetzt.

Neben den statisch auf den Web-Server hinterlegten Daten kann ein Web-Application-Server also zum Beispiel Daten aus einer Datenbank auslesen und erzeugt sie zur Auslieferungszeit neu. Der so erzeugte Inhalt kann also auf die Anfrage gezielt reagieren, verschiedene Daten und Datenquellen zu Rate ziehen und so dynamisch erzeugt werden.

Im Prinzip braucht jede Seite welche, als Beispiel einen Login (also Benutzerinteraktion) benötigt oder ein Wiki anzeigt, ein Blog oder ähnliches darstellt einen Web-Application-Server, da die Daten nicht einfach zu einem Zeitpunkt in eine Textdatei geschrieben werden können, sondern verwaltet werden müssen. Der Web-Application-Server stellt dabei eine Programmier- oder Skriptsprache bereit, welche z.B. auf Datenbanken zugreifen kann, um so die Seiten zu erzeugen.

Web-Application-Server können den Programmierern dabei weitere Möglichkeiten zur Verfügung stellen ihre Seiten zu generieren. Dies reicht von einfachen Verfahren, die von Benutzern eingegebenen Daten zu überprüfen (man spricht hier von Validierung) bis zu Datenbankabfragen oder sogar verteilten Transaktionen und Skalierungsmöglichkeiten über eine komplette Farm von Servern.

[Bearbeiten] Dynamische Webseiten: CGI, Web-Server-Module und angebundene Middleware

Im Prinzip sorgt zuerst ein Web-Server dafür, dass einkommende Anfragen verteilt (und damit beantwortet) werden. Man muss dem Web-Server hierzu zuerst bekannt geben, welche Teile einer Webseite statisch und welche dynamisch ausgeliefert werden. Dabei kann man unter drei Verfahren unterscheiden:

  • CGI - Der Web-Server erhält eine Anfrage von Außen und weiß anhand der URL, dass er ein Programm aufrufen soll. Dies wird über CGI (Common Gateway Interface) aufgerufen. Das Programm liefert dann den Inhalt an den Web-Server zurück. Beispiele sind "perl" oder "php", aber auch einfache Programme welche auf dem Web-Server installiert sind.
  • Module - Dies funktioniert analog zum Common Gateway Interface, allerdings hat der Web-Server die notwendige Laufzeitumgebung des Programms selbst inne und muss so nicht jedesmal erst ein Programm aufrufen. Beispiele sind "mod_perl" oder "mod_php", die als Zusatz zum Web-Server geliefert werden.
  • Angebundene Middleware - Der Web-Server weiß, wohin er die Anfrage weiterschicken muss, um eine Antwort zu erhalten. Die Anfrage wird also an ein weiteres (bereits laufendes und auf die Anfrage wartendes) Programm geschickt, welches dann auf die Anfrage dementsprechend antwortet. Beispiele sind Tomcat oder WebSphere.

Bei jeder der oben angeführten Arten ist jedoch eine Programmierung notwendig, da die Inhalte der auszuliefernden Seiten jeweils auf den eigenen Gegebenheiten anzupassen sind. Außerdem ist zu beachten, dass eine Mischung aus den verschiedenen Verfahren möglich ist, so kann zum Beispiel CGI bei Bedarf auf eine weitere Middleware zugreifen.

[Bearbeiten] Systemarchitektur eines Web-Application Servers

  • Webserver (gegebenenfalls inklusive CGI / Module)
  • Middlewarekomponenten (zumeist Komponenten/Programme, welche hinter dem Web-Server laufen)
  • Datenbankmanagementsystem (DBMS, auf diese wird vom Web-Server / Web-Application-Server aus zugegriffen)
    • relational
    • objektrelational
    • objektorientiert
    • XMLdb
  • Multi-Tier (eine Anfrage von außen läuft durch mehrere Schichten, Beispiel: Web-Server greift auf Middleware zu, diese greift auf ein DBMS zu)
  • funktionale Architektursicht (die Sicht, die ein Programmierer auf das System hat)
    • MVC Model View Controller (Model = Daten, View = Ansicht, Controller = Zusammensetzung der Daten in die Ansicht)
    • Session Management (eine Session ("Sitzung") bedeutet, ein Benutzer hat sich angemeldet und ist der Seite bekannt)
      • Browser-Cookies
      • Session-IDs
  • integratives System
    • URL-Rewriting
    • IP Detection

[Bearbeiten] Sicherheit eines Web-Application Servers

  • Loadbalancing
    • Caching innerhalb eines Loadbalancers
      • Was ist ein ETag?

Ein ETag ist eigentlich nichts anderes als ein systemweiter Identifzierungscode für eine "Ressource", also eine vom Server zu ladende Datei oder generierte Einheit. Bleibt die zu ladende Einheit gleich, so sollte das ETag gleich bleiben. Auf diese Art kann der Client im Header eines http-Requests feststellen, dass sich die Datei nicht geändert hat. Im Normalfall übernimmt der Web-Server die Aufgabe das ETag zu berechnen. Dies geschieht z.B. dadurch, dass eine abgelegte, statische Datei anhand ihres Datums und I-Nodes (Ablageplatz/Ablagezeitpunkt im Dateisystem) einen eindeutigen Identifier erhält, eben das ETag.

  • Ausfallsicherheit
  • SPoF Single Point of Failure
  • Layer-4-Switching
  • geographische Servertrennung
  • Proxy-Server
  • Firewalls
  • Systemskalierbarkeit
    • Skalieren der Serverzahl
    • Skalieren der Datenbank
    • Skalieren der maximalen Benutzerzahl
    • Skalieren der zeitgleichen Benutzerzahl (Sessions)

[Bearbeiten] Verteilte Systeme

  • Replikation vs. Mirroring vs. Caching von Daten
    • Replikationsstrategien
    • Caching-Strategien
  • Proxy-Caching, Server-Side-Caching

[Bearbeiten] Daten- und Applikationsdeployment

  • Schnittstellen

[Bearbeiten] Wartung und Migration

  • Zugriffsmöglichkeiten für die Administration, Entwicklung, Datenpflege, Applikationsmigration, Datenmigration

[Bearbeiten] Kostenfaktoren

  • Wirtschaftliche Betrachtung von Web-Application-Servern
  • Kostenfaktoren
    • Fixkosten
    • Variable Kosten
  • Kostenfunktionen
    • Wirtschaftlichkeit
    • Auslastung
    • Verfügbarkeit

[Bearbeiten] Exemplarische Web-Application Server

[Bearbeiten] LAMP / WAMP Systeme

LAMP oder WAMP Systeme als Web-Application Server nutzen eine Software-Kombination aus Betriebsystem, Webserver, Datenbank und Scriptsprache. Für die Scriptsprache wird CGI genutzt, es kann aber auch ein Modul als Interpreter in den Webserver direkt eingebunden werden. Die Anfangsbuchstaben der Lösungskomponenten liefern dabei die Benamung des Web-Application Server Systems.

  • LAMP Systeme bestehen aus Linux als Betriebssystem, Apache als Webserver, MySQL als Datenbankmanagementsystem und einer Scriptsprache wie PHP oder Perl oder Python,
  • WAMP Systeme bestehen aus Windows als Betriebssystem, Apache als Webserver, MySQL als Datenbankmanagementsystem und einer Scriptsprache wie PHP oder Perl oder Python.

Alternativ gibt es auch ein WIMP System, hier wird der Apache durch einen Internet Information Server ausgetauscht.

Im Folgenden werden Sie lernen, wie ein Apache-Server installiert, konfiguriert und zum Laufen gebracht wird. Anschließend wollen Sie sicher auch einen Server mit PHP-Unterstützung. Also werden wir noch ein PHP-Modul installieren. MySQL möchten Sie auch nicht vermissen? Gut, dann installieren wir zum Schluss einen MySQL-Server.


13:31, 18. Feb 2005 (UTC) Es geht aber auch einfacher. Man nutze einfach ein Komplettpacket. Einmal Installieren und alle notwendige Software ist dabei das Kit nennt sich XAMPP So mancher wird schon die Erfahrung gemacht haben: Ein Apache-Webserver installiert sich nicht so leicht. Noch schwieriger wird es, wenn weitere Pakete wie MySQL, PHP oder Perl dazukommen. XAMPP ist eine Distribution von Apache, MySQL, PHP und Perl, die es ermöglicht diese Programme auf sehr einfache Weise zu installieren. [1]



[Bearbeiten] Apache Webserver

Der Apache Webserver erlaubt es Ihnen, einen ganz normalen Webserver auf Ihrem Computer laufen zu lassen. Sie werden keinen Unterschied zu einem Server auf dem Internet feststellen. Der Apache-Webserver ist freie Software und kann privat, wie auch kommerziell, genutzt werden. Ausserdem ist es der am weitesten verbreite Webserver.

[Bearbeiten] Download

Sie können den Server auf folgender Seite downloaden: [2].

[Bearbeiten] Installation

In folgendem wird die Installation des Apache Webservers unter Linux Systemen abgehandelt, in dieser Abhandlung beziehe ich mich auf die Online-Resourcen des Apache Projekts,

erforderliche Pakete bei einer Ubuntu, Kubuntu oder Edubuntu 5.10 Installation sind,

apache2-common; libapache2-mod-php5; php5; php5-mysql; php5-myadmin; mysql-admin-common; mysql-query-browser-common;

diese werden je nach dem wie es der Anwender bevorzugt über, sudo apt-get install [Paketname] heruntergeladen oder über den jeweiligen Paketmanager, vorher bitte sudo apt-get update

Vorher sollte eventuell ein Blick auf die Apache Homepage geworfen werden um zu sehen ob bereits eine neuere Apache Version verfügbar ist (aktuell Apache2.2.0), desweiteren kann man als Erfahrener Administrator sich in den Mailing-Listen über Verbesserungen in künftigen Releases informieren und einen Bugreport (deutsch Fehlerreport) einschicken,

Im Paketmanager Synaptic oder Adept kann man nach dem Paket suchen und so sehen welche Version zurzeit in den Repositories und Backports bereitliegen.

Sollte nicht die aktuelle Apache2.2.0 Version in den Repositories liegen so kann man bei den Entwicklern der Distribution Ubuntulinux.org anfragen wann denn diese verfügbar sein werden, im Regelfall sollte dies aber nicht notwendig sein, hierfür sind die vielen Ubuntu-Community´s sehr zu empfehlen wo sich die Forenmoderatoren sehr darum bemühen Support-Anfragen unproblematisch und schnell zu beantworten.

an dieser Stelle setze ich voraus das die Pakete bereits installiert worden sind, man wechselt nun, in einen beliebigen Internetbrowser Konqueror oder Firefox und tippt die URL 127.0.0.1 ein dies ist der Localhost auf dieser IP läuft momentan der Apache2 Webserver, in der Regel wird auch ein Ordner public_html in dem jeweiligen Userverzeichnis /home/benutzername/public_html angelegt, sollte dies nich so sein so legt ihn bitte selbst an,

sollte kein Apache Webserver auf Port 80 und 127.0.0.1 [localhost] laufen so kann man den Apache Webserver ganz einfach über die Konsole starten dazu wechselt man mit dem Befehl cd in das Verzeichnis

/etc/init.d/ und tippt dort dann ein "sudo apache2 -k start" dies startet denn Webserver so das dieser unter den genannten Adressen verfügbar ist, der Befehl "apache2 ?" zeigt die Kommandozeilen Optionen,

hier noch ein paar Verzeichnisse wo man wichtige Konfigurationsdateien des Apache2 Webserver´s findet die man in aller Regel dazu braucht wenn man eine Supportanfrage stellen möchte und oder ein Problem ausfindig machen möchte;

Die Datei /etc/apache2/httpd.conf ist zwar noch vorhanden, wird aber nur noch aus Kompatibilitätsgründen mitinstalliert. Diese Datei sollte nicht verwendet werden. Statt dessen verwenden Sie die Datei /etc/apache2/sites-available/default. Hier tragen Sie die gewünschten Werte ein. Nun muss die Datei aktiviert werden, dazu deaktivieren Sie zunächst die jetzt noch verwendete per "sudo a2dissite default" und aktivieren dann die neue Datei per "sudo a2ensite default"

/var/log/apache2/ sudo kwrite error.log oder bei gnome umgebung sudo gedit error.log /var/log/apache2/ sudo kwrite access.log oder bei gnome umgebung sudo gedit access.log

ein paar wichtige Module des Apache2 Webserver´s seien hier noch genannt,

mod_actions, mod_alias, mod_asis, mod_auth, mod_autoindex, mod_access, mod_cgi, mod_cgid, mod_charset_lite, mod_dir, mod_env, mod_imagemap, mod_include, mod_log_config, mod_mime, mod_negitation, mod_setenvif,

in den Verzeichnissen /var/www speichert man in der Regel CMS (Contentmanagementsysteme) und ERP (Enterprise Resource Planning Systeme) ab.

Ausführbare Perl Skripte laufen nur in /usr/lib/cgi-bin

[Bearbeiten] Konfiguration

[Bearbeiten] PHP

[Bearbeiten] Download

php

[Bearbeiten] Installation
[Bearbeiten] Konfiguration

[Bearbeiten] MySQL

[Bearbeiten] Download
[Bearbeiten] Installation
[Bearbeiten] Konfiguration

[Bearbeiten] Lotus Domino / Lotus Notes

Was ist neu in IBM Lotus Domino 6.5.1?

Stellt Benutzern einen einzigen Zugriffspunkt für ihre wertvollsten Messaging-, Collaboration und Personal Information Management (PIM)-Funktionen über die neue Willkommen-Seite des Lotus-Arbeitsbereichs für Notes zur Verfügung. Integriert Lotus Instant Messaging-Funktionalität, um Anwesenheitserkennung zu ermöglichen und Benutzer in die Lage zu versetzen, Chats mit Kollegen zu beginnen, ohne eine getrennte Anwendung zu starten. Maximiert die Reaktionsfähigkeit durch eine Follow-up-Funktion und visuelle Anzeiger, die Benutzer aufmerksam machen, wenn sie E-Mail-Nachrichten weitergeleitet oder beantwortet haben. Fördert die Senkung der Anschaffungs- und Betriebskosten durch minimale Schulungsanforderungen, Erhöhung der Endbenutzerproduktivität und integrierte Verwaltungsfunktionen. Erweitert die Plattformunterstützung um Linux. Verbessert die Server- und Systemverwaltung und senkt dadurch Anschaffungs- und Betriebskosten. Erweitert die Unterstützung für Anwendungsentwicklung durch das Lotus Domino Toolkit für WebSphere Studio. Beachten Sie bitte, dass Version 6.5.3 das aktuellste Wartungsrelease für die IBM Lotus Domino-Produktfamilie ist. Dieses Release enthält ausschließlich Codekorrekturen und keine neuen Funktionen.

[Bearbeiten] Zope

Zope ist eine integrierte Web-Application Server Lösung. Dies bedeutet, dass alle zu einem Web-Applikation Server gehörigen Komponenten bereits integrativer Bestandteil eines Gesamtsystems sind. Nach Download und Installation des Zope-Servers stehen somit alle Architekturkomponenten eines gängigen Web-Application Servers auf einmal zur Verfügung.

Zope selbst bringt als Datenbanksystem die objektorientierte ZoDB mit sich, hat einen integrierten in Python laufenden Webserver, auf dem DTML, sowie Python und PTs (sogenannte Page Templates) als Script und Entwicklungssprache Verwendung finden.

Durch PTs ist eine Trennung von Design und Geschäftsmodell der Applikation derart möglich, dass reine Webdesigner mit geringen Zusatzkenntnissen neben HTML ohne Beschäftigung mit Geschäftslogik und Datenbankumsetzung der verwendeten Daten das von Ihnen gewünschte Layout und Design in den typischen HTML Editoren realisieren können. Ein Erlernen von umfangreichen Zusatzsprachen wie XML, XSLT, XPath wie in vielen JAVA/XML basierten Web-Applikation Server Lösungen ist nicht nötig.

Ein Deployment von Daten und Applikationen ist per XML Export/Import, sowie über ein Applikationsverzeichnis im Verzeichnisbaum des Betriebssystems möglich.

Wie bei solchen integrativen Lösungen üblich werden eine Reihe zusätzlicher Server-Funktionen neben dem Webserver zur Verfügung gestellt:

  • die bereits erwähnte ZoDB,
  • Versionsmanagement von Objekten,
  • WebDAV,
  • FTP,
  • SMTP,
  • Plugin-Integration z.B. für Zugriffe auf andere DBMS.

Benutzung, Entwicklung und Administration der Datenbank, des Webservers, der Caches, etc. kann über einen Zugriff des Webbrowsers betrieben werden. Hierdurch ist eine Fernwartung des Servers über reine Port 80 Zugriffe per HTTP realisierbar.

[Bearbeiten] Plone

Bei Plone handelt es sich um einen integrativen Web-Application Server. Aufbauend auf einen Zope-Server werden zusätzlich Funktionen wie ein Datentyp-Entwicklungssystem und ein Content-Management-System (CMS) mit angeboten.

[Bearbeiten] JBoss

JBoss ist ein Web Application Server, der einen Tomcat quasi "im Bauch hat". Wichtig hier: für den Deploy sollten die .war-Pakete entpackt werden in einen gleichnamigen Ordner. Also z.B. C:\jboss-3.2.5\server\default\deploy\myApp.war (unter Windows). Bei der Entwicklung an einer Applikation kann man zur Laufzeit des Servers einen Redeploy machen. Man muss den Server nur noch dann runter und rauffahren, wenn man an XML- oder .properties-Dateien etwas ändert.

[Bearbeiten] Tomcat

Tomcat ist ein Servlet-Container, der an den Apache Webserver angebunden werden kann. Er wird von der Apache-Foundation innerhalb des Jakarta-Projektes entwickelt. Er ist komplett in Java implementiert und gilt sogar als Referenzimplementierung (eines Servlet-Containers) in dieser Programmiersprache. Die aktuelle stabile ("stable") Version (5.5.9 (13.09.2005)) implementiert die Servlet-API 2.3. sowie die Servlet-API 2.4. Der Download befindet sich auf der Hauptseite von jakarta.apache.org.

[Bearbeiten] Allgemeines

Das ist ein Artikel aus meinem RootserverWiki Viel Spaß beim lesen und weiterverfeinern.

Tomcat ist ein Projekt aus dem Apache Tree. Es handelt sich hierbei um einen vollwertigen http-Server, der zusätzlich als Container für Servlets und Java Server Pages verwendet werden kann. Der Vorteil, der Tomcat arbeitet unabhängig von anderen auf dem System laufenden Servern. Sie können also den Tomcat gerne neben dem Apache betreiben. Hierbei sollten Sie aber aufpassen, dass es zu keinen Überschneidungen bei den Portvergaben kommt. Sollten sie Webseiten mit Servlet oder Java Server Pages entwickeln wollen, dann werden sie um den Tomcat nicht herum kommen.

[Bearbeiten] Installation

 juliane:/# apt-get install tomcat
 Reading Package Lists... Done
 Building Dependency Tree... Done
 The following extra packages will be installed:
 java-common jdk1.1 jikes libbsf-java libservlet2.2-java libxalan-java
 libxaw6 libxerces-java xlib6g
 The following NEW packages will be installed:
 java-common jdk1.1 jikes libbsf-java libservlet2.2-java libxalan-java
 libxaw6 libxerces-java tomcat xlib6g
 0 packages upgraded, 10 newly installed, 0 to remove and 0  not upgraded.
 Need to get 8768kB of archives. After unpacking 21.1MB will be used.
 Do you want to continue? [Y/n] y
 Get:1 http://security.debian.org stable/updates/main libxaw6 4.1.0-16woody3 [167kB]
 Get:2 http://ftp2.de.debian.org stable/main java-common 0.14 [52.3kB]
 Get:3 http://ftp2.de.debian.org stable/non-free jdk1.1 1.1.8v1-3 [5080kB]
 [...]
 Setting up tomcat (3.3a-4woody1) ...
 Starting Tomcat servlet engine using Java from /usr/lib/jdk1.1: tomcat.


[Bearbeiten] Besonderheiten JAVA

Sie haben es bei der Installation sicherlich gemerkt, dass JAVA mit installiert wurde bzw. vorhanden sein sollte. Dies ist aus mehreren Gründen erforderlich: Zum einen ist der Tomcat in JAVA geschrieben und zusätzlich wird zum Übersetzen der JSP-Seiten JAVA benötigt.


Nachdem sie nun ihren Tomcat installiert haben bedarf es noch dem einen oder anderen Schritt um den Kater die sporen zu geben und so laufen zu lassen, wie sie es sich vorstellen.

Um den Server zu betreiben sind im /bin Verzeichnis des Tomcats Start und Stopskripte abgelegt, um ihnen das ganze etwas zu erleichtern.

[Bearbeiten] Die Verzeichnisstruktur des Tomcats

  • bin
  • common
  • conf
  • logs
  • server
  • shared
  • temp
  • webapps
  • work

Verzeichnis Inhalt

Bin Hier finden sie die Start und Stopskripte für Tomcat. Sie müssen sich nicht wundern. Linux Freunde finden dort auch bat Dateien und sogar eine EXE Datei für Windows
Common Darin befindet sich zunächst ein leeres Verzeichnis classes das für ungepackte, gemeinsam genutzte Klassen vorgesehen ist. Ein Unterverzeichnis lib mit zahlreichen jar-Archiven, die u.a. für den Serverbetrieb und die Ausführung der Webanwendungen benötigt werden (servlet-api.jar; jsp-api.jar oder jasper-compiler.jar).
Conf Wie der Name des Verzeichnis schon vermuten lässt befinden sich darin die Konfigurationsdateien. Die Server.xml, die für die Konfiguration des Serverbetriebs notwendig ist, dann haben sie dort noch die web.xml, die die Vorgaben für Webanwendungen enthält. Ausserdem gibt es im Verzeichnis WEB-INF Verzeichnis der betreffenden Anwendungen noch die Möglichkeit die Einstellungen der web.xml im gezielten Einzelfall überschreiben. Die Tomcat-user.xml enthält die Liste der zugelassenen Benutzer des Tomcats.
Jstl Dieses Verzeichnis enthält die JSP Standard Tag Library.
Logs Dort werden die Log Dateien abgelegt, welche bei Betrieb des Servers anfallen
Server Darin befinden sich 3 Unterverzeichnisse. Das Unterverzeichnis lib enthält die zenrtalen jar-Bibliotheken für den internen Serverbetrieb. Classes für ungepackte Klassen, die intern genutzt werden. Webapps enthält die Manager und Admin Anwendungen.
Webapps Das Basisverzeichnis für Webanwendungen, die von Tomcat ausgeführt werden sollen.
Work Das Arbeitsverzeichnis in dem Tomcat die temporären Dateien und Verzeichnisse abgelegt. Hier werden die Servlets geparkt, die dann Tomcat zu JSP generiert.

Starten des Servers So können sie zum Beispiel startup.sh eingeben um den Server zu starten. <CATALINA_HOME>/bin/startup.sh Using CATALINA_BASE: /opt/jakarta/tomcat Using CATALINA_HOME: /opt/jakarta/tomcat Using CATALINA_TMPDIR: /opt/jakarta/tomcat/temp Using JAVA_HOME: /usr/lib/SunJava2-1.4 linux:/opt/jakarta/tomcat/bin #

Sollten sie die o.a. Ausgabe erhalten, haben sie soweit den richtigen Weg eingeschlagen.

Danach sollten sie den Tomcat mit einem Aufruf von http://localhost:8080 in Ihrem Browser erkennen können.


Stoppen des Server, sofern sie das benötigen. <CATALINA_HOME>/bin/shutdown.sh

Sie sehen oben Links auf der Tomcat Startseite die Tomcat Administration und den Link Tomcat Manager. Hierüber können sie die Einstellungen ihres Tomcats verändern und anpassen. Um sich dort einloggen zu können ist es allerdings erforderlich, dass sie den Benutzer mit dem sie dort arbeiten wollen in die <CATALINA_HOME>/conf/tomcat-user.xml eintragen.

Nehmen sie hierzu einen Editor und tragen den Benutzer ein.

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
 <role rolename="tomcat"/>
 <role rolename="role1"/>
 <role rolename="manager"/>
 <role rolename="admin"/>
 <user username="schroedi" password="test" roles="tomcat,admin,manager,role1"/>
 <user username="tomcat" password="tomcat" roles="tomcat"/>
 <user username="both" password="tomcat" roles="tomcat,role1"/>
 <user username="role1" password="tomcat" roles="role1"/>
</tomcat-users>


Ich habe es mir einfach gemacht und habe einfach die mit cut&paste bearbeitet und dann um die erforderlichen Einträge ergänzt. Bitte starten sich nach den Veränderungen ihren Server neu, damit die Änderungen wirksam werden können.

Nun sollte ich als derzeit angemeldeter User schroedi, mich auf dem Webinterface einloggen können.



Administration des Webservers Geben sie also in einem Browser die Zeile http://localhost:8080/admin ein und loggin sie sich dort mit dem User und dem Passwort ein, dass sie soeben in die Tomcat-user.xml eingetragen haben.

Wenn sie nun auf der linken Seite im Navigationsmenu unter User Definition -> User nachschauen, dann werden sie sehen, dass der so eben eingerichtet User dort vorhanden ist. Ebenso die anderen, die bereits standardmäßig von Tomcat angelegt wurden.

Sie haben zusätzlich auf der Tomcat Startseite den Eintrag Tomcat Manager Diesen erhalten sie ebenfalls über den Link der Startseite oder sie geben die URL http://localhost:8080/manager/html ein. Nach erfolgreicher Authentifizierung bekommen sie das folgende Oberfläche zu sehen.


Dort können sie über dem „Tomcat Web Application Manager“ auf die einzelnen Verzeichnisse zugreifen und diese bearbeiten, löschen, reloaden oder stoppen. Außerdem haben sie noch weitere Funktionen im Manager, die aber sicherlich in Sekundärliteratur beschrieben sind.



Troubleshooting und Sicherheit Java Exception Error Sie können den Tomcat bei Start anweisen, wie groß er seine Java Virtual Maschine (JVM) machen soll. In der Regel sollten die Anwendungen so programmiert sein, dass die Java Garbage Collection den Allokierten Speicher der JVM wieder frei gibt. Aber zahlreiche Erfahren haben gezeigt, dass das nicht immer sein muss und man im Falle eines Falles die JVM etwas vergrößern sollte. Die Symptome, woran sie erkennen können, dass sie ggf. ihre JVM vergrößen sollten könnten folgende sein: Ausfall der gesamten Website, die Website zeigt nur noch sog. Java exception errors an und der Webserver ist zwar verfügbar (Alle Prozesse sind aktiv) allerdings reagiert der Tomcat aufgrund seiner „überfüllten“ JVM nicht mehr auf Benutzereingaben. Auch nicht auf Shutdown.sh Regelmäßiges Abstürzen des Tomcats nach einem bestimmten Zeitraum


Sicherheit In Sachen Sicherheit sind sie als Administrator wieder gefragt, denn der Tomcat besitzt sog. Shutdown Ports mit denen sie ihren Server herunterfahren können oder gar auf die Administrations Oberfläche zugreifen können. Leider können dies auch andere Menschen. Hier sollten sie sich eine Möglichkeit einfallen lassen, mit der sie verhindern, dass andere Menschen ihren Server „ausschalten“

[Bearbeiten] Tomcat im Add-on modus

Um Tomcat als Servlet Container für Apache verwenden zu können, müssen zusätzlich die Komponenten

  • mod_jk/mod_jk2 oder
  • mod_proxy

unter Apache installiert werden.
Die Komponente mod_jk wird mittlerweile selten verwendet. Da es nicht mehr entwickelt wird rate ich davon ab, falls man das Tunneling das aller erste Mal machen möchte.
Nach eine erfolgreiche Installation von Tomcat sind connectors context in der Datei

   /tomcat_home/conf/server.xml

zu konfigurieren, also auch die standalone Funktionalität von Tomcat zu deaktivieren.
Das context Coyote connector http1.1 kann man auch deaktivieren, da es nicht mehr gebraucht wird.
Apache sorgt nun für die Kommunikation mit der Außenwelt. Näheres zu Tunneling von Apache und Tomcat findet man unter [3].

[Bearbeiten] Jetty

Jetty ist, ähnlich Tomcat, ein Servlet Container und Web-Application Server der genauso wie Tomcat dazu genutzt wird um Seiten auszuliefern. Zählt der Tomcat als Referenzimplementierung, so will Jetty in erster Linie ein performanter, zur Servlet-API 2.3. und Servlet-API 2.4. kompatibler Web-Application Server sein. Jetty ist in Java geschrieben, es existiert das Projekt JettyPlus welches einige für Java typische Frameworks und APIs integriert. Hierzu gehören ein Transaktionsmanagement, JMX, JNDI und einige mehr.

Zu Jetty seit Version 6 gehört die Integration der Java nio - Spezifikation welche es leicht ermöglicht, sehr viele Anfragen an einen Server gleichzeitig abzuhandeln, ohne alle Ressourcen auf dem Server immer zu blockieren (nio = Non blocking IO).

[Bearbeiten] Apache Geronimo

Apache Geronimo ist ein Web-Application Server der Apache Foundation (von der Apache Foundation kommt auch Servlet Container Tomcat). Geronimo ist ein modular aufgebauter Server, welcher die Implementierung des J2EE-Standards und die Integration in das bestehende Open-Source- und Java-basierte Umfeld der Apache Software Foundation darstellt. Am 5. Januar 2006 wurde die Version 1.0 des Servers freigegeben. Die WebSphere Application Server Community Edition (WAS CE) basiert auf Apache Geronimo.

[Bearbeiten] Weblogic Server

Der Weblogic Server ist ein Applikationsserver der Firma Bea, welcher als Middleware viele Komponenten abdeckt und zur Verfügung stellt. Er ist in Java geschrieben, hat viele in Java gebräuchlichen Frameworks und APIs integriert und bietet in der Programmierung die Möglichkeit, verschiedene Plattformen zusammenzuführen (zu "integrieren"). Er kann auch dazu genutzt werden, Seiten per zu generieren und auszuliefern.

[Bearbeiten] topasWorks Application Server

Der topasWorks Application Server ist eine auf Performanz und Stabilität optimierte Middleware und ein Web-Application Server, welcher in der Programmierung SOA-Prinzipien unterstützt. Er integriert CORBA-Server und Servlet Container (2.3 und 2.4) mit einer einfachen Konfiguration und Zugriffe auf diverse Protokolle, Datenbanken, Standards und Frameworks / APIs. Seine Größe liegt im deploy / dynamic reload von Teilen der Programmlogik.

[Bearbeiten] IBM WebSphere

WebSphere Application Server (WAS) ist ein Web-Applikations Server von IBM welcher unter dem Begriff WebSphere eine ganze Familie an Produkten zur Programmierung und Auslieferung von Seiten innehält. WebSphere hat (nicht zuletzt durch groß angelegte Werbeaktionen) den Begriff "Middleware" mit geprägt. Der Server soll in weiten Bereichen helfen E-Business - Applikationen zu integrieren, also sie zusammenzuführen. Der Web-Applikations Server WebSphere sowie die ihm zugehörigen Werkzeuge sind in Java geschrieben, die WebSphere Application Server Community Edition (WAS CE) basiert auf Apache Geronimo und ist frei verfügbar.

[Bearbeiten] Apple Webobjects

[Bearbeiten] Cocoon

[Bearbeiten] Struts

Struts ist ein Opensource Framework, welches eine Trennung von Layout, Logik und Inhalt erreichen möchte. Es versucht dabei das MVC model 2, mit hilfe von model 1 Komponenten um zusetzen.

Persönliche Werkzeuge