We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback
00:00

Formal Metadata

Title
MapProxy
Title of Series
Number of Parts
71
Author
License
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language
Production PlaceBerlin

Content Metadata

Subject Area
Genre
Abstract
Ende 2008 wurde der Grundstein für die Software MapProxy gelegt. Im März 2010 wurde MapProxy dann von den Entwicklern im Rahmen der FOSSGIS-Konferenz in Osnabrück als Open-Source-Software veröffentlicht. Der Vortrag beleuchtet die kleine Erfolgsgeschichte der Open-Source-Geo-Komponente MapProxy: Was war Ausgangspunkt und Grundidee hinter dem MapProxy und welchen Funktionsumfang hat MapProxy mittlerweile erreicht? In kleinen Beispielen wird auf wiederkehrende Probleme eingegangen die mit MapProxy gelöst werden können. Dabei wird auch auf die neuen und erweiterteren MapProxy Hilfswerkzeuge eingegangen. Diese bieten dem Benutzer die Möglichkeit MapProxy noch schneller und einfacher zu konfigurieren. Zusätzlich zum Funktionsumfang zeigt der Vortrag auch einen kleinen Blick hinter die Kulissen vom MapProxy Projekt. Neben dem eigentlichen Quellcode der Software gehört noch mehr zu einer Infrastruktur (z.B. Travis-CI) um eine Software erfolgreich ausliefern zu können. Abschließend wirft der Vortragende noch einen Blick auf die nahe und ferne Zukunft des MapProxy Projektes. Ein Highlight ist hierbei der neue Hintergrunddienst der für MapProxy entwickelt und auch als Open-Source-Software veröffentlicht wurde.
13
Thumbnail
25:54
15
30
Thumbnail
24:34
39
Thumbnail
27:33
45
66
70
Level (video gaming)Proxy serverComputer animationJSONXMLUMLLecture/Conference
Level (video gaming)Client (computing)Proxy serverXMLLecture/Conference
Source codeSmart cardInternetGoogleXML
Smart cardLecture/Conference
SoftwareDesktopWEBComponent-based software engineeringCache (computing)Projektion <Mathematik>Unified threat managementServer (computing)Function (mathematics)FunktionalitätProxy server
Open sourceSoftwareLightning <Programm>Apple KeynoteResonanceVersion <Informatik>Proxy serverPosition8 (number)CodeLecture/ConferenceXML
SoftwareLecture/ConferenceJSONXMLUML
Proxy serverCache (computing)Lecture/Conference
Overlay-NetzCoordinate systemInternetdienstCache (computing)PasswordError messageParameter (computer programming)Proxy serverAuthorizationLocal ringPolygonDatabaseHaar measureXMLComputer animation
Projektion <Mathematik>Grand Unified TheoryPositionParameter (computer programming)Lecture/Conference
AuthorizationCoordinate systemUnified threat managementUniform resource locatorInternetdienstError messageUniform resource locatorServer (computing)XMLComputer animation
ZahlLengthCoordinate systemFunction (mathematics)Open sourceCodeLine codeApple KeynoteCodeError messageLecture/Conference
CodeUniformer RaumCodeZahlSoftware testingFunction (mathematics)JSONXML
Software testingOpen sourceCodeProxy serverWorkplace ShellFunction (mathematics)Lecture/ConferenceXMLProgram flowchart
SoftwareSoftware testingFunction (mathematics)Lecture/Conference
Proxy serverVersion <Informatik>JSONXMLLecture/Conference
Version <Informatik>Version <Informatik>Drag (physics)Proxy serverCodeXMLComputer animation
BerechnungLaptopProxy serverArmWINDOWS <Programm>Server (computing)Configuration spaceLecture/ConferenceXML
Sun <Marke>Scale (map)BerechnungLecture/Conference
BerechnungBack-face cullingConfiguration spaceCode refactoringProxy serverVersion <Informatik>Version <Informatik>CodeProxy serverAgreeablenessWeb serviceInformationFunction (mathematics)FunktionalitätPrioritySmart cardPoint (geometry)Vector graphicsPositionElectronic mailing listInternetdienstOpen sourceFlagLink (knot theory)XMLComputer animation
Open sourceDatabaseAuthorizationProxy serverInterface (computing)Configuration spaceDatabaseInternetdienstAnbindung <Informatik>Smart cardPlane (geometry)Lecture/Conference
Computer animation
Transcript: German(auto-generated)
Schön, dass Sie so zahlreich hier erschienen sind und dass so viele noch rüberkommen. Mein Name ist Dominik Helle und ich werde Ihnen heute ein bisschen was zum Map-Proxy erzählen. So ein bisschen, sage ich mal, aus dem Nähkästchen in Anführungsstrichen.
Wie sind wir überhaupt auf die Idee gekommen? Was gehört eigentlich noch überhaupt dazu zu so einem Open-Source-Projekt? Also nach dem Motto reicht es, wenn man einfach irgendwas entwickelt und dann sagt, hier, das ist so, oder sollte man vielleicht noch eins oder andere Dinge beachten? Vielleicht erst mal kurz zu mir, damit Sie wissen, wer hier vor Ihnen steht. Ich bin quasi Mitgründer der Firma OmniScale.
Wir haben Map-Proxy vor fünfeinhalb Jahren aus der Taufe gehoben, beziehungsweise gehe ich ja gleich noch drauf ein. Sind Foskis e.V. Mitglied, engagieren uns auf der Foskis, auch hier 2014. Machen auch viel im Open-Street-Map-Bereich, sprich im Possum zum Beispiel. Unterstützen auch die SOTEM, vielleicht die ist auch ein bisschen zu kurz gekommen aktuell.
Das ist die Europäische Open-Street-Map-Konferenz, die vom 15. bis 17. Juni in Karlsruhe stattfinden wird. Also vielleicht für den einen oder anderen noch ganz interessant ist, als Programmhinweis aufzunehmen. Und genau, in dem Bereich sind wir aktiv. Dazu will ich Sie aber nicht mit Werbung überholfen,
sondern eigentlich will ich Ihnen ja was zum Thema Map-Proxy erzählen. Erst mal so ein bisschen, was ist Map-Proxy überhaupt? Wie begann das eigentlich? Warum haben wir eigentlich gedacht, okay, lass mal eine neue Open-Source-Software entwickeln. Es gibt ja schon genug, wie wir gestern gehört haben. In dem Einführungsvortrag waren es irgendwie dann 500.000 Open-Source-Projekte auf SourceForge oder so.
Warum dann noch eins mehr? Auf der einen Seite haben wir uns gesagt, im November 2008 haben wir uns hingesetzt, haben gesagt, okay, wir haben Kacheln. Also Kacheln, sowas wie Google Maps hat, die waren damals, damals in Anführungsstrichen 2008, gerade total innen. Es gab auch ein, zwei Open-Source-Lösungen, die das hatten,
die einfach Kacheln ausgeliefert haben für den normalen Anwendungszweck. Wenn ich jetzt eine normale Webkarte habe, schöne Idee. Auf der anderen Seite kannten wir halt viele Behörden und Kommunen, die gesagt haben, ja, Kacheln sind zwar toll, aber wir brauchen WMS, weil wir möchten untereinander Daten austauschen und wir müssen diesen Standard einhalten.
Und irgendwie haben wir aber keine Lust, irgendwie drei bis fünf Sekunden auf unser Bild zu warten, weil ich bin ja aus dem Internet, das von Google quasi erfundene Kachel-System gewohnt und von daher will ich ja eigentlich auch schnelle Karten haben. Da haben wir uns gedacht, okay, ist ja eigentlich gar nicht so doof. Das heißt, wir haben eine Kachel-Technologie und wir haben WMS.
Nichts einfacher als das. Wir kombinieren das einfach und sind fertig. Generell natürlich eine schöne Idee. Geht's jetzt nicht weiter? Ach so. Sprich, wir haben uns gedacht, okay, was ist unser Ziel? Unser Ziel war eigentlich, dass man sagt, okay, wir haben bestehende WMS-Server, wir haben bestehende Teilserver und wir haben bestehende Gisklines.
Und das ist jetzt egal, ob ich jetzt meinen Desktop oder meinen Web habe, ob ich jetzt WMS brauche oder Kacheln brauche. Wir möchten irgendwie was bauen, was das Ganze quasi verbindet. Das ist quasi jetzt diese Komponente in der Mitte. Und dann haben wir uns gedacht, okay, machen wir dann noch einen Cache rein, damit wir schnell sind, das Zwischenspeichern, dann das Ganze dann MapProxy.
Vielleicht so ein bisschen, wie das Ganze funktioniert, damit ich auch die Leute ein bisschen zu mir hole, die von der reinen Funktion von MapProxy nicht wissen, was genau passiert. Auf der einen Seite können wir natürlich hergehen und einfach Kacheln ausliefern. Das heißt, wir nehmen ein Bild, was ich zum Beispiel habe, auf dem Server, ein Geotiff oder ein gerendertes Bild
und wir schneiden das erstmal in Kacheln. Das würde jetzt reichen, um die Kacheln zum Beispiel einfach so, wenn ich die dann ausliefe, in Open Layers oder in Leaflet anzuzeigen. Das Ding ist, aber wir wollten ja auch WMS. Was haben wir also gemacht? Wir haben geguckt, okay, beim WMS habe ich immer nur eine Bildanfrage.
Das heißt, ich kann nicht mehrere Kacheln liefern, sondern beim WMS Standard ist es so, dass ich immer nur ein Bild zurückgeliefert bekomme. Das haben wir also gemacht. Wir haben geguckt, welche Kacheln sind davon betroffen. Quasi von meiner WMS-Anfrage, haben uns die quasi zusammengefügt und haben die dann so ein bisschen zusammengeklebt, sage ich mal,
und als Einbild wieder ausgeliefert. Hat natürlich den Vorteil, dass ich dann die Kacheln, dieselben Kacheln benutzen kann, wie für mein Web und somit aus dem Cache deutlich schnellere Antworten bekomme. Das war so die erste grundlegende Funktionalität, die wir implementiert haben im MAP-Proxy damals. Haben wir uns gleich noch gedacht, na ja, so ein Thema umprojizieren ist ja auch eigentlich immer aktuell.
Egal ob ich jetzt von Gauss-Krüger nach UTM oder allein schon wenn ich mich in Deutschland in den verschiedenen UTM oder Gauss-Krüger-Streifen bewege, haben wir direkt gesagt, okay, wir entwickeln als Grundfunktionalität von MAP-Proxy, dass ich ein Cache, also ein Kachelspeicher,
auch für mehrere Projektionen benutzen kann. Das heißt, sie müssen den Cache einmal anlegen und können dann zum Beispiel alle Gauss-Krüger-Streifen bedienen. Dann haben wir uns gesagt, okay, Mitte 2009 waren wir so weit, dass wir gesagt haben, okay, wir haben eigentlich ein schönes Produkt, haben das Ganze auch produktiv eingesetzt. Kleiner Haken dabei, immer nur bei uns.
Natürlich weiß man dann, okay, die Software funktioniert, sie läuft, sie tut das, was sie macht, aber so richtig gut ist es dann natürlich nicht. Dann haben wir gesagt, okay, wir müssen den Leuten quasi den Zugang zu dieser Software viel mehr vereinfachen und haben gesagt, okay, jetzt nehmen wir die Software und stellen die Open Source und kündigen das an.
Und wir haben das damals auf der Foskist 2010 in Osnabrück gemacht, in einem Lightning Talk, in der Keynote und hatten da auch eigentlich sehr viel positive Resonanz. Haben auch quasi zu dem Zeitpunkt den Code öffentlich gestellt, haben gesagt, hier, damit ihr uns wirklich glaubt, dass wir das Open Source machen wollen, hier ist der Code.
Und zwei Monate später haben wir dann quasi das erste Release rausgebracht. Das heißt, wir haben gesagt, okay, hier ist eine Version, mit der wir schon mal zufrieden sind, die funktioniert. Da gibt es Dokumentation zu, da gibt es Test zu und die könnt ihr benutzen. Insgesamt jetzt in den letzten Jahren gibt es sieben Hauptreleases
von MAProxy, des Achtes quasi gerade in Arbeit, sage ich mal. Und es hat sich halt herauskristallisiert, dass wir durch diese zentrale Position, die wir eben auf diesen Bildern gesehen haben, viel mehr machen können als nur ein paar Kacheln erzeugen, sondern wir können halt viel mehr quasi darauf eingehen.
Generell haben wir halt oder versuchen wir halt immer noch, wenn wir halt neue Features implementieren, dass wir wirklich das Ziel haben, dass wir Dinge einfacher machen. Weil es bringt mir ja nichts, wenn ich noch eine Software habe, die es noch komplizierter macht. Und natürlich muss ich immer ein Problem lösen.
Das heißt, ich brauche immer eine Software, ich brauche ein Feature, was ein wirkliches Problem löst. Ich brauche jetzt nichts, was vielleicht noch irgendwas verschlimmert. Die Frage ist natürlich erst mal, was kann ich jetzt damit machen? Jetzt hab ich gerade gesehen, es ist ein Kachelproxy und seit 2010 ist schon ein bisschen Zeit vergangen. Wir sind alle ein bisschen älter geworden. Die Foske ist es älter geworden.
Und von daher mal noch mal ein kurzer Überblick. Auf der einen Seite natürlich ein Kachelserver und bestehende WMS beschleunigen, gar kein Problem. Auf der anderen Seite, was da zugekommen ist, das ist der Zugriffsschutz. Das heißt, mit der Proxy sind Sie in der Lage, bestimmte Bereiche abzusichern. Das sieht man hier auf dem Bild, glaube ich, auch ganz gut.
Sie können quasi ein Polygon angeben, ob das jetzt eine Datenbank ist oder ein Shapefile, das spielt keine Rolle. Und sagen, Benutzer A darf nur auf diesen Bereich zugreifen. Benutzer B darf sich zum Beispiel einfach nur ein Layer angucken. Das heißt, hier kann ich wirklich genau einschränken, was ich damit machen kann. Ich kann zum Beispiel auch kachelnd umtransformieren.
Das ist vielleicht für die USMler ganz interessant. Wenn ich zum Beispiel ein lokales Kacheldienst habe, möchte ich den aber in JOSM einbinden, um Open-Street-Map-Daten zu erfassen. Kann ich Map-Proxy einfach einbinden und Map-Proxy Transformation on the fly um? Und das relativ einfach.
Vielleicht noch mal ein kleines Beispiel aus der Praxis, damit man so ein bisschen sieht, dass das Ganze auch wirklich Nutzen hat. Also wir haben zum Beispiel einen Kunden, der ist Netzbetreiber in 16 Bundesländern tätig und kauft bei den Kommunen bzw. bei den Ländern 16 WMS-Dienste ein, damit er die für seine Mitarbeiter nutzen kann.
Und die erste Idee, die natürlich kommt, cool, wir haben WMS, wir haben WMS-Standard, hat das OGC mal aufgeschrieben. Sollte ja eigentlich total einfach sein. Ich wünsche Ihnen viel Spaß dabei. Wenn Sie das einfach nur über WMS-Standard machen, verspreche ich Ihnen, Sie werden viele graue Haare bekommen und sich wünschen, dass Sie Map-Proxy entwickelt haben.
Sie haben nämlich das Problem, dass diese 16 WMS auf der einen Seite verschiedene Autorisierungsmethoden haben. Das heißt, bei dem einen haben Sie Benutzername, Passwort. Bei dem anderen, die anderen sind komplett frei. Die anderen haben irgendwie einen AP-Key, der sich täglich ändert. Das ist schon mal das eine. Und das andere ist,
generell ist es anscheinend nicht ganz so einfach, WMS-Implementation zu lesen, also ein OGC-Standard, weil viele Anbieter, auch Proprietäre vor allem, den WMS dann einfach mal so interpretieren, wie Sie ihn gerne hätten, und einfach mal zum Beispiel keine Fehlermeldung zurückliefern oder einfach Parameter ignorieren, die man überträgt.
Das ist ganz spannend. Das kann einem viel Freude bereiten. Zweiter Punkt, den wir eben auch schon hatten in dem Vortrag davor, Projektion. Die 16 WMS haben fünf verschiedene Projektionssysteme. Die einen hatten Gas Krüger, die anderen haben UTM, die anderen haben gesagt, hier, wir machen Webmerkator.
Das ist halt so ein buntes Gemisch. Und ich brauch das halt für den Kunden in einer Projektion, weil der Mitarbeiter, dem ist das egal, wo das herkommt. Der muss sich seine Leitung angucken und der will mit dem GISS arbeiten. Und dem ist egal, ob das jetzt was für ein Projektionssystem da hat. Und etc. Teilweise war das auch recht interessant, dass die WMS-Dienste dann zum Beispiel keine Transparenz unterstützt haben.
Das heißt, wenn sie zum Beispiel irgendwelche ALK-Daten haben und dann irgendwie auf Luftbilder legen wollen, funktionierte das halt erst mal einfach nicht, weil die ursprünglichen WMS quasi keine Transparenz hatten. Fazit natürlich. Ich meine, sonst würde ich hier nicht stehen und so ein tolles T-Shirt tragen.
Setz mal ein MAP-Proxy an und alles funktioniert. MAP-Proxy ist halt in der Lage, diese zentrale Position, die wir eben gesehen haben, diese Server quasi zu vereinheitlichen und zu einem WMS-Dienst zusammenzufassen. Das heißt, sie haben nachher eine URL für ihre 16 Bundesländer. Das heißt, sie können den Mitarbeiter sagen, hier, das ist dein Dienst, du bindest den ein,
du musst dich nicht ums Anmelden kümmern, du musst dich nicht ums Autorisieren kümmern, bind ihn einfach in der Desktop-GIS ein und benutze ihn. Dazu hat man dann halt auch einen validen WMS, mit dem die Desktop-GIS-Systeme umgehen können. Das heißt, wenn der WMS mal einen Fehler liefert, also der ursprüngliche zum Beispiel, bekomme ich über MAP-Proxy eine vernünftige Fehlermeldung und habe auch halt ein einheitliches Koordinatensystem.
Und was halt auch sehr schön ist im Hintergrund, ich kann den Hintergrund zum Beispiel transparent machen und kann somit auf einmal wieder meine Layer übereinander legen. Ich hatte am Anfang aber eben angekündigt, dass ich nicht nur die reinen Funktionen erzähle, sondern auch so ein bisschen was im Hintergrund passiert. Also MAP-Proxy als Open-Source-Projekt
ist entwickelt in Python und natürlich viele Funktionen erzeugen viel Code. Wir haben das gestern auch gesehen in der Keynote. Da wurden ja irgendwie die Lines of Codes von den Desktop-GIS-Programmen verglichen. Das ist immer ein bisschen schwierig, ob man das für vergleichbar hält. Aber generell kann man zum Beispiel sagen,
also wir haben eine Code-Basis von 13.500 Zeilen Code. Das klingt jetzt noch okay. Was aber halt wirklich eine Besonderheit ist, wo wir auch ein bisschen stolz drauf sind, dass wir halt fast dieselbe Zahl Zeilen an Code für Tests haben. Das heißt, wir gehen halt her und jede Funktion, die neu implementiert werden muss, auch wenn Sie zum Beispiel einen Pull-Request schreiben oder sonstiges,
verlangen wir halt quasi, dass da auch ein Test zugehört oder schreiben den Test halt im Zweifel selber, sodass wir wirklich sicher gehen können, dass die Funktion, die ich implementiere, auch funktioniert. Bei Tests unterscheidet man nochmal zwischen Unit- und System-Tests. Das ist aber ein bisschen irrelevant. Also insgesamt über fast 1.500 Tests.
Jetzt könnte man natürlich sagen, das ist natürlich immer aufwendig, das automatisch durchzuführen, wenn ich jetzt einen neuen Pull-Request habe oder so. Dafür gibt es Jenkins. Chuck Norris geprüft. Führt automatisch quasi diese Tests durch, auch auf verschiedenen Python-Versionen. Also jemand, der sich mit Python auskennt, weiß, es gibt Python 2.5, 2.6, 2.7 und Python 3.
Und gerade zwischen 2.5, 2.6 gibt es halt immer wieder so Dinge, die man beachten muss, wenn ich etwas implementiere. Und da sieht man hier zwischendurch auch zu ein, zwei rote Punkte. Da schlägt ein Test fehl. Das heißt, der Code musste nochmal angepasst werden und beim nächsten Durchlauf hat es dann funktioniert. Das Ganze basiert natürlich auch darauf,
also Map-Proxy liegt als Source-Code auf GitHub. GitHub ist so das populärste Source-Verwaltungssystem mittlerweile für Open-Source-Projekte. Auch die Open-Source-GIS-Projekte sind da extrem stark vertreten. Also von Openlayers 3. Ich weiß gar nicht, ob ein Map-Server mittlerweile auch da ist.
Aber das ist einfach sehr populär. WPS hatten wir ja gerade auch schon, dass sie auch bei GitHub sind. Auch da kann man halt Mechanismen nutzen, nennt sich zum Beispiel Travis CI, um zu gucken, meinen neuen Code, den ich einspiele in meinen Map-Proxy, funktionieren da noch alle Tests oder nicht.
Und das heißt, eventuell muss man den dann halt noch anpassen, den Test und dann quasi kann man neue Funktionen hinzufügen. Die besten Tests bringen aber nichts, wenn ich veraltete Dokumentation ab, zum Beispiel. Also wenn Sie Map-Proxy Dokumentation lesen möchten,
komplett, es sind ausgedruckt 120 Seiten PDF, kann ich Ihnen nur empfehlen, also müssen Sie es nicht lesen, aber könnte man. Und wir versuchen halt wirklich zu jedem, zu jeder neuen Funktion, die wir implementieren, auch Dokumentation zu schreiben. Der Gedanke dahinter ist halt, die Qualität hochzuhalten, das heißt,
es zeigt halt, dass man nicht nur sagt, okay, ich sitze irgendwo in meinem Kämmerlein und entwickle Software und das funktioniert dann zum Beispiel, sondern wir gehen halt immer her und sagen, wir hätten gerne einen Test dazu und wir brauchen Dokumentation. Weil nur so macht es ja auch irgendwie Sinn, wenn man mal ehrlich ist. Natürlich ist es sehr verführerisch, wenn man hergeht und sagt,
ja, so ein bisschen, ich mach eben so eine Funktion und dann funktioniert das und mein Kunde ist glücklich und in einem halben Jahr schreibe ich dann die Dokumentation, das funktioniert aber nicht. Also es funktioniert einfach in der Praxis, hat gesagt, das geht nicht. Ich muss halt mich sofort hinsetzen, Dokumentation dazu schreiben und die anpassen. Das so ein bisschen aus dem Hintergrund,
wenn da zu Fragen sind, beantworte ich die auch gerne nachher noch. Der Vortrag heißt ja, was war, was wird, auf der einen Seite. Und deswegen müssen wir uns auch noch kurz mit dem, was wird beschäftigen. Ich glaube, ich bin viel zu schnell, aber naja, mehr Proxy ist ja auch schnell, von daher passt das. Finde ich gut.
Genau, nächste Version wird im April 2014 rauskommen, Version 1.7, wird vor allem ein paar Bugfixes, ein paar Verbesserungen haben, interne, hat neue und bessere Bordwerkzeuge, da gehe ich gleich nochmal ein bisschen drauf ein. Und Version 1.8 wird die erste Version sein,
die dann Python 3 unterstützt. Für alle, die das vielleicht nicht wissen, es gibt quasi eine neue Python-Version von 2 zu 3, die sind nicht kompatibel miteinander. Und im Rahmen des Hack-Weekends, das der Foskes organisiert hat, hat quasi der Chefentwickler Oliver Tonhofer MapProxy soweit vorbereitet, dass es mit Python 3.3 läuft.
Und danach natürlich noch ein bisschen weiterentwickelt. Und Version 1.8 wird quasi die erste offizielle Version sein, die damit läuft. Dafür fällt dann die Unterstützung für Python 2.5 weg, weil das einfach nicht mehr up-to-date ist. Und einfach auch viel Code produziert, der eigentlich quasi nicht mehr gebraucht wird.
Diese angesprochenen Bordwerkzeuge liefert MapProxy eigentlich schon seit Anfang an mit. Also MapProxy Util ist so, wenn Sie zum Beispiel MapProxy installiert haben. Es gibt seit kurzem auch von einem, wo ich glaube in Niederländer war, wenn ich jetzt nicht ganz so falsch bin, ein Windows-Installer-Tool. Ich habe es leider noch nicht getestet, aber er hatte das
vorhin schon in der Woche geschrieben, mit dem Sie es quasi ganz einfach unter Windows auch eine Exe ausführen können und es installiert sich. MapProxy liefert da aber auf jeden Fall ein Kommando-Zahlentool mit. Nennen Sie sich MapProxy Util. Das heißt, damit können Sie zum Beispiel einen kleinen Entwicklungs-Server starten. Das heißt, Sie können Ihre Konfiguration, bevor Sie das irgendwo auf einem großen Server packen oder so, lokal bei sich testen
und gucken, ob das Ganze funktioniert. Dazu ermittelt es halt auch möglich, zwischen Auflösung und Konsumlevel zu berechnen. Das heißt, wenn Sie zum Beispiel einen bestimmten Maßstab haben oder haben ein eigenes Gitter, können Sie das halt damit berechnen. Sie können auch zum Beispiel berechnen, wie viel Kacheln Sie denn jetzt eigentlich erzeugen.
Das heißt, wenn Sie jetzt gerne wissen möchten, ok, ich möchte so einen Kacheldienst machen, à la Google, sage ich mal, in Anführungsstrichen, von meinem Bundesland, wie viel Kacheln erzeuge ich denn da überhaupt, wenn ich so etwas komplett vorgeneriere. Das kann mal ganz interessant sein, dann kann ich nämlich hochrechnen, wenn dann der Kachel irgendwie 50 Kilobyte hat oder so, wie viel Plattenplatz bräuchte ich denn.
Neu in Version 1.7 ist MapProxyUtil Autoconfig. Und zwar ist das Autoconfig dafür da, dass bestehende WMS automatisch ausgelesen werden. Das heißt, ich kann quasi bei diesem Kommandozahlen-Tool angeben, wo liegt mein WMS-Dienst. MapProxy liest dann automatisch
die Capabilities aus und schreibt die dann in einem MapProxy Konfigurationsdatei. Zusätzlich kann ich halt auch noch eine Base-Datei angeben, wenn ich zum Beispiel einen Gitter definiert habe, so erspare ich mir halt viel, viel Schreibarbeit, gerade wenn ich zum Beispiel einfachen kaskandierenden Dienste haben will über MapProxy, kann ich deshalb mit diesem
Autoconfig sehr einfach machen. Natürlich irgendwann, wenn man, die logische Konsequenz würde ich jetzt vielleicht nicht sagen, aber generell, wenn man irgendwann sagt, okay, wir sind bei MapProxy 1.8, kommen natürlich automatisch, weil dann zählt man 1.9, man könnte natürlich auch noch 1.10, 1.11 zählen,
tut man aber oft nicht, dann kommt man automatisch zu Version 2.0. Version 2.0 ist auch schon in Planung. Solche Schritte, wenn man dann wirklich komplette Versionssprünge macht, nutzt man dann dazu, um ein bisschen mehr aufzuräumen. Auf der einen Seite natürlich paar in drei Supporte, die wir in Version 1.8 natürlich auch schon haben.
Dann, was man halt dazu nutzen könnte und was wir auch nutzen werden, das heißt, wir werden den Code aufräumen, vielleicht werden aus den 13.500 Zeilen grod dann nur noch 11.500 und sie machen genau dasselbe. Hat aber halt den Vorteil, dass man auch gucken kann, was für Funktionen sind in der Zeit dazugekommen. Ich meine, das Projekt existiert jetzt seit 2008,
sage ich mal, vom Code her und es wächst und wächst und irgendwann muss ich halt mal sagen, okay, bevor ich jetzt hier irgendwie zu weit weiterentwickeln und irgendwann von null anfangen kann, nehme ich halt irgendwann eine Versionsnummer, mache einen Break und gucke, wo räume ich auf, was habe ich gemacht, wie arbeitet das Ganze, was sind so die Hauptfunktionalitäten,
was sind vielleicht Sachen, auf die ich aufpassen muss. Und was halt auch noch in Version 2.0 wahrscheinlich kommen wird, ist ein neuer Hintergrunddienst. Aktuell ist es so, dass wir diesen Seedingprozess hier haben, womit ich Kacheln vorgenerieren kann. Wünschenwert wäre es da aber natürlich, wenn wir da zum Beispiel ein Q-System haben.
Das heißt, wenn ich einzelne Sachen priorisieren kann, was mit höherer Priorität zum Beispiel, dass welche Karten erzeugt werden oder welche nicht. Und was natürlich auch immer wieder ein Punkt ist und angesprochen wird, ob man MAP-Proxy nicht um WFS erweitert. Das heißt, dass man vielleicht erst mal so anfängt,
den WFS quasi in die Absicherungsschicht einzubauen. Sprich, dass man WFS durchleitet. Das haben wir auch schon mal ein, zwei Tests mitgemacht. Und dann quasi den WFS absichert und jetzt nicht unbedingt cached, weil WFS-Vektordaten caching ist halt nochmal eine ganz andere Baustelle, aber quasi diese Position vom MAP-Proxy nimmt und
nutzt, um WFS dann zum Beispiel gleichzeitig mit dem WMS abzusichern. Kurzes Fazit, und dann können wir auch direkt zu den Fragen übergehen. MAP-Proxy ist ein sehr aktives Open Source Projekt. Also es gibt mittlerweile auch mehr als nur Committer, sage ich mal, oder Code von der Firma Omniscale.
Mittlerweile ist es auch mehr als nur ein Kachelproxy, dadurch, dass der Funktionsumfang halt von damals deutlich getestet ist. Und worauf wir halt auch so ein bisschen stolz sind und das auch so ein bisschen auf unsere Fahnen schreiben, ist, dass MAP-Proxy einfach gut getestet ist und gut dokumentiert. Das ist halt auch so ein Punkt, um zu zeigen und Transparenz zu zeigen, um auch zu zeigen, hier auch bei Open Source Software
wird Wert auf Qualität gelegt, und das sind nicht alles, und nicht jedes Open Source Projekt, da sitzen die Leute im Keller und machen das für sich. Also viele Open Source Projekte, die auch hier sind, sind wirklich, wirklich gut von ihrer Qualität, sonst wären noch viele davon nicht hier und würden nicht mehr existieren.
Und natürlich kann man immer noch immer was besser machen, das ist natürlich auch das Ziel, aber generell sind wir da glaube ich alle auf einem ganz guten Weg. Und natürlich, ich meine, man hätte auch sagen können, nach dem Kachel und dem WMS, ja eigentlich funktioniert ja jetzt alles. Unser erstes Ziel haben wir erreicht, was wir damals in der Küche so uns ausgedacht haben. Aber natürlich haben wir noch mehr Ideen, die wir dann umsetzen
können. Dann danke ich Ihnen fürs Zuhören. Auf MAP-Proxy.org finden Sie auch alle Informationen dazu. Da gibt es auch die Dokumentationen, einen Link zu GitHub, wo Sie den Code finden. Wenn Sie Fragen haben, MAP-Proxy Mailing-Liste. Und wenn Sie jetzt Fragen haben, natürlich auch gerne direkt. Ja, vielen Dank Dominik.
Ich glaube ich muss auch gar nicht fragen, ob es Fragen gibt, weil hier vorne war schon eine Meldung während des Vortrags. Wann sind das? Ja, ich habe, ich habe erstmal eine Frage zur Administration. Vielleicht können Sie die nochmal ein bisschen erläutern, auch wie ob es Gruppen,
sowas wie Gruppen gibt oder ob es nur Nutzer gibt oder Nutzer, die man auch zu Gruppen zusammenfassen kann. Und wie das Ganze überhaupt funktioniert, also wie ich die WMS-Gruppenzuweisung herstellen kann, das würde mich einfach nochmal interessieren. Genau. Also MAP-Proxy ist es so, dass MAP-Proxy eine Autorisierungsschicht
hat. Das heißt, wir haben jetzt nicht implementiert nach dem Motto, du musst das so und so machen, weil wir halt auch viele Projekte haben oder Kunden, wo vielleicht schon eine Benutzerdatenbank vorliegt. Das heißt, wenn Sie zum Beispiel MAP-Bände haben, da haben wir das schon mit eingesetzt. Das wäre meine nächste Frage gewesen, ob man so eine Datenbank mit integrieren kann. Genau, also MAP-Proxy bietet eigentlich nur diese
Integrationsschicht. Das heißt, MAP-Proxy können Sie halt sagen, okay, hier ist meine Datenbank. Dann müssen Sie halt quasi in Ihrer Schnittstelle, die müssen Sie halt ein bisschen selber programmieren. Also das steht jetzt nicht so nach dem Motto, ich kann jetzt auf 20 verschiedene Benutzerdatenbanken zugreifen. Wir müssen halt sagen, hier MAP-Bänder 3. Wir müssen dann halt sagen, okay, in der MAP-Proxy-Konfiguration
habe ich halt verschiedene WMS-Dienste, die ich zum Beispiel auch gruppiert habe oder layer und kann dann halt sagen, okay, wenn du Benutzer in einer bestimmten Gruppe bist, dann darfst du halt genau auf diesen WMS zugreifen. Dann bekommt der Benutzer halt auch nur die Capabilities, die er sehen darf. Also es ist halt schon noch mit ein bisschen Aufwand verbunden, sage ich mal.
Dadurch hat man aber sichergestellt, dass man halt nichts redundant vorliegen hat. Das heißt, Sie müssen Ihre Datenbank nicht kopieren oder sonstiges, sondern Sie können halt wirklich Ihre vorhandene Datenbank nehmen und wenn da vielleicht sogar schon ein Layername hinterlegen ist oder wenn Sie da zum Beispiel einen Zufügen können, was zum Bereich er sehen kann, könnte man da auch noch drauf zugreifen. Beantwortet das so ein bisschen die Frage? Ja, aber ich habe noch mal, also das schreit
ja eigentlich danach, dass Sie auch einen WFS integrieren. Genau, deswegen wäre die logische Konsequenz, das zu tun. Da muss man halt auch mal gucken, wie diese WFS-Absicherung funktioniert und das ist einfach aktuell da auch wieder Open-Sourcing-Spiel so, dass es noch niemand bezahlt hat. Die Nachfrage ist da,
aber es hat sich noch niemand gefunden, der gesagt hat, ihr habt hier 5 Euro so ungefähr und macht doch mal. Danke. Na, wenn wir sammeln, wer weiß. Wir können ja gleich einen Hut am Ausgang aufstellen oder so was. Genau, stellen so eine Box auf. Da vorne war glaube ich noch eine Frage. Also Stichwort
MapBender ist ja auch schon gefallen. Wenn ich verstanden habe, bei MapProxy kann ich mehrere WMS quasi auch zusammenschalten, also layern letztendlich. Bei MapBender kann ich das auch. Wo macht das oder wie weit ist da das überlappend oder würde es Sinn
machen, also eher bei MapProxy das zu layern oder bei MapBender zu layern? Also MapBender an sich ist ja quasi die Oberfläche und da würden Sie ja quasi immer noch von zwei Diensten anfangen. Also ich weiß das nicht genau, wie das MapBender funktioniert, wenn der kaskadieren kann. Ich weiß nicht, ob du da was zu sagen kannst.
Also generell ist das so, dass MapProxy das quasi auf Server-Ebene macht. Quasi eine Ebene tiefer als das im MapBender passieren würde und somit hätte man halt, wäre es halt deutlich effizienter, weil das immer quasi für jeden sonst immer für jeden Benutzer neu durchgeführt würde und bei MapProxy halt quasi einmal für alle. Also ich bin mir nicht ganz sicher, wie der MapBender
das da macht, aber dann können wir gleich nochmal drüber reden. Ach so, oder so. Also wenn jetzt nicht jemand da ist, der da auch was als Vom Entwicklerseite auszusagen kann, soweit ich den, kenne den aktuellen MapBender auch, den Dreier, ist es halt so, dass ein WMS da eingebunden wird, ist ein Layer, der auftritt
und da taucht auch ein Layerbaum auf, der muss an- und ausgeschaltet werden oder kann an- und ausgeschaltet werden. Da könnte ich mir zum Beispiel vorstellen, wenn man mehrere Hintergrund-WMSer hat, die man zusammenführen möchte, wo man den Nutzer nicht zumuten will, dass die alle im Layerbaum auftauchen in der Legende, sondern halt nur als einen Menüpunkt, dass man da sowas zusammenschalten kann mit einem MapProxy, dass wirklich nur noch ein WMS
im MapBender auftaucht und der ist eben Hintergrundkarte und das war's dann, wenn ich mehr damit machen will. Das gleiche machen wir übrigens heute Nachmittag im Mapserver-Workshop mit PHP, also da gibt es verschiedene Methoden und nochmal eine kleine Werbung. Ich glaube, das sind auch noch Plätze frei. Gibt es noch weitere Fragen? Ja, ich sehe keine
Fragen, das ist perfekt mit der Zeit. Ich glaube, wir machen alle froh, wenn Sie vielleicht die ersten sind, die zum Kaffee kommen, wenn es wieder so eng ist wie gestern. Ich wünsche Ihnen eine schöne Pause.