Pentaho源代碼閱讀報告
Pentaho源代碼閱讀報告
Pentaho運行系統的組成
Pentaho運行系統共有四部分組成: Pentaho平臺資源庫(Repository)、Pentaho平臺、應用服務器和Solution目錄樹。
Pentaho平臺資源庫是Pentaho平臺運行時所需的外部數據的一種抽象。它存儲了定義,執行和審計解決方案(Solution)所必需的數據資源。資源庫中保存的信息主要包含四個部分:一是Pentaho平臺的配置信息;二是運行于Pentaho平臺上的Solution的元數據,如共有多少個Action,每個Action的描述文件的存放位置等等;三是Pentaho平臺第三方插件的私有信息;四是Pentaho平臺運行過程中的跟蹤和審計信息。在通常情況下,資源庫通常是一組數據庫服務。
?
圖 2 Pentaho平臺運行系統示意圖
如圖 2所示,Pentaho平臺運行于應用服務器容器內,并通過應用服務器接口訪問Pentaho資源庫(在這里資源庫實際上是一個數據庫);當有客戶請求道達Pentaho平臺時,它將根據客戶的請求解釋執行Solution目錄下的某個Action序列描述文件。本文關注的焦點是Pentaho平臺這一部分。
Pentaho運行系統的配置文件
Pentaho平臺是一個復雜的軟件系統,擁有許多配置文件,這些配置文件在Pentaho系統的運行中起著至關重要的作用。總的來說共有三種配置文件:Pentaho平臺的Web應用配置文件;Solution的配置文件;Pentaho系統各個插件的私有配置文件。
Pentaho系統的Web應用配置文件主要是指WEB-INF目錄下的web.xml文件,在該文件中,有以下兩個配置項需要著重指出:
1.?
2.?預定義屬性“solution-path”,這個屬性是部署于Pentaho平臺上的Solution的根目錄,如果這個屬性設置錯誤,會導致Pentaho平臺找不到Solution根目錄的嚴重錯誤,這樣該平臺將無法提供BI服務。
Pentaho的Solution配置文件主要是指“solution-path”目錄下的pentaho.xml文件,該文件規定了Solution相對于Pentaho平臺的配置信息,主要包括Pentaho平臺所需的數據源訪問類,各個插件的EventListener(參見“插件的加載與卸載” 一節),以及系統預定義的一些系統Action序列的相關信息。
Pentaho系統各個插件的私有配置文件存放在solution-path\system\***\(***為插件名稱)目錄下,不同插件有不同的私有配置文件,內容也千差萬別,需要使用者在用到某個插件時再做修改。
基于Pentaho平臺的BI開發
基于Pentaho平臺的BI開發十分簡便,開發者只需要進行Solution的開發即可,而開發Solution,只需給出Solution中所包含的所有Action序列的描述文件即可。為了方便基于Pentaho平臺的BI應用開發,Pentaho項目組提供了一個基于Eclipse的集成開發環境:PentahoDesignStudio。用戶僅需要以一種圖形化的形式輸入Action序列的描述,而由該開發工具產生相應的Action序列描述文件,十分方便。
Pentaho平臺的軟件架構
Pentaho平臺的總體結構
Pentaho平臺是Pentaho運行系統中的核心部分,它本身是一個Web應用,部署于一個J2EE兼容的應用服務器上。它又作為Solution的服務器存在著,是Solution中各個Action序列的解釋執行者。
?圖 3 Pentaho平臺總體結構圖
如圖 3所示,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),這使得不同的插件可以以一種統一的方式訪問自己的數據。
非常好我支持^.^
(5) 100%
不好我反對
(0) 0%