TIME SERIES MANAGEMENT TSM die KISTERS all-purpose Technologie für das Zeitreihenmanagement TIME SERIES MANAGEMENT SYSTEMBESCHREIBUNG Abstract In vielen technischen und wirtschaftlichen Softwaresystemen besteht die Notwendigkeit, Massendaten in Form von Zeitreihen zu akquirieren, bearbeiten und archivieren. Dabei stehen neben verschiedensten fachlichen Aspekten meist die schnelle Verarbeitung und der schnelle Datenzugriff im Vordergrund. Dies erfordert spezifische Softwarelösungen, die bisher in der Regel für jede Applikation eigenständig entwickelt wurden. Das KISTERS TSM (Time Series Management) System ist der neue gemeinsame Systemkern aller KISTERS Produkte, bei denen Zeitreihen eine Rolle spielen. Es bildet die Anwendungsschicht einer 3-Schicht-Architektur und stellt den darauf basierenden Applikationen alle zur Zeitreihenverwaltung und berechnung notwendigen Dienste zur Verfügung. Dieses Dokument beschreibt die grundlegenden Konzepte der Systemarchitektur sowie Details der Implementierung des KISTERS TSM Systems. Einleitung Das Zeitreihenmanagement ist der gemeinsame, verborgene Leistungskern von Datenverarbeitungssystemen in einer Vielzahl von Anwendungsbereichen: beim Management von natürlichen Ressourcen, in der Verkehrstelematik, in der Wasserwirtschaft, in der Meteorologie, in der Energiewirtschaft, in der Finanzmathematik u.a.m.. Eine Zeitreihe ist eine zeitbezogene Folge von Datenpunkten. Einzelne oder mehrere Zahlenwerte werden nicht kontinuierlich, sondern in regelmäßigen oder unregelmäßigen zeitlichen Abständen abgerufen, übernommen, plausibilisiert, abgespeichert und für weitere Bearbeitungen verfügbar gehalten. Jeder Datenpunkt hat also neben seinem Zahlenwert mindestens einen Zeitstempel, darüber hinaus meist noch weitere qualifizierende Informationen. Zeitreihen spiegeln Zustände, sie sind Grundlage für technische und wirtschaftliche Prozesse, Prognosen und Entscheidungen. Bei den KISTERS Produkten zum Management von Energiedaten (BelVis), hydrologischen Daten (WISKI, Hydstra) und Luftqualitätsdaten (AquisNet) ist das Zeitreihenmanagement neben dem in Software gegossenen fachlichen Spezialwissen in den Anwendungsbereichen die Kernfunktionalität der Produkte. Diese Kernfunktionalität wurde in der Vergangenheit immer wieder als integraler Bestandteil der jeweiligen Applikation weiterentwickelt, wobei die Anpassung der vorhandenen Technologie an die fachlichen Anforderungen mehr oder weniger zu unterschiedlichen Speziallösungen auch für das Zeitreihenmanagement selbst geführt hat. Mit der Entwicklung des TSM Systems ist es KISTERS gelungen, unsere in über 20 Jahren in den verschiedenen Anwendungsbe- info@kisters.de www.kisters.de
TIME SERIES management reichen aufgebaute Kompetenz im Zeitreihenmanagement auch softwaretechnisch in einer zentralen Komponente zu bündeln. Technologie für das Zeitreihenmanagement Allen Applikationen, die in der Hauptsache der Akquisition, Verwaltung, Bearbeitung und Archivierung von Zeitreihen dienen, ist eine Liste von besonderen Anforderungen an das Zeitreihenmanagement gemeinsam, die durch die verwendete Softwarearchitektur und technologie erfüllt werden müssen. Dazu gehören Massendatenfähigkeit Skalierbarkeit Modularisierbarkeit Flexibilität gegenüber verschiedensten Fachthemen hoher Automatisierungsgrad Zuverlässigkeit Sicherheit Integrationsfähigkeit weitgehende Plattformunabhängigkeit Das KISTERS TSM System, das als gemeinsames Kernmodul aller Produkte mit Zeitreihenbezug dient, deckt alle diese Anforderungen ab und gewährleistet darüber hinaus, dass die besonderen Anforderungen der jeweiligen Applikation hinsichtlich Systemleistung, Zeitreihenmodellen, Verarbeitungsmodellen, Schnittstellen etc. ausschließlich durch Konfigurationsmaßnahmen, also ohne die Entwicklung von spezifischen Softwarevarianten, erfüllt werden. Optimierte 3-Schichten-Architektur Um diesen Anforderungen gerecht zu werden, wurde der bisher in unseren Produkten verfolgte Client-Server-Ansatz verlassen. In der Client-Server Architektur liegen die Nutzdaten auf einem Server, der diese als Datenbankanwendung verwaltet, und einem Client, auf dem die eigentliche Verarbeitungsapplikation läuft. Somit ist der Server nur als Datencontainer eingesetzt und die Daten werden im Client verarbeitet. Das Zeitreihenmanagement ist bei dieser Architektur zwangsweise in den Client integriert. Dies macht die Erfüllung vieler der oben genannten Anforderungen nur schwer oder gar nicht möglich. Mit dem TSM System ist der Grundstein gelegt, alle Produkte und zukünftigen Entwicklungen aus dem Hause KISTERS nach einem 3-Schichten-Modell mit Präsentationsschicht, Anwendungsschicht (TSM System) und Persistenzschicht aufzubauen. Dadurch wird eine klare Modularisierung der Software erreicht, das Zeitreihenmanagement und die Zeitreihenverarbeitung werden von der Client-Applikation abgekoppelt. Präsentationsschicht, TSM Client Applications: WISKI, BelVis, I/O-, Web-Server, Modellierung weitere Applikationen Produktarchitektur (schematisch) Externe Datenquelle SODA I/O Server Modelle WISKI BelVis Anwendungsschicht, TSM System: Authentifizierung Session Management Business Logic (n-tsm Server) Storage Management Dispatcher TSM Server 1 TSM Server 2 TSM Server 3 TSM Server n Persistenzschicht, RDBMS/Dateien: Stammdaten Zeitreihendaten Zeitreihendaten (Binärdateien) BasicDB TS DB 01 Abb. 1: Schema der Produktarchitektur mit dem TSM System als Anwendungsschicht 2
TIME SERIES energie management Neben den bekannten Vorteilen einer Mehrschichtarchitektur gewährleistet der modulare Aufbau ein hohes Maß an Flexibilität in der Gestaltung von Produktlösungen und kundenspezifischen Konfigurationen. Durch geeignete Definition und Implementierung der Schnittstellen ist eine auf dem TSM System aufgebaute Architektur optimiert für die hoch performante Verwaltung und Verarbeitung von Zeitreihendaten. KISTERS TSM System Im Gegensatz zum klassischen 3-Schichtenmodell, in dem die Anwendungsschicht im wesentlichen reaktiven Charakter hat, also ausschließlich auf Anforderungen der Präsentationsschicht reagiert, ist das KISTERS TSM System als Anwendungsschicht gleichzeitig ein aktives System. Das TSM System stellt der Anwendungsschicht einerseits alle generischen Funktionen für die Verwaltung und Archivierung von Zeitreihendaten zur Verfügung, und ist andererseits eine optimierte automatische Berechnungsmaschine für die fachspezifische Verarbeitung und Berechnung von Zeitreihen, in der unabhängig von Anfragen der Clients Zeitreihendaten prozessiert werden können. TSM Dienste und Funktionen Das TSM System stellt für die Client Applikationen (TCA = TSM Client Application ) alle Zeitreihenmanagement-Funktionen über ein optimiertes Service-Interface zur Verfügung. Dabei ist die Grundidee, das TSM System als Server-Komponente in eine Dienste orientierte Architektur (Service-Oriented Architecture, SOA) einbinden zu können, und trotzdem für Massendaten eine hohe Übertragungsgeschwindigkeit zu erreichen. Zeitreihenmanagement Dazu gehören zunächst die Basisfunktionen zum Anlegen und Löschen von Zeitreihen. Die dazu notwendige logische Organisation der Zeitreihen hinsichtlich Ablage und Navigation kann von der Client-Applikation frei vorgegeben werden. So können Gruppierungen von Zeitreihen der jeweiligen Fachapplikation entsprechend wie in einem Dateibaum vorgenommen werden. Beim Anlegen von Zeitreihen unterstützt das TSM System eine Vielzahl von verschiedenen Zeitreihentypen und attributen, die für die korrekte Verarbeitung, Anzeige und Speicherung der Zeitreihendaten relevant sind. Die Spezifikation der Zeitreihentypen und attribute wird durch die Client-Applikation vorgegeben. So ist es beispielsweise möglich, Zeitreihen mit beliebigem Zeitraster zu definieren, oder aber äquidistante Zeitreihen, bei denen die Zeitstempel einem festen Raster unterliegen. Diese sogenannten Meta-Daten von Zeitreihen werden im TSM System abgelegt und dort verwaltet und können von Clients wiederum abgefragt werden. Für die Einhaltung der geforderten Zeitreiheneigenschaften beim Speichern von Zeitreihendaten sorgt das TSM System. Jeder Zugriff auf gespeicherte Zeitreihendaten erfolgt über das TSM System. Dadurch ist gewährleistet, dass alle Zugriffe koordiniert erfolgen und die Integrität der gespeicherten Daten gewährleistet ist. Die Übertragung von Zeitreihendaten aus der Persistenzschicht an die Client-Applikationen ist optimiert für hohen Datendurchsatz. Dies wird durch eine Streaming -Funktionalität im TSM Service-Interface erreicht. Zeitreihenabrechnung In allen Fachapplikationen werden aus Rohdaten in der Regel Zeitreihendaten aus Messungen oder Meldungen neue Zeitreihen berechnet, z.b. zu Analyse- und Prognosezwecken, für Modellierung, Abrechnungen, Berichte etc. Diese Berechnungen erfordern in der Regel den Zugriff auf große Datenmengen, so dass eine Prozessierung in den Clients eine sehr hohe Last auf den Kommunikationskanälen mit sich bringt. Aus diesem Grund stellt das KISTERS TSM System ein Berechnungs-Framework zur Verfügung, in dem generische und fachspezifische Berechnungsmethoden (sog. Agenten ) direkt auf dem Applikationsserver ausgeführt werden können. Diese Agenten sind als Plug-Ins konzipiert, d.h., ohne Änderung des TSM Systems können bei Bedarf neue Berechnungsmethoden im TSM verfügbar gemacht werden. Jeder zu berechnenden Zeitreihe werden ein oder mehrere Agenten zugeordnet, die eindeutig die Berechnungsvorschrift für jeden Abschnitt dieser Zeitreihe definieren. Die Berechnung oder Aktualisierung von Zeitreihen kann entweder durch den Client über entsprechende TSM Service-Funktionen angestoßen werden, oder erfolgt automatisch immer dann, wenn sich eine Quellzeitreihe z. B. durch den Import von neuen Rohdaten verändert. Für die automatische Zeitreihenaktualisierung analysiert das TSM System den Abhängigkeitsbaum aller Zeitreihen und ermittelt, 3
TIME SERIES management welche Zeitabschnitte von welchen abgeleiteten Zeitreihen von der Änderung einer Quellzeitreihe betroffen sind. Dies ermöglicht die gezielte Einschränkung der Neuberechnung auf die tatsächlich notwendigen Datenmengen und minimiert so den Rechenaufwand. Nicht alle Zeitreihen, die direkt oder indirekt aus Quellzeitreihen berechnet werden, müssen zwangsweise in der Persistenzschicht abgespeichert werden. Das TSM System unterstützt neben der Aktualisierung von persistenten, also gespeicherten Zeitreihen, die Definition von virtuellen Zeitreihen und Calculation on the fly. Dies ermöglicht die Abfrage von Zeitreihen, die erst im Moment der Anfrage durch den Client im TSM System berechnet und an den Client übermittelt werden. Zeitreihenarchivierung Dem TSM System liegt ein flexibles Archivierungskonzept zugrunde. Für die Metadaten wird ein relationales Datenbanksystem verwendet. Die Zeitreihendaten selbst, die ja den Löwenanteil des zu speichernden Datenvolumens ausmachen, können je nach Bedarf wahlweise ebenfalls in einer relationalen Datenbank gespeichert werden. Unterstützt werden vom KISTERS TSM System alle namhaften Datenbankprodukte wie Oracle, MS-SQL und PostgreSQL. Alternativ zu einer relationalen Datenbank kann auch eine Speicherung der Zeitreihendaten in einem optimierten binären Dateiformat gewählt werden. Beide Speicherungsmöglichkeiten können parallel verwendet werden. TSM Architektur Die Architektur des KISTERS TSM Systems ist darauf ausgelegt, als autonomes Server-System den verschiedensten Applikationen angepasst zu werden. Dazu gehört eine eigenständige Administrationskomponente mit entsprechenden Benutzerschnittstellen, eine Prozesskontrolle, ein aktives Session-Management und natürlich die eigentliche Zeitreihenmanagement und -berechnungsmaschine. TSM Dispatcher Der TSM Dispatcher ist die zentrale Schaltstelle für jedes TSM System. Jede Applikation, die Zugriff auf Zeitreihendaten oder Berechnungen benötigt, meldet eine Session beim TSM Dispatcher an. Bei dieser Anmeldung überprüft der TSM Dispatcher die Autorisierung des Clients bzw. des beim Client angemeldeten Benutzers. Je nach Art der Integration des TSM Systems in die Gesamtapplikation greift das TSM System auf seine eigene Benutzerverwaltung zurück oder ist an eine übergeordnete Benutzerverwaltung angekoppelt. Nach erfolgreicher Autorisierung weist der TSM Dispatcher der Client Applikation einen TSM Server zu, der für diese Session die eigentlichen Services zur Verfügung stellt. Diese Zuweisung wird durch ein generisches Load-Balancing gesteuert; alternativ können auch TSM Server für bestimmte Services reserviert werden. Jeder TSM Dispatcher kann beliebig viele TSM Server kontrollieren. TSM System KisRPC:7430 TCA KisRPC:7442 Firewall (optional) TNS:1521 MDAC:1433 TSM Dispatcher TSM Server (Auth) (Admin) TsmSAdmin Socket:7452 JProcController Socket:8005 Socket:7453 JProcConsole DB Abb. 2: Detailschema des TSM Systems: Komponenten und Kommunikationsstruktur 4
TIME SERIES energie management Sobald ein TSM Server der anfragenden Applikation zugeordnet ist, erfolgt die Kommunikation direkt zwischen TSM Server und TCA über das TSM Service-Interface. TSM Server Die TSM Server stellen die Services für das Zeitreihenmanagement und die Berechnungen von Zeitreihendaten bereit. Die Leistung des TSM Systems kann durch sukzessive Parallelisierung auf mehrere TSM Server dem jeweiligen Bedarf der Applikation hinsichtlich Datenvolumen, Datendurchsatz und Berechnungsanforderungen angepasst werden. Das interne Management des TSM Systems garantiert auch die Verfügbarkeit des Systems beim Ausfall einzelner TSM Server. TSM Prozesskontrolle und Administration Die Komponente JProcController überwacht alle Prozesse im TSM System, JProcConsole ist das dazugehörige Interface für den Systemadministrator. Es können von hier Prozesse gestartet und gestoppt werden, also beispielsweise weitere TSM Server zugeschaltet werden, wenn der Rechenbedarf steigt. Für die weitere Administrations- und Konfigurationsaufgaben ist jedes TSM System mit einer webbasierten Administrationsoberfläche ausgestattet (TsmSAdmin), die auch eine Fernwartung des Systems ermöglicht. TSM Client-Anbindung Die Ankopplung von TSM Client Applikationen ( TCAs ) erfolgt über das TSM Service Interface, das mittels eines sog. TCA Proxy realisiert ist. Dabei handelt es sich um ein objektorientiertes Programmierinterface (wahlweise in JAVA oder C# /.NET), das in Client-Applikationen eingebunden werden kann und alle im TSM ausführbaren Funktionen des Zeitreihenmanagements transparent zur Verfügung stellt. Der TCA Proxy basiert auf dem speziell für die Bearbeitung und Übertragung von Zeitreihendaten optimierten KisRPC (KISTERS Remote Procedure Call) Kommunikationsmechanismus, der neben der rein funktionalen Schnittstelle auch das Streaming der Massendaten unterstützt. Pro Client können beliebig viele TSM-Sessions gleichzeitig aktiv sein, die möglicherweise auf verschiedenen TSM Servern bedient werden. Ein integrierter Session-Manager sorgt zusammen mit dem TSM Dispatcher dafür, dass automatisch immer eine aktive Verbindung zwischen dem TCA und einem TSM Server hergestellt wird. TSM Implementierung Die Implementierung des TSM Systems mit moderner JAVA- Technologie macht es plattformunabhängig auch in heterogenen IT-Landschaften einsetzbar. Die generische Schnittstelle zur Persistenzebene erlaubt die Verwendung verschiedener relationaler Datenbanksysteme (z.b. Oracle, MS-SQL, PostgreSQL), je nach vorhandener Infrastruktur und benötigter Systemleistung. Aufgrund der weitgehenden Skalierbarkeit des Systems kann das KISTERS TSM System dem Bedarf an Rechenleistung, Datenvolumen und durchsatz beliebig angepasst werden. Da das TSM System multimandantenfähig ist also mehrere Applikationen mit verschiedenen Datenbeständen gleichzeitig bedienen kann ist außerdem ein applikationsübergreifender Lastausgleich möglich. Zusammenfassung Zeitreihenmanagement ist bei KISTERS eine Kernkompetenz mit über 20 Jahren Entwicklungs- und Einsatzerfahrung. In dieser Zeit wurde die Basistechnologie erfolgreich von der Wasserwirtschaft in den Aufbau von Luftqualitätsmessnetzen, in das Datenmanagement von Netz, Vertrieb, Handel und Beschaffung der liberalisierten Energiemärkte, in die Verkehrstelematik übertragen. Mit der Einsatzbreite und -dichte wurden Technologie und Leistungsfähigkeit immer weiter optimiert. Im KISTERS TSM System manifestiert sich die Summe unserer Erfahrungen im Bereich des Zeitreihenmanagements in einem autonomen, flexiblen und hoch performanten Softwaresystem. Aufgrund seiner modularen Struktur ist das TSM System für eine flexible Kooperation mit Systemen der Umgebung offen und lässt sich in jede moderne Softwarelandschaft integrieren, ohne Kompromisse bei der Massendatenfähigkeit und der Anwendungsqualität der Benutzerschnittstelle machen zu müssen. KISTERS AG 2011 Mehr Erfolg und Fortschritt im Zeitreihenmanagement: Mit TSM und der Kompetenz der Pioniere. info@kisters.de www.kisters.de 5