Skip to content

Infrastructure and general architecture

mbarto edited this page Sep 3, 2015 · 2 revisions

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

The frontend is a Javascript web application communicating with MapStore 2 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 3 as our first implementation targets) abstracting libraries implementation details using ReactJS web components and actions based communication.

MapStore 2 - 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 2 - Backend