02. Architecture
The architecture diagram below shows the relationship between the major components of the BI Server and it's interfaces with the outside world. The heart of the server is the Solution Engine. The Solution Engine is the focal point for activity within the Pentaho BI Platform. It "sits" between the outside world - Web Client, Services, System Monitor etc. and the Component Layer. Requests to do work come into the solution engine and are routed to the appropriate component or components for execution. Â
Action Sequences
An Action Sequence is an XML document that defines the smallest complete task that the solution engine can perform. It is executed by a very lightweight process flow engine and defines the order of execution of one or more the components of the Pentaho BI Platform. We avoid calling this a process flow because it is missing many of the capabilities of a true process flow engine. It is good for sequencing small, linear, success oriented tasks like reporting and bursting. It has the ability to loop through a result set, call another Action Sequence and conditionally execute components. The Action Sequence document should have a ".xaction" suffix.
Solutions and the Solution Repository
A solution is not a single document; it's a collection of documents. It's a logical grouping of Action Sequences and the resources they require. The grouping is maintained by the Solution Repository. You can see the structure of the solution repository by navigating to the pentaho-solution directory in the top level PCI install directory. The default location is: /pentaho-demo/pentaho-solutions. All folders within this directory with the exception of system are solution folders. Solution folders may contain any numbers of folders, those folders may contain any number of folders and so on. This is also true for the DB based Repository which actually models a file-system.Â
!SolutionFilesystem.png|align=left!In this view of the solutions folder, there are 3 solutions defined, admin, samples, and test. The system folder is not a solution. It is where system configuration information, component specific settings and resources are located.Â
The HelloWorld Action Sequence is located in the samples solution with a path of getting-started and an Action Sequence name of HelloWorld.xaction. This illustrates the three part address that is used to locate an Action Sequence within the repository: solution id, path and Action Sequence name. With this kind of naming, it is possible to group Action Sequences in any manner desired; by department or role etc. Use whatever structure makes sense for that solution.
 The system Folder
As mentioned earlier, the system folder is a special case. One of the most important files it contains is the pentaho.xml configuration file. The pentaho.xml file contains system wide configuration settings for the Pentaho BI Platform. See the pentaho.xml Reference for more information.Â
Most of the directories under system are used by individual components.Â
Directory |
Description |
---|---|
BIRT |
Settings, Configuration files and pluins used by the BIRT Reporting component. |
content |
The storage directory for content generated by Action Sequences like Reports, PDF's, HTML pages etc. This is also known as the content repository. |
custom |
Location where the UI templates are stored for both the PCI navigation and default and custom parameter pages. The XSL's used to generate the PCI navigation UI is also stored here. |
dtd |
The DTD's used by the Platform are located here. |
google |
Contains settings like license key for Google maps integration. |
hibernate |
Location of the hibernate-jboss-managed.xml. |
jasperreports |
JasperReports Configuration file. Compiled JasperReports are also stored here. |
kettle |
Kettle settings.xml. |
logs |
Components can store any log files they generate here. |
olap |
Mondrian stores it's data source information here. |
quartz |
Location for the Quartz properties file. |
shark |
Enhydra Shark workflow engine working directory containing configuration, logs and repository. |
simple-jndi |
JNDI settings for the client tools. |
smtp-email |
Server email configuration. |
test-suite |
Configuration settings for the Test Manager interface. |
tmp |
Temporary files that need to be available via URL call like images or generated charts. |
The test solution
The test solution contains Action Sequences and JUnit tests used to test functionality of parts of the BI Server. The JUnit tests are used during the nightly builds to perform regression testing.
You can get details about JUnit testing here.
Add/Remove a Solution Folder
To remove a solution folder (for example pentaho-solutions/steel-wheels), simply delete the folder, and perform View->Refresh from the Pentaho console.
To add a solution folder, create the folder, and copy the index.xml and index.properties file from the steem-wheels folder, and modify index.xml accordingly. For example:
description=My Solution Folder reports.name=My Solution
Do a View-Refresh from the Pentaho console afterwards.
The Runtime Context
When requested to run, the solution, path and name of an Action Sequence is passed to the Solution Engine for execution. The Solution Engine retrieves the Action Sequence from the Solution Repository and creates a runtime environment. This runtime environment, called the Runtime Context, is where the Action Sequence is executed step by step.Â
TODO
Finish this section