Introduzione alla piattaforma AEM
- Argomenti:
- Deploying
Creato per:
- Developer
La piattaforma AEM in AEM 6 si basa su Apache Jackrabbit Oak.
Apache Jackrabbit Oak è uno sforzo per implementare un archivio di contenuti gerarchici scalabile e performante da utilizzare come base dei siti web moderni e di altre applicazioni di contenuti esigenti.
Sostituisce Jackrabbit 2 e viene utilizzato da AEM 6 come backend predefinito per il relativo archivio di contenuti, CRX.
Principi e obiettivi di progettazione
Oak implementa le JSR-283 (JCR 2.0) specifiche. I suoi principali obiettivi sono:
- Supporto migliorato per archivi di grandi dimensioni
- Più nodi cluster distribuiti per un'elevata disponibilità
- Prestazioni migliori
- Supporto per molti nodi figlio e livelli di controllo degli accessi
Concetto di architettura
Archiviazione
Lo scopo del livello di storage è:
- Implementare un modello ad albero
- Rendere lo storage collegabile
- Fornire un meccanismo di clustering
Oak Core
Oak Core aggiunge diversi livelli al livello di archiviazione:
- Controlli a livello di accesso
- Ricerca e indicizzazione
- Osservazione
Oak JCR
L'obiettivo principale di Oak JCR è quello di trasformare la semantica JCR in operazioni ad albero. È inoltre responsabile:
- Implementazione dell’API JCR
- Contenenti hook di commit che implementano vincoli JCR
Inoltre, le implementazioni non-Java sono ora possibili e fanno parte del concetto Oak JCR.
Panoramica sullo storage
Il livello di archiviazione Oak fornisce un livello di astrazione per l'effettivo archiviazione del contenuto.
Al momento sono disponibili due implementazioni di storage in AEM6: Archiviazione Tar e Archiviazione MongoDB.
Archiviazione Tar
Lo storage Tar utilizza file tar. Memorizza il contenuto come vari tipi di record all’interno di segmenti più grandi. Le scritture contabili vengono utilizzate per tenere traccia dello stato più recente dell’archivio.
Ci sono diversi principi chiave di progettazione intorno a cui è stato costruito:
- Segmenti immutabili
Il contenuto viene memorizzato in segmenti di dimensioni fino a 256 KiB. Sono immutabili, il che rende facile memorizzare nella cache i segmenti a cui si accede di frequente e riduce gli errori di sistema che possono danneggiare l’archivio.
Ogni segmento è identificato da un identificatore univoco (UUID) e contiene un sottoinsieme continuo della struttura del contenuto. Inoltre, i segmenti possono fare riferimento ad altri contenuti. Ogni segmento mantiene un elenco di UUID di altri segmenti di riferimento.
- Località
I record correlati come un nodo e i relativi figli immediati vengono solitamente memorizzati nello stesso segmento. Questo rende la ricerca dell'archivio molto veloce ed evita la maggior parte degli errori di cache per i clienti tipici che accedono a più di un nodo correlato per sessione.
- Compattezza
La formattazione dei record è ottimizzata per le dimensioni per ridurre i costi di I/O e per adattare il maggior numero possibile di contenuti nelle cache.
Archiviazione Mongo
Lo storage MongoDB sfrutta MongoDB per la condivisione e il clustering. La struttura dell'archivio viene mantenuta in un database MongoDB in cui ogni nodo è un documento separato.
Ha diverse particolarità:
- Revisioni
Per ogni aggiornamento (commit) del contenuto, viene creata una nuova revisione. Una revisione è fondamentalmente una stringa costituita da tre elementi:
- Una marca temporale derivata dall'ora di sistema del computer in cui è stata generata
- Un contatore per distinguere le revisioni create con la stessa marca temporale
- ID nodo cluster in cui è stata creata la revisione
- Rami
I rami sono supportati, il che consente al client di mettere in scena più modifiche e di renderle visibili con una singola chiamata di unione.
- Documenti precedenti
L'archiviazione MongoDB aggiunge dati a un documento con ogni modifica. Tuttavia, elimina i dati solo se viene attivata esplicitamente una pulizia. I dati precedenti vengono spostati quando viene soddisfatta una determinata soglia. I documenti precedenti contengono solo dati immutabili, il che significa che contengono solo revisioni salvate e unite.
- Metadati nodo cluster
I dati sui nodi del cluster attivi e inattivi vengono conservati nel database per facilitare le operazioni del cluster.
Configurazione cluster AEM tipica con archiviazione MongoDB:
Quali sono le differenze rispetto a Jackrabbit 2?
Poiché Oak è progettato per essere compatibile con lo standard JCR 1.0, non ci saranno quasi modifiche a livello di utente. Tuttavia, ci sono alcune differenze notevoli che è necessario tenere in considerazione quando si imposta un'installazione di AEM basata su Oak:
- Oak non crea indici automaticamente. Per questo motivo, se necessario, sarà necessario creare indici personalizzati.
- A differenza di Jackrabbit 2, dove le sessioni riflettono sempre lo stato più recente dell’archivio, con Oak una sessione riflette una vista stabile dell’archivio dal momento in cui la sessione è stata acquisita. Questo è dovuto al modello MVCC su cui si basa Oak.
- Gli elementi di pari livello con lo stesso nome (SNS) non sono supportati in Oak.
Documentazione correlata ad altre piattaforme
Per ulteriori informazioni sulla piattaforma AEM, consulta anche gli articoli seguenti:
Experience Cloud
- Guida utente alla distribuzione
- Introduzione alla piattaforma AEM
- Distribuzione AEM
- Implementazione e manutenzione
- Implementazioni consigliate
- Installazione del server applicazioni
- Installazione personalizzata indipendente
- Avvio e arresto da riga di comando
- Configurazione degli archivi di nodi e degli archivi di dati nel AEM 6
- Pulizia revisioni
- Come eseguire AEM con lo standby a freddo TarMK
- Supporto RDBMS in AEM 6.4
- Query e indicizzazione Oak
- Indicizzazione tramite Oak-run Jar
- Casi d’uso dell’indicizzazione Oak-run.jar
- Risoluzione dei problemi degli indici Oak
- Consenso alla raccolta di statistiche di utilizzo aggregate
- Risoluzione dei problemi
- Configurazione di AEM
- Concetti di configurazione di base
- Registrazione
- Configurazione di OSGi
- Impostazioni di configurazione OSGi
- Modalità di esecuzione
- Console Web
- Replica
- Replicazione con SSL reciproco
- Risoluzione dei problemi di replica
- Scadenza degli oggetti statici
- Rimozione delle versioni
- Monitoraggio e manutenzione dell’istanza AEM
- Offload dei processi
- Single Sign On
- Mappatura delle risorse
- Abilitazione di HTTP su SSL
- Controlli di coerenza e di transito
- Linee guida sulle prestazioni
- Ottimizzazione delle prestazioni
- Guida alle prestazioni di Assets
- Articoli dimostrativi sulla configurazione
- Rimozione dei siti di Geometrixx
- Configurazione della console Web
- Aggiornamento a AEM 6.4
- Aggiornamento a AEM 6.4
- Pianificazione dell’aggiornamento
- Valutazione della complessità dell’aggiornamento con il rilevatore pattern
- Compatibilità con le versioni precedenti in AEM 6.4
- Procedura di aggiornamento
- Utilizzo della reindicizzazione offline per ridurre i tempi di inattività durante un aggiornamento
- Esecuzione di un aggiornamento sul posto
- Migrazione dei contenuti Lazy
- Utilizzo dello strumento di migrazione CRX2Oak
- Attività di manutenzione pre-aggiornamento
- Controlli e risoluzione dei problemi post-aggiornamento
- Aggiornamento di Custom Search Forms
- Aggiornamenti sostenibili
- Aggiornamento di codice e personalizzazioni
- Passaggi di aggiornamento per le installazioni di Application Server
- Elenco dei bundle obsoleti disinstallati dopo l’aggiornamento
- Ristrutturazione dell’archivio
- Ristrutturazione dell’archivio in AEM 6.4
- Ristrutturazione dell’archivio comune in AEM 6.4
- Ristrutturazione dell’archivio siti in AEM 6.4
- Ristrutturazione dell’archivio risorse in AEM 6.4
- Ristrutturazione dell’archivio Dynamic Media in AEM 6.4
- Ristrutturazione dell’archivio Forms in AEM 6.4
- Ristrutturazione dell’archivio di e-commerce in AEM 6.4
- Ristrutturazione dell’archivio per AEM Communities nella versione 6.4
- eCommerce
- Best practice