李曼丽,易 忠,刘 笑
(北京卫星环境工程研究所,北京 100094)
精度测量(以下简称精测)是指对壳体结构精度和星上仪器设备安装精度的测量,目前所用的测量方法多为经纬仪。精度测量依托于总装精度测量工艺,在卫星总装和试验的不同状态,都需要对卫星反复进行精度测试,以检测卫星及其设备的安装角度和位置度,早期发现卫星的总装问题或是技术设计问题。精测数据库的建立将把以往零散存储的精测数据集中管理,方便精测人员查询和比对,也便于总装工艺人员、总体人员、分系统人员查询和分析。
(1) 以现有的精测流程为基准,建立精测数据库。主要目标如下:
进一步规范精测流程,严格按照标准程序执行;精测数据的有效集成便于精测人员对精测数据的分析,同时开放对外部程序的接口,有利于数据的共享;各类精测相关文档以数据文件的形式保存,为精测数据库增加非数据类的有效信息,便于文档的日后查询;与其他质测、检漏等数据库相集成,建成AIT测试的一体化信息系统的基础数据库。
(2) 精测数据库系统的用户是参与精度测量的操作人员、精测数据分析人员、总装工艺人员、总体人员、分系统人员和与精测相关的其他人员等。
2.2.1 对功能的需求
(1) 存储各类精测相关文件;
(2) 存储各类精测数据;
(3) 根据入库的精测数据计算精度值;
(4) 查询精测相关数据和文档。
2.2.2 对性能的需求
(1) 数据库容量:采用现有Oracle9i数据库可以满足;
(2) 入库速度:各类文件的录入,单个文件入库时间不大于2 s;
(3) 响应速度:即时反应在用户界面中,响应时间不大于1 s;
(4) 数据类型:支持文档、数据、图表等多种数据类型;
2.2.3 输入、输出要求
输入的文档文件:
(1) 总体技术要求;
(2) 分系统技术要求(如果是分系统精测);
(3) 总装工艺流程;
(4) 精测工艺;
(5) 精测报告。输出:处理前后的精测数据、各类文档。
2.2.4 接口要求
与看板生产数据库实现无缝接口,同时预留硬件方面支持所需打印机、扫描仪、服务器等外部设备。
图1为精度测量流程,详细说明了精度测量的实际流程和思路。精度测量从总体或分系统的技术要求出发,工艺室根据总体或分系统的技术要求制定技术流程,精测工艺人员根据技术要求和技术流程制定精测工艺。精度测量要依据以上几个文件的要求来进行操作,如果精度符合技术要求,证明精度测量通过,可以交付;如果精度不符合技术要求,就需要总装人员进行反复调节,直到精度符合技术要求[1]。在精度调节过程中,如果发现设计问题,应当发送现场处理单到总体或分系统送测方更改设计问题,重新进行以上步骤。精度测量成功后,需要撰写精度测量报告交付给总体或分系统,并将相关资料归档以便日后查询。
在型号研制过程中,包含多个精测工况。每个精测工况都要进行上述流程,直到所有工况精测任务完成,该型号精测工作才能结束。
图 1 精度测量流程图Fig.1 Flow chart of precision measurement
精度测量数据库系统结构设计如图2所示。数据库系统的入口为精测相关的各类文件和数据,这里具体指总体技术要求和分系统技术要求、技术流程、精测工艺、精测报告等,这几种文件具有指导精度测量的作用,所以必须及时、准确、有效地存储到数据库中。精测过程中得到的数据(角度、位置度等)和精度调节方法是精度测量的重要结果,也是精测数据库的核心部分。在精测数据库中,精测数据隶属于精测的型号和工况,指导工况的作业,为型号研制生产服务。
图 2 精测数据库系统结构图Fig.2 Structure of precision measurement database
精度测量数据库的设计采用B/S模式,便于分布式部署和用户快捷使用。系统采用标准J2EE结构,利用Java语言开发,具有较强的可移植性和可扩充性。后台数据库采用功能较为强大的Oracle10g数据库平台,在安全性和可靠性方面都集成了较为强大的功能。
精度测量数据库还包括相应的应用系统作为支持。主要包括数据入库/出库系统、数据查询系统、权限管理系统、系统管理系统和数字签名系统,其中本期试点工程需要解决前4个主要部分的开发和应用,数据签名系统有待与其他系统集成考虑,所以放在后期开发中完成。
精测数据库的系统模块设计如图3所示,主要包括数据入库/出库模块设计、数据查询模块设计、权限管理模块设计、系统管理模块设计。
图 3 精测数据库系统模块设计图Fig.3 Modules of precision measurement database
4.2.1 数据入库/出库模块设计
精测数据库的数据入库/出库模块主要分为4部分内容:数据入库子模块、相关文档入库子模块、数据出库子模块和相关文档出库子模块,针对的对象主要是精测生成的各种历史数据和相关文档。数据入库/出库模块是精测数据库的入口,是后续各个应用系统的基础,其作用至关重要,对准确性要求非常高。
(1) 数据入库子模块:传输部分位于客户端,接收与数据入库部分位于服务器上,通过数据入库界面将精测数据存入到数据库中。其中还包括对精测项目的建立,主要指型号建立、工况建立、精测项目建立等。
(2) 相关文档入库子模块:此功能模块主要提供电子文档入库功能。将电子文档作为一个blob字段存入到数据库中,并记录这些文件的相关信息,用户可以通过相关的查询操作来实现对这些文件和信息的访问。
(3) 数据出库子模块:数据输出模块作为整个系统不可缺少的一部分,其作用在于向用户提供一种以文本方式获得精测数据的手段,方便用户查询历史精测数据文件,并进行比较。
(4) 相关文档出库子模块:用于为用户提供相关精测文档的输出接口,便于用户对精测文档的操作、查询和管理。
4.2.2 数据查询模块设计
精测数据库数据查询模块采用B/S模式进行查询。B/S模式的设计是针对使用IE浏览器通过Internet或Intranet接入本系统的用户。这类用户可以通过浏览网页的方式与系统数据库进行交互来完成信息的查询和获取。根据具体业务需求的规定,在这种方式下实现数据查询分为按型号查询(基本查询)、按工况查询、按精测项目查询、复合查询、文档查询。
4.2.3 权限管理模块设计
本系统分为两大部分,一部分为安全管理,一部分为权限验证。其中安全管理模块又分为组织管理、权限管理、会话管理和日志管理。图4为精测数据库权限管理E-R图。每个用户组只能拥有一张访问控制表,同理每张表只能包括一个用户组,否则容易造成权限的混淆;一个用户只能属于一个用户组,但一个用户组可以有多个用户;一个用户也可以是一个用户组;一个用户只能属于一个部门,一个部门可以有多个用户。
图 4 精测数据库权限管理E-R图Fig.4 Access control E-R chart of precision measurementdatabase
在每个表中,都有主键和外键,这样可以保证数据库的实体完整性(如果数据库表的所有行能惟一确定,则称该表为实体完整性。即每个表的 PK值必须惟一且不能为空值)和参照完整性(一个表中正确的 FK值必须与相关联的表中的PK值相匹配或者必须是空值。如果表的FK值符合“匹配或空值”要求,则称其具有参照完整性。参照完整性确保不可能指向不存在的PK值。因为一个表中的FK值一般是相关表中的PK值)[2]。
4.2.4 系统管理模块设计
系统管理模块设计见图3的精测数据库系统模块设计图所示。系统管理模块主要负责管理系统相关的各种信息,包括修改、删除型号、工况、数据、文件操作和对数据文件的备份操作。系统管理模块主要包括数据文件管理和数据文件备份。其中数据文件管理包括型号管理、工况管理、数据管理和文件管理;数据文件备份包括数据备份和文件备份。
数据文件管理子模块主要负责管理数据文件的相关信息。对航天器型号、工况、数据、文件的管理、修改和删除,这部分需要权限较高的用户来完成,一旦删除航天器型号,所有隶属于该型号的工况信息、数据信息和文件信息都将被删除,并无法恢复,所以删除操作需要慎重。
数据文件备份子模块主要负责备份数据信息和文件信息。为了避免硬件损坏、网络故障、非法攻击、误操作、火灾等意外带来的数据丢失,必须建立有效机制,定期备份数据和文件是一个有效保护数据库的手段。该备份功能应该在手工备份的基础上实现程序自动定期备份,充分提高管理员的工作效率,这是系统管理模块的一个难点所在。
为了应对试验数字化平台建设面临的技术挑战,例如试验数据动态建库、Web门户自动生成、数据结构复杂多变和各种数据格式的转换等问题,在设计上采用了以下关键技术,很好地解决了这些难题。
针对试验数据的多变性和不可预测性,把试验数据管理中易变或不确定的部分从软件中剥离出来,用元数据(Meta-data)来描述它们。
工程技术人员通过使用提供的可视化工具(Design Studio)能直观和动态地定义数据库模型和业务逻辑并转换成元数据。平台的引擎(Engine)在元数据的驱动下能自动对数据库操作,自动更改业务逻辑并自动更新用户界面等,而不需要软件技术人员修改程序。元数据就像知识,引擎就像人的大脑,大脑可以学习知识,并能根据其所学到的知识进行思维和控制其他器官的行动。航天器精度测量数据库的架构设计思想就是基于这个原理,如图 5所示。元数据驱动(Meta-data Driven)的软件架构提供了强大的灵活性和适应性,这是试验数据管理软件不可或缺的特性。
图 5 元数据驱动工作原理图Fig.5 Working principle of meta-data driving
航天器精度测量数据虽然是以关系数据库为基础,但能够支持面向对象的数据建模方式,可以包括表达数据类之间的继承关系(Inheritance Relationship)在内的试验数据的全部语义结构。继承关系在表达试验数据的语义结构中起到重要的作用,它可以建立数据结构的抽象数据类(Abstract Classes)信息。
同时,为方便工程技术人员建立试验数据库,提供了标准的面向对象模板(Object-oriented Data Model),该模板包含抽象数据类、公共属性和抽象数据类之间的关联关系等。工程技术人员可通过添加子数据类和特殊属性的方式在模板上扩展,既保证了数据库中的试验数据具有一定的一致性,又兼顾了不同试验数据的特殊性,同时也简化了工程数据人员的建库操作步骤。面向对象的建库原理图(图 6)中的“试验件描述”、“试验要求”和“试验测量数据”为抽象数据类;而“涡轮发动机描述”、“涡轮发动机试验要求”和“涡轮发动机试验测量数据”等为工程技术人员所扩展的子数据类。
图 6 面向对象的建库原理图Fig.6 Working principle of object oriented database
对试验数据管理的主要目的是为了更好和更方便地使用它们。使用试验数据中很重要的环节就是将试验数据从一种格式转换成设计软件、绘图软件或其他后数据处理系统所要求的格式。
航天器精度测量数据库的一个重要技术特色是通过XML Schema和XQuery技术将关系数据库中的数据映射成虚拟的 XML数据库(Virtual XML Database),既能充分利用关系数据库的强大存储和查询功能,又极大地方便了对试验数据进行后置处理所需要的格式转换。图7是虚拟XML数据库技术示意图。
图 7 虚拟XML数据库技术示意图Fig.7 Sketch map of virtual XML database
大量的工程实践已经证明,由于工程应用领域对数据管理的要求与商业应用领域对数据管理的要求存在极大的差异,甚至有许多是本质上的区别,用传统的DBMS来管理工程数据是难以胜任的[3]。
一般地讲,试验和测试是根据产品开发的需要而进行的,而诸如国防武器等复杂系统的开发过程是分阶段进行的。在不同阶段所需要进行试验的项目和内容都不相同,各个阶段要求解决的子任务不同,所关心的数据对象各异,但整体上又相互关联;数据来源既有静态的规范数据,又有随着过程发展不断产生的动态构造数据、信息增长数据、试验性临时数据等,数据结构和记录数项往往要根据工程对象而改变,数据量大、种类多、结构复杂。精测数据库的建立采用先进的测试数据库模型将实现精测数据库数据的有效管理。
(References)
[1]徐福祥.卫星工程[M].北京: 中国宇航出版社, 2002
[2]李禹生, 等.数据库应用技术[M].北京: 中国水利水电出版社, 2002
[3]连卫民, 张建伟.基于Web工程数据库的SQL语言系统的设计与实现[J].计算机工程与设计, 2006,27(18)