0 引言
汽車整車及零/部件的開發(fā)需要進(jìn)行反復(fù)的試驗(yàn)驗(yàn)證,產(chǎn)生大量的試驗(yàn)數(shù)據(jù)。但是來自不同廠家的試驗(yàn)測試系統(tǒng)產(chǎn)生的試驗(yàn)結(jié)果在數(shù)據(jù)類型和保存格式上均不相同。數(shù)據(jù)的查看和分析必須依賴原測試系統(tǒng)的軟件環(huán)境,導(dǎo)致試驗(yàn)人員無法查看所有數(shù)據(jù)的統(tǒng)一視圖。對成本高昂的試驗(yàn)數(shù)據(jù)進(jìn)行有效重用已成為支撐汽車整車及零/部件研發(fā)的迫切需求,也是產(chǎn)品生命周期管理(Product Lifecycle Management,PLM)的重要組成部分。
目前針對汽車試驗(yàn)數(shù)據(jù)的重用主要是基于C/S架構(gòu),采用OpenGL、DirectX等技術(shù)的客戶端程序。隨著Internet/lntranet及Web技術(shù)的快速發(fā)展,基于B/S的多層分布式架構(gòu)表現(xiàn)出了通用性強(qiáng)、易于操作且擴(kuò)展性好等優(yōu)勢,已成為貼近企業(yè)應(yīng)用的工程軟件開發(fā)模式的一種必然趨勢。對于大型汽車制造企業(yè)來說,試驗(yàn)數(shù)據(jù)可能分布在不同分廠和試驗(yàn)單位的數(shù)據(jù)庫中,利用網(wǎng)絡(luò)的資源優(yōu)勢,可以提高數(shù)據(jù)重用的效果與效率。C/S架構(gòu)的客戶端程序已經(jīng)不能完全滿足這些要求。
Portlet是基于Java技術(shù)、可插拔的Web組件,由負(fù)責(zé)處理請求和生成動態(tài)內(nèi)容的Portlet容器管理。按照Portlet規(guī)范標(biāo)準(zhǔn)(Java Standardization Request 286,JSR 286)實(shí)現(xiàn)的汽車試驗(yàn)數(shù)據(jù)重用是面向服務(wù)架構(gòu)(Service-Oriented Architecture,SOA)的,可以在所有符合該標(biāo)準(zhǔn)的Java Portlet服務(wù)器上運(yùn)行,解決了程序移植和跨平臺的問題。目前大型汽車制造企業(yè)正逐步實(shí)施PLM,采用Web方式的重用技術(shù)使試驗(yàn)數(shù)據(jù)可以作為PLM體系中一個重要的組成部分,得到充分利用。
本文按照J(rèn)ava Portlet規(guī)范,研究了汽車試驗(yàn)數(shù)據(jù)重用的整個過程,并開發(fā)了若干Portlet程序。
1 汽車試驗(yàn)數(shù)據(jù)重用的流程
試驗(yàn)數(shù)據(jù)的重用是將原始的試驗(yàn)數(shù)據(jù)進(jìn)行抽取、整理、結(jié)構(gòu)化轉(zhuǎn)換、映射和圖形可視化,使海量的數(shù)據(jù)得以有效利用。基于Portlet的數(shù)據(jù)重用是將整個程序開發(fā)過程按照Portlet規(guī)范進(jìn)行。Portlet遵循模型一視圖控制器(MVC)設(shè)計(jì)模式,每個Portlet程序都是一個完整的Web Application方式,包括了數(shù)據(jù)的查詢、映射到圖形可視化的整個過程。
試驗(yàn)數(shù)據(jù)最終以圖形、表格等形式顯示在Web頁面上。每個包含可視化圖形的頁面都可以劃分為多個Portlet區(qū)域,每個區(qū)域展現(xiàn)的內(nèi)容是相互獨(dú)立的,只要對開發(fā)完成的Portlet程序進(jìn)行簡單添加組合就可以按照用戶的請求展示可視化圖形。在數(shù)據(jù)重用時不同數(shù)據(jù)類型需開發(fā)相應(yīng)的Portlet程序。汽車試驗(yàn)數(shù)據(jù)重用Portlet程序的流程如圖1所示。
1)對不同試驗(yàn)測試系統(tǒng)產(chǎn)生的數(shù)據(jù)進(jìn)行抽取、轉(zhuǎn)換和清洗,得到結(jié)構(gòu)化數(shù)據(jù),存儲到DB2、ORACLE等大型關(guān)系數(shù)據(jù)庫中。
2)連接數(shù)據(jù)庫,通過SQL技術(shù)取得經(jīng)過整理和結(jié)構(gòu)化轉(zhuǎn)換的原始數(shù)據(jù)。將數(shù)據(jù)庫的原始數(shù)據(jù)按照一定規(guī)則進(jìn)行映射,得到所需的規(guī)范化XML數(shù)據(jù)。
3)對規(guī)范化數(shù)據(jù)進(jìn)行繪制和顯示,得到可視化信息。
圖1 汽車試驗(yàn)數(shù)據(jù)重用Portlet程序的流程
2 汽車試驗(yàn)數(shù)據(jù)結(jié)構(gòu)化入庫
汽車試驗(yàn)數(shù)據(jù)來源于不同的商用測試系統(tǒng),這些測試系統(tǒng)產(chǎn)生的數(shù)據(jù)格式各不相同,都有自己獨(dú)特的處理方式和流程,沒有通用的處理模式和處理程序能直接管理所有廠商的測試數(shù)據(jù),并且商業(yè)測試系統(tǒng)的軟件缺乏對試驗(yàn)環(huán)境、測試對象運(yùn)行條件、試驗(yàn)細(xì)節(jié)、參數(shù)信息以及工況信息等輔助屬性信息的記錄。將眾多不同格式的非結(jié)構(gòu)化數(shù)據(jù)和輔助屬性信息融合到數(shù)據(jù)庫系統(tǒng)中進(jìn)行統(tǒng)一管理,是汽車試驗(yàn)數(shù)據(jù)重用的基礎(chǔ)。
目前已有成熟的試驗(yàn)數(shù)據(jù)結(jié)構(gòu)化轉(zhuǎn)換的解決方案,采用的方法主要有如下幾種。
2.1 OLE Automation接口法
OLE Automation是一種基于COM(Component Object Model)的技術(shù),它允許應(yīng)用程序使用其他應(yīng)用程序提供的通用接口來訪問其組件和功能。一些數(shù)據(jù)格式不開放的測試系統(tǒng)支持該接口,如LMS Test Lab、B&KPULES等。通過OLE Automation的機(jī)制以對象的方式來調(diào)用這些軟件的功能,抽取指定的試驗(yàn)數(shù)據(jù),再經(jīng)過格式轉(zhuǎn)換和清洗,便可實(shí)現(xiàn)試驗(yàn)數(shù)據(jù)結(jié)構(gòu)化入庫。
2.2 中間文件法
有些測試系統(tǒng)不支持Automation軟件的二次開發(fā)接口,但可以導(dǎo)出特定格式的中間結(jié)果文件,如HEAD Acoustics、HEAD Artemis等。對于該類測試系統(tǒng),可以通過定義對應(yīng)的元數(shù)據(jù)對象,再對中間文件按照單位和量綱篩選指定數(shù)據(jù),進(jìn)行抽取和清洗來實(shí)現(xiàn)結(jié)構(gòu)化轉(zhuǎn)換。
2.3 預(yù)定義模板法
一些測試儀器產(chǎn)生的數(shù)據(jù)是以手工形式記錄的,如車外加速噪聲等。對該類數(shù)據(jù)需要預(yù)先定義模板文件進(jìn)行人工填寫。這種數(shù)據(jù)在實(shí)現(xiàn)結(jié)構(gòu)化入庫時最簡便。
本文的Portlet開發(fā)過程以上述三種方法建立的汽車試驗(yàn)數(shù)據(jù)庫作為底層數(shù)據(jù)支撐。
3 結(jié)構(gòu)化數(shù)據(jù)向標(biāo)準(zhǔn)數(shù)據(jù)的映射
汽車試驗(yàn)是工程領(lǐng)域的活動。汽車試驗(yàn)數(shù)據(jù)庫與普通的商業(yè)數(shù)據(jù)庫有很大差異。汽車試驗(yàn)數(shù)據(jù)有自身的特點(diǎn),包括:試驗(yàn)數(shù)據(jù)的不一致性、試驗(yàn)數(shù)據(jù)的多變性、試驗(yàn)數(shù)據(jù)的專業(yè)性和試驗(yàn)數(shù)據(jù)的海量性等。經(jīng)過結(jié)構(gòu)化轉(zhuǎn)換后的數(shù)據(jù)在關(guān)系數(shù)據(jù)庫中的存儲形式也區(qū)別于普通商用數(shù)據(jù)庫。這些特點(diǎn)給數(shù)據(jù)的可視化帶來了困難。因此在開發(fā)Portlet程序時,需要一個獨(dú)立的、與平臺無關(guān)的且流動性好的數(shù)據(jù)載體,來解決數(shù)據(jù)的集成、傳遞以及發(fā)布等問題。
可擴(kuò)展標(biāo)記語言(XML)是一種跨平臺的開放式語言,作為W3C(World Wide Web Consortium)的一種推薦標(biāo)準(zhǔn)具有嚴(yán)格的定義。XML具有規(guī)范性強(qiáng)、靈活、可擴(kuò)展性強(qiáng)、可讀性強(qiáng)、與設(shè)備及應(yīng)用程序無關(guān),以及實(shí)現(xiàn)數(shù)據(jù)內(nèi)容與顯示方式分離等優(yōu)點(diǎn)。目前,由于XML在基于網(wǎng)絡(luò)的數(shù)據(jù)傳輸上的優(yōu)勢,其已成為Web應(yīng)用數(shù)據(jù)交換事實(shí)上的標(biāo)準(zhǔn)格式。采用XML作為試驗(yàn)數(shù)據(jù)可視化的轉(zhuǎn)換載體,事實(shí)上是將關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)映射成虛擬的XML數(shù)據(jù)。從應(yīng)用的方面來說,可視化程序所獲得的數(shù)據(jù)都是以XML格式所表示的,而真正的數(shù)據(jù)則是以記錄的方式存儲在關(guān)系數(shù)據(jù)庫中。該技術(shù)既可以利用關(guān)系數(shù)據(jù)庫強(qiáng)大的存儲及查詢功能,又可以更好地對試驗(yàn)數(shù)據(jù)按照圖形可視化的需求進(jìn)行數(shù)據(jù)映射。本文從基于Portlet的數(shù)據(jù)重用的角度,采用XML作為數(shù)據(jù)交換的載體。
XML提供了兩種建模手段:文檔類型定義(Document Type Definition,DTD)和XML Schema模式。由于試驗(yàn)數(shù)據(jù)的特殊性和復(fù)雜性,在開發(fā)數(shù)據(jù)重用Portlet程序時,采用XML Schema模式轉(zhuǎn)化方法實(shí)現(xiàn)從關(guān)系數(shù)據(jù)到XML數(shù)據(jù)的轉(zhuǎn)化。
3.1 獲取關(guān)系模式的數(shù)據(jù)
在Portlet開發(fā)中,通過JDBC API技術(shù)準(zhǔn)確獲取數(shù)據(jù)庫中的結(jié)構(gòu)化數(shù)據(jù),并對特殊類型的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,對單位和量綱進(jìn)行重新組織。不同的測試系統(tǒng)和測試人員會使用不同的數(shù)據(jù)單位,如聲壓數(shù)據(jù)的單位有Pa和dB,轉(zhuǎn)速的單位有rad/s和r/min。這些單位在結(jié)構(gòu)化入庫時已做過統(tǒng)一的規(guī)定,在數(shù)據(jù)重用的時候要根據(jù)具體需求對查詢到的數(shù)據(jù)單位重新進(jìn)行換算。有些試驗(yàn)數(shù)據(jù)以特殊的數(shù)據(jù)類型存儲,通過SQL語言查詢到之后無法直接使用,必須通過Java程序進(jìn)行轉(zhuǎn)換,如BLOB類型、CLOB類型等。
3.2 關(guān)系數(shù)據(jù)向XML數(shù)據(jù)映射
關(guān)系模式是一種扁平(flat)結(jié)構(gòu),而XML Schema模式則是由多層嵌套的元素組成的層次結(jié)構(gòu)。關(guān)系數(shù)據(jù)庫向XML映射包括模式映射和數(shù)據(jù)映射兩個部分。模式映射將關(guān)系模式映射為XML模式,是結(jié)構(gòu)上的轉(zhuǎn)換,數(shù)據(jù)映射是在生成XML模式后,將數(shù)據(jù)庫中相應(yīng)的數(shù)據(jù)依據(jù)XML模式映射成XML數(shù)據(jù)。將關(guān)系數(shù)據(jù)庫轉(zhuǎn)換為XML數(shù)據(jù)的目標(biāo)是:XML Schema模式應(yīng)該保留關(guān)系模式中的約束,不丟失語義,生成的XML數(shù)據(jù)不產(chǎn)生冗余。
將關(guān)系數(shù)據(jù)轉(zhuǎn)換為XML數(shù)據(jù),最主要的是進(jìn)行模式映射,模式是基礎(chǔ),只有定義好了模式,才能根據(jù)模式生成不丟失原數(shù)據(jù)庫語義的XML數(shù)據(jù)。模式映射主要是將關(guān)系數(shù)據(jù)庫的關(guān)系表、屬性和表之間的聯(lián)系向XML模式轉(zhuǎn)換。模式映射的規(guī)則為:1)將表映射為XML Schema模式的complexType全局定義。2)將表的每一個列映射為complexType的子元素。3)將每列的元素映射為列元素對應(yīng)的XML Schema元素的屬性。4)利用minOccurs和maxOccurs屬性描述外鍵的取值是否唯一。例如,在編寫顯示車內(nèi)噪聲—發(fā)動機(jī)轉(zhuǎn)速曲線的Portlet程序時,映射規(guī)則如下:
數(shù)據(jù)映射是將關(guān)系數(shù)據(jù)庫中的試驗(yàn)數(shù)據(jù)映射到XML中,采用的Java API接口主要是com.bowstreet.util.IXml,其采用標(biāo)準(zhǔn)的DOM(Document Object Model)方式處理數(shù)據(jù),可以實(shí)現(xiàn)插入XML元素(Element)、獲取文本(Text)和設(shè)置屬性(Attribute)等常規(guī)的XML操作。
在開發(fā)Portlet程序時,通過上述過程完成了數(shù)據(jù)的組織和映射,使試驗(yàn)數(shù)據(jù)從關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)轉(zhuǎn)化為規(guī)范化的XML數(shù)據(jù)。
4 數(shù)據(jù)的圖形可視化
數(shù)據(jù)圖形可視化(visualization)是利用計(jì)算機(jī)圖形學(xué)和圖像處理技術(shù),將數(shù)據(jù)轉(zhuǎn)換成圖形或圖像在屏幕上顯示出來,并進(jìn)行交互處理的理論、方法和技術(shù)。在Portlet程序開發(fā)中,可視化功能可以讓用戶通過對圖形的交互操作來觀察數(shù)據(jù)及其結(jié)構(gòu)關(guān)系,發(fā)現(xiàn)數(shù)據(jù)中的隱含數(shù)據(jù)規(guī)律或經(jīng)驗(yàn)內(nèi)容。圖形可視化以映射后的標(biāo)準(zhǔn)XML數(shù)據(jù)為基礎(chǔ)。
一維數(shù)據(jù)是一些單值數(shù)據(jù),主要是油耗值、排放值、外形尺寸或其他指標(biāo)性數(shù)據(jù)。對此類型的數(shù)據(jù)通過表格和圖表的方式顯示,并且具備如下功能:1)顯示的表格、圖表可以打印和導(dǎo)出為Excel文件,方便生成報告。2)通用白定義過濾條件可以實(shí)現(xiàn)對指定數(shù)據(jù)按條件過濾,如按日期、數(shù)據(jù)值、試驗(yàn)人員和試驗(yàn)車型等。3)對同一數(shù)據(jù)條目可以在表格和圖表之間互相切換以實(shí)現(xiàn)數(shù)據(jù)的挖掘。對表格可以進(jìn)行列排序,對圖表以柱狀圖、餅圖等不同類型顯示。4)能對數(shù)據(jù)設(shè)定一個閾值,對超過上、下限的數(shù)據(jù)以鮮明的顏色顯示。例如,通過開發(fā)的Portlet可視化程序,對某系列參考車型的基本尺寸數(shù)據(jù)進(jìn)行對比,可以在如圖2所示的汽車試驗(yàn)數(shù)據(jù)柱狀圖界面和如圖3所示的表格界面之間切換,長、寬和軸距等數(shù)據(jù)以不同顏色顯示,可以打印、導(dǎo)出,便于觀察。
圖2 汽車試驗(yàn)數(shù)據(jù)柱狀圖界面
圖3 汽車試驗(yàn)數(shù)據(jù)表格界面
二維數(shù)據(jù)是隨時間、轉(zhuǎn)速和頻率等變化的歷程數(shù)據(jù),如車內(nèi)噪聲轉(zhuǎn)速曲線、加速度時間曲線和消聲器傳聲損失頻率曲線等。通過散點(diǎn)圖的形式生成具有坐標(biāo)的曲線圖,還需要加入圖形縮放、峰值捕捉及圖形移動等功能。同時要求能在一個圖形中同時加載若干條曲線進(jìn)行對比,且曲線以不同顏色表示,方便區(qū)分。例如,通過開發(fā)的Portlet程序?qū)ο暺鱾髀晸p失隨頻率變化的曲線進(jìn)行對比時,生成如圖4所示的消聲器傳聲損失曲線界面,程序具有可以打印圖片、可以切換到表格觀察數(shù)據(jù)并導(dǎo)出、可以實(shí)現(xiàn)對圖形的縮放和鼠標(biāo)在曲線上方時自動顯示該點(diǎn)數(shù)據(jù)值等功能。通過對比可以清晰地看出不同結(jié)構(gòu)的消聲器傳聲損失的差別。
圖4 消聲器傳聲損失曲線界面
圖4中每條噪聲曲線實(shí)際是由上萬個離散點(diǎn)組成,處理此類工程數(shù)據(jù)對速度要求較高。某汽車工程研究院基于本文的試驗(yàn)數(shù)據(jù)入庫方法積累的數(shù)據(jù)量已達(dá)到Tb級,對這樣海量的數(shù)據(jù)實(shí)現(xiàn)基于Web方式操作和顯示且能滿足速度和實(shí)時性要求并非易事。本文通過Java Portlet規(guī)范與XML相結(jié)合的方式實(shí)現(xiàn)的顯示功能,應(yīng)用效果完全可以滿足要求。
5 結(jié)語
本文提出了按照J(rèn)ava Portlet規(guī)范來實(shí)現(xiàn)整個汽車試驗(yàn)數(shù)據(jù)的重用過程。針對不同類型的數(shù)據(jù)開發(fā)了若干Portlet程序,實(shí)現(xiàn)了常見類型數(shù)據(jù)從原始數(shù)據(jù)結(jié)構(gòu)化到數(shù)據(jù)查詢轉(zhuǎn)換、映射和可視化的整個重用過程。
通過這種基于Web的重用方式,解決了傳統(tǒng)C/S架構(gòu)的客戶端程序可擴(kuò)展性和可移植性差的缺點(diǎn)。從試驗(yàn)數(shù)據(jù)重用的效果看,可以滿足處理海量工程數(shù)據(jù)的要求。這種基于SOA架構(gòu)的Portlet程序可以作為一個有機(jī)的部分整合到大型汽車制造企業(yè)現(xiàn)有的PLM系統(tǒng)中,便于對數(shù)據(jù)的挖掘和重用。
本文對試驗(yàn)數(shù)據(jù)的重用研究涵蓋了絕大多數(shù)汽車領(lǐng)域的數(shù)據(jù)類型,但部分特殊類型的數(shù)據(jù)尚未開發(fā)相應(yīng)的可視化Portlet程序,如振動模態(tài)動畫等。在后續(xù)的開發(fā)中將進(jìn)行逐步完善。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標(biāo)題:基于Java Portlet規(guī)范的汽車試驗(yàn)數(shù)據(jù)重用研究
本文網(wǎng)址:http://www.oesoe.com/html/solutions/14019312540.html