evolve'16 | deploy | abhishek dwevedi | overview of the core aem technology

12
#evolverocks Overview of the core AEM technology ABHISHEK DWEVEDI August 31 st , 2016

Upload: evolve-the-aem-community-conference

Post on 13-Jan-2017

90 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: EVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM Technology

#evolverocks

Overview of the core AEM technology ABHISHEK DWEVEDI

August 31st, 2016

Page 2: EVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM Technology

2#evolverocks

Overview of the core AEM technology

1. Adobe Experience Manager Capabilities2. Architecture Stack3. Jackrabbit Oak4. Java Content Repository5. Apache Sling6. OSGi

Page 3: EVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM Technology

3#evolverocks

AEM Modules and Capabilities

Page 4: EVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM Technology

4#evolverocks

The Architecture Stack

Java Content Repository (JCR)

Apache Sling

Adobe Experience Manager

OSGi

Page 5: EVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM Technology

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.

Page 6: EVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM Technology

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

Page 7: EVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM Technology

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

Page 8: EVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM Technology

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)

Page 9: EVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM Technology

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

Page 10: EVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM Technology

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.

Page 11: EVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM Technology

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

Page 12: EVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM Technology

#evolverocks

THANK YOU!