PentahoBIServer源码分析

上传人:简****9 文档编号:25592030 上传时间:2021-07-27 格式:DOCX 页数:67 大小:190.42KB
返回 下载 相关 举报
PentahoBIServer源码分析_第1页
第1页 / 共67页
PentahoBIServer源码分析_第2页
第2页 / 共67页
PentahoBIServer源码分析_第3页
第3页 / 共67页
点击查看更多>>
资源描述
Pentaho BI源码分析报告91 PentahoBI 简介 32项目概况31.1 项目生成 31.2 项目模块分析 31.2.1 pentaho-platform-core 41.2.2 pentaho-user-console91.2.3 pentaho-platform-api 131.2.4 pentaho-platform-scheduler 141.2.5 pentaho-platform-extensions 151.2.6 pentaho-platform-repository191.2.7 pentaho-platform-assembly 223项目架构分析223.1 架构简介223.2 Pentaho Bi 架构图233.3 Pentaho Server 253.4 Pentaho DesignStudio 294项目框架及重要包304.1 Jpivot 304.2 GWT 框架 324.3 Jackrabbit 框架 454.4 Spring 框架 584.5 Slf4j 包604.6 commons-logging日志系统 665总结671、Pentaho BI 简介Pentaho BI平台是一个以流程为中心的,工作流驱动的,可扩展平台,用于解决商业智能问题。Pentaho是一个以工作流为核心的、强调面向解决方案而非工具组件的BI套件,整合了多个开源项目,目标是和商业BI相抗衡。它包括。由上可见Pentah。是一个很完善的BI解决方案。Pentah。偏向于与 业务流程相结合的BI解决方案,侧重于大中型企业应用。1、工作流引擎:Shark and JaWE2、数据库:Firebird RDBMS3、集成管理和开发环境:Eclipse4、 报表工具:Eclipse BIRT5、ETL 工具:Enhydra/Kettle6、 OLAP Server: Mondrian7、OLAP 展示:JPivot8、数据挖掘组件:Weka9、应用服务器和Portal服务器:JBoss10、单点登陆服务及 LDap认证:JOSSO其目的在于将一系列企业级 BI产品、开源软件、API等等组件集成起来,方便商务智能应用的开发。它的出现,使得一系列的面向商务智能的独立产品如Jfree、Quartz等等,能够集成在一起,构成一项项复杂的、完整的商务智能解决方案。目前Pentaho框架包括了 EclipseBIRT,JasperReports,Mondrian,JPivot,调度(scheduling),web 服务,Kettle(数据集成工具),商业规则等多个 组成部分。Pentaho的主要组成元素包括报表生成、分析、数据挖掘和工作流管理等等。这些组件通过J2EE、WebServica SOAP、HTTP、Java JavaScript、Portals等技术集成到 Pentaho平台中来。F面就其源码进行分析,该源码不是最新源码2、项目概况2.1 项目生成在Pentah。官方网站下载最新源码、并在 MyEclipse 10中部署该项目。2.2 项目模块分析成功构建之后的源码由7个模块项目构成,其目录结构如下图 1-1所示::J pentaho-p atform-api0 penUho-platform-assembly;J pentdho-pldt(oiiTi-(.(j(eI:? pentaho-platform-extentions p eh o -pl artorm- repos iro ry!z7 penta ho-platform-scheduler pentahci-nser-ronsolp2.2.1 pentaho-platform-core日志、审计和安全被建立在BI平台的内核里。并且它们被自动化运行以保证,对于管理和性能监控这二者总是存在着正确的审计跟踪。日志,审计和安全内置于核心中,并被自动使用,以确保总有一个精确的审计跟踪可用于管理和性能监控。1、repository :创建文档请求 回复类、创建文件夹请求回复类、导航服务接口、对象服务接口,其中包括创建文档、创建文件夹、创建关系、创建策略、获取允许的action、获取属性、获取内容流、更新属性、移动 /删除对象、删除树结构、选择/删除内容流等方法的声明; 子包exception中包括:以上操作的各种异常类定义:约束冲突异常、过滤器无效异常、文 件夹无效异常、未找到对象异常等;子包type:各种属性类型的定义,文档、布尔、日期、十进制、Html、Id、字符串、Xml属性类型的定义等; 其目录结构如下图所示:出 ciiq.peiilahcKorrimcnsutjI.feptisiLor/田 org.pentahoxQirmnonsuTil.reposKor/.excepiion 由 ergpentahoxomnnons.uiil.repo5itor/ktyp)orc.pentaho.olatlorni.core.mt2、Tenant:实现了 api 中的 ITenant 接口;生 org,pentahD.pltforTi.core.mt2、审计:包括审计项、审计帮助等类的定义;山 org ,pe ntaho. p h tfo rm .e n q ine, core.a u d it Z Audit Entry .java。J Audit Helper java Mes&ageTypes.java J NuIIAuditEntry3、输出:缓冲区内容项、多内容项、多输出流、简单内容流、简单输出 Handler处理类的 定义; V ar cj.peiitdho.phtfurmrig ne.ccre.ouiput 工 Buffe re dC ent entire m Ja va IS M uIt iCon tent t?m java, MultiDutputtr&am.java , m Si m pleContentftemJavaEl SimpIcCutputHandIcr.java4、安全:security:默认情况下jdbc的角色映射器、默认情况下Ldap角色映射器、默认角色用户详细信息服务装饰器、默认的用户名比较器、日志记录拦截、安全帮助、安全参数提供程序、简单的权限掩码、简单角色、简单会话、简单用户、SpringSecurity许可管理。小 org.pentaho.platform.engino.5ccurity上 org .pentaho.platform.engine.seckirity.acbIB org.peniaho. platform.eng i ne. secu ri ads.voter出 org Ppem a hor p I a tf o rm ren g i ne, sec li ri ty. event用 org pentaho platfQrm.enginesecuirity.nnessget 5、服务:Services:action序列JCR帮助器、基于请求的处理器、消息格式化器、Soap帮助器、解决方案URI解析器、Web服务的Util ;Audit(审计):审计连接、审计文件项、审计 SQL项;三 org.pentaha.platform.engine.service5org.pentaho.platform.engine. services, actionsequence ttx org. pentaho.platlcrm.ergine,servics&. audit9 org.pcntaho.platform.crgineervkcconncctiont三 org.pemaho.platform,engine+$etvke&xonnectionHdusource.dbcp4enanuware th org.pentaho.platform.engine,&efvices.messages出 org.pertaho.platiCrnn.erginp.sprvkp.Ttadt: org.pentaho.platform.engine.servkes.outpLthandler:二 org.pentaho.platfcrm.ergine.services.runt me;:org.pcntaho.plotform.crginc.scrviccs.bolution6、dbcp数据库连接池:connection:Pentaho 的连接工厂datasource.dbcp:JNDI数据源服务、非汇集数据源服务、汇集数据源帮助器、汇集数据源系统监听器、汇集或者JNDI数据源服务;dbcp.tenantware:租客意识到登录解析数据源服务;:U org.pentaho.phtform.enginc.seirviccsxonncctionorg,panlaho.platform.engine.seirvices.connection.datasource.dbcp由 org pentaho phtform.engine.services connection datasource.dbcp tenantaware单独使用 dbcp 需要 3 个包:common-dbcp.jar,common-pool.jar,common-collections.jar 由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。7、Uifoundation:chart:抽象图表组件、抽象Jfreechart组件、条形图表定义、分类数据集图表组件、Jfreechart弓I擎、Pentaho 的图表URL标签片断生成器、XY图表定义、XY序列收集图表组件;|component: Action组件、Action过滤器定义、基于 UI组件、全局过滤器定义、Html组件、会话过滤器定义、静态过滤器定义;li o rg.penta ho.platfo rm.uifounddtion.charti1 田 org.pentaho.platforrn.uifounclponent由 org,pentahc.plaifomLifQunddion.uompon9RLxml 上 康 org.pentahorplarform.uifoundation.contentgenFR erg ppntahr phtfDrm.uifannrltinn.mFge*;8、util :文件帮助器、文件类型插件、jar实体解析器、参数帮助器、服务器类型 Util、字符 串类型Util ;Util.client:BI平台资源库客户端、BI平台资源库客户端导航服务、客户端 util、发布util、服 务异常等; logging:commons-logging 日志系统,详见文章后续部分;上 org,pentaho.pltfrm.util士 org*pentaho.platform.util.bearsB org.pen(aho.pMtform.uLiI . org. pentah o.platfornn. e n g i ne.service5.acti ons . org. pents ho. platform .util山 org.pentaho.phtform.util.bea由 org.pent*hoHte5t.pktfornn出 org. pe n IdboAesLplatforni.engi nexor ep 由 org.penraho.test.pltform.engine.security+b org p(*ntaho.test platform.engine.servicesk Iog4j.xml喳 tcstscttingsHproperties 相关jar:-felibdntlr-2+7,6,jdr_j a&nn-3.1.jari a&m-attrs-2.2 3.jar. axis2 0dh 1.4rl,jardxis2-kt;f nel-1.4.1Jdij| hAtik-Aurt-iitibI.7Jn&-math-l.LjarE commons net l,4.l.jari- commoii5-pool-1.5.7jaicommons-vfs-20100924-pentahQ.jarH dom4j-1.6 l.jarehcache-core-2.5.1.jarc 叩 i20,L3hibeif.die-LorririQns-dfiiiutd tjons-3.20.Fiiidl.jdfhibemate-core-3.6 9 Final jarhi be mate J pa-2,0-a pi-1.0. If inaLjarjavassist-3.12. l.GA.jar.jaxeii l.ljdfjeo mm on -1.0.14Jarlv jetty-6.1.21 jroppnidp-uti 1-7(105071104 jar恒 oro-2.0,8jar pentaho-actionsequencedQm-S.O-SNAPSHOT.jrll pemahocon nectl o ns -5.0-SNAPS HOTJaip&ntaho-tvjm-1.5.4.j arpentaho-dta base-mod el-5.0-SN/KPSHCT.jarpcntaho metadata S.C SNAPSHOT.jar- pentabo-platfor fn-api-5.0-SNAPSHOTJarli pentaho-registry-.O-SNAPSHOr.jarp&ntaho-versionchecker-S.O-NAPHOT.jar1 pentaho xul-core 5.0 SNAPSHOJjar三 scdiinotddoi i-l.0.2,jdfserandsrring-DftOfi 1 5J曰J Eimple-jndi-0.113jarslf4j-api-17.3jarB slf4jlog4jl2173.jarspring-2.5.bjartpring-beans-2.5.6.jarsprinq-2.5.6.jdrz spring-bedns-2k5,6Jarspring-idap-core-l.J.D.RtL t As tjar tpring-ecuri-core- 5.RELEASEj5r.xmkapis-l.O.bJ.prjcmlpull 1.1.3.l.jarxpp3_min-l,1.4cjdixstream-lA2.jar白 test-l.bi_ cglib nodcp 2.1_3jarhamc rest-core-1.1 jar. hamcrest-libraiy-L 1 JarLi htqldb-l.S U.7.jar11 jettiton-lJari_ jmock-2.5.1,jar司 jrnock-junit4-2.5J.jari jmock-legacy-2.5.1 Jar ju nit-4.4 jarI junit dqp 4.4.jar Ioq4j-L2.16.jarobjenesis-n,OJarL pentaho-xul-core-5 O-SNAPSHOT jar spring-mock-2.0.2Jar stax 叩 i-LO.LjjfreeclicrL-1.0.13.jdHljmi-200S07110943 jarjmiutik-20050711C943.jjrjodatimc-l.SjarS js-L7RLjarH jsch-0,146 jarjLiq-lqpl-2.0.0.jarkeule =& JUnrt4M JRE System Library Sun JDK 1.6,0 13 ,% Referenced Libraries & bin 4 3 build-res build-resources code9enltb config & dev-lib e dKt & package-res / screenshots (& test-lib & tesbsrc - war目 build.properties 痛 build.xmlH dev_buiId.properties 1 dev_build.xml 1 HOW1O 国 ivy.xml W ivysettings.xml 3 lgpl-2.1.txr mantleJml a mantle.hunch 商 package-ivyj(nil S pacltgejton ,i PUC.SuperDev.hunch _ uier-consuleJnil 自 version.propenip以下就pentaho-user-console项目模块中的source源码进行简单分析。Mantle 包:11J 非 sourceJ 苗 org.penralio.manrle public-browser/ i2? home 2 images 昌 messages. L puc api 已 themes,p? xulcf argular-arimations.cESlJ b tn_q l_b rowse, png闻 bui_ql.indiidge.prig.htn_ql_ntbv/analyi;.png园 b tn_q l_newrepo rt pn gH buttonbq.qif国 bunonhoverbg.gif riaki in irtf Io k+mlMantle包的子包:J ;S pentaho-LLSPrconscile产source白名 org.pentaho.rrantl& & publicAi MantlcApplication.gAt.xrnI对于创建的该gwt工程,其生成的模块配置文件如下:生 *MiintleAppljcaticin.gwt.xmmodule rename-to=mantleI- Inherit the core Web Toolkit stuff.x /inhciTs inherits namc=gc.tobLe. ScroLLTable / inherits nane= org. pent oho. ui. xul _下面对生成的模块配置文件做简单的说明:module rename-to=mantleinherits name=com.google.gwt.user.User/-!- Specify the app entry point class. entry-point class=org.pentaho.mantle.client.MantleEntryPoint/其他子包: 盘 orq.penIdhciJTidrille jiiBiAis1 aijuBinusaj1 j*iiaa*ei + org,p?nraho,nrant|p.c ipnt soli Tianbmwspr fi|p|i;t田 orgpentho,rriantle.clientsoluticnbrowserfilepicklis ii oirq.pentaho.mantle.cliert.solutionbrowser.fileprope 由 org penta ho, mant lex Sent solutionbrowser tabs tH org. pentaho. nnantl&.c lient.solutionbrowtoolbars 由 org.penUho.mantle.c ient solution brows er. treeHi org.pentdho.mdiitle.clienLui 出 org.pentaho.nnanrle.clientULtabs田 org.pentahomantlexdient ui.xulJj org.pentaho.mantle.c iert.usersettinqs用 oig. penta ho.rnant lex li ent works pace org,pentaho, mantle Jog in由 org.penU ho. mantle Jog in.client由 org.pentaho.mantle.login.clientmessages if org.pentaho.mantle.rebind相应的jar包:). Refeieiictd LiLidiiei, junicA4jar pentaho-platform-api-7RUNK-SNAPSHOT.jar吧 pentahc-pladornn-core-TRLlNK-5KAP5l-ICn.jarpenta he-platform-ext ent ions-T KU MK-&N APS HOT.jar益 penta he platform repository TRU N K S NAPS HOT Jar-GWT 书GQ50ja嬴 gAtJncubator-2.10.jargwtx-1.5.2.ji3r几 pentdho-gwi-,iAidgelSTRUNK-SNAPSHOTSources,jdr叫 peniaho-gwr-widgets-TRUNK-SNAPSHOT.jar咖 pwrrtahc=Hu|.cwTRIJNKNAPSHOT、ouirc;gkja- pentaho-xul core TRJNK-ENAPSHOT.jarw penta hoxulgwbTRUN IT en a ntM onager.javaapi定义;4、资源库,包括数据源、数据节点,实力数据库、简单数据资源库模块的出 org.pemaho.platform.api,repositoryJj org.pentaho.phtform.api.repository. data source市 org+pen1aho.pktfQrm.apijepositQry2.un1 lied山 org.pemaho.platform.apijepository2.unified.data.noceH+ org ppn*aho.platfnrmrapi, repos it Dry 2. un itipetdaW sarr p Ie由 org pentaho platform.api repositOFy2.unified.data sirnole5、调度器api定义;J 上 org,pentaho.phtform.api.schedulerr- J Ba ckgroundExecutionExc eption javaZ UabDetdilJdvdk J Oo bSchedule.java6、ui用户界面、用户设置api定义;iJ erg. penta ho. pldtform.d p i.ui-71 org penta ho. platforms pi .usersettingsJJ erg,pentaho.platform.api.usersettings.pojoT org penta ho, platfornn, pi.utilLib资源:上 A Referenced Libidiiesi* 能 commons-collectioris-J.Z.jar - D:Program FilesMyR 0 comnftOii-larg-2.4.jar - D:Program File&Myeclip“ commons logging LLLj日r C :Program riles : yu快 B dorn4j-l.G.l.jdr - 2.PruqrdrTi F i Ie sM yr cl ip selOip卜楣 jaxenl,ljar - D:Program FilesWyedipselOspace;叫 pntaho actionsequenc-dom-E.O SNAP5HOT.jar S3 pentaho-cxxinections-S-O SNAPSHOT.jar D:Pragr- pntaho-datebase*model-5.0SNAPSI lOT.jar 口:口口 S pencaho-xuI-core-5.0-SNAPS H OT.jar - 口+Ptugi 日仃11t 晶 spring-beans-2t5+&jar - DAProgram FilesWyeclipset 砧 $p ri ng-se cu r ity-core-2.0.5. R ELEAS E.j ar - D:Progrank xml apis L0+b2.jar D:Program FilcsMy?clipsel(Tj224pentaho-platform-scheduler13J pentaho phtform-scheduler)& sre由 org,penTaho.platform.api.schecluler2IE org pentaho.plat+orm.Epi.chedulFr5.r?cur org.pcntahoplatform.schedulenvcrsioncheckcrLU orq.pentaho.platfornn.scheduler2.blocout田 org.penraho.pLatform.scheduler2.emailH: org.pentaho.platform.scheduIer2.me5ageitil org.pentaho.platform.scheduler.quartzIi org.penteiholplatformlscheduler2Hrecur田 orq.pentaho.placform.scheduler2.versioncheckerorg p?ntaho.plattorm. IMondrianConfig 、IConsoleConfigILdapConfig 等接口的定义;17 E erg pentsho.platform.coniigJi AclEntryjavaLl Afidlysi5ViewjavdQj Ap pConfig Excepti on j avaLL Ap pConf ig Pre per; iet.javaJ Chee ked Exception java fjj Console Co nfigX ml.java UIDtdErtityResolver javaE HibcmatcScttingsjavaLl HibeindteSettinqsXrnl.jdVdDi TConsoleCenfigjvaLU Ente rp rise C on l e Co nfig .j avaLl IHibernateSettings.javai LctdpCondgjdVd|J| IMondrianConfig.java国 IPdiConfigjava设计到的jar:1、WebXml.java 中import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.DocumentHeDtdEntityResolver.java 中XML的SAX解析器ILdapConfig.javaLDAP (轻量级目录访问协议PdiConfigXml.javaPidi18n国际化简称6、slf4jAction:+ org. pe nta htfo rm. plug i r*. action, built in壬 org,pentaho,platform.plugin.actionxhartbeans卜由 o rg. penta lo.pldtfo rrr. plug in. action, data transforms卜 密 org.pentaho.platfbrm.pkigin.dctionHdefaultccntent 去 orgTpentaho,plarform.plugin,action,deprecated 主 org pentaho phtfarm plugin.action exannpies* org.pentahoTplatformrplugin.action.hql:壬 or.penUhQ.pktform.plugin.action.idvcript) 布 org.penraho.pMrform.plugin.acTionJfrpechan :oc:.en:a 10 口lat-匚广丁 p uzjir action rdeereporti orgHpentaho+pktforiTrplugirriJctonjfreeteporl:XQmponeii 士 org.peiitdho,pldLfuiii .plugin.dclkjiijfreiepuft.helpei r org.pentaho.piarforir.plugirctionjfreereporr.ouTputs E org.pentaho.platform.plugin.acttonjfrreport.tei 工 org.penta ho.pldtfo rrr.pluir.action.kettle壬 o(gTpentdhoTpldtfurm,plugin.d*qxlwJa_占用5=|63-。11|.10*可0.。上口匚3 6。-: R一 J_c,g&AJ7lz.E0三 d,EctpQ.duE?ludd6c$ -55&君60后50qpfo5n.jJnJrl5*se.yAJCIJ5w -6n-cbE0tE-d6上口uclld,EJO-b &CJJ兴二 A-Cm5 窗 七 AJW.EBrlQ.EJ5doEe2m0$ 623S一5三5-2450035,三6三701|0匕与?2-出1|&-?口 由 0(Qdj18fr心d.6ulu &n五前山。罡c&T!4UJJO*-2d.oklEUJ913dckJ3d.J3LUE3n-d33u一AJ*,E6ndEJotE-d OUEluad 6J。住 bEllQ)三 d*sd&Aia5ECTnq-EJQUeQ.d爷ulgoJO $ . JEFPPZpru=5n-crE-oJl-!2crDLIBlL_&?os 5U6 P5guLLro.yAJU5w-6n-cbEc!tE-d.。上由-HU也.6JCS - pduJodwtodE品士 AJqJ/ll 一6三701|。士r0.0口匚也,6。-B XUE60tod*furoCILUsaAJCL6.E6n_d.EJot:p-ddu01uad+?CJ 由 1,7卫=JP芝HnD-K915dx1J七2l2LLIJru_luE-5n-q-UJ-D*aFQ.dllplLJBdCTKI 电 喜里一匚中2todscutrodNorQdEsa.yAJM.E3 n-d,EJOtJEddq45e:;3d+6Jo出 4J0d 中toCLUJM4IU_AJ 中电三 BJchEJot-sd.cl 上 ELL-ed,6cl 由n Btod UJS3、AJBSeb rl-R E J ofcF-d 6U mill ads Jo J + L 一 一/EqlnilJu-AJ 心吧,Ebn-cbEJot-2-.口 LIro=_LId Eo一 一 不口ZJbx 5uotvuuQ:r50.yAJQ/mwdEJO+lE-ddlll?lAJQQ-6J。e -bM MJC= JGUUc-rsJU-AJ&EU-pl-CPEJCty-J.CUEUUCLdsJC*- 匚尊仁0015匚0匕皿之口5335=5三0-1|?0.。喋三&巨。-7| -bTlg e P34JLU /uotvu u 口U muu一 AJU6,.E6 n-乌 EJDtp-d 6q mn3dd)j0田 J d -JU3EF5匚口一 1u中匚亡 Y 5SU _ AJ(l)5c_cnn - d. EJ 0*-2d 。上 E1AJ& 6 JOT- -bq MJotaruuclJsau一 AJ%,E6_=cl,EJctJ2d6USLJed6c 圭 山 LTETJ1llu5Ja5=3n-d*二 MoJlF-qo上 plugd?o中SaAJ e SE?Ef山-FuqH4lld4nck/EJJ-J3E&JS-PUEHln&noBT13 TJ pfa _ p up 工一3d 1HO6LL.A1= uas 与-nQ=6nld.EJgJ4Jqddq 士 org.pentahD.platfornn.veb.hsqldb于 org.pen
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 其他分类 > 其它学术


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!