Architecture
Architecture Overview
Everything is Content
- Jahia's main purpose is to manipulate content and present it in a particular context.
- Each element stored in the Jahia content repository like text, images and PDF's are considered as a content item with standard properties.
- Data elements are stored in the Java Content Repository (JCR) as content items with a set of standard properties
- Examples of these elements would be text, images, or PDF's.
- Content items are organized as a tree in the JCR but are independent from each other and can be freely moved and reordered.
What is Jahia?
Jahia can be used to solve a wide arrary of technical challenges. As such, it can mean different things to different poeple. For some, it's simply their Portal server or Web Content Management (WCM) solution. For others it's a web integration platform or fully-fledged content integration solution.
Strictly speaking, Jahia is client/server software that listens and responds to HTTP requests and maintains storage with a content repository. As well, the software enables users to build and deploy custom business logic for operating on content and interfacing with third party systems. That’s the million-mile view.
For an introduction to Jahia Tutorials and using Jahia for the first time, please visit the Getting Started with Jahia Tutorial.
Technology Overview
- Apache Tomcat as servlet container software
- Dependency injection and bean configuration using the Java Spring Framework (deprecated in Jahia 8.2)
- Modules for adding and extending new features
- Apache Jackrabbit Java Content Repository for storage
- Apache Pluto as a container for the portal
- Scheduler with Quartz
- JBoss jBPM and the workflow engine
- Drools as the rules engine
- Apache Lucene as the indexing/search engine
- Apache Camel as an enterprise integration engine
- Google Web Toolkit with Sencha GXT extensions for the UI in Edit mode and Studio mode
- JQuery and extensions for the 'contribute' and 'live' modes
Technical Architecture
Jahia's Architecture can be represented in the three tiered diagram shown below.
JCR Data Storage
Jahia stores all of its data in the JCR:
- Two workspaces are used: "default" for staging content and "live" for live content.
- Content is stored in an SQL database with node data in serialized form for increased performance.