Beitrag - Was ist TreeDB?

Werbung
open4data.at - challenge 2016
Einreichung in der Kategorie: Lösung
Subkategorie: Idee
Verfasser:
Peter Sauer

[email protected]

Lektorat:
Katharina Mayr

[email protected]
Unternehmen:
ScienceSoft
Oberzellergasse 12/13
1030 Wien
Projekt-Homepage: http://treedb.at/
Datenbank:
https://db.treedb.at/
1/61
open4data.at - challenge 2016
2/61
Inhaltsverzeichnis
1. TreeDB.............................................................................................................................................3
1.1 Einleitung......................................................................................................................................3
1.2 Unser Team....................................................................................................................................4
1.3 Was ist TreeDB?............................................................................................................................5
1.4 Beispiele für TreeDB Datenbanken...............................................................................................6
1.5 Technische Details.........................................................................................................................9
1.6 Weitergabe von Datenbanken......................................................................................................11
1.7 Internationalisierung....................................................................................................................13
1.8 Open Source................................................................................................................................13
1.9 Barrierefreiheit............................................................................................................................13
1.10 Installation: Out-of-the-box bis wolkig.....................................................................................14
1.11 Vaadin........................................................................................................................................15
1.12 Mediendateien, Karten und offene Standards............................................................................16
1.13 Persistenz-Frameworks und Datenbanken................................................................................17
1.14 Unser Geschäftsmodel...............................................................................................................18
1.15 Zukunftspläne............................................................................................................................18
2. Zugangsdaten..................................................................................................................................19
3. Wettbewerbsbeitrag........................................................................................................................20
3.1 Datenbank Laichgewässer...........................................................................................................20
3.2 Datenstrukturen (Entwurf)...........................................................................................................22
3.3 Limnologische Klassifikation......................................................................................................24
3.4 ITIS Datenbank...........................................................................................................................25
4. Appendix: Screenshots TreeDB......................................................................................................26
4.1 Übersicht......................................................................................................................................26
4.2 Suche...........................................................................................................................................29
4.3 PDF Export..................................................................................................................................30
4.4 Navigation: Verlauf und Ansichten..............................................................................................32
4.5 Datenbankinformationen.............................................................................................................33
4.6 Login............................................................................................................................................34
4.7 Daten ändern - Knotentyp WIKI.................................................................................................35
4.8 Hochladen von Dateien...............................................................................................................38
4.9 Daten ändern................................................................................................................................40
4.10 Änderung der Datenbankinformationen....................................................................................42
4.11 Administration...........................................................................................................................43
4.12 Benutzer.....................................................................................................................................44
4.13 Gruppen.....................................................................................................................................46
4.14 Zugriffsberechtigungen.............................................................................................................47
4.15 Kategorien.................................................................................................................................49
4.16 JavaScript-Bibliotheken............................................................................................................51
4.17 Datenbankverwaltung................................................................................................................52
4.18 Einstellungen.............................................................................................................................55
5. Appendix: Teilprojekt IoT..............................................................................................................58
open4data.at - challenge 2016
3/61
1. TreeDB
1.1 Einleitung
Unser Beitrag, ein webbasiertes Datenbanksystem, namens TreeDB, beschäftigt sich mit
der Idee den Zugriff auf freie Daten zu vereinfachen: Ziel ist es, dem Benutzer nicht nur alleinig
die Daten, sondern die Gesamtheit der Information, bestehend aus Datenstruktur, Programmlogik
und Datenbestand, in geeigneter Form zugänglich zu machen.
Die Idee:
Jede Datenbank, die auf dem System TreeDB basiert, kann als singuläre Datei in Form eines
installierbaren Pakets oder als ein Export einer bestehenden Datenbank weitergegeben werden.
TreeDB unterstützt beliebig viele Datenbanken, die alle unabhängig voneinander sind.
Der Benutzer bekommt nicht nur die Daten, sondern auch ein Werkzeug in die Hand, das die
Daten durchsucht, bearbeitet, verarbeitet, visualisiert, und alles das kann, was die zusätzliche Logik,
die in der Datenbank als Programmcode gespeichert ist, anbietet.
Der Benutzer kann eine TreeDB Datenbank an seine Bedürfnisse anpassen, da jegliche Art
von Sourcecode in der Datenbank gespeichert ist. Er kann den bestehenden Code auch als
Blaupause für eigene Anwendungen verwenden. Denn oft sind nicht nur alleinig die Daten von
Interesse, sondern auch die Logik, die die Daten verarbeitet: Validierungen,
Ausnahmebedingungen, einfach jede Art von Algorithmik.
Es sei uns folgender flapsiger Vergleich an dieser Stelle erlaubt: Die TreeDB ist wie ein
Überraschungsei, nicht nur Daten zum Naschen, sondern auch Code zum Spielen...
open4data.at - challenge 2016
1.2 Unser Team
Peter Sauer ([email protected])
Chefarchitekt und Leiter des Entwicklungsteams
Schwerpunkt: Java und Vaadin-Entwicklung
Franciszek Bartnik ([email protected])
IoT-Spezialist (Hardware & Software)
Schwerpunkt: Sensorik & Python
Maja Bonczysta ([email protected])
Übersetzerin der polnischen Version
Katharina Mayr ([email protected])
Lektorat
Aurora Felice
Übersetzerin der englischen Version
Bubzia ([email protected])
Head of the Office for Cat Affairs
4/61
open4data.at - challenge 2016
5/61
1.3 Was ist TreeDB?
Abbildung 1:
Gerichteter Baum
TreeDB ist ein webbasiertes, programmierbares Datenbanksystem für
hierarchische Datenstrukturen. Wie der Name es nahelegt, ist die bevorzugte
Datenstruktur dieses Produkts ein gerichteter Baum. Jedes Blatt/jeder Knoten
eines Baumes repräsentiert einen bestimmten definierten Typ, der mit
beliebigen Daten (Datenfeldern, Texten, Multimediadaten und Dokumenten)
und auch zusätzlicher Logik in Form von JavaScript-, BeanShell- oder JavaCode verknüpft werden kann. Datenbankfunktionen wie Suche,
Datenbearbeitung, Zugriffsverwaltung und PDF-Export werden durch die
entsprechenden Menüs in der Weboberfläche abgedeckt.
Die Baumstruktur, der Graph wird von der TreeDB im Hauptspeicher
vorbehalten und kann schnell für Top-down und Bottom-up Analysen
durchsucht werden. Das TreeDB-API ermöglicht es festzulegen, ob ein Knoten
im Speicher vorbehalten wird oder nicht.
TreeDB kann von den Prinzipien her mit einem Wiki, einem Hypertextsystem für
statische Webseiten verglichen werden. Folgende Merkmale unterscheiden die TreeDB
von einem reinen Wiki-System:



Datenbankfunktionalität: Jeder Knoten stellt einen definierten Typ mit
bestimmten Eigenschaften, wie zum Beispiel Datenfeldern, dar.
 Interaktivität: Die Bildschirmdarstellung eines Knoten kann alternativ zu einer
HTML-Ansicht mit JavaScript-, BeanShell- oder Java-Code umgesetzt werden, der eine
direkte Interaktion mit dem Benutzer ermöglicht – ein lebendiges Wiki.
Programmierbar: Jede TreeDB Datenbank ist im Grunde genommen ein Java-Programm,
das jede Art von Programmlogik implementieren kann, mit dem Vorteil, auf das breite
Spektrum der verschiedensten bestehenden Java-Technologien zurückgreifen zu können –
Stichwort Java-Ökosystem
Schnittstellen, wie zum Beispiel die REST-Schnittstelle, die jede TreeDB Datenbank
optional implementieren kann, ermöglichen einen einfachen Datenaustausch mit anderen
Systemen.
open4data.at - challenge 2016
6/61
1.4 Beispiele für TreeDB Datenbanken
Beispiel 1: Die Zoo-Datenbank1 beschreibt auszugsweise die Tiere des Tiergartens Schönbrunn in
Form einer taxonomischen Datenbank:
In unserem Beispiel wird die Taxonomie2 des Großen Pandas (Ailuropoda
melanoleuca) im rechten Teil des Fensters angezeigt. Der Aufbau eines
Baumes in der TreeDB entspricht einem vordefinierten Referenzbaum oder
einem Regelwerk. Im Falle der Zoo-Datenbank dient als Referenz für den
Import einer Spezies die öffentliche ITIS3 (Integrated Taxonomic Information System) Datenbank.
1
2
3
https://db.treedb.at/#10:::60:::Information
https://de.wikipedia.org/wiki/Taxonomie
https://de.wikipedia.org/wiki/Integrated_Taxonomic_Information_System
open4data.at - challenge 2016
Abbildung 2: Datenfelder
7/61
Jeder Knoten oder jedes Blatt eines Baumes entspricht einem
bestimmten Datentyp, der die Art, die Organisation und die
Darstellung der Daten beschreibt. In unserem Beispiel wird die Anzahl
der Tiere nach Geschlecht, Gefährdungsstatus und weiteren Daten pro
Spezies gespeichert (Abb. 2). Diese Daten sind mit einer HTMLVorlage verknüpft, die wahlweise eine Template-Engine wie
FreeMarker4, Velocity5 oder PHP in Kombination mit Makros
einbindet, um die Substitution der Daten zu vereinfachen. In der ZooDatenbank kommt der vordefinierte Datentyp WIKI zum Einsatz, der
einen HTML-Editor (Abb. 3) und eine Bildverwaltung (Abb. 4)
inkludiert. Alternativ kann JavaScript, ein Java-BeanShell6-Skript oder
Java-Code zur Darstellung der Daten eingebunden werden.
Abbildung 4: Bildverwaltung
Abbildung 3: HTML-Editor
4
5
6
https://de.wikipedia.org/wiki/FreeMarker
http://velocity.apache.org/
http://www.beanshell.org/
open4data.at - challenge 2016
8/61
Beispiel 2: Die IoT-Datenbank7 kontrolliert einen Raspberry Pi Einplatinencomputer, der diverse Messdaten per Python-Skripts sammelt und per RESTSchnittstelle an die Datenbank sendet. Die Python-Skripts werden in der
Datenbank vorbehalten und zwischen dieser und dem Raspberry Pi synchron
gehalten. Dieses Teilprojekt ist noch in der Entwicklung.
7
http://db.treedb.at/#1205:::1226:::Information
open4data.at - challenge 2016
9/61
1.5 Technische Details
In der Terminologie der TreeDB wird eine Datenbank als Domain bezeichnet. TreeDB
unterstützt beliebig viele unabhängige Domains. Eine Domain beinhaltet Datenstrukturen, Daten,
spezifischen Programmcode, etc. – jegliche Art von Daten, die notwendig sind, um eine Domain
(=Datenbank) darzustellen.
TreeDB bietet die nötigen Werkzeuge in Form eines SDK, um die Baumstruktur der Daten,
die Daten selbst und die Suche in den Daten schnell und einfach zu modellieren. Zusätzlich können
diese Grundfunktionen pro Datenbank erweitert und den spezifischen Anforderungen des
Aufgabengebiets angepasst werden.
TreeDB Datenbanken stehen als 7z-Archivpakte zur Installation per Drag & Drop zur
Verfügung. Alternativ können Datenbanken durch direkten Export anderen Benutzern zur
Verfügung gestellt werden.
TreeDB unterstützt als Persistenz-Framework sowohl Hibernate8 als auch folgende JPAImplementierungen: EclipseLink9, OpenJPA10, HibernateJPA und ObjectDB11. Hibernate und die
JPA- Implementierungen unterstützen eine lange Liste an Datenbanken, von denen MySQL,
MariaDB, Postgres, H2, Derby, HSQLDB, SQLITE, DB2, Oracle und MSSQL getestet wurden.
Eine Auflistung der unterstützten Kombinationen aus Persistenz-Framework und Datenbanken
finden Sie auf unserer Website12.
TreeDB unterstützt die vollständige Historisierung der Daten. Jegliche Änderung der Daten
wird protokolliert. Dies ermöglicht es nicht nur, einzelne Änderungen rückgängig zu machen,
sondern auch die historische Entwicklung ganzer Baumstrukturen zu verfolgen.
TreeDB implementiert ein eigenes virtuelles blockorientiertes Dateisystem, um große
Datenmengen (z.B. Multimedia-Dateien wie Filme) in der Datenbank speichern zu können.
TreeDB unterstützt den Export einzelner Domains oder der ganzen Datenbank in ein
Persistenz-Framework- und datenbankunabhängiges Format namens TDEF (Tree DB Exchange
Format). Mit Hilfe dieses Formats sind Migrationen über verschiedene Datenbanken und
Persistenz-Frameworks hinweg möglich. Auf Datenbankebene ist diese Funktionalität
fertiggestellt, nur in der graphischen Oberfläche fehlt noch der entsprechende Menüpunkt.
Jede TreeDB Datenbank kann optional eine REST und HTTP-Schnittstelle implementieren.
Die REST-Schnittstelle dient dem einfachen Datenaustausch. z.B. Die bestehende IoT Datenbank13
bekommt die Messdaten der einzelnen Devices (Raspberry PI) per REST übermittelt. Die HTTPSchnittstelle dient dazu einen HTTP-Server zu implementieren, der z.B. die Daten für mobile
Geräte aufbereitet oder Daten exportiert
8
9
10
11
12
13
https://de.wikipedia.org/wiki/Hibernate_%28Framework%29
http://www.eclipse.org/eclipselink/
http://openjpa.apache.org/
http://www.objectdb.com/
http://treedb.at/index.php/de/2-uncategorised/128-kompatibilitaetsmatrix
https://db.treedb.at/#1205:::1661:::Auswertung
open4data.at - challenge 2016
10/61
Ein Modulsystem14 ermöglicht die Installation15 von externen JavaScript-Bibliotheken . Es
stehen aktuell folgende Module zur Verfügung:




Die ChemDoodleWeb-Bibliothek16 (Abb. 5) ermöglicht es, 2D und 3D-Strukturen aus
dem Bereich der Chemie darzustellen. Für die Darstellung von 3D-Strukturen, z.B.
Proteinen, wird ein Browser mit WebGL-Unterstützung benötigt.
Die Highlight.js-Bibliothek17 (Abb. 6) ermöglicht die farbliche Syntaxhervorhebung von
Programmcode.
Die MathJax-Bibliothek18 (Abb. 8) ermöglicht die Darstellung von mathematischen
Formeln und Gleichungen im LaTeX und MathML Format.
Die jqPlot-Biblothek19 (Abb. 7) ermöglicht die Generierung von diversen Diagrammtypen.
Abbildung 5:
ChemDoodleWeb
Abbildung 7: jqPlot
14
15
16
17
18
19
Abbildung 6: Highlight.js
Abbildung 8: MathJax
http://treedb.at/index.php/de/treedb/hilfe/10-hilfe-admin/62-eintrag-2
http://treedb.at/index.php/de/downloads/externe-javascript-bibliotheken
http://web.chemdoodle.com/
http://highlightjs.org/
https://www.mathjax.org/
http://www.jqplot.com/
open4data.at - challenge 2016
11/61
1.6 Weitergabe von Datenbanken
Dem Benutzer stehen zwei Varianten zur Installation einer TreeDB Datenbank zu installieren zur
Verfügung.
1. Installation20 eines Programmpakets in Form eines 7-zip Archivs, siehe Liste der
bestehenden Datenbanken21. Hervorzuheben ist, dass eine Datenbank sowohl als leere
Datenbank, als auch mit automatischer Datenbefüllung installiert werden kann.
2. Jede installierte TreeDB Datenbank kann in ein datenbankunabhängiges Zwischenformat
exportiert werden. Dieser Export unterstützt Einschränkungen wie das Filtern von
historischen und sensiblen Daten und kann weitergeben und importiert werden.
Bei beiden Varianten steht jegliche Art von Sourcecode22, der die Funktionalität der Datenbank in
ihrer Gesamtheit implementiert, dem Benutzer zur Verfügung. Dieser Ansatz hat zwei Vorteile:
1. Dem Benutzer kann sich die Sourcen in der Weboberfläche der TreeDB anzeigen lassen
und kann diese ändern. Für JavaScript und Java-Beanshell-Code ist dieses Feature
umgesetzt, für Java-Code noch nicht – siehe auch Punkt 2. Als Erweiterung dieses Ansatzes
eine Datenbank in ihrer Gesamtheit quelloffen zur Verfügung zu stellen ist geplant die
einzelnen Datenbanken unseres Projekts als maven23 Build über das github Repository24
publik zu machen. Dieses Repository ist momentan im Aufbau begriffen und umfasst
momentan nur das Core-Projekt.
2. Als zukünftige Funktion ist die on-the-fly Übersetzung der Java -Sourcen angedacht. Eine
Datenbank enthält nicht nur den Java-Byte Code, sondern auch die dazugehörigen JavaSourcen, die bei Bedarf on-the-fly umgesetzt werden. Bis jetzt existieren aber nur die
Grundfunktionen dieses Konzept, um die technische Machbarkeit zu verifizieren. Dieser
Ansatz versucht, die interessante Idee einer quellbasierten Distribution versus einer binären
Distribution umzusetzen.
Folgende Datenbanken25 stehen zur Zeit zur Verfügung:
•
•
•
•
•
•
Zoodatenbank
IoT-Datenbank
Blutdatenbank
Adressdatenbank
PDB-Datenbank
Testdatenbank
20 http://treedb.at/index.php/de/treedb/hilfe/10-hilfe-admin/61-eintrag-1
21 http://treedb.at/index.php/de/downloads/datenbanken
22 Im Falle von Java-Code werden sowohl die binären class-Dateien, als auch die Sourcen in der Datenbank
gespeichert.
23 https://de.wikipedia.org/wiki/Apache_Maven
24 https://github.com/pezi
25 http://treedb.at/index.php/de/downloads/datenbanken
open4data.at - challenge 2016
12/61
open4data.at - challenge 2016
13/61
1.7 Internationalisierung
TreeDB implementiert einen eigenen Datentyp namens Istring, der nach dem Schema
language_country jede Art von Texten, insbesondere die Texte der Benutzeroberfläche, in der
Datenbank speichert. Aktuell unterstützt die Benutzeroberfläche der TreeDB folgende Sprachen:
Deutsch, Englisch und Polnisch. Jede Datenbank kann unabhängig für sich festlegen, welche
Sprachen unterstützt werden.
1.8 Open Source
TreeDB ist ein Open Source Projekt mit ca. 57.000 Line of
Code. Der Fertigstellungsgrad dieses Projekts liegt bei ca. 80%. Das
Framework, das die Datenbankfunktionalität zur Verfügung stellt, ist
im Großen und Ganzen fertig. Aber nicht jede dieser
Datenbankfunktionen findet schon eine Entsprechung in der
Weboberfläche.
Das Projekt TreeDB unterteilt sich in drei Teilprojekte:

Persistenz/Datenbankteil

graphischen Oberfläche, die auf Vaadin (siehe auch Punkt 1.10) basiert.

Out-of-the-box Variante der TreeDB, die ein einfaches Ausprobieren dieser ermöglichen
soll.
Die Sourcen dieses Projekts stehen unter der GNU Lesser General Public License26 auf Github27 zur
Verfügung.
Für Mitte 2016 ist die Veröffentlichung der ersten Version eines TreeDB SDK zur Entwicklung
eigener Datenbanken geplant.
1.9 Barrierefreiheit
Wir sind bemüht, die Vaadin Richtlinien28 zu diesem Thema umzusetzen. Dieser Punkt ist
aber noch nicht durchgehend umgesetzt, beispielsweise müssen teilweise noch die Tastaturkürzel
an jede der von uns unterstützen Sprachen angepasst werden.
26 https://de.wikipedia.org/wiki/GNU_Lesser_General_Public_License
27 https://github.com/pezi
28 https://vaadin.com/accessibility
open4data.at - challenge 2016
14/61
1.10 Installation: Out-of-the-box bis wolkig...
TreeDB ist eine Server-basierte Lösung, die einen entsprechenden Java-Applikationsserver
wie z.B. Tomcat29 oder Jetty30 voraussetzt. Da die Einstiegshürde für diese Art von Technik recht
hoch ist, wurde eine Out-of-the-box31 Variante entwickelt, die das einfache und schnelle
Ausprobieren der TreeDB ermöglicht. Einzige Voraussetzung ist eine installierte Java-Runtime32.
Für die Installation auf einem Java-Applikations-Server stehen WAR33-Dateien
paketiert für die verschiedenen Persistenz-Frameworks zur Verfügung. Eine Schritt-fürSchritt Anleitung34 erläutert, wie man die TreeDB unter Linux (Ubuntu) installiert.
Eine speziell an die IBM Bluemix Umgebung35 angepasste
WAR-Datei ermöglicht den Betrieb der TreeDB in der IBMCloud. Die Registrierung dieser Cloud-Umgebung ist
kostenfrei und während der einmonatigen Test-Phase stehen die
nötigen Ressourcen zur Verfügung, um die TreeDB installieren
und testen zu können.
29
30
31
32
33
34
35
https://de.wikipedia.org/wiki/Apache_Tomcat
https://de.wikipedia.org/wiki/Jetty
http://treedb.at/index.php/de/downloads/out-of-the-box-installation
https://www.java.com/de/download/
https://de.wikipedia.org/wiki/Web_Application_Archive
http://treedb.at/index.php/de/2-uncategorised/134-treedb-installation-auf-ubuntu-15-10-mysql
http://treedb.at/index.php/de/projekte/ibm-bluemix
open4data.at - challenge 2016
15/61
1.11 Vaadin
Die Weboberfläche von TreeDB basiert auf Vaadin:
Wikipedia-Eintrag36
Vaadin ist ein freies (unter Apache-Lizenz 2.0) Webanwendungs-Framework für Rich Internet
Application (RIA). Im Gegensatz zu JavaScript-Bibliotheken und auf Browser-Plugins basierenden
Lösungen bietet es eine serverseitige Architektur, was bedeutet, dass der Großteil der
Programmlogik auf dem Server läuft. Auf der Client-Seite baut Vaadin auf dem Ajax-Framework
Google Web Toolkit auf und kann damit erweitert werden. Vaadin wird hauptsächlich von der
Firma Vaadin Ltd. (ehemals IT Mill) aus Turku entwickelt.
Vaadin ist ein sehr aktives Projekt, das von den vielen Beiträgen der Open Source
Community in Form von Add-ons profitiert. Add-ons binden diverse bestehende JavaScriptBibliotheken ein. Eine Übersicht über die umfangreichen bestehenden Bibliotheken finden Sie auf
der Homepage von Vaadin37.
TreeDB bindet folgende dieser Add-ons ein:
36 https://de.wikipedia.org/wiki/Vaadin
37 https://vaadin.com/directory#!browse
open4data.at - challenge 2016
16/61
1.12 Mediendateien, Karten und offene Standards
TreeDB unterstützt das einfache Einbinden von Bildern und Videos.
Videos werden mit Hilfe des HTML5-Tag video eingebunden. Es ist kein AdobeFlashplayer für das Abspielen von Videos notwendig.
Für Mediendateien wurde hinsichtlich des geplanten Einsatzes im
wissenschaftlichen Bereich und der freien Weitergabe der Daten das Konzept der
Priorität der Originaldaten entwickelt. Wenn möglich, werden die Originaldaten in
der Datenbank gespeichert, allfällige Transformationen, wie Größen- und Format-Anpassungen, die
für eine web-konforme Medienauslieferung notwendig sind, werden Server-seitig automatisch
durchgeführt. Das Ergebnis der Konvertierung wird als Cache-Objekt in der Datenbank gespeichert.
Für Bilder sind folgende Transformationen geplant: Drehung, Größenänderung und
Beschnitt des Bildes. Dieser Punkt ist teilweise umgesetzt.
Videos werden im Originalformat wie z.B. MTS gespeichert,
die Konvertierung der Filmdatei nach webm und mp4, in HTML5
Formate geschieht mit Hilfe des Programms ffpmeg38 Servers-seitig.
Die konvertierte Datei wird im Dateisystem des Servers abgelegt.
Dieser Punkt ist noch nicht implementiert – zwei Lösungsansätze sind
denkbar:Videos werden entweder abhängig vom Format beim Speichern konvertiert, oder die
Konvertierung geschieht erst bei der erstmaligen Anforderung des Videos. Hier müsste aber eine
spezielle Lösung Client-seitig im Browser des Benutzers implementiert werden: Das gewünschte
Video steht in n Minuten zur Verfügung.
Geodaten in Form von Kartenausschnitten können sowohl mit Hilfe von GoogleMaps39, als
auch mit OpenLayers40 angezeigt werden. OpenLayers ist im Gegensatz zu GoogleMaps keiner
Einschränkung bezüglich der Anzahl der Aufrufe unterworfen.
38 https://www.ffmpeg.org/
39 https://de.wikipedia.org/wiki/Google_Maps
40 https://de.wikipedia.org/wiki/OpenLayers
open4data.at - challenge 2016
17/61
1.13 Persistenz-Frameworks und Datenbanken
Dieser Punkt geht auf die Unterstützung der Persistenz-Frameworks Hibernate,
HibernateJPA, EclipseLink und OpenJPA in Kombination mit verschiedenen Datenbanken
in Form einer Kompatibilitätsmatrix durch TreeDB ein.
TreeDB unterstützt die JPA-kompatible proprietäre ObjektDatenbank ObjectDB 41(getestet mit Version 2.6.4), die nicht in der Matrix gesondert
abgebildet ist, da diese ein Sonderfall in der Kombination aus Persistenz-Framework und
Datenbank in einem ist.
Für die Tests wurde jeweils die Demodatenbank der Online-Version42 mit den
verschiedenen Arten an Daten – Benutzerdaten, Text, Bilder und Filme – neu aufgebaut.
SQLDatenbank
DBVersion
JDBC-Version
H2
1.4.185
-
Open Source
Apache Derby
10.12.1.1
-
Open Source
HSQLDB
2.3.2
-
MSSQL 2014
12
Version 4
Oracle Express
11g
12.1.0.2
10.1.2
4.19.26
5.6.27
5.1.37
MariaSQL
10.0.22
1.3.2
Postgres
9.4
9.4-1205
sqlite-jdbc
3.8.11.2
-
IBM DB2
Express
MySQL
H
HJ
EJ
OJ
1
Lizenz
Open Source
proprietär
2
2
2
proprietär
3
proprietär
Open Source
4
Open Source
Open Source
!
Open Source
Erläuterung
Bemerkung/Problem
H/HJ
EJ
OJ
Hibernate/Hibernate JPA 5.0.4.Final
EclipseLink JPA 2.6.1
OpenJPA 2.4.0
1
java.sql.SQLDataException: data exception: string data, right
truncation
2
3
4
java.sql.SQLException: ORA-01691: unable to extend lob segment
!
automatisches DROP bestehender Tabellen funktioniert nicht
nur funktionell mit einer MySQL-JDBC Anbindung
experimentell, sqlite ist nicht multithreaded-fähig!
41 http://objectdb.com
42 https://db.treedb.at/
open4data.at - challenge 2016
18/61
1.14 Unser Geschäftsmodel
...kurz zusammengefasst:

Schnelle Entwicklung von kundenspezifischen Datenbanken mit Hilfe des TreeDB SDK.

Prototyping durch Abwandeln bestehender Datenbanken.

Jahrelange Erfahrung in der Implementierung von Software, mit Schwerpunkt im JavaUmfeld, für Unternehmen im Bereich der Telekommunikation, der Chemie und der
Pharmazie. Siehe Referenzen43.
1.15 Zukunftspläne
Wir sind mit Ende 2015 mit unserer Projekt-Homepage http://treedb.at/ online gegangen. Im
Laufe des Jahres werden wir versuchen, Kunden mit den verschiedensten Anforderungen aus den
verschiedensten Bereichen für unser Projekt zu gewinnen.
43 http://treedb.at/index.php/de/ueber-uns/referenzen
open4data.at - challenge 2016
19/61
2. Zugangsdaten
Teststellung mit Admin-Rechten
Hier finden Sie unseren Wettbewerbsbeitrag, die Datenbank Laichgewässer, siehe Kapitel 3,
und Sie können die TreeDB mit Admin Rechten testen, um auch Änderungen in der Datenbank
durchführen zu können.
TreeDB: http://opendata.treedb.at
Benutzer:
Passwort:
Sie können in der Testdatenbank tun und lassen was Sie wollen – ich kann Ihnen diese
Datenbank jederzeit wieder zurücksetzen. Wenn Sie Unterstützung brauchen oder Fragen offen
sind, zögern Sie nicht, mich zu kontaktieren:
Peter Sauer

[email protected]

open4data.at - challenge 2016
20/61
3. Wettbewerbsbeitrag
3.1 Datenbank Laichgewässer
Die Idee ist, eine Datenbank aufzubauen, die die Laichgewässer von
Amphibien in Österreich erfasst. Es gibt sicher Datenbestände in dieser
Hinsicht, aber es ist mein Wunsch eine derartige Datenbank nach meinen
Kriterien aufzubauen. Mit dem Ansatz treffen wir nicht ganz die
Wettbewerbskriterien, da wir keine Datensätze mit Österreich-Bezug
verwenden, sondern einen eigenen Datensatz samt dazugehöriger
Datenbank kreieren.
Weiters ist diese Datenbank auch ein Beispiel für den Ansatz, bestehende Datenbanken von
den Grundlagen her wieder zu verwenden. In unserem Falle sind das die bestehende Zoodatenbank
und die IoT-Datenbank. Details im weiteren Text.
Hintergrund dieser Datenbank ist folgender: Ehrenamtlich betreue ich gemeinsam mit
anderen Freiwilligen aus der Jägerwaldsiedlung im 14. Wiener Gemeindebezirk unter der kundigen
Anleitung zweier Biologen ein von der Gemeinde Wien angelegtes künstliches Biotop. Dieses liegt
am Rande des Wienerwaldes, aber doch noch in der Siedlung. Amphibien, die sich aus dem Umfeld
der Siedlung bei der frühjährlichen Wanderung in Richtung Laichgewässer begeben, laufen Gefahr,
auf der Straße vom fahrenden Verkehr getötet zu werden. Die Freiwilligen sammeln am Abend mit
Taschenlampe und Plastikkübel bewaffnet die Amphibien von der Straße ein und bringen diese
direkt in das Biotop.
Es gibt eine Reihe von Laichgewässern in der Gegend, die ich exemplarisch
in die Datenbank aufnehmen werde. Ein Laichgewässer muss aber kein stehendes Gewässer
sein. Der Feuersalamander bevorzugt kleine Bäche für das Ablaichen. Manche Frösche, wie
z.B. der Grasfrosch, laichen sowohl in stehenden, als auch in fließenden Gewässer.
In meinen Garten befindet sich ein kleines Biotop, das von
den Amphibien als Laichgewässer angenommen wurde. Für
dieses Biotop wird ein kleines Crossover in Richtung IoT
angedacht. Von diesem Biotop werden Live-Bilder und
Parameter wie Luft, Wasser und Bodentemperatur zur
Verfügung stehen. Die Schaltung ohne Gehäuse mit den drei
wasserdichten Temperatursensoren ist auf dem rechten Bild sichtbar.
open4data.at - challenge 2016
21/61
Wir stehenvor dem Problem, dass wir recht spät kundig dieses Wettbewerbs wurden. Somit haben
erst recht spät mit der Umsetzung dieser Datenbank begonnen.
Unter folgendem Link finden Sie den aktuellen Status der Umsetzung dieser Datenbank.
http://treedb.at/index.php/de/2-uncategorised/135-open4data-at
Wenn die Datenbank etwas weiter fortgeschritten ist, werden wir versuchen unsere Kontakte
spielen zu lassen, um für dieses Teilprojekt Unterstützung von öffentlicher Seite zu erfahren. Diese
Datenbank soll als Beispiel für unsere Idee dienen: freie Daten und eine Datenbank unter einem Hut
zu vereinen.
open4data.at - challenge 2016
22/61
3.2 Datenstrukturen (Entwurf)
Laichgewässer
Feldname
Beschreibung
Datentyp
Lokation
Geokoordinaten des Laichgewässers
Geokoordinaten, bei
Fließgewässer können
dies mehrere Koordinaten
ein.
Name
optionaler Name des Gewässers, z.B. Halterbach
Text
optionaler Adresse für die Anfahrt
Straße
z.B. Karl-Bekehrty-Straße
Text
Nummer
59
Text
Postleitzahl
1140
Integer
Adresszusatz
Optionaler Adresszusatz
Text
Bundesland
Wien, Burgenland, etc.
Enum
Bemerkung
Auf dieser Höhe befindet sich der Zugang zum
Sammelbecken, das von der Wildbachverbauung
angelegt wurde.
Text
Stehende Gewässer
Größe
optionale Größenangaben des Laichgewässers in m²
Double
Tiefe
optionale Tiefenangabe des Laichgewässers im cm
Double
Abfluss/Zufluss Ja/Nein
Boolean
Künstlich
angelegt
Ja/Nein
Boolean
Aufbau
Teichfolie mit Drahtgitterverstärkung am Rand und
Schotteraufschüttung im Teich und am Rand
Text
Limnologische Klassifikation des Gewässers
Klassifikation
Enum
Schutzmaßnahmen
Schutzzaun, um die Amphibien nach deren
Umwandlung von der Larvenform zum fertigen Tier
zur Waldseite abzulenken
Text
Fremdbesatz
Fische, die von Menschen ausgesetzt wurden, sind
eine Gefahr für die Amphibien, z.B. Goldfische
Text
Bepflanzung
Beschreibung der vorkommenden Wasserpflanzen
Text
Beschreibung
Allgemeine Beschreibung des Biotops
Text
Gewässer wurde angelegt von
Organisation
Straße
MA 22
Text
Text
open4data.at - challenge 2016
23/61
Nummer
Text
Postleitzahl
Integer
Adresszusatz
Text
Telefon
Text
E-Mail-Adresse
Text
Homepage
Text
Bemerkung
Text
Gewässer wird betreut von – z.B. ehrenamtliche Helfer
Organisation
Text
Straße
Text
Nummer
Text
Postleitzahl
Text
Adresszusatz
Text
Telefon
Text
E-Mail-Adresse
Text
Homepage
Text
Bemerkung
Text
Fließende Gewässer
Bemerkung
Text
Limnologische
Klassifikation
Enum
Datenstruktur Amphibium
Amphibium
Beschreibung
Datentyp
Referenz auf ein Laichgewässer Referenz auf ein
Laichgewässer, in dem das
Amphibium gesichtet wurde.
Verknüpfung
Taxonomic Serial Number
Long
Taxonomic Serial Number
(TSN)
Häufigkeit des Vorkommens im Beschreibung wie z.B. nur
Laichgewässer
einmal gesichtet
Text
Vorkommen
Laichzeit
Ständig
Überwinterung
Auswahl, mehrfache Auswahl
möglich
Bemerkung
Zusätzliche Bemerkung
Text
open4data.at - challenge 2016
3.3 Limnologische Klassifikation
siehe: https://de.wikipedia.org/wiki/Limnologie
24/61
open4data.at - challenge 2016
25/61
3.4 ITIS Datenbank
Für die Verwaltung der Amphibien, die in Österreich vorkommen, werden wir Teile der
Zoodatenbank, die auf der öffentlichen Datenbank ITIS aufbaut, wiederverwenden. Für unsere
Projektierungen verwenden wir eine lokale Kopie44 dieser Datenbank.
ITIS-Datenbank: http://www.itis.gov/
Dieses Beispiel zeigt den Datenbestand der
Erdkröte45 (Bufo bufo) in der ITIS-Datenbank.
44 http://www.itis.gov/downloads/index.html
45 https://de.wikipedia.org/wiki/Erdkr%C3%B6te
open4data.at - challenge 2016
26/61
4. Appendix: Screenshots TreeDB
4.1 Übersicht
Nach dem Öffnen der entsprechenden Website (z.B. https://db.treedb.at) präsentiert sich links der
Datenbank-Katalog1, der alle verfügbaren Datenbanken in verschiedene Kategorien unterteilt und
auflistet. Durch Klicken auf die Elemente des Akkordeons2 kann zwischen den verschiedenen
Kategorien gewechselt werden. Alternativ kann eine Datenbank auch über das gleichnamige Menü3
geöffnet werden.
open4data.at - challenge 2016
1 Katalog
2 Akkordeon
27/61
3 Menü
Hinweis: Wenn von einer Baumstruktur im Sinne der Informatik/Mathematik gesprochen wird,
dann müsste man einen Endknoten korrekterweise als Blatt bezeichnen. Im weiteren Text wird aber
nur von Knoten, die Blätter inkludierend, gesprochen.
Ein Klick auf das Symbol der gewünschten Datenbank öffnet diese in einem eigenen Fenster. Das
Fenster ist zweigeteilt – die linke Hälfte beinhaltet die diversen Steuerelemente als eigene Leiste
und den Baum, der die Daten dieser Datenbank repräsentiert. Die rechte Hälfte stellt die Daten des
aktuell selektierten Knotens des Baumes dar.
open4data.at - challenge 2016
28/61
Steuerelemente der Datenbankansicht:
Das
klappt den gesamten Baum auf. Wenn dieser aufgeklappt ist, ändert sich das Plus in ein
Minus einhergehend mit der Umkehrung der Funktionalität. Das Klicken auf
gesamten Baum wieder zu.
klappt den
Alternativ können Teilbereiche des Baumes mit Hilfe der rechten Maustaste auf- und wieder
zugeklappt werden.
open4data.at - challenge 2016
29/61
4.2 Suche
Steuerelemente der Datenbankansicht:
Die
öffnet das Suchmenü. Im Eingabefeld kann der gewünschte Suchbegriff eingegeben
werden. Mit der Taste Enter oder dem Lupen-Symbol wird die Suche gestartet. Das Symbol
Radiergummi setzt das Eingabefeld zurück und löscht die Ergebnisliste der Suche.
Alle Knoten des Baumes, die den Suchbegriff beinhalten, werden als Ergebnis der Suche in einer
Tabelle aufgelistet. Zusätzlich wird diese Ergebnisliste in der Baumansicht eingeblendet, um das
Navigieren innerhalb dieser Liste zu vereinfachen.
open4data.at - challenge 2016
30/61
4.3 PDF Export
Steuerelemente der Datenbankansicht:
Das Symbol
(sofern dieses verfügbar ist) ermöglicht es, den Inhalt des aktuell selektierten
Knotens in eine PDF-Datei zu exportieren. Das PDF-Modul bietet umfangreiche Optionen:
Papierformat, Ausrichtung des Dokuments und die Möglichkeit, das Aussehen der Kopf- und
Fußzeile zu definieren.
• Die Auswahlliste Papierformat lässt verschiedene Papiergrößen zu.
• Die Auswahlliste Ausrichtung legt die Seitenorientierung fest: Hoch- oder Querformat.
• Die Auswahlliste Farbe legt fest, ob die PDF-Datei in Farbe oder in Schwarzweiß erzeugt
wird.
• Das Menü Dekoration definiert das Aussehen einer optionalen Kopf/Fußzeile.
open4data.at - challenge 2016
31/61
Optionen für Kopf und Fußzeile entnommen von http://wkhtmltopdf.org/:
[page]
[frompage]
[topage]
[webpage]
[section]
[subsection]
[date]
[isodate]
[time]
[title]
[doctitle]
[sitepage]
[sitepages]
Replaced
Replaced
Replaced
Replaced
Replaced
Replaced
Replaced
Replaced
Replaced
Replaced
Replaced
Replaced
Replaced
by
by
by
by
by
by
by
by
by
by
by
by
by
the
the
the
the
the
the
the
the
the
the
the
the
the
number of the pages currently being printed
number of the first page to be printed
number of the last page to be printed
URL of the page being printed
name of the current section
name of the current subsection
current date in system local format
current date in ISO 8601 extended format
current time in system local format
title of the of the current page object
title of the output document
number of the page in the current site being converted
number of pages in the current site being converted
open4data.at - challenge 2016
32/61
4.4 Navigation: Verlauf und Ansichten
Die Pfeiltasten
rückwärts zu navigieren.
Das Symbol
dienen dazu, im Verlauf der besuchten Knoten vorwärts oder
dient dazu, ein Fenster in eine Tab-Ansicht überzuführen.
Sie können diesen Vorgang auch umkehren. In der Tab-Ansicht steht an gleicher Position in der
Steuerleiste dann ein Fenster-Symbol
zur Verfügung. Dieses führt die Tab-Ansicht der
Datenbank wieder in ein einzelnes Fenster über. Fenster werden im Tab Desktop angezeigt. Über
das jeweilige Untermenü des Menüs-Fenster können entweder alle Fenster in Tabs, oder vice versa
alle Tabs in Fenster umgewandelt werden.
open4data.at - challenge 2016
33/61
4.5 Datenbankinformationen
Steuerelemente der Datenbankansicht:
Die Schaltfläche
an.
zeigt diverse Informationen über die Datenbank in einem eigenen Fenster
open4data.at - challenge 2016
34/61
4.6 Login
Um Daten ändern zu können, müssen Sie sich für die TreeDB anmelden und die Schreibrechte für
die zu ändernde Datenbank besitzen.
Anmeldung für die TreeDB über das Menü Login
Anmeldefenster
open4data.at - challenge 2016
35/61
4.7 Daten ändern - Knotentyp WIKI
Nach der erfolgreichen Anmeldung müssen Sie die zu ändernde Datenbank gegebenenfalls neu
öffnen, um die Tabs für die Manipulation der Daten sehen zu können.
Für Texte und Bilder steht der spezielle Knotentyp WIKI zur Verfügung.
Der Knotentyp WIKI verfügt über einen eingebauten HTML-Editor mit umfangreichen
Formatierungsmöglichkeiten. Durch Klicken der Schaltfläche Pfeil nach unten, siehe Screenshot
roter Kreis ...
... können alle Optionen dieses Editors eingeblendet werden:
open4data.at - challenge 2016
36/61
Erläuterung der Steuerleiste:
Speichert Änderungen ab.
Verwirft alle Änderungen und stellt den ursprünglichen Zustand wieder her.
Blendet alle verfügbaren Bilder ein.
Einblendung aller verfügbaren Bilder:
Durch Klicken auf die Voransicht dieser Bilder wird ein Makro, das dieses Bild referenziert, in den
Text eingefügt.
Das Tab Bilder dient der Verwaltung der Bilder.
Erläuterung der Steuerleiste:
Öffnet den Dialog für das Hochladen von Bildern.
open4data.at - challenge 2016
37/61
Löscht die selektierten Bilder
Öffnet ein Fenster zur Bearbeitung der Bilddaten.
Bearbeitung der Bilddaten:
Erläuterung der Steuerleiste:
Speichert Änderungen ab.
Verwirft getätigte Änderungen.
Die folgenden Symbole werden abhängig von den Eigenschaften des Bildes eingeblendet.
Zeigt das Bild in Originalgröße.
Zeigt die EXIF-Daten für Bilder im JPG-Format an.
Zeigt anhand der GPS-Information das Bild auf Google-Maps an.
In diesem Kontext eine Erläuterung des Kontrollkästchen GPS-Daten ignorieren: Da die GPSEinheit einer Kamera funktionsbedingt unter Umständen die richtigen Koordinaten erst mit großer
Verzögerung anzeigt, besteht die Möglichkeit, dass die gespeicherten GPS-Daten nicht mit den
wirklichen Koordinaten des Bildes übereinstimmen. Ist dieses Kontrollkästchen gesetzt, so werden
die GPS-Daten ignoriert.
open4data.at - challenge 2016
38/61
4.8 Hochladen von Dateien
Im Kontext verschiedener Dialoge können Dateien wie Bilder und Filme hochgeladen werden. Sie
können die gewünschten Dateien per Drag & Drop über das für diesen Zweck vorgesehene
gleichnamige Feld hochladen.
Über die Schaltfläche
Bilder umschalten.
können Sie auf das klassische Datei-Menü zum Hochladen einzelner
Im Zusammenhang mit dem Hochladen von Bildern kann die Web-Cam, falls vom Browser
unterstützt, zum Einbinden dieser verwendet werden. Die Größe dieser Bilder kann bearbeitet
werden.
open4data.at - challenge 2016
39/61
Die Kamera kann durch das Klicken des blauen Kamera-Symbols in der Voransicht oder durch die
entsprechende Schaltfläche
ausgelöst werden. Das so aufgenommene Bild kann mit
beschnitten und mit einem Namen versehen mit der Schaltfläche
gespeichert werden.
Je nach Kontext kann das Hochladen von Dateien mit Restriktionen verknüpft sein:
• Dateityp – es können nur Dateien mit einer bestimmten Datei-Erweiterung hochgeladen
werden: z.B. nur web-konforme Bilder (.jpg, .gif, .png)
• Beschränkung der Größe einer Datei
• Maximale Größe eines Bildes hinsichtlich der Dimensionierung: z.B. Symbol 16x16 Punkte
• Hochladen von genau einer Datei
open4data.at - challenge 2016
40/61
4.9 Daten ändern
Das TreeDB-SDK erlaubt es, benutzerdefinierte Eingabefelder mit einem vorgegebenen Layout zu
verbinden. Im Beispiel der Zoo-Datenbank wurde der Knotentyp Spezies, bestehend aus einem
WIKI-Teil, um eine Gruppierung an Eingabefeldern ergänzt, die die Zoo-spezifischen Daten
enthält.
Diese Benutzerdaten werden dann im HTML-Text als Makros referenziert.
$LMACRO steht für ein sprachabhängiges Makro (L wie Language)
open4data.at - challenge 2016
Je nach Aufbau des Knotentyps kann dieser komplexe, über mehrere Tabs gehende
Datengruppierungen beinhalten.
41/61
open4data.at - challenge 2016
42/61
4.10 Änderung der Datenbankinformationen
Die Schaltfläche
Details/Tabs.
präsentiert (mit Schreibrechten) die Datenbankinformation mit weiteren
Der Tab Bearbeiten ermöglicht es Ihnen, diverse Details der Datenbank festzulegen
open4data.at - challenge 2016
43/61
4.11 Administration
Um administrative Tätigkeiten ausführen zu können, müssen Sie mit einem Benutzer mit AdminRechten in der TreeDB angemeldet sein. Sollte noch kein Benutzer mit Admin-Rechten in der
TreeDB angelegt worden sein, kann der vordefiniere Admin-Benutzer admin, der aber in der
web.xml-Datei1 explizit freigeschaltet worden sein muss, verwendet werden.
Hinweis: In der Terminologie der TreeDB wird eine Datenbank auch als Domain bezeichnet.
1
siehe Parameter adminPassword in folgender Hilfe46.
46 http://treedb.at/index.php/de/downloads/war-datei
open4data.at - challenge 2016
44/61
4.12 Benutzer
Dieses Menü ermöglicht das Anlegen neuer und das Bearbeiten und Löschen bestehender Benutzer.
Legt einen neuen Benutzer an.
Ändert die Daten eines bestehenden Benutzers.
Löscht die selektierten Benutzer.
Anlegen eines neuen Benutzers:
Mit einem roten Stern gekennzeichnete Eingabefelder sind verpflichtend. Die E-Mail-Adresse des
Benutzers dient gleichzeitig als Benutzername für die Anmeldung für die TreeDB.
open4data.at - challenge 2016
45/61
Mit der Schaltfläche
werden die bestehenden Änderungen gespeichert. Das Konterfei des
Benutzers kann per Hochladen eines Bildes oder mit Hilfe einer Web-Cam, sofern der Web-Browser
dazu in der Lage ist, eingebunden werden.
open4data.at - challenge 2016
46/61
4.13 Gruppen
Eine Gruppe fasst mehrere Benutzer unter einem benutzerdefinierten Namen zusammen. Es
existieren folgende vordefinierte Gruppen: ADMIN und GUEST. Die eigentliche Bedeutung der
Gruppen ergibt sich erst mit der Verwendung dieser im Menü "Zugriffsrechte".
Legt einen neue Gruppe an.
Ändert die Daten einer bestehenden Gruppe.
Löscht die selektierten Gruppen.
Anlegen einer neuen Gruppe:
Jede Gruppe muss einen eindeutigen Namen besitzen. Mit
zugewiesen und mit
können Benutzer der Gruppe
wieder aus der Gruppe entfernt werden.
open4data.at - challenge 2016
47/61
4.14 Zugriffsberechtigungen
Die Zugriffsberechtigungen regeln die Rechte der einzelnen Gruppen pro Datenbank (Domain).
Ändert die Gruppenzugehörigkeit/Zugriffsrechte einer Domain.
Modifikation der Rechte einer Gruppe:
Speichert die Änderungen bezüglich der Rechte.
Beendet die Mitgliedschaft der Datenbank bezüglich der selektierten Gruppen.
Mit Hilfe von
festgelegt werden.
kann die Mitgliedschaft einer Datenbank zu einer bestimmten Gruppe
beendet die Mitgliedschaft einer Datenbank in einer Gruppe.
Die vordefinierten Gruppen ADMIN und GUEST besitzen fixe, nicht veränderbare Berechtigungen.
Für benutzerdefinierte Gruppen können die einzelnen Rechte für die Kombination
open4data.at - challenge 2016
48/61
Gruppe/Datenbank vergeben werden. Im Screenshot werden für die Gruppe "Test" bestimmte
Rechte vergeben, die aber nur für die Datenbank "Address DB" gelten.
Folgendes Diagramm erläutert den Zusammenhang von Benutzer/Gruppe/Datenbank/Berechtigung:
open4data.at - challenge 2016
49/61
4.15 Kategorien
Datenbanken können optional mit Hilfe von Kategorien thematisch gruppiert werden.
Legt einen neue Kategorie an.
Speichert die Änderungen bezüglich der Reihenfolge der Kategorien.
Ändert die Einstellungen einer bestehenden Kategorie.
Löscht die selektierten Kategorien
Mit Hilfe von
kann die Reihenfolge des Kategorien geändert werden.
Kategorie ändern:
Im unteren Bereich werden die Datenbanken angezeigt, die noch keiner Kategorie zugewiesen sind.
Durch die blauen Pfeiltasten kann die Datenbank der aktuellen Kategorie zugewiesen oder
gegebenenfalls aus dieser wieder entfernt werden.
open4data.at - challenge 2016
50/61
Neben der Tabelle, die alle Datenbanken der Kategorie beinhaltet, befinden sich blaue Pfeiltasten,
die die Reihenfolge der Datenbanken innerhalb der Kategorie steuern.
Die Schaltfläche Ändern ermöglicht es, ein Symbol, das die Kategorie repräsentiert und das
verpflichtend ist, festzulegen oder zu ändern.
open4data.at - challenge 2016
51/61
4.16 JavaScript-Bibliotheken
TreeDB unterstützt die Einbindung externer JS-Bibliotheken im TreeDB eigenen Format, das den
JavaScript und den Vaadin-spezfischen Code enthält, um die JS-Bibliothek innerhalb des VaadinFrameworks einbinden zu können. Diese Module sind in Form eines 7z-Archivs paketiert.
ermöglicht es, eine JS-Bibliothek per Datei-Upload oder Drag & Drop hochzuladen.
Eine Liste der verfügbaren externen JS-Bibliotheken finden Sie hier47.
47 http://treedb.at/index.php/de/downloads/externe-javascript-bibliotheken
open4data.at - challenge 2016
52/61
4.17 Datenbankverwaltung
Dieses Menü ermöglicht es, Datenbanken zu installieren, zu konfigurieren und zu löschen.
Datenbanken sind in Form eines 7z-Archivs paketiert.
Mit
kann eine Datenbank importiert werden. Zuerst öffnet sich ein Fenster, das alleinig die
Möglichkeit, die Datenbank per Datei-Upload oder Drag & Drop hochzuladen, anbietet.
Die Schaltfläche Upload öffnet den entsprechenden Dialog.
Nach dem Hochladen der Datenbank stehen folgende Informationen zur Verfügung:
open4data.at - challenge 2016
53/61
Der Name und eine kurze Beschreibung der Datenbank. Der Name der Datenbank kann geändert
werden, muss aber eindeutig sein.
Der Tabulator Voraussetzungen listet alle Vorbedingungen der zu installierenden Datenbank auf. Die
Zoodatenbank benötigt eine Internetverbindung mit einer Kopie der ITIS-Datenbank:
jdbc:mysql://itis.treedb.at:11700/ITIS
Der Tabulator Gruppen ermöglicht es, während der Installation der Datenbank die Zugehörigkeit zu
den systemweiten Gruppen festzulegen. Die Gruppen ADMIN & GUEST werden automatisch
vorselektiert.
Der Tab Kategorie ermöglicht es, die Datenbank während der Installation einer Kategorie
zuzuweisen.
open4data.at - challenge 2016
Die Schaltfläche Installieren leitet die Installation der Datenbank ein. Der Fortschritt der
Installation wird im Tab Installation angezeigt.
54/61
open4data.at - challenge 2016
55/61
4.18 Einstellungen
Dieses Menü dient dazu, verschiedene interne Einstellungen zu tätigen.
Die Konfiguration E-Mail legt all die Parameter eines E-Mail Servers fest, die zum Versenden von
E-Mails seitens der TreeDB über diesen Server notwendig sind.
Mit der Symbolleiste können Änderungen bezüglich des E-Mail-Servers gespeichert oder verworfen
werden.
Das Kontrollkästchen SMTP-Schnittstelle aktiveren legt fest, ob die E-Mail-Schnittstelle zur
Verfügung steht, oder ob diese deaktiviert ist.
Das Eingabefeld Server repräsentiert die IP-Adresse oder den Host-Namen des E-Mail-Servers.
Das Eingabefeld Port legt die Port-Adresse fest, über die der E-Mail-Server gemäß SMTP
angesprochen wird.
Das Eingabefeld Benutzer legt fest mit welcher Kennung, im Namen welchen Benutzers die E-Mail
gemäß SMTP versendet wird. Dies kann je nach Konfiguration des E-Mail-Servers eine E-MailAdresse oder eine Benutzerkennung sein.
Das Eingabefeld Passwort legt das Passwort für die Identifizierung des Benutzers gegenüber
dem E-Mail-Server fest.
Mit Hilfe der Schaltfläche E-Mail Einstellungen testen kann die aktuelle Konfiguration des E-MailServers getestet werden.
open4data.at - challenge 2016
56/61
Der Konfigurationspunkt API-Schlüssel kennt aktuell nur den Schlüssel für die Google MapsSchnittstelle.
Der Konfigurationspunkt externe Programme dient dazu, das Programm wkhtmltopdf48 zu
konfigurieren, das den Inhalt eines Knotens in eine PDF-Datei umwandelt.
48 http://wkhtmltopdf.org/
open4data.at - challenge 2016
57/61
Das Kontrollkästchen PDF-Erzeugung per wkhtmltopdf aktiveren legt fest, ob diese Schnittstelle
zur Verfügung steht, oder ob sie deaktiviert ist.
Das Eingabefeld wkhtmltopdf Pfad legt den Pfad zum ausführbaren Programm fest.
Das Eingabefeld wkhtmltopdf Ver. hinterlegt die Versionsnummer des Programms.
Die Einstellung Entwicklung dient dazu, die E-Mail-Einstellungen für einen Fehlerreport
festzulegen.
open4data.at - challenge 2016
58/61
5. Appendix: Teilprojekt IoT
Das Teilprojekt IoT wollen wir dieses Jahr verstärkt weiterführen. Wir werden laufend
Schaltungen/Aufbauten entwickeln und diese dokumentieren49. Die folgende Schaltung realisiert
eine fiktive Serverraumüberwachung: Bewegungserkennung über eine Kamera, Feuchtigkeit und
Temperaturüberwachung und ein Rauchsensor. Die gesammelten Daten werden an die IoT
Datenbank übertragen, wo sie weiterverarbeitet werden.
Written by: Franciszek Bartnik
This article describes an exemplary sensor circuit which can be integrated into the TreeDB. It is a
more advanced version of the project used in the "Make your Day! Challenge 2015" mentioned in
the previous article.
The circuit collects data using a Raspberry Pi 2 Model B and is build from the following
components:
•
•
•
•
•
•
•
2 x DS18B20 digital temperature sensors
1x DHT22/AM2302 humidity sensor
1x MQ-2 gas sensor (for detecting smoke)
1x ADC0832 A/D converter chip
1x Raspberry Pi Camera Module
2x 10 kΩ resistors
1x Breadboard and wires
49 http://treedb.at/index.php/de/2-uncategorised/133-exemplary-sensor-circuit-operated-by-treedb
open4data.at - challenge 2016
59/61
All of these(except the camera, which is connected directly to the raspberry pi) have been connected
as seen below
For simplicity's sake, the red cable is always the power cable and the black is always the ground
cable. All others are signal cables.
In the following paragraphs the traditional GPIO numbering system will be used, no the physical
one.
The Thermometer Module
The thermometer module is the simplest of all modules. It is the one furthest to the right on the
breadboard and consists of two DS18B20 sensors and one 10 kΩ resistor. There is also one more
temperature sensor in the hygrometer, however will not concentrate on that one in this module.
open4data.at - challenge 2016
60/61
The DS18B20 sensor has three pins:
• Left: Vcc (power input)
• Middle: Signal
• Right: Ground
In this circuit a voltage of 3.3V is applied across all sensors. Since the signal is already digital, we
can connect the sensors directly to the raspberry pi, namely the GPIO 4 pin. We can connect both
signal wires, since the system can distinguish between multiple signals at once. The 10kΩ resistor
acts as a pull-up resistor for the signal, nothing more.
The Hygrometer Module
The hygrometer module is the one furthest to the left on the breadboard. It is also relatively simple.
The hygrometer is to be connected as following:
One of the pins is not used. As seen on the previous diagram, we also need a 10 kΩ pull-up resistor
here. The signal wire is connected to GPIO 17.
The hygrometer also contains a temperature sensor, which can be accessed using the same signal
wire as humidity.
The Smoke Detector Module
The smoke detector module utilizes the MQ-2 gas sensor as well as the ADC0832 Analog-to-Digital
Converter. It is the most complicated of all modules. The gas sensor is to be connected as follows:
• Left: Ground
• Middle: Vcc
• Right: Signal
open4data.at - challenge 2016
61/61
Since MQ-2 does not digitize the signal itself, we need to attach it to the ADC0832 A/D chip. It
processes the analog signal into a format which the raspberry pi can read. The A/D converter is to
be connected as follows:
In the diagram on top, these wires represent the different pins:
•
•
•
•
•
Blue: CLK (Clock)
Grey: DI (Data In)
Brown: DO (Data Out)
Purple: CS (Channel Select)
Pink: CH0 (Channel 0)
Conclusion
If connected correctly, the circuit described above can be used to collect data. Additionally to the
modules described above, one can also use the camera(which is a separate module easily connected
to the raspberry pi) and a built in thermometer for reading the CPU temperature.
Herunterladen