What is Adobe Experience Manager (AEM).

Adobe Experience Manager (AEM) is Content Management System (CMS) tool by Adobe. Which can be used to create Websites, Mobile Applications and Website Forms. AEM gives a flexibility to use Reusable Templates and Drag and Drop features which makes it easy to use. 

Adobe Experience Manager can be integrated with other Adobe services like Adobe Analytics, Adobe Target and many more. Which makes it more comprehensive and advanced CMS system. In this article we will learn more about Adobe Experience Manager as a website building tool along with it's technology stack as well as simple AEM website architecture.

Adobe Experience Manager technology stack. 

AEM is built using open source technologies is like Open Service Gateway initiative (OSGi) framework, Java Content Repository (JCR), Apache Sling at its core.

Technology Stack in AEM
Fig 1. Technology Stack in AEM 

Let's see these pillars of AEM in detail. 

OSGi framework 

It is a fundamental element in the technology stack of AEM. At the core of OSGi is just a JAR (Java Archive) of classes which can be imported, exported as per need. These JAR files has manifest files which describes the content of JAR file and provide references for importing and exporting packages. 

Java Content Repository 

In simple words Java Content Repository (JCR) is a database for AEM which can be used to store AEM Content such as AEM Templates, CSS & JS files, webpages, Images and Media in the form of nodes. Each node contains properties which tells more about it, such as its parent node, script to render, logic properties for rendering etc. JCR can be accessed using CRXDE (Content Repository Extreme Development Environment) IDE in AEM. In CRXDE AEM user can add, change, modify the content as per need.

Apache Sling 

Apache sling is used to fetch the content from JCR in AEM ecosystem. It essentially crawls the JCR nodes for the resources specified via a page path. JCR nodes contains properties and usually highlights the script used to render the individual component. Sling crawls every component of the page which helps in creating a static HTML file of the page. The created HTML file then cached in Dispatcher and served as per user request.

A simple AEM Webpage 

To understand the Architecture of Website Built on AEM we need to know about the webpage in AEM ecosystem. A webpage in AEM is created under the content folder in JCR. Webpage contains one or more AEM components. AEM components points to HTL script (HTML Templating Language) which is essentially a script to create HTML using the properties of the respective node. HTML snippets of each component is combined to create a html file for the page.

A simple Architecture of Website Built on AEM

Elements of Website Architecture built on AEM
Fig 2. Elements used in Architecture of website built using AEM.

There are usually 4 elements present in the website infrastructure which is built on AEM. The elements are as per below 

Author 

AEM has Author and Publisher instances, instance is nothing but AEM software running on a server. Author instance is a server where AEM templates, CSS files, JS files, webpages, website media such as images, pdf's etc. are stored, modified and published as per the requirement. Once a webpage or any other file is published from AEM Author instance, it is replicated to AEM Publish Instance with the help of replicating agents. Since Author and publisher servers are separate it gives flexibility to make the changes in any file or page without affecting the live webpage. 

Publisher 

AEM publish Instance is a server where content activated by AEM user resides. When it comes to a webpage, activated content is fetched by Apache sling for the creation of HTML file based on scripts specified in individual AEM component. The created static HTML file is then sent to Dispatcher for caching to content. AEM publish instance responds to dynamic URL's requests such as web forms which AEM dispatcher cannot handle.

Dispatcher 

The Dispatcher in AEM is a static web server which is used to cache the static web files. If user requests a dynamic content which is not cacheable, the dispatcher sends the request to AEM publish server from where the dynamic content is served. By caching the static content AEM dispatcher reduces the load on AEM publish server. AEM Dispatcher contains a set of rules at its core which helps in combating web attacks like DDOS. In general AEM dispatchers run on Apache HTTP server Operating System. 

Load Balancer 

As the name suggests Load Balancer is used to effectively transfer the web traffic load as per the availability of servers. It reduces the overload conditions and keeps system under good health. 

Additional elements may be added architecture such as more number of publisher instances, more number of dispatchers as per the need or the traffic load on the website. A CDN (Content Delivery Network) can be configured as well to cache the data at the edge locations and serve as per request. The CDN resides outside of the AEM ecosystem and it is not a part of it. 

Feeling curious about a specific AEM topic or have any question about AEM in mind? Post your question in a comment below. Our AEM experts will be happy to assist you with the questions. Stay tuned for more informative blogs on AEM.

Comments

  1. Great information to start learning with👍Keep it up!

    ReplyDelete
    Replies
    1. Thank You Nilesh for your valuable feedback.
      Stay tuned for more informative blogs.

      Delete
  2. Hi Nitesh,
    If capacity of server is 100 and I have similar 4 servers and I have load balancer too
    If 600 requests came how load balancer acts at that spike ?

    ReplyDelete
    Replies
    1. Hi शैलसुत,
      In such a cases CDN (Content Delivery Network) will be very helpful, CDN cache the static web data on the edge locations and serve it based on request. If CDN is not configured then it will reach to AEM Load Balancer.
      AEM Load Balancer generally works on the basis of round-robin algorithm for balancing of load, It means it divides the requests evenly among the available servers (AEM dispatcher or AEM Publisher depending upon type of request). Now if the spike in requests comes, The AEM Cloud is highly scalable and it can automatically add extra servers to accommodate the spike in traffic.
      I hope this answers your question.

      Delete
  3. This comment has been removed by the author.

    ReplyDelete
  4. Hi sir,
    I have worked on Apache http server previously and I have a knowledge of it.
    I've just seen you have mentioned AEM uses Apache http server for caching and distributing the static files. Being experienced in Apache http server can I get a job in AEM, if yes what are the things I need to study.
    Please help me with this thing.
    Thanking you in advance.

    ReplyDelete
    Replies
    1. Hi,
      Yes, there is always a requirement for Apache http server related work so definitely there are positions for the same. The work includes writing dispatcher configurations, writing Dispatcher rewrite rules, Maintenance activities like restarting the server, flushing up the cache and so on.
      Being experienced in Apache http server related work definitely gives you a importance for the dispatcher related work requirements.
      As per my understanding if you want to work on the AEM dispatcher you need to learn about the Architecture of the websites built using AEM, Content Delivery Networks (CDN's), How they configure CDN with website. AEM Author, Publish Instances and their use in the entire architecture and some knowledge of Networking. This much of knowledge is sufficient to begin the work but eventually you need to upskill in AEM which will help you to become AEM Architect.

      Delete
  5. Hello Sir,
    Very informative blog, it gave me basic understanding of AEM as a CMS and website building tool.
    I am experienced in React. I am looking for guidance on the React and AEM integration. Where I can learn more about it.
    Please let me know.

    ReplyDelete
    Replies
    1. Thank You for your comment.
      We appreciate your valuable feedback.
      To learn more about AEM and React integration the best material to refer is none other than Adobe's own site that Experience League. I am providing a link below FYI.

      https://experienceleague.adobe.com/en/docs/experience-manager-learn/getting-started-with-aem-headless/spa-editor/react/overview

      Stay tuned for more informative blogs on topic of AEM.

      Delete

Post a Comment

Popular posts from this blog

Important Questions & Answers on Articulation (Part 1)

Important Questions & Answers on Articulation (Part 2)

Important Questions & Answers on Articulation (Part 7)

Most asked questions for Generative AI