AEM Technology stack
There are 4 parts which AEM is comprised of
a. JRE
b. Granite
c. AEM Modules
d. Custom Modules
|
image
source: https://prezi.com/i97-ptdowxfi/aemcq-architecture/ |
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