AEM (Adobe Experience Manager) is a powerful content management system that allows businesses to create and manage digital experiences across multiple channels. The architecture of AEM is designed to support the creation, management, and delivery of content to a variety of channels, including websites, mobile apps, and social media platforms.
The architecture of AEM is based on a Java Content Repository (JCR), which is a hierarchical database designed to store and manage structured and unstructured content. The JCR is at the heart of AEM’s content management capabilities, and it provides a flexible and scalable platform for managing content.
AEM’s architecture is built on a modular, component-based approach, which makes it easy to add and remove features as needed. The architecture is composed of three main layers:
- Presentation layer: This layer is responsible for delivering content to the end-users. It includes the AEM Authoring Environment, which is used to create and manage content, and the AEM Publish Environment, which is used to deliver content to end-users.
- Services layer: This layer provides services that are used by both the presentation layer and the application layer. It includes services such as search, workflow, and social collaboration.
- Application layer: This layer includes the AEM Foundation, which provides the core functionality of AEM, as well as any custom applications that are built on top of AEM.
Adobe Experience Manager (AEM) has a layered architecture that includes several key components:
- Web Server: AEM is typically deployed on a web server, such as Apache or Microsoft IIS. The web server is responsible for handling incoming requests from users and delivering content to them.
- Dispatcher: The Dispatcher is a caching and load balancing component that is typically used in production environments. It caches frequently accessed content and distributes incoming requests across multiple AEM instances to improve performance and scalability.
- AEM Author Instance: The Author instance is the primary content creation and management environment for AEM. It is responsible for managing content, workflows, and users. Authors use the Author instance to create and publish content, manage digital assets, and collaborate with team members.
- AEM Publish Instance: The Publish instance is responsible for delivering content to end-users. It is typically deployed on multiple servers for scalability and high availability. The Publish instance is optimized for performance and can deliver content to users quickly and efficiently.
- AEM Dispatcher Instance: The Dispatcher instance is responsible for caching and delivering content to end-users. It is typically deployed on the same server as the web server and is used to improve performance and scalability.
- AEM Database: AEM uses a database to store content, user data, and other configuration information. The database can be either a built-in file-based repository or an external relational database.
- AEM Oak Repository: The Oak Repository is a highly scalable and flexible repository that is used to store content and assets in AEM. It is built on top of Apache Jackrabbit and uses a hierarchical data structure to store content.
- AEM OSGi Framework: AEM uses the OSGi (Open Services Gateway initiative) framework for modular development and deployment. OSGi allows AEM to be highly extensible and customizable, with the ability to add and remove components on the fly.
Overall, AEM’s layered architecture provides a flexible and scalable platform for managing and delivering digital content. The different components work together to ensure that content is created, managed, and delivered efficiently and effectively.