State of GeoNode 2022
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 | ||
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/69233 (DOI) | |
Publisher | ||
Release Date | ||
Language | ||
Production Year | 2022 |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
| |
Keywords |
00:00
OvalSoftwareSource codeCore dumpState of matterSoftware developerContext awarenessXMLComputer animation
00:25
Source codeSoftwareData managementOperations support systemMassInformation securityService (economics)Product (business)Standard deviationLibrary catalogCartesian coordinate systemSoftware frameworkComplex (psychology)Projective planeVisualization (computer graphics)Context awarenessMappingDampingSoftware developerRepresentational state transferFront and back endsMultiplication signForcing (mathematics)Focus (optics)BuildingSet (mathematics)Core dumpFunctional (mathematics)Group actionSource codeXMLComputer animation
03:32
SoftwareSource codeService (economics)Computer fileServer (computing)Link (knot theory)Physical systemLocal ringService (economics)GeometryRemote procedure callData storage deviceCore dumpMappingCartesian coordinate systemType theoryComputer fileWebsiteContent (media)Client (computing)Set (mathematics)Representational state transferEndliche ModelltheorieFile viewerLocal ringDataflowComputer animation
04:24
SoftwareSource codeSystem administratorSoftware developerService (economics)Template (C++)Human migrationServer (computing)Software maintenanceDemo (music)Revision controlCycle (graph theory)Different (Kate Ryan album)Service (economics)Multiplication signMoment (mathematics)Branch (computer science)Code refactoringImplementationCartesian coordinate systemDemo (music)Video gameSoftware developerMereologySoftware frameworkOcean currentWeb 2.0Computer animationProgram flowchartSource code
07:25
Operations researchWeb pageSource codeSoftwareLibrary catalogIntegrated development environmentWhiteboardView (database)CASE <Informatik>Numbering schemeMetadataEmailInternet forumMach's principleInformation securityPRINCE2Data acquisitionDew pointTrigonometric functionsDifferential algebraic equationScherbeanspruchungInflection pointReceiver operating characteristicThermal expansionElement (mathematics)Computer configurationWordSoftware testingCartesian coordinate systemLibrary catalogConfiguration spaceSpacetimeComputer fileType theoryMetadataElectronic mailing listString (computer science)Standard deviationMeta elementMechanism designInstance (computer science)Vector spaceSingle-precision floating-point formatWebsiteEndliche ModelltheorieGraph coloringFilter <Stochastik>Core dumpUser interfaceRevision controlInfinityService (economics)Default (computer science)Landing pageLatent heatMultiplication signData modelSet (mathematics)Functional (mathematics)Extension (kinesiology)MathematicsText editorSystems integratorGroup actionOpen setView (database)Medical imagingInformationAuthenticationWeb pageSoftware frameworkMaxima and minimaData storage deviceGUI widgetLevel (video gaming)Client (computing)AdditionFeedbackPoint (geometry)Home pageFreezingFile viewerLocal ringSource codeSoftware developerSynchronizationStapeldateiPhysical systemFront and back endsQuicksortLebesgue integrationShape (magazine)Letterpress printingRaster graphicsPlug-in (computing)Code refactoringSource codeComputer animationXML
16:42
SoftwareSource codeConfiguration spaceView (database)Service (economics)Remote procedure callRevision controlSource codeComputer animation
17:02
Computer configurationDisintegrationSystem programmingSoftwareSource codePhysical systemView (database)Raw image formatDefault (computer science)Category of beingRepresentational state transferWeb pageRead-only memoryInformation securityService (economics)BuildingInternet service providerOpen setData managementGroup actionClient (computing)Software frameworkINTEGRALPhysical systemSystem administratorSource code
18:33
Front and back endsStagnation pointClefSoftware developerSource codeSoftwareMathematicsRevision controlFront and back endsRepresentational state transferData storage deviceCartesian coordinate systemWeb pageEndliche ModelltheorieFlow separationLevel (video gaming)Functional (mathematics)Presentation of a groupSoftware developerSingle-precision floating-point formatClient (computing)Projective planeRevision controlCore dumpPlug-in (computing)DebuggerTemplate (C++)Physical systemGastropod shellField (computer science)Complete metric spaceAreaGraph coloringSoftware repositoryMappingLebesgue integrationSource codeComputer animation
Transcript: English(auto-generated)
00:00
I'm Joani, this is my colleague, so I will be presenting this ... okay, hello everyone. State of GeoNode, I'm from GeoSolutions, a company that works on GeoNode as core developers, not only on GeoNode but in this context I'm presenting GeoNode and so what's GeoNode,
00:28
I don't spend too much time explaining what's GeoNode because it's about what's new in GeoNode today, but this question came a lot of times past year when we decided to redesign GeoNode
00:44
from I would say from scratch in many ways, because GeoNode is a project that is coming from well it has 12 years now, 13 years, which passed many hands and many developers and many things piled up into GeoNode, so GeoNode was becoming too much crowded with a lot
01:07
of features, with a lot of functionality that was becoming not easy to understand and plain managed because it did too many things and with some cluttering, so what's GeoNode,
01:23
we asked ourselves last year and well GeoNode is basically both a product but also we want to make it a framework to build your special applications, so it's an end
01:45
party services and provide what we said actionable catalog data, so data that is, well its main focus is not the catalog services, although it provides catalog services and standard catalog services, but we wanted to push more on the side of making data
02:06
easily available to applications, custom applications, also external applications, so the driving force is where from one side make GeoNode easy, easier for users to use, with reducing
02:26
a lot the steps to make things and the complexity and so make everything or most important things one click away, and on the other side we wanted to improve all the REST APIs
02:43
and everything on the back end to easily adopt it into even wider context. So I won't go through all the capabilities that I guess many of you already know, it's
03:01
a catalog that make possible to create a catalog of core data, so documents and spatial datasets and build applications or visualizations on top of this data, so thematic maps, dashboards, geostories and on the other side provide standard OGC services and
03:23
ASW services on this data, so two headed application mainly. So you get local files, remote files, remote services, you get documents and datasets, these are the two main type of data that GeoNode handle, from this two type of datasets
03:46
that you build maps, dashboards or your own GeoApps, so we worked to make it easier to build your own application inside GeoNode with your custom models and so on.
04:00
And then you get from all the core application types and your custom applications, OGC services, REST API and HTML viewers inside the core clients, so the general client or outside of it as embeddable content in your third party websites or whatever.
04:22
So basically this is the flow. It is also a web framework which is based on Python and Django, Python and JavaScript because it's half and half, Python and JavaScript mainly, but of course the top part is GeoNode
04:43
itself but the GeoNode has a stack of services, the complete application when you deploy it is composed also of the other services, GeoServer, PyCSW and Postgres and other services.
05:00
So I will move fast. Currently we are at version 4.0. We released version 4.0 in the beginning of August, so it's the first stable version of the refactoring that we did.
05:23
So currently we have three versions in parallel but 3.2.3 is a deadline, so an end of life, so 3.2 is not supported any more. 3.3 is the current let's say long-term version which will end the end of life of 3.3 is
05:48
the end of this year, so December. And 4.0 will actually become the new long-term version, so we will keep the 4.0 for a long
06:01
time with 4.0 minor releases where we do mainly back port and back fixing and so on and new features that we are already working on will land into new majors of 4.1 that will happen in a few weeks, probably the first 4.1, a few months.
06:23
So 4.0 is the reference version at the moment and of course we cannot afford keeping three major versions, it's too much because there are huge differences between them in the
06:47
so that's why we are moving to the end of cycles for most of the three. You have three online demos that you can play, full featured demos, so you can register
07:03
and play with that, upload data, create applications. The master is the current development version, 4.0x is the current 4.0 branch, so it's the one that is more similar to the 4.0 that we have released and the 3.3 is the past version.
07:28
So from the point of view, I would divide the news between what changed for users and what changed for developers or system integrations, system integrators. So from the point of view of the user interface we dropped a lot of things.
07:45
We decided to declutter the UI, simplify, remove, overlaps, remove functionality, from our feedbacks were not so important and it was heavy to be maintained, so we decided to make a big huge clean up, refactor the client completely, now the client is based
08:10
on map store framework, which is a JavaScript React framework, which under the hood uses open layers and leaflet and so on, cesium.js.
08:26
Also we improved the mobile version of the UI and yeah, if some one of you knows the version 3, you know you have a landing page and you have to click at least four
08:41
or five, do four or five clicks to reach the preview of a resource or the full view of a resource. Now everything is, I mean we put most of the functionality into a single page application, we have a single page application for the main catalog, where you have access to infinite
09:02
scroll of resources, by default you have everything sorted by date, you have everything in the catalog in a single view, you can scroll it, at the same time you can filter, so with facets let's say, filter is completely configurable, so everything that you see
09:23
here was designed to be adapted, changed, configured for custom applications, so you can customize the filters, you can customize the placement of things, you can customize colors, prints and so on. So in the single view with a few clicks you get filtering, you get in-line previews,
09:51
live previews of the data, so you just click and you keep clicking, so without having to move to the preview page and go back to the catalog, so you can like a Google search,
10:02
you just move around. You can have a list view, so it can become a personal workspace because you can filter by your own resources, so if you see this like your workspace, it's also your workspace, so it can be many things, this single page.
10:23
It's been openised for mobile, so we removed some functionality for the mobile because they don't make sense, so we make a lightweight version, and we have integrated viewers, so when you are in the home page and you click view, you go straight to the view
10:44
of the data set or the document with a full page review, either if it's a document or a map or a data set. You have the main information, so the main metadata on the side with few information and then you can expand it and get the full list, so here you have the, and all
11:05
the tools, all the actions that you can do on these resources are on the top bar, so without having all these things spread as it was before, of course everything depends on your permissions on these resources. We have improved the styling of the Mathematica maximum layers, so you have an integrated
11:26
style editor which is quite advanced, it's based on the SLD and the specific SLD extensions that we provide. The metadata editor has been improved also, we have a wizard version which
11:44
just offers the minimum set of information that probably most users will enter, so it's easy to go through and get the green bar saying if the minimum expected information is filled or not, you are not blocked, you are not forced to enter anything, but if you
12:05
have the green light it means that your metadata is at least a doubling core compliant. We have improved the Saudi, well I'm not going too deep into this, but we have improved
12:22
the model, the metadata model to let you extend the data models easily for the metadata, so you can for example adapt or extend the metadata model to adapt it to data site to whatever, so whatever model you have behind the schema for the metadata, and we also
12:45
extended the DOI support, but I won't say more on this. Upload is easier now, there was a lot of options before, now it doesn't have any option, you just drag your file on the side by click upload and you are done. So we support shape
13:03
file geogism, geopackages in a few weeks, full geopackages with testing 3GB, 4GB of geopackages with dozens of layers, everything imported in batch, rasters and documents and so on.
13:20
You have the permission system is completely changed, there was a lot of permissions before you had to understand what each permission meant and you assigned users to that permissions, now it's reverted, now you have the list of users and you simply say if the user or the group can view, edit, manage, so three permissions which group together all
13:45
the fine grain permissions that we had before. And you also have geofencing, so the ability to set permissions by special accidents. Dashboards have been improved because we are leveraging the map store framework which
14:04
provides dashboards, so as map store provides new widgets to the dashboards also you don't get these new widgets and the geostores, also the geostores have been improved also with a new sync mechanism that lets you, the geostores in the dashboards
14:21
applications are a free version of the data that you used when you created them. So if you want to update them afterwards because you changed the backend data, so the dataset, the style in the dataset and so on, you can synchronise these applications and they will pull the new versions. So another big addition is the QGIS plugin, the QGIS plugin takes information from any
14:53
general instance through the general REST API, so you can search it, search for rasters and vectors, depending on the permissions because it has authentication, OAuth 2 or
15:04
SQL, you can pull only the image, so the WMS service or you can pull also the WFS, use the WFS and the WCS services to get the data, so work on the data on QGIS and commit the changes directly to GeoNode, so data editing or style editing, so you
15:26
can also style your data in QGIS and then commit your styles to GeoNode or create new datasets from QGIS, you have your vector layer and you just upload it to GeoNode from QGIS. We also introduce harvesters, harvesters is a mechanism
15:46
that lets you harvest from whatever source, so harvest the data either as references to the remote resource or if the harvesting supports it, you can also pull the data, so clone the data locally. We have harvesters for WMS
16:01
services, for RGS REST services, for other GeoNode instances, soon we will have a harvester for standard CSW services, so you can schedule and define fine-grained configurations for the harvesters, so what you want to pull, how much frequently filtering by strings or type of datasets, it will take this
16:29
data, promote and update the local metadata information inside your GeoNode instances, so it can be used to become sort of a hub, GeoNode can be a hub of many GeoNodes or other WMS services, so there's a lot, I mean the
16:47
documentation says everything and all the remote services, something similar was available also before, the remote services is just now a thin layer on top of the harvester, so it's a simplified version, simplified view configuration of
17:02
the harvester. For integration, for external system, we worked with fully new REST API based on Django REST framework, before we had only get a read-only API basically, now we have a crude REST API based on permissions
17:22
and security, strong security management, where you can manage almost everything in GeoNode, even if you are an administrator, you can even execute management commands which are commands provided by GeoNode that you generally do from the command line, you can also execute these commands from an API, so we
17:46
opened up all the GeoNode internals through its REST API and soon in this week we also create a new page on the documentation with examples of using this API for changing the resource, changing permissions, creating users,
18:00
editing users, editing groups, whatever, so this was one of our goals, make GeoNode even headless, so without a client, use it headless as a service provider and data provider, so you can keep it on your back-end side and just build things on top of its APIs. The API is completely documented also as
18:30
Open API 3, so Swagger and so on. What's new for developers? For
18:40
developers, well, we have make an hybrid application, so depending on front-end developers or back-end developers. For front-end developers, we put a big effort to not make the client completely, a complete single page application
19:01
bundled in a single application, a React application, which would be hard for several community contributors or developers to contribute to, because Maps is complex, React, not everyone wants to use React and so on, so we just
19:22
use the single page application for the core features that we think that should be that way and that don't make much sense to be changed. You can configure colors, theming, but the functionality is there, but these applications that are inside GeoNode, they are hosted in a shell that is
19:45
simply Django template pages, which means they are just HTML pages that you can easily program on the back-end with the Django template system that we also knew from GeoNode 3, so we didn't lose the ability to create custom
20:04
pages, adapt, completely change your pages, so you can completely change the presentation of GeoNode, but keep all the core client functionality or use it in
20:24
your own places of the pages. From the side of the back-end, and I'm done, we have extended the resource models and the GeoApp models to let you put all the things that you want to do, even trash. You have some blobs, some areas where
20:45
you can put your JSON schema to adapt the model of your resources to your needs, to your applications, and the REST API will be able to use those custom fields, return them through the REST API. Our effort was to make it the
21:08
most flexible as possible compared to version 3. That's all, I think. I won't say this. I say that. It's a branding and theming, custom pages, and even
21:24
custom client plug-ins, yes. We can create custom maps or plug-ins without having to bundle them into the GeoNode client. You can just keep it in your projects, even your private repo, and then let the maps or client pull those plug-ins and integrate into there. A lot of things, GeoNode 4. If you're
21:45
using older versions, please upgrade soon. We are pushing forward to make our clients upgrade their versions because soon we will drop support for 3.3. Thank you for your presentation.