In diesem Semester würde ich mich gerne mit Systemintegration und Dokumentenverwaltung beschäftigen. Dazu gehört die Untersuchung von Werkzeugen wie Libre* und MSOffice, bzw. der entsprechenden Formate und wie sie sich in einer serverbasierten Infrastruktur zu Abbildung von Prozessen einsetzen lassen.
In diesem Semester werden wir uns mit den Grundlagen von vernetzten Systemen beschäftigen - dazu gehören die Grundlagen von Rechnernetzen insgesamt aber auch die für moderne Infrastrukturen notwendigen Instrumente wie Docker und virtuelle Maschinen. Automatisierung spielt natürlich wieder eine besondere Rolle.
Gemeinsam mit Karin Vosseberg und Ulrike Erb führen wir in dieser Veranstaltung wieder die im ersten Semester Studierenden in die Grundlagen der Informatik anhand unserer Infrastruktur um hopper und shannon ein. Gelernt werden dabei neben den notwendigen Werkzeugen wie bash, vim und cgi grundlegende Denkweisen der Informatik von Listen über Bäume und deren typsche Anwendungen.
Das Programmierlabor am Mittwoch von 9:45 bis 11:45 in Raum Z2330 werde ich betreuen.
Erstmalig wird in diesem Semester die Vorlesung im zweiten Semester - also direkt im Anschluss an STEP - angeboten. Es wird erwartet, dass die Inhalte von STEP (bash, cgi, http, html, vim) bekannt sind.
Erstmalig wird in diesem Semester die Vorlesung Infrastruktur für Informatik-Studierende angeboten. Inhaltlich wird sie auf den Inhalten des STEP-Projektes aufsetzen und sich mit den technischen Grundlagen einer vernetzten Infrastruktur beschäftigen. Es wird erwartet, dass die Inhalte von STEP (bash, cgi, http, html, vim) bekannt sind.
Wie im vergangenen Jahr werden die Studierenden im ersten Semester mit einem konkreten Projekt in die Informatik/Wirtschaftsinformatik von Karin Vosseberg, Ulrike Erb und mir eingeführt.
Dieses Jahr werden wir mit AIS experimentieren: Die in der Gegend um Bremerhaven fahrenden Schiffe senden zur Kollisionsvermeidung regelmäßig Ihre Positionsdaten aus. Mit einem Raspberry und einem DVBT-Empfänger nehmen wir die Daten auf und stellen Sie als Datenstrom über TCP/IP zur Verfügung, so dass die Studierenden diese innerhalb der Infrastruktur mit grundlegenden Werkzeugen wie netcat auslesen und verarbeiten können. Dabei lernen Sie den Umgang mit der bash, html/http, git und vielen weiteren Werkzeugen, die sie im Rahmen des Studiums benötigen werden.
In dieser Veranstaltung wollen wir das automatisierte Erstellen von Modulhandbüchern für unterschiedliche Studiengänge einer gesamten Hochschule mit git, LaTeX und Webschnittstelle untersuchen. Der Fokus liegt auf Automatisierung, Codequalität durch Kompaktheit und Monitoring.
Von besonderer Bedeutung werden Automatisierungsmöglichkeiten mit git-Hooks sein. Softwareentwickler*innen kennen oft nur github als externen Dienst. Dass das Werkzeug git hinter der Bühne Ereignisse abfängt und wir uns mit Scripten in die Prozesskette einhängen können, ist oft nicht bekannt und so werden schwergewichtige Installationen großer, zusätzlicher Software bevorzugt, wo oft ein kleines Script verstehbarer ist und weit weniger Wartungsaufwand bedeutet.
In diesem Jahr wollen wir uns vor allem mit Microservices auseinandersetzen. Wir bauen gemeinsam in der Infrastruktur eine auf docker basierende Umgebung auf und vergleichen Komplexität und Verhalten unterschiedlicher Architekturen. Wie fast immer bei mir wird der Fokus auf Automatisierung gelegt. Anhand von zahlreichen Beispielen aus der Praxis werden gemeinsam gute, stabile und robuste Lösungen für alltägliche Services in der IT diskutiert und gemeinsam umgesetzt.
Typische Aufgabenstellung: Ein Unternehmen bietet seinen Kunden eine Webschnittstelle zum automatisierten Hochladen von Lebensmittel-Prüfergebnissen. Beim Hochladen muss gesichert werden, dass ein Ergebnis auf keinen Fall mehrfach in den Datenpool aufgenommen werden darf. Zwei Ergebnisse sind gleich, wenn die Inhalte der Dateien byteweise exakt gleich sind. Bei der bisherigen Lösung werden alle Ergebnis tagsüber entgegengenommen und nachts wird in einem cron-Job für jedes eingegangene Ergebnis ein Vergleich mit allen vorliegenden mittels des Programmes cmp durchgeführt. Da der Datenbestand mittlerweile ca 50000 Sätze zu je ca 1000000 Zeichen enthält, beginnt die nächtliche Bearbeitungsdauer die Grenzen des Vertretbaren zu sprengen. Die aktuelle Lösung der nächtlichen Abarbeitung sieht skizziert wie folgt aus:
#!/bin/bash
for infile in /opt/inqueue/*
do
isdoublet=false
for element in /opt/data/*
do
if cmp $infile $element
then
cp $infile /opt/doublet/
isdoublet=true
fi
done
if [ $isdoublet = false ]
then
cp $infile /opt/data/
fi
done
rm /opt/inqueue/*
Schätzen Sie die Bearbeitungsdauer auf einem Server mit einer Ausstattung ihrer Wahl bei täglich 100 neu ankommenden Datensätzen. Wie könnte eine deutliche Beschleunigung bei weniger Ressourcenverbrauch erreicht werden? Hilft eine andere Programmiersprache als in diesem Fall die Bash? Was würde Parallelisierung bringen und worauf wäre zu achten? Was ist, wenn sich im kommenden Jahr die erwartete Last um den Faktor 10 erhöht (500000 Datensätze a 1000000 Byte und 1000 tägliche neue Datensätze)?