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.
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
Inzwischen hat sich die Bezeichnung Application Server für Java EE-Server (BEA WebLogic, IBM WebSphere, Oracle iAS, JBoss, Sun Java System Application 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 Java System Application 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.