2. Praktikum: Verteilte Systeme und Webseiten

Ähnliche Dokumente
1. Praktikum: ADS-B Empfänger

Projekt Online-Shop:

PHP MySQL - myphpadmin Formulardaten in eine Datenbank speichern

Die Datenbank und der Strukturentwurf wurden vorher mit phpmyadmin erzeugt.

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Grundlagen der Informatik 2

1)Login Funktion ohne Datenbank

Grundlagen der Informatik 2

PHP- Umgang mit Datenbanken (1)

Entwicklungsumgebung für die Laborübung

Anleitung: Verbindung mit der Datenbank

5. Übung: PHP-Grundlagen

01 Einführung in PHP. Einführung in PHP 1/13 PHP in Aktion

KINDERLEICHT INSTALLIERT

MySQL, Java und einiges mehr

Abbildung 6-8: Abfolge beim doppelten Abschicken von Formularen

Anleitung zur Erstellung einer Batchdatei. - für das automatisierte Verbinden mit Netzlaufwerken beim Systemstart -

<? $ZeilenMax = 9; $SpaltenMax = 9; echo "<pre>";

Folien php/mysql Kurs der Informatikdienste

Aufgaben HTML Formulare. Prof. Dr. rer. nat. Claus Brell, Wirtschaftsinformatik, Statistik

XAMPP installieren & Kursbeispiel einrichten

pd-admin v4.x Erste Schritte für Reseller

Übungen. DI (FH) Levent Öztürk

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP.

PHP 5.4 ISBN Fortgeschrittene Techniken der Web-Programmierung. Bastian Martin, Andreas Dittfurth. 1. Ausgabe, April 2013 GPHP54F

Der Einsatz von MySQL-Datenbanken (mit XAMPP)

W7 Projekt im Zusammenhang Gästebuch

SQL,Teil 2: SELECT. W. Spiegel. Übersicht SELECT. Mehrfache Werte vermeiden: SELECT DISTINCT. Ausgabe ordnen: ORDER BY. Projektion.

PostgreSQL auf Debian System

Startup, Shutdown und Reboot eines Raspberry Pi über die HomeMatic CCU

Internet-Technologien

Wordpress am eigenen Server installieren

Lehrveranstaltung Grundlagen von Datenbanken

Erstellt bei Teris Cooper Freie Nutzung des PDF Dokuments.

Mit PuTTY und WinSCP an der Pi


Datenbanken für Online Untersuchungen

Matthias-Claudius-Gymnasium Fachcurriculum Informatik

2. Praktische Übung: Messwerterfassung und Speicherung in MySQL-DB

Dateneingabe über ein HTML-Formular in eine Datenbank:

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

WordPress lokal mit Xaamp installieren

Typo 3 installieren. Schritt 1: Download von Typo3

vbulletin 5 Connect Kurzanleitung (ver 1.0) Erstellt und gewartet von Internet Brands Übersetzung: Dominic Schlatter

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

PHP und MySQL. Integration von MySQL in PHP. Zellescher Weg 12 Willers-Bau A109 Tel Michael Kluge (michael.kluge@tu-dresden.

INSTALLATION. Voraussetzungen

ODBC Was ist das? ODBC Treiber installieren ODBC-Zugriff einrichten ODBC Zugriff mit Excel ODBC Zugriff mit Word...

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 6: Datenbankabfragen mit SQL und PHP. Stand: Übung WS 2014/2015

ASP VPN-CLIENT INSTALLIEREN. 11/10/43 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD!

2.3 - Das Verwaltungsmodul moveon installieren - SQL-Version

Kapitel 4: PHP-Grundlagen Kapitel 5: PHP-Bausteine für Programme

Linux-Camp: Linux als Server am Beispiel LAMP

MySQL, phpmyadmin & SQL. Kurzübersicht

PHP Übungsaufgabe 2 1 / 5. Doing Web Apps. PHP Übungsaufgabe 2

Aufbau und Bestandteile von Formularen. Oracle Forms. Erstellen eines neuen Blocks (1) Starten von Oracle Forms

WordPress Installation. Vorgehen bei der Installation von WordPress. Voraussetzung: Sie haben eine angemeldete Domain bei einem Provider

Konzept eines Datenbankprototypen Folie 1 Daniel Gander / Gerhard Schrotter

TYPO3 und TypoScript

Internet Praktikum im Grunstudium Formularwerte und Datenbanken Speichern, Lesen und Aufbereiten. Dr. Guido Rößling Dipl.-Ing.

XAMPP installieren & Kursbeispiel einrichten

Folien php/mysql Kurs der Informatikdienste

PHP Schulung Beginner. Newthinking Store GmbH Manuel Blechschmidt

Gregor Kuhlmann Friedrich Müllmerstadt. MySQL. Der Schlüssel zu Datenbanken-Design und -Programmierung. c 3 E. i- O Rowohlt Taschenbuch Verlag

PHP. Prof. Dr.-Ing. Wolfgang Lehner. Diese Zeile ersetzt man über: Einfügen > Kopf- und

Hochschule Darmstadt Fachbereich Informatik

Installation und Verbindung mit dem KIRUS.asp System

Inhalt HTML 2. Applets Frames Formulare CSS cascading style sheets. Lehrveranstaltung Internet in AT Dr.-Ing. A. Braune TECHNISCHE UNIVERSITÄT DRESDEN

Der Rumpf. Titel Seite 3

Einführung in PHP und MySQL

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

Einrichtung Secure-FTP

Rechnernetze Praktikum. Versuch 5: Linux embedded. Ziel

Zur Arbeit mit DB2 in der Arbeitsgruppe Technologie der Informationssysteme. 1 Webschnittstelle

Entwicklungsumgebung für die Laborübung

Datenbankprogrammierung mit MySQL 5 und PHP 5 Spona

DBExplorer einrichten

Desktop-Wikis am Beispiel von TiddlyWiki

TYPO3 Schulung h-da.de Redaktionelles Arbeiten Seitentypen und Inhaltselemente

IaaS Handbuch. Version 2

Content Management System (CMS) Manual

Grundkurs MySQL und PHP

Multimedia im Netz Wintersemester 2011/12

Anleitung Version 1.1 Deutsch

Interaktive Webseiten mit PHP und MySQL

ArenaSchweiz AG. CMS Concrete5 Erste Schritte

SEMINAR Modifikation für die Nutzung des Community Builders

PostgreSQL unter Debian Linux

ASA Schnittstelle zu Endian Firewall Hotspot aktivieren. Konfiguration ASA jhotel

Informatik 12 Datenbanken SQL-Einführung

Erste Schritte. Eine Webseite erstellen. Erste Schritte Version 1

MySql und PHP. Apache2: Konfigurieren für php4. ...\apache2\conf\httpd.conf aufrufen. Folgende Zeilen einfügen:

ESB - Elektronischer Service Bericht

Bedienungsanleitung der Datenbankschnittstelle

Eigene Funktionen innerhalb von pgsql

RÖK Typo3 Dokumentation

Die Neuerungen im Überblick

Datenbank - Teil 3. Ziele dieser Übung: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP

Transkript:

2. Praktikum: Verteilte Systeme und Webseiten 2.1. Einleitung Im ersten Praktikum wurde ein ADS-B Empfänger zum Empfang von Flugverkehrsdaten basierend auf einem Raspberry Pi und einem DVB-T Stick entwickelt. Die empfangenen Daten wurden in eine Tabelle einer lokalen MySQL-Datenbank gespeichert. Empfangen wurden dabei Flugzeuge im Umkreis von etwa 50 km. Für Flugsicherungszwecke ist das ein sehr kleiner Umkreis, da Flugzeuge mit einer hohen Geschwindigkeit iegen (beispielsweise 800 km ) und deshalb innerhalb weniger h Minuten den Empfangsbereich durchqueren können. Sinnvoll wäre der Aufbau eines Systems mit mehreren geographisch verteilten Stationen. Dies wird im ersten Teil dieses Praktikums realisiert, indem das System aus dem ersten Versuch so abgewandelt wird, dass alle Teilnehmer Ihre Daten in eine zentrale Datenbank im Netzwerk speichern. In der zweiten Hälfte dieses Praktikums wird eine Webanwendung für die Flugdaten entwickelt, die am dritten Praktikumstermin weiterentwickelt wird. 2.2. Vorbereitung Bearbeiten Sie zur Vorbereitung auf das Praktikum bitte folgende Fragen und Aufgaben: Erläutern Sie, was ein SSH-Tunnel ist und nennen Sie zwei Gründe für deren Einsatz. Mit welchem HTML-Befehl lassen sich Bilder einbinden? Machen Sie sich mit der Datenbankstruktur aus dem ersten Termin wieder vertraut. Nitsche, Kremer 1 Informationssysteme

2.3. Durchführung 2.3.1. Serververbindung Nehmen Sie zunächst Ihr System des ersten Termins wieder in Betrieb. Verbinden Sie sich über SSH mit Ihrem Raspberry Pi und testen Sie, ob Sie Daten empfangen und ob die Daten in die entsprechende Datenbanktabelle geschrieben werden. Sobald Ihr System funktioniert, können Sie die hinterlegten Verbindungsdaten für den Datenbankzugri so abändern, dass anstatt dem lokalen ein entfernter MySQL- Server verwendet wird. Als Server fungiert ein (virtueller) Rechner im Labor für Echtzeitsysteme. Ergänzen Sie dazu die Datei mysql.h um folgende Zeile: #define MYSQL_REMOTEPORT 10254 Ändern Sie auÿerdem den Host auf ezs.kr.hsnr.de. Die anderen Angaben ändern sich nicht, der Server nutzt ebenfalls den Benutzernamen dbuser mit dem Passwort dbuser und der Datenbank praktikum. Damit die neu denierte Konstante auch verwendet wird, müssen Sie in der Datei mysql.c den Verbindungsaufbau entsprechend ergänzen: mysql_real_connect(conn, MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DB, MYSQL_REMOTEPORT, NULL, 0); Diese Änderungen machen eine Neukompilation erforderlich. user@rpi201 ~/praktikum/dump1090 $ make Testen Sie, ob die Verbindung funktioniert, indem Sie Ihr Programm starten. user@rpi201 ~/praktikum/dump1090 $./dump1090 --interactive --mysql Die bekannte Darstellung des interaktiven Modus sollte erscheinen. Die Tabelle füllt sich auf dem Server. Sie können sich mit Ihrem lokalen MySQL-Client ebenfalls an einem entfernten Host anmelden. Dazu muss lediglich der entsprechende Host und Port angegeben werden. user@ubuntu-ikt ~ $ mysql praktikum -h ezs.kr.hsnr.de --port 10254 -u dbuser -p Schauen Sie sich die Inhalte der Tabelle ightdata an. Nitsche, Kremer 2 Informationssysteme

mysql> SELECT * FROM flightdata; Wenn andere Studenten ebenfalls bereits an diesem Punkt angelangt sind, gibt es möglicherweise bereits viele Einträge. Modizieren Sie das SQL-Statement so, dass Sie nur Ihre eigenen Daten erhalten. 2.3.2. SSH-Tunnel Um die Datenübertragung abzusichern, soll die Verbindung über einen SSH-Tunnel hergestellt werden. Dabei wird gesamte Kommunikation mit der zentralen Datenbank über SSH gekapselt. Die Syntax für die Einrichtung des Tunnels lautet wie folgt: $ ssh -L localport:host:hostport user@remotehost Der Localport ist derjenige Port, der an einen entfernten Server weitergeleitet werden soll. Für unseren konkreten Fall ergibt sich der Befehl wie folgt: user@rpi201 ~/praktikum/dump1090 $ ssh -L 10254:localhost:5432 -p 8122 sshuser@ezs.kr.hsnr.de Das Passwort lautet sshuser. Lassen Sie das Terminalfenster oen und arbeiten Sie fortan in einem anderen Fenster. Ändern Sie auÿerdem (wie zuvor in Abschnitt 2.3.1) die MYSQL_HOST auf 127.0.0.1. Kompilieren Sie das Programm erneut. Möglicherweise müssen Sie zunächst einmal make clean eingeben, da ansonsten die Änderungen in der mysql.h nicht detektiert werden. user@rpi201 ~/praktikum/dump1090 $ make clean user@rpi201 ~/praktikum/dump1090 $ make Starten Sie wiederum das Programm mit den Modi - -interactive und - -mysql. Prüfen Sie, ob in der Datenbank weiterhin Ihre Werte eingetragen werden. Die Verbindung zur Datenbank kann vom Raspberry Pi aus auch über den SSH-Tunnel erfolgen. user@rpi201 ~/praktikum/dump1090 $ mysql praktikum -h 127.0.0.1 --port 10254 -u dbuser -p Nitsche, Kremer 3 Informationssysteme

Während Sie an den folgenden Aufgaben arbeiten lassen Sie das Programm im Hintergrund einfach weiterlaufen. 2.3.3. Startseite Die Daten des ADS-B Empfänger sollen nun auf einer Webseite dargestellt werden. Ihre Webseite soll die folgende Struktur haben: (Startseite) index.html impressum.html flights.php details.php Erstellen Sie zunächst eine Startseite für die Webpräsenz. Folgende Elemente soll die Seite mindestens enthalten: Titeldenition (im Head!) Überschrift Logo Links zu den beiden Unterseiten Die Überschrift (z.b. Flugraumüberwachung) soll als solche formatiert sein. Als Logo können Sie ein beliebiges Bild verwenden, beispielsweise das Logo des Fachbereichs. Bitte speichern Sie es im Unterordner images. user@rpi201 /var/www/images $ sudo wget --no-check-certificate http://lionel.kr.hsnr.de/~nitsche/ins/praktikum02/fb03.png Positionieren Sie es in der rechten oberen Ecke mit einer festen Breite von 200 Pixeln. Die Pfadangabe soll relativ erfolgen. Testen sie die Darstellung, indem Sie die Seite im Browser aufrufen. 2.3.4. Impressum Das Impressum sollte folgende Elemente enthalten: Titeldenition Nitsche, Kremer 4 Informationssysteme

Überschrift (Impressum) Den Text Diese Webseite wird betrieben von: gefolgt von Kontaktdaten. Link zurück zur Startseite Die Kontaktdaten sollen als ungeordnete Liste formatiert werden. Sie können Ihre echten Kontaktdaten verwenden oder auch Daten ernden. 2.3.5. Formular zur Flugauswahl In diesem Abschnitt gehen wir schrittweise vor. Legen Sie zunächst eine neue Datei ights.php mit folgendem Inhalt an: <?php $link = mysqli_connect('127.0.0.1', 'dbuser', 'dbuser', 'praktikum', '10254'); if (mysqli_connect_errno()){ die("failed to connect to MySQL: ". mysqli_connect_error()); } echo 'Erfolgreich verbunden'; mysqli_close($link);?> Rufen Sie das Skript mit Ihrem Browser das Skript auf. http://192.168.15.xxx/flights.php Im Erfolgsfall sollte dort Erfolgreich verbunden stehen. Falls dies nicht der Fall ist, prüfen Sie zunächst, ob der SSH-Tunnel noch besteht. Fügen Sie der Seite jetzt eine Überschrift und einen Link zurück zur Hauptseite hinzu und testen Sie diese. Das folgende SQL-Statement liefert die zehn aktuellsten Flüge. SELECT DISTINCT icao FROM flightdata ORDER BY id DESC LIMIT 10; Testen Sie die Abfrage zunächst direkt in der Datenbank. Erweitern Sie anschlieÿend ihr PHP-Skript um die Abfrage in der Variable $sql. Sie können den abgebildeten Code als Grundlage verwenden. Nitsche, Kremer 5 Informationssysteme

$res = mysqli_query( $link, $sql ); if (! $res ) { die('ungültige Abfrage: '. mysqli_error()); }... while ($row = mysqli_fetch_array( $res, MYSQL_ASSOC)) {... }... mysqli_free_result( $res ); Stellen Sie die gefundenen Daten auf einer Seite untereinander dar. Auf ein einzelnes Element einer Ergebniszeile $row können Sie beispielsweise mit $row['icao'] zugreifen. Erweitern Sie nun Ihr Skript so, dass die zehn Flüge jeweils als Elemente eines Formulars bestehend aus Radiobuttons darstellt werden. Geben Sie auch einen Submit- Button aus. Ziel des Formulars ist ein weiteres Skript mit dem Namen details.php. 2.3.6. Detailseite In der details.php sollen alle Informationen zum zuvor ausgewählten Flug dargestellt werden. Als Grundlage können Sie sich die Datei ights.php kopieren. Der ausgewählte Flug ist über die Variable $_POST['icao'] verfügbar 1. Erweitern bzw. verändern Sie den Code derart, dass die Elemente ICAO, Altitude, Latitude, Longitude, Timestamp und Submitter als Tabelle formatiert ausgegeben werden. Dazu müssen Sie sich ein neues SQL-Statement überlegen. Falls erforderlich begrenzen Sie die Anzeige auf 100 Einträge. Die Tabellenspalten sollen jeweils einen Titel haben und die gesamte Tabelle einen Rand erhalten (border=1). Fügen Sie zuletzt auch dieser Seite eine Überschrift und einen Link zur vorherigen Seite hinzu. 1 Je nach der von Ihnen gewählten Art der Parameterübergabe an den Webserver ist der ausgewählte Flug in der Variable $_POST['icao'] oder $_GET['icao'] verfügbar. Nitsche, Kremer 6 Informationssysteme