What is AEM?

  • Enterprise web content management system
  • Framework for building website, mobile apps, forms and more
  • Includes content, asset, mobile app, community and form management features
  • Integrated solution within the adobe marketing cloud

Key Principles

  • Favor modularization and componentization
  • Hierarchical and unstructured by default
  • Multi-tier architecture
  • Focus on content and authors

AEM Architecture

AEM-Architecture

Open Source Foundation

Granite

  • Adobe platform to build robust, scalable application
  • Adobe’s open web stack and AEM is built on top of it
  • Granite is open development but not open source
  • Application Launcher
  • OSGI Framework: Bundles; Apache Felix is open source implementation of OSGI
  • OSGI Comendium Services for building application: Logging, HTTP, Event Admin services etc.
  • Logging Framework for various APIs: SLF4J, Log4F, Apache Commons Logging and OSGI Log Services
  • JCR API Specifications: Based on Apache Jackrabbit
  • Apache Sling Web Framework

Java Content Repository (JCR)

  • Database that supports structured and unstructured content, versioning and observation
  • All data pertaining to AEM – HTML, CSS, Javascript, Java, Images, Videos are stored in JCR Object Database
  • AEM uses Jackrabbit Oak which is complementary implementation of JCR specifications
  • Tools like CRXDE is used
  • Advantages of JCR:
    • Best of both file system and database storage
    • Support namespaces that prevent naming collision among items and node types that come from different sources in application domains; Defined by a prefix delimited by a single colon for e.g. jcr:title

Apache Sling

  • Open Source web application framework for content centric applications and use JCR to manage and store content
  • Its based on REST principles and help build applications as series of application as OSGI bundles
  • Everything is a resource for sling; Every URI in AEM, it maps to a JCR node (Resource). Each request is resolved to a resource that selects a servlet or a script to handle to handle request

Developer Tools

Web Console

  • Based on Apache Felix Web Management console
  • Used to manage bundle and configuration
  • Automatically applying changes without restart

Access the Web Console

AEM-Webconsole-1
AEM-Webconsole
  • Bundles menu is used for installing and managing OSGI bundles
  • Components menu is used for managing and controlling the status of components required for Adobe Experience Manager
  • Configuration menu used for configuring OSGI bundles, and is the underlying mechanism for configuring Adobe Experience Manager parameters

CRXDE Lite

It is a lite console embedded in AEM and allows us to perform common administration tasks directly in the browser. Typically, when we need to perform administration or development involving nodes or properties in JCR, CRXDE lite is the preferred tool. It gives direct access to JCR for monitoring, configuration and development.

Access the CRXDE

  • Top Switcher Bar
  • Explorer Pane
  • Edit Pane
AEM-CRXDE-1
AEM-CRXDE-2
AEM-CRXDE-3

Working with Packages

Its a zip file that holds repository content in the form of a file system serialization called “vault” serialization. Packages provide an easy to use and edit representation of the files such as pages, assets and folders. An AEM package can hold many different things such as page related content, project related content, digital assets such as videos/ images. A package also has a vault meta information such as filter definition and import configuration information. Packages enable us to import or export repository content.

AEM-Packages

Use package manager through browser/ API or use package share that is a centralized server with private and public packages. Package share provides access to packages provided by adobe as well as shared packages provided by other companies and made public by adobe.

Package Manager Options:

  • Rebuild: Helps rebuild package if there is a change in repository content.
  • Edit: Helps edit filters or rules applied to a particular package.
  • Test: Helps perform a dry run of the installation.
  • Rewrap: Helps recreate the package with additional information such as thumbnails/ icons.
AEM-Pkg-Mgr-1
AEM-Pkg-Mgr-2
AEM-Pkg-Mgr-3

Downloading packages:

  • Can download package from within package manager
  • Unzipping content of packages will contain: jcr_root, META-INF (Contains meta data regarding node definitions and a filter xml file that gives directions to file vault about what to include)

Reference

PluralSight Adobe Learning Course