pentaho 开发框架的介绍

转自: http://blog.csdn.net/net_flyfox/archive/2009/03/12/3984824.aspx

一、Pentaho BI 平台介绍

    Pentaho BI 平台不同于传统的BI 产品,它是一个以流程为中心的,面向解决方案(Solution)的框架。其目的在于将一系列企业级BI产品、开源软件、API等等组件集成起来,方便商 务智能应用的开发。它的出现,使得一系列的面向商务智能的独立产品如Jfree、Quartz等等,能够集成在一起,构成一项项复杂的、完整的商务智能解 决方案。
    Pentaho BI 平台,Pentaho Open BI 套件的核心架构和基础,是以流程为中心的,因为其中枢控制器是一个工作流引擎。工作流引擎使用流程定义来定义在BI 平台上执行的商业智能流程。流程可以很容易的被定制,也可以添加新的流程。BI 平台包含组件和报表,用以分析这些流程的性能。目前,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 BI 平台构建于服务器,引擎和组件的基础之上。这些提供了系统的J2EE 服务器,安全,portal,工作流,规则引擎,图表,协作,内容管理,数据集成,分析和建模功能。这些组件的大部分是基于标准的,可使用其他产品替换 之。Pentaho服务器组件是整套系统的基础,下面做个简要介绍。

二、Pentaho服务器组件
    Pentaho服务器由一个BI 平台和传送最终用户BI 能力的库组成。服务器运行于一个
J2EE 兼容的web 服务器(如Apache,JBOSS AS,WebSphere,WebLogic 和Oracle AS)上。Pentaho 服务器使得BI 平台的很多功能以一种一致的,熟悉的外观和行为展示给用户。
例如,一个组件产生了用户可以访问的报表列表,另一个以日历的方式列出了任务相关的最终期限,第三个显示了用户需要完成的当前任务。每个组件产生的内容和每个用户的角色相关。
Pentaho 服务器包含用于报表,分析,商业规则,email 和桌面通知以及工作流的引擎和组件。这些组件被集成在一起,用于解决商业智能问题。在一个解决方案(Solution)中,每个子系统的行为,相互作用和 用户交互被解决方案(Solution)定义文档的一个集合所定义。
解决方案(Solution)定义文档是XML 文档,它包含:
    业务流程的定义(XPDL标准)
    活动的定义,这些活动按需作为部分流程执行,或被web 服务调用,其包含以下定义:
    数据源,查询,报表模板,传送和通知规则,商业规则,仪表盘和分析视图。
    以上所有的项之间的关系
    服务器中的组件依赖于一个解决方案(Solution)引擎,可获得可用解决方案(Solution)
文档,安全支持,报表,工作流项,数据,和审计信息。在服务器上可以执行多于一个的解决方案(Solution)。解决方案(Solution)定义文档可从一个服务器复制到另一个,并可被自由分发。服务器包含如下部分:
    高级系统管理的基础设施。这包括系统监控(SMNP)服务,使用报表,Web 服务支持,配置确认工具,和诊断工具。
    高级流程性能报表和分析的系统和组件。这包括工作流任务上涉及到的工作流项目,单独任务,employees 和services 上属性的切片和切块(slice-and-dice),what-if 和数据挖掘能力。
    支持Enterprise Application Integration (EAI),用于和operational 应用live集成,以及Extract, Transform, and Load (ETL) 能力,用于创建数据仓库和数据集市。
下面是一个服务器体系结构图。

三、Pentaho软件层次结构
    Pentaho平台是Pentaho运行系统中的核心部分,它本身是一个Web应用,部署于一个J2EE兼容的应用服务器上。它又作为Solution的 服务器存在着,是Solution中各个Action序列的解释执行者。Pentaho平台大致可分为三个层次:界面层、核心层和插件层。
界面层 是外部用户访问Pentaho服务的接口,主要包含三个部分:UDDI、Web页面、Navigation Component。UDDI为外部应用程序或Web Service访问Pentaho服务提供接口;Web页面则为用户通过浏览器访问Pentaho服务提供接口;Navigation Component实质上是一组Servelet,它主要用于显示当前部署在Pentaho平台上的Solution中所包含的各个Action序列,用 户可在其中选择需要执行的Action序列。

核心层主要由Solution Engine和它的Runtime环境组成。Solution Engine实质上是一个解释执行Action序列描述文件的解释器,它接收来自用户界面的请求,这个请求通常是要求执行Solution中的某个 Action序列。Solution Engine连同其Runtime环境就负责解释执行这些Action序列。解释执行过程中,出于调试和性能分析的需要,引入了一个Audit机制,该机 制类似一个日志记录系统,记录Pentaho平台运行过程中的一些动态过程。Solution Engine和Audit机制的运行都需要访问许多相关的数据资源,这些数据资源被称为“资源库”,也就是图中的各个Repository。

插件层主要包括了集成到Pentaho平台中的各种BI产品,如Quartz、Jfree等等。从图3中可以看 出,插件层又可分为两类模块,一类叫作Component模块,这种模块是插件层与核心层的接口模块,它们将各种不同的插件的功能以一个统一的接口提供给 上层使用,起到一个功能抽象的作用。另一类则是形形色色的BI插件的具体实现,这通常由第三方开发者提供。各种插件运行过程中可能会用到自身的私有数据, 这些数据在Pentaho平台中也被抽象成为资源库(Responsory),这使得不同的插件可以以一种统一的方式访问自己的数据。

猜你喜欢

转载自zhzhiqun2005.iteye.com/blog/933924