- Application-Server
-
Ein Anwendungsserver (engl. application server) [ˌæplɪˈkeɪʃn̩ ˈsɝːvɚ] ist im Allgemeinen ein Server in einem Computernetzwerk, auf dem Anwendungsprogramme (applications) ausgeführt werden. Im engeren Sinne bezeichnet der Begriff Application Server eine Software, die als Ablaufumgebung für Anwendungsprogramme spezielle Dienste zur Verfügung stellt, wie beispielsweise Transaktionen, Authentifizierung oder den Zugriff auf Verzeichnisdienste und Datenbanken über definierte Schnittstellen.
Häufig meint man dabei Anwendungsprogramme mit einer drei- oder mehrschichtigen Architektur, wie sie z. B. vom Java EE- 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.
Eigenschaften
Ein Anwendungsserver wird durch folgende Eigenschaften charakterisiert:
Anwendungen müssen für einen bestimmten Typ von Anwendungsserver entwickelt werden (Typen sind z. B. Java EE, .NET, SAP Web Application Server). Ein Anwendungsserver 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)
- Schnittstellen zu höherwertigen Diensten: Asynchrone Kommunikation, Transaktionsverarbeitung, Datentransformation und Persistenz
- impliziten Eigenschaften:
- Skalierbarkeit, ohne die Anwendung modifizieren zu müssen
- Monitoring-, Kalibrierungs-, Logging- und Management-Funktionen zur Laufzeit
- Software Lifecycle Management (Delivery, Deployment, Patches, Upgrades)
Inzwischen hat sich die Bezeichnung Application Server für Java EE-Server (Oracle WebLogic, IBM WebSphere, JBoss, Sun Glassfish Enterprise Server) 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 Anwendungsservers benötigen (ein Webserver mit Scripting würde ausreichen).
Bemerkenswert sind professionelle Serverprodukte, die ohne Lizenzkosten betrieben werden können, z. B. Glassfish (kommerzielle Variante: Sun Glassfish Enterprise Server), Geronimo (kommerzielle Variante: IBM Websphere) und zahlreiche Enterprise Komponenten wie z. B. Oracles JPA-Implementierung Toplink Essential und diverse ESB-Implementierungen. Die meisten produktiven Instanzen von Open-Source-Produkten waren 2006 von der JBoss-Produktfamilie im Einsatz, für die auch professionelle technische Unterstützung verfügbar ist.
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. Weiter werden umfangreiche Frameworks und Lösungen rund um die Kernfunktionalitäten angeboten.
Manche dieser Angebote sind als interessanter Vorteil zu werten, andere führen zu hohen Folgekosten bei der Migration zu anderen Systemumgebungen. Bei der Beurteilung sind immer die tatsächlichen Anforderungen zu berücksichtigen, eine generelle Wertung ist in der Praxis nicht möglich.
Siehe auch
- Apache Geronimo
- BEA Weblogic
- ColdFusion
- GlassFish
- GNUstepWeb
- IBM Websphere
- JOnAS
- JBoss Application Server
- Oracle Application Server
- SAP NetWeaver Application Server
- Schichtenarchitektur
- Sun Java Application Server
- Apple WebObjects
- Zope
Weblinks
- www.theserverside.com/reviews/matrix.tss Liste der Java-Application-Server mit den zentralen Merkmalen (englisch)
- expliziten Eigenschaften:
Wikimedia Foundation.