In the previous post, we discussed basics of AEM and the reason behind its hype in the Digital Marketing space. In this post, we will go a bit more technical and will try to understand the architecture or the basic building blocks of AEM.
Hence, without wasting more time, let’s dive into the AEM architecture.
Java Runtime Environment (JRE)
Since AEM is built on Java platform, JRE is required to run an AEM based application. JRE is a part of Java Development Kit (JDK) that contains and orchestrates the set of tools and libraries which are required to run a Java application.
Granite is Adobe’s Open Web Stack. A web stack is nothing but a compilation of software applications, often needed for web development i.e., for the development of web apps and websites.
We all know any web application requires a server to run, duh 😒. This server may be Tomcat, Jetty, JBoss etc. AEM jar file installation uses Apache Jetty which is packaged inside the jar. When we install AEM using jar, the AEM as a web application runs on Jetty.
Now, you might be asking what on earth is OSGi (pronounced as “Oh-es-gee-eye” and not “Osgee”)? It is nothing but a set of specifications/rules that defines an architecture for modular applications. In other words, using OSGi we can break our complex applications into simpler modules and can easily manage dependencies among them.