Introduction to AEM Architecture

DevJunctionPoint
0

 

AEM Architecture Stack


We learned the basics of AEM and how it functions as a CMS platform in the previous article. Let’s explore the technology stack that was used to create this kind of software in this post, going through each layer one at a time.

OSGi Java Container

OSGi formerly known as the Open Services Gateway initiative. It offers a controlled, general-purpose Java framework that facilitates below features listed.

  1. OSGi framework allows us to install, update, and download the bundles dynamically
  2. It offers feasibility for the bundle developer to benefit from Java’s platform independence and dynamic code-loading capability in order to quickly create services for small-memory devices
  3. OSGi framework is further divided into different layers to provide different functionalities like the security layer, module layer, service layer, life cycle layer, and application layer
OSGi Layers

Let’s briefly discuss the purposes of each layer so that we may follow and understand them.

Security Layer

It is based on Java security which adds number constraints and limits the bundle functionalities based on the permissions given on the bundles or services. It is managed by the life cycle layer in the OSGi not by itself.
It provides the infrastructure to deploy and run the application in fine fine-grained controlled manner.

Module Layer

The Module Layer defines a modularization model for Java development. It provides the strict rules for sharing and hiding the Java packages from one bundle to other bundle.
Bundle is an example for a unit of modularization in the OSGi framework. They are the compiled classes and packaged as jar files with some additional metadata that describes how the bundle should be exposed and used by other bundles.
The life cycle layer provides APIs for managing the bundles and these bundles can be started, stopped, and installed independently without compromising the other bundles.

Java Content Repository (JCR)

JCR is a content repository that supports storing of structured and unstructured content in the hierarchy model (similar to the file system model)

Java content repository

JCR is using the standard specifications of JSR and over a period of time new standards are introduced to support more features around JCR (JSR 283 and JSR-333)

Principles of JCR

  1. We have a common programmatic interface for accessing the content
  2. An API based which does not involve or connect to the underlying architecture
  3. JCR is organized as a hierarchy or filesystem model which is easy to access and maintains the content.

JCR Features

  1. Storing in binaries
  2. Single and multi-valued properties
  3. Locking the content
  4. versioning
  5. Access control
  6. Querying
  7. Structuring
  8. Event and Observation of content

JCR Hierarchy structure

JCR is all about the hierarchy structure which contains nodes that are similar to files and properties which are data in the files which is shown in the below image.

Nodes and properties
JCR nodes and properties

Apache Sling

Sling is a web application framework designed to develop an application that uses JCR as the datastore.

Sling Features

  1. It uses RESTful principles and provide web API’s which is used by content-oriented applications such as AEM.
  2. It is resource-oriented and resolves the resource to JAVA objects which is used to read or fetch the data from JCR
  3. Sling decomposes the JCR path to a resource and fetches the script which is responsible for rendering the content for user on the web page/component



Tags

Post a Comment

0Comments

Do leave your comments

Post a Comment (0)

#buttons=(Ok, Go it!) #days=(20)

Our website uses cookies to enhance your experience. Check Now
Ok, Go it!
To Top