Dipl. Informatiker/in HF Fachrichtung Applikation

Dependency Scan

Webapplikation zum Auslesen eines Abhängigkeitsgraphen

Ein Softwarepaket basiert auf etlichen Abhängigkeiten zu Softwareartefakten. Visualisiert bilden all diese aufeinander abhängigen Artefakte einen Graphen. Skaliert man diesen in einem grossen Umfeld, wird der Graph unüberschaubar gross. Der Graph wächst indem jedes der Artefakte inkrementell eine neue Version erhält, was zu einem neuen Knoten im Graphen führt. In der Firma Ypsomed bestand der Wunsch, solch einen Graphen auslesen zu können. Die Hauptschwierigkeit liegt darin, von einem gegebenen Softwareartefakt alle Abhängigkeiten auszulesen. Dies hat zwei Richtungen: • gegen unten – Abhängigkeiten dieses Artefaktes • gegen oben – in welchen Softwarepaketen dieses Artefakt abhängig ist Gegen jede Seite hat es eine unbestimmte Anzahl n-Ebenen an Abhängigkeiten, welche ausgelesen werden sollen.

15. November 2020
Michael Erb

Ausgangslage

Die Ypsomed Holding AG ist ein Schweizer Medizinal Technologie Unternehmen mit rund 1600 Mitarbeitenden. Die Ypsomed ist auf die Entwicklung und Herstellung von Kundenspezifischen Injektions- und Infusionssystemen für die Selbstmedikation spezialisiert. 

Von einem einst mehrheitlich, mechanischen Unternehmen verändert sich durch die Digitalisierung einen Grossteil der herkömmlichen Produktepalette. Etablierte Systeme müssen neu durchdacht werden. Medizinprodukte sind in der Lage Therapiedaten zu sammeln oder durch eine App gesteuert zu werden. In diesem Zusammenhang verändert sich das Unternehmen laufend in ein mehr softwaregestütztes Unternehmen mit grossem Wachstum im Bereich Software.

In der Embedded Softareentwicklung wurde ein Projekt gestartet, mit dem Ziel eine State-of-the-Art Infrastruktur zur Implementation von Software aufzubauen. Neu werden Softwareartefakte zentral auf einem lokalen Server gehostet. Serverseitig kommt dazu JFrog Artifactory als Repository Manager zum Hosten von vorkompillierten Softwareartefakten zum Einsatz. Clientseitig wird Conan Package Manager zum Erstellen und Verteilen von Binärdateien verwendet. Conan schreibt dabei «Rezepte» mit allen Abhängigkeiten der verschiedenen Softwarepakete. 


Zielsetzung

Mit Conan lässt sich das "Rezept" eines Softwarepakets auslesen. Dies beinhaltet jedoch nur die "Zutaten" (Abhängigkeiten) für das jeweilige Softwarepaket. Im Graph sind das alle Abhängigkeiten gegen unten, vom jeweiligen Softwarepaket aus gesehen.

In der Ypsomed kam der Wunsch auf, eine Webapplikation zu entwickeln, die Abhängigkeiten im Graphen gegen unten, und auch gegen oben auszulesen. Das heisst, welche Abhängigkeiten hat ein Artefakt (gegen unten im Graph), und in welchen Softwarepaketen ist dieses Paket abhängig (gegen oben im Graph). Zusätzlich soll die Applikation mit weiteren Funktionalitäten ausgestattet werden.

Weg zum Ziel

In den Anfangsphasen wurde das Projekt geplant und konzeptioniert. Dabei wurden drei Technologien zur Umsetzung evaluiert - für das Backend wird das Framework Spring Boot verwendet, für das Frontend Angular und Neo4j wird als Datenbank eingesetzt.

Neo4j ist eine Graphdatenbank, die das Rückgrat der Applikation bildet. Eine Graphdatenbank nutzt die mathematische Graphentheorie um Daten zu speichern. Dadurch lassen sich stark vernetzte Informationen speichern und komplexe Abfragen performant ausführen.


Besondere Herausforderungen

Eine der grössten Herausforderungen war das Konzept und die Implementation eines automatisierten Speicherungsprozess der Softwareartefakte in die Datenbank. Dabei wird während einer automatisierten Build-Pipeline ein Prozess ausgelöst, der die Information eines Softwarepakets an das Backend sendet. Diese Informationen sind nur als einzelne, unbestimmte Anzahl n-"Puzzlestücke" vorhanden, und werden im Backend zu einem Graphen zusammengesetzt, und anschliessend im vorhandenen Graphen in der Datenbank integriert. 


Docker

Die ganze Applikation wird in Docker Containern entwickelt, gebuildet, getestet und schlussendlich ausgeführt. Dies bildet für jeden Anwendungsfall die gleiche isolierte Umgebung.

Dafür wurden jeweils drei Docker Compose Umgebungen gebaut - eines für die lokale Backend Entwicklung, eines für die lokale Frontend Entwicklung, und eines für das produktive System in welchem alle drei Container integriert sind (Frontend, Backend, Datenbank).


Retrospektive

Bis anhin habe ich noch nie eine komplette Applikation in dieser Grösse Entwickelt. Die Diplomarbeit ist für mich wie ein Puzzle, in dem die gelernten Module des Studiums zu einem Bild zusammengesetzt wurden. Die Arbeit war für mich dementsprechend enorm lehrreich und eine gute Erfahrung für die Zukunft. 

Auch habe ich negative Seiten erfahren und kam in gewissen Phasen der Arbeit mit dem Ausmass des Projektes an meine Grenzen.

Rückblickend bin ich jedoch stolz auf mich selbst, diese Applikation umgesetzt zu haben. Sie bildet eine gute Basis auf der weiterhin aufgebaut werden kann. Die Applikation bringt der Firma einen grossen Mehrwert.

Portrait

Michael Erb

DevOps Engineer bei Ypsomed Holding AG


michael_erb@bluewin.ch


Xing | Linkedin

Dokumente

Hier können Sie den Lebenslauf von mir herunterladen.

Weiterbildung neben Beruf und Freizeit

Gratis E-Book mit 10 Tipps zur Work-Life-Learn-Balance

Weiterbildung neben Beruf und Freizeit – schaffe ich das?

10 Tipps zur Work-Life-Learn-Balance

Eine Weiterbildung beansprucht Zeit. Deshalb auf Freunde, Familie und Hobbies zu verzichten, wäre falsch.

In diesem E-Book erfährst du:

  • wie du deine Zeit effizienter nutzt
  • wie du dich trotz Weiterbildung genügend Freizeit bewahrst
  • wie sich Beruf, Weiterbildung und Freizeit gegenseitig ergänzen statt konkurrenzieren können

Tipps aus dem Inhalt

  • TIPP 1: Gestalte deine Arbeit so flexibel wie möglich!
  • TIPP 2: Beziehe Arbeitgeber sowie Kollegen und Kolleginnen in deine Weiterbildungspläne mit ein!
  • TIPP 3: Arbeite effizienter und effektiver mit Zielorientierung!
  • TIPP 4: Entwickle deinen idealen Lernrhythmus!
  • TIPP 5: Lerne mit System und festen Strukturen!
  • TIPP 6: Schaffe genug Ausgleich und Entspannung!
  • TIPP 7: Binde deine/n Partner/in, deine Familie und externe Hilfen in deine Planung ein!
  • TIPP 8: Belohne dich für deine Erfolge!
  • TIPP 9: Mach eine Zeitinventur!
  • TIPP 10: Erstelle eine Zeitplanung aller drei Bereiche!

Leider ist ein Fehler aufgetreten. Bitte versuche es erneut oder nimm mit uns direkt Kontakt auf.

Aktuelles Studienprogramm

Alles Wissenswerte zur Weiterbildung in einem PDF zusammengefasst.

Studienprogramm  herunterladen

Alles Wissenswerte zu deiner Weiterbildung in einem PDF zusammengefasst

  • Detaillierter Lehrplan zu allen Studiengängen
  • Alle wichtigen Hintergrundinfos zu Ausbildungszielen, Teilnehmerkreisen, Aufnahmebedingungen und weiterführenden Studiengängen

Leider ist ein Fehler aufgetreten. Bitte versuche es erneut oder nimm mit uns direkt Kontakt auf.

Gratis E-Book für dich

Weiterbildung neben Beruf und Freizeit - schaffe ich das?

Eine Weiterbildung beansprucht Zeit. Deshalb auf Freunde, Familie und Hobbies zu verzichten, muss nicht sein.

Lies jetzt unser E-Book mit 10 wertvollen Tipps zur Work-Life-Learn-Balance.

Weiterbildung neben Beruf und Freizeit – schaffe ich das?

10 Tipps zur Work-Life-Learn-Balance

Eine Weiterbildung beansprucht Zeit. Deshalb auf Freunde, Familie und Hobbies zu verzichten, wäre falsch.

In diesem E-Book erfährst du:

  • wie du deine Zeit effizienter nutzt
  • wie du dich trotz Weiterbildung genügend Freizeit bewahrst
  • wie sich Beruf, Weiterbildung und Freizeit gegenseitig ergänzen statt konkurrenzieren können

Tipps aus dem Inhalt

  • TIPP 1: Gestalte deine Arbeit so flexibel wie möglich!
  • TIPP 2: Beziehe Arbeitgeber sowie Kollegen und Kolleginnen in deine Weiterbildungspläne mit ein!
  • TIPP 3: Arbeite effizienter und effektiver mit Zielorientierung!
  • TIPP 4: Entwickle deinen idealen Lernrhythmus!
  • TIPP 5: Lerne mit System und festen Strukturen!
  • TIPP 6: Schaffe genug Ausgleich und Entspannung!
  • TIPP 7: Binde deine/n Partner/in, deine Familie und externe Hilfen in deine Planung ein!
  • TIPP 8: Belohne dich für deine Erfolge!
  • TIPP 9: Mach eine Zeitinventur!
  • TIPP 10: Erstelle eine Zeitplanung aller drei Bereiche!

Leider ist ein Fehler aufgetreten. Bitte versuche es erneut oder nimm mit uns direkt Kontakt auf.