Förderjahr 2020 / Project Call #15 / ProjektID: 5172 / Projekt: Resilionator
Mit viel Freude haben wir an der Arbeit von Resilionator begonnen! In diesem Blog-Eintrag möchten wir Ihnen einen Überblick über die bisherige und kommende Arbeit geben.
Im Projekt Resilionator möchten wir ein einfach zu verwendendes Open Source Tool für die Resilienz in Computernetzen bereitstellen. Wir haben nun knapp zwei Monate Projektlaufzeit hinter uns und möchten das Projekt bis Ende Juni abschließen. Seit Februar ist nun Herr Zabka als Entwickler im Projekt dabei, herzlich willkommen!
Bisher haben wir ein erstes User Interface erstellt, welches den Nutzern die manuelle Eingabe eines Netzwerks als Graphen ermöglicht, bzw. dieses aus einer Textdatei einzulesen. Dabei verwenden wir Python mit Tkinter für das Frontend, wodurch es mit Linux, Windows, und macOS kompatibel ist. In diesem können schon erste Ausfallsicherheiten evaluiert werden, z.B. Ausfälle von Knoten [z.B. Routern].
In diesem Screenshot sieht man die Problemfälle wenn etwa der rot markierte Knoten ausfällt: das Netzwerk zerfällt in mehrere Teile, und auch diese sind nicht gegen Ausfälle geschützt, d.h. ein zweiter Ausfall würde selbst diese Subnetze weiter partitionieren. Für die Berechnungen dazu im Backend nutzen wir Networkx in Python, sowie auch matplotlib für die Visualisierungen. Dieser Technologie-Stack hat sich bisher in unserem Projekt bewährt und wir planen ihn weiter zu nutzen.
Um das Netzwerk dann gegen Ausfälle resilient zu gestalten, haben wir eine erste Funktion eingeführt, die gegen Kantenausfälle schützt und dazu die Erweiterung mit neuen Verbindungen vorschlägt, siehe die grünen Kanten im Bild unten:
Der Schutz gegen Knotenausfälle ist ein schwierigeres mathematisches Problem, für das keine Standardlibraries vorliegen. Wir sind dabei in der Entwicklung einer kleinen Erweiterung, die diese schnell und effizient abbilden soll.
Für die nächsten weiteren Schritte möchten wir kurzfristig diese Knotenausfallvorschläge einfügen, sowie das Frontend verfeinern. Zur Hälfte der Projektlaufzeit, also im späten April, möchten wir dann die erste Version für Feedback aussenden.
Wir freuen uns schon auf den weiteren Verlauf!