Thursday, 13 May 2021

AEM Architecture

 AEM Architecture

1) OSGI Java Container (Apache Felix)

- Used for modular development

- Provides various functionalities in form of model, components and services

2) JCR Repoistory/ Storage Layer (Apache Jackrabbit Oak)

- This repo is in form of hierarchical structure

3) Web Application Framework (Apache Sling)

- REST based web app framework

- Helps in comsuming and exposing content in JCR repo

- Helps in interacting with OSGI Java Container

4) Application Layer (AEM)

- Sites, Forms, Assets


*REST- ReST stands for Representational State Transfer.

Its stateless and uses HTTP protocol to performs all CRUD (Create/Read/Update/Delete) operations

............................................

Another Architecture

1) AEM Platform

- Content Repo, User Interface, Business Process Management, Security, Logging, Topology Management

2) Standardized Interface

- It can interect with all AEM Platform services

3)  AEM

- Sites, Forms, Assets

......................................

AEM Platform

1) Includes some Open Source Elements:

Apache Felix, Apache Jackrabbit Oak, Apache Sling

2) Includes some Proprietary Elements:

Granite/Coral UI framework, Workflow Engine, SAML, Translations, Asset and Asset Metadata (XMP) support etc

...................................

OSGI

- Is a set of specifications, that define a dynamic component system for Java

- where application is composed of several components which are packaged in bundles

- These components can communicate locally and across the network through services

- Eg: Eclipse ID, application servers like IBM WebSphere, Jboss, GlassFish

- Supports modular deployment of bundles

- Interdependencies b/w modules are handled automatically

- Bundles can be installed, started or stopped individually

Bundle

- Its a JAR file, with aditional metadata added to the manifest

- This metadata includes bundle name, version, list of services imported and exported, optional info like Mini. Java version req, vendor, copyright statement etc.


Components-

Main building blocks for OSGI application. They are provided by Bundle.

Java object created and managed by OSGI container


" One Bundle can have one or more components, One component can have one or more services "


OSGI Architecture-

1) Native Operating System

2) Java VM

3) Bundle & Security

a) Execution Env (defines which methods & classes are available)

b) Modules (define how a bundle can import and export a code)

c) Life cycle (API to install, start, stop, update bundle)

d) Services

Service layer connects bundle in dynamic way, by offering a publish-find-bind model, for plain old Java Object

...............

Java Content Repository (JCR) - Stores content in hierarchical format with support for structured and unstructured content.     - It can support full-test search, versioning, transactions, observation etc - Provides API's for Java and Javascript High Level Principles of JCR 1) Its a common programmatic interface to content repository 2) Provides an API which is not tied directly to underlying architecture, data source, or protocol. 3) Content organization is done in repository model and hierarchical model. 4) Implemented by Apache Jackrabbit Oak 5) Nodes creates structure and content is stored in form of properties

Apache Sling is the framework for RESTful web-applications, based on extensible content tree like JCR AEM is build using sling, its a web application framework based on REST principles that provides easy development of content oriented applications. Apache Sling script resolution 1) HTTP request 2) Content Resolution     [Path] 3) Get Resource Type     [sling:ResourceType] 4) Script Locations         [Apps or Libs] 5) Script Name [Best: Selector+Extension] 6) Script 7) Include Options          [If any]

No comments:

Post a Comment