王晓斌 古 伟
北京强度环境研究所,北京100076
航天产品从论证到最后交付使用,期间要通过各种不同试验验证,产生大量的试验数据。由于试验性质、设备、场合的多样性,造成试验数据的独特性与多样性。存放地点与媒介不同、数据格式不一致、处理方法与软件工具不同、数据交换方式不同,由此也产生了在数据管理与使用方面的一些问题,主要体现在数据管理效率低、数据利用率低、数据处理准确性差、试验数据的深层次价值无法充分挖掘、安全保密性差等方面。
因此,如何有效管理与使用这些宝贵的数据,充分发掘它们的价值,是保证型号研制质量、进度以及后续型号改进的关键因素之一。
航天产品研制是极其复杂的系统工程,整个研制试验过程涉及到不同阶段的各种试验,需要根据试验分析结果来验证设计与配套设备的有效性和可靠性。
多年来,在一系列试验数据分析与管理系统的设计开发过程中,针对型号产品研制的特点,对不同用户的功能需求和使用要求进行了综合分析与研究,总结出了试验数据分析与管理系统的设计目标与基本功能要求。
对于试验数据的分析与管理不能仅仅局限于零散的试验数据本身,而需要从系统角度出发,根据研制流程要求,把产品配套管理、研制阶段管理、试验数据管理、试验数据处理、试验结果分析评估等元素纳入到系统中,为产品配套、设计改进、后续产品研制提供决策依据。这是试验数据分析与管理系统的基本设计目标。系统组成结构示意如图1 所示。
图1 系统组成结构示意图
试验数据分析与管理系统应满足以下要求:
1)安全保密控制管理
试验数据属于涉密信息,作为数据管理系统也是涉密应用系统。涉密应用系统须按照涉密信息系统相关安全保密规定进行安全控制管理,授权应遵循最小授权、相互制约和相互监督原则,角色划分应满足涉密信息系统分级保护要求。
2)流程控制管理
流程控制是保障试验数据准确录入、试验数据正确处理、试验结果准确利用、实现数据安全保密的重要机制。流程涉及到数据入库、处理、评估、配套、下载等方面,建立事件自动提醒机制,将流程节点事件自动发送到相关角色的工作面。
3)产品配套与研制阶段管理
虽然试验数据分析与管理系统的主要功能不是进行产品配套管理与研制阶段管理,但最终目的是为产品研制、配套提供服务。因此,须将产品配套信息、研制阶段信息纳入到管理系统中,与试验数据建立关联,以便准确快捷地为产品研制提供依据。
4)试验数据管理
试验数据管理包括数据录入与整理、入库、出库、检索与浏览、下载、导入导出、统计、报表、打印、备份等功能。
数据录入具有手动与自动方式。手动方式下,主要把以文件形式存在的试验数据、音视频信息以及其它信息上传至数据库中。试验数据进行结构化存储,其它信息以试验附件形式存储。在自动方式下,采用数据接口形式与试验记录设备进行对接,自动接收试验数据,进行结构化存储。数据的入库需要通过校对、审核、批准流程,出库、下载需要通过审核、批准流程。
数据检索与浏览以型号、研制阶段、配套部件、批次等为索引,具有精确与模糊查询功能,能够对原始数据、处理结果、试验音视频信息、试验附件以及其它附注信息以文字、曲线、声音、图片、视频图像等形式进行查看浏览。
5)试验数据处理
系统需为试验数据提供进行处理的平台,内置通用处理功能,同时为特殊处理提供与其它处理软件的数据接口。内置处理功能包括预处理、时域处理、频域处理、时频域分析、统计分析、批处理以及其它专业化处理。
数据处理结果能够与自动生成的处理属性和人工添加的处理注释一起提交到数据库进行入库,以便共享处理结果。
6)试验数据分析评估
根据以往试验经验,建立和完善试验数据分析评估专家知识库,提供分析评估推理机制模型,实现试验数据分析评估自动化,为试验件的配套决策、设计改进提供依据。
7)与基础信息平台接口
近年来,航天信息基础平台得到了广泛应用,各单位围绕基础平台开发了各类专业化信息管理系统。为充分方便地利用、共享试验数据价值,试验数据分析与管理系统应具备与基础平台、专业化系统的数据接口。
具有生命力的应用系统,需要具备良好的扩展性,能以最小代价方便地适应不断变化的应用需求。充分挖掘试验数据潜在价值是建立管理系统的终极目标,这是一个需求不断变化、功能不断扩充和完善的过程。为适应这种变化,需要在软件总体结构上采用开放式、层次化、模块化的规划与设计。
图2 MVC 逻辑关系图
MVC(模型-视图-控制器)软件层次结构是目前已被广泛使用的一种成熟的软件结构设计模式。模型(M)表示数据对象以及对其进行的业务处理。视图(V)表示用户操控显示界面。控制器(C)提供处理过程控制,在模型和视图之间起连接作用,负责把用户的请求转换成针对模型的调用,并调用相应的视图来显示数据。MVC 结构使应用程序的输入、处理、输出强制分开,使得软件可维护性、可扩展性、灵活性以及封装性得到提高。
对于信息管理系统的开发,目前主要存在2 种软件设计模式:C/S 模式和B/S 模式。
C/S 模式均衡了服务器端与客户端的负载,充分发挥了客户端计算机的处理能力,能够进行各种复杂的业务处理和界面操作,响应速度快。但C/S模式也存在一些缺陷:各客户端独立的业务处理造成信息的统一管理、同步与共享较为困难;软件开发、升级、维护与管理复杂;各客户端需要与服务器频繁进行大量数据传输,占用较大的网络带宽;客户端用户界面风格不一致,使用复杂,不利于推广使用。
在B/S 模式下,数据存储与大部分的业务处理都在服务器端运行,应用软件部署于服务器端,因此升级维护简单。B/S 模式采用相对独立的多层结构,当软件功能发生变化时,只需在服务器端修改相应层次模块,客户端不需要进行任何改动。B/S 模式将大多数工作放在服务器上完成,增加了服务器的负担。客户端使用浏览器模式,不便于对信息进行复杂的界面操作处理,效率要比C/S 模式低。
图3 B/S 系统流程示意图
试验数据的有效管理、试验成果的最大化价值利用是试验数据分析与管理系统的首要问题。采用B/S 模式系统架构,通过为用户提供便捷的数据录入、查询、检索、浏览、下载等功能,便于试验数据的集中全面管理和试验成果的发布与利用。而对于数据的复杂界面操作处理,可以在页面中结合客户端控件技术或者集成专门客户端分析处理软件(富客户端),形成分布式处理系统,由客户端计算机完成部分复杂的操作处理,这样也能够减轻服务器的处理负担和网络负荷。
数据库技术作为计算机数据处理与信息管理系统的重要组成部分,在解决大量数据有效的组织和存储、保障数据安全、实现数据共享、高效的数据检索及处理等方面发挥着越来越重要的作用,已成为对大量数据进行组织与管理的重要技术手段。数据库技术经过了几十年的发展,目前常用的商业化通用型数据库管理系统包括Oracle,SQL Server,Ingres,Informix,Sybase,DB2 等。
值得指出的是,作为具有我国自主知识产权的数据库管理系统,由北京神舟航天软件技术有限公司开发的神通数据库管理系统,采用关系数据模型作为核心数据模型,支持SQL 通用数据库查询语言,提供标准的ODBC,JDBC,OLEDB/ADO 和. Net Provider 等数据访问接口,兼容Oracle,SQL Server商业数据库,具有海量数据管理和大规模并发处理能力,支持Windows,Unix,Linux 等多种操作系统,对于信息安全要求很高的领域来说,是一个合适的选择。
综合考虑技术发展、应用广度、后续支持、兼容性、性能、安全保密等各方面因素,优先选择神通数据库,Oracle,SQL Server 作为数据库管理系统。
目前应用较广的开发框架主要有java 和. net两大阵营。
1)J2EE 技术框架
在J2EE 技术框架下,数据库服务器和应用服务器操作系统可采用Unix,Linux,Windows Server 系列。数据库管理系统可选用Oracle 系列、SQL SERVER、神通数据库。应用服务器可选用Weblogic,Tomcat,Websphere,Apache 等。开发架构可采用Struts,Spring,Hibernate,使用HTML,XML,Javascript,java,JavaBeans,EJB 等开发语言与组件。J2EE技术框架的最大优点就是可跨平台部署和运行。
2).NET 技术框架
在.NET 技术框架下,数据库服务器和应用服务器操作系统采用Windows Server2003/2008。数据库管理系统可选用Oracle 系列,SQL SERVER,神通数据库。应用服务器采用操作系统内置的IIS。开发架构可选用ASP. NET,使用HTML,XML,XAML,VBScript,VB,C#,ActiveX,Silverlight 等开发语言与控件。尤其是Silverlight 技术,属于“富”客户端技术的一种实现,会充分发挥客户端计算机的处理能力,减轻服务器端的负荷,完成复杂的操作、显示与处理。.NET 技术框架的最大优点是更高的开发效率,尤其是asp. net 中对mvc 视图与控制的划分是一个亮点。
采用JSP 或者ASP.NET 技术都是适宜的。JSP技术框架能够支持软件跨平台运行,而ASP.NET 技术框架因为其开发技术与环境、运行环境都属于微软技术框架,集成度高,技术一致性好,开发与维护简单。
不论采用哪种技术框架,坚持的设计思路是:充分发挥服务器端的优势,将数据存储、通用分析与处理、管理等功能设计在服务器端运行;对于简单的、常规的数据查阅与浏览、图形操作显示、音视频信息显示等功能,在服务器端生成动态页面,以HTML,XML,XAML 等形式发送到客户端执行;对于复杂的图形显示与操作、数据的特殊处理等功能,采用在页面中嵌入脚本、客户端控件以及集成专门处理软件等技术,在客户端计算机运行,高效率地完成复杂的显示操作与处理。
需要管理的试验信息种类较多,但可归成2 类进行数据库管理:结构化存储、非结构化存储。
1)通过设计多级表结构实现结构化存储,用于存储试验数据。通过建立关键字索引、查询结果视图、外键、唯一键等手段,合理高效地组织数据库结构。同时,在数据库操作接口中,广泛使用存储过程,提高数据库操作效率。
2)对于非结构存储,以文件形式在数据库中保存信息,包括音视频信息、图片、其它资料等。以附件形式在数据库中建立索引,存储其文件名、位置、关键词、注释等信息,以便进行快速检索、查阅。
试验数据的规范化高效管理是数据管理设计的核心。
1)建立数据字典,通过交互界面强制规范数据名称,避免由于试验数据种类繁多、试验地点与人员的不同而造成的数据名称混乱现象,形成规范、标准、唯一的名称。
2)设计规范统一的数据接口,将不同数据格式转换为系统内部标准统一的格式,接口采用外置式设计,以便于格式扩展。
3)建立以型号为基础的树型数据库模型,将海量数据划分成多条经纬线,以便快速浏览数据全貌和检索目标。
4)在服务器端将文件服务器与数据库服务器分离,避免由于突发的数据文件传输与数据库操作造成的双方性能下降。文件服务器采用http +ajax技术来实现文件上传/下载,融合用户页面交互操作与数据传输。
数据处理采用2 种模式实现。
1)远程服务端处理,本地浏览显示。
对于用户交互较少的处理,采用在服务端处理的模式,将生成的结果数据、图片、曲线等元素输出到客户端浏览器进行显示,并为用户提供简单的交互操作。
2)本地处理。
当需要进行大量复杂的交互操作与处理时,一种方法是在页面中嵌入applet 或ActiveX 控件,在客户端完成处理和交互操作,Flash 和Silverlight 都是此技术的实现;另一种方法是将数据下载到本地,再由本地的专业化软件进行处理,处理结果再上传至数据库供其他用户使用。第2 种方式构成了分布式处理系统,能够充分利用现有处理资源,降低开发与维护成本,提高处理效率和成果利用率。
应用系统的安全涉及到用户身份认证、角色分配、权限划分、业务流程控制、数据加密等方面,需要进行合理设计与严格编码,以保证系统安全保密。
1)对用户、密码、角色、权限、以及其它关键信息进行MD5 算法加密处理,生成明文码存储,即使从数据库中非法取出明文仍然无法获得原始信息;
2)对系统结构进行更加细化的层次设计。在MVC 三层架构中,模型层包含了数据对象和业务逻辑,在与视图交互过程中,页面会泄露后台的数据结构,造成系统安全隐患。将业务逻辑从模型层分离出来,形成数据对象层和业务逻辑层,采用4 层结构来提高系统安全保密性;
3)在编码设计中,严格区分前后台,避免在页面中使用业务处理逻辑。充分采用控件技术,避免使用普通html 元素提交关键信息。
与外部系统接口是本系统与其它系统协同工作的桥梁。由于信息化建设的需要,各应用系统间存在业务和数据接口关系,并且随着应用的深入,接口关系与内容也在变化。为了方便地适应这种变化,需要采用开放式接口设计,Webservice 就属于这种技术。
通过Webservice 接口设计,将接口部分进行独立封装,形成提供调用方法的中间接口层。当接口发生变化时,只修改中间层部分即可实现。另外,Webservice 基于Web 结构,支持广域网远程应用,具备跨平台、不限编程语言等特点,是大型应用系统接口设计中应充分运用的技术。
航天产品试验数据分析与管理系统须结合航天产品研制特点,适应航天用户的使用要求。在多个系统的开发过程中,结合航天型号不同阶段的试验、不同用户的需求,在系统功能、应用方式、软件架构、技术路线等方面进行了大量的需求梳理、设计研究与应用实践,逐步形成了适合航天特点的试验数据分析与管理系统,使用效果良好。
[1]任泰明.基于B/S 结构的软件开发技术[M].西安:西安电子科技大学出版社,2006.
[2](美)伽玛,等.李英军,等.译.设计模式[M].北京:机械工业出版社,2005.
[3](英)C. J. Date,等. 孟小峰,等. 译. 数据库系统导论[M].北京:机械工业出版社,2007.
[4](英)Martin Fowler,等. 王怀民,等. 译. 企业应用架构模式[M].北京:机械工业出版社,2010.
[5]张友生,等. 软件体系结构原理、方法与实践[M]. 北京:清华大学出版社,2009.
[6]Ivar Jacobson. Use Cases and Aspects-working Seamlessly Together[J]. Journal of Object Technology,2003,2(4):7-28.
[7]Martin Fowler.Patterns of Enterprise Application Architecture[M].Publisher:Addison-Wesley Professional,2009.
[8]Matthew MacDonald,Mario Szpuszta. Pro ASP. NET 3.5 in C#2008:Includes Silverlight 2(Third Edition)[M].Apress,2009.
[9]Dhrubojyoti Kayal. Pro JavaTMEE Spring Patterns:Best Practices and Design Strategies Implementing Java EE Patterns with the Spring Framework[M].Apress,2010.