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.