BI für das Ereignis-Management

BI für das Ereignis-Management

Itransition entwickelte eine einheitliche BI-Lösung mit einer breiten Abdeckung der Vorfallanalyse und flexiblen Anpassungsmöglichkeiten.

Kontext

Lloyd's Register ist ein globales Unternehmen für Risikomanagement und Sicherheit, das 1760 gegründet wurde, um die Sicherheit von Schiffen zu verbessern. Das Unternehmen ist spezialisiert auf Klassifizierungs- und Compliance-, Ingenieur- und Technologiedienstleistungen für Schifffahrts- und Offshore-Unternehmen. Lloyd's Register ist an mehr als 70 Standorten tätig und betreut Kunden aus 182 Ländern.

Der Kunde verfügt über ein umfangreiches Ökosystem von Softwareprodukten, aber es fehlte ein Dienst zur Sammlung und Analyse von Informationen über Vorfälle. Das Unternehmen stellte sich eine Lösung vor, bei der die Kunden Vorfallsdaten aus verschiedenen Quellen hochladen und flexible analytische Berechnungen und Visualisierungen erhalten können.

Ein weiteres Problem bestand darin, dass der Kunde über mehrere Lösungen mit ähnlichen Technologie-Stacks verfügte, die unabhängig voneinander gehostet und eingesetzt wurden und ihre eigene Datenbank nutzten. Die Wartungs- und Supportaktivitäten für die Lösungen waren unterschiedlich, und die Aktualisierung neuer Funktionen war aufgrund der unterschiedlichen Architekturen kompliziert. Jede Lösung war auf die Bedürfnisse und die Struktur der Datensatzverarbeitung des jeweiligen Kunden zugeschnitten, so dass der Kunde benutzerdefinierte Vorlagen für verschiedene Berichtstypen und die Geschäftslogik der Berichtsverarbeitung erstellen musste.

Anstattdessen wollte der Kunde ein universelles System für alle Kunden schaffen, das verschiedene Arten von Berichten verarbeiten und visualisieren sollte. Schließlich beschloss er, die derzeitigen Lösungen zu einem einzigen skalierbaren System mit leistungsstarken Anpassungsmechanismen zu kombinieren, um den Anforderungen aller Kunden gerecht zu werden.

Der Kunde war auf der Suche nach einem erfahrenen Technologiepartner, um seine Idee in die Realität umzusetzen. Da er bereits in mehreren anderen Projekten mit Itransition zusammengearbeitet hatte und unsere BI-Beratungskompetenz, verstärkt durch das BI-Kompetenzzentrum und zahlreiche erfolgreich gelieferte Lösungen, in Betracht zog, wählte der Kunde uns für das Projekt.

Lösung

Übersicht

Itransition entwickelte eine einheitliche, skalierbare BI-Lösung, die von jedem Kunden über eine Benutzeroberfläche leicht angepasst werden kann. Wir haben die Funktionalität der bisherigen Lösungen erweitert und verbessert und neue Funktionen hinzugefügt. Dieser flexible Ansatz ermöglichte es uns, Einschränkungen bei den Berichtstypen zu beseitigen, wobei jedes Unternehmen die entsprechenden Vorlagen verwenden kann. Die Funktionalität der Lösung kann auch erweitert und geändert werden, wenn sich die Geschäftsanforderungen ändern.

Die Benutzer der Lösung sind die Mitarbeiter der Endkunden, die analytische Berichte in einem Format erstellen und versenden müssen, das in ihren Abteilungen gebräuchlich ist, und eine geeignete Berichtskonfiguration entwickeln. Als Webanwendung unterstützt die Lösung auch ein adaptives Design für Tablets und Smartphones.

 

BI dashboard

Die BI-Lösung besteht aus:

  1. Dashboard
    Es visualisiert die Daten der Vorfallanalyse in Form von Grafiken, Diagrammen und Schaubildern und enthält eine geografische Karte mit den Gesamtinformationen zu jedem Objekt und den zugehörigen Vorfällen. Das Dashboard unterstützt historische Daten und zeigt auch die Dynamik für jeden Abschnitt an. Es umfasst die folgenden Funktionen:

    eine Reihe von Widgets zur Datenvisualisierung, die für jeden Kunden gemäß der vorherigen Vereinbarung vorinstalliert sind und eine für sein Unternehmen spezifische Terminologie verwenden;

    ein flexibles System zur Datenfilterung;

    persönliche Tracker zur Überwachung geschäftsspezifischer Parameter;

    ein Terminologiewörterbuch.

  2. Dashboard-Konfigurationswerkzeug
    Das Tool ermöglicht die Änderung der Layoutanordnung, der Elementabmessungen, des Vokabulars der Widgetbegriffe und anderer Elemente.
  3. Tool zum modularen Hochladen von Kundendaten
    Das Tool kann sich die Struktur von Dateien merken, um sie in Zukunft automatisch mit dem Datenmodell des Kunden abzugleichen.

Daten hochladen und aktualisieren

Das kundeneigene Datenmodell ist ein Vorfallsklassifizierungssystem, das den Ort des Vorfalls, sein Datum und seine Uhrzeit sowie die Geschäftsabteilung, in der er sich ereignet hat, definieren kann. Darüber hinaus verfügt es über einen zusätzlichen Satz spezifischer Metadaten, die zur Bestimmung von Vorfallsdetails verwendet werden, wie z. B. die Art des Vorfalls, wie er sich ereignet hat, seine geografische Lage usw., wobei der Umfang der Metadaten von den Endkunden im Voraus genehmigt wird.

Das System zur Klassifizierung von Vorfällen hat eine Baumstruktur, in der die Vorfälle in Kategorien und Unterkategorien unterteilt sind. Die Algorithmen der Lösung berücksichtigen diese Struktur, um die Daten korrekt zu verarbeiten und zu visualisieren.

Da die vorherigen Lösungen verschiedene Datenbanken verwendeten, was zu einigen Problemen führte, entschied sich der Kunde für Microsoft SQL Server als Datenbank, da es ein strengeres und gut formalisiertes Datenmodell hat. Da die Datenbank tabellenbasiert ist, eignet sie sich besser für vordefinierte Schemata und Anwendungen, die mehrzeilige Operationen erfordern. Darüber hinaus unterstützt sie Fremdschlüssel (die Felder, mit denen die Beziehungen zwischen zwei Tabellen hergestellt werden können) und verfügt über einen strengen Satz von Spalten in einer Tabelle, der mit dem klar definierten Datenmodell des Kunden übereinstimmt.

Die Wahl der Datenbank vereinfachte auch die Architektur und reduzierte die Anzahl der Abhängigkeiten. Bei der Umstellung von MongoDB auf SQL Server haben wir auch die zugehörige architektonische Backend-Logik für die Arbeit mit der neuen Datenbank implementiert, um die Benutzerfreundlichkeit und Leistung zu verbessern. Da wir fast alle Module und Komponenten der Altsysteme überarbeitet haben, entstand eine völlig neue Lösung.

Als Nächstes realisierten wir den komplexen Prozess des mehrstufigen Daten-Uploads durch die Systemnutzer. Das System sieht vor, dass zuerst die Basisdaten hochgeladen werden, gefolgt von den Daten, die die bereits eingegebenen Informationen wiederholen können. So definiert ein Benutzer beispielsweise zunächst die Geschäftsbereiche, die Berichte liefern können, und diese Geschäftsbereiche werden dann in den Vorfallsberichten erwähnt. Zu diesem Zweck haben wir ein Tool für das Hochladen von Daten und die Konfiguration von Vorlagen entwickelt, mit dem Benutzer neue Datentypen hinzufügen können, indem sie Beziehungen definieren und die Dateistruktur an die Entitäten des Datenmodells des Kunden anpassen.

Für eine verbesserte Benutzererfahrung haben wir eine flexible UI-Lösung mit Drag-and-Drop-Funktionen implementiert, die durch das React DnD-Dienstprogramm ermöglicht wird. Benutzer können Vorlagen erstellen und diese im System zur weiteren Verwendung speichern. Die Mitarbeiter können auch Dateien mit der gleichen Struktur wie CSV, XLS und andere Formate hochladen, wobei das System diese genau erkennt. Die Lösung unterstützt modulare Uploads von Berichten, so dass die Kunden nicht alle Arten von Daten auf einmal hochladen müssen, da jede Geschäftseinheit nur ihren Teil der Datensätze haben kann und diese unabhängig voneinander hochladen würde. Wir haben auch Unterstützung für Batch-Uploads von Daten in beliebiger Menge und so oft wie nötig realisiert. Die in den hochgeladenen Dateien enthaltenen Daten werden dann in Widgets, Grafiken, Diagramme und Tabellen umgewandelt und im Dashboard angezeigt.

Data mapping

Die Klassifizierung von Vorfällen erfolgt mit Hilfe von Algorithmen zur Verarbeitung natürlicher Sprache auf Kundenseite und der Azure Machine Learning API. Auf der Grundlage der Textbeschreibung des Vorfalls bestimmt das System seine Kategorie, weist den hochgeladenen Berichten relevante Tags zu, klassifiziert sie und zeigt sie in den endgültigen Berichten an. Vorfälle können in verschiedene Kategorien eingeteilt werden, wie z. B. ihre Ursache, der entstandene Schaden, verwandte Themen usw.

Root cause breakdown

Wir haben auch einen Mechanismus zur Aktualisierung und Synchronisierung hochgeladener und gespeicherter Daten implementiert. Um das Problem zu vieler gleichzeitiger Anfragen an die Datenbank zu lösen, haben wir die Zwischenspeicherung häufig genutzter Entitäten im Arbeitsspeicher der Lösung aktiviert und die Suche in Wörterbüchern genutzt. Die Lösung greift einmal auf die Datenbank zu, um vorhandene Vorfalldaten zu erhalten, vergleicht sie unter Verwendung des Arbeitsspeichers der Lösung und überträgt sie in die Datenbank. Daher müssen Tausende von häufig verwendeten Vorfällen und Klassifizierungsoptionen nicht jedes Mal aus der Datenbank abgerufen werden, was die Anzahl der Anfragen minimiert und die Leistung verbessert.

Wenn zum Beispiel Daten hochgeladen werden, empfängt der Server die Datei und speichert die vorhandenen Vorfälle aus der Datenbank im RAM. Anschließend werden die Einträge aus der Datei und die Vorfälle aus dem Cache durch eine eindeutige Entitätskennung abgeglichen. Dann legt das System einen neuen Vorfall an oder aktualisiert lediglich einige Felder, wenn bereits ein Vorfall vorhanden ist. Dadurch konnten wir die Zeit für das Hochladen von Daten von drei Minuten auf zwei Sekunden reduzieren.

Dashboard und Widgets

Als Nächstes haben wir das Dashboard mit Widgets als Hauptanwendungsseite entwickelt. Der Kunde kann nur die wichtigsten Widgets anzeigen und sie nach Größe konfigurieren, nach Belieben anordnen und neu positionieren und die für sein Unternehmen spezifische Terminologie verwenden. Wir lieferten ein maßgeschneidertes Dashboard, in dem die Administratoren des Kunden Folgendes ändern können:

  • Konfiguration der Widgets und ihrer Anordnung
  • die Größe der Widgets, Textinformationen und Titel je nach Firmenkunde ändern
  • Spalten in Klassifizierungstabellen hinzufügen und entfernen

Unser Team entwickelte auch die Möglichkeit, Dashboard-Konfigurationen zu erstellen und zu bearbeiten. Darüber hinaus haben wir die Lösung mit Google translate integriert, um den hochgeladenen Text mit vorkonfigurierten Parametern automatisch zu übersetzen.

 

Dashboard layout configuration

Außerdem haben wir die vorhandenen Widgets für ältere Lösungen verbessert. Zuvor führte jedes Widget zur Visualisierung von Daten eine Reihe von Datentransformationen durch, um Berichte in einer Widget-kompatiblen Ansicht anzuzeigen. Aufgrund übermäßiger und komplexer Datenberechnungsalgorithmen waren diese Transformationen jedoch umständlich und redundant und enthielten unnötige Zyklen und Gruppierungen, so dass die Datenverarbeitung manchmal sehr viel Zeit in Anspruch nahm. Wir haben die Logik dieser Transformationen umgeschrieben und weniger komplexe und effizientere Algorithmen implementiert.

Map

Außerdem haben wir das Karten-Widget erheblich verbessert, indem wir Punkte hinzugefügt haben, auf die die Nutzer klicken können, um alle Informationen über ein bestimmtes Objekt und die zugehörigen Vorfallsberichte anzuzeigen. Im Vergleich zur Vorgängerversion haben wir die Größe des Widgets angepasst und durch die Hinzufügung einer dynamisch wechselnden farblichen Hervorhebung den Nutzern die Möglichkeit gegeben, Aktivitäten in der jeweiligen Region anzuzeigen. Die Lösung unterstützt nun auch die Anzeige historischer Daten in Abhängigkeit von Datum, Vorfallstypen und mehr.

Außerdem haben wir ein Tool zur Erstellung von Trackern hinzugefügt, die mit einer bestimmten Gruppe von Vorfällen verbunden sind und eine detaillierte Zusammenfassung ausgewählter Parameter liefern. Wenn der Kunde nicht alle Daten sehen möchte und lieber mit einem bestimmten Segment arbeitet, kann er bestimmte Parameter im Filterbereich konfigurieren und einen oder mehrere Tracker erstellen. Auf diese Weise können die Benutzer die Dynamik der Vorfälle in einem bestimmten Abschnitt sehen und die zu verfolgenden Werte festlegen. Wenn die definierten Werte erreicht oder überschritten werden, benachrichtigt das System den Benutzer. Die Prognosefunktion visualisiert Trends mithilfe eines Trendberechnungsalgorithmus.

Trackers

Verfahren

Der Kunde hatte eine allgemeine Vorstellung von der Lösung und erwartete, dass sich unser Team aktiv an der Ideenfindung und Entwicklung beteiligte, so dass wir einen gewissen Spielraum bei der Wahl der Tools und Implementierungsmethoden hatten. Von Zeit zu Zeit wandten wir uns auch an den leitenden Entwickler des Kunden, der für die Entwicklung der früheren Anwendungen verantwortlich war, um den Code zu überprüfen und Ratschläge einzuholen.

Bei dem Projekt arbeiteten wir nach der Scrum-Methodik und hielten tägliche Besprechungen mit dem Kunden ab, um ihn über unsere Fortschritte auf dem Laufenden zu halten. Außerdem haben wir häufig Demos zur Synchronisierung und Diskussion durchgeführt.

Technologien

ASP.NET Core

Das Backend der Lösung

React

Das Frontend der Lösung

Microsoft SQL Server

Datenbank

ORM Entity Framework Core

Zur Vereinfachung der Arbeit mit der Datenbank

MUI-Bibliothek

Das UI der Lösung

Recharts-Bibliothek

Darstellungen erstellen

OpenLayers-Bibliothek

Interaktive Karten

Microsoft Azure

Hosting

Azure DevOps

Aufgabenverwaltung, CI/CD und Versionskontrolle

Azure App Service

Webanwendungs-Hosting

SQL Server

App Datenspeicherung

WebJobs-Dienst

Benachrichtigungen über Änderungen des Tracker-Status

Azure Application Insights

Leistungsüberwachung und Protokollierung

Azure Machine Learning

Unfallklassifizierung

Azure-Speicher-Konto

Enthält von Benutzern hochgeladene Ereignisdateien, ermöglicht die Erstellung von Eingabedaten für die API für maschinelles Lernen und speichert deren Ausgabedaten

ARM-Vorlagen

Der Einsatz der Lösung und der zugehörigen Ressourcen

Google Maps API Integration

Geolokalisierung

Google Translate Integration

Automatisierte Übersetzung

Ergebnisse

Die gelieferte einheitliche BI-Lösung hat eine breite Abdeckung der Vorfallsanalyse rund um den Globus. Sie ermöglichte es dem Kunden, die Zufriedenheit der bestehenden Kunden zu erhöhen, indem sie den Bedarf an Flexibilität und Skalierbarkeit erfüllte und gleichzeitig eine einfache Wartung, Unterstützung und Aktualisierung ermöglichte. Kurz nach der Einführung der Lösung gelang es dem Kunden, einen neuen großen Firmenkunden zu gewinnen, und mehrere andere potenzielle Kunden bekundeten ihr Interesse.