Daten und datenintensive Anwendungen bestimmen immer mehr die digitale Ökonomie. Die Bereitstellung und Beschaffung von Daten ist in dieser Umgebung eine fundamentale Aufgabenstellung. Mit Apache Nutch und der Python-Bibliothek Scrapy existieren zwei Softwarepakete, die zur Datensammlung genutzt werden können.
In diesem Projekt soll ein Tool zur Verwaltung eines Scrapy-Clusters entwickelt werden. Mit Hilfe von Scrapyd können Scrapy-Server bereitgestellt werden, die über ein zentrales Management-Tool verwaltet werden sollen. Die Verteilung der Task auf die Nodes im Cluster soll anhand der Auslastung (Tasks, CPU, Memory) geregelt werden. Über ein Frontend soll die Verwaltung vereinfacht werden. Hierbei kann man sich an weiteren Scrapy-Paketen orientieren. Weiterhin soll das Erweitern und Vermindern des Clusters durch Nodes derart einfach gestaltet werden, dass der Ausfall von Nodes abgefangen werden kann. Beispiele für Feed-, XML- und HTML-Spider (Tasks) und deren Best Practices sollen zur Demonstration des Systems ausgearbeitet werden. Die Verwendung von Proxy-Systemen und sichere Datenleitungen runden das Projekt ab.
Agile Prinzipien sollten die Projektarbeit bestimmen. In regelmäßigen Treffen werden Arbeitsstände präsentiert und Retrospektiven durchgeführt. Die gesamte Projektarbeit soll in einem abschließenden Bericht dokumentiert werden.
Skills: Docker, Git, Python, JS, HTML, MySQL, MongoDB
Sub tasks:
• Planning & Analysis (e.g. use case analysis and documentation, technical research)
• Design (detailed UML-based modeling)
• Implementation, with consideration of maintenance phase (development)
• Final project paper