Introducción a la plataforma AEM
- Temas:
- Deploying
Creado para:
- Developer
La plataforma AEM en AEM 6 está basada en Apache Jackrabbit Oak.
Apache Jackrabbit Oak es un esfuerzo para implementar un repositorio de contenido jerárquico escalable y de rendimiento para utilizarlo como la base de los sitios web modernos de nivel mundial y otras aplicaciones de contenido exigentes.
Es el sucesor de Jackrabbit 2 y es utilizado por AEM 6 como el backend predeterminado para su repositorio de contenido, CRX.
Principios y objetivos del diseño
Oak implementa el JSR-283 (JCR 2.0). Sus principales objetivos de diseño son:
- Mejor soporte para repositorios grandes
- Varios nodos de clúster distribuidos para alta disponibilidad
- Mejor rendimiento
- Compatibilidad con muchos nodos secundarios y niveles de control de acceso
Concepto de arquitectura
Almacenamiento
El propósito de la capa de almacenamiento es:
- Implementar un modelo de árbol
- Conversión de almacenamiento en conectable
- Proporcionar un mecanismo de agrupación en clúster
Oak Core
El Oak Core agrega varias capas a la capa de almacenamiento:
- Controles de nivel de acceso
- Buscar e indexar
- Observación
Oak JCR
El objetivo principal del JCR de Oak es transformar la semántica de JCR en operaciones de árbol. También es responsable de:
- Implementación de la API de JCR
- Contiene enlaces de confirmación que implementan restricciones de JCR
Además, las implementaciones que no son de Java ahora son posibles y forman parte del concepto de JCR de Oak.
Resumen del almacenamiento
La capa de almacenamiento Oak proporciona una capa de abstracción para el almacenamiento real del contenido.
Actualmente, hay dos implementaciones de almacenamiento disponibles en AEM6: Almacenamiento de Tar y Almacenamiento MongoDB.
Almacenamiento de Tar
El almacenamiento Tar utiliza archivos tar. Almacena el contenido como varios tipos de registros dentro de segmentos más grandes. Los diarios se utilizan para realizar el seguimiento del estado más reciente del repositorio.
Existen varios principios clave de diseño en los que se basa:
- Segmentos inmutables
El contenido se almacena en segmentos que pueden tener un tamaño máximo de 256 KiB. Son inmutables, lo que facilita la caché de los segmentos a los que se accede con frecuencia y reduce los errores del sistema que pueden dañar el repositorio.
Cada segmento se identifica con un identificador único (UUID) y contiene un subconjunto continuo del árbol de contenido. Además, los segmentos pueden hacer referencia a otro contenido. Cada segmento mantiene una lista de UUID de otros segmentos a los que se hace referencia.
- Localidad
Los registros relacionados como un nodo y sus elementos secundarios inmediatos generalmente se almacenan en el mismo segmento. Esto hace que la búsqueda en el repositorio sea muy rápida y evita que la mayoría de los errores de caché de los clientes típicos que acceden a más de un nodo relacionado por sesión.
- Compactación
El formato de los registros está optimizado para reducir el tamaño y los costes de E/S y para que quepa el mayor contenido posible en las cachés.
Almacenamiento de Mongo
El almacenamiento MongoDB aprovecha MongoDB para compartir y agrupar. El árbol de repositorios se mantiene en una base de datos MongoDB donde cada nodo es un documento independiente.
Tiene varias particularidades:
- Revisiones
Para cada actualización (confirmación) del contenido, se crea una nueva revisión. Una revisión es básicamente una cadena que consta de tres elementos:
- Marca de tiempo derivada de la hora del sistema en la que se generó el equipo
- Un contador para distinguir revisiones creadas con la misma marca de tiempo
- ID del nodo de clúster en el que se creó la revisión
- Ramas
Se admiten ramas, lo que permite al cliente realizar varios cambios y hacerlos visibles con una sola llamada de combinación.
- Documentos anteriores
El almacenamiento MongoDB agrega datos a un documento con cada modificación. Sin embargo, solo elimina los datos si se activa explícitamente una limpieza. Los datos antiguos se mueven cuando se alcanza un determinado umbral. Los documentos anteriores solo contienen datos inmutables, lo que significa que solo contienen revisiones comprometidas y fusionadas.
- Metadatos del nodo de clúster
Los datos sobre los nodos de clúster activos e inactivos se mantienen en la base de datos para facilitar las operaciones de clúster.
Una configuración típica de clúster de AEM con almacenamiento MongoDB:
¿En qué se diferencia de Jackrabbit 2?
Como Oak está diseñado para ser compatible con versiones anteriores del estándar JCR 1.0, casi no habrá cambios a nivel de usuario. Sin embargo, hay algunas diferencias notables que debe tener en cuenta al configurar una instalación de AEM basada en Oak:
- Oak no crea índices automáticamente. Por este motivo, será necesario crear índices personalizados cuando sea necesario.
- A diferencia de Jackrabbit 2, donde las sesiones siempre reflejan el estado más reciente del repositorio, con Oak una sesión refleja una vista estable del repositorio desde el momento en que se adquirió la sesión. Esto se debe al modelo MVCC en el que se basa Oak.
- Los hermanos del mismo nombre (SNS) no son compatibles con Oak.
Otra documentación relacionada con la plataforma
Para obtener más información sobre la plataforma AEM, consulte también los artículos siguientes:
Experience Manager
- Guía del usuario de implementación
- Introducción a la plataforma AEM
- Implementación de AEM
- Implementación y mantenimiento
- Implementaciones recomendadas
- Instalación del servidor de aplicaciones
- Instalación independiente personalizada
- Línea de comandos: start y stop
- Configuración de almacenes de nodos y almacenes de datos en AEM 6
- Limpieza de revisión
- Ejecución de AEM con el modo de espera pasiva TarMK
- Compatibilidad con RDBMS en AEM 6.4
- Consultas e indexación de Oak
- Indexación a través de Oak-run Jar
- Casos de uso de indexación de Oak-run.jar
- Resolución de problemas de índices Oak
- Inclusión En La Recopilación De Estadísticas De Uso Agregado
- Solución de problemas
- Configurar AEM
- Conceptos básicos de configuración
- Registro
- Configuración de OSGi
- Ajustes de configuración de OSGi
- Ejecutar modos
- Consola web
- Replicación
- Replicar usando SSL mutuo
- Solución de problemas de replicación
- Caducidad de objetos estáticos
- Depuración de versiones
- Supervisión y mantenimiento de la instancia de AEM
- Descarga de trabajos
- Inicio de sesión único
- Asignación de recursos
- Habilitación de HTTP en SSL
- Comprobaciones de coherencia y travesía
- Directrices de rendimiento
- Optimización del rendimiento
- Guía de rendimiento de recursos
- Artículos de procedimientos de configuración
- Eliminación de sitios de Geometrixx
- Configuración de la consola web
- Actualización a AEM 6.4
- Actualización a AEM 6.4
- Planificación de la actualización
- Evaluación de la complejidad de la actualización con Pattern Detector
- Compatibilidad con versiones anteriores en AEM 6.4
- Procedimiento de actualización
- Uso de la reindexación sin conexión para reducir el tiempo de inactividad durante una actualización
- Realización de una actualización in situ
- Migración de contenido diferido
- Uso de la herramienta de migración CRX2Oak
- Tareas de mantenimiento previas a la actualización
- Comprobación y solución de problemas posteriores a la actualización
- Actualización de Forms de búsqueda personalizada
- Actualizaciones sostenibles
- Actualización de código y personalizaciones
- Pasos de actualización para las instalaciones del servidor de aplicaciones
- Lista de paquetes obsoletos desinstalados después de la actualización
- Reestructuración de repositorios
- Reestructuración de repositorios en AEM 6.4
- Reestructuración común de repositorios en AEM 6.4
- Reestructuración del repositorio de sitios en AEM 6.4
- Reestructuración del repositorio de activos en AEM 6.4
- Reestructuración del repositorio de Dynamic Media en AEM 6.4
- Reestructuración del repositorio de Forms en AEM 6.4
- Reestructuración de repositorios de comercio electrónico en AEM 6.4
- Reestructuración de repositorios para AEM Communities en la versión 6.4
- eCommerce
- Prácticas recomendadas