Bachelorarbeit. im Studiengang Angewandte Informatik. an der Fakultät IV. der Hochschule Hannover. vorgelegt von. David Liebetruth. Matr. Nr.

Größe: px
Ab Seite anzeigen:

Download "Bachelorarbeit. im Studiengang Angewandte Informatik. an der Fakultät IV. der Hochschule Hannover. vorgelegt von. David Liebetruth. Matr. Nr."

Transkript

1 Eignung der Complex Event Processing Engine Oracle CEP zur Überwachung von Photovoltaikanlagen Bachelorarbeit im Studiengang Angewandte Informatik an der Fakultät IV der Hochschule Hannover vorgelegt von David Liebetruth Matr. Nr.: Erstprüfer: Zweitprüfer: Prof. Dr. Ralf Bruns Prof. Dr. rer. nat. Jürgen Dunkel Eingereicht am: I

2 EIDESSTATTLICHE ERKLÄRUNG Hiermit erkläre ich an Eides statt, dass ich die eingereichte Bachelorarbeit selbständig und ohne fremde Hilfe verfasst, andere als die von mir angegebenen Quellen und Hilfsmittel nicht benutzt und die den benutzten Werken wörtlich oder inhaltlich entnommenen Stellen als solche kenntlich gemacht habe. Datum: Unterschrift David Liebetruth II

3 INHALTSVERZEICHNIS ABBILDUNGSVERZEICHNIS...V DANKSAGUNG...VI 1 EINLEITUNG Motivation Ziel der Arbeit Aufbau der Arbeit MACHINE-TO-MACHINE KOMMUNIKATION Grundlagen Anwendungsgebiete COMPLEX EVENT PROCESSING Einführendes Beispiel Grundlegende Begriffe Ereignis Ereignismodell Ereignisregeln Event Processing Agent Event Processing Network STAND DER TECHNIK Complex Event Processing bei M2M Überwachung von Photovoltaikanlagen ORACLE CEP Oracle CEP Architecture Einführung der Oracle CEP Komponenten Event Erstellung und Registrierung Adapter Processor Channel Event Bean Development Environment für Eclipse Oracle Continuous Query Language Hello World Beispiel EREIGNISSE EINER PHOTOVOLTAIKANLAGE Aufbau einer Photovoltaikanlage Maschinenereignisse Ereignismodell Ereignisregeln Kommunikationsereignisse Ereignismodell Ereignisregeln TECHNISCHE UMSETZUNG Event Processing Network für Photovoltaikanlagen Implementierung Implementierung der Oracle CEP Komponenten III

4 7.2.2 Implementierung der Processoren (CQL-Regeln) VERGLEICH VON ORACLE CEP MIT ESPER Grundsätzliches Offenes Problem Regelvergleich SCHLUSSBETRACHTUNG Evaluierung von Oracle CEP Zukunftsaussichten LITERATURVERZEICHNIS ANHANG IV

5 ABBILDUNGSVERZEICHNIS Abbildung 2.1: Grundkonzept einer M2M-Anwendung (angelehnt an [4]) Abbildung 3.1: Abstraktion von Ereignissen über mehrere Ebenen (angelehnt an [11] S. 86) Abbildung 3.2: Aufbau eines Event Processing Agents (angelehnt an [11]) Abbildung 4.1: Schematische Darstellung der Weiterleitung von Betriebsdaten einer Photovoltaikanlage Abbildung 5.1: Softwarestack von Oracle CEP Abbildung 5.2: Creation Wizard Abbildung 5.3: Creation Wizard Abbildung 5.4: Event Type Definition Editor Abbildung 5.5: Assembly File Editor Abbildung 5.6: Configuration File Editor Abbildung 5.7: Manifest Datei Editor Abbildung 5.8: EPN-Editor Abbildung 5.9: EPN HelloWorld-Beispiel Abbildung 5.10: Eclipse-View Server Abbildung 6.1: schematischer Aufbau einer Photovoltaikanlage Abbildung 6.2: Ereignismodell der Maschinenereignisse Abbildung 6.3: IP-basierte Datenkommunikation mittels GPRS [3] Abbildung 6.4: Kommunikationsereignisse bei Verwendung von GSM/GPRS-Netzen Abbildung 7.1: Event Processing Network für Photovoltaikanlagen Abbildung 7.2: Übersicht das EPN zur Photovoltaikanlagenüberwachung im EPN-Editor Abbildung 0.1: Übersicht über den Complex Event Processing Markt in 2011 [2] V

6 DANKSAGUNG Danken möchte ich meiner Freundin Cindy, die mir immer eine große Unterstützung war! VI

7 1 EINLEITUNG 1.1 MOTIVATION Das Auffinden von wichtigen Informationen aus großen Mengen an Daten gewinnt in Zeiten der digitalen Datenerfassung immer mehr an Bedeutung. In sämtlichen Bereichen der Industrie und Technik steigt die Anzahl der digital erfassten Daten (zum Beispiel Sensordaten oder Standortkoordinaten), die ausgewertet bzw. überwacht werden müssen, stetig an. [1] Zusätzlich sind die Anforderungen an die Auswertung von Daten vielfältiger geworden. Oft ist eine sehr schnelle Reaktionsfähigkeit auf bestimmte Situationen seitens der Unternehmen von Nöten, das bedeutet die vorliegenden Informationen müssen kontinuierlich und möglichst direkt zum Zeitpunkt des Auftretens verarbeitet werden. Dabei reicht es meistens jedoch nicht aus, dass bestimmte Daten beispielsweise einfach auf Schwellenwerte überprüft werden, oftmals liegen die Anforderungen auch darin, die Daten miteinander zu vergleichen oder miteinander zu verknüpfen, um einen größeren Informationsgehalt zu erhalten. Anwendungen, die Complex Event Processing einsetzen, sind in der Lage, diese Anforderungen optimal zu erfüllen, indem die Daten in einem kontinuierlichen Strom innerhalb kürzester Zeit (im Bereich von Millisekunden) hinsichtlich der gewünschten Kriterien verarbeitet werden können. Diese besonderen Eigenschaften, die die Complex Event Processing Technologie bietet, in Verbindung mit Machine-to-Machine Kommunikation (Definition siehe Kapitel 0), können eine ideale Ergänzung aus Datenbeschaffung und Datenauswertung ergeben. Das führt zu selbstständig kommunizierenden Maschinen, die in der Lage sind, auftretende Informationen direkt zur Stelle der Auswertung zu senden, welche schnellstmöglich individuell verarbeitet werden können. Eine solche effiziente Datenverarbeitung könnte für die verschiedensten Anwendungsgebiete sinnvoll eingesetzt werden. Dabei gilt es, für die verschiedenen Anforderungen der unterschiedlichen Anwendungsgebiete den jeweils optimalen Weg der Datenverarbeitung zu finden. 7

8 Einleitung 1.2 ZIEL DER ARBEIT Es existieren bereits mehrere Complex Event Processing Engines von verschiedenen Anbietern auf dem Markt 1, die sich möglicherweise in ihren Kozepten und Arbeitsweisen unterscheiden und somit sind manche Engines daher eventuell besser für bestimmten Anwendungen geeignet als andere. [2] In dieser Bachelorarbeit soll die von Oracle Corporation entwickelte Complex Event Processing Engine Oracle CEP vorgestellt und evaluiert werden. Die Darstellung der Funktionsweise und die Bewertung der Engine Oracle CEP wird anhand des Beispiels der Überwachung von Photovoltaikanlagen realisiert. Die Bewertung soll sich einerseits auf die Eignung von Oracle CEP zur Überwachung von Photovoltaikanlagen beziehen, andererseits auf die Eigenschaften und die Funktionsweise der Engine. Da Machine-to-Machine Kommunikation in dem Szenario der Anlagenüberwachung ebenfalls eine wichtige Rolle spielt, wird auch diese Technolgie kurz vorgestellt. Die Überwachung von Photovoltaikanlagen wurde bereits in einer Masterarbeit aus dem Jahr 2011 von Ilja Hellwig (siehe [3]) mit der Complex Event Processing Engine Esper realisiert, sodass ein Vergleich zwischen Esper und Oracle CEP möglich ist, wobei der Fokus besonders auf den Vergleich der implementierten Regeln gelegt werden soll. Das Grundkonzept für die Realisierung der Überwachung von Photovoltaikanlagen wird angelehnt an die genannte Masterarbeit, sowie an die Ergebnisse der Software Architecture Researche Group AUFBAU DER ARBEIT Der erste Abschnitt dieser Arbeit soll dem Leser eine anschauliche Einleitung mit den nötigen Informationen zum Verständnis der verschiedenen Themenbereiche verschaffen. So beschäftigt sich Kapitel 0 mit den Grundlagen der Machine-to-Machine Kommunikation und stellt verschiedene Anwendungsgebiete dieser Technologie vor, während Kapitel 0 das Thema Complex Event Processing einführt. Beide Themenbereiche werden anschließend unter dem Punkt Stand der Technik in Kapitel 4 wieder aufgegriffen. Im Anschluss wird in Kapitel 5 vorgestellt, wobei unter anderem die Realisierung der zuvor eingeführten Begrifflichkeiten von Complex Event Processing aus Kapitel 0 gezeigt wird. 1 Abbildung mit Übersicht über den Complex Event Processing Markt befindet sich im Anhang 2 Informationen zur Software Architecture Researche Group: 8

9 Einleitung Die Umsetzung einer Überwachungssoftware für Photovoltaikanlagen beginnt mit der Ausarbeitung der theoretischen Grundlagen in Kapitel 6, die für die konkrete technische Umsetzung in Kapitel 7 notwendig sind. Zuletzt beschäftigt sich Kapitel 8 mit dem Vergleich der Engines Oracle CEP und Esper, während die Schlussbetrachtung in Kapitel 9 die Evaluierung von Oracle CEP beinhaltet und die möglichen Zukunftsaussichten von Complex Event Processing im Machine-to-Machine- Sektor vorstellt. 9

10 Machine-to-Machine Kommunikation 2 MACHINE-TO-MACHINE KOMMUNIKATION 2.1 GRUNDLAGEN Machine-to-Machine, kurz M2M, steht für einen automatisierten Informationsaustausch zwischen Maschinen. Dabei kommunizieren Maschinen wie zum Beispiel Fahrzeuge, Automaten oder Überwachungssysteme vollkommen selbstständig miteinander und können somit viele Arbeitsabläufe erheblich verbessern und erleichtern. Mögliche Anwendungsgebiete der Technologie werden in Kapitel 2.2 vorgestellt. GRUNDKONZEPT EINER M2M-ANWENDUNG Ein Machine-to-Machine-System besteht grundsätzlich aus folgenden Komponenten: 1. Datenendpunkt (Data End Point = DEP) 2. Kommunikationsnetzwerk (LAN, WLAN, GSM-Mobilfunknetz, RFID und andere) 3. Datenintegrationspunkt (Data Integration Point = DIP) Abbildung 2.1: Grundkonzept einer M2M-Anwendung (angelehnt an [4]) Abbildung 2.1 verdeutlicht das Konzept einer M2M-Anwendung, wobei die Funktions- Endpunkte allgemein für einen Prozess (X) bzw. eine Anwendung (Y) stehen. Unter einem Datenendpunkt (DEP) ist ein Sender, der mit einem Endgerät verbunden ist, zu verstehen. In einem M2M-System kann es eine Vielzahl an DEPs mit deren dazugehörigen Endgeräten geben. Diese senden über ein beliebiges Kommunikationsnetzwerk Informationen an einen Datenintegrationspunkt (DIP), welcher die Informationen bzw. Daten sammelt und für die Auswertung zur Verfügung stellt. Ein DIP kann auf verschiedenste Weisen realisiert werden und kommt in einem typischen M2M-System nur einmal vor. [4] Auf diese Weise vollkommen selbstständig kommunizierende Maschinen bringen zahlreiche neue Möglichkeiten für die verschiedensten Industriezweige mit sich. Durch vermehrte 10

11 Machine-to-Machine Kommunikation Automatisierung können Arbeitsabläufe und Prozesse optimiert und viel schneller erledigt werden oder sogar vollständig automatisiert passieren, womit menschliche Unzulänglichkeiten keine Rolle mehr spielen. Die Übermittlung von Informationen passiert zudem mit einer hohen Geschwindigkeit und steht praktisch an jedem Ort zur Verfügung 3. [5] Damit ist zum Beispiel eine Fernüberwachung und Fernsteuerung von Anlagen über eine zentrale Stelle möglich und Maschinen können in der Lage sein, ihren Wartungsbedarf selbstständig mitzuteilen. Letztendlich kann die M2M-Kommunikation durch effizientere Prozesse sowie schnelle Reaktionsfähigkeiten für verbesserte Qualität bei gleichzeitiger Kostenersparnis sorgen. [6] Offene Fragen gibt es allerdings zurzeit noch bei der Datensicherheit von M2M- Anwendungen. Da unzählige personen- und unternehmensbezogene Informationen übermittelt werden, muss an dieser Stelle ein zuverlässiges Sicherheitssystem für den entsprechenden Datenschutz sorgen. [7] 2.2 ANWENDUNGSGEBIETE Derzeit gibt es bereits zahlreiche Anwendungsgebiete für den M2M-Sektor. Bei einigen Anwendungen ist der Einsatz von M2M offensichtlich, die meisten M2M-Anwendungen agieren jedoch für Außenstehende unauffällig im Hintergrund. [8] Wichtige Anwendungsgebiete sind zum Beispiel die Fernüberwachung, Fernsteuerung und Fernwartung von Maschinen und Anlagen. Es gibt aber auch viele weitere Anwendungsgebiete und Branchen, in denen die M2M-Technologie sinnvoll eingesetzt wird, wie zum Beispiel im Transportwesen, der Sicherheitstechnik, dem Gesundheitswesen oder der Gebäudetechnik. Großes Interesse findet M2M-Kommunikation außerdem beim Einsatz für Versorgungsunternehmen und Verkaufsautomaten, da Warenbestände und Lieferbedarf automatisch geregelt werden können. Im Folgenden werden einige Anwendungsmöglichkeiten näher gezeigt. [6] 3 Bezogen auf das GSM-Mobilfunknetz 11

12 Machine-to-Machine Kommunikation SICHERE AUFZUGSÜBERWACHUNG Im Bereich Gebäude-Management spielt M2M bei Aufzügen und deren Überwachung mittlerweile eine wichtige Rolle. So stellt zum Beispiel die für Telefon- und Gegensprechanlagen bekannte Firma Telegärtner GSM-Module her, mit denen die Belastung eines einzelnen Aufzugs, sowie eventuelle Störungen, individuell dokumentiert werden können. Diese Informationen werden direkt an den beauftragten Wartungsservice übermittelt, der daraufhin Störungen zeitnah beheben und Wartungen optimal planen kann. Zum Beispiel sollte eine Anlage, die häufig mit Höchstbelastung betrieben wird, früher kontrolliert werden als eine, die selten genutzt wird. Dank der Erfassung und Übermittlung solcher Daten ist die Sicherheit von Aufzugsanlagen im Vergleich zu früher deutlich gestiegen und zeigt somit einen positiven Fortschritt, der durch M2M ermöglicht wurde. [8] INTELLIGENTE KAFFEEVOLLAUTOMATEN In der Gastronomie eingesetzte Kaffeevollautomaten stellen ebenfalls ein Anwendungsgebiet von M2M-Kommunikation dar. Es können zum Beispiel Reparaturen, durch automatische Informationsübermittlung von auftretenden Störungen an den Servicetechniker, sofort behoben werden, noch bevor ernsthafter Schaden entstehen kann. Auch die Wartung und Instandhaltung kann auf diese Weise optimiert werden, wobei ein Zähler zusätzlich Informationen über die Anzahl der zubereiteten Getränke bereitstellt. Ein solcher Automat sorgt auch für einen ausreichenden Vorrat an Kaffebohnen, indem er sich nach dem Verbrauch einer bestimmten Menge Kaffeebohnen, automatisch mit dem Lieferanten in Verbindung setzt und eine Bestellung aufgibt. Ebenfalls denkbar wäre zum Beispiel bei einem Gerät mit Touchscreen, eine zentrale Steuerung der Displayinhalte per Mobilfunk, damit jederzeit aktuelle Werbeinformationen und Sonderanbote für den Kunden bereitgestellt werden können. [8] FERNÜBERWACHTE PHOTOVOLTAIKANLAGEN Photovoltaikanlagen, egal ob auf dem Dach oder in einem groß angelegtem Solarpark, benötigen eine kontinuierlich Überwachung, um ständig die maximale Leistungsfähigkeit der Anlage gewährleisten zu können. Dies ist besonders wichtig, damit eine solche Anlage auch rentabel ist und den erwünschten Gewinn erzielen kann. Eine Störung oder gar ein Ausfall 12

13 Machine-to-Machine Kommunikation einer Anlage muss sofort behoben werden und darf nicht beispielsweise über Wochen oder Monate unbemerkt bleiben. Mit Hilfe von M2M-fähigen Geräten ist es möglich, die nötigen Informationen zum Status einer Anlage aus der Ferne auszuwerten. Die Betriebsdaten können über verschiedene Kommunikationsnetzwerke immer aktuell zum Ort der Auswertung gesendet werden. So können zum Beispiel Servicedienstleister als zentrale Stellen fungieren und sich schnell um die Auswertung der Daten verschiedener Anlagen kümmern, ohne die Daten umständlich vor Ort ablesen zu müssen. Anlagenbetreiber können sich die Betriebsdaten ihrer Anlagen beispielsweise bequem mit Hilfe eines Internetportals ansehen, während ein Installateur die Überwachung und Instandhaltung übernimmt 4. 4 Verschiedene Anbieter von Fernüberwachung [Zugriff jeweils am ]: 13

14 Complex Event Processing 3 COMPLEX EVENT PROCESSING Defintion Complex Event Processing: Complex Event Processing ist eine in der Informatik eingesetzte Technologie zur Erkennung und Analyse von komplexen Ereignissen und deren Verarbeitung nahezu in Echtzeit. 3.1 EINFÜHRENDES BEISPIEL In der Welt, in der wir leben, sind wir einer unglaublich großen Menge an Ereignissen ausgesetzt, welche gleichzeitig, hintereinander oder unberechenbar auftreten. Anfangs können wir daraus eventuell noch keinen Zusammenhang schließen, umso mehr Ereignisse jedoch auftreten, desto besser können wir deren Bedeutung verstehen und ihnen eine Relevanz zuordnen. Es passieren beispielsweise folgende Ereignisse: Ein Haus wird gebaut Ein Lotteriegewinn wird ausgeschüttet Würfel werden geworfen Der Hut ist nur zu Besuch im Gefängnis Bankrott Aus diesen einzelnen Ereignissen kann man keine eindeutigen Rückschlüsse ziehen. Werden sie jedoch gemeinsam betrachtet, lässt sich schnell erkennen, dass es sich hierbei um das Brettspiel Monopoly handelt. (angelehnt an [9] S.7) Unser Gehirn ist es gewohnt, Ereignisse in ihrem Zusammenhang zu interpretieren. Mit Event Processing ist dies nun auch für Softwareanwendungen möglich, solange die Ereignisse technisch erfassbar sind. [9] 14

15 Complex Event Processing 3.2 GRUNDLEGENDE BEGRIFFE In folgendem Abschnitt sollen grundlegende Begriffe eingeführt werden, die für das Verständnis von Complex Event Processing benötigt werden EREIGNIS Unter dem Begriff Ereignis (engl. event) bei Complex Event Processing, ist ein Vorkommnis zu verstehen, welches durch ein Computersystem verarbeitet werden kann. [10] Ereignisse treten in einem Ereignisstrom auf und werden in unterschiedliche Abstraktionsebenen unterschieden. Feingranulare Daten, die meist in großer Menge kontinuierlich und hochfrequenziert erzeugt werden (z.b. Sensordaten), stellen recht einfache Ereignisse dar und haben somit eher einen niedrigen Abstraktionsgrad. Werden die einfachen Ereignisse korreliert und/oder aggregiert, lassen sich daraus komplexe Ereignisse mit einem hohen Abstraktionsgrad gewinnen (siehe Abbildung 3.1). [11], [10] Abbildung 3.1: Abstraktion von Ereignissen über mehrere Ebenen (angelehnt an [11] S. 86) EREIGNISMODELL Ereignismodelle dienen dazu, im System auftretende Ereignisse in einen Zusammenhang zu stellen und somit die Beziehungen und Abhängigkeiten zwischen den einzelnen Ereignistypen formal festzuhalten. Hierbei entsteht in den meisten Fällen, durch Generalisierung und Spezialisierung, eine Ereignishierarchie mit Ober- und Untertypen. Dabei wird zwischen abstrakten Ereignistypen und konkreten Ereignistypen unterschieden, wobei die abstrakten 15

16 Complex Event Processing Ereignistypen ausschließlich der Strukturierung des Modells dienen und nicht instanzierbar sind. Meistens wird dazu ein schwach abgeändertes UML (Unified Modeling Language) Klassendiagramm benutzt. Eine konkrete Entwicklung eines Ereignismodells wird in Kapitel 6 gezeigt. [11] EREIGNISREGELN Das für das System entwickelte Ereignismodell wird in entsprechenden Ereignisregeln abgebildet. Diese verarbeiten die im Ereignisstrom vorkommenden Ereignisse, indem sie Ereignisse aggregieren und miteinander korrelieren und somit ein neues, abgeleitetes Ereignis mit höherem Abstraktionsgrad generieren. Zur Realisierung dienen sogenannte Event Processing Languages (EPL), mit denen sich Ereignismuster (Bedingungsteil) und die darauf folgende Reaktion (Aktionsteil) deklarativ beschreiben lassen. Ein Ereignismuster setzt sich beispielsweise aus einer Reihenfolge definierter Ereignisse zusammen, bei deren Erfüllung eine bestimmte Aktion ausgeführt wird. [11] Das Ereignismuster (A or B) (C or D) ist erfüllt, wenn im Ereignisstrom zuerst Ereignis A oder B gefolgt von ( Operator) einem Ereignis vom Typ C oder D auftritt. In Kapitel Ereignisregeln6.2.2 und werden einige Ereignisregeln vorgestellt EVENT PROCESSING AGENT Die bisher in Kapitel 3.2 erklärten Teilkomponenten bilden zusammen einen Event Processing Agent (EPA). Ein EPA empfängt kontinuierlich über einen Eingangsstrom Ereignisse, welche in die Engine hineingereicht werden. Die Engine erkennt die in den Ereignisregeln festgelegten Muster und führt den dort definierten Aktionsteil aus. Auf diese Weise können zum Beispiel komplexe Ereignisse erzeugt werden, die den EPA über den Ausgangsstrom verlassen können. Abbildung 3.2: Aufbau eines Event Processing Agents (angelehnt an [11]) 16

17 Complex Event Processing EVENT PROCESSING NETWORK Ein Event Processing Network (EPN) umfasst mehrere Event Processing Agents (Kapitel 3.2.4), die miteinander verbunden sind. Die Komplexität eines Systems wird meistens auf mehrere Event Processing Agents aufgeteilt, wobei zum Beispiel anfangs eine einfache Aggregierung bzw. Filterung von Ereignissen vorgenommen wird und der daraus resultierende Ausgangsstrom wiederum als Eingangsstrom des nächsten Event Processing Agents dient (siehe Abbildung 3.2). Somit wird mit der Aufteilung der Ereignisregeln auf die verschiedenen Agents ein übersichtlicheres, besser zu wartendes System geschaffen. 17

18 Stand der Technik 4 STAND DER TECHNIK 4.1 COMPLEX EVENT PROCESSING BEI M2M Der Einsatz von Complex Event Processing im Machine-to-Machine Sektor ist derzeit noch nicht populär, obwohl das Zusammenspiel dieser Technologien, wie schon in der Motivation dieser Arbeit erwähnt, klare Vorteile für Unternehmen bieten kann. Zwar zeigt sich die steigende Bedeutsamkeit von Complex Event Processing darin, dass marktführende Unternehmen, wie zum Beispiel IBM, SAP und Oracle, bereits eigene CEP-Engines anbieten, eine offensichtliche Verbindung zur M2M-Branche kann aber noch nicht erkannt werden. Es gibt jedoch bereits einige Anbieter von Standardsoftware, welche zur Auswertung von Ereignissen auf Complex Event Processing setzt, die von im M2M-Sektor tätigen Unternehmen erworben werden können. Beispielsweise kann sich eine Firma im Logistik-Sektor eine Software zur Standortüberwachung und Routenplanung kaufen 5 und diese auf die besonderen Bedürfnisse anpassen. Zur Auswertung der auftretenden Ereignisse (zum Beispiel GPRS-Daten eines LKWs) wird, bei dem in Fußzeile 5 angegebenem Anbieter, zum Beispiel die Complex Event Processing Engine Drools Fusion 6 eingesetzt. Zudem gibt es aktuell mehrere Forschungsprojekte zum Thema Complex Event Processing in Verbindung mit M2M, die sich zum Beispiel mit intelligenten Automatisierungssystemen beschäftigen. Dies wird in Kapitel 9.2 Zukunftsaussichten genauer beschrieben. 4.2 ÜBERWACHUNG VON PHOTOVOLTAIKANLAGEN Die kontinuierliche Überwachung von Photovoltaikanlagen ist unverzichtbar, um eine maximale Ertragssicherheit über die gesamte Anlagenlaufzeit erreichen zu können. Aktuell werden für eine Überwachung unterschiedliche Verfahren eingesetzt: 5 Möglicher Anbieter Vistracks Inc. [jeweils abgerufen am ]: solutions.aspx, 6 Complex Event Processing Engine Drools Fusion : [abgerufen am ] 18

19 Stand der Technik Bei kleineren Privatanlagen kann die Überwachung durch Selbstablesung erfolgen. Dafür werden die erforderlichen Betriebsdaten zu regelmäßigen Tageszeiten, an im Wechselrichter integrierten Messeinrichtungen, abgelesen und zum Beispiel in einer Excel Tabelle protokolliert und verglichen. Dieses Verfahren ist zwar kostengünstig, dafür aber zeitaufwendig und je nach Anzahl der Ablesungen nur wenig aussagekräftig. Störungen der Anlage können leicht übersehen werden. Komfortabler und auch für größere Photovoltaikanlagen zur Überwachung geeignet sind sogenannte Datenlogger. Diese liegen als separate Einrichtung oder bereits integriert in den Wechselrichtern vor. Ein Datenlogger liest in regelmäßigen Abständen die Anlagendaten über eine Schnittstelle des Wechselrichters aus und legt diese dauerhaft, meist über Jahre, auf einem Speichermedium ab. [12] Abbildung 4.1: Schematische Darstellung der Weiterleitung von Betriebsdaten einer Photovoltaikanlage Die gespeicherten Daten werden anschließend zum Beispiel per WLAN oder GPRS weitergeleitet (wie beispielhaft in Abbildung 4.1 dargestellt). Datenempfänger können portable Anzeigegeräte, Smartphones oder Webportale sein, auf denen die Daten visualisiert werden. Mit Hilfe der detaillierten Visualisierung lassen sich Unregelmäßigkeiten in den zeitlichen Verläufen erkennen und somit Störungen der Anlage zeitnah beheben. Um Störungen automatisiert erkennen zu können, gibt es einerseits Datenlogger mit integrierter Auswertungsfunktion, die Fehlercodes erzeugen, welche dem Benutzer angezeigt werden. [13] Andererseits können die ausgelesenen Daten an einen Server geschickt werden, der diese in einer Datenbank ablegt und für die weitere Auswertung zuständig ist. Die Auswertung an 19

20 Stand der Technik sich erfolgt zurzeit bei den meisten Systemen noch auf konventionelle Art. Das bedeutet die Implementierung der Ereignisverarbeitung erfolgt in selbst geschriebenen Quelltexten und es wird keine CEP Komponente verwendet. [3, p. 74] Eine CEP-Komponente würde an dieser Stelle allerdings viele Vorteile gegenüber einer konventionellen Programmierung bieten. Einerseits ist der Quellcode der Ereignisverarbeitung schwer vom technischen Quellcode zu trennen und liegt fragmentiert in diesem vor, was das System unflexibel und unübersichtlich macht. Änderungen im System sind somit schwer umzusetzen. Auch das Erkennen von komplexen Ereignissen, bei denen zum Beispiel die Messungen mehrerer Wechselrichter miteinander verglichen werden müssen, ist mit Hilfe imperativer und objektorientierter Programmiersprachen nur schwer umzusetzen. Dabei müsste auf zahlreiche geschachtelte ifund switch-anweisungen zurückgegriffen werden, woraus ein kompliziertes, schwer wartbares System entsteht. Anderen Szenarien, die ebenfalls mit einer CEP-Engine einfach zu erkennen sind, wie beispielsweise zeitlich aufeinander folgende Ereignisse, müssten ebenfalls mühsam implementiert werden. Außerdem wird die Reaktionszeit, die eine Ereignisverarbeitung mit CEP bietet, von einer konventionellen Programmierung nicht erreicht. [3] 20

21 Oracle CEP 5 ORACLE CEP 5.1 ORACLE CEP ARCHITECTURE Oracle Complex Event Processing ist ein Java Container (Oracle Event Processing-Container, kurz OEP-Container), der auf das Framework Open Service Gateway initiative (OSGi ) 7 basiert und somit eine leichtgewichtige, modulare Architektur aufweist. Abbildung 5.1 zeigt den Softwarestack von Oracle Complex Event Processing. Auf der untersten Ebene ist die Java Virtual Machine, welche das Fundament darstellt. Die nächste Schicht besteht aus dem Module Framework (OSGi). Dieses ermöglicht Modulen den Import und Export von Java-Klassen zu steuern und ist zudem noch für das Laden und die Versionierung von Klassen zuständig. Das darüberliegende Service Framework (Spring) 8 ist für das Instanziieren von Serviceklassen zuständig. Es löst zudem Abhängigkeiten zwischen den Services und reichert diese, durch Dependency Injection, mit Konfigurationsdaten und Referenzen zu anderen Services an. Die letzte Schicht des Softwarestacks für Oracle Complex Event Processing stellen die Module dar. Es werden zwei Arten von Modulen unterschieden. Zum einen Module, welche für die Server Implementierung zuständig sind und zum anderen welche, die Anwendungen auf einem Server deployen. Die Architektur sieht keine technische Abgrenzung zwischen Server- und Anwendungsmodulen vor. Anwendungsmodule verwenden Dienste, die von Servermodulen angeboten werden, wobei deren Funktionalitäten durch Anwendungsmodule auch erweitert werden können. [14] 7 OSGi: [Zugriff am ] 8 Service Framework Spring : [Zugriff am ] 21

22 Oracle CEP Abbildung 5.1: Softwarestack von Oracle CEP 5.2 EINFÜHRUNG DER ORACLE CEP KOMPONENTEN Im Folgenden werden die wichtigsten Komponenten von Oracle CEP kurz vorgestellt, die anschaulich im Hello World Beispiel in Kapitel 5.4 als konkretes Beispiel verwendet werden EVENT ERSTELLUNG UND REGISTRIERUNG Ereignisse (vgl. Kapitel 3.2.1) werden bei Oracle CEP als Events bezeichnet. Sämtliche Events werden über das Spring Framework basierte Assembly File bei dem OEP-Container registriert. Dabei bietet Oracle CEP die Möglichkeit, Attribute eines Events auf zwei unterschiedliche Weisen zu definieren. Eine Variante sieht das Anlegen eines Events in einer separaten Java Klasse vor. Darin werden die Attribute wie in Java üblich definiert. Dabei muss beachtet werden, dass die dazugehörigen Getters und Setters erstellt werden. Diese Methoden, sowie auch die tostring() Methode, können über die Eclipse IDE komfortabel generiert werden. [15] Anschließend wird im Assembly File, wie in Code 5.1 zu sehen, dem Event durch das Element <wlevs:class> die entsprechende Java Klasse zugewiesen. 1: <wlevs:class>de.hshannover.liebetruth.ba.helloworld.myevents.helloworldevent</wlevs:class> Code 5.1: Zuweisung einer Java Klasse zu einer Komponente im Assembly File Eine andere Variante sieht das Anlegen eines Events ausschließlich in dem in XML verfassten Assembly File vor. Dafür wird, wie in der ersten Variante, zuerst in dem Element eventtype-repository ein neues Element event-type angelegt und diesem das Attribut 22

23 Oracle CEP type-name hinzugefügt. Die Attribute des Events werden nun jedoch nicht über eine separate Java Klasse definiert, sondern direkt in XML. In Code 5.2 wird die Vorgehensweise verdeutlicht. 1: <wlevs:event-type-repository> 2: <wlevs:event-type type-name= HelloWorldEvent > 3: <wlevs:properties type= tuple > 4: <wlevs:property name= message type= String /> 5: <wlevs:property name= id type= int /> 6: </wlevs:properties> 7: </wlevs:event-type> Code 5.2: Definition von Eventattributen im Assembly File ADAPTER Adapter stellen Event Sources (Sender) und Event Sinks (Empfänger) am Anfang sowie am Ende einer Anwendung dar. Sie dienen unter anderem dazu, Eventdaten zu empfangen und für die Weiterverarbeitung vorzubereiten, indem die empfangenen Daten in eine normalisierte Form (Events) übertragen werden. Es stehen mehrere vorgefertigte Adapter zur Verfügung, zum Beispiel für JMS, CSV und HTTP pub-sub. Zusätzlich ist es möglich, eigene Adapter für andere Protokolle zu erstellen, um sämtliche benötigte Daten aus anderen Anwendungen importieren (und exportieren) zu können, aus denen die Events gebildet werden. [16] PROCESSOR Der Processor ist das Kernstück einer OEP-Anwendung, und entspricht einem Event Processing Agent, vgl. Kapitel In einem Processor werden die Regeln einer Anwendung definiert. Im Assembly File wird ein Processor mit dem Element <wlevs:processor> angelegt, welchem ein ID-Attribut zugewiesen wird. Die Abfragen, die der Processor tätigt, sind in einem sogenannten Configuration File (siehe Code 5.13) hinterlegt, der ein Teil eines jeden Processors darstellt. Dieser befindet sich im wlevs Unterordner und kann beliebig benannt werden (Konvention: gleicher Name wie ProcessorID), muss jedoch die Endung.xml besitzen. [9, p. 94] Neben der Definition der Regeln wird im Configuration File den Outputchannels (Downstreamchannels) jeweils eine Regel zugewiesen, deren Output sie weiterleiten (siehe Hello World Beispiel Code 5.13). 23

24 Oracle CEP CHANNEL Channels stellen die Verbindungen zwischen den einzelnen Komponenten dar. Sie sind für die Weiterleitung von Events zuständig. Registriert werden sie, wie alle anderen Oracle CEP Komponenten auch, indem im Assembly File ein <wlevs:channel> Element erstellt wird. Dabei wird jedem Channel ein ID-Attribut zugewiesen. Steht ein Channel mit einem Processor in Verbindung, muss zusätzlich das Attribut event-type angegeben werden. [9, p. 92] Dieser Channel ist dann nur noch in der Lage, Events des angegebenen Typs weiterzuleiten (siehe Code 5.3 Zeile 1). Um Komponenten mit Channels zu verbinden, muss grundsätzlich die Richtung der Weiterleitung definiert werden. Dies geschieht mittels des Elements <wlevs:source>, welches auf eine zurückliegende Komponente verweist, die somit als Quelle fungiert. Zusätzlich können mittels des Elements <wlevs:listener> beliebig viele nachfolgende Komponenten (Downstream Listeners) registriert werden, die den Channel als Quelle nutzen (siehe Code 5.3 Zeile 2). Die Verweise Source und Listener können sowohl in Channels, als auch in anderen Komponenten hinterlegt sein. 1: <wlevs:channel id="helloworldinputchannel" event-type="helloworldevent"> 2: <wlevs:listener ref="helloworldprocessor" /> 3: </wlevs:channel> Code 5.3: Channelerstellung im Assembly File EVENT BEAN Event Beans können, genau wie Adapter, als Event Sources und Event Sinks genutzt werden. Das heißt, sie sind in der Lage Events zu empfangen, diese im Java Code zu verwenden, und an Downstream Listeners zu senden. Der Unterschied zu einem Adapter liegt darin, dass Event Beans innerhalb einer OEP-Anwendung verwendet werden, wobei Adapter den Eingangs- bzw. Ausgangsstrom einer Anwendung darstellen. [9] DEVELOPMENT ENVIRONMENT FÜR ECLIPSE Oracle CEP Development Environment for Eclipse ( kurz: Oracle CEP tools) ist eine Sammlung von Plugins für die Eclipse IDE, die das Entwickeln von Anwendungen mit Oracle CEP unterstützen soll. [16] 24

25 Oracle CEP PROJECT CREATION WIZARD Mit Hilfe des integrierten Project wizards ist es möglich, schnell und komfortabel ein Oracle CEP Projekt zu erstellen (Abbildung 5.3). Zusätzlich stehen vorgefertigte Einführungsbeispiele zur Verfügung (Abbildung 5.2). Abbildung 5.3: Creation Wizard 1 Abbildung 5.2: Creation Wizard 2 GRAPHISCHE EDITOREN In den vorherigen Abschnitten von Kapitel 5.2 wurde gezeigt, wie die einzelnen Komponenten eigenhändig in der entsprechenden Konfigurationsdatei erstellt werden. Oracle CEP bietet dafür zusätztlich auch graphische Editoren an, die dem Entwickler bei der Erstellung von Anwendungen unterstützen und ihm zusätzlich einen besseren visuellen Überblick bieten. Somit ist eine manuelle Bearbeitung der Konfigurationsdateien nicht mehr zwingend notwendig, denn dies kann über die jeweiligen visuellen Oberflächen abgewickelt werden. Die folgenden Abbildungen geben einen Überblick über die wichtigsten angebotenen Editoren. 25

26 Oracle CEP Event Type Definition: Abbildung 5.4: Event Type Definition Editor Assembly File: Abbildung 5.5: Assembly File Editor Configuration File: Abbildung 5.6: Configuration File Editor 26

27 Oracle CEP Manifest.mf: Abbildung 5.7: Manifest Datei Editor INTEGRIERTES SERVER MANAGEMENT Um Oracle CEP-Server komfortabel zu erstellen und zu verwalten, ist ein integriertes Server Management vorhanden. VISUELLE DARSTELLUNG VON EVENT PROCESSING NETWORK (EPN) Oracle CEP Tools bietet eine visuelle Darstellung, die alle Komponenten einer Anwendung und deren Zusammenhänge zeigt. Die Darstellung bietet, neben der Übersichtlichkeit für den Benutzer, auch die Möglichkeit Komponenten direkt über die Oberfläche zu erstellen und miteinander zu verbinden (Abbildung 5.8). Abbildung 5.8: EPN-Editor 27

28 Oracle CEP 5.3 ORACLE CONTINUOUS QUERY LANGUAGE Die in Oracle CEP verwendete deklarative Abfragesprache Oracle Continuous Query Language (Oracle CQL), die im Jahr 2009 zusammen mit der Version Oracle CEP 11g Release 1 eingeführt wurde, stellt eine Erweiterung der häufig verwendeten Abfragesprache von Datenbanken SQL (Structured Query Language) dar. Durch diese Erweiterung ist es möglich, neben Relationen nun auch Streams (Datenströme) zu verarbeiten. [17] Folgendes Beispiel (Code 5.4) zeigt eine sehr einfache Oracle CQL-Abfrage (Query). Die FROM- Klausel in Zeile 2 legt fest, aus welcher Quelle die Input-Events stammen. Bevor der Preis in der SELECT-Klausel (Zeile 1) für den Output selektiert wird, muss die Bedingung in der WHERE- Klausel (Zeile 3) erfüllt sein. In diesem Beispiel-Code sieht man, dass die Vorgehensweise einer (einfachen) Abfrage in Oracle CQL, einer in SQL stark ähnelt. 1: SELECT preis 2: FROM preisinputchannel 3: WHERE name = Erdoel Code 5.4: einfache CQL-Query Begrifflichkeiten, die aus der SQL-Umgebung bekannt sind und in Oracle CQL mit der gleichen Bedeutung verwendet werden, werden hier nicht weiter erläutert. Dazu gehören zum Beispiel: Joins, Views, Aggregationsfunktionen (z.b. count, sum, max, min, avg), HAVING, ORDER BY und GROUP BY. Zusätzlich zu den in SQL verwendeten Sprachelementen, gibt es jedoch durch die erwähnte Erweiterung auch zahlreiche neue, die die Verarbeitung von Events in Streams (Datenströmen) ermöglichen. Im Folgenden sollen einige Grundelemente von Oracle CQL kurz vorgestellt werden, die zum größten Teil auch in Kapitel 7.2 verwendet werden. EINSCHRÄNKUNG VON STREAMS MIT HILFE VON WINDOWS (WINDOW OPERATOREN) In Code 5.4 wurde ein Event im Augenblick seines Auftretens verarbeitet und gegebenenfalls das Ergebnis sofort weitergeleitet. Mit Hilfe eines Window-Operators ist es möglich, den Stream auf verschiedene Weisen einzuschränken. Ist es zum Beispiel erforderlich, den Durchschnittspreis der in den preisinputchannel ankommenden Preis-Events in einer 28

29 Oracle CEP bestimmten Zeitspanne herauszufinden, kann dies mittels des Window-Operators RANGE realisiert werden (Code 5.5). 1: SELECT AVG(preis) 2: FROM preisinputchannel [RANGE 10 MINUTES] Code 5.5: Window Operator RANGE Mit Hilfe des Window-Operators ROW ist es außerdem möglich, eine bestimmte Anzahl von Events festzulegen, deren Durchschnitt gebildet werden soll (Code 5.6). Dabei werden jeweils die zuletzt in den InputChannel ankommenden Events berücksichtigt. Dieses sogenannte Window ist im Gegensatz zu dem Window-Operator RANGE nicht zeitlich begrenzt, sondern solange gültig, bis die angegebene Anzahl durch ein weiteres ankommendes Event überschritten wird. 1: SELECT AVG(preis) 2: FROM preisinputchannel [ROWS 3] Code 5.6: Window Operator ROW Zusätzlich sind Windows in der Lage, Events nach einem bestimmten Attribut zu partitionieren, sodass wie im Code 5.7 verwendeten Beispiel dargestellt, von den jeweils letzten drei Events mit dem bestimmten Attribut name der Durchschnitt gebildet wird. 1: SELECT AVG(preis) 2: FROM preisinputchannel [PARTITION BY name ROWS 3] 3: GROUP BY name Code 5.7: Window Operator ROW mit Partitionierung PATTERN MATCHING Eines der wichtigsten Ziele von Complex Event Processing besteht darin, komplexe Ereignisse zu erkennen (siehe Definition Seite 14). Dazu müssen bestimmte Muster von Ereignissen, sogenannte Pattern, in einem Stream (Ereignisstrom) gefunden werden. Diese Muster können komplexe Bedingungen beinhalten, mit denen beispielsweise bestimmte Eventabfolgen erkannt werden. Diese Mustererkennung wird allgemein Pattern Matching genannt und in Oracle CQL durch den MATCH_RECOGNIZE-Operator realisiert. 29

30 Oracle CEP Im Folgenden ist eine beispielhafte Abfrage, die das Grundgerüst eines MATCH_RECOGNIZE- Operators beinhaltet, zu sehen. 1: SELECT M.preisAnstieg 2: FROM preisinputchannel 3: MATCH_RECOGNIZE ( 4: MEASURES 5: B.preis as preisanstieg 6: PATTERN (A B) 7: DEFINE 8: A as preis < 10.0, 9: B as preis > :) as M Code 5.8: Grundgerüst eines MATCH_RECOGNIZE Operators (angelehnt an [9, p. 199]) Die Pattern-Subklausel in Zeile 6 stellt den Kern eines Pattern Matchings dar, denn sie definiert die Reihenfolge von Events, die erkannt werden soll. Kommen die sogenannten Korrelationsvariablen, die in dem Beispiel A und B genannt wurden, in der angegeben Reihenfolge im Stream vor, matched das Pattern. Die Eigenschaften der Korrelationsvariablen werden in der DEFINE-Subklausel näher bestimmt (Zeile 7-9). Ist eine Korrelationsvariable nicht in der DEFINE-Subklausel näher definiert, gelten alle ankommenden Events als zutreffend. Um zum Beispiel in der SELECT-Klausel auf die Ergebnisse des Pattern Matching zugreifen zu können, muss einerseits dem MATCH_RECOGNIZE-Operator, wie in Zeile 10 zu sehen, ein Alias zugewiesen werden. Andererseits müssen in der MEASURES-Subklausel (Zeile 4-5) die gewünschten Attribute der Korrelationsvariablen angegeben werden. Ähnlich wie in Code 5.7 ist auch hier eine Partitionierung der Events nach einem bestimmten Attribut durch Einfügen einer PARTITION BY-Subklausel über der MEASURES-Subklausel möglich. Um die Pattern-Subklausel genauer zu spezifizieren, können sogenannte Pattern- Quantifikatoren als reguläre Ausdrücke hinter den Korrelationsvariablen definiert werden (einige Beispiele werden in Kapitel 7.2 aufgeführt):? null oder ein Events * null oder mehr Events + ein oder mehr Events OR-Operator () Gruppierung 30

31 Oracle CEP Bei der Benutzung solcher Pattern-Quantifikatoren ist jedoch zu berücksichtigen, dass eine Query entweder versucht, so viele Events wie möglich zu finden (greedy match) oder nach dem erstmaligen Eintreffen der Mindestbedingungen abbricht (reluctant match). Ein reluctant match wird durch das Hinzufügen eines Fragezeichens hinter dem Quantifikator ausgedrückt. Wird dem MATCH_RECOGNIZE-Operator die Subklausel ALL MATCHES hinzugefügt, wird dafür gesorgt, dass nicht nur die maximal zutreffenden Fälle gematched werden (greedy matches), sondern alle möglichen zutreffenden Kombinationen. Wenn Korrelationsvariablengruppen, das bedeutet mehrere aufeinanderfolgende Events, die alle die in der DEFINE-Subklausel festgehaltenen Bedingungen einer Korrelationsvariablen erfüllen, auftauchen, dann können neben den Standard Aggregationsfunktionen (avg, max, min und count) folgende neue Funktionen verwenden werden: First Zugriff auf das erste Event einer Korrelationsvariablengruppe Last Zugriff auf das letzte Event einer Korrelationsvariablengruppe Prev Zugriff auf das letzte Event vor dem Aktuellen (Verwendung nur innerhalb der MEASURES-Subklausel) Die count Aggregation hat in der Verwendung innerhalb des MATCH_RECOGNIZE-Operators eine besondere Bedeutung: Count (*) gibt die Anzahl aller Events des ankommenden Streams an Count (A.*) gibt die Anzahl aller Events der Korrelationsvariablengruppe A an Count (A.p) gibt die Anzahl aller Events der Korrelationsvariablengruppe A an, deren Eigenschaft (p) nicht null ist Oftmals ist auch eine zeitliche Eingrenzung des Pattern Matches sinnvoll oder notwendig. Dafür sind zwei verschiedene Möglichkeiten gegeben, die WITHIN-Subklausel sowie die DURATION-Subklausel, die je nach den Anforderungen des Anwendungsfalles gewählt werden. Die WITHIN-Subklausel überprüft, ob die angegebene Bedingung innerhalb einer bestimmten Zeitspanne erfüllt wird. Es wird festgelegt, dass die Abfrage spätestens nach Ablauf der Zeit beendet wird. Die DURATION-Subklausel überprüft dagegen, ob nach Ablauf einer bestimmten Zeitspanne die angegebenen Bedingungen noch immer erfüllt sind. In 31

32 Oracle CEP Kapitel 7.2 werden diese beiden Subklauseln bei der Erstellung der Oracle CQL-Regeln angewendet. 5.4 HELLO WORLD BEISPIEL Im folgenden Abschnitt sollen die zuvor in Kapitel 5.2Fehler! Verweisquelle konnte nicht gefunden werden. vorgestellten Oracle CEP Komponenten in einem Hello World Beispiel verdeutlicht werden. Wie Abbildung 5.9 zeigt, enthält das Hello World Beispiel fünf Komponenten: helloworldadapter: Erzeugt in regelmäßigen Abständen HelloWorldEvents (HelloWorld- Nachrichten mit Zeitstempel) helloworldinputchannel: Sendet die aus dem helloworldadapter erzeugten HelloWorldEvents als Stream an den Complex Event Processor. helloworldprocessor: Leitet alle hineinkommenden HelloWorldEvents unter Benutzung von CQL weiter. helloworldoutputchannel: Leitet die durch den helloworldprocessor gelaufenen HelloWorldEvents zu der helloworldeventbean. helloworldeventbean: Empfängt HelloWorldEvents und gibt diese auf der Konsole aus. Abbildung 5.9: EPN HelloWorld-Beispiel Mit Hilfe des Project Creation Wizards wird ein neues Oracle CEP Projekt mit Namen HelloWorld erstellt. Im automatisch generierten src-ordner wird ein neues Package, welches den Namen de.hshannover.liebetruth.ba.helloworld.myevents trägt, angelegt. Darin wird die Javaklasse HelloWorldEvent erstellt. Die Klasse enthält als einziges Attribut den String message mit den passenden Gettern und Settern. In dem Assembly File HelloWorld.context.xml, welches im spring-ordner vorliegt, wird anschließend das Event im Event-Repository registriert. 1: <wlevs:event-type-repository> 2: <wlevs:event-type type-name="helloworldevent"> 32

33 Oracle CEP 3: <wlevs:class>de.hshannover.liebetruth.ba.helloworld.events.helloworldevent 4: </wlevs:class> 5: </wlevs:event-type> 6: </wlevs:event-type-repository> Code 5.9: Registrierung des HelloWorldEvents im Assembly File Im nächsten Schritt wird der Adapter erstellt. Dazu wird in dem dafür erstellten Package de.hshannover.liebetruth.ba.helloworld.adapters die Javaklasse HelloWorldAdapter angelegt. Eine Adapterklasse muss, um Referenzen zu den Downstream Listeners zu erhalten, wie in Code 5.10 gezeigt, das Interface Streamsource implementieren. [9] 1: private StreamSender eventsender; 2: 4: public void seteventsender(streamsender sender) { 5: eventsender = sender; 6: } Code 5.10: Implementierung des Interface Streamsource Zudem muss der Adapter das Interface RunnableBean implementieren. In der run() Methode werden HelloWorldEvents in regelmäßigen Zeitabständen generiert und gesendet. Die suspend() Methode dient dazu, den Adapter von außen stoppen zu können. 1: public class HelloWorldAdapter implements StreamSource, RunnableBean{ 2: private StreamSender eventsender; 3: private static final int SLEEP_MILLIS = 1000; 4: 5: private DateFormat dateformat; 6: private boolean suspended; 7: 9: public void seteventsender(streamsender sender) { 10: eventsender = sender; 11: } 13: public void run() { 14: dateformat = DateFormat.getTimeInstance(); 15: suspended = false; 16: while (!issuspended()) { 17: 18: generatehellomessage(); 19: 33

34 Oracle CEP 20: try { 21: synchronized (this) { 22: wait(sleep_millis); 23: } 24: } catch (InterruptedException e) { 25: e.printstacktrace(); 26: } 27: } 28: } 29: 31: public void suspend() throws Exception { 32: suspended = true; 33: } 34: private boolean issuspended() { 35: return suspended; 36: } 37: 38: private void generatehellomessage() { 39: String message = "Aktuelle Uhrzeit: " + dateformat.format(new Date()); 40: HelloWorldEvent event = new HelloWorldEvent(); 41: event.setmessage(message); 42: eventsender.sendinsertevent(event); 43: } 44:} Code 5.11: Quellcode HelloWorldAdapter.java Nach der Implementierung des helloworldadapters, wird über einen Rechtsklick auf das Projekt der EPN Editor geöffnet. Im Editor lässt sich ein neuer Adapter erstellen, dem die eben implementierte Klasse zugewiesen wird. Der helloworldinputchannel lässt sich auf dieselbe Weise anlegen und wird anschließend mit dem Adapter verbunden. Mittels eines Rechtsklicks auf den Channel gelangt man direkt zu dem im Assembly File definierten Channel. An dieser Stelle wird dem Channel der event-type HelloWorldEvent zugewiesen. 1: <wlevs:channel id="helloworldinputchannel" event-type="helloworldevent"/> Code 5.12: Zuweisung des event-types eines Channels im Assembly File Der helloworldprocessor, sowie der helloworldoutputchannel werden ebenfalls über den EPN-Editor erstellt und wie in Abbildung 5.9 dargestellt verbunden. Über einen Rechtsklick auf den Processor wird das entsprechende Configuration File geöffnet und die simple Regel, zusehen in Code 5.13 Zeile 5, implementiert. Zeile dieser Abbildung zeigt die Zuweisung 34

35 Oracle CEP der helloworldrule zu dem helloworldoutputchannel. Somit werden die von der Regel erkannten Outputevents als Stream an den Channel gesendet. 1: <processor> 2: <name>helloworldprocessor</name> 3: <rules> 4: <query id="helloworldrule"> 5: <![CDATA[ select * from helloworldinputchannel ]]> 6: </query> 7: </rules> 8: </processor> 9: 10:<channel> 11: <name>helloworldoutputchannel</name> 12: <selector>helloworldrule</selector> 13:</channel> Code 5.13: Implementierung der Regel und Zuweisung des Channels Im nächsten Schritt wird in dem Package de.hshannover.liebetruth.ba.helloworld.mybeans die Javaklasse helloworldeventbean erstellt (Code 5.14). Die Aufgabe der EventBean ist in diesem Beispiel das Empfangen von HelloWorldEvents und deren Ausgabe auf der Konsole. Dafür muss das Interface StreamSink implementiert werden. Über die Hookmethode oninsertevent() werden HelloWorldEvents empfangen und anschließend ausgegeben. 1: public class HelloWorldBean implements StreamSink { 2: 4: public void oninsertevent(object event) { 5: if (event instanceof HelloWorldEvent) { 6: HelloWorldEvent helloworldevent = (HelloWorldEvent) event; 7: System.out.println("Message: " + helloworldevent.getmessage()); 8: } 9: } 10:} Code 5.14: Erstellung der HelloWorldEventBean Im Assembly File wird die zuvor erstellte Javaklasse als EventBean registriert (vgl. Code 5.15). Den helloworldoutputchannel mit der EventBean zu verknüpfen kann, wie bei den Komponenten zuvor gezeigt, visuell über den EPN-Editor geschehen oder über ein zusätzliches <wlevs:listener> Element beim OutputChannel bzw. ein <wlevs:source> Element bei der EventBean im Assembly File. 35

36 Oracle CEP 1: <wlevs:event-bean id="helloworldeventbean" class="de.hshannover.liebetruth.ba.helloworld.eventbeans.helloworldeventbean"/> Code 5.15: Registrierung der helloworldeventbean im Assembly File Zur Ausführung des HelloWorld-Beispiels, muss das Projekt auf einem Oracle CEP Server deployed werden. Dafür wird komfortabel über die Eclipse-View Server (Abbildung 5.10) ein neuer Oracle CEP Server angelegt. Über das Kontextmenü Add and Remove... des Servers wird das Projekt dem Server zugewiesen und im Anschluss automatisch deployed. Wird der Server gestartet, fährt dieser hoch, lädt das Bundle HelloWorld und HelloWorldEvents werden auf der Konsole ausgegeben. Abbildung 5.10: Eclipse-View Server 36

37 Ereignisse einer Photovoltaikanlage 6 EREIGNISSE EINER PHOTOVOLTAIKANLAGE 6.1 AUFBAU EINER PHOTOVOLTAIKANLAGE Photovoltaikanlagen sind dazu in der Lage, Sonnenenergie in nutzbaren Strom umzuwandeln. Zuständig für die Stromerzeugung sind dabei Photovoltaikmodule, die aus einer Vielzahl von einzelnen, siliziumbasierten Solarzellen bestehen. Die Spannung der einzelnen Photovoltaikmodule addiert sich, wenn diese zu sogenannten Strings in Reihe geschaltet werden, welche dann wiederum parallelgeschaltet werden können. Allerdings ist es auf diese Weise nur möglich, die Sonnenenergie in Gleichstrom umzuwandeln. Da das allgemeine Stromnetz jedoch Wechselstrom benötigt, muss der Gleichstrom zuerst umgewandelt werden. Diese Umwandlung geschieht mit Hilfe eines Wechselrichters, der zusätzlich auch in der Lage ist, die Photovoltaikanlage am optimalen Betriebspunkt zu führen sowie ständig ihre Betriebsdaten zu erfassen und weiterzuleiten. Meistens sind mehrere Photovoltaikmodule mit einem Wechselrichter verbunden, aber größere Anlagen können auch eine Reihe von Wechselrichtern benötigen. Abbildung 6.1 zeigt den vereinfachten Aufbau einer Photovoltaikanlage. [18] [19] Abbildung 6.1: schematischer Aufbau einer Photovoltaikanlage 37

38 Ereignisse einer Photovoltaikanlage 6.2 MASCHINENEREIGNISSE Als Maschinenereignisse werden Ereignisse bezeichnet, die Informationen über einer Maschine liefern. Diese Informationen können je nach Einsatzbereich der Maschine sehr unterschiedlich ausfallen, da zum Beispiel eine Fertigungsanlage völlig andere Aufgaben erfüllt als beispielsweise eine Photovoltaikanlage. Im Allgemeinen können die Informationen jedoch den folgenden vier Kategorien zugeordnet werden: Zählerstände Zustandsinformationen Meldungen Metainformationen Die Maschinenereignisse einer Photovoltaikanlage setzen sich aus den Betriebsdaten zusammen, die der Wechselrichter erfassen und über eine Schnittstelle weiterleiten kann. Je nach Wechselrichtertyp können die erfassten Daten sich geringfügig unterscheiden, bilden aber immer einen Konsens, der folgende Daten beinhaltet: Aktuelle Netzspannung Spannung an den Solarmodulen Gesamte eingespeiste Energiemenge seit Tagesbeginn Momentan eingespeiste Leistung Diese Daten werden kontinuierlich mit Hilfe eines M2M-Systems aus dem Wechselrichter ausgelesen und zur Weiterverarbeitung und Auswertung weitergesendet. [3] EREIGNISMODELL In der Masterarbeit Event-Driven Architecture in M2M-Systemen aus dem Jahr 2011 von Ilja Hellwig wurde bereits ein Maschinenereignismodell für das Szenario einer Auswertung von Photovoltaikanlagen erstellt. Dieses Ereignismodell wird größtenteils auch in dieser Arbeit verwendet und ist in der folgenden Abbildung zu sehen. 38

39 Ereignisse einer Photovoltaikanlage Abbildung 6.2: Ereignismodell der Maschinenereignisse Die Herleitung dieses Modells, sowie die Bedeutung und Funktion der abstrakten Ereignisse ist in der genannten Masterarbeit [3] ausführlich beschrieben und wird daher an dieser Stelle nicht weiter erläutert. Die Erklärung der übrigen Ereignisse erfolgt zusammen mit der Vorstellung der Ereignisregeln 9 im nächsten Abschnitt. 9 Die Implementierung der Ereignisregeln in Oracle CQL erfolgt in Kapitel

40 Ereignisse einer Photovoltaikanlage EREIGNISREGELN Die Verarbeitung der Maschinenereignisse umfasst insgesamt vier Ereignisregeln, die die komplexen Ereignisse LowNetPower-, MissingInverterData-, LowNetVoltage- und StateProblem-Ereignis erzeugen und im Folgenden vorgestellt werden. Diese vier Ereignisregeln basieren auf der Auswertung von InverterMeasurement-Ereignissen. Ein InverterMeasurement-Ereignis beinhaltet dabei die von einem Wechselrichter erfassten Betriebsdaten einer Photovoltaikanlage. LOWNETPOWER-EREIGNIS Ein LowNetPower-Ereignis wird erkannt, wenn die aktuell von einem Wechselrichter gemessene Leistung zu niedrig ist. Um festzustellen, ob tatsächlich eine Störung vorliegt, oder ob eine zu geringe Sonneneinstrahlung (zum Beispiel in der Nacht) zu der Leistungseinbuße geführt hat, werden die Messungen von verschiedenen geographisch naheliegenden Wechselrichtern verglichen. LOWNETVOLTAGE-EREIGNIS Unterschreitet die anliegende Netzspannung eines Wechselrichters plötzlich wiederholt einen festgelegten Schwellenwert, während die generierte Spannung gleichbleibt oder ansteigt, so wird ein LowNetVoltage-Ereignis erkannt. Ursache eines solchen Verhaltens kann beispielsweise eine ausgelöste Sicherung sein, sodass der Wechselrichter in diesem Fall keine Energie einspeisen kann. MISSINGINVERTERDATA-EREIGNISSE MissingInverterData-Ereignisse repräsentieren das Fehlen von Wechselrichtermessungen, obwohl der Wechselrichter in Betrieb sein sollte. Dies wird erkannt, wenn über einen bestimmten Zeitraum InverterMeasurement-Ereignisse eines Wechselrichters ausbleiben, während in der Nähe befindliche Wechselrichter weiterhin Ereignisse liefern. STATEPROBLEM-EREIGNIS Ist ein Wechselrichter in der Lage, eigenständig Fehlfunktionen zu erkennen, dann wird dies innerhalb des Attributs state des InverterMeasurement-Ereignisses festgehalten. 40

41 Ereignisse einer Photovoltaikanlage Dementsprechend wird ein StateProblem-Ereignis erkannt, sobald das Attribut state einen Wert über null aufweist. 6.3 KOMMUNIKATIONSEREIGNISSE Der Kommunikationsweg bei Photovoltaikanlagen stellt einen essentiellen Bestandteil für die Überwachung solcher Anlagen dar. Eine funktionierende Kommunikation sorgt dafür, dass Maschinenereignisse weitergeleitet und verarbeitet werden können. Daher ist eine zusätzliche Auswertung von Kommunikationsereignissen besonders wichtig. [3] Die Kommunikation kann, wie in Kapitel 2.1 bereits erwähnt, über verschiedene Kommunikationsnetzwerke durchgeführt werden. Bei der im Folgenden entwickelten Anwendung zur Überwachung von Photovoltaikanlagen wird das GSM/GPRS-Netz verwendet. GSM/GPRS GPRS (General Packet Radio Service) ermöglicht eine drahtlose Datenübertragung über ein beliebiges GSM-Netz 10. Bei dieser Technologie werden die Daten in kleinen Paketen zerlegt über das Internet Protocol (IP) 11 übermittelt und beim Empfänger wieder zusammengesetzt. In Deutschland verteilt gibt es zahlreiche GSM-Basisstationen, die von verschiedenen Providern betrieben werden, und jeweils einen bestimmten Empfangsradius bieten. Folgende Abbildung 6.3 beschreibt eine IP-basierte Kommunikation über GSM/GPRS. [3] 10 GSM-Netz: [Zugriff am ] 11 Internet Protocol, RFC 791 (Standard), September Updated by RFC

42 Ereignisse einer Photovoltaikanlage Abbildung 6.3: IP-basierte Datenkommunikation mittels GPRS [3] Auf Grund verschiedener Faktoren, wie zum Beispiel eine schlechte Funkverbindung, überlastete GSM-Basisstationen oder sonstige Netzwerkprobleme kann es häufiger zu Verbindungsabbrüchen kommen. Auch typisch sind Wechsel von einer GSM-Basisstation zu einer anderen. Einige dieser Faktoren verursachen jedoch nur eine kurzfristige Unterbrechung der Verbindung, die nach kurzer Zeit selbstständig wiederhergestellt wird. Diese Verhaltensweisen müssen bei der Ereignisverarbeitung durch entsprechende Regeln berücksichtigt werden. [3] EREIGNISMODELL In der Masterarbeit Event-Driven Architecture in M2M-Systemen aus dem Jahr 2011 von Ilja Hellwig wurde bereits ein Kommunikationsereignismodell für das Szenario einer Auswertung von Photovoltaikanlagen erstellt. Dieses Ereignismodell ist sehr gut geeignet, die in Kapitel 6.3 erwähnten Probleme in einem GSM/GPRS-Netz durch entsprechend implementierte Regeln zu lösen und wurde deshalb größtenteils übernommen. Die hier dargestellten Ereignisse werden, bis auf die abstrakten Ereignisse, im nächsten Abschnitt zusammen mit den Ereignisregeln vorgestellt und erläutert. 42

43 Ereignisse einer Photovoltaikanlage Abbildung 6.4: Kommunikationsereignisse bei Verwendung von GSM/GPRS-Netzen EREIGNISREGELN Die folgenden Ereignisregeln zur Erkennung und Verarbeitung der Kommunikationsereignisse basieren auf den vom Wechselrichter zur Verfügung gestellten Ereignissen GPRSConnect und GPRSDisconnect. Ein GPRSConnect-Ereignis steht dabei für eine erfolgreich hergestellte Verbindung zwischen einer Maschine und dem zentralen Knotenpunkt, während ein GPRSDisconnect-Ereignis auftritt, sobald diese Verbindung unterbrochen ist. CONNECTIONPROBLEM-EREIGNIS ConnectionProblem-Ereignisse treten auf, wenn eine Maschine in kurzen Abschnitten wiederholt eine Verbindung aufbaut. Möglicher Grund hierfür kann ein defektes Bauteil oder eine gestörte Stromversorgung sein. MISSINGCONNECTION-EREIGNIS Ein Ereignis des Typs MissingConnection steht für eine unterbrochene Verbindung. Wie in Kapitel 6.3 erwähnt, ist zum Beispiel ein kurzzeitiger Verbindungsabbruch bei Benutzung eines GSM-Netzes nicht ungewöhnlich. Deshalb darf für die Erkennung eines MissingConnection- 43

44 Ereignisse einer Photovoltaikanlage Ereignisses nach Auftreten eines GPRSDisconnect-Ereignisses innerhalb einer bestimmten Zeitspanne kein GPRSConnect-Ereignis der gleichen Maschine auftreten. PROVIDERPROBLEM-EREIGNIS Tritt eine bestimmte Anzahl an MissingConnection-Ereignissen innerhalb einer bestimmten Zeit auf, wird ein ProviderProblem-Ereignis erkannt. Dabei müssen die MissingConnection- Ereignisse den gleichen GSM-Provider aufweisen, das bedeutet die Attribute mnc und mcc der Ereignisse müssen gleich sein. REGIONALPROBLEM-EREIGNIS Tritt eine gewisse Anzahl an MissingConnection-Ereignissen innerhalb einer bestimmten Zeitspanne auf und liegen diese zudem noch regional nah beieinander, ist ein RegionalProblem-Ereignis erkannt. Dies kann auf Funktionsstörungen von GPRS-Netzen hinweisen, die providerübergreifend eintreten können, jedoch örtlich begrenzt werden können. EXISTINGCONNECTION-EREIGNIS Ein ExistingConnection-Ereignis tritt auf, wenn auf ein MissingConnection-Ereignis ein GPRSConnect-Ereignis folgt. Jedoch darf anschließend innerhalb einer gewissen Zeitspanne kein GPRSDisconnect-Ereignis auftreten. 44

45 Technische Umsetzung 7 TECHNISCHE UMSETZUNG 7.1 EVENT PROCESSING NETWORK FÜR PHOTOVOLTAIKANLAGEN Dieser Abschnitt stellt das entworfene Event Processing Network (EPN) für die Verarbeitung sämtlicher Ereignisse einer Photovoltaikanlage vor. Die in Kapitel und 6.3.2vorgestellten Regeln werden auf unterschiedliche Processoren (vgl. Kapitel 5.2.3) aufgeteilt, wobei erneut zwischen Kommunikations- und Maschinenereignissen unterschieden wird. Jedem Processor wird eine Regelmenge zugewiesen wird, der damit eine bestimmte Aufgabenbereich abdeckt, somit wird das Gesamtsystem durch die Verteilung der Komplexität übersichtlicher, verständlicher und wartungsfreundlicher. Die Verarbeitung der Kommunikationsereignisse, zu sehen im roten Kasten in Abbildung 7.1, erfolgt über zwei Processoren, dem GPRSConnection-Processor und dem GPRSNetwork- Processor. Aus den einfachen Ereignissen GPRSDisconnect und GPRSConnect werden zunächst in dem GPRSConnection-Processor die Ereignisse MissingConnection und ConnectionProblem erzeugt, welche nun einen höheren Abstraktiongrad aufweisen. Die so gewonnenen Ereignisse werden anschließend zur Ereignisbehandlung weitergeleitet, zudem werden MissingConnection-Ereignisse zusätzlich in den GPRSNetwork-Processor weitergeleitet. Dieser ist für die Erzeugung der komplexen Ereignisse ProviderProblem, RegionalProblem und ExistingConnection verantwortlich. Die auftretenden Maschinenereignisse (InverterMeasurements) werden vom InverterProblem-Processor empfangen und ausgewertet. Dabei entstehen die komplexen, in Kapitel erklärten Ereignisse LowNetVoltage, LowNetPower, StateProblem und MissingInverterData, die direkt zur Ereignisbehandlung weitergereicht werden. 45

46 Technische Umsetzung Abbildung 7.1: Event Processing Network für Photovoltaikanlagen (Aufgrund des offenen Problems bei der Implementierung der Regeln (beschrieben in Kapitel 8.2), wurden die Ereignisse MissingConnection sowie ExistingProblem nicht in dem GPRSConnection-Processor bzw. dem GPRSNetwork-Processor erkannt und erzeugt, sondern mit Hilfe eines Adapters importiert, wie in Abbildung 7.2 zu sehen ist.) 7.2 IMPLEMENTIERUNG In folgendem Teilabschnitt wird zuerst die Implementierung der benötigten Oracle CEP Komponenten gezeigt, wobei die Realisierung der Processoren danach gesondert behandelt wird IMPLEMENTIERUNG DER ORACLE CEP KOMPONENTEN Zuerst wurden die in Kapitel und vorgestellten Ereignismodelle in Javaklassen abgebildet. Diese wurden anschließlich über das Assemblyfile beim OEP-Container registriert. 1: <wlevs:event-type-repository> 2: <wlevs:event-type type-name="gprsdisconnect"> 3: <wlevs:class>de.hshannover.swa.m2m.cep.eventmodel.gprsdisconnect</wlevs:class> 4: </wlevs:event-type> 5: <wlevs:event-type type-name="gprsconnect"> 6: <wlevs:class>de.hshannover.swa.m2m.cep.eventmodel.gprsconnect</wlevs:class> 7: </wlevs:event-type>... 46

Complex Event Processing für intelligente mobile M2M- Kommunikation

Complex Event Processing für intelligente mobile M2M- Kommunikation Complex Event Processing für intelligente mobile 2- Kommunikation Hochschule Hannover arcel etzdorf, Prof. Dr. Ralf Bruns, Prof. Dr. Jürgen Dunkel, Henrik asbruch Inside 2 Ilja Hellwich, Sven Kasten 2

Mehr

Event Stream Processing & Complex Event Processing. Dirk Bade

Event Stream Processing & Complex Event Processing. Dirk Bade Event Stream Processing & Complex Event Processing Dirk Bade Die Folien sind angelehnt an eine Präsentation der Orientation in Objects GmbH, 2009 Motivation Business Activity Monitoring Sammlung, Analyse

Mehr

Complex Event Processing. Sebastian Schmidbauer 18.01.2011

Complex Event Processing. Sebastian Schmidbauer 18.01.2011 Complex Event Processing Sebastian Schmidbauer 18.01.2011 Cirquent im Profil Zahlen Kompetenzen 350 300 250 200 150 100 50 0 1748 1747 1722 1515 1041 1180 286 266 247 260 165 139 2003 2004 2005 2006 2007

Mehr

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

Dokumentation zum Projekt Mail-Adapter in SAP PI. 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696

Dokumentation zum Projekt Mail-Adapter in SAP PI. 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696 Dokumentation zum Projekt Mail-Adapter in SAP PI 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696 Inhalt 1. Einleitung... 2 2. Vorgehen... 3 1. Datentyp für die Mail einrichten... 3 2. Message Typen

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Das Interceptor Muster

Das Interceptor Muster Das Interceptor Muster Implementierung des Interceptor Musters basierend auf OSGi and Friends Benjamin Friedrich Hochschule für Technik und Wirtschaft des Saarlandes Praktische Informatik - Entwurfsmuster

Mehr

Software Engineering II

Software Engineering II Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters

Mehr

EDI CONNECT. für Microsoft Dynamics NAV. Auf einen Blick:

EDI CONNECT. für Microsoft Dynamics NAV. Auf einen Blick: Seite 1 PROTAKT Speziallösung EDI Connect Auf einen Blick: EDI CONNECT für Microsoft Dynamics NAV Elektronischer Datenaustausch ganz effizient und einfach über Ihr Microsoft Dynamics NAV System. Vollständige

Mehr

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz Einführung in das Microsoft.NET-Framework Programmiersprache C# MEF Das Managed Extensibility Framework André Kunz 21.09.2010 1 In dieser Einführung bekommen Sie einen kurzen Einstieg in das.net-framework

Mehr

INFORMATION MONITOR HSM SOFTWARE GMBH CLIENT-INSTALLATION

INFORMATION MONITOR HSM SOFTWARE GMBH CLIENT-INSTALLATION INFORMATION MONITOR HSM SOFTWARE GMBH CLIENT-INSTALLATION Allgemein Infomon bietet die Architektur für das Informations-Monitoring in einer Windows- Topologie. Die Serverfunktionalität wird in einer IIS-Umgebung

Mehr

Energiebuchhaltung Salzburg: Zählerdaten erfassen für den Vergleich von Bedarfs- und Verbrauchsdaten

Energiebuchhaltung Salzburg: Zählerdaten erfassen für den Vergleich von Bedarfs- und Verbrauchsdaten Energiebuchhaltung Salzburg: Zählerdaten erfassen für den Vergleich von Bedarfs- und Verbrauchsdaten Benutzerhandbuch für Gemeinden, Bauträger und Hausverwaltungen Salzburg, 2. April 2013 1 Grundidee Die

Mehr

Erweiterung eines SMIL Players für die Darstellung von Transparenzen und SVG Inhalten

Erweiterung eines SMIL Players für die Darstellung von Transparenzen und SVG Inhalten Bachlor-Abschlussarbeit Erweiterung eines SMIL Players für die Darstellung von Transparenzen und SVG Inhalten im Studiengang Informatik der Fakultät IV - Wirtschaft und Informatik Sommersemester 2009 Burim

Mehr

2 Ist-Zustand des Systems 3

2 Ist-Zustand des Systems 3 Pflichtenheft Softwaretechnologie-Projekt für die ITC AG Gruppe 05 Tabelle 1: Historie Version Beschreibung Autor, Datum 0.1 Erstentwurf Sven Goly, 28.10.2014 0.2 Portierung in Latex, Kriterien Sven Goly,

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

Information-Design-Tool

Information-Design-Tool Zusatzkapitel Information-Design-Tool zum Buch»HR-Reporting mit SAP «von Richard Haßmann, Anja Marxsen, Sven-Olaf Möller, Victor Gabriel Saiz Castillo Galileo Press, Bonn 2013 ISBN 978-3-8362-1986-0 Bonn

Mehr

Web-Anwendungsentwicklung mit dem Delivery Server

Web-Anwendungsentwicklung mit dem Delivery Server Web-Anwendungsentwicklung mit dem Delivery Server Java-Framework auf Basis der Open API Bernfried Howe, Webertise Consulting GmbH WEBertise Consulting Dipl. Informatiker (Wirtschaftsinformatik) 2001-2010

Mehr

ZENITY - Die Software für Ihre Unternehmens-Releaseplanung

ZENITY - Die Software für Ihre Unternehmens-Releaseplanung ZENITY - Die Software für Ihre Unternehmens-Releaseplanung RELEASEPLANUNG HEUTE Heutige Anwendungen in in Grossunternehmen sind sind keine keine alleinstehenden alleinstehenden Insel-Applikationen Insel-Applikationen

Mehr

Installationsanleitung für R

Installationsanleitung für R Installationsanleitung für R R ist eine Programmiersprache und Statistiksoftware zur Analyse von Daten und deren graphischer Darstellung. Um in R zu programmieren, ist zunächst die R- Basissoftware zu

Mehr

Zeiterfassung-Konnektor Handbuch

Zeiterfassung-Konnektor Handbuch Zeiterfassung-Konnektor Handbuch Inhalt In diesem Handbuch werden Sie den Konnektor kennen sowie verstehen lernen. Es wird beschrieben wie Sie den Konnektor einstellen und wie das System funktioniert,

Mehr

Einführung in Eclipse und Java

Einführung in Eclipse und Java Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Einführung in Eclipse und Java Dipl.Inf. Manuel Götz Lehrstuhl für Angewandte Informatik

Mehr

EAI - Enterprise Application Integration

EAI - Enterprise Application Integration EAI - Enterprise Application Integration Jutta Mülle WS 2005/2006 EAI - Folie 1 Überblick und Begriffsbildung Zusammenfassung und Ausblick hinweise EAI - Folie 2 Conclusion EAI Enterprise Application Integration

Mehr

Spezifikationen und Voraussetzung

Spezifikationen und Voraussetzung Projekt IGH DataExpert Paynet Adapter Spezifikationen Voraussetzungen Datum : 21.07.08 Version : 1.0.0.2 21.07.2008 Seite 1 von 7 Inhaltsverzeichnis 1 Einleitung... 3 2 Architektur... 3 2.1 Grundsätze

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM. Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher

Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM. Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher 729631 745097 736477 745011 741297 Inhalt Schlussbewertung... 3 Bewertung

Mehr

Innovator 11 excellence. DDL importieren. Data-Definition-Language-Dateien in Datenbankschema importieren. HowTo. www.mid.de

Innovator 11 excellence. DDL importieren. Data-Definition-Language-Dateien in Datenbankschema importieren. HowTo. www.mid.de Innovator 11 excellence DDL importieren Data-Definition-Language-Dateien in Datenbankschema importieren HowTo www.mid.de Zweck In Innovator Data excellence können Sie mit dem DDL-Import Ihr physisches

Mehr

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum Starthilfe für C# Inhaltsverzeichnis Allgemeines... 2 Bezugsquellen... 2 SharpDevelop... 2.NET Runtime... 2.NET SDK... 2 Installation... 2 Reihenfolge... 2 Vorschlag für eine Ordnerstruktur... 3 Arbeit

Mehr

Software Requirements Specification

Software Requirements Specification Software Requirements Specification Identifikation von Sehenswürdigkeiten basierend auf Bildinhalten Iterationsschritt: 3 Abgabedatum: 08.06.2010 Gruppe 37: Matthias Hochsteger 0627568 Josef Kemetmüller

Mehr

Alerts für Microsoft CRM 4.0

Alerts für Microsoft CRM 4.0 Alerts für Microsoft CRM 4.0 Benutzerhandbuch Der Inhalt des Dokuments ist Änderungen vorbehalten. Microsoft und Microsoft CRM sind registrierte Markenzeichen von Microsoft Inc. Alle weiteren erwähnten

Mehr

Übungen zur Android Entwicklung

Übungen zur Android Entwicklung Übungen zur Android Entwicklung Aufgabe 1 Hello World Entwickeln Sie eine Hello World Android Applikation und laden diese auf den Emulator. Leiten Sie hierfür die Klasse android.app.activity ab und entwerfen

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

SiteAudit Knowledge Base. Move Add Change Tracking. Vorteile Übersicht. In diesem Artikel: Vorteile Übersicht Funktionsübersicht Berichte anpassen

SiteAudit Knowledge Base. Move Add Change Tracking. Vorteile Übersicht. In diesem Artikel: Vorteile Übersicht Funktionsübersicht Berichte anpassen SiteAudit Knowledge Base Move Add Change Tracking Dezember 2010 In diesem Artikel: Vorteile Übersicht Funktionsübersicht Berichte anpassen MAC Benachrichtigungen Vorteile Übersicht Heutzutage ändern sich

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Filterregeln... 1. Einführung... 1. Migration der bestehenden Filterregeln...1. Alle eingehenden Nachrichten weiterleiten...2

Filterregeln... 1. Einführung... 1. Migration der bestehenden Filterregeln...1. Alle eingehenden Nachrichten weiterleiten...2 Jörg Kapelle 15:19:08 Filterregeln Inhaltsverzeichnis Filterregeln... 1 Einführung... 1 Migration der bestehenden Filterregeln...1 Alle eingehenden Nachrichten weiterleiten...2 Abwesenheitsbenachrichtigung...2

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

Software Engineering I

Software Engineering I Software I Übungsblatt 1 + 2 Claas Pinkernell Technische Universität Braunschweig http://www.sse.cs.tu-bs.de/ Seite 2 Welche Werkzeuge? Programmiersprache Java Integrierte Entwicklungsumgebung Eclipse

Mehr

Handbuch für die Erweiterbarkeit

Handbuch für die Erweiterbarkeit Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Preisaktualisierungen via BC Pro-Catalogue

Preisaktualisierungen via BC Pro-Catalogue Preisaktualisierungen via BC Pro-Catalogue 1. Allgemein Seite 1 2. Anwendungsfall : Lieferant mit im System bereits vorhandenen Katalog Seite 2-3 3. Anwendungsfall : Neuer Lieferant Seite 4-8 1. Allgemein

Mehr

Berichtsmanagement. mehr unter www.ees-online.de. Berichte aus aktuellen und historischen Daten erstellen und weiterverarbeiten

Berichtsmanagement. mehr unter www.ees-online.de. Berichte aus aktuellen und historischen Daten erstellen und weiterverarbeiten Berichtsmanagement Berichte aus aktuellen und historischen Daten erstellen und weiterverarbeiten Zuverlässige und regelmäßige Berichterstattung ist für die Überwachung von weiträumig verteilten Anlagen

Mehr

Content Management Systeme

Content Management Systeme Content Management Systeme Ein Vergleich unter besonderer Berücksichtigung von CoreMedia und TYPO3 Bachelorthesis im Kooperativen Bachelor Studiengang Informatik (KoSI) der Fachhochschule Darmstadt University

Mehr

1 Registrieren Sie sich als Benutzer auf dem Televes. 2 Sobald ein Konto erstellt ist, können Sie auf das Portal

1 Registrieren Sie sich als Benutzer auf dem Televes. 2 Sobald ein Konto erstellt ist, können Sie auf das Portal UCDC (2168) Die Software ermöglicht eine Fern- oder lokale Wartung von einer TOX Kopfstelle, mit einem Controller CDC-IP/HE oder CDC-IP/GSM Passend zu T0X und TO5 Kopfstellen (UNI2000). Einstellung, Wartung,

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

1 Die Active Directory

1 Die Active Directory 1 Die Active Directory Infrastruktur Prüfungsanforderungen von Microsoft: Configuring the Active Directory Infrastructure o Configure a forest or a domain o Configure trusts o Configure sites o Configure

Mehr

Neuerungen Analysis Services

Neuerungen Analysis Services Neuerungen Analysis Services Neuerungen Analysis Services Analysis Services ermöglicht Ihnen das Entwerfen, Erstellen und Visualisieren von Data Mining-Modellen. Diese Mining-Modelle können aus anderen

Mehr

1. Einführung. 2. Vorbereitung zur Installation. 1.1 Eclipse

1. Einführung. 2. Vorbereitung zur Installation. 1.1 Eclipse 1. Einführung 1.1 Eclipse Die Eclipse ist eine kostenlose integrierte Entwicklungsumgebung oder auch IDE genannt, (Abkürzung IDE, engl. Integrated development enviroment). Sie ist eine grafische Benutzeroberfläche

Mehr

Metadata Service Respository (MDS) - Sehen, lernen, verstehen!

Metadata Service Respository (MDS) - Sehen, lernen, verstehen! Metadata Service Respository (MDS) - Sehen, lernen, verstehen! Carsten Wiesbaum esentri AG Schlüsselworte Metadata Service Repository, MDS, Oracle Fusion Middleware Einleitung Früher oder später wird jeder

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

Spezifikationen und Voraussetzung

Spezifikationen und Voraussetzung Projekt IGH DataExpert Yellowbill Adapter Spezifikationen Voraussetzungen Datum : 22.08.2013 Version : 1.0.0.2 22.08.2013 Seite 1 von 7 Inhaltsverzeichnis 1 Einleitung...3 2 Architektur...3 2.1 Grundsätze

Mehr

Projekt Weblog :: Integration

Projekt Weblog :: Integration Projekt Weblog :: Integration Die Implementation des Formhandling Frameworks wird nun im Projekt Weblog integriert. Dafür stehen 2 Möglichkeiten zur Auswahl. Sie haben Ihre eigene Implementation der Actions,

Mehr

Szenario 3: Service mit erweiterter Schnittstelle

Szenario 3: Service mit erweiterter Schnittstelle 2. Hintergrundverarbeitung in Android: Services und Notifications Szenarien für lokale Services Szenario 3: Service mit erweiterter Schnittstelle Ein Service bietet zusätzliche Methoden an, über die sich

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Kurzanleitung zu WinZeit und dem Scanndy

Kurzanleitung zu WinZeit und dem Scanndy Kurzanleitung zu WinZeit und dem Scanndy Inhaltsverzeichnis Benötigte Materialien Seite 3 Grundlegende Bedienung des Scanndys Seite 4 Die Hauptmenü Punkte Seite 5 Das Drucken mit Barcode Seite 6 Zuordnen

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

SMS Versand in der Produktion & Technik. Broschüre

SMS Versand in der Produktion & Technik. Broschüre SMS Versand in der Produktion & Technik Broschüre SMS: einfach & effektiv SMS können nicht nur zur Kommunikation mit Freunden und Bekannten, sondern auch für den automatischen Versand von Alarmierungen

Mehr

FILOU NC. Überblick. Copyright 2012 FILOU Software GmbH. Inhalt

FILOU NC. Überblick. Copyright 2012 FILOU Software GmbH. Inhalt FILOU NC Überblick Copyright 2012 FILOU Software GmbH Inhalt Die FILOUsophie... 2 Was will FILOU-NC können?... 2 Warum nur 2D?... 2 Zielgruppe... 2 Was muss der Anwender können?... 2 FILOU-NC, ein SixPack...

Mehr

Auswertung der Workload-Befragung mit MS ACCESS

Auswertung der Workload-Befragung mit MS ACCESS Auswertung der Workload-Befragung mit MS ACCESS Inhaltsverzeichnis 1. Aufbereitung der Daten... 2 1.1. Herstellung der Textfiles... 2 1.2. Import der Textdateien... 3 1.3. Verbindungen erstellen... 8 2.

Mehr

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,

Mehr

Massively Scalable Enterprise Applications. Chris Bernhardt

Massively Scalable Enterprise Applications. Chris Bernhardt Massively Scalable Enterprise Applications Chris Bernhardt Allgemein Einsatzgebiete BizTalk Server Engine Management Enterprise Single Sign-On Neuheiten und Beispiele Quellen Agenda 28.01.2010 Microsoft

Mehr

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Jens Kohlmeyer 05. März 2007 Institut für Programmiermethodik und Compilerbau ActiveCharts Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Seite 2 Übersicht

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Vortrag von: Ilias Agorakis & Robert Roginer

Vortrag von: Ilias Agorakis & Robert Roginer MDA Model Driven Architecture Vortrag von: Ilias Agorakis & Robert Roginer Anwendungen der SWT - WS 08/09 Inhalt Was ist MDA? Object Management Group (OMG) Ziele Konzepte der MDA Werkzeuge Vor- und Nachteile

Mehr

Erfolg ist programmierbar.

Erfolg ist programmierbar. 4578954569774981234656895856512457895456977498 3465689585651245789545697749812346568958561245 9545697749812346568958565124578954569774981234 6895856512457895456977498123465689585612457895 6977498123465689585651245789545697749812346568

Mehr

Aufgabenblatt Nr. 5 Generizität und TicTacToe

Aufgabenblatt Nr. 5 Generizität und TicTacToe Aufgabenblatt Nr. 5 Generizität und TicTacToe 1 Generische Sortier-Methode 1.1 Aufgabe: Entwickeln einer generischen Sortiermethode für Objekte mit der Schnittstelle Comparable Ihnen ist aus der Vorlesung

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Technische Beschreibung VendingReader

Technische Beschreibung VendingReader Datum: 11.10.2013 13:23 Letzte Änderung: 11.10.2013 13:22 Version: 6 Inhaltsverzeichnis 1 Einführung 3 2 M2MGate DeviceServer 3 2.1 Allgemeines 3 2.2 VendingReader spezifische Funktionen 4 3 M2MGate Server

Mehr

DISKUSSIONSBEITRÄGE DER FAKULTÄT FÜR BETRIEBSWIRTSCHAFTSLEHRE MERCATOR SCHOOL OF MANAGEMENT UNIVERSITÄT DUISBURG-ESSEN. Nr. 378

DISKUSSIONSBEITRÄGE DER FAKULTÄT FÜR BETRIEBSWIRTSCHAFTSLEHRE MERCATOR SCHOOL OF MANAGEMENT UNIVERSITÄT DUISBURG-ESSEN. Nr. 378 DISKUSSIONSBEITRÄGE DER FAKULTÄT FÜR BETRIEBSWIRTSCHAFTSLEHRE MERCATOR SCHOOL OF MANAGEMENT UNIVERSITÄT DUISBURG-ESSEN Nr. 378 Umsetzung ausgewählter Supply-Chain-Operations-Reference-Metriken durch das

Mehr

Komplexe Excel-Berichte mit APEX und jxls erstellen

Komplexe Excel-Berichte mit APEX und jxls erstellen Komplexe Excel-Berichte mit APEX und jxls erstellen Dietmar Aust Opal-Consulting Köln Schlüsselworte: Oracle APEX, MS Excel, jxls, Bericht, Template, Open Source Einleitung In fast jeder Webapplikation

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten. Einführung SQL 2010 Niko Becker Mit unseren Übungen zu ACCESS können Sie Aufbau und Struktur einer relationalen Datenbank kennenlernen. Wir zeigen Ihnen wie Sie Tabellen, Formulare und Berichte erstellen

Mehr

Workflow Systeme mit der Windows Workflow Foundation

Workflow Systeme mit der Windows Workflow Foundation Studiengang Electronic Business (EB) Diplomarbeit (280000) Workflow Systeme mit der Windows Workflow Foundation externe Betreuung durch Christoph Müller vorgelegt bei Prof. Dr. Michael Gröschel von Hans-Martin

Mehr

MEC EDI Schnittstelle MEC EDI SCHNITTSTELLE MEC EDI. Datenaustausch via EDI - EDIFACT. Überschrift 1

MEC EDI Schnittstelle MEC EDI SCHNITTSTELLE MEC EDI. Datenaustausch via EDI - EDIFACT. Überschrift 1 MEC EDI Schnittstelle Datenaustausch via EDI - EDIFACT MEC EDI SCHNITTSTELLE MEC EDI Überschrift 1 Kurzbeschreibung Die MEC WinLine EDI Schnittstelle bietet einen schnellen und einfachen Weg Lieferscheine

Mehr

Dokumentation zur Anlage eines JDBC Senders

Dokumentation zur Anlage eines JDBC Senders Dokumentation zur Anlage eines JDBC Senders Mithilfe des JDBC Senders ist es möglich auf eine Datenbank zuzugreifen und mit reiner Query Datensätze auszulesen. Diese können anschließend beispielsweise

Mehr

mitho -Framework für plenty PHP-Framework zur Anbindung an die plenty API

mitho -Framework für plenty PHP-Framework zur Anbindung an die plenty API PHP-Framework zur Anbindung an die plenty API Inhaltsverzeichnis 1 Kurzbeschreibung...3 2 Integration...4 3 Möglichkeiten...5 3.1 Artikel...5 3.2 Aufträge...5 3.3 Kunden...5 4 Interne Funktionsweise...7

Mehr

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

Mehr

Complex Event Processing im Überblick

Complex Event Processing im Überblick Complex Event Processing im Überblick 2 Complex Event Processing ist eine von David Luckham entwickelte Softwaretechnologie, um kontinuierliche Ereignisströme zu verarbeiten [17]. Dieses Kapitel stellt

Mehr

Technisches und rechtliches Rezertifizierungs-Gutachten

Technisches und rechtliches Rezertifizierungs-Gutachten Technisches und rechtliches Rezertifizierungs-Gutachten Einhaltung datenschutzrechtlicher Anforderungen durch das IT-Produkt KOMMBOSS Version 2.9 der GfOP Neumann & Partner mbh Zum Weiher 25 27 14552 Wildenbruch

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

Mehr

Jump Project. Softwarelösungen für professionelles Projektmanagement

Jump Project. Softwarelösungen für professionelles Projektmanagement Jump Project Softwarelösungen für professionelles Projektmanagement Jump Project Office Übersichtliche Dokumentenstruktur und schneller Zugriff auf alle wichtigen Funktionen. Steuern Sie Ihre Projekte

Mehr

Datenbanken & Informationssysteme Übungen Teil 1

Datenbanken & Informationssysteme Übungen Teil 1 Programmierung von Datenbankzugriffen 1. Daten lesen mit JDBC Schreiben Sie eine Java-Anwendung, die die Tabelle Books in der Datenbank azamon ausgibt. Verwenden Sie dabei die SQL-Anweisung select * from

Mehr

Integration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage.

Integration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage. Integration mit Die Integration der AristaFlow Business Process Management Suite (BPM) mit dem Enterprise Information Management System FILERO (EIMS) bildet die optimale Basis für flexible Optimierung

Mehr

Customer Relations Management CRM - die Kunst Firmenwissen zu dokumentieren

Customer Relations Management CRM - die Kunst Firmenwissen zu dokumentieren Customer Relations Management CRM - die Kunst Firmenwissen zu dokumentieren Erfolgreiche Verkäufer glänzen durch einen guten Draht zum Kunden und eine proaktive Umsetzung der Kundenwünsche. Soweit die

Mehr

Whitepaper. Produkt: combit List & Label 16. List & Label Windows Azure. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit List & Label 16. List & Label Windows Azure. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit List & Label 16 List & Label Windows Azure List & Label Windows Azure - 2 - Inhalt Softwarevoraussetzungen 3 Schritt 1: Neues Projekt

Mehr

TCP/IP Programmierung. C# TimeServer Java6 TimeClient

TCP/IP Programmierung. C# TimeServer Java6 TimeClient TCP/IP Programmierung C# TimeServer Java6 TimeClient Stand 19.10.11 21:24:32 Seite 1 von 16 Inhaltsverzeichnis Erläuterung...3 Software...3 C#TimeServer...4 Klasse ServerThread...6 Starten und Beenden...7

Mehr

Überblick über COPYDISCOUNT.CH

Überblick über COPYDISCOUNT.CH Überblick über COPYDISCOUNT.CH Pläne, Dokumente, Verrechnungsangaben usw. werden projektbezogen abgelegt und können von Ihnen rund um die Uhr verwaltet werden. Bestellungen können online zusammengestellt

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

TimeSafe Leistungserfassung

TimeSafe Leistungserfassung Keep your time safe. TimeSafe Leistungserfassung Adressimport 1/8 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 Allgemeines... 3 1.1 Adressen in der TimeSafe Leistungserfassung... 3 1.2 Organisationen und/oder

Mehr

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des

Mehr

NEUERUNGEN IN VIVENDI MOBIL 5

NEUERUNGEN IN VIVENDI MOBIL 5 NEUERUNGEN IN VIVENDI MOBIL 5 PRODUKT(E): Vivendi Mobil KATEGORIE: Sonstiges VERSION: ab 5.00 Frage: In der Versionshistorie ist von der neuen Vivendi Mobil-Version 5 zu lesen. Welche Vorteile und Änderungen

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

Erste Schritte mit TeamSpeak 3

Erste Schritte mit TeamSpeak 3 Erste Schritte mit TeamSpeak 3 C. Hobohm und A. Müller Im Auftrag von www.xgs.in 05.08.2010 Inhaltsverzeichnis Vorwort... 3 Feedback... 3 Weitere Hilfe und Anleitungen... 3 Changelog... 3 Berechtigungsschlüssel

Mehr

Softwaretool Data Delivery Designer

Softwaretool Data Delivery Designer Softwaretool Data Delivery Designer 1. Einführung 1.1 Ausgangslage In Unternehmen existieren verschiedene und häufig sehr heterogene Informationssysteme die durch unterschiedliche Softwarelösungen verwaltet

Mehr

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11 Datenbanksysteme WS 05/ 06 Gruppe 12 Martin Tintel Tatjana Triebl Seite 1 von 11 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1. Einleitung... 3 2. Datenbanken... 4 2.1. Oracle... 4 2.2. MySQL... 5 2.3 MS

Mehr

Version 8.0 Brainloop Secure Dataroom Artikel Serie - Folge 3

Version 8.0 Brainloop Secure Dataroom Artikel Serie - Folge 3 Version 8.0 kommt in Kürze! Was ändert sich? Lesen Sie Folge 3 unserer Serie: Zusammenarbeit im Datenraum Lesen Sie in der dritten Folge unserer Artikel-Serie, wie Sie effizient über den Datenraum mit

Mehr

Einführung in das Microsoft.NET-Framework. Programmiersprache C# 02: Visual Studio / Hello World. Boris Hülsmann

Einführung in das Microsoft.NET-Framework. Programmiersprache C# 02: Visual Studio / Hello World. Boris Hülsmann Einführung in das Microsoft.NET-Framework Programmiersprache C# 02: Visual Studio / Hello World Boris Hülsmann 23.09.2010 1 In dieser Einführung bekommen Sie einen kurzen Einstieg in das.net-framework

Mehr

Die Software Mobile Warehouse ist modular aufgebaut und besteht aus den folgenden Modulen:

Die Software Mobile Warehouse ist modular aufgebaut und besteht aus den folgenden Modulen: MOBILE WAREHOUSE: ist eine von Bluetech Systems entwickelte kostengünstige Middleware zur Anbindung von mobilen Datenerfassungsgeräten an die verschiedensten ERP Systeme, und beinhaltet alle Funktionen

Mehr

WCF Services in InfoPath 2010 nutzen

WCF Services in InfoPath 2010 nutzen WCF Services in InfoPath 2010 nutzen Abstract Gerade wenn man schreibend von InfoPath aus auf eine SQL-Server Datenbank zugreifen will, kommt man quasi um einen Web Service nicht herum. In diesem Post

Mehr