Anwendungsserver
# Anwendungsserver

Ein Anwendungsserver oder Applikationsserver, englisch Application Server [ˌæplɪˈkeɪʃn̩ ˈsɝːvɚ], ist im Allgemeinen ein Server in einem Computernetzwerk, der Anwendungsprogramme ausführt. Im engeren Sinne bezeichnet der Begriff eine Software, die spezielle Dienste zur Verfügung stellt, wie beispielsweise Transaktionen, Authentifizierung oder den Zugriff auf Verzeichnisdienste, Webservices und Datenbanken über definierte Schnittstellen. In Bezug mit Java steht die Bezeichnung Application Server meist für ein Framework, das die Entwicklung von Webanwendungen erleichtert und einen Server bereitstellt.

Gängig und von wesentlicher Bedeutung sind Anwendungsserver beispielsweise in Geoinformationssystemen, wo sie die angefragten Landkarten erzeugen und auch Tracking in Echtzeit ermöglichen. Dass eine Routenplanung durch Eingabe von Start und Ziel im Browser unverzüglich ein qualifiziertes Resultat erbringt, beruht nicht auf Fähigkeiten des Clients, sondern auf umfangreichen individuellen Ermittlungen durch den Anwendungsserver, der nur sein Ergebnis liefert.

Ein Anwendungsserver bietet eine Laufzeitumgebung für den Server-Teil einer Client-Server Anwendung. Zum Beispiel stellt bei einer Webanwendung der Webbrowser den Client-Teil der Anwendung dar.

## Generelle Eigenschaften

Bei einem Anwendungsserver gelten generell explizite und implizite Eigenschaften:

expliziten Eigenschaften:

* Kapselung von Datenquellen (standardisierte Adapter zu Datenbanken, Message Queueing, Verzeichnis-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)

## Spezielle Eigenschaften

Es gibt viele verschiedene Anwendungsserver, die sich durch die speziellen Eigenschaften markanter unterscheiden als bei den generellen Eigenschaften.

Viele Anwendungen müssen für einen bestimmten Typ von Anwendungsserver entwickelt werden (Typen sind z. B. Jakarta EE, .Net-Framework, SAP Web Application Server). Im Bereich der Anwendungsserver, speziell bei Jakarta-EE-Servern, ist der hohe Anteil an Open-Source-Produkten auffällig.

