0 引言
汽车整车及零/部件的开发需要进行反复的试验验证,产生大量的试验数据。但是来自不同厂家的试验测试系统产生的试验结果在数据类型和保存格式上均不相同。数据的查看和分析必须依赖原测试系统的软件环境,导致试验人员无法查看所有数据的统一视图。对成本高昂的试验数据进行有效重用已成为支撑汽车整车及零/部件研发的迫切需求,也是产品生命周期管理(Product Lifecycle Management,PLM)的重要组成部分。
目前针对汽车试验数据的重用主要是基于C/S架构,采用OpenGL、DirectX等技术的客户端程序。随着Internet/lntranet及Web技术的快速发展,基于B/S的多层分布式架构表现出了通用性强、易于操作且扩展性好等优势,已成为贴近企业应用的工程软件开发模式的一种必然趋势。对于大型汽车制造企业来说,试验数据可能分布在不同分厂和试验单位的数据库中,利用网络的资源优势,可以提高数据重用的效果与效率。C/S架构的客户端程序已经不能完全满足这些要求。
Portlet是基于Java技术、可插拔的Web组件,由负责处理请求和生成动态内容的Portlet容器管理。按照Portlet规范标准(Java Standardization Request 286,JSR 286)实现的汽车试验数据重用是面向服务架构(Service-Oriented Architecture,SOA)的,可以在所有符合该标准的Java Portlet服务器上运行,解决了程序移植和跨平台的问题。目前大型汽车制造企业正逐步实施PLM,采用Web方式的重用技术使试验数据可以作为PLM体系中一个重要的组成部分,得到充分利用。
本文按照Java Portlet规范,研究了汽车试验数据重用的整个过程,并开发了若干Portlet程序。
1 汽车试验数据重用的流程
试验数据的重用是将原始的试验数据进行抽取、整理、结构化转换、映射和图形可视化,使海量的数据得以有效利用。基于Portlet的数据重用是将整个程序开发过程按照Portlet规范进行。Portlet遵循模型一视图控制器(MVC)设计模式,每个Portlet程序都是一个完整的Web Application方式,包括了数据的查询、映射到图形可视化的整个过程。
试验数据最终以图形、表格等形式显示在Web页面上。每个包含可视化图形的页面都可以划分为多个Portlet区域,每个区域展现的内容是相互独立的,只要对开发完成的Portlet程序进行简单添加组合就可以按照用户的请求展示可视化图形。在数据重用时不同数据类型需开发相应的Portlet程序。汽车试验数据重用Portlet程序的流程如图1所示。
1)对不同试验测试系统产生的数据进行抽取、转换和清洗,得到结构化数据,存储到DB2、ORACLE等大型关系数据库中。
2)连接数据库,通过SQL技术取得经过整理和结构化转换的原始数据。将数据库的原始数据按照一定规则进行映射,得到所需的规范化XML数据。
3)对规范化数据进行绘制和显示,得到可视化信息。
图1 汽车试验数据重用Portlet程序的流程
2 汽车试验数据结构化入库
汽车试验数据来源于不同的商用测试系统,这些测试系统产生的数据格式各不相同,都有自己独特的处理方式和流程,没有通用的处理模式和处理程序能直接管理所有厂商的测试数据,并且商业测试系统的软件缺乏对试验环境、测试对象运行条件、试验细节、参数信息以及工况信息等辅助属性信息的记录。将众多不同格式的非结构化数据和辅助属性信息融合到数据库系统中进行统一管理,是汽车试验数据重用的基础。
目前已有成熟的试验数据结构化转换的解决方案,采用的方法主要有如下几种。
2.1 OLE Automation接口法
OLE Automation是一种基于COM(Component Object Model)的技术,它允许应用程序使用其他应用程序提供的通用接口来访问其组件和功能。一些数据格式不开放的测试系统支持该接口,如LMS Test Lab、B&KPULES等。通过OLE Automation的机制以对象的方式来调用这些软件的功能,抽取指定的试验数据,再经过格式转换和清洗,便可实现试验数据结构化入库。
2.2 中间文件法
有些测试系统不支持Automation软件的二次开发接口,但可以导出特定格式的中间结果文件,如HEAD Acoustics、HEAD Artemis等。对于该类测试系统,可以通过定义对应的元数据对象,再对中间文件按照单位和量纲筛选指定数据,进行抽取和清洗来实现结构化转换。
2.3 预定义模板法
一些测试仪器产生的数据是以手工形式记录的,如车外加速噪声等。对该类数据需要预先定义模板文件进行人工填写。这种数据在实现结构化入库时最简便。
本文的Portlet开发过程以上述三种方法建立的汽车试验数据库作为底层数据支撑。
3 结构化数据向标准数据的映射
汽车试验是工程领域的活动。汽车试验数据库与普通的商业数据库有很大差异。汽车试验数据有自身的特点,包括:试验数据的不一致性、试验数据的多变性、试验数据的专业性和试验数据的海量性等。经过结构化转换后的数据在关系数据库中的存储形式也区别于普通商用数据库。这些特点给数据的可视化带来了困难。因此在开发Portlet程序时,需要一个独立的、与平台无关的且流动性好的数据载体,来解决数据的集成、传递以及发布等问题。
可扩展标记语言(XML)是一种跨平台的开放式语言,作为W3C(World Wide Web Consortium)的一种推荐标准具有严格的定义。XML具有规范性强、灵活、可扩展性强、可读性强、与设备及应用程序无关,以及实现数据内容与显示方式分离等优点。目前,由于XML在基于网络的数据传输上的优势,其已成为Web应用数据交换事实上的标准格式。采用XML作为试验数据可视化的转换载体,事实上是将关系数据库中的数据映射成虚拟的XML数据。从应用的方面来说,可视化程序所获得的数据都是以XML格式所表示的,而真正的数据则是以记录的方式存储在关系数据库中。该技术既可以利用关系数据库强大的存储及查询功能,又可以更好地对试验数据按照图形可视化的需求进行数据映射。本文从基于Portlet的数据重用的角度,采用XML作为数据交换的载体。
XML提供了两种建模手段:文档类型定义(Document Type Definition,DTD)和XML Schema模式。由于试验数据的特殊性和复杂性,在开发数据重用Portlet程序时,采用XML Schema模式转化方法实现从关系数据到XML数据的转化。
3.1 获取关系模式的数据
在Portlet开发中,通过JDBC API技术准确获取数据库中的结构化数据,并对特殊类型的数据进行转换,对单位和量纲进行重新组织。不同的测试系统和测试人员会使用不同的数据单位,如声压数据的单位有Pa和dB,转速的单位有rad/s和r/min。这些单位在结构化入库时已做过统一的规定,在数据重用的时候要根据具体需求对查询到的数据单位重新进行换算。有些试验数据以特殊的数据类型存储,通过SQL语言查询到之后无法直接使用,必须通过Java程序进行转换,如BLOB类型、CLOB类型等。
3.2 关系数据向XML数据映射
关系模式是一种扁平(flat)结构,而XML Schema模式则是由多层嵌套的元素组成的层次结构。关系数据库向XML映射包括模式映射和数据映射两个部分。模式映射将关系模式映射为XML模式,是结构上的转换,数据映射是在生成XML模式后,将数据库中相应的数据依据XML模式映射成XML数据。将关系数据库转换为XML数据的目标是:XML Schema模式应该保留关系模式中的约束,不丢失语义,生成的XML数据不产生冗余。
将关系数据转换为XML数据,最主要的是进行模式映射,模式是基础,只有定义好了模式,才能根据模式生成不丢失原数据库语义的XML数据。模式映射主要是将关系数据库的关系表、属性和表之间的联系向XML模式转换。模式映射的规则为:1)将表映射为XML Schema模式的complexType全局定义。2)将表的每一个列映射为complexType的子元素。3)将每列的元素映射为列元素对应的XML Schema元素的属性。4)利用minOccurs和maxOccurs属性描述外键的取值是否唯一。例如,在编写显示车内噪声—发动机转速曲线的Portlet程序时,映射规则如下:
数据映射是将关系数据库中的试验数据映射到XML中,采用的Java API接口主要是com.bowstreet.util.IXml,其采用标准的DOM(Document Object Model)方式处理数据,可以实现插入XML元素(Element)、获取文本(Text)和设置属性(Attribute)等常规的XML操作。
在开发Portlet程序时,通过上述过程完成了数据的组织和映射,使试验数据从关系数据库中的数据转化为规范化的XML数据。
4 数据的图形可视化
数据图形可视化(visualization)是利用计算机图形学和图像处理技术,将数据转换成图形或图像在屏幕上显示出来,并进行交互处理的理论、方法和技术。在Portlet程序开发中,可视化功能可以让用户通过对图形的交互操作来观察数据及其结构关系,发现数据中的隐含数据规律或经验内容。图形可视化以映射后的标准XML数据为基础。
一维数据是一些单值数据,主要是油耗值、排放值、外形尺寸或其他指标性数据。对此类型的数据通过表格和图表的方式显示,并且具备如下功能:1)显示的表格、图表可以打印和导出为Excel文件,方便生成报告。2)通用白定义过滤条件可以实现对指定数据按条件过滤,如按日期、数据值、试验人员和试验车型等。3)对同一数据条目可以在表格和图表之间互相切换以实现数据的挖掘。对表格可以进行列排序,对图表以柱状图、饼图等不同类型显示。4)能对数据设定一个阈值,对超过上、下限的数据以鲜明的颜色显示。例如,通过开发的Portlet可视化程序,对某系列参考车型的基本尺寸数据进行对比,可以在如图2所示的汽车试验数据柱状图界面和如图3所示的表格界面之间切换,长、宽和轴距等数据以不同颜色显示,可以打印、导出,便于观察。
图2 汽车试验数据柱状图界面
图3 汽车试验数据表格界面
二维数据是随时间、转速和频率等变化的历程数据,如车内噪声转速曲线、加速度时间曲线和消声器传声损失频率曲线等。通过散点图的形式生成具有坐标的曲线图,还需要加入图形缩放、峰值捕捉及图形移动等功能。同时要求能在一个图形中同时加载若干条曲线进行对比,且曲线以不同颜色表示,方便区分。例如,通过开发的Portlet程序对消声器传声损失随频率变化的曲线进行对比时,生成如图4所示的消声器传声损失曲线界面,程序具有可以打印图片、可以切换到表格观察数据并导出、可以实现对图形的缩放和鼠标在曲线上方时自动显示该点数据值等功能。通过对比可以清晰地看出不同结构的消声器传声损失的差别。
图4 消声器传声损失曲线界面
图4中每条噪声曲线实际是由上万个离散点组成,处理此类工程数据对速度要求较高。某汽车工程研究院基于本文的试验数据入库方法积累的数据量已达到Tb级,对这样海量的数据实现基于Web方式操作和显示且能满足速度和实时性要求并非易事。本文通过Java Portlet规范与XML相结合的方式实现的显示功能,应用效果完全可以满足要求。
5 结语
本文提出了按照Java Portlet规范来实现整个汽车试验数据的重用过程。针对不同类型的数据开发了若干Portlet程序,实现了常见类型数据从原始数据结构化到数据查询转换、映射和可视化的整个重用过程。
通过这种基于Web的重用方式,解决了传统C/S架构的客户端程序可扩展性和可移植性差的缺点。从试验数据重用的效果看,可以满足处理海量工程数据的要求。这种基于SOA架构的Portlet程序可以作为一个有机的部分整合到大型汽车制造企业现有的PLM系统中,便于对数据的挖掘和重用。
本文对试验数据的重用研究涵盖了绝大多数汽车领域的数据类型,但部分特殊类型的数据尚未开发相应的可视化Portlet程序,如振动模态动画等。在后续的开发中将进行逐步完善。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/