MapMint: The service-oriented platform
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 351 | |
Author | ||
Contributors | ||
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 | 10.5446/69079 (DOI) | |
Publisher | ||
Release Date | ||
Language | ||
Production Year | 2022 |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
| |
Keywords |
00:00
Computing platformOpen setGeneric programmingWeb serviceStandard deviationOpen sourceChainingSoftware frameworkSoftware developerImplementationProcess (computing)Self-organizationGeomaticsGateway (telecommunications)Rollenbasierte ZugriffskontrolleCone penetration testKernel (computing)SupercomputerDigital rights managementCodeServer (computing)Social classPrototypeSoftware engineeringSchmelze <Betrieb>Demo (music)ReliefComa BerenicesRoundingThermal expansionBit rateTetraederClient (computing)User profileFisher's exact test3COM <Marke>Group actionComputer-generated imagerySoftware testingRevision controlDependent and independent variablesOpen setKernel (computing)ImplementationProgramming languageServer (computing)Ocean currentClient (computing)AlgorithmProjective planeCodeProcess (computing)Library (computing)Multiplication signWeb serviceSoftwareCommunications protocolWindowBinary codeTestbedLattice (order)Demo (music)Revision controlSoftware testingForm (programming)Electronic mailing listInformationGoodness of fitComputerArithmetic meanINTEGRALOpen sourceLatent heatInteractive televisionSuite (music)Queue (abstract data type)Message passingMereologyUser interfaceProfil (magazine)Sound effectGeneric programmingEmailMedical imagingStudent's t-testWordSource codeSupercomputerUniverse (mathematics)Formal languageConnectivity (graph theory)Cartesian coordinate systemComputing platformPoint (geometry)Arithmetic progressionoutputExtension (kinesiology)Function (mathematics)Right angleLevel (video gaming)CuboidFile formatContent (media)Line (geometry)Standard deviationComputer programmingSoftware developerSmoothingPhysical systemParsingDatabaseMetadataDigital rights managementTemplate (C++)View (database)Computer fileConfiguration spaceType theoryUniform resource locatorConstraint (mathematics)Web 2.0Java appletControl flow graphCore dumpGeometryDirection (geometry)XMLComputer animationProgram flowchart
Transcript: English(auto-generated)
00:00
Thank you very much. So, good morning everyone. I am glad to be here today to present to you the ZOO project and to give you information about what is happening in the project right now and what we will work on during the next month. So, the ZOO project is an implementation in C and C++ of the WPS standard.
00:23
Actually, we envisioned the ZOO project initially as a standard protocol to be able to communicate with all the OAGO libraries or all the complex algorithms that are available in our current open source world. So, we were willing to have a generic way to interact with all these libraries.
00:44
So, here is an overview of the ZOO project history which started in 2008 during the first 4G in Cape Town where the IDE came and born and then you have all the releases that lead us to 2022 and the 1.9.0 version which is a revolutionary one.
01:04
So, here are the people which are leading the project. So, you have also below a picture of the PSC meeting in Phosphology Europe. Here are some of the committers because nowadays we have moved to GitHub so we have much more contributors than only the initial one.
01:28
Here are our knowledge partners which are universities which help us spread the word to the students and create dedicated courses based on the ZOO project.
01:41
And the last to come was Nareswan University which is from Thailand. So, obviously we are open. We are really, really open so we are expecting contribution from the community. So, you can join our mailing list. You can join us on IRC. You can use GitHub or any trans effects and you can deploy,
02:05
you can develop your own services or implement a new capability inside the ZOO kernel. So, let's go in deep details about the components of this WPS platform. So, we have the ZOO kernel which is a generic processing engine which has not much to do with WPS.
02:23
It's only a language to communicate with the server. Then we have the WPS service suite which is a service implemented by us or you are reusing the available technologies. Then we have this WPS API, the ZOO API which is a JavaScript API for creating and chaining your services on the server side,
02:44
meaning reusing the existing services and create a more complex one. Then you have this ZOO client which is a JavaScript library that will be used this time on the client side to communicate with the server and interact easily with the WPS implementation.
03:01
So, we start with the ZOO kernel which does support WPS1 and WPS2. Specification made available obviously by the Open Geospatial Consortium. It runs on every platform. The last test ZOO kernel version 1.9.0 is currently supporting the OGC API processes part 1 core.
03:24
Actually, the ZOO project was involved in test bed 16 for working on the test suite. ZOO kernel is also able to support any programming languages. So, we are currently supporting C, C++, Fortran, Java, PHP, Perl, Ruby, Python, C sharp, JavaScript and R.
03:45
Which means that if you know to program only in one of these programming languages, then you can implement your full service only using this specific language. Also, this was a nice step to support all these programming languages.
04:03
Unfortunately, it will still require some work from our side to implement the services. This is why we then decided to integrate the GIS processing engine which are already available around like Orfeo toolbox and SAGAT GIS. So, it means that you don't have any line of code to write anymore.
04:24
You can reuse all the OTB application and all the SAGAT GIS application out of the box. So, since the beginning, we are supporting Map Server internally. Meaning that for every single process which will output GIS data, you can ask the ZOO kernel to automatically publish for you WMS WFS or WMS WCS.
04:48
And here is an example where you have the WMS to show the safest path. The WFS request corresponding to the same service on the right hand side to show the details of every steps. And then below the profile which we use this same WFS request.
05:07
I wonder how can I go down actually. Okay, it goes down on its own. Since WPS1, we are also supporting asynchronous request. Even if there were no GET status request at that time, we simply implemented the WPS service that was named GET status.
05:26
Knowing WPS2, you don't have this issue anymore. So, we were involved in GeoSUD and then Fidias HPC. Where the ZOO kernel was used to execute remote processing working on a HPC server.
05:42
One of the 10 most powerful server in the whole world. Then here you can see the history and the user interface of this GeoSUD project. Where actually the automatic publication of OGC web services like WMS and WCS were used not only for the output but also for the input.
06:04
So, nowadays OGC for few years is working on moving to open API. So, they renamed all the traditional standard and now WPS became OGC API processes. Meaning that you can interact with it using GSON request.
06:23
So, you can see even if it's really small on the left hand side Swagger UI which is connected to our OGC API processes. Open API which is published out of your service. What is interesting from my point of view is that you don't have to modify one line
06:41
of code of your services to get it available as a WPS or as OGC API processes. And you have the simple HTML user interface which helps you to write down the execute request. Also, during the OGC-OSGO Apache Software Foundation constraint in 2022.
07:04
We have implemented the support for automatic publication of OGC API features. Because Map Server 8 version which should come out in the upcoming week. Provide this OGC API features support.
07:21
So, on the left hand side you can see the GSON request that has been sent. It is running asynchronously and then you have the OGC API feature collection URI, your path, the URL that you can browse and check the feature.
07:41
Here are the last test developments that has been integrated within the current Zoo kernel. So, you can now have a frontal Zoo kernel and then a Zoo, what we call the Zoo Fast Process Manager. Where you can then, rather than executing everything on the same server, you can extract, send a message on RabbitMQ message queue.
08:03
And then have the execution running in somewhere else or in other pod or a dedicated pod. It depends on your willing. Also, this year we get select to get three more Google Summer of Code. One Google Summer of Code is done by Sandy Pan.
08:24
Which is the goal is to have the QGIS based processing available as a first citizen process. Service in the Zoo project world. Also, I would like to specifically thanks Momchil, which has implemented the support for Node.js within the Zoo kernel.
08:46
Meaning that you can implement your services in CGS or ES6. And you can work, you can run them as a traditional WPS or OGC API processes.
09:00
Also, this year we got some grant from Microsoft. Because Microsoft has a program which is named Microsoft Azure for Open Source Software. And thanks to their offer, their grant, we were able to make the Zoo project running on Kubernetes smoothly. Our future development is to integrate the Map Server 8 modification I was presenting to you earlier.
09:25
Investigate the two extension of OGC API processes. Meaning the deploy, replace, and indeploy, which is in progress right now. We have already some content and some source code available made by Blasco Brosi. Then we have this part three, which is workflow.
09:41
So I have a meeting actually this afternoon to discuss specifically about this. Because we have few issue to implement it or understand how it should work. And then we are also willing to support efficient data access for specific formats such as COG and OGC API features.
10:00
And also as it is defined in the part three, maybe integrate the specific type which is OGC API features rather than input. So then we have the Zoo services. Zoo services is a couple made of Zoo configuration file which can be in different format. Our own format Zoo configuration file.
10:21
Or it can be YML. And since 1.7 version you can also store all the metadata directly in a PostgreSQL database. Or generate the SQL code from your existing ZCFG. So here is a very simple hello world code. Here you can see what software are currently integrated within the Zoo services.
10:43
So GDAL, Seagal, OfferToolbox, and SAGAT GIS. Also GeoTool has been done during the GSoC in 2016. Then we have the Zoo API but I won't go in deep details because it will become soon obsolete.
11:01
Because we will move almost everything to OGC API processes. So there is no need anymore for XML parsing and so on. So it will make our work even easier. So here you have an overview of what you can do by using the Zoo API. Here is a demonstration of MapMint 1 tiling system. Here is another one which is a geo-referencer which has been made in 2011.
11:26
Then we have the Zoo client. So the JavaScript library to ease interaction between the client and the server. Here are the examples. What I like in this demonstration is that the forms, HTML forms for every single services are based on the templates.
11:42
So it means that if you are implementing a new service and you want a quick demo or testing it quickly, you can simply reuse this. Add your service name in the select list and you will get the HTML form on the left hand side automatically generated for you. This is the exact same example but with OfferToolbox this time.
12:04
Here is another example of the MapMint 2 version which is taking advantage of the Zoo client and the last test version of the Zoo kernel. Here is another example of the Zoo client integration also in MapMint with a new geo-referencer look and feel.
12:23
And here is yet another classifier. When you are running a classification on the MapMint user interface, it will look like this. So for a year, I think, Zoo project is now running on Docker, meaning that you can deploy it on every computer quite easily and fastly.
12:45
You can also reuse a container on a binary Docker image to run it on a Kubernetes cluster. We have moved two years ago on GitHub and so we are now also having some testing.
13:00
Not as much as MapServer has but at least we have something. Here is MS4W package so I would like to thank Jeff Mackina for the work in integrating the Zoo project to make it running on Windows. And then you will have the luck or the privilege to assist to MapMint talk right after this one.
13:25
And this is it. Thank you very much for your time and I think I am just more than on time.