巴軍 莊少清
摘要:多項目調(diào)試管理系統(tǒng)(CNPE-MPCM)是基于SIEMENS的PLM管理平臺TEAMCENTER進(jìn)行開發(fā)的信息管理系統(tǒng),該系統(tǒng)的報表指標(biāo)模塊基于采用BIRT的BI應(yīng)用框架實現(xiàn)。BIRT的BI應(yīng)用框架基于TEAMCENTER的查詢構(gòu)建器、ITK擴展、SOA服務(wù)開發(fā)的對象數(shù)據(jù)抽取服務(wù)和BIRT系統(tǒng)的BIRT服務(wù)層,直接獲取調(diào)試業(yè)務(wù)對象數(shù)據(jù)。通過BIRT數(shù)據(jù)提取服務(wù),直接從數(shù)據(jù)集類中提取業(yè)務(wù)數(shù)據(jù),經(jīng)過BIRT數(shù)據(jù)轉(zhuǎn)換、圖形生成,通過BIRT Viewer展示報表。
關(guān)鍵詞:TEAMCENTER;BIRT;商業(yè)智能
中圖分類號:TP3? ? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)02-0038-02
1 前言
TEAMCENTER是端到端、一體化、模塊化的全壽期管理平臺,能夠全面支持全生命周期的每一個關(guān)鍵環(huán)節(jié),貫穿電廠設(shè)計、建造安裝、調(diào)試、運行維修、退役、回收等階段;而隨著系統(tǒng)的投產(chǎn),系統(tǒng)中會積累大量的業(yè)務(wù)數(shù)據(jù),對于系統(tǒng)的使用者或者工程的決策者來說對調(diào)試業(yè)務(wù)當(dāng)前與歷史數(shù)據(jù)的分析就顯得越來越重要起來。目前,主流的數(shù)據(jù)挖掘與展現(xiàn)中間件,分為ETL(Extraction-Transformation-Loading)與BI(Business Intelligence)兩個系統(tǒng)組成,其中ETL負(fù)責(zé)從數(shù)據(jù)庫中抽取需要分析的數(shù)據(jù),而BI則主要負(fù)責(zé)針對抽取的數(shù)據(jù)進(jìn)行運算、統(tǒng)計與結(jié)果展示。
但是這些中間件產(chǎn)品對于數(shù)據(jù)源的選定大多基于數(shù)據(jù)庫的表空間,而TEAMCENTER的數(shù)據(jù)層對于實施開發(fā)者來說是不透明的,其暴露給實施者是經(jīng)過封裝的面向?qū)ο蟮臄?shù)據(jù)結(jié)構(gòu)而非數(shù)據(jù)庫的表空間。這對于實施與二次開發(fā)來說是非常方便與可靠的方式,可以保證后臺數(shù)據(jù)的一致性與可用性,這也是TC的優(yōu)勢所在。但是對于數(shù)據(jù)挖掘與展示來說就,因為TEAMCENTER沒有將其表空間的數(shù)據(jù)字典暴露給開發(fā)與實施者,是個完全的黑盒子,因此主流的BI中間件方案在TEAMCENTER的二次開發(fā)中無法發(fā)揮作用。
BIRT是一個Eclipse-based開放源代碼報表系統(tǒng),它后臺ETL組件部署在基于Java與J2EE的應(yīng)用程序棧上,BI展現(xiàn)層則可以部署在Eclipse-RPC中。BIRT主要由兩部分組成:一個是基于Eclipse的報表設(shè)計系統(tǒng)和一個可以加載到你應(yīng)用服務(wù)器的運行期組件。BIRT同時也提供一個圖形報表制作引擎,擁有和Dreamweaver一般的操作界面,可以自定義報表,可以將報表導(dǎo)出成圖片、導(dǎo)出Excel、html分頁,展示的樣式比script設(shè)置簡單。另外,BIRT還有OLAP導(dǎo)航功能。BIRT雖然是個輕量級的BI與ETL工具,但是對于實現(xiàn)CNPE-MPCM項目的報表展示模塊來說則是可行的解決方案。
本文將介紹采用BIRT的BI應(yīng)用框架,基于TEAMCENTER的查詢構(gòu)建器、ITK擴張、SOA服務(wù)開發(fā)的對象數(shù)據(jù)抽取服務(wù)。該應(yīng)用框架開發(fā)技巧可以滿足從應(yīng)用系統(tǒng)業(yè)務(wù)對象BMIDE模型出發(fā),設(shè)計BI報表指標(biāo)模型,抽取、轉(zhuǎn)換調(diào)試業(yè)務(wù)數(shù)據(jù),通過BIRT View進(jìn)行前端展示。
2 TEAMCENTER的應(yīng)用
TEAMCENTER架構(gòu)如圖1所示,該信息系統(tǒng)的架構(gòu)是基于TEAMCENTER的4層架構(gòu),包括資源層、企業(yè)層、Web層、客戶端層、文件管理系統(tǒng)(FMS)。
1)FMS提供文件存儲、緩存、分發(fā)的模塊,保證文件高效、完整、安全的傳輸。
2)企業(yè)層提供了PLM UI框架支持UI顯示,SOA框架提供SOA服務(wù)支持,PLM XML框架支持、業(yè)務(wù)建模器擴展框架、PLM數(shù)據(jù)模型支持PLM建模、模型管理,PLM邏輯業(yè)務(wù)實現(xiàn)支持業(yè)務(wù)邏輯實現(xiàn)。
3)PLM保密服務(wù)提供用戶認(rèn)證、權(quán)限管理,PLM Web服務(wù)提供Web服務(wù)。
3 基于BIRT的BI應(yīng)用思路
基于BIRT的TEAMCENTER面向?qū)ο竽P虰I應(yīng)用框架如圖2所示,包含TEAMCENTER企業(yè)應(yīng)用層、BIRT服務(wù)層、客戶端展示層。
1)TEAMCENTER企業(yè)應(yīng)用層,包含了完整的TEAMCENTER企業(yè)應(yīng)用,包括資源層(數(shù)據(jù)庫、文件系統(tǒng))、企業(yè)層(PLM數(shù)據(jù)模型、PLM業(yè)務(wù)邏輯、PLM UI、SOA服務(wù)、PLM XML框架)、WEB層(PLM保密服務(wù)、PLM Web服務(wù))、客戶端層。
2)BIRT服務(wù)層,包含對象數(shù)據(jù)抽取服務(wù)、報表引擎、BIRT View三部分。
① 對象數(shù)據(jù)抽取服務(wù),通過TEAMCENTER SOA服務(wù)調(diào)用TEAMCENTER的查詢構(gòu)建器、ITK擴展,獲取企業(yè)服務(wù)中獲取業(yè)務(wù)對象數(shù)據(jù),對數(shù)據(jù)進(jìn)行處理、轉(zhuǎn)換,將數(shù)據(jù)保存在數(shù)據(jù)集類中,供后期處理。
② 報表引擎,使用BIRT報表設(shè)計文件生成相關(guān)報表,報表引擎包含提取服務(wù)(從數(shù)據(jù)源中提取數(shù)據(jù))、數(shù)據(jù)轉(zhuǎn)換服務(wù)、圖形引擎(用于設(shè)計和生成報表圖形)、展示服務(wù)。
③ BIRT Viewer,BIRT項目提供的報表查看器,用于展示BIRT報表,可以部署在Java EE 服務(wù)中,也可以使用在RCP應(yīng)用中。
3)客戶端展示層,用于展示BIRT報表,可以通過瀏覽器展示,也可以在RCP視圖中展示。
4 TEAMCENTER業(yè)務(wù)對象數(shù)據(jù)抽取
在TEAMCENTER中設(shè)置查詢用戶,設(shè)置用戶訪問控制權(quán)限(ACL),通過BIRT服務(wù)層的對象數(shù)據(jù)抽取服務(wù),從TEAMCENTER服務(wù)中抽取業(yè)務(wù)對象數(shù)據(jù)。
1) TEAMCENTER包,提供如何從TEAMCENTER企業(yè)服務(wù)中獲取數(shù)據(jù)的類,包括QueryHelper、TCHelper類、ClientX類。
① 其中QueryHelper類是查詢數(shù)據(jù)的通用類,可以根據(jù)實際業(yè)務(wù)進(jìn)行擴展,默認(rèn)是通過調(diào)用TEAMCENTER服務(wù)的查詢構(gòu)建器獲取數(shù)據(jù)。
② TCHelper類,實現(xiàn)提取TEAMCENTER業(yè)務(wù)對象屬性基本操作。
③ ClientX類,包含一系列類,實現(xiàn)調(diào)用TEAMCENTER的SOA服務(wù)以及錯誤處理。
2)業(yè)務(wù)對象模型包,包含要進(jìn)行BI分析的業(yè)務(wù)對象JavaBean類。
3)數(shù)據(jù)集包,對BIRT提供服務(wù)提供數(shù)據(jù),提供不同的接口,返回包含業(yè)務(wù)對象模型集合。
5 BIRT報表設(shè)計
1)定義數(shù)據(jù)源,對于從業(yè)務(wù)對象數(shù)據(jù)抽取服務(wù)中提取數(shù)據(jù),設(shè)置Scripted Data Source數(shù)據(jù)源。
2)定義數(shù)據(jù)集,根據(jù)報表展示的業(yè)務(wù)對象,添加數(shù)據(jù)集,設(shè)置數(shù)據(jù)集列。
3)定義數(shù)據(jù)提取方法,采用JavaScript語言編寫,從業(yè)務(wù)對象數(shù)據(jù)抽取服務(wù)中的數(shù)據(jù)集類中提前數(shù)據(jù)。
4)設(shè)計報表,根據(jù)需要定義報表格式、展示方式等。
5)發(fā)布報表到報表服務(wù)器或RCP應(yīng)用中。
6 BIRT報表展示
本例展示了BIRT BI應(yīng)用框架在CNPE-MPCM項目中某個應(yīng)用場景,在CNPE-MPCM開發(fā)過程及應(yīng)用中,采用BIRT服務(wù)層單獨部署與Web服務(wù)器中,通過RCP應(yīng)用調(diào)用BIRT Viewer,展示業(yè)務(wù)的指標(biāo)和報表。
7 結(jié)論
隨著TEAMCENTER企業(yè)應(yīng)用的數(shù)據(jù)積累,需要引入商業(yè)智能將系統(tǒng)中數(shù)據(jù)轉(zhuǎn)換成知識、分析和結(jié)論,以輔助業(yè)務(wù)或者決策者做出正確且明智的決定,幫助企業(yè)更好地利用數(shù)據(jù)提高決策質(zhì)量。商業(yè)智能系統(tǒng)應(yīng)具有的主要功能有數(shù)據(jù)倉庫、數(shù)據(jù)ETL、數(shù)據(jù)統(tǒng)計輸出(報表)、分析功能。針對TEAMCENTER平臺采用面向?qū)ο蠼5南到y(tǒng),如果采用從數(shù)據(jù)資源層(數(shù)據(jù)庫、文件系統(tǒng))抽取數(shù)據(jù),有以下方面問題:
1)需要解析TEAMCENTER的數(shù)據(jù)存儲結(jié)構(gòu),這涉及TEAMCENTER的內(nèi)部處理機制,不能通過TEAMCENTER公開接口獲取;
2)不能有復(fù)用企業(yè)應(yīng)用的BMIDE模型。
本文采用的框架開發(fā)技巧,可以避開以上兩方面問題,通過SOA獲取BMIDE模型對象數(shù)據(jù),然后通過Java程序?qū)?shù)據(jù)進(jìn)行處理,保存到數(shù)據(jù)集對象中,實現(xiàn)數(shù)據(jù)ETL功能。
本文中的業(yè)務(wù)數(shù)據(jù)抽取服務(wù),可以進(jìn)一步開發(fā)將數(shù)據(jù)保存到數(shù)據(jù)倉庫中,將業(yè)務(wù)數(shù)據(jù)抽取模塊作為一個針對TEAMCENTER平臺的BI ETL工具,集成到BI系統(tǒng)中。
參考文獻(xiàn):
[1] 周志明,謝小明.深入理解OSGi:Equinox原理、應(yīng)用與最佳實踐[M].北京:機械工業(yè)出版社,2013.
[2] 陸陽.Eclipse RCP與Spring OSGi:技術(shù)詳解與最佳實踐[M].北京:機械工業(yè)出版社,2013.
【通聯(lián)編輯:代影】