Pentaho源代碼閱讀報(bào)告
推薦 + 挑錯(cuò) + 收藏(0) + 用戶評(píng)論(0)
Pentaho源代碼閱讀報(bào)告
Pentaho運(yùn)行系統(tǒng)的組成
Pentaho運(yùn)行系統(tǒng)共有四部分組成: Pentaho平臺(tái)資源庫(kù)(Repository)、Pentaho平臺(tái)、應(yīng)用服務(wù)器和Solution目錄樹。
Pentaho平臺(tái)資源庫(kù)是Pentaho平臺(tái)運(yùn)行時(shí)所需的外部數(shù)據(jù)的一種抽象。它存儲(chǔ)了定義,執(zhí)行和審計(jì)解決方案(Solution)所必需的數(shù)據(jù)資源。資源庫(kù)中保存的信息主要包含四個(gè)部分:一是Pentaho平臺(tái)的配置信息;二是運(yùn)行于Pentaho平臺(tái)上的Solution的元數(shù)據(jù),如共有多少個(gè)Action,每個(gè)Action的描述文件的存放位置等等;三是Pentaho平臺(tái)第三方插件的私有信息;四是Pentaho平臺(tái)運(yùn)行過(guò)程中的跟蹤和審計(jì)信息。在通常情況下,資源庫(kù)通常是一組數(shù)據(jù)庫(kù)服務(wù)。
?
圖 2 Pentaho平臺(tái)運(yùn)行系統(tǒng)示意圖
如圖 2所示,Pentaho平臺(tái)運(yùn)行于應(yīng)用服務(wù)器容器內(nèi),并通過(guò)應(yīng)用服務(wù)器接口訪問(wèn)Pentaho資源庫(kù)(在這里資源庫(kù)實(shí)際上是一個(gè)數(shù)據(jù)庫(kù));當(dāng)有客戶請(qǐng)求道達(dá)Pentaho平臺(tái)時(shí),它將根據(jù)客戶的請(qǐng)求解釋執(zhí)行Solution目錄下的某個(gè)Action序列描述文件。本文關(guān)注的焦點(diǎn)是Pentaho平臺(tái)這一部分。
Pentaho運(yùn)行系統(tǒng)的配置文件
Pentaho平臺(tái)是一個(gè)復(fù)雜的軟件系統(tǒng),擁有許多配置文件,這些配置文件在Pentaho系統(tǒng)的運(yùn)行中起著至關(guān)重要的作用。總的來(lái)說(shuō)共有三種配置文件:Pentaho平臺(tái)的Web應(yīng)用配置文件;Solution的配置文件;Pentaho系統(tǒng)各個(gè)插件的私有配置文件。
Pentaho系統(tǒng)的Web應(yīng)用配置文件主要是指WEB-INF目錄下的web.xml文件,在該文件中,有以下兩個(gè)配置項(xiàng)需要著重指出:
1.?
2.?預(yù)定義屬性“solution-path”,這個(gè)屬性是部署于Pentaho平臺(tái)上的Solution的根目錄,如果這個(gè)屬性設(shè)置錯(cuò)誤,會(huì)導(dǎo)致Pentaho平臺(tái)找不到Solution根目錄的嚴(yán)重錯(cuò)誤,這樣該平臺(tái)將無(wú)法提供BI服務(wù)。
Pentaho的Solution配置文件主要是指“solution-path”目錄下的pentaho.xml文件,該文件規(guī)定了Solution相對(duì)于Pentaho平臺(tái)的配置信息,主要包括Pentaho平臺(tái)所需的數(shù)據(jù)源訪問(wèn)類,各個(gè)插件的EventListener(參見“插件的加載與卸載” 一節(jié)),以及系統(tǒng)預(yù)定義的一些系統(tǒng)Action序列的相關(guān)信息。
Pentaho系統(tǒng)各個(gè)插件的私有配置文件存放在solution-path\system\***\(***為插件名稱)目錄下,不同插件有不同的私有配置文件,內(nèi)容也千差萬(wàn)別,需要使用者在用到某個(gè)插件時(shí)再做修改。
基于Pentaho平臺(tái)的BI開發(fā)
基于Pentaho平臺(tái)的BI開發(fā)十分簡(jiǎn)便,開發(fā)者只需要進(jìn)行Solution的開發(fā)即可,而開發(fā)Solution,只需給出Solution中所包含的所有Action序列的描述文件即可。為了方便基于Pentaho平臺(tái)的BI應(yīng)用開發(fā),Pentaho項(xiàng)目組提供了一個(gè)基于Eclipse的集成開發(fā)環(huán)境:PentahoDesignStudio。用戶僅需要以一種圖形化的形式輸入Action序列的描述,而由該開發(fā)工具產(chǎn)生相應(yīng)的Action序列描述文件,十分方便。
Pentaho平臺(tái)的軟件架構(gòu)
Pentaho平臺(tái)的總體結(jié)構(gòu)
Pentaho平臺(tái)是Pentaho運(yùn)行系統(tǒng)中的核心部分,它本身是一個(gè)Web應(yīng)用,部署于一個(gè)J2EE兼容的應(yīng)用服務(wù)器上。它又作為Solution的服務(wù)器存在著,是Solution中各個(gè)Action序列的解釋執(zhí)行者。
?圖 3 Pentaho平臺(tái)總體結(jié)構(gòu)圖
如圖 3所示,Pentaho平臺(tái)大致可分為三個(gè)層次:界面層、核心層和插件層。界面層是外部用戶訪問(wèn)Pentaho服務(wù)的接口,主要包含三個(gè)部分:UDDI、Web頁(yè)面、和Navigation Component。UDDI為外部應(yīng)用程序或Web Service訪問(wèn)Pentaho服務(wù)提供接口;Web頁(yè)面則為用戶通過(guò)瀏覽器訪問(wèn)Pentaho服務(wù)提供接口;Navigation Component實(shí)質(zhì)上是一組Servelet,它主要用于顯示當(dāng)前部署在Pentaho平臺(tái)上的Solution中所包含的各個(gè)Action序列,用戶可在其中選擇需要執(zhí)行的Action序列。
核心層主要由Solution Engine和它的Runtime環(huán)境組成。Solution Engine實(shí)質(zhì)上是一個(gè)解釋執(zhí)行Action序列描述文件的解釋器,它接收來(lái)自用戶界面的請(qǐng)求,這個(gè)請(qǐng)求通常是要求執(zhí)行Solution中的某個(gè)Action序列。Solution Engine連同其Runtime環(huán)境就負(fù)責(zé)解釋執(zhí)行這些Action序列。解釋執(zhí)行過(guò)程中,出于調(diào)試和性能分析的需要,引入了一個(gè)Audit機(jī)制,該機(jī)制類似一個(gè)日志記錄系統(tǒng),記錄Pentaho平臺(tái)運(yùn)行過(guò)程中的一些動(dòng)態(tài)過(guò)程。Solution Engine和Audit機(jī)制的運(yùn)行都需要訪問(wèn)許多相關(guān)的數(shù)據(jù)資源,這些數(shù)據(jù)資源被稱為“資源庫(kù)”,也就是圖中的各個(gè)Repository。
插件層主要包括了集成到Pentaho平臺(tái)中的各種BI產(chǎn)品,如Quartz、Jfree等等。從圖3中可以看出,插件層又可分為兩類模塊,一類叫作Component模塊,這種模塊是插件層與核心層的接口模塊,它們將各種不同的插件的功能以一個(gè)統(tǒng)一的接口提供給上層使用,起到一個(gè)功能抽象的作用。另一類則是形形色色的BI插件的具體實(shí)現(xiàn),這通常由第三方開發(fā)者提供。各種插件運(yùn)行過(guò)程中可能會(huì)用到自身的私有數(shù)據(jù),這些數(shù)據(jù)在Pentaho平臺(tái)中也被抽象成為資源庫(kù)(Responsory),這使得不同的插件可以以一種統(tǒng)一的方式訪問(wèn)自己的數(shù)據(jù)。
非常好我支持^.^
(5) 100%
不好我反對(duì)
(0) 0%
下載地址
Pentaho源代碼閱讀報(bào)告下載
相關(guān)電子資料下載
- Makefile簡(jiǎn)介和使用方法 530
- 當(dāng)一名高職生成為開源代碼頂級(jí)貢獻(xiàn)者 111
- git命令的基本使用 361
- 分享一套生產(chǎn)管理MES系統(tǒng)源碼,可以直接拿來(lái)搞錢的好項(xiàng)目 142
- C/c++源代碼qt軟件 svn版本管理開發(fā)如何防泄密? 48
- 為什么安秉信息的源代碼防泄密軟件這么穩(wěn)定? 76
- C語(yǔ)言必備知識(shí)編譯預(yù)處理 421
- 非??煽康腸#+svn或git服務(wù)器源代碼防泄密方案 全解析 82
- 極狐GitLab—新一代源代碼管理倉(cāng)庫(kù) 153
- 能夠生成java文檔注釋的命令 140