Bitte warten...

Bluelytics

Complex Event Processing

Verarbeiten und Speichern von Ereignissen

Bluelytics ist nicht nur ein Complex Event Processing System, dass eingehende Datenströme in Echtzeit verarbeiten kann, sondern stellt als einzigartiges Hybrid-System auch gleichzeitig eine Datenbank bereit, die für die Speicherung der Daten sorgt.

Ereignisse verarbeiten

Die Kernaufgabe von Bluelytics liegt in der Verarbeitung von kontinuierlichen Datenströmen, die beispielsweise permanent durch Sensoren oder Maschinen erzeugt werden. Die In-Memory-Technologie erlaubt es, dass die Daten sofort verarbeitet und daher nicht erst abgespeichert werden müssen. Das sorgt dafür, dass aus einfachen Ereignissen in Echtzeit komplexe Muster erkannt werden können. So können unmittelbar entsprechende Aktionen ausgeführt werden.

Daten speichern

Eine integrierte Datenbank sorgt dafür, dass Daten für eine spätere Verwendung gespeichert werden können. Die Datenbank ist dabei auf die Speicherung von Zeitreihen optimiert und erlaubt daher eine wesentlich schnellere Speicherung von Zeitreihen als Standard-Datenbanken. Auch das Abfragen von Zeitreihen bietet besondere Funktionen, um so beispielsweise sehr einfach Zeiträume abfragen oder zusammenfassen zu können.

Ein Hybrid-System

Als ein Alleinstellungsmerkmal kombiniert Bluelytics die Verarbeitung von kontinuierlichen und gespeicherten Daten in einer Schnittstelle. So können nicht nur Livedaten mit historischen Daten verknüpft werden, sondern erlaubt es z.B. auch, dass gespeicherte Zeitreihen erneut als kontinuierlicher Datenstrom wieder abgespielt werden können. Auch das kombinierte Speichern ist möglich, indem Bluelytics z.B. Daten kontinuierlich verarbeitet, aber stets die letzten 12 Stunden abgespeichert werden.

Bluelytics ist Open Source!

Entworfen von und für Software-Entwickler

Bluelytics wurde von Software-Entwicklern entworfen und ist auch für diese gedacht. Es ist somit darauf ausgerichtet, dass die Einbindung von Bluelytics während der Entwicklung möglichst einfach und flexibel durch ein Framework möglich ist und Programmierer sich auf die eigentliche Entwicklung ihrer Anwendung konzentrieren können.

Wie eine Datenbank

Vergleichbar mit einer Datenbank ergänzt Bluelytics Ihre eigene Anwendung und übernimmt die Aufgaben der Datenverarbeitung. Zu diesen gehören zum Beispiel der konkrete Datenaustausch mit Quellen und Senken, die zeitlich korrekte Berechnung von Ergebnissen, die automatische Optimierung der Verarbeitung, das Puffern von Daten oder auch der Umgang mit Blockierungen und Überlastsituationen. Entwickler können sich auf die eigentliche Anwendung konzentrieren und sparen dadurch Entwicklungszeit.

Unabhängig

Wie Daten entgegen genommen werden, wie diese verarbeitet werden sollen und wie die Ergebnisse weiter behandelt werden sollen, wird über eine Anfragesprache definiert. Diese Anfragesprache ist stark an SQL angelehnt und ist daher schnell in jeder Anwendung einzusetzen. Durch die Verwendung dieser Anfragesprache ist Bluelytics somit unabhängig von der eingesetzten Programmiersprachen der Anwendung. Bluelytics selbst ist als Java-Anwendung auf vielen System lauffähig.

Bibliotheken und Frameworks

Durch unseren Einsatz von Bluelytics in verschiedenen Projekten sind eine Reihe von unterstützenden Technologien entstanden. So gibt es unter anderem Java-Bibliotheken, die dem Entwickler verschiedene Schnittstellen direkt in Java zugänglich machen. Bei Verwendung von Spring als Framework kann darüber hinaus auf weitere an JPA und ORM angelehnte Frameworkfunktionen zurückgegriffen werden.

Unter der Haube

Bluelytics ist nicht nur eine Sammlung von Implementierungen, die der Entwickler nun nicht mehr programmieren muss, sondern beinhaltet vor allem auch eine Menge an Funktionen und Mechanismen, die für eine fehlerfreie, optimierte und tolerante Verarbeitung sorgen, jedoch nicht direkt ersichtlich sind.

Optimierungen

Bluelytics analysiert die von einer Anwendung übergebene Anfrage und führt automatisch Optimierungen durch, indem z.B. Verarbeitungsschritte getauscht oder unnötige gelöscht werden, ohne dass sich das Ergebnis dadurch verändert. Wenn mehrere gleiche oder ähnliche Verarbeitungsschritte durchzuführen sind, erkennt Bluelytics anhand der übergebenen Anfragen die Ähnlichkeiten und legt diese zusammen oder sorgt dafür, dass bereits vorhandene Verarbeitungsschritte wiederverwendet werden.

Schnell dank In-Memory

Durch die Kombination aus In-Memory und NoSQL-Technologien kann Bluelytics bereits auf einem herkömmlichen Notebook mehr als 500.000 Ereignisse pro Sekunde verarbeiten. Da die Geschwindigkeit stark davon abhängig ist wie viele Anfragen und welche Verarbeitungsschritte diese definiert, ist manchmal auch mehr Leistung notwendig. Dazu kann Bluelytics auch auf verschiedene Rechnerknoten verteilt werden, direkt verbunden werden und somit die Last verteilt werden.

Flexible Anbindung

Teil von Bluelytics ist ein flexibles Framework für die Anbindung von Datenquellen und -senken. Dieses teilt die Anbindung in verschiedene beliebig miteinander kombinierbare Schichten auf. Diese Beschreiben das Datenformat (JSON, CSV, XML, Text, Bytes...), die Übertragungsart (HTTP, OPC, Dateisystem, SMTP, MQTT, ...) und den Verbindungsaufbau. Bluelytics hat für jede Schicht bereits Implementierungen, sodass weit über 500 verschiedene Möglichkeiten für die Anbindung bereits vorhanden sind.