Introducing Carmenta Server Core

The Web Map Server for Docker containers

Carmenta Server Core is the first map server designed to natively support Docker containers. Building on the widely used and battle-proven Carmenta Server 4 for Windows Server, Carmenta Server Core allows deployment of map services as small and portable Docker containers. This enables all the advantages and benefits of virtualisation on the container platform, such as:

  • Consistent runtime environment, allowing maximum portability between different environments (testing, staging, production) running on different operating systems and hardware.
  • Application sandboxing, allowing different map services to be deployed and scaled completely independently of one another, ensuring maximum availability.
  • Low overhead, allowing optimised resource utilisation and dynamic scaling depending on current demand and requirements.

Compared to virtualisation using traditional Virtual Machines, Docker containers offer operating system virtualisation instead of hardware virtualisation.

Virtual Machines
Containers

In summary, traditional Virtual Machines and Docker containers have the following characteristics:

Virtual Machines

  • HW virtualisation, each VM runs its own OS
  • Virtual Machines are run by Hypervisor
  • Large size (GBs), long start-up time
  • Image snapshots (large) may be saved and re-used

Containers (Docker etc.)

  • OS virtualisation, containers share host OS kernel
  • Container Engine (Docker) runs containers
  • Much smaller size (MBs), short start-up time
  • Many more containers than VMs on same HW
  • Portable, isolated and easy to scale dynamically

Modern Architecture

Carmenta Server Core builds on the traditional Carmenta Server 4 for Windows Server and shares the same codebase. This allows Carmenta Server Core to combine the advantages of a mature, reliable and proven product that has been used in mission-critical customer systems for many years, while at the same time target today’s modern deployment environments, in the cloud or on-premises.

The shared codebase has been moved from .NET and ASP.NET to the modern open-source frameworks .NET Core and ASP.NET Core, allowing Carmenta Server Core to target both Linux and Windows environments, being able to use various Linux and Windows Docker base images.

Carmenta Server Core shares its architecture with Carmenta Server 4, and is designed for the highest performance and reliability by using the latest version of Carmenta Engine, Carmenta’s reliable and optimised map engine runtime, for all processing and rendering tasks.

The architecture supports:

  • Native support for more than 70 geospatial data formats out of the box, with the possibility to extend this to virtually any data source by using custom data readers.
  • Real-time processing, rendering and visualisation of geospatial data using the Carmenta Engine map engine.
  • Scaling up internally using multiple map server instances in a single container, to fully utilise available system resources such as CPUs and memory.
  • Internal tile cache in memory and on disk, for raster and vector tiles, to maximise throughput and performance.
  • Support for numerous standardised geospatial web services, allowing compliant clients from various vendors to access and consume published services.

Docker Support

Carmenta Server Core is delivered as a set of different Docker images based on the following base images:

  • CentOS
  • Ubuntu
  • Windows Server Core

This allows Carmenta Server Core to be deployed on a number of different platforms – both physical and virtual servers as well as hosted and on-premises cloud infrastructure, including:

  • CentOS
  • Ubuntu
  • Windows Server (version 1803 & 2019)
  • Amazon ECS
  • Azure (ACR, ACI, AKS and Web App for Containers)
  • VMware Enterprise PKS

Carmenta Server Core supports various Docker orchestration frameworks such as Docker Swarm and Kubernetes, which allow automated deployment, scaling, upgrades and management of Carmenta Server Core containers and services.

Custom Images

The Carmenta Server Core images may be used for starting Docker containers as they are, or used as base images for custom images.

Carmenta Server Core containers may read their map configuration files and geodata from a shared mounted volume, or from local files contained in a custom image.

The internal Tile Store tile cache service may store its cached tiles internally in the container’s file system, or on a shared mounted volume.

Configuration

All configuration of Carmenta Server Core containers may be done using environment variables, either built into custom images, supplied at start-up time as command line arguments or with supplied settings files.

Map services may be published or unpublished automatically when a Carmenta Server Core container is running, by adding or removing map configurations files in runtime.

For verification of published map services and their exposed interfaces, Carmenta Server Core containers contain two built-in ASP.NET Core, JavaScript-based web applications:

  • Service List: Displays all published map services, their exposed interfaces and links to capabilities documents and relevant endpoints for client applications to use.
  • Carmenta Web Explorer: An advanced map previewer, allowing map services to be combined and visualised, with support for enabling and disabling individual map layers. Supports both 2D and 3D maps using the OpenLayers and CesiumJS opensource JavaScript libraries.

Deployment Scenarios

Carmenta Server Core supports a number of different deployment scenarios, with regards to scaling and distribution of different published map services in Docker containers and Docker services:

  1. Single container containing all map services published. Allows scaling up internally in the container using multiple map server instances.
  2. Multiple containers, with different map services published. Allows scaling up internally in the containers using multiple map server instances per container.
  3. Multiple containers, all with the same map services published. Allows internal scaling up, as well as scaling out over single Docker service, using an orchestrator.
  4. Multiple containers, with different map services published. Allows internal scaling up, as well as scaling out over multiple Docker services independently, using an orchestrator.

Standardised Web Interfaces

Carmenta Server Core supports a large number of standardised and open web interfaces for client access of published map services. This includes a large number of interfaces published by the OGC (Open Geospatial Consortium), where Carmenta Server Core has certified support for the most important.

OGC Interfaces

Carmenta Server Core has certified compliance for the following OGC interfaces:

  • WMS (Web Map Service), versions 1.1.1 and 1.3.0 – for retrieval of raster images, including tiled raster images using the WMS-C standard.
  • WMTS (Web Map Tile Service), version 1.0.0 – for retrieval of tiled raster images.
  • WFS (Web Feature Service), versions 1.1.0 and 2.0 – for retrieval of vector data (geometries and attributes). The additional standard WFS-T (WFS – Transaction) provides transaction support for modification of features on the server. In addition, visualisation and Symbol services make it even easier for clients to display the vector features.
  • WCS (Web Coverage Service), version 1.1.1 – for retrieval of general raster data, for client processing or visualisation.

In addition, Carmenta Server Core supports the following OGC interfaces:

  • WMC (Web Map Context) – for retrieving overviews of published map content.
  • OWS Context (OGC Web Services Context) – for retrieving bookmark information.

Other Web Interfaces

In addition to the OGC interfaces, Carmenta Server core also supports a number of other de facto standards, such as:

  • MVT (Mapbox vectorTiles) – for retrieval of tiled vector data, cacheable and optimised for different scale levels, with a compact transmission format to minimise bandwidth usage.
  • Cesium 3D Tiles – for retrieval of detailed heterogeneous 3D geospatial data, to display detailed city models, for instance. 3D Tiles can be generated from data sources containing detailed models such as Collada, glTF, 3ds etc., or be generated from elevation and vector data to visualise building polygons, for instance.
  • Cesium Terrain – for retrieval of elevation data on quantised mesh format, for use by CesiumJS map clients.

Spatial Analysis Functions

Carmenta Server Core supports a number of spatial analysis functions, which can be used to generate map layers visualising the result of the analysis. Examples of analysis functions include:

  • Visibility Analysis – performs visibility calculations such as line of sight
  • Vertical Profile Visualization – generates a vertical profile along routes, cutting through both terrain and vector data sources such as airspaces
  • Vertical Clearance Analysis – Calculates the terrain and obstacle clearance in a corridor around routes
  • Heatmap Visualization – generates dynamic point density rasters, which can be visualised as heatmaps

Versions and Licensing

Carmenta Server Core is available as an SDK version for development, and a Runtime version for production use.

The SDK version is licensed for use on a single development PC, running Windows or Linux, and includes map configuration tools and Carmenta Server Core images for development and testing on the development PC.

The Runtime version is licensed for a specific maximum number of unique clients (computer hardware such as PCs, terminals, mobile devices etc.) that access a specific environment (production, staging, testing), a so-called Client Access License (CAL). No further restriction is imposed on the number of containers or other resources (number of CPUs etc.) used by the containers.