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

MapStore 2, modern mashups made simple

00:00

Formale Metadaten

Titel
MapStore 2, modern mashups made simple
Serientitel
Anzahl der Teile
53
Autor
Mitwirkende
Lizenz
CC-Namensnennung 3.0 Deutschland:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.
Identifikatoren
Herausgeber
Erscheinungsjahr
Sprache

Inhaltliche Metadaten

Fachgebiet
Genre
PasswortVorlesung/Konferenz
BildverstehenCASE <Informatik>Zentrische StreckungPasswortBitOffice-PaketRechter WinkelTouchscreenBesprechung/Interview
WhiteboardSoftwareKollaboration <Informatik>Familie <Mathematik>Gebäude <Mathematik>MultiplikationsoperatorCoxeter-GruppeKlassische PhysikMapping <Computergraphik>Nabel <Mathematik>ZahlenbereichProgrammbibliothekInformationsspeicherungBitApp <Programm>Wort <Informatik>TeilbarkeitSoftwareentwicklerNP-hartes ProblemKonfigurationsraumKrümmungsmaßArithmetischer AusdruckSchreiben <Datenverarbeitung>CASE <Informatik>DifferenteOffene MengeKartesische KoordinatenRechenwerkArithmetisches MittelGraphfärbungp-BlockCodeMereologieZusammenhängender GraphParametersystemURLReelle ZahlVorlesung/Konferenz
MereologieGebäude <Mathematik>ComputerspielMAPMailing-ListeMapping <Computergraphik>SoftwareCASE <Informatik>MultiplikationsoperatorElementargeometrieInhalt <Mathematik>WidgetDifferenteProdukt <Mathematik>RechenschieberBitWeb SiteSchnittmengePlug inMinimumTranslation <Mathematik>Metropolitan area networkFastringVorlesung/Konferenz
Web-ApplikationCASE <Informatik>Kartesische KoordinatenBitReelle ZahlDienst <Informatik>Formale SpracheMAPProdukt <Mathematik>FunktionalGebäude <Mathematik>VollständigkeitSoftwarePunktRichtungDifferentePunktwolkeGemeinsamer SpeicherElementargeometriePlug inMultiplikationsoperatorProjektive EbeneStandardabweichungFront-End <Software>AppletRechenschieberViewerSoftwareentwicklerÄußere Algebra eines ModulsClientVerschlingungKonfigurationsraumIntegralImplementierungMapping <Computergraphik>AuswahlaxiomVorlesung/Konferenz
Single Sign-OnREST <Informatik>KoordinatenFront-End <Software>Konfiguration <Informatik>VersionsverwaltungAppletSpiegelung <Mathematik>ImplementierungProdukt <Mathematik>AuthentifikationEntscheidungstheorieHochdruckDienst <Informatik>AutorisierungMapping <Computergraphik>SchlussregelPlug inSchnittmengeComputersicherheitPhysikalisches SystemQuelle <Physik>DifferenteMenütechnikFormale SpracheReelle ZahlOffene MengeProxy ServerProgrammbibliothekBildschirmmaskeInformationsspeicherungProjektive EbeneSoftwareentwicklerKartesische KoordinatenDatenfeldProgrammfehlerGamecontrollerStellenringCASE <Informatik>
Transkript: Englisch(automatisch erzeugt)
I don't know who's this, what? I don't know who has this. Yes, but I don't have the password.
Does someone? No, we already have someone running.
Yes. It's not. It's my password. It's like our lab. If you come to Italy, you can enter our office with this password. Maybe we should wait a bit, because we are a bit ahead of schedule. Yeah, we'll just transfer.
In the meantime, if you want to ask something, even if it's not related to, we can start some discussion in five minutes. Again, GeoSolutions.
Who would have imagined? Yeah, we are filling the conference. Do we know to go full screen or Portuguese? Probably this one. OK, thank you. I don't know Portuguese, but Conkleto is Conkleto. Right.
We are 10 minutes ahead, so maybe we should wait in case someone wants to change for us.
It's clear what they are, auto, plenary, or whatever,
but yes. This is the last technical session.
You know, if you want to stop. It can go slow. OK, so we are going to start slowly with here. Mauro Bartolo Meoli, talking about Map Store 2, the story.
She told my surname very well, so I'm happy about that. And this is the real last session. Are you happy about that?
Are you tired? I hope not to be too boring, because I am a developer, so I tend to be boring sometimes if I talk about software. We will talk about software, but since I knew I was the last one in the last day of conference,
I thought about my presentation yesterday, and I decided to rewrite it, basically. As we say as developers, to refactor it a little bit, trying to be a little more less sleeping, let's say.
So I tried to write a story, the Map Store 2 story, and today I want to tell it to you. This is the idea.
It's a story about an idea that through a lot of hard work became, finally, real. It's not a poem, but it has rhymes in it. It was not intentional. And it is also the story of me falling
in love with a piece of software called Map Store, eventually, too. This is my family, G solutions, probably you. I have known some of them in these days, because we basically are probably
the company with the most number of presentation in this conference. So you probably heard some of them. This morning, for example, my Portuguese colleague gave one about GeoServer. As I said, we are me, and we are like a family,
not the classical Italian family in the mafia way, but we are a family. We try to do things together. It's not always easy. We try to collaborate. We sometimes fight for our ideas,
and sometimes we have to do compromises. But at the end, I would say we win. OK, I am going to tell you a story, because we are late, and I will try to make this story slip you well.
So it's a nice story, in my opinion. As I said, this is the story of a piece of software. And this is the first day of the new board. It was July 2015, three years passed since then. And this is initial cry, the first comet
that I did on the 20th of July. She was a newborn, but I was already proud of her. She already had unit tests, building and deploying configuration, and some simple documentation. And it was simple, a joy to kiss.
Kiss like, keep it simple, stupid. I don't know if you know the acronym. Because simplicity was one of the initial ideas. We would like to make something simple, not just for the users, or not especially for the users.
Because as today, keynotes pointed out, sometimes being too easy to use is not really a good thing. But it needed to be simple for us to work with. Because we had the knowledge to work with it,
and we needed to make something that we could handle easily. And this is the time I heard our first word. It was, lie flat. At the time, she could only say that word, but it was really a joy to hear it.
After a while, well, indeed, 99 were repressed later. She learned another word. It was a little bit slow to learn, but at the end, it did its work. She learned the new word that was open layers.
And after that, nobody could stop her anymore. She learned a lot of things, like this one. Now, after a lot of trying and failing, she was able to do this.
This is the only piece of code we will see during this presentation, I promise. We won't see any code. Just to show that it was simple to do these kind of things, obviously, something like a map.
A long time has passed since that 100 pull request, where she learned to do the first things. But you can still do the same thing on her with a simple URL parameter. You can switch between different mapping libraries, because I didn't told you.
But the initial idea was to have something that made you build your maps in an agnostic way without having to worry about the mapping library that you want to use, either leaflet, open layers, cesium.js, or anything else.
We wanted to have something that would allow us to switch between different mapping libraries in a simple way. So keep it simple, stupid means I would like to change my mind without having to redo my work. We want freedom to change our libraries if we need to do it.
OK. This time, it's kindergarten. She learned to build her first custom application. This is the first application she built.
And at the time, she liked Lego blocks so much of many different sizes and colors. So we had to buy her a lot of them. And we called them the components that are still a good part of it.
And I also took her to many different places in these three years. We went to Germany. After about a year, when she was just one year old, I presented her to FOSS4G Europe in Bonn.
And then we went to France at 2017 FOSS4G Europe. As you may see, FOSS4G Europe is a place where she liked to be, ever here, basically. And we also went to the United States, Boston, in particular.
And also Italy, where that is her home country. Because I like her to see the world and be known by many people, if possible.
And many people learn to love her from Europe, America, and also China. This is cutting a little bit of the slide. So you are missing another translation at the bottom that is Chinese. We received many contributions, especially for languages, but not only for that. So many people is working with her around the world.
And we were very surprised with, for example, Chinese and also Croatian. Then she was growing, and I built her a playground where
she could meet new friends and play with them. And they chose a nickname. They called themselves the plugins. Here are some of her friends. This is Mavsor, and these are some of the friends
of the plugins. It's not that beautiful to see, but she is just a child. She didn't care at the time about being pretty,
for example. But as she grew up, she wanted to be more pretty for the users, in this case. She was already princess for me, but it was not enough. She started using cosmetics at that time. Since I said less for women that do not have to ask.
And this is before and then after the cure. And she grew up again. And she started liking, as every man knows, women like shopping.
But this is sort of shopping. It's not real. Women prefer shopping, but. And this is another way she learned to live. Writing some list. We will call it configuration.
Buy something, assemble it, and ta-da. She was able to create new things. And this is another way to use this kind of software. The first way was using code. We won't see it. The second one is writing configuration,
and using the capabilities of the software itself, just giving some instructions, some basic instructions on what we exactly want to do. And we can build something new, very, very simply.
Like you do when you buy something with IKEA. You go home, and in a couple of hours, you have something that resembles your original drawing from the manual. Okay, let's go on. The girl becomes a young adult,
and she has many friends. We call them the contributors. You can see some of them in this list. I am one of those, but I'm not the first one. There are other people that are loving her, and so they started to fill her life.
But I'm still part of her life. For example, I am the first one who tries to clear the mess after her when it's needed, because sometimes she does something wrong, and someone needs to tell her. As you can see here, my contributions to her education
are not only additions, something that I teach, but sometimes I have to remove things, because I go back to the kesachronim to keep things simple. Sometime you have to decide that something is not needed, I remove it.
You have to clean up. From time to time, you have to take some time to clean up if you don't want your little girl to become messy. There was another thing here. I don't know if I can zoom it a little bit down.
The sentence, it's always difficult to follow the case principle, but we have to try. Well, this is only part of the story, of course, but if you are interested, you can ask me more about it
and try to learn a little bit if you have the interest in it. I usually said in these slides, come to our desk and talk to me, but since this is the end of the conference, probably you won't have time. So you have to come to Italy, unfortunately, to meet us.
It's a nice place. We are in Tuscany, near Pisa, Florence, the sea, the mountains, everything like that. It's a nice place to live and to visit. And if you can, give her a little bit of love too.
Well, this is the URL where you can look at the software. We didn't look at the software too much today because I wanted to give you some interest without boring that much, but we will see something of what she can do.
But this is the website where you can go if you want to go deeper in detail to know about the software itself, herself. Some final credits. So what you can do, you can do mapping software,
of course, this is all about mapping. And you can use different themes, the set of cosmetics that I bought her some time ago, and you can build your own and give a present to her with a new set of theme.
But we continuously work to improve the look and feel of the product. We have a website dedicated to mock-ups where you can see the new improvements that you are going to release before they are even started to be implemented.
These are some of the things that we developed recently. For example, the ability to have charts and different kind of widgets on top of each map.
And also the ability to build geodashboard. We call them this way. It's let's say a portal where the map is not essentially the main thing, because usually all the screenshot that you have seen so far are maps with something inside.
In this case, we have a generic portal where the map is just one of the building parts, but then we can have other parts that are combined together to build a geodashboard, where you can use maps, but also charts and other kinds of contents.
We also have editing capabilities, so a complete feature editor, both for geometries and alphanumerical data. If I scroll down a little bit, we added the capability to add annotations,
so to add your own things on the map, like markers, but also different kind of geometries to comment something, to share comments between different people and stuff like that. And something that we have seen also
in the last presentation, like the ability to create thematic maps, we call it, but it's very similar to Chloropleth maps, so the ability to classify data and have a classification drawn directly on the map.
I will also show some of the products that are built using MapStore functionalities. This is the first product that was developed using MapStore, so three years ago.
Then other ones, you may see that probably that they are very different, one from the other, both in the look and feel and in the functionalities, because one of the main ideas, together with agnosticity, was the fact that we wanted it to be extremely open so that you could build basically everything
that has a map in it, if you want, using all the tools that we give together with the basic framework, but eventually doing a complete customization or building your own tools, adding to the map,
and building your own application, very different from the standard one. This is something that is close to the standard one. This one, as you can see, is quite different, also in the look and feel. Other examples, there are products that are not,
let's say, developed by us, this is an example. This is using MapStore 2, but there is software by a completely different company that uses it to build a map publisher, starting from QGIS, so you can publish a map
directly from a QGIS project, and you will have the web application with the same kind of data styles and stuff like that, and it uses MapStore 2 as the rendering engine, let's say. But also this one is quite different in the look and feel from our standard one, so it's really open.
Everyone can use it and build his own application. I know that on Tuesday another application was presented by another company that was contributing to the main project and using MapStore 2 for their projects in Belgium.
And other projects here just to show the ability to make different things. Okay, let's have a quick look at the future. We hope that it will be a bright future
if you love her. It will be, so try to. There are not too many things that I want to say for the future, just a couple of them. The first one is the integration with Geonode.
You may know, if you know Geonode as a product, you may know that it has its own map viewer and composer based on GeoExplorer. We are now building an alternative based on MapStore 2 with the same and improved functionality, so we are completely integrating MapStore 2 as a possible client for Geonode.
And with the same kind of effort, we are also building a new backend based on Python instead of the current one that is based on Java. So we are going to a more modern approach with the languages.
We will not throw away the Java backend, but we will add a new one. This is the way we like to work, like we did with mapping libraries, where we wanted to work both with leaflet, open layers, and then with cesium and stuff like that. We want to have choices in the backend.
From the start to now, we only add a Java backend, but it's a lot of time we are experimenting with Geonode and Python, so in real, we already have some implementation of the backend in other languages.
We are making them public in the next month. Then we are trying to document a little bit more, but as Victor said today, we don't have to document that much, so we are good at that. We don't document that much. Basically, because we don't have time,
we would like to do a little bit more, so every year I say we will have more documentation, hoping that someday it will happen for real. Then we are trying to put MapStore in the cloud so that you won't need to install locally,
but you will be able to use our services to publish your own maps, in this case with the standard product, not with your own custom application. If you need your custom application, use the standard way, download the product, customize it, deploy it, and do it.
If you just need to publish maps and use the functionality of MapStore 2, then we hope to have a cloud solution early. There we will for sure add more plugins and more component, but essentially what we want to know,
because at this time I think we are mature. It's been three years from the beginning of the project, and software, in my opinion, is like animals. Three years in software is not like three years for humans, but it's a lot more, so after three years, we are at the point where we need to decide
what to do when we will be adults. We are confused about that. We don't know exactly what to do, so we need your opinion about the current direction. If you are already using MapStore 2, or you will have the opportunity to try it,
what you want from MapStore 2? As someone said in the past, don't ask yourself what MapStore 2 can do for you, but tell us what you can do for MapStore 2. Here are some resources.
These slides I think will be published early, so don't care to copy the links because they will be online. Some documentation, tutorials, the documentation that there is, you can use it. Ask for more, please, so that we decide to do it.
This is both documentation for people who wants to just take the product, configure it a little bit and use it, but also for developers that want to go deep and try to do wonderful things with MapStore.
And eventually, I have finished, so I think there is time for questions. Thank you.
Two questions, please. Oh, go. If I have a projected coordinate system that I just want to use it straight away in browser, is it easy in MapStore to do it? If you have a project.
Projected coordinate system, so it's not a webmer cutter, it's a local projection system that I want to see reflected. Let me see if I can find the right slide for you. Maybe this one. I don't have it yet, but yes, the first product that we did was particularly tough
because it's a product where the customer wanted maps in at least 30 different coordinate system where you can switch between them with a simple menu option. So the answer is yes, you can do it.
It's very easy. You have just to configure the coordinate system that you want to use. You just have to limit yourself to using OpenLAS because something that I have not said, but this is the time probably. Obviously, you can choose between the different mapping libraries,
but since they are not equivalent, Leaflet cannot do the same things as OpenLAS and Vis versa. They have their specificity. There are some things that the mapping library can do and something that cannot do. For example, if you want to use advanced projections, we always use OpenLAS,
but you have just to configure MapStore to use OpenLAS and then you are good to go. We have many examples. For second question, changing for Python backend, why not use something more performant like goal language or something like that?
Well, mainly because it's, in this case, it's most commercial decision. It's not made by developers. Python is one of the most used languages nowadays for this kind of things, especially in the GIS field.
So it's easy for us to find developers who can work in Python. It's very known around. And also, since we wanted to integrate with existing solutions like Geonord, the one that I presented, and Geonord is developed in Python, it was the easiest thing to go to the mainstream
in this case. So we went for Python. I have also a question about the decision to go for a second option for your backend, like you said. Isn't there the risk that you will, are you going to stop with the Java version?
And if not, how are you going to take care that you don't create two versions of the same product? Well, there is one thing that made me think that we are not going to do that. And it's that the backend that is inside MapStore 2, it's not a real full-fledged backend.
It's just a set of two or three services that do some simple things, and they are basically not improved for many time. There are, let's say, three or four services included with MapStore 2 that are storing services
where you can store your maps and everything you build with the standard application. It's a form of storage used by a REST API. Then there is a simple proxy to be able to do cross-origin requests. I think you need proxy for these kind of things in every solution that you want to build. So we have an internal one,
but you can switch it with any proxy that you like. And then we have an internal security system, just for, in this case, simple things. If you don't want to use, or you don't have your security solution, we give you a simple one. And then the last thing that we integrated recently
is the printing service to generate printed maps in PDF. We usually delegated in the past to GeoServer and its internal plugin. We decided to take this one, that is the Mapfish printing service, and integrate it directly into MapStore
so we don't have to delegate to GeoServer something that we can do internally. But these are the only services that are included in the standard backend. Because obviously, in this kind of products, I think if you need a backend to implement your own kind of services, you will develop in any language that you like.
So the real MapStore backend is so simple that the Java version will continue to work because we are not improving that much. Sorry, just one question. So in these three years of the project, is it been, the contributions have been just
by GeoSolutions, or do you also get other contributors? We had some. I would like to receive more. I know that there is people using the project. I think one of the difficulties is that it's not easy to start developing in MapStore 2.
So I want to thank the people that is doing it. And this is one of the reason why I continuously repeat, let's make it simple, let's make it simple. Because as one project, every project I think, as they grow, they tend to become more complex. So it's more difficult for new people
to come and start developing with it. I will try to make it simple as in the beginning, but now it's not that simple. So the contribution have arrived. For example, the project from the Belgian people contributed back some code.
We had some other contribution from the company that developed the QGIS-based publisher. We received translations, and we received bug issues, stuff like that. I would like people to contribute more,
but that's not in my control. For the moment, we are the 99% contributors, let's say. One more question. About the user authentication system and integrating with an LDAP or some method of authentication for enterprise,
or internal authentication. How does Mapstore behave in those environments? Yes. Our system is, as I said, a Java basic implementation of authentication and authorization rules. But it is based on a common Java technology
that is Spring and Spring Security. And it's configurable, so you can basically switch the implementation of authentication, mainly, to every Spring-based solution that exists. We have many customers that use LDAP or the Microsoft implementation, so Active Directory,
or other system like CAS, single sign-on systems in general or open connect, stuff like that. The library allows to make it configurable. So you can switch to anything that Spring Security allows.
So unless there's a very short question, we should close now. The last session, thank you all for coming. Thank you everyone. Thank you.