iXTS Data Analyzer

Messdatenverarbeitung

Es gibt viele Tools zur Auswertung von Messdaten. Wenn es allerdings um die effiziente Verarbeitung von Daten­mengen im Gigabyte-Bereich geht, stoßen die meisten schnell an ihre Grenzen.

Grund genug für unseren Kunden, uns mit der Entwicklung eines sehr spezialisierten Analyse-Tools für die perfor­mante Auswertung solch großer Datenmengen zu beauftragen.

Case Study

Unser Kunde ist ein international führender Hersteller industrieller Gasturbinen mit Sitz in Erlangen.

Seit vielen Jahren entwickeln und verbessern wir in enger Zusammenarbeit verschiedene Applikationen zur Messdatenverarbeitung.

Kunde:
Hersteller industrieller Gasturbinen mit Sitz in Erlangen
Projekt:
iXTS Data Analyzer - Analyse, Verrechnung, Darstellung und Export großer Mengen von Messdaten unterschiedlicher Datenquellen
Teamgröße:
2 Entwickler, 1 Tester
Bild: weisser Pfeil

Herausforderung

Performante Auswertung großer Datenmengen

Unser Kunde, ein namhafter und international führender Hersteller industrieller Gasturbinen mit Sitz in Erlangen, kam mit einem schwierigen Problem auf uns zu: "Ich muss unter mehreren tausend Signalen zunächst diejenigen ermitteln, die mit einem Referenzsignal korrelieren und möchte mir dann diese Signale in Trend- und Streudiagrammen ansehen."

Die bisherigen Ansätze scheiterten an den immensen Datenmengen, wie sie in der Kraftwerksbranche und speziell bei industriellen Gasturbinen nicht unüblich sind. Bei Betrachtungszeiträumen von bis zu drei Monaten und sekündlichem Sampling kam es mit den verwendeten Tools regelmäßig zu Speicherüberlauf und 100% Prozessorlast, was ein produktives und effizientes Arbeiten praktisch unmöglich machte.

Da die individuellen Kundenanforderungen von keinem der eingesetzten Tools im Alleingang abgedeckt werden konnten, mussten die Daten für die vollständige Analyse zudem noch durch eine Art Tool-Chain geschleust werden. Dies erforderte zusätzliche, zeitaufwändige Konvertierungen bzw. Aggregierungen und beschränkte den in einem Durchlauf auswertbaren Zeitbereich zusätzlich auf wenige Wochen oder gar Tage.

Gesucht war daher eine performante und speicherschonende Möglichkeit, direkt mit den ungefilterten und nicht aggregierten Rohdaten zu arbeiten und dabei auch lange Zeiträume betrachten zu können. Dabei sollten noch weitere, höher entwickelte Analyseverfahren eingesetzt werden, um die Aussagekraft der Analysen nochmals zu erhöhen.

Und da es dem Kunden um die kurzfristige Analyse aktueller Problemstellungen ging, drängte natürlich – wie so oft – die Zeit.

 


Lösung

Vom Protoypen zum mächtigen Analyse-Tool

Da aufgrund der Dringlichkeit der Anforderungen keine Zeit für die Erarbeitung einer Spezifikation zur Verfügung stand, sollte in einem ersten Schritt eine Art Proof of Concept (PoC) durchgeführt werden, an dessen Ende aber bereits ein produktiv einsetzbarer Prototyp stehen sollte. Eine sportliche Herausforderung, die wir jedoch angenommen haben.

Um das gesteckte Ziel zu erreichen, fiel unsere Wahl auf einen bekannten Technologie-Stack gepaart mit speziell auf die Anforderungen ausgesuchten Zusätzen:

  • Native .Net/Windows-Anwendung mit C# & Winforms – keine Einarbeitung, da uns diese Technologien bestens bekannt sind
  • Charting mit Hilfe von Steema TeeChart . Net – keine Einarbeitung, da Steema TeeChart unser Standardwerkzeug für Charting unter Windows ist
  • Datenverarbeitung via Reactive Extensions C# – einfache Möglichkeit der Parallelisierung & sehr gute Erweiterbarkeit

Trotz der knappen Zeit achteten wir auf eine modulare Architektur und die Einhaltung der Clean Code-Richtlinien, um eine spätere Weiterentwicklung des Prototyps nicht zu gefährden. Das User Interface – typischerweise einer der größten Aufwandstreiber bei der Software-Entwicklung – gestalteten wir hingegen eher einfach und rudimentär. Dadurch konnte bereits nach kurzer Zeit die entscheidende Frage des PoC beantwortet werden: „Ist mit den gewählten Technologien eine effiziente Berechnung von Korrelationskoeffizienten und Darstellung in Streudiagrammen auch für große Betrachtungszeiträume möglich?“

Die Antwort lautete: „Ja!“ Auch die Verarbeitung von mehr als 1.000 Signalen mit sekündlichem Sampling war ohne weiteres möglich.

Als nächstes erweiterten wir den Prototypen um die Möglichkeiten zur raschen Auswahl von Signalen und ihrer überlagerten Darstellung in verschiedenen Trendplots. Zur Beschleunigung der Darstellung wurden die Rohdaten je Pixel zu einem Min-, Max- und Average-Wert aggregiert, wodurch die Aussagekraft der Plots in jedem Zoombereich stets erhalten blieb, da auch beim Betrachten langer Zeiträume keine Daten "verschluckt" wurden. Durch die Verwendung der Reactive Extensions konnten solche Vorgänge sehr speicher- und prozessorschonend implementiert werden.

Somit konnte der Proof of concept erfolgreich abgeschlossen werden. Der Prototyp hörte nun auf den Namen iXTS Data Analyzer 1.0 und die Umsetzung weiterer Kundenanforderungen konnte im Rahmen eines regulären, wenn auch überdurchschnittlich agilen Projektablaufs fortgeführt werden. Die umzusetzenden Analysemethoden waren fachlich so komplex und innovativ, dass erst durch die Sichtung der Analyseergebnisse eines neuen Ansatzes die nächsten Schritte für die algorithmische Weiterentwicklung festgelegt werden konnten. So konnte zwar eine Roadmap- und Sprintplanung mit einem oder mehreren Feature-Paketen aufgestellt werden, die konkrete Weiterentwicklung erfolgte dann aber in sehr enger Abstimmung zwischen den Entwicklern und dem Kunden auf Basis sehr kurzfristiger Deployment-Zyklen und schrittweiser Erkenntnisgewinne durch sofortigen Praxiseinsatz der neuen Features.

Dabei das Projektmanagement, die Qualitätssicherung und natürlich auch die Kosten im Auge zu behalten, war keine leichte Aufgabe. Ergebnis war aber ein Stück Software, das kostengerecht, stabil und technisch sauber die sehr dynamischen Anforderungen des Kunden vollständig abdeckt.

Im weiteren Verlauf des Projekts wurden verschiedene Erweiterungen implementiert, wie z.B.

  • Einbindung neuer Datenquellen (Signalgeneratoren, Web API)
  • Diverse Analyse-Algorithmen (Gradient & Polargradient, Zeitbereichsstatistik, Transformationen)
  • Einbindung von Daten-Prozessoren (z.B. Hoch- & Tiefpass-Filter)
  • Verrechnung von Signalen miteinander ("MathEngine")
  • Visualisierung des Fortschritts bei zeitaufwändigen Operationen

Im Rahmen der Umsetzung dieser Themen wurde – wo nötig – auch Zeit für technische Refactorings eingeplant, damit der Code mit der Zeit nicht verhärtet, sondern wart- und erweiterbar bleibt. Dieser, aus Kundensicht zuweilen unnötig erscheinende Mehraufwand zahlte sich auch in diesem Projekt aus und war letztlich auch direkt für den Kunden wahrnehmbar, da Anpassungen und Erweiterungen in der Folge leichter und somit schneller möglich waren.

 


Mehrwert

Starke Vereinfachung und Effizienzsteigerung bei der Analyse

Der schnelle Projektstart durch die Konzentration auf die wesentlichen Punkte im Rahmen des ersten PoCs, die agile Vorgehens­weise mit der kurztaktigen Einbeziehung des Kunden in den Entwicklungsprozess und letztlich die Offenheit für spezielle fachliche Anforderungen gepaart mit eigenen kreativen Inputs von Seiten des Entwicklerteams sorgten dafür, dass die Analysearbeiten des Kunden bereits nach einer sehr kurzen Anlauffase und anschließend mindestens wöchentlich vereinfacht und beschleunigt werden konnten.

Selbst komplexe Fragestellungen und Algorithmen konnten zeitnah im Feld getestet werden, wodurch fachlich potenzielle Irrwege frühzeitig erkannt und vor allem richtige Ansätze zeitnah in einen Mehrwert für alle Anwender des iXTS Data Analyzers münden konnten. Durch die Software konnte die Aussagekraft von Analyse-Berichten durch Screenshots und Data-Exports erhöht und die Ursachensuche für technische Probleme und somit die Ermittlung von Grenz- und Alarmwerten zur Vermeidung von Störfällen beschleunigt werden. Dies alles trotz der mittlerweile gängigen Betrachtungszeiträume von mehreren Jahren bei sekündlichem Sampling.

Mit diesem Ergebnis steht der iXTS Data Analyzer aber natürlich nicht am Ende. Das Backlog ist reichlich gefüllt und der Kunde steht ständig vor neuen fachlichen Herausforderungen, die auch zukünftig durch die bewährte Vorgehensweise schnell einen Weg als Feature in die Applikation finden werden. Der modulare Aufbau und das immerzu nachhaltige Pflegen des Codes garantieren eine ständige Erweiterbarkeit, so dass der iXTS Data Analyzer auch weiterhin flexibel angepasst und eingesetzt werden kann. So wurde er bereits erfolgreich in anderen Anwendungsfeldern wie zum Beispiel der Analyse von Last- und Performancetests von Web-Applikationen verwendet – ein Themenbereich, der zu Beginn der Entwicklung nicht wirklich auf der Agenda stand.

Dieses Case Study bzw. der iXTS Data Analyzer zeigt, wie aus einer konkreten Fragestellung eines Kunden und der darauf­folgenden Umsetzung der technischen Lösung eben dieser Fragestellung, durch Kommunikation, Erfahrung, Weitblick und Kreativität eine exzellente und letztlich universell einsetzbare Software entstehen kann.

Ihr Kontakt
    Armin Orthmann, Geschäftsführer

    Armin Orthmann


    Geschäftsführer
    TEL: +49 89 958408-16
    Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.

    Alois Flammensböck, Geschäftsführer

    Alois Flammensböck


    Geschäftsführer
    TEL: +49 89 958408-25
    Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.

TOP