Microsoft Application Server
Ein Application Server ist ein Server in einem Computernetzwerk, auf dem spezielle Software-Applikationen ausgeführt werden.
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 Webbrowser übernommen, welcher eine Oberflächendefinition z. B. in HTML oder Swing darstellt. Dafür werden oft ASP, JSP/Servlets, PHP 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, Oracle, DB2 oder MS SQL-Server eingesetzt.
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 für das WWW geschaffene Sprachen
- Inhalte werden durch ASPs, JSPs/Servlets, PHP-Programme oder CGIs erzeugt
- Swing, AWT, MFC, Qt, Gtk
- andere Toolkits zur Entwicklung grafischer Benutzeroberflächen
Für den Datenaustausch zwischen Präsentationsschicht und Geschäftslogikschicht gibt es ebenfalls mehrere Alternativen:
- SOAP, XML-RPC
- Java-RMI
- CORBA/IIOP
- DCOM
- SUN RPC (Remote Procedure Call)
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 Webanwendungen ist der Webbrowser 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 Lycos, 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.