Pentaho BI Server源码分析.docx

上传人:b****6 文档编号:7705725 上传时间:2023-01-25 格式:DOCX 页数:59 大小:696.97KB
下载 相关 举报
Pentaho BI Server源码分析.docx_第1页
第1页 / 共59页
Pentaho BI Server源码分析.docx_第2页
第2页 / 共59页
Pentaho BI Server源码分析.docx_第3页
第3页 / 共59页
Pentaho BI Server源码分析.docx_第4页
第4页 / 共59页
Pentaho BI Server源码分析.docx_第5页
第5页 / 共59页
点击查看更多>>
下载资源
资源描述

Pentaho BI Server源码分析.docx

《Pentaho BI Server源码分析.docx》由会员分享,可在线阅读,更多相关《Pentaho BI Server源码分析.docx(59页珍藏版)》请在冰豆网上搜索。

Pentaho BI Server源码分析.docx

PentahoBIServer源码分析

 

PentahoBI

 

 

 

1、PentahoBI 简介

PentahoBI 平台是一个以流程为中心的,工作流驱动的,可扩展平台,用于解决商业智能问题。

Pentaho是一个以工作流为核心的、强调面向解决方案而非工具组件的BI套件,整合了多个开源项目,目标是和商业BI相抗衡。

它包括。

由上可见Pentaho是一个很完善的BI解决方案。

Pentaho偏向于与业务流程相结合的BI解决方案,侧重于大中型企业应用。

1、工作流引擎:

SharkandJaWE

2、数据库:

FirebirdRDBMS

3、集成管理和开发环境:

Eclipse

4、报表工具:

EclipseBIRT

5、ETL工具:

Enhydra/Kettle

6、OLAPServer:

Mondrian

7、OLAP展示:

JPivot

8、数据挖掘组件:

Weka

9、应用服务器和Portal服务器:

JBoss

10、单点登陆服务及LDap认证:

JOSSO

其目的在于将一系列企业级BI产品、开源软件、API等等组件集成起来,方便商务智能应用的开发。

它的出现,使得一系列的面向商务智能的独立产品如Jfree、Quartz等等,能够集成在一起,构成一项项复杂的、完整的商务智能解决方案。

目前Pentaho框架包括了EclipseBIRT,JasperReports,Mondrian,JPivot,调度(scheduling),web服务,Kettle(数据集成工具),商业规则等多个组成部分。

Pentaho的主要组成元素包括报表生成、分析、数据挖掘和工作流管理等等。

这些组件通过J2EE、WebService、SOAP、HTTP、Java、JavaScript、Portals等技术集成到Pentaho平台中来。

下面就其源码进行分析,该源码不是最新源码。

2、项目概况

2.1项目生成

在Pentaho官方网站下载最新源码、并在MyEclipse10中部署该项目。

2.2项目模块分析

成功构建之后的源码由7个模块项目构成,其目录结构如下图1-1所示:

2.2.1pentaho-platform-core

日志、审计和安全被建立在BI平台的内核里。

并且它们被自动化运行以保证,对于管理和性能监控这二者总是存在着正确的审计跟踪。

日志,审计和安全内置于核心中,并被自动使用,以确保总有一个精确的审计跟踪可

用于管理和性能监控。

1、repository:

创建文档请求\回复类、创建文件夹请求\回复类、导航服务接口、对象服务接口,其中包括创建文档、创建文件夹、创建关系、创建策略、获取允许的action、获取属性、获取内容流、更新属性、移动/删除对象、删除树结构、选择/删除内容流等方法的声明;子包exception中包括:

以上操作的各种异常类定义:

约束冲突异常、过滤器无效异常、文件夹无效异常、未找到对象异常等;子包type:

各种属性类型的定义,文档、布尔、日期、十进制、Html、Id、字符串、Xml属性类型的定义等;其目录结构如下图所示:

2、Tenant:

实现了api中的ITenant接口;

2、审计:

包括审计项、审计帮助等类的定义;

3、输出:

缓冲区内容项、多内容项、多输出流、简单内容流、简单输出Handler处理类的定义;

4、安全:

security:

默认情况下jdbc的角色映射器、默认情况下Ldap角色映射器、默认角色用户详细信息服务装饰器、默认的用户名比较器、日志记录拦截、安全帮助、安全参数提供程序、简单的权限掩码、简单角色、简单会话、简单用户、SpringSecurity许可管理。

5、服务:

Services:

action序列JCR帮助器、基于请求的处理器、消息格式化器、Soap帮助器、解决方案URI解析器、Web服务的Util;

Audit(审计):

审计连接、审计文件项、审计SQL项;

6、dbcp数据库连接池:

connection:

Pentaho的连接工厂

datasource.dbcp:

JNDI数据源服务、非汇集数据源服务、汇集数据源帮助器、汇集数据源系统监听器、汇集或者JNDI数据源服务;

dbcp.tenantware:

租客意识到登录解析数据源服务;

单独使用dbcp需要3个包:

common-dbcp.jar,common-pool.jar,common-collections.jar由于建立数据库连接是一个非常耗时的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。

7、Uifoundation:

chart:

抽象图表组件、抽象Jfreechart组件、条形图表定义、分类数据集图表组件、Jfreechart引擎、Pentaho的图表URL标签片断生成器、XY图表定义、XY序列收集图表组件;

component:

Action组件、Action过滤器定义、基于UI组件、全局过滤器定义、Html组件、会话过滤器定义、静态过滤器定义;

8、util:

文件帮助器、文件类型插件、jar实体解析器、参数帮助器、服务器类型Util、字符串类型Util;

Util.client:

BI平台资源库客户端、BI平台资源库客户端导航服务、客户端util、发布util、服务异常等;

logging:

commons-logging日志系统,详见文章后续部分;

Test-src包:

相关jar:

 

2.2.2pentaho-user-console

该user-console模块是pentahobi这个中的目录结构如下图:

以下就pentaho-user-console项目模块中的source源码进行简单分析。

Mantle包:

Mantle包的子包:

对于创建的该gwt工程,其生成的模块配置文件如下:

下面对生成的模块配置文件做简单的说明:

--rename-to为模块起一个别名,使用起来简单-->

--InheritthecoreWebToolkitstuff.-->

--下面是继承其他模块,User是必须继承的一个模块。

-->

........

--Specifytheappentrypointclass.-->

--指定应用的入口点类-->

其他子包:

 

相应的jar包:

 

2.2.3pentaho-platform-api

该应用程序编程接口的定义如下:

1、action、缓存、数据、邮件等模块的api定义;

2、引擎,包括视角、安全引擎模块的api定义;

3、ITenant:

core模块中包mt的Tenant类实现该接口;

4、资源库,包括数据源、数据节点,实力数据库、简单数据资源库模块的api定义;

5、调度器api定义;

6、ui用户界面、用户设置api定义;

Lib资源:

2.2.4pentaho-platform-scheduler

2.2.5pentaho-platform-extensions

BI最终步骤

SQLLookupRule----生成领域和经理列表

UtilityComponent---生成邮件信息,标题和附件的名称

JfreeReportComponent---生成报表

EmailComponent----发送报表

Admin:

管理员

注:

这个包里的GeneratedContentCleaner,引入了日志处理api包。

mons.logging.Log;

importmons.logging.LogFactory;

Config:

配置信息,包括:

Console、Hibernate、IMondrianConfig、IConsoleConfig、ILdapConfig等接口的定义;

设计到的jar:

1、WebXml.java中

importorg.dom4j.Document;

importorg.dom4j.DocumentException;

importorg.dom4j.DocumentHe

DtdEntityResolver.java中

XML的SAX解析器

ILdapConfig.java

LDAP(轻量级目录访问协议

PdiConfigXml.java

Pid

i18n

国际化简称

6、

slf4j

Action:

Jfreereport组件加载

Kettle组件加载

Mondrian架构加载

Mdx查询实现

Xmla组件

XMLA(XMLforAnalysis)是一种基于 (SOAP)的XML协议,它是专为对驻留在Web上的任何标准多维数据源的通用数据访问而设计的。

XMLA的好处就在于其应用级别的是SOAP,这使XMLA的服务提供者具有了WebService提供者的角色,从而各种语言编写的都可以轻松访问,而不会带来额外的麻烦。

XMLforAnalysis(XMLA)开放标准支持对驻留在万维网上的数据源的数据访问。

MicrosoftSQLServerAnalysisServices按XMLA1.1规范实现了XMLA。

XMLA是一种针对MicrosoftSQLServerAnalysisServices的本机协议,用于客户端与AnalysisServices实例之间的所有交互。

AnalysisServices完全支持XMLforAnalysis1.1,并且还提供了支持管理、和锁定功能的扩展。

与AnalysisServices实例进行通信时,分析 (AMO)和ADOMD.NET都使用XMLA协议。

虚拟文件系统:

如下图

Services

 

web

2.2.6pentaho-platform-repository

安全授权访问控制列表:

该包调用Apache的内容仓库,内容仓库ApacheJackrabbit将在下后续文章介绍。

资源库:

以上包及其子包中定义了资源库的hibernate、runtime、usersetting、webservices等.

资源库2:

该包及其子包中定义了pentaho本地化类、(数据访问对象DAO)异常类、文件的输出输出类、文件系统访问控制(AclDao)类、备份资源库生命周期管理器验证成功监听器、默认Pentaho的密码编码器类、简单资源库文件数据的转换类的定义等;

其中jcr实现了JCRAcl元数据策略、JCR资源库文件utils等类

安全的实现是由spring框架提供支持。

基于角色的策略:

角色授权策略角色绑DAO接口、角色授权策略类、角色绑定结构类;管理员安全action类、发布action类、资源库创建action类、调度器action类、授权策略选举者、默认的授权策略WebService类、角色授权策略角色绑定WebService的Dao接口定义等;

用户角色:

该包及其子包中定义了:

默认的用户角色列表Web服务类、用户角色列表Web服务接口、Pentaho角色类、Pentaho用户类、Pentaho用户角色映射类;

相关的类库:

2.2.7pentaho-platform-assembly

该目录结构中无源码,编译源码时,在这一层文件夹中编译,其中dist文件夹中是编译生成后,保存生成结果的文件夹。

3、项目架构分析

3.1架构简介

Pentaho框架不同于传统的BI产品。

Pentaho是一个带有商业智能组件的以流程为中心、面向解决方案的框架,它使公司可以开发针对商业智能问题的完整解决方案。

Pentaho平台上执行的商业智能流程。

流程可以很容易被定制,并且新流程可以被添加。

Pentaho包含用来分析这些流程性能的组件和报表。

Pentaho是面向解决方案的。

因为平台的操作是定义在流程定义和指定每个活动的action文档里面的。

这些流程和操作共同定义了一个商业智能问题的解决方案。

这个BI解决方案可以很容易地与平台外部的业务流程集成在一起。

方案的定义可以包含任意多个流程和操作。

Pentaho平台包含一个BI框架、BI组件、一个BI工作台以及桌面信箱:

1、BI框架提供日志、审计、安全、时序安排、ETL、webservices、属性存储库和规则引擎。

2、BI组件包括报表、多维分析、工作流、仪表盘和数据挖掘。

3、BI工作台是一套集成进Eclipse环境里的设计和管理工具。

这些工具业务分析师或开发者来创建报表、仪表盘、分析模型、业务规则和BI流程。

4、桌面信箱可以是第三方RSS阅读器或PentahoInboxAlerter。

这些信箱传递任务和报表,或者异常通知。

 

BI框架和BI组件构成了PentahoServer。

BI方案被使用BI工作台(DesignStudio)来设计并被发布到PentahoServer。

PentahoServer:

是一个由工作流引擎驱动的运行时引擎,负责协调各个BI组件的执行以及它们之间的通信。

DesignStudio 是一个桌面的,基于 Eclipse 的设计和管理环境。

•DesignStudio :

产生工作流定义和解决方案(Solution)定义文件,它们被服务器用于执行 BI 解决方案(Solution)。

3.2PentahoBi架构图

Pentahobi架构图如下所示:

词汇表 

   

BI- Business Intelligence 商业智能 

Components 组件

 desktop notifications 桌面通知 

Pre-Configured Installation 预配置的安装包 

process 流程

Workbench 工作台 

Workflow  工作流 

Workflow items 工作流项 

Platform 平台 

 Inbox Alerter信箱告警器/收件箱警报器

Dashboard  仪表盘

DataMart数据集市

Auditing审计

SingleSignOn单点登录

Prototyping原型化

KeyPerformanceIndicator(KPI)关键性能指标

Pentaho的设计思想主要体现在三个方面,一是“集成化”,二是“面向解决方案”,三是“以流程为中心”。

所谓集成化,是指将众多不同的BI产品集成到一个统一的框架中来,使之可以相互协作。

一个完整的BI应用往往需要这些BI产品能够相互协作。

Pentaho通过引入“Action”的概念,提供了一个让多种BI产品协作的机制。

“Action”是Pentaho平台提供的最基本的操作单元,它类似于一种编程语言的基本语句。

所有完成具体功能的BI产品作为“插件”集成到Pentaho平台中,每种插件为Pentaho平台提供一种或几种“Action”,每个Action有自己的输入和输出,多个Action连接起来就构成了Action序列,完成一个较复杂的功能。

Pentaho平台负责在各个Action之间传递参数,这样多种不同的BI产品便能够协同工作了。

所谓解决方案(Solution),是基于Pentaho平台的一个具体的BI应用。

Solution与Pentaho平台的关系和Web应用与应用服务器之间的关系十分类似。

Pentaho平台本身作为一个Web应用部署在应用服务器上,而Solution又作为一个“Pentaho应用”,部属在Pentaho平台上。

Solution本身实质上是一系列Action序列的集合,这些序列在网页上如何显示,如何被调用,功能如何实现完全由Pentaho平台来管理,这使得Solution的开发者,也就是Pentaho的使用者,可以将开发工作集中于具体的BI业务逻辑的开发上,而不用去关心网页的设计、服务器的部署等等细节。

流程即Action序列,是Solution的基本组成单位,它由多个以某种顺序执行的Action组成。

Action是Pentaho平台所提供的最基本的BI操作,大到生成一个报表,小到打印一行字,都可以是一个Action。

Action之间可以顺序执行,也可以有分支或循环。

Pentaho平台的“以流程为中心”是指整个平台的工作核心就是如何解释执行一个个Action序列的描述文件。

用户在做具体的BI应用开发时,也应当把精力集中在描述Action序列上。

3.3Pentaho Server

Pentaho 服务器由一个 BI 平台和提供给终端用户 BI 能力的库组成。

服务器运行于一个 J2EE 兼容的 web 服务器(如 Apache,JBOSSAS,WebSphere,WebLogic 和 OracleAS)上。

它们也可嵌入进其他服务器或应用中。

后面的图显示了服务器中较大组件间的关系。

Pentaho 服务器使得 BI 平台的很多功能以一种一致的,熟悉的外观和行为展示给用户。

例如,一个组件产生了用户可访问的报表列表,第二个以日历的方式列出了任务相关的最终期限,第三个显示了用户需要完成的当前任务。

每个组件产生的内容和每个用户的角色相关。

组件内容可以 XML,HTML 的形式获取或在被包含的 JSR-168portlets 中显示。

Pentahoportlets 可被嵌入进任何支持 JSR168 标准的 portal,例如 IBMWebSphere,OracleASPortal 和 BEAWebLogicPortal。

组件用于展示在线报表内容的 XSL 和 CSS 样式单是可访问的,并完全可定制

Pentaho 服务器包含用于报表,分析,商业规则,email 和桌面通知以及工作流的引擎和组件。

这些组件被集成在一起,用于解决商业智能问题。

在一个解决方案(Solution)中,每个子系统的行为,相互作用和用户交互被解决方案(Solution)定义文档的一个集合所定义。

解决方案(Solution)定义文档是 XML文档,它包含:

•     业务流程的定义(XPDL 标准)

•     活动的定义,这些活动按需作为部分流程执行,或被 web 服务调用,其包含以下定义:

数据源,查询,报表模板,传送和通知规则,商业规则,仪表盘和分析视图。

•     以上所有的项之间的关系。

服务器中的组件依赖于一个解决方案(Solution)引擎,可获得可用解决方案(Solution)文档,安全支持,报表,工作流项,数据,和审计信息。

在服务器上可以执行多于一个的解决方案(Solution)。

解决方案(Solution)定义文档可从一个服务器复制到另一个,并可被自由分发。

Pentaho 服务器包含了提供高级系统管理的基础设施。

这包括系统监控(SMNP)服务,使用报表,Web 服务支持,配置确认工具,和诊断工具。

Pentaho 服务器包含了提供高级流程性能报表和分析的系统和组件。

这包括工作流任务中涉及到的工作流项目,单独任务,employees 和 services 上属性的切片和切块(slice-and-dice),what-if 和数据挖掘能力

Pentaho 服务器也支持 EnterpriseApplicationIntegration(EAI) 用于和 operationalapplications 进行 live 集成,以及 Extract,Transform,andLoad(ETL) 能力,用于创建数据仓库和数据集市。

Pentaho 服务器包括一个工具,用于企业信息集成(EAI)的 ETL(Extraction,Transformation 和 Load)。

下图是一个服务器体系结构图。

    

•解决方案(Solution)引擎对于整个体系结构是很重要的,可以管理对于 BI 组件的访问。

• BI 平台提供的服务:

•为外部应用程序提供了 web 服务

•可访问和用户接口组件相同的解决方案(Solution)引擎

•被工作流引擎和调度器调用以执行系统 actions

•审计内置于平台组件中。

通过从工作流和审计库中抽取历史和实时数据,平台提供了流程性能报表功能。

•组件是可以被添加进系统的模块。

•每个引擎有相应组件,可以将引擎集成进平台。

如果创建了必要的组件的话,引擎可被其他引擎替换,或添加进平台。

•服务器包括用于构建一个商业智能解决方案(Solution)所必需的组件和技术:

报表,工作流,商业规则,仪表盘/分析,web 服务,调度,方便的 web 和桌面用户接口的混合,以及审计。

• PentahoBI 平台和外部系统集成,这些系统提供了数据驱动报表引擎,并接收来自工作流引擎的事件。

•经由简单网络管理协议(SNMP),PentahoBI 平台提供了系统监控能力。

•资源库被存储进 Pentaho 平台外的一个 RDBMS。

预配置安装中内嵌的资源库存储在一个开放源码数据库中,FireBird(首选) 或 MySQL。

如果必需的话,这些数据库可被其他的关系型数据库代替,例如 Oracle,SQL服务器或 DB/2。

• PentahoBI 平台中有多个规则引擎,因此业务规则被暴露,并可被简单定制。

可在系统中添加额外的规则引擎。

对于组件来说,业务规则引擎是外部的,且任何组件可以使用任何规则引擎。

•不是所有组件均显示在图中,其他(未显示)的组件包括 email,打印,消息格式化,工作流实例属性管理,流程性能报表和 what-if 分析。

•体系结构的一些部分使用了组合的技术,或者使用了易于等价替换的技术:

•被提供的 J2EE 服务器是 JBossAS,但是可以使用任何 JavaJDK1.4 兼容的应用程序服务器。

• BI 平台提供了内置 JavaServerPages(JSPs),servlets 和 portlets 的用户接口,可以添加第三方或定制的 JSPs,servlets 或 portlets。

• BI 套件包括一个开放源码的 OLAP 引擎(Mondrian),但是可以使用任何 MDX 兼容的 OLAP 服务器(我们计划测试 MicrosoftOLAP 服务和 HyperionEssbase)。

•平台提供了一个基于 javascript 的和基于 SQL 的规则引擎,并基于市场需求,计划支持 ILOGJRules,Drools 和 Jess。

• PentahoBI 平台集成和增强了现有的流行的第三方开放源码组件,例如:

• MondrianOLAPServerandjPivotAnalysisFront-End

• FirebirdRDBMS

• SharkandJaWE 工作流

• KettleEIIa

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1