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