In this AEM Dispatcher publication, I would like to give a general view on what Dispatcher is and why we need it. This will give a better understanding of what we are going to configure in the following parts.
There are two basic approaches to web publishing: static web servers and content management servers.
Static Web Servers
Static Web Servers, such as Apache or IIS, are very simple and fast. One of the greatest features of the static web servers is that they are expandable by third party plugins.
The first static web servers were created at the dawn of the internet age in mid-90’s.
One of such web servers is Apache HTTP Server (“httpd”). Launched in 1995, the Apache HTTP Server became the most popular static web server in April 1996 and has since been the most popular Internet web server. February 2015, marked the server’s 20th birthday. The Apache HTTP Server creation became very important for open source world which includes Java open source software. This server was created by 10-15 developers which formed the original Apache Group. In 1999 members of the Apache Group formed the Apache Software Foundation (ASF) which greatly expanded the number of Open Source software projects. These Open Source projects simplified java application development. Some notable examples from Apache Open Source include felix (OSGi implementation), jackrabbit (JCR implementation) and sling. All of these are used in AEM.
Content Management Servers
Content Management servers are the second approach to web publishing. They provide dynamic, real-time, and intelligent content, but require more processing and other resources.
We are using the 2nd approach by default when working with AEM. Minimal environment configuration for web publishing with AEM consists of two AEM instances: author and publish.
The Dispatcher combines the speed of Static Web Server with the flexibility of Content Management Server. The dispatcher operates as part of a static HTML server (such as Apache). In other words, the dispatcher is only a 3rd party plugin (plugins are called “modules” for apache httpd) for static web servers. This plugin was written by Adobe.
Such environment provides caching with the aim of:
- storing (or “caching”) as much of the site content as is possible, in the form of a static website;
- accessing the layout engine as little as possible.
It means that:
- static content is handled with exactly the same speed and ease as on a static web server; additionally you can use the administration and security tools available for your static web server(s);
- dynamic content is generated as needed, without slowing the system down any more than absolutely necessary.
The dispatcher contains mechanisms to generate and update static HTML based on the content of the dynamic site. You can specify in detail which documents are stored as static files and which are always generated dynamically.
In addition to caching the dispatcher delivers benefits of load balancing. Load Balancing is the practice of distributing the computation load of the website across several instances of AEM. You gain increased processing power and increased fail-safe coverage.
The main goals of the dispatcher:
- Load balancing.
The dispatcher provides such additional goals like:
- Request processing management.
You may study more detailed documentation in the following page: https://docs.adobe.com/docs/en/dispatcher.html