Pentaho 源代码阅读报告
作者:曾坤,吴大愚,张百达
注:此文档为 2006 年国防科大计算机学院高级软件工程课程实习大作业。若
需要交流,可以发邮件到 dywu_xa@sina.com
目录
Pentaho 源代码阅读报告..............................................................................................1
目录................................................................................................................................2
Pentaho 项目简介..........................................................................................................4
Pentaho 的设计思想......................................................................................................4
Pentaho 的运行系统......................................................................................................5
Pentaho 运行系统的组成.......................................................................................5
Pentaho 运行系统的配置文件...............................................................................6
基于 Pentaho 平台的 BI 开发.................................................................................7
Pentaho 平台的软件架构..............................................................................................7
Pentaho 平台的总体结构.......................................................................................7
Pentaho 的界面层...................................................................................................9
Pentaho 的核心层...................................................................................................9
系统维护部分................................................................................................10
服务处理部分................................................................................................11
Solution 描述部分..........................................................................................11
运行解释部分................................................................................................12
Pentaho 的插件层.................................................................................................14
Pentaho 的资源库系统.........................................................................................15
Solution 资源库.............................................................................................15
Runtime 资源库.............................................................................................16
Content 资源库..............................................................................................17
Audit 资源库..................................................................................................18
Pentaho 的运行机制....................................................................................................19
Pentaho 平台的启动与终止.................................................................................19
PentahoSession 的管理.........................................................................................20
Pentaho 平台的 Publish 机制................................................................................21
Action 序列的执行机制.......................................................................................22
Pentaho 的插件管理.............................................................................................24
插件的加载与卸载........................................................................................24
插件调用的参数传递....................................................................................25
插件的参数配置机制....................................................................................26
Pentaho 的 Audict 机制.........................................................................................27
Pentaho 核心与 Style 分离的机制.......................................................................28
Pentaho 相关的设计模式............................................................................................29
EventListener 模式................................................................................................29
抽象工厂模式.......................................................................................................30
工厂方法模式.......................................................................................................32
Facade 模式...........................................................................................................33
Adapter 模式.........................................................................................................33
复合模式...............................................................................................................34
Pentaho 源代码文件结构............................................................................................35
总结与收获..................................................................................................................35
3
Pentaho 项目简介
Pentaho BI 平台是一个以过程为核心,面向解决方案的,可扩展的商务智
能平台。其目的在于将一系列企业级 BI 产品、开源软件、API 等等组件集成起
来,方便商务智能应用的开发。它的出现,使得一系列的面向商务智能的独立
产品如 Jfree、Quartz 等等,能够集成在一起,构成一项项复杂的、完整的商务
智能解决方案。
目前,Pentaho 的主要组成元素包括报表生成、分析、数据挖掘和工作流管
理 等 等 。 这 些 组 件 通 过
J2EE、WebService、SOAP、HTTP、Java、JavaScript、Portals 等技术集成到
Pentaho 平台中来。Pentaho 的发行,主要以 Pentaho SDK 的形式进行。
Pentaho SDK 共包含五个部分:Pentaho 平台、Pentaho 示例数据库、可独立
运行的 Pentaho 平台、Pentaho 解决方案示例和一个预先配制好的 Pentaho 网络
服务器。其中 Pentaho 平台是 Pentaho 平台最主要的部分,囊括了 Pentaho 平台
源代码的主体;Pentaho 数据库为 Pentaho 平台的正常运行提供的数据服务,包
括配置信息、Solution 相关的信息等等,对于 Pentaho 平台来说它不是必须的,
通过配置是可以用其它数据库服务取代的;可独立运行的 Pentaho 平台是
Pentaho 平台的独立运行模式的示例,它演示了如何使 Pentaho 平台在没有应用
服务器支持的情况下独立运行;Pentaho 解决方案示例是一个 Eclipse 工程,用
来演示如何为 Pentaho 平台开发相关的商业智能解决方案。
本文主要针对部署于应用服务器上的 Pentaho 平台,介绍该平台的设计思
想、软件架构、运行机制及相关的设计模式等等内容。
Pentaho 的设计思想
Pentaho 的设计思想主要体现在三个方面,一是“集成化”,二是“面向解决方
案”,三是“以流程为中心”。
所谓集成化,是指将众多不同的 BI 产品集成到一个统一的框架中来,使之
可以相互协作。以往的 BI 产品,往往只专注于 BI 的某一特定领域,如 Jfree 主
要关注表表的生成,Quartz 主要关注日程的管理等等。然而一个完整的 BI 应用
往往需要这些 BI 产品能够相互协作。Pentaho 通过引入“Action”的概念,提供了
一个让多种 BI 产品协作的机制。“Action”是 Pentaho 平台提供的最基本的操作单
元,它类似于一种编程语言的基本语句。所有完成具体功能的 BI 产品作为“插
件”集成到 Pentaho 平台中,每种插件为 Pentaho 平台提供一种或几种“Action”,
每个 Action 有自己的输入和输出,多个 Action 连接起来就构成了 Action 序列,
4
完成一个较复杂的功能。Pentaho 平台负责在各个 Action 之间传递参数,这样多
种不同的 BI 产品便能够协同工作了。
所谓解决方案(Solution),是基于 Pentaho 平台的一个具体的 BI 应用。
Solution 与 Pentaho 平台的关系和 Web 应用与应用服务器之间的关系十分类似。
如图 1 所示,Pentaho 平台本身作为一个 Web 应用部署在应用服务器上,而
Solution 又作为一个“Pentaho 应用”,部属在 Pentaho 平台上。Solution 本身实质
上是一系列 Action 序列的集合,这些序列在网页上如何显示,如何被调用,功
能如何实现完全由 Pentaho 平台来管理,这使得 Solution 的开发者,也就是
Pentaho 的使用者,可以将开发工作集中于具体的 BI 业务逻辑的开发上,而不
用去关心网页的设计、服务器的部署等等细节。
图 1 Pentaho 平台层次关系图
流程即 Action 序列,是 Solution 的基本组成单位,它由多个以某种顺序执
行的 Action 组成。Action 是 Pentaho 平台所提供的最基本的 BI 操作,大到生成
一个报表,小到打印一行字,都可以是一个 Action。Action 之间可以顺序执行,
也可以有分支或循环。Pentaho 平台的“以流程为中心”是指整个平台的工作核心
就是如何解释执行一个个 Action 序列的描述文件。用户在做具体的 BI 应用开发
时,也应当把精力集中在描述 Action 序列上。
Pentaho 平台将 BI 业务逻辑的开发以 Solution 的形式与系统的其它部分独
立开来,使得用户可以随心所欲的综合运用各种不同的 BI 产品为自己服务,其
设计理念十分值得称道。
Pentaho 的运行系统
Pentaho 运行系统的组成
Pentaho 运 行 系 统 共 有 四 部 分 组 成 : Pentaho 平 台 资 源 库
(Repository)、 Pentaho 平台、应用服务器和 Solution 目录树。
Pentaho 平台资源库是 Pentaho 平台运行时所需的外部数据的一种抽象。它
存储了定义,执行和审计解决方案(Solution)所必需的数据资源。资源库中保
5