Technische Grundlagen

(Fast) alle meine Anwendungen auf diesen Seiten sind sogenannte “Web-Anwendungen”. Für Interessierte, die mit den Grundlagen von Web-Anwendungen nicht so vertraut sind, hier kurz das Wichtigste.

Web-Server

Eine Web-Anwendung hat eine Benutzer-Oberfläche, die in einem Web-Browser (z.B. Google Chrome, Firefox) angezeigt wird, analog zu Internet-Seiten. Die anzuzeigenden Inhalte und die im Browser ablaufenden Programmteile müssen dem Browser von einem Server geliefert werden. Dieser kann im Internet liegen, aber auch auf dem gleichen PC, an dem der Anwender arbeitet. Im letzteren Fall ist der Server einfach ein Programm, das auf dem PC im Hintergrund läuft und Anfragen des Browsers beantwortet.

  • Häufig benutzte Webserver-Programme sind z.B. Apache oder nginx.
  • Damit der lokale Server angesprochen wird, wird im Browser die Adresse mit localhost begonnen.
  • Außer der Server-Adresse wird manchmal noch ein Port mitgegeben (z.B. localhost:8080), damit mehrere Server auf einem Rechner sich nicht in die Quere kommen.

Auch Nicht-IT-Spezialisten können einen lokalen Web-Server einfach installieren und betreiben. Für die lokale Installation eines Apache-Webservers auf dem eigenen Rechner empfehle ich

  • XAMPP auf Windows- und Linux-Systemen
  • MAMP auf Mac-Systemen

Bei diesen Installationen ist auch schon dafür gesorgt, dass auf dem Web-Server PHP verfügbar ist (das ist die Programmiersprache, mit der meine Anwendungen auf dem Server arbeiten), und dass eine mySql-Datenbank mit dabei ist.

Datenbank

Meine Anwendungen speichern die Daten nicht einfach in Dateien, wie man sie von Dokumenten auf dem PC kennt, sondern in einer Datenbank. Dort sind die Daten in vielen Tabellen hinterlegt und zwischen den Tabellen miteinander verknüpft.

Ein solches Datenbank-System ist im Prinzip noch ein weiterer Server, mit dem das Programm vom Web-Server aus kommuniziert. Auf dem Datenbank-System können wiederum viele Datenbanken und in jeder Datenbank viele Tabellen gespeichert werden. Damit eine Anwendung in einer Datenbank die richtigen Daten findet, braucht die Anwendung folgende Informationen (hier mit typischen Beispiel Werten für BControl auf XAMPP oder MAMP):

  • Name des Datenbank-Servers … localhost
  • Name der Datenbank … bc
  • Name des Datenbank-Users … root
  • Passwort des Datenbank-Users … ??? (wie bei der Installation festgelegt, eventuell auch leer)

Wenn man XAMPP oder MAMP verwendet, muss man vor der Installation einer Anwendung auf dem Datenbank-System eine neue Datenbank (z.B. mit Namen bc für BControl) anlegen. Dies geschieht häufig über die Web-Anwendung phpMyAdmin, die mit XAMPP und MAMP mitgeliefert wird.

Docker

Docker ist eine Technik mit dem Ziel, das eigene Rechner-System nicht mit Komponenten-Installationen für spezielle Anwendungen zu überfrachten. Also z.B. für BControl keinen Web-Server und keine Datenbank installieren zu müssen, die sich dann unübersichtlich im System einnisten.

Dazu werden die für die Anwendung notwendigen Komponenten (z.B. Apache mit PHP) zusammen mit der Anwendung in einen sogenannten Container gepackt und dieser dann als “virtuelles System” ausgeführt. Man benötigt also nur die Docker-Installation und kann dann alle Varianten von (Web-)Servern, Datenbanken etc. in Containern laufen lassen, ohne sie auf dem eigenen System installieren zu müssen. Wenn man einen Container nicht mehr braucht, wird er gestoppt und ggf. gelöscht und hinterlässt definitiv keine Spuren auf dem eigenen Rechner.

Docker ist frei verfügbar, läuft allerdings nur auf Mac- und Linux-Systemen sowie auf Windows 10 Pro. Den Download gibt es nach (kostenloser) Registrierung bei docker.com.

Für den Betrieb von BControl auf Mac-Rechnern empfehle ich Docker, weil es sehr einfach zu installieren ist und einem das Anlegen der Datenbank und das zugehörige Anpassen der BControl-Konfiguration komplett erspart.

Web-Hosting

Um eine Anwendung im Internet mit vielen Leuten gemeinsam zu nutzen (z.B. G#), muss man sie auf einem Server mit permanenter Erreichbarkeit aus dem Internet betreiben. Am einfachsten geht das mit einem Web-Hoster, d.h. einem Dienstleister, der Platz und Rechenleistung auf seinen Servern dafür bereitstellt und am besten auch noch eine Domain-Registrierung mit anbietet (damit man eine eigene Internet-Adresse wie z.b. “www.meine-gemeinde.de” hat). Bewertungen und Preisvergleich von Web-Hostern findet man z.B. bei webhostlist.de.

Um eine Anwendung wie G# zu betreiben, benötigt man ein Webspace-Paket mit PHP-Unterstützung und mindestens einer mySQL-Datenbank. Eine Anwendungs-Installation stellt sich dann typischerweise so dar:

  • Hochladen der Anwendungsdateien in den Webspace mit FTP (File Transfer) z.B. mit FileZilla
  • Anlegen einer neuen mySQL-Datenbank mit der Webspace-Administration (sieht bei jedem Anbieter etwas anders aus)
  • Ausführen des Datenbank-Installations-Skripts – in der Regel über den im Webspace-Paket enthaltenen Zugang zu phpMyAdmin
  • Eintragen der Datenbank-Verbindungs-Parameter (siehe Abschnitt “Datenbank”) in der Konfigurations-Datei

Wichtig, wenn man irgendwas mit persönlichen Daten im Internet machen will: auf jeden Fall mit Verschlüsselung arbeiten, d.h. mit https. Viele Web-Hoster bieten das über Verschlüsselungs-Zertifikate von Let’s Encrypt kostenlos an. Nur damit ist sichergestellt, dass Zugangsdaten und persönliche Daten nicht einfach ausgespäht werden können.