Application Server
Ein Application Server ist ein Server in einem Computernetzwerk, auf dem eine spezielle Software-Applikation läuft.
Häufig meint man dabei Software-Applikationen mit einer drei- oder mehrschichtigen Architektur, wie sie z.B. vom J2EE- oder .NET-Framework vorgeschlagen werden. Ziel ist es, namensgebend für dreischichtige Architektur, die drei Aufgaben Präsentation, Geschäftslogik und Datenhaltung voneinander zu trennen. Die Präsentation wird von einem Client, gerne einem Thin Client, beispielsweise von einem Web-Browser übernommen, welcher eine Oberflächendefinition z.B. in HTML oder Swing darstellt. Dafür werden oft ASP, JSP/Servlets, oder ColdFusion verwendet. Die Geschäftslogik wird nicht selten in Geschäftsprozesse (Session Bean bei J2EE) und Geschäftsobjekte aufgeteilt (Entity Beans bei J2EE) und in einer Programmiersprache wie Java, VB.NET, C#, Perl, PHP realisiert. Für die Datenhaltung wird meist eine relationale Datenbank wie z.B. MySQL, DB2 oder MS SQL Server eingesetzt.
| Inhaltsverzeichnis |
Präsentationsschicht
Die Präsentationsschicht in einem Application Server-Szenario dient der Darstellung der Inhalte und der Entgegennahme von Benutzereingaben. Für die Darstellung der Inhalte existieren verschiedene Alternativen:
- HTML / XHTML, XML, XForms, SVG, SMIL und andere für das WWW geschaffene Sprachen. Diese Inhalte werden durch ASPs, JSPs/Servlets oder CGIs erzeugt.
- Swing, AWT, MFC, Qt, Gtk und andere Toolkits zur Entwicklung grafischer Benutzeroberflächen.
Für den Datenaustausch zwischen Präsentationsschicht und Geschäftslogikschicht gibt es ebenfalls mehrere Alternativen:
Geschäftslogikschicht
Die Geschäftslogikschicht realisiert das eigentliche Geschäftsmodell, indem die am Geschäftsmodell beteiligten Geschäftsobjekte und Geschäftsprozesse implementiert werden.
Weil Thin Clients mit Web-Browsern besonders beliebte Clients für Application Server sind, sind die meisten Application Server entweder Ergänzungen zu Webservern (z.B. Perl oder PHP für Apache oder IIS) oder enthalten einen Webserver (z.B. TomCat in JBoss, WebSphere oder WebLogic).
Für den Datenaustausch zwischen Geschäftslogikschicht und Datenhaltungsschicht werden Datenbankschnittstellen wie JDBC, ODBC oder Perl-DBI sowie alternativ der direkte Zugriff auf das DBMS (z.B. bei PHP) verwendet.
Datenhaltungsschicht
Trotz objektorientierter Programmierung wird auch heute noch in der Regel ein relationales DBMS eingesetzt, um die Datenhaltung für Application Server zu realisieren. Häufig besteht dabei eine 1:1-Abbildung von Geschäftsobjekt-Klassen auf Tabellen bzw. Geschäftsobjekt-Instanzen auf Tabellenzeilen (Datensätze). Diese Abbildungen wird als Object-Relational-Mapping bezeichnet.
Eigenschaften
Ein Application Server wird durch folgende Eigenschaften charakterisiert:
Anwendungen müssen für einen bestimmten Typ von Application Server entwickelt werden (Typen sind z.B. J2EE, .NET, SAP). Ein Application Server bietet eine Laufzeitumgebung für den Server-Teil einer Client-Server Anwendung (bei Web-Anwendungen ist der Web-Browser der Client-Teil der Anwendung) mit
- expliziten Eigenschaften:
- Kapselung von Datenquellen (standardisierte Adapter zu Datenbanken, Message Queueing, Directory-Diensten, Anwendungen)
- Interfaces zu höherwertigen Diensten: Asynchrone Kommunikation, Transaktionsverarbeitung, Datentransformation & Persistenz
- impliziten Eigenschaften:
- Skalierbarkeit, ohne die Anwendung modifizieren zu müssen
- Monitoring-, Kalibrierungs-, Logging- und Management-Funktionen zur Laufzeit
Inzwischen hat sich die Bezeichnung Application Server für J2EE-Server (BEA Weblogic, IBM WebSphere, Oracle iAS, JBoss, SUN One) durchgesetzt und wird synonym für die Komponente einer Web-Anwendung (z.B. Webmail bei GMX, Suche und Bieten bei EBay oder Amazon) verwendet, die dynamisch Seiten erzeugt, obwohl viele dieser Funktionen nicht den Funktionsumfang eines Application Server benötigen (ein Webserver mit Scripting würde ausreichen).
Eine Differenzierung ihrer Produkte führen die Hersteller über die nicht standardisierten Aspekte durch: Performance bei der Anbindung unterschiedlicher Datenquellen, Management-Funktionen für Cluster, Backup-Integration, Detaillierung des Monitoring, Priorisierung von Anwendungen.
Siehe auch
Weblinks
- J2EE / Java 2 Enterprise Edition (Englisch)
- Perl Homepage (Englisch)
- PHP Homepage (Englisch)
