Programming Languages

Intelligente Klassifizierung von Datenstrukturen
(iPoint-systems gmbh)

Unternehmen

iPoint ist weltweit führender Experte für Software und Services in den Bereichen Produkt- Compliance, Prozess-Compliance und Nachhaltigkeit. Zehntausende von Unternehmen aus verschiedensten Branchen vertrauen auf unsere Kompetenz und Expertise beim Sammeln, Verfolgen, Verarbeiten, Verwalten und Berichten von Daten über das gesamte Wertschöpfungsnetzwerk und den gesamten Produktlebenszyklus hinweg. Mit unseren Softwarelösungen und Dienstleistungen unterstützen wir Sie umfassend bei der Erfüllung von Regulierungen und Anforderungen wie REACH, RoHS, WEEE, ELV, EHS, LCA, Alternatives Analysis sowie Anti-Sklaverei- und Konfliktmineralien-Gesetzen und weiteren Aufgaben in den Bereichen Produkt-, Supply-Chain und Enterprise-Stewardship. iPoints ganzheitlicher Ansatz im Sinne einer Circular Economy zielt auf einen kontinuierlichen, digitalen Prozess im Systemlebenszyklusmanagement, der nicht nur Gesetzeskonformität unterstützt, sondern auch die Nachhaltigkeit von Produkten, Wertschöpfungsketten und Marken.

Hintergrund

Der iPoint SustainHub ist ein universelles, cloudbasiertes Datendrehkreuz für den Austausch von Compliance- und Nachhaltigkeitsdaten durch die gesamte Lieferkette. Er ermöglicht es Ihnen, eine Vielzahl von Datenanfragen zu verschiedensten Nachhaltigkeitsthemen von nur einem Ort aus zu bearbeiten. Der iPoint SustainHub bietet einen Single-Sign-on-Zugang zur iPoint Conflict Minerals Plattform (iPCMP), zur Material Compliance Anwendung (REACH, RoHS), zur Product Chem Risk App und zu weiteren cloudfähigen iPoint Lösungen. Unteranderem werden über SustainHub Produktzusammensetzungen zwischen Lieferant und Kunden ausgetauscht. In diesen Zusammensetzungen werden auch sogenannte Werkstoffe verwendet. Es gibt natürliche Werkstoffe, wie Holz, Graphit, Marmor und künstliche Werkstoffe wie Metalle, Nichtmetalle, Verbundwerkstoffe, Kunststoffe, keramische Werkstoffe. Werkstoffe werden demnach in bestimmte Gruppen eingeteilt bzw. klassifiziert. Es gibt gesetzliche Regulierungen und Vorschriften bzgl. der Inhaltstoffe welche in den Werkstoffen verwendet werden dürfen oder verboten/beschränkt sind. Hier gibt es je nach Werkstoffklassifizierung und/oder Anwendung sogenannte Ausnahmen, die es erlauben höhere Grenzwerte zu erlangen oder Fristen auszunutzen. Daher ist es wichtig, zu erkennen, welcher Gruppe der verwendete Werkstoff angehört, damit zum Beispiel auf Ausnahmen geprüft werden kann.

Zielsetzung

  • Es soll ein Framework entwickelt werden, das es ermöglicht, Datenstrukturen nach bestimmten Kriterien zu klassifizieren und zu vergleichen.

  • Durch einen Best-Match-Algorithmus soll es möglich sein, Datenstrukturen automatisch anhand eines Vergleichs von Beispielmengen zu klassifizieren

  • Falls eine Zuordnung zu einer bestimmten Klasse nicht möglich ist, soll ersichtlich werden, welche Daten in der Datenstruktur für eine bestimmte Klassenzuordnung noch fehlen.

  • Es soll ein Regelwerk, für den Vergleich von strukturierten Dokumenten zur Überprüfung der Qualität von Datenstrukturen bzw. zum Erkennen von Änderungen in den Strukturen, entstehen

  • Die Strukturen können komplex sein und werden in Form einer Baumstruktur abgebildet.

  • Das Framework soll anhand einer Referenzanwendung mit einem Web-Userinterface demonstriert werden.

Anwendungsfall

  • Validieren der Lieferantendeklaration gegen ein Regelwerk (Werkstoffklassifizierung), um mögliche Fehler in Deklaration des Lieferanten zu entdecken und um damit die Datenqualität sicher zu stellen
  • Zum Beispiel sind Ausnahmen verschiedener gesetzlicher Regelungen für die Verwendung von Reinstoffen nur in Bezug auf die Werkstoffklassifizierung anwendbar

Aufgabenstellung

  • Das System soll anhand von vorgegebenen Beispiel Datenstrukturen Gemeinsamkeiten zwischen den einzelnen Datenstrukturen erkennen und daraus Regeln erstellen
  • Welche Inhaltsstoffe kommen in allen Datenstrukturen vor und mit welchem Anteil -Wie können Datenstrukturen über den gesamten Datenbestand ermittelt werden, die der gleichen Regel entsprechen

  • Regeln sollen über einen Regeleditor modifizierbar sein

  • Anhand der Regel sollen Datenstrukturen klassifiziert werden

  • Die Klassifizierung wird auch zur Indizierung von Datenstrukturen verwendet mit dem Ziel effizient auf bestimmte Datenstrukturen zuzugreifen

  • Regeln können in einer Vererbungsbeziehung stehen bei der Kindregeln speziellere Varianten der Elternregeln sind, zum Bespiel: Kunststoffe, Duroplaste, Elastomere, Thermoplaste
    • Beispiel Eisenwerkstoffe:
      • Fe > 99 %: Eisen oder Gusseisen
      • 90% >Fe < 95%: legierter Stahl
    • Beispiel Kunststoffe:
      • PP > 30 %: gefüllter Thermoplast
      • PP > 90 %: Thermoplast ungefüllt
  • Regeln sollten über ein Versionsmanagement verwaltet werden

Es soll eine API definiert und implementiert werden die folgende Funktionalität bereitstellt:

  1. Datenstrukturen mit einem Typ klassifizieren

  2. Regeln definieren, die für eine bestimmte Klasse von Strukturen gelten (Invarianten)

  3. Vererbungsbeziehungen zwischen Klassen definieren, die zu einer Spezialisierung des Regelwerks bei der abgeleiteten Klasse führen

  4. Den Typ einer noch nicht klassifizierten Datenstruktur anhand eines best-Match Algorithmus vorschlagen. Der Vorschlag umfasst eine Liste von möglichen Typen

  5. Unterschiedliche Datenstrukturen vergleichen und
    • die Gemeinsamkeiten zwischen Strukturen identifizieren
    • die Unterschiede zwischen Strukturen identifizieren
  6. Persistenzschnittstelle für Datenstrukturen
    • Suchen von Datenstrukturen mit einem bestimmten Typ
    • Suchen von Datenstrukturen, welche bestimmte Regeln erfüllen
    • Suchen von Datenstrukturen einer bestimmten Klasse oder Subklasse

Rahmenbedingungen

Das Projekt wird mit agilen Methoden der Software-Entwicklung (Scrum) durchgeführt. Die Durchführung umfasst alle Schritte eines agilen Projektes. Dazu gehört beispielsweise

  • das Aufstellen einer Roadmap,

  • die Planung der einzelnen Sprints,

  • die Schätzung der Arbeitspakete,

  • sowie die Durchführung der Implementierung, des Tests und der Dokumentation.

Die Länge eines Sprints beträgt nicht mehr als vier Wochen.

Den Product Owner stellt ihr. iPoint stellt einen Stakeholder und einen fachlichen Ansprechpartner bzgl. der fachlichen Regeln zur Werkstofferkennung projektbegleitend zur Verfügung.

Am Ende jedes Sprints stellt ihr eure Ergebnisse vor.

Der Quellcode wird über Git bei iPoint verwaltet. Ein Scrum-Board in Jira und ein Confluence-Space zur Projektdokumentation wird von iPoint zur Verfügung gestellt.

Erwartet wird ein aktiver Einsatz, zweiwöchentliche Abstimmungstreffen sowie großer Spaß an neuen und innovativen Technologien.

Zum Kick-Off laden wir euch in unseren Standort in Reutlingen ein. Hier geben wir euch eine Einführung in SustainHub und besprechen die technischen und fachlichen Rahmenbedingungen.

Technologie

  • Cloud basiert (Microsoft Azure Cloud)
    • Automatisierte Datenbank-Updates
    • Datenbankunabhängigkeit (außer Themen wie BigData)
    • Die Anwendung sollte in ein automatisch deploybares Artefakt verpackt sein (EAR, WAR, JAR, Docker-Container…)
    • Lokale Verzeichnisse dürfen nicht zur Datenpersistierung verwendet werden (Ausnahme sind temporäre Dateien)
  • Implementierungssprache: Java

  • Quellcode-Management über ein Git Projekt

  • Versionserstellung über einen Maven Build

  • Abdeckung durch JUnit Tests

  • Spring Cloud für Service Discovery

  • Spring Boot für Management Endpunkte (Actuator)

  • OAuth2 Unterstützung für Single-Sign-On im SustainHub Portal

Ablauf

  • Fachliche Einführung

  • Recherche Phase
    • Wie kann die Datenstrukturen am besten abgebildet und persistiert werden, damit solche Analysen performant auch auf Massendaten durchgeführt werden können (zum Beispiel über NoSQL oder Graph-Datenbanken)
    • Gibt es eventuell bereits passende Frameworks zum Verglich von Datenstrukturen
    • Wie können Regeln abgebildet und verwaltet werden
  • Passen alle Komponenten in die Cloud Infrastruktur und werden teilweise sogar als Cloudservices angeboten?

  • Vorstellung der Recherche Ergebnisse

  • Umsetzung
    • Vergleich von Datenstrukturen
    • Erkennen und Erstellen von Regeln
    • Regeleditor
    • Anwenden von Regeln um Datenstrukturen zu ermitteln