# Frontend und Backend

Die Begriffe Frontend und Backend (aus dem Englischen entlehnt, für Vor- bzw. Über- und Unterbau, wörtlich vorderes und hinteres Ende; im Deutschen gebräuchlicher sind zudem der Oberbau und demgegenüber der Unterbau) werden in der Informationstechnik an verschiedenen Stellen in Verbindung mit einer Schichteneinteilung verwendet. Dabei ist typischerweise das Frontend näher am Benutzer, das Backend näher am System. In manchen Fällen ist diese Interpretation nicht anwendbar, es gilt aber prinzipiell, dass das Frontend näher an der Eingabe und das Backend näher an der Verarbeitung ist.

## Anwendungsbeispiele

Hier eine Aufstellung unterschiedlicher Verwendungen dabei werden die Begriffe nicht bei allen Einzelbedeutungen paarweise verwendet:
* Bei Client-Server-Anwendungen wird das auf dem Client laufende Programm als Frontend (also hier: Dienstnutzer), das auf dem Server laufende als Backend (hier: Dienstleister) bezeichnet.
* Bei Datenbank-Anwendungen wird die grafische Benutzeroberfläche, bestehend aus Formularen und Berichten, als Frontend, die Tabellen, Views, gespeicherten Prozeduren u. Ä., als Backend bezeichnet.
* Frontend bezeichnet, eng an obige Bedeutung angelehnt, auch grundsätzlich die Benutzeroberfläche, die z. B. in Form einer grafischen Benutzeroberfläche (englisch graphical user interface, kurz GUI) oder mittels Bildschirmmasken implementiert sein kann.
* In webbasierten Anwendungssystemen mit getrennten Nutzeroberflächen für reguläre Benutzer und Systemverwaltung bezeichnet der Begriff Frontend die der Öffentlichkeit zugänglichen Internetseiten, während der Begriff Backend für den nur dem eingeschränkten Benutzerkreis zugänglichen Bereich verwendet wird.
* Software wird häufig in Frontend und Backend unterteilt, wobei das Backend hardwarenäher ist. Zum Beispiel ist das KDE-basierte Programm K3b zum Brennen von CDs und DVDs ein reines Frontend, das verschiedene Konsolenprogramme (z. B. cdrkit oder MoviX) als Backend verwendet. Diese Einteilung kann dabei mehrschichtig sein, d. h. ein Backend kann auf niedrigerem Abstraktionsniveau selbst wieder in ein Frontend und ein Backend unterteilt sein (z. B. greift das von K3b verwendete growisofs selbst wiederum auf genisoimage zurück).
* Bei Compilern erfolgt die Übersetzung des Programmcodes in den Binärcode häufig in zwei Schritten unter Verwendung eines allgemeinen, von der Hardware unabhängigen Zwischencodes. Dabei bezeichnet man den ersten Übersetzungsschritt als Frontend (hier: Analyseeinheit), den zweiten als das Backend (hier: Syntheseeinheit).
* Beim Unix-Drucksystem CUPS wird das Modul, welches die aufbereiteten Rohdaten an den Drucker verschickt, als Backend bezeichnet. Es gibt z. B. Backends für parallele Schnittstelle, Netzwerk, USB usw. Als CUPS-Frontend wird eine grafische Oberfläche für CUPS bezeichnet.
* Bei der Sprachsynthese erfolgt die Spracherzeugung aus Text häufig über einen Zwischenschritt (eine symbolische phonetische Repräsentation), wobei wieder der erste Übersetzungsschritt das Frontend, der zweite das Backend darstellt.
* In Verbindung mit der IBM-proprietären Systems Network Architecture (SNA) wird der Kommunikations-Vorrechner (Communication Controller) als Frontend-Prozessor (FEP, Front End Processor) mit dem üblicherweise darin laufenden NCP (Network Control Program) bezeichnet.
* Bei Content-Management-Systemen (CMS) wird die Administrationsoberfläche zum Erstellen und Pflegen von Inhalten (Content) häufig auch als Backend bezeichnet, während die vom CMS generierte Webseite als Frontend angesehen wird.