BloomReach Experience Manager Application Architecture
BloomReach Experience Manager is a Java-based digital experience platform. It uses modern web architectures, open standards, and open source components throughout. In all layers of the architecture, open and extensible APIs are available for integrating BloomReach Experience Manager into your existing application architecture.
The BloomReach Experience Manager architecture is highly modular. This modular and clean architecture has several technical benefits such as ease of integration and great scalability, and also functional benefits such as content reuse. In the next sections, details are provided on each module in the BloomReach Experience Manager stack. We highlight the three modules listed in the diagram below; Platform, Authoring Webapp and Delivery Webapp.
High Level Component Overview
At the highest level, BloomReach Experience Manager's architecture consists of three components:
- The platform
- The authoring webapp
- The delivery webapp(s)
The platform itself consists of two subcomponents:
- The repository
- The delivery core
The diagram below shows how the components are interconnected. The following sections describe each component in more detail.
All content, metadata, and configuration is stored in the repository. In addition to providing a storage layer, the repository is also responsible for the base content management services such as metadata and workflow, content searching, processing, scheduling, transformation and aggregation, and the orchestration thereof.
The repository is based on Apache JackRabbit, an open source implementation of the JSR-170 and JSR-283 Java Content Repository specifications, and Apache Lucene indexing and searching technology. All content management functionality is exposed through a standard set of API interfaces. This allows your application or process to integrate with BloomReach Experience Manager for automatic creation, import, export, backup, restoring, and publication of content indepentently from the authoring webapp.
An important feature of BloomReach Experience Manager is that it strictly separates content and content management from the context of its usage. BloomReach Experience Manager does not maintain content in a “page-oriented" manner but stores and manages metadata that is context-dependent separately. This allows for reuse, search, and filtering of content across different contexts, channels, and devices. Especially within a large enterprise environment, this is an important feature supporting reuse, integration, and interoperability with other applications.
The delivery core manages configuration for the delivery channels. Through this configuration, it provides the delivery webapps with the required information to map incoming requests to actual pages and to construct those pages by aggregating content, page components, and templates.
The BloomReach Experience Manager authoring webapp provides a web-based user interface through which teams can collaborate to create and manage their content and delivery channels. All from within the same user interface, webmasters, marketers, editors, and authors can perform tasks such as the creation of new sub-sites, editing of page templates, menu structures or content, creation of different page templates for different targeted personas, and so on.
Depending on the role within the organization, certain functions or content can be hidden or made read-only for certain groups of users through centralized access management and workflow systems.
The authoring application provides predefined Open UI extensions points to integrate external apps and is customizable at Java code level through a GUI plugin architecture based on the Apache Wicket web application framework.
One or more delivery web applications provide the front-end for the delivery channel(s) such as websites and REST endpoints. They provide page components and templates, and interface with the platform to access site configuration and content stored in the repository. They use the site configuration to map incoming requests to pages and content and use the page components and templates to render the content as a response.
Developers can rapidly create create delivery webapps through a combination of configuration and development. Features include a templating engine which is easily configurable through the authoring webapp's user interface, a tag library and expression language to accommodate the development of a JSP or Freemarker-based view layer, and a REST API to accomodate the development of Single-Page Applications. BloomReach Experience Manager's delivery framework also has built-in caching and page diagnostics to help optimize performance.
BloomReach Experience Manager's architectural design is driven by the following quality attributes:
The ability of a system to work together with other systems.
The ability to extend a system and the level of effort required to implement the extension.
The ability of a system to handle a growing amount of work in a capable manner or its ability to be enlarged to accommodate that growth.
The amount of work accomplished by a system compared to the time and resources used.
The proportion of time a system is in a functioning condition.
The ability of a system to reliably control, monitor, and audit who can access the system and who can perform what actions on which resources, and the ability to detect and recover from failures in security mechanisms.