evolve'16 | deploy | abhishek dwevedi | overview of the core aem technology
TRANSCRIPT
#evolverocks
Overview of the core AEM technology ABHISHEK DWEVEDI
August 31st, 2016
2#evolverocks
Overview of the core AEM technology
1. Adobe Experience Manager Capabilities2. Architecture Stack3. Jackrabbit Oak4. Java Content Repository5. Apache Sling6. OSGi
3#evolverocks
AEM Modules and Capabilities
4#evolverocks
The Architecture Stack
Java Content Repository (JCR)
Apache Sling
Adobe Experience Manager
OSGi
5#evolverocks
Jackrabbit Oak
Jackrabbit Oak is an effort to implement a scalable and efficient hierarchical content repository for use as the foundation of modern world-class websites and other demanding content applications.
6#evolverocks
Goals : Jackrabbit Oak• Scalability
• Big repositories
• Distributed repository with many cluster nodes
• Improved write throughput
• Parallel writes
• Support for many child nodes
• Support for many Access Control Lists (ACLs)
• Implement standards like JCR, WebDAV, and CMIS.
• Easily accessible from various platforms, especially from JavaScript clients running in modern browser environments.
• More out-of-the-box functionality than typical NoSQL databases
7#evolverocks
Oak Architecture (Hamburger Architecture)The burger’s top bun: Oak JCR• Implements the JCR API • Now implemented for JCR - Non-Java implementations possible and part of the
concept
The burger’s patty: Oak Core• Where most of the heavy lifting takes place• Adds to the MK’s tree model (ACLs, search, and indexing)• Observation• Exposes a decorated tree model• Mostly transforms JCR semantics into tree operations • Also contains ‘commit hooks’ that implement JCR constraints, for example,
node types
The burger’s bottom bun: Microkernel• Implements a tree model (nodes and properties)• Exposes the Microkernel API
8#evolverocks
Introduction to the Java Content Repository
• JCR is a database that looks like a file system. It is unstructured, and enables versioning
and observation.
It provides services such as full-text search,
indexing, access control, and event
monitoring.
• The Adobe implementation of JSR-283 is the Content Repository eXtreme (CRX)
9#evolverocks
Introduction to Apache Sling
• Key principles: Web application framework Content-oriented (JCR-based) application development RESTful
• Sling is resource-oriented, where every resource has a URL. • Processing of a request is done by
Checking whether the URL resolves to a content object (resource) for which a script can be found to render the content
Mapping a JCR node to the resource
11#evolverocks
OSGiWhat is OSGi? A set of specifications that define a dynamic component
system for Java
Specifications enable: A development model where applications are (dynamically)
composed of many different (reusable) components components to hide their implementations from other
components while communicating through services, which are objects specifically shared between components
A collaborative software environment The application emerges from assembling multiple reusable
modules that have no previous knowledge of each other.
12#evolverocks
OSGi Bundles Packaged as JAR files
With extra metadata - the manifest
OSGi bundles can contain: Java code scripts content configuration other files
Bundles can be loaded and installed during normal operations. Installation in the CQ5 environment through:
folders named install the Web Console
#evolverocks
THANK YOU!