Tuesday, 28 March 2023

AEM Technology Stack

AEM Technology stack

 

There are 4 parts which AEM is comprised of

a.       JRE

b.       Granite

c.       AEM Modules

d.       Custom Modules

 



 

1.       JRE

AEM is a Java based web application, therefore needs an environment where JSPs, JARs, Java files and other Java utitlities to run. JRE provides the server side execution environment for AEM to run.

 

2.       Granite Platform

AEM is built on top of Granite platform, Granite is Adobe’s open web app development stack.

 

The platform provides below modules

a.       Servlet engine – AEM needs an application server that supports Java servlets API version 2.4+. The AEM software package is available in 2 forms

a.       Standalone JAR – self executable JAR, having built-in servlet engine. You don’t need any application server, as it comes built in, but the JRE needs to be set up before the .jar file is run.

b.       Deployable WAR – a .war package without servlet engine, which needs an application server to be deployed on and run. The application server acts as a servlet container to handle lifecycle of servlets and requests.

b.       REST Framework

Apache Sling a Web application framework based on REST principles that provide easy development of content-oriented applications. Sling uses a JCR repository, such as Apache Jackrabbit, or in the case of AEM, the CRX Content Repository, as its data store.

From Apache Sling’s authentic documentation, Sling maps HTTP request URLs to content assets based on the request’s path, extensions, and selectors. Choosing convention over configuration, requests are handled by contents and servlets, progressively chosen, considering the present asset. This encourages significant URLs and asset-driven request handling, while the modular aspect of Sling allows specific server occasions that include relevant information.

c.       OSGi Framework

OSGi (Open Service Gateway Initiative) is a Java framework for developing and deploying modular software programs and libraries. OSGI is modular system which implements a dynamic components / applications in form of bundles. AEM makes use of OSGi framework. Majority of AEMs backend business logic is running on top of OSGi framework inside bundles.

A bundle is a jar file holding Java classes and a special metadata file (META-INF subfolder). Applications or components coming in form of bundles installed, started, stopped, updated, and uninstalled without requiring a reboot of whole AEM application. Each bundle(component/application) is a tightly coupled, dynamically loadable collection of classes, jars, and configuration files that explicitly declare their external dependencies.

OSGi framework, elements of AEM as well as any additional custom applications on top AEM platform are implemented in OSGI bundles.

d.       JCR Repository

A webpage is comprised of text, image, videos, logos, PNGs, GIFs, icons, JS ,CSS, HTML etc. Where in AEM it is stored? Answer is the JCR repository. CRX, Adobe's proprietary implementation of the Java Content Repository (JCR) specification, builds on top of Apache Jackrabbit and provides additional features and capabilities that are tailored specifically to Adobe Experience Manager (AEM). CRX offers a range of additional features and capabilities that are specifically designed to meet the needs of AEM users and provide a robust and scalable content repository for enterprise-level content management. Some of the key features that CRX offers on top of Apache Jackrabbit include:

                                 I.            Advanced caching mechanisms.

                               II.            Support for AEM-specific workflows and processes.

                             III.            Improved query performance.

                            IV.            Advanced security features.

                              V.            Support for clustering and load balancing

3.       AEM Modules

These are the AEM specific modules which form a part of CMS like Sites, Assets, workflows, Forms.

 

4.       Custom Modules/Code

On top of everything, the organization-specific code runs which is according to their specific needs. In the upcoming posts, we will be learning to do this only - creating custom code on top of AEM.


We will start going through each module/part of the stack which AEM is comprised of, in the further tutorials.

 


No comments:

Post a Comment

Dispatcher configurations in AEM - 2

 Dispatcher configuration 1. The Dispatcher configuration is stored in the dispatcher.any text file. 2. The file contains a series of single...