QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS...

25
FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur Pirmin Kalberer @implgeo Sourcepole AG, Zürich www.sourcepole.ch

Transcript of QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS...

Page 1: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

FOSSGIS 2019

QWC2 Viewer für QGIS Servermit Microservice-Architektur

Pirmin Kalberer@implgeoSourcepole AG, Zürichwww.sourcepole.ch

Page 2: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

Sourcepole

> QGIS> 4 C++ Core Entwickler> QGIS Server, Drucken, Plugins, …> QGIS Enterprise (Maintenance und Support)

> Web-GIS> QGIS Webclient 2> qgiscloud.com

> Weitere OSGeo Projekte> Beiträge zu OGR/GDAL (Interlis, etc.) PostGIS,

MapServer, Openlayers, Mapfish, OSGeoLive...

Page 3: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

QGIS Web Client 2

> Ziele QGIS Web Client (QWC2):> Modernes, responsive UI> Fokus auf Usablity> Skalierbare Architektur> Modularer Code> State of the art Technologie: ReactJS,

WebPack, OpenLayers 6

Page 4: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

QGIS Web Client 2

Page 5: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

QGIS Web Client 2

Page 6: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

QGIS Web Client QWC2 (minimal)

Page 7: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

QWC2 Technologien

> Kartenkomponenten> ReactJS + Redux> OpenLayers 6

> Build tool chain: nodejs / yarn / webpack> QWC2 demo Applikation als Basis

> QGIS Server

> Optional: Serverseite Komponenten für Suche, Permalink, etc.

Page 8: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

Modulare Kernfunktionen

> Themenwähler (Projekte)> Layerbaum> Feature info> Suche mit konfigurierbaren Providern> Messwerkzeuge> Redlining Funktionalität> Permalink Generierung> PDF-Druck> Screenshot / Raster Export> WMS / WFS Import> KML Import> Kartenvergleichs-Tool

Page 9: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

Erweiterte Funktionen

> Funktionen mit Server-Komponenten> DB-Suche> Permalinks> Reporting> Editierfunktionen> Mapinfo-Service (layerunabhängig)> Legendendruck> Höhenprofile> Selbstregistrierung (Gruppen)

> Übersetzt in 7 Sprachen

Page 10: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

QGIS Web Client 2

>Demo

Page 11: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

qwc-services

> Optionales Backend für QWC2

> Modular, Micro-service orientiert

> (Hauptsächlich) Python Flask Web Applikationen

> Integrierte API Dokumentation (OpenAPI/Swagger)

> Deployment als Docker Container oder WSGI

Page 12: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

github.com/qwc-services

Page 13: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

Server Architektur

Page 14: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

Kartenviewer und Drucken

> QWC map viewer> QWC2 viewer service mit Zugriffskontrolle

> QWC OGC service> QGIS Server basierter WMS/WFS mit

Zugriffskontrolle

> QWC Print service> QGIS Server basierter PDF Druck mit

Zugriffskontrolle

Page 15: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

Weitere Dienste

> QWC Search Service> Such-API für benutzerdefinierte Suche

> QWC Data Service> Lesen und Editieren von Daten

> QWC Mapinfo service> Layerunabhängige Info (Rechtsklick)

> Permalink service

> Elevation service

Page 16: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

QWC Admin GUI

> Web-GUI für Konfgurations-DB

> User und Gruppenmanagement

> Rollenbasierter Zugriff auf Ressourcen

> Ressource-Typen:> Karten (QGIS-Projekte)> Drucktemplates> Layer, Attribute> Daten (create, read, update, delete)> Viewer, Viewer tasks> Benutzerdefinierte Ressourcen

Page 17: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

Authentisierung

> Modulare Authentisierungs-Dienste> Stellen JWT Tokens für zugriffsbeschränkte

Zugriffe aus (Cookie oder JWT token header)

> QWC DB Auth> Authentisierung mit User-DB

> QWC LDAP Auth> Authentisierung mit LDAP/Active Directory

> und weitere (z.B. Kerberos, SAML)

Page 18: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

Interne Dienste

> QWC Services Core> Basismodul für QWC services und

Dokumentation

> QWC Config Service> Zugriffsrechte und User-spezifische

Konfiguration

> QGIS Server

> Jasper Reporting Service> Jasper Reports web service

Page 19: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

Customizing

Page 20: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

Micro Services

> Komplexe Anwendung aus lose gekoppelten Teilprozessen (Services)

> Isolierte, überschaubare Funktionalität in Services

> Kommunikation zwischen Services über HTTP/REST

> https://de.wikipedia.org/wiki/Microservices

Page 21: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

OpenAPI/Swagger

Page 22: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

Docker / Kubernetes

> Docker> Bereitstellung von Anwendungen mit

Containervirtualisierung> 1 Service pro Container> Einfache Skriptsprache zur Erstellung> Verteilung von Images über Registry> https://www.docker.com/

> Kubernetes> System zur Automatisierung der

Bereitstellung, Skalierung und Verwaltung von Container-Anwendungen

> https://kubernetes.io/

Page 23: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

Vor-/Nachteile Micro-Services

> 👎 Aufwändiger Betrieb (Anzahl Services, DB-Connections, Logs, …)

> 👍 Feingranulare Skalierbarkeit

> 👎 Separieriung Authentisierung+ Authorisierung

> 👍 Modulare Authentisierung

> 👍 Services mit verschiedenen Technologien

> 👍 Modulare Migration von Services

> …

Page 24: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

QGIS Web Client 2

> Quellcode und Issue Tracker> https://github.com/qgis/qwc2-demo-app> https://github.com/qgis/qwc2> https://github.com/qwc-services/qwc-services-core> https://github.com/qwc-services/qwc-docker

> QWC2 Dokumentation> https://github.com/qgis/qwc2-demo-app/blob/master/doc/

QWC2_Documentation.md

> Beispiele:> https://map.geo.gl.ch> https://geo.so.ch/map/> https://qgiscloud.com

Page 25: QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS Web Client 2 FOSSGIS 2019 QWC2 Viewer für QGIS Server mit Microservice-Architektur

FOSSGIS Dresden 14.3.2019 QGIS Web Client 2

FOSSGIS 2019

Danke!

Pirmin Kalberer@implgeo