QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS...
Transcript of QWC2 Viewer für QGIS Server mit Microservice-Architektur€¦ · FOSSGIS Dresden 14.3.2019 QGIS...
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
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...
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
FOSSGIS Dresden 14.3.2019 QGIS Web Client 2
QGIS Web Client 2
FOSSGIS Dresden 14.3.2019 QGIS Web Client 2
QGIS Web Client 2
FOSSGIS Dresden 14.3.2019 QGIS Web Client 2
QGIS Web Client QWC2 (minimal)
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.
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
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
FOSSGIS Dresden 14.3.2019 QGIS Web Client 2
QGIS Web Client 2
>Demo
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
FOSSGIS Dresden 14.3.2019 QGIS Web Client 2
github.com/qwc-services
FOSSGIS Dresden 14.3.2019 QGIS Web Client 2
Server 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
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
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
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)
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
FOSSGIS Dresden 14.3.2019 QGIS Web Client 2
Customizing
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
FOSSGIS Dresden 14.3.2019 QGIS Web Client 2
OpenAPI/Swagger
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/
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
> …
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
FOSSGIS Dresden 14.3.2019 QGIS Web Client 2
FOSSGIS 2019
Danke!
Pirmin Kalberer@implgeo