Skip to content

Infrastructure

MapStore leverages a full separation of concerns between the backend and the frontend.

The frontend is a Javascript web application communicating with MapStore own web services using AJAX and external ones through an internal, configurable, proxy.

The backend is a suite of web services, developed in Java and deployed into a J2EE container (e.g. Apache Tomcat).

General Infrastructure

Frontend

The frontend is based on the ReactJS library and the Redux architecture, which is a specific implementation of the Flux architecture.

Flux infrastructure

It allows plugging different mapping libraries (with Leaflet and OpenLayers as our first implementation targets) abstracting libraries implementation details using ReactJS web components and actions based communication.

MapStore - Frontend

Backend

Backend services include at least (but not only) these ones:

  • Generic, configurable, HTTP-Proxy to avoid CORS issues when the frontend tries to communicate with external services, based on the GeoSolutions http-proxy project.
  • Internal storage for non structured resources (json, XML, etc.) based on the GeoSolutions GeoStore project.
  • Configuration services, to allow full application(s) and services configurability
  • Security with the ability to configure authentication using an internal or external service, and a flexible authorization policy for services and resources access.

MapStore - Backend