Entwicklung einer Webapplikation zur Vereinfachung der Umsetzung webbasierter Anwendungen

Ähnliche Dokumente
Architektur von REST basierten Webservices

Backend. Hochschule Darmstadt, Fachbereich Informatik, Wintersemester 2016/2017. Christopher Dörge, Thomas Sauer, David Müller

Zwei-Faktor-Authentifizierung

Web-Konzepte für das Internet der Dinge Ein Überblick

Platform as a Service (PaaS) & Containerization

Webserver allgemein Voraussetzung für die Integration von Plone NginX Apache 2 Demonstration Zusammenfassung

Container. Fluten Container bald das RZ? Markus Schaub

ODS 6.0 Schnittstelle

M2M-Serviceplattformen für das Internet der Dinge

Eine Untersuchung der Funktionen des Apache Wicket Webframeworks

HANA CLOUD CONNECTOR

Apache HTTP Server Administration

OAuth 2.0. Ralf Hoffmann 03 /

Mobilkommunikation. REST-basierte Dienste für verteilte, mobile Anwendungen. A. Gillert, A. Grebe, M. Hüffmeyer, C. Vogt

SAP NetWeaver Gateway. 2013

Digital Distribution Center. Ilija Panov, Bereichsleiter Digital Solutions Mai 2017

HTML5 und das Framework jquery Mobile

REST in Pieces. Jörn Clausen

Container Hype. TODO : Vollflächiges Container Bild. Håkan Dahlström Source:

Docker. Softwaretest, Testautomatisierung und -management. Nico Maas. Grundlagen. Saar 2017

Dokumentation der REST- Schnittstelle des Funk- Sensorsystem GesySense. Gesytec GmbH Pascalstr. 6 D Aachen

!"#$"%&'()*$+()',!-+.'/',

REST Grundlagen. Seminar Aktuelle Software-Engineering-Praktiken für das World Wide Web. Olga Liskin

Erläuterungen zu Darstellung des DLQ-Datenportals

Mapbender3 Workshop. Christian Wygoda. FOSSGIS Dessau 2012

Komponentenorientierte Software-Entwicklung. Seite 1 / 42

REST in Pieces. Jörn Clausen

V by WBR1/BFH-TI 2011 by MOU2/BFH-TI

Medien und Webtechnologie

Einführung in Docker. Tobias Zeimetz

Continuous Delivery in der Praxis

Unified-E Standard WebHttp Adapter

Neues in ArcGIS Server 9.3 Matthias Schenker ESRI Geoinformatik AG

Docker. Eine Einführung

Container als Immutable Infrastructure. John M. Hutchison

Dockerbank II. Block 2: Komplexbeispiel. Benjamin Baum 1, Christian Bauer 1

Forms auf Tablets. Vision oder Realität?

BIW Wahlpflichtmodul. Einführung in Solr, Pipeline und REST. Philipp Schaer, TH Köln (University of Applied Sciences), Cologne, Germany

Amazon S3 - Daten in den Wolken

Inhaltsverzeichnis. Einleitung

4 Einrichten von Windows

Edutainment auf dem Smartphone

Informatives zur CAS genesisworld-administration

Dirk von der Weiden, Olaf Meyer C1 SetCon. REST in the Enterprise

GeoServer in action Fortgeschrittene Möglichkeiten beim Einsatz des Geoservers

Docker. Lass mal containern Julian mino GPN

Veröffentlichung von OpenData Datensätzen über CKAN-API im Push-Verfahren

docker.io Secure And Portable Containers Made Easy Jürgen Brunk München,

Application Designer & Framework unlimited

Apache HTTP-Server Teil 2

Continuous Delivery mit Docker

SODA. Die Datenbank als Document Store. Rainer Willems. Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG

Mit Oracle und Java für die Feuerwehr

Systemvoraussetzungen CustomX. Customer Relationship Management

ArcGIS for Server : Sicherung von Diensten und Anwendungen Erfahrung von Kanton Freiburg

Cloud Computing mit OpenStack

2. WWW-Protokolle und -Formate

we run IT! ArGO Mail Inhaltsverzeichnis Services zurzeit in ArGO Mail aktiv: Mail

Mobile Backend in der

APIC-EM Software Engineering Insight

Anbindung an WebServices Robert Zacherl

Cross Platform Development mit SharePoint

Inhaltsverzeichnis Einführung 1 Webanwendungen - Grundlagen

Theorie und Praxis einer JSON-RPC-basierten Web-API

Token statt Cookies dank JWT

Mit OSGi Webanwendungen entwickeln Was geht, was nicht?

Grid-Systeme. Betrachtung verschiedener Softwareplattformen zur Realisierung von Grids und Vorstellung des Globus Toolkit Grid Systeme 1

Python VS Perl. Storage Monitoring per API statt SNMP. Björn Müller Marcel Denia. comnet GmbH

ElvisMobile IT GmbH

Wie sichert man APEX-Anwendungen gegen schädliche Manipulationen und unerwünschte Zugriffe ab?

Anleitung: Verbindung mit der Datenbank

Container im Schwarm - Weblogic und Docker Swarm

Apache HTTP Server Administration

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

RESTful Web. Representational State Transfer

Projektgruppe. Thomas Kühne. Komponentenbasiertes Software Engineering mit OSGi

HERSTELLERUNABHÄNGIGE FIREWALL AUTOMATISIERUNG

WildFly Application Server Administration

JiveSoftware Jive Connector

NEWpixi* API und die Umstellung auf REST. Freitag, 3. Mai 13

Cloud-Umgebungen mit Terraform verwalten. Sascha Askani

Web APIs auf dem Prüfstand Volle Kontrolle oder fertig mit den Azure Mobile Services?

HVS32 Datenbank Archivierungs Dienst

Automatisierung und Integration von Request Tracker Systemen mittels REST-Schnittstelle. Stefan Hornburg. Perlworkshop 2008

The linux container engine. Peter Daum

Benachrichtigungen. Installation und Konfiguration. Version 2017 Summer Release

Anleitung zum Prüfen von WebDAV

SINT Rest App Documentation

APEX 5.0 DOAG Mai 2014

Microsoft.NET XML-Webdienste Schritt für Schritt

Mobility mit IBM Worklight Erste Schritte zu einer mobilen App. Benjamin Stein, Consultant Stuttgart,

Clemens Gull. Joomlal-Extensions. mit PHP entwickeln. Mit 322 Abbildungen

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2)

Workshop Java Webentwicklung Tapestry. Ulrich Stärk

Programmieren lernen in ASP.NET mit C#

Continuous Delivery in der Praxis

Transkript:

Entwicklung einer Webapplikation zur Vereinfachung der Umsetzung webbasierter Anwendungen Python-BarCamp 2016 02. 03. April 2016 Florian Macherey PGI / JCNS-TA

Inhalt Einleitung Grundlagen Konzeption Implementierung Anwendungsbeispiel Zusammenfassung Ausblick 02. 03. April 2016 Florian Macherey Folie 2

Über mich Florian Macherey Duales Studium im Forschungszentrum Jülich und der Fachhochschule Aachen Mathematisch-technischer Softwareentwickler: 3. Lehrjahr Bachelorstudium Scientifc Programming: 6. Semester Vortrag Ergebnis aus praktischer Arbeit in der Ausbildung und Seminararbeit im 5. Semester 02. 03. April 2016 Florian Macherey Folie 3

Einleitung Wozu werden Webdienste heute genutzt? Kommunikation Sicherung von Daten Recherche Kollaboration Warum eine Software as a Service (SaaS) Plattform? In diesem Fall zur Recherche und Kollaboration Wissensaustausch! Wissensgewinn Benutzer/innen können ohne administrative Rechte einen Webdienst einrichten 02. 03. April 2016 Florian Macherey Folie 4

Grundlagen Hypertext Transfer Protokoll (HTTP) zur Kommunikation zwischen Server und Client Datenbank im Backend mit PostgreSQL als RDBMS Daten werden im JSON-HAL Format übertragen! HAL ist ein Dialekt von JSON 02. 03. April 2016 Florian Macherey Folie 5

Grundlagen Hyptertext Application Language { "_links": { "self": {"href": "/users/42"}, "collection": {"href": "/users/"} }, "friends": [ {"href": "/users/21"}, {"href": "/users/1"} ] } Metadaten mit "_unterstrich" Links auf Ressource selbst und auf Collection Es können auch Arrays als Werte gespeichert werden Collection eines Nutzers / einer Nutzerin hat oft ein Array mit allen einzelnen Nutzer/innen als "_embedded" Eigenschaft 02. 03. April 2016 Florian Macherey Folie 6

Grundlagen Representational State Transfer Representational State Transfer (REST) ist eine Programmierarchitektur für das WWW Wurde von Roy Thomas Fielding entwickelt Hat auch HTTP mitentwickelt Webservice hält sich streng an HTTP! ist RESTful 02. 03. April 2016 Florian Macherey Folie 7

Grundlagen Representational State Transfer REST Bedingungen: Client-Server Stateless Cache Uniform Interface Layered System Code-On-Demand Informationen sind Ressourcen Eine Repräsentation ist die Darstellung einer Ressource Server: Python-Objekte! Client: Javascript-Objekte Rohdaten werden zurück gegeben! HTML-Seite wird im Client aus Templates gerendert 02. 03. April 2016 Florian Macherey Folie 8

Grundlagen Authentifizierung HTTP Basic Authentication ausreichend da HTTPS zur Übertragung vorausgesetzt Authentifizierung mit LDAP Server Client username : password token,... Server LDAP username : token <response> Pro User kann es beliebig viele Token geben 02. 03. April 2016 Florian Macherey Folie 9

Grundlagen Docker Lightweight-Virtualisierung! wenig Overhead geringe Einrichtungszeit viele verfügbare Images existieren bereits Docker Volumes zum Speichern von Daten (seit Docker 1.9.0) Änderungen in laufenden Docker Containern nicht persistent Speichereffizienz durch Copy-on-Write 02. 03. April 2016 Florian Macherey Folie 10

Grundlagen Docker Container 1 Container n R/W Layer R/W Layer R/O Layer n. R/O Layer 3 R/O Layer 2 R/O Layer 1 Image : < name > 02. 03. April 2016 Florian Macherey Folie 11

Grundlagen Docker load tag Image backup.tar save pull push Dockerfile build run commit Docker registry Containers stop, start, restart lokale Docker Instanz lokaler Computer 02. 03. April 2016 Florian Macherey Folie 12

Konzeption Docker Webanwendungen in Containern Isoliert von anderen Webanwendungen Jede Webanwendung kann eigene Abhängigkeiten der Software innerhalb des Containers haben Starten / Stoppen der Container über Python Module 02. 03. April 2016 Florian Macherey Folie 13

Konzeption Zugriff auf SaaS Container Container 1 Container n :80 :10001 :80 :10000+n nginx Container :10001 webapp1 :10000+n webappn 02. 03. April 2016 Florian Macherey Folie 14

Konzeption Zugriff auf SaaS Container nginx als Reverse Proxy Ports über 10000 + webapp_id location /webapp1/ { proxy_pass http://webapp1/; proxy_redirect http://localhost:10001 http://$host:80/webapp1;,! } 02. 03. April 2016 Florian Macherey Folie 15

Konzeption Rechteverwaltung Benutzer/in hat eine Quota Rollen: creator, owner, user creator: kann Webanwendung löschen mind. 1, obligatorisch Anrechnung auf Quota owner: kann Benutzer/innen verwalten optional keine Anrechnung auf Quota Standardpasswort einer Webanwendung wird zufällig erzeugt 02. 03. April 2016 Florian Macherey Folie 16

Implementierung Einrichten einer Webanwendung 1 Dateneingabe in ein Webformular 2 Rechteüberprüfung (z. B. Quota) 3 Validierung der eingegeben Daten: URL A-Z, a-z, 0-9, -, _ Name String Länge zwischen 1 und 50 Zeichen 4 Eintrag in DB 5 Skript ausführen, welches Container startet 6 Evtl. Ausführen von Befehlen auf laufendem Container mit docker exec 7 nginx Reverse Proxy Konfiguration updaten 02. 03. April 2016 Florian Macherey Folie 18

Anwendungsbeispiel Docker statt WikiFamilies Mediawiki verbreitet WikiFamilies: Sammlung von mehreren Wikis auf demselben Server WikiFamilies Vor- und Nachteile: 3 von Wikimedia Foundation verwendet 7 gleiche Ressourcen / Daten 7 Spezialität der MediaWiki Software 02. 03. April 2016 Florian Macherey Folie 21

Anwendungsbeispiel Erweitern der SaaS Plattform um einen Webanwendungstypen 1 Vorhandenes Image nutzen / neues Image erstellen (Dockerfile) 2 Shellskript zum Starten des Containers erstellen 3 ServiceType Objekt in Liste der Webanwendungstypen hinzufügen mediawiki = ServiceType(script_name= mediawiki-1.23.sh,,! full_name= Mediawiki 1.23 LTS ) AVAILABLE_WEBAPP_TYPES.append(mediawiki) 4 Server neustarten 02. 03. April 2016 Florian Macherey Folie 22

Zusammenfassung SaaS Plattform Webanwendungen selbst installieren, aber kontrolliert durch Quota und Rollen PostgreSQL als RDBMS Docker für Webanwendungen nginx als Reverse Proxy 02. 03. April 2016 Florian Macherey Folie 23

Zusammenfassung :User :SaaSPlattform :ReverseProxy webapp n :SaaS install access information access response deploy success access response 02. 03. April 2016 Florian Macherey Folie 24

Ausblick Weitere Typen von Webanwendungen einfach hinzufügen API-Ressource für Administrator/innen Native Clients die REST-API nutzen, bspw. für Tablets Konfiguration der SaaS anpassen Größe der Container kontrollieren und einstellen 02. 03. April 2016 Florian Macherey Folie 25

Kontakt Vielen Dank für Ihre Aufmerksamkeit. Fragen? f.macherey@fz-juelich.de 02461 61 6663 twitter.com/f_macherey https://www.xing.com/profile/florian_macherey Webseite: https://pgi-jcns.fz-juelich.de/ portal/pages/iffwebapp.html 02. 03. April 2016 Florian Macherey Folie 26

Literatur Docker. Docker Docs. URL: https://docs.docker.com (besucht am 15. 10. 2015). Roy Thomas Fielding u. a. HTTP/1.1 - RFC2616. Hypertext Transfer Protocol HTTP/1.1. Juni 1999. URL: https://www.ietf.org/rfc/rfc2616.txt (besucht am 10. 12. 2015). Roy Thomas Fielding. Architectural Styles and the Design of Network-based Software Architecture. Dissertation. 2000. URL: https://www.ics.uci.edu/~fielding/pubs/dissertation/fielding_dissertation.pdf (besucht am 16. 10. 2015). Miguel Grinberg. Flask Web Development - Developing Web Applications with Python. O Reilly Media, Mai 2014. 258 S. ISBN: 978-1-4493-7262-0. URL: http://shop.oreilly.com/product/0636920031116.do (besucht am 15. 10. 2015). Armin Ronacher. Flask Dokumentation. Welcome Flask (A Python Microframework). 2014. URL: http://flask.pocoo.org/docs/0.10/ (besucht am 15. 10. 2015). 02. 03. April 2016 Florian Macherey Folie 27