Backend und Frontend be­zeich­nen zwei un­ab­hän­gi­ge, sich ge­gen­sei­tig er­gän­zen­de Ebenen einer Software. Stellt man sich eine Software als Automobil vor, umfasst das Backend Fahr­ge­stell, Antrieb, Elektrik, Bremsen und weitere me­cha­ni­sche Kom­po­nen­ten. Im Gegensatz dazu ent­sprä­che das Frontend in dieser Analogie dem Innenraum mit Lenkrad, Ar­ma­tu­ren­brett und weiteren Bedien- und Kom­fort­funk­tio­nen.

De­fi­ni­ti­on

Das Backend ist der von Nut­ze­rin­nen und Nutzern ab­ge­schirm­te, im Hin­ter­grund liegende Bereich einer Website oder App. Die Spei­che­rung und Ver­ar­bei­tung von Daten findet im Backend statt.

Was macht ein Backend aus?

Der Begriff „Back-End“ stammt aus dem Eng­li­schen und bedeutet in etwa „rück­wär­ti­ger Bereich“, oder „Unterbau“. Dort geschieht alles, was hinter den Kulissen abläuft.

Als Backend be­zeich­net man im Sprach­ge­brauch zwei ver­schie­de­ne Dinge:

  1. Die Ebene der einer Software, auf der Da­ten­ver­ar­bei­tung statt­fin­det.
  2. Ein von regulären Nutzern ab­ge­schirm­ter Ad­mi­nis­tra­ti­ons-Bereich.

Eine Software ist ver­gleich­bar mit einer Maschine für Da­ten­ver­ar­bei­tung. Es laufen Be­rech­nun­gen ab, deren Er­geb­nis­se den Fortlauf der Software bestimmen. Daten werden erzeugt und ge­spei­chert, wobei ins­be­son­de­re Da­ten­ban­ken wie MongoDB und MySQL zum Einsatz kommen. All dies läuft im Hin­ter­grund ab.

Anders als beim Frontend, welches auf den mensch­li­chen Nutzer zu­ge­schnit­ten ist, ori­en­tiert sich ein Backend an tech­ni­schen An­for­de­run­gen. Im Fokus stehen Effizienz und Per­for­manz, sowie Ska­lier­bar­keit und Si­cher­heit.

Dem Ent­wick­lungs-Grundsatz „Se­pa­ra­ti­on of concerns“, zu Deutsch, „Trennung der Belange“ folgend, werden Backend und Frontend als un­ab­hän­gi­ge Ebenen rea­li­siert. Für eine voll funk­ti­ons­fä­hi­ge Software werden immer beide Ebenen benötigt. Ein Backend ohne Frontend ist wie eine Maschine ohne Knöpfe.

Wer arbeitet am Backend?

Es lassen sich zwei un­ter­schied­li­che Nut­zungs­grup­pen bei der Arbeit am Backend iden­ti­fi­zie­ren:

  1. Ad­mi­nis­tra­to­rin­nen und Ad­mi­nis­tra­to­ren, welche am Backend ein­ge­loggt ein System verwalten.
  2. Backend-Ent­wick­le­rin­nen und -Ent­wick­ler, die Backends bauen, pflegen und wei­ter­ent­wi­ckeln.

Schauen wir uns für beide Gruppen im Detail an, wie diese am Backend arbeiten.

Wie arbeiten Admins am Backend?

Leicht erklären lässt sich die Arbeit am Backend am Beispiel des beliebten CMS WordPress. Über den WordPress-Admin-Login gelangt man in das auch als WordPress-Dashboard bekannten Backend des CMS. Dort steht Ihnen eine eigene Ober­flä­che zum Erstellen, Be­ar­bei­ten und Löschen von Inhalten zur Verfügung.

Neben diesen klas­si­schen CRUD-Ope­ra­tio­nen verwalten WordPress-Admins im Backend WordPress Be­nut­zer­rol­len und nutzen z.B. WordPress-Plugins zur Website-Sicherung und für andere ad­mi­nis­tra­ti­ve Aufgaben.

Hinweis

Obwohl als „Backend“ be­zeich­net, handelt sich beim WordPress-Dashboard um eine grafische Be­nut­zer­ober­flä­che. Der Übergang zwischen Backen und Frontend ist hier also fließend.

Wie arbeiten Ent­wick­le­rin­nen und Ent­wick­ler am Backend?

Anders als Admins, sind Backend-Ent­wick­le­rin­nen und -Ent­wick­ler nicht am Backend an­ge­mel­det, um ihre Arbeiten durch­zu­füh­ren. Vielmehr arbeiten sie in einer lokalen Ent­wick­lungs-Umgebung. Dort schreiben sie Quellcode, für die Aus­füh­rung auf dem Backend-Server bzw. -Container.

Nach meist au­to­ma­ti­sier­ten Tests wird mithilfe von Con­ti­nuous-In­te­gra­ti­on-Tools Code als De­ploy­ment auf den Server geladen. Al­ter­na­tiv kommen Plugin-Lösungen zum Einsatz; so werden WordPress-Plugins ent­wi­ckelt, welche zwar im Backend laufen, sich jedoch von Admins verwalten lassen.

Anders als ein Frontend, welches auf dem Client aus­ge­führt wird, läuft das Backend auf dem Server. In der Regel kommt für Ent­wick­lung und Aus­füh­rung ein „Web-Stack“ genannter Stapel von Tech­no­lo­gien zum Einsatz. Zu den be­kann­tes­ten Web-Stacks zählen LAMP und MEAN. Es exis­tie­ren jedoch noch viele andere.

Ein Web-Stack umfasst ein Be­triebs­sys­tem bzw. einen Container als Aus­füh­rungs­um­ge­bung. Innerhalb dieser läuft ein Server-Programm, welches kon­ti­nu­ier­lich Anfragen ent­ge­gen­nimmt und be­ant­wor­tet. Dazu werden Skripte in einer Web-Pro­gram­mier­spra­che aus­ge­führt, die als Bin­de­glied zwischen Server und Datenbank dient:

Web-Stack Aus­füh­rungs­um­ge­bung Server Datenbank Sprache
LAMP Linux Apache MySQL PHP
MEAN Node.js Express.js MongoDB Angular (Ja­va­Script)

Backend-Ent­wick­ler nutzen häufig Web-Frame­works, um Abruf, Ver­ar­bei­tung und Spei­che­rung von Daten zu ver­ein­fa­chen. Wir stellen die wich­tigs­ten Backend-Frame­works im Folgenden über­sichts­hal­ber dar.

Was sind die wich­tigs­ten Backend-Frame­works?

Frame­works ver­ein­fa­chen die Arbeit bei der Backend-Ent­wick­lung. So müssen immer wieder benötigte Prozesse wie User-Au­then­ti­fi­zie­rung und die Anbindung an eine Datenbank nicht jedes Mal von Grund auf neu ge­schrie­ben werden. Auch Mehr­spra­chig­keit und eine Template-Sprache zur Erzeugung des ans Frontend aus­ge­lie­fer­ten HTML-Codes sind oft Be­stand­teil von Backend-Frame­works.

Welches spe­zi­fi­sche Backend-Framework zum Einsatz kommt, hängt stark von der ein­ge­setz­ten Pro­gram­mier-Umgebung bzw. Pro­gram­mier­spra­che ab. Die am häu­figs­ten ver­wen­de­ten Sprachen sind PHP oder Python, Ruby, sowie Ja­va­Script und Java. Schauen wir uns die be­lieb­tes­ten Backend-Frame­works für diese Sprachen an.

Symfony und Laravel: topp Backend-Frame­works in PHP

Bei Symfony und Laravel handelt es sich um zwei der am weitesten ver­brei­te­ten Backend-Frame­works. Mit beiden lassen sich an­spruchs­vol­le Web­an­wen­dun­gen pro­gram­mie­ren, ohne bei null anfangen zu müssen. Dabei gilt Laravel als einfacher und schneller zu erlernen, Symfony als mächtiger und flexibler.

Beide Systeme sind berühmt für ihre modulare Bauweise. So sind aus dem PHP-Framework Symfony viele nützliche Web-Tech­no­lo­gien her­vor­ge­gan­gen. Auch der Kon­kur­rent Laravel hat mit seinen Laravel Blade-Templates zur Ent­wick­lung bei­getra­gen.

Tipp

Lernen Sie, mit PHP selber Web­an­wen­dun­gen zu pro­gram­mie­ren. Mit unserem großen PHP-Tutorial.

Ruby on Rails: der Klassiker unter den MVC Backend-Frame­works

Das Backend-Framework Ruby on Rails (RoR) galt bei seinem Er­schei­nen als re­vo­lu­tio­när und verhalf der Skript­spra­che Ruby zu ihrem initialen Siegeszug. Wohl kein Framework legte den Fokus so stark auf Pro­duk­ti­vi­tät und Zu­frie­den­heit der Ent­wick­ler. RoR machte den Model-View-Con­trol­ler (MVC)-Ansatz populär und ebnete damit den Weg für viele nach­fol­gen­de Backend-Frame­works.

Mit dem Django Backend-Framework in Python pro­gram­mie­ren

Bei Python handelt es sich um eine der klas­si­schen Web-Skript­spra­chen. Mit Django steht ein mächtiges Backend-Framework zum schnellen Pro­gram­mie­ren neuer Web­an­wen­dun­gen zur Verfügung. Django folgt dem Model-View-Con­trol­ler Muster und hat eine eigene Template-Engine mit an Bord.

Tipp

Lernen Sie mit unserem Python-Tutorial die Grund­la­gen der Skript­spra­che.

Mit Express und Node.js Web-Ap­pli­ka­tio­nen in Ja­va­Script schreiben

Tra­di­tio­nell wurde bei Pro­gram­mier­spra­chen zwischen Frontend- und Backend-Sprachen un­ter­schie­den. Den Frontend Sprachen HTML, Ja­va­Script und CSS standen die Backend-Sprachen PHP, Python, Perl und Ruby gegenüber. Mit dem Er­schei­nen der Ja­va­Script-Lauf­zeit­um­ge­bung Node.js kam es zum Umbruch. Denn nun ließ sich Ja­va­Script sowohl im Frontend als auch auf dem Backend einsetzen.

Node.js schafft die Grundlage zum Schreiben von Web-Ap­pli­ka­tio­nen in Ja­va­Script. Darauf auf­set­zend kommt in der Regel ein Web-Framework wie Express zum Einsatz. Berühmt wurde diese Kom­bi­na­ti­on als Teil der MEAN-Stacks mit MongoDB und dem Angular Frontend-Framework.

Web­an­wen­dun­gen in Java schreiben: mit dem Spring Backend-Framework

An sich gilt Java nicht als Sprache zum Ver­wirk­li­chen moderner Web­an­wen­dun­gen. Mit dem Spring-Framework steht jedoch eine stabile Basis für die Ent­wick­lung komplexer Java-Ap­pli­ka­tio­nen zur Verfügung. Neuere Ent­wick­lun­gen, wie Quarkus er­mög­li­chen die per­for­man­te Aus­füh­rung in Con­tai­nern.

Tipp

Lernen Sie, eigene Java-Apps mit dem Spring-Framework zu erstellen. Mit unserem Spring Boot Tutorial.

Zum Hauptmenü