1. Architecture of the CMS Ametys


Introduction

CMS Ametys consists of 3 applications:

  • Back-Office (cms)
  • Front-Office (site)
  • Indexing and search (solr)

The 3 applications can coexist on the same server, and each can also be installed on a different hardware platform.

The back-office application is accessed by contributors for modifications to the various content managed by Ametys. It takes the form of a web application deployed on a Apache Tomcat application server.

The front-office application is accessed by visitors to websites. It takes the form of a web application deployed on a Apache Tomcat application server. Its main function is to manage a cache of all resources requested by users. Resources not present in the cache are requested from the back-office application.

The indexing and search application, based on the Apache Solrtool, is started up independently of the other applications. It is not accessed directly byAmetys users, but in the background by the back-office application.

 

The Tomcat servers are usually accessed via a reverse proxy, often set up in conjunction with the Apache HTTPD server.

 

Data flow

Page requests from users are received by Apache. Apache serves static files such as CSS, images, non-dynamic pages... and redirects other requests to Tomcat.

Back-office and front-office communication is carried out in both directions via web-services:

  • Back-office must be able to override the front-office cache
  • The front office must be able to request the production of a resource in order to cache it and serve it to the end user.

 

If the back-office and front-office are installed on the same server, they can be run either on a single server Tomcat or on two Tomcat separate servers.

Data sources

CMS Ametys manages several "data sources". A standard installation follows the following architecture:

Databases are not necessarily located on the same server as applications. However, for performance reasons, it may be advisable to have at least the JCR repository placed on the same machine as CMS.

Back-Office

The CMS application references at least two data sources:

  • JCR It contains the main data, i.e. site structure, pages, content, resources, etc.
  • SQL This database contains secondary data such as the definition of populations, groups and users, profiles, some rights, etc. There can be several SQL databases, notably to separate certain data, and several types of database are supported, such as MySQL, Oracle, etc.

Front Office

The front office can use one or two databases SQL :

  • One for sotcking front-office user information (users, groups, preferences, etc.).
  • The other (optional) is used to store information useful to the cache analyzer

 

Users and groups
Whether in the front or back office, the location of users and groups depends on the implementations chosen.
CMS Ametys allows you to choose other implementations, for example LDAP.

Solr

In the background is the Solr application, in which all data is indexed. This application enables efficient searches with multiple criteria and faceted management.

Only the back office uses this application.

 

Cache management

A request (page request or search) launched on the front-office (site) follows the following flow:

When modifications made on the back-office side (CMS) have an impact on site pages, the site sends a request to the front-office to partially or fully invalidate the cache.

Additional information

The back office uses the followingURL schemes to talk to the front office:

  • _invalidate-site/*

  • _invalidate-skin/*
  • _invalidate-page/*/**

  • _invalidate-images/**

where * = any character except '/' and ** = any character including '/'.

So if you want to prevent a component outside the application from clearing the cache, there are two solutions:

  • Make sure these URLs by Apache and ensure that the CMS talk to Tomcat the front office directly.
  • Protect these URLs so that they can only be accessed by the IP of the back-office application.

 

Notes and Recommendations
- The recommended HTTP server is Apache HTTPD.
- The recommended J2EE servlet engine is Apache Tomcat .
- The JCR implementation used internally is Apache JackRabbit .
- The recommended SQL database is MySQL. However, Oracle and Derby are also supported (PostgreSQL is incompletely supported at present).



Back to top

Installation and operation manual