APP下载

基于数据模型驱动的舰载指控系统模型开发∗

2019-03-27陈志刚陈苏杭

舰船电子工程 2019年3期
关键词:信息结构数据模型指控

陈志刚 陈苏杭

(1.91336部队 秦皇岛 066326)(2.92840部队 青岛 266000)

1 引言

舰载指控系统是一种具有高可靠性和实时性的复杂系统,是整个舰艇作战指挥过程的核心部分。在作战仿真中,舰载指控系统仿真是整个舰载作战仿真的“中枢神经”[1],是作战信息处理中心和指挥员实施指挥的直接部位,承担着信息接收与存储、信息融合、威胁目标指示等功能[2]。目前,随着我海军舰艇装备的不断更新和发展,舰载指控设备仿真系统的开发和研制面临着需求不确定、应用环境快速变化等诸多问题[3],系统的可移植性、可扩展性以及互操作性变得越来越重要[4~5]。

舰载指控系统在开发过程中存在许多结构性的重复代码,这部分代码可以由舰载指控系统数据模型转换生成。通过在数据模型与结构性重复代码之间建立映射关系,应用模型驱动思想指导该部分代码的自动生成工作,可以很大程度地提高系统的开发效率。

2 数据模型驱动开发思想

舰载指控系统作为一种典型的军事信息应用系统,其仿真软件的开发和研制面临着需求不确定、应用环境快速变化等诸多问题[6],需要探索新的软件研发思路和方法。目前,靶场构建多套舰载指控系统模型,分别应用于不同的仿真实现平台,如RT-Space平台、DWK平台等,出现资源浪费严重,增加许多重复性工作,导致这种现象的主要原因是由于系统不具备可移植性、可重用性。应用数据模型驱动开发技术,可以实现舰载指控系统的应用逻辑和底层变化的分离,加大应用逻辑甚至应用子系统的大粒度重用,从而增强软件系统的适应能力和变化能力,实现一次建模可以应用到不同的技术环境中。

模型驱动思想是一种仿真系统开发的思想。模型驱动架构(MDA)则是一个实现了模型驱动思想,并被广泛应用于仿真系统开发的设计方法[8]。舰载指控系统的需求主要分为界面层和功能服务层,本文采用MDA技术可将系统的功能从平台中脱离出来,以领域知识为基础,元模型采用基于XSD的数据模型产生PIM模型,存入模型库中。在模型库中提出的模型,都可以映射到不同的平台上,包括RT-Space平台、DWK平台、HLA等具体平台,并实现代码自动生成,并依托组件技术,最终实现整个系统的开发,主要实现框架如图1所示。

图1 舰载指控系统仿真开发框图

文献[7]中介绍了作战系统接口协议辅助设计工具,提出了将存储的相关作战系统接口协议单元数据转换为XML模式文件(XSD),从而实现模型驱动方法。因此,实现在MDA环境下以数据模型为中心的仿真系统开发方法,构建舰载指控系统数据模型是一项十分重要的内容。

3 舰载指控系统数据模型

舰载指控系统是一个十分复杂的系统,而系统的数据模型在仿真开发中又起着至关重要的作用。采用基于模型驱动的方法开发系统过程中,数据模型的修改能自动反映到设计的各个阶段,如更新系统对象属性、更新系统接口协议、更新仿真模型、更新仿真系统的实现代码等。

3.1 基于XSD的系统数据模型

在舰载指控系统的开发过程中,即使有较好的顶层设计,但随着用户需求的不断变化,系统的设计仍会调整,接口会不断的发生变化,接口解析也需做出较大调整。采用XML模式定义(XML Sche⁃ma Definitions,XSD)建立数据模型,能够解决在系统开发过程中适应这种接口的变化问题,以提高系统开发效率,降低开发成本,使接口具备较强的适应能力。

针对舰载指控系统接口协议中定义的信息单元和相关数据字段,采用XSD建立数据模型,主要对模型的基本信息、数据类型、模型的组件信息进行描述,描述信息元素之间的结构关系以及用来约束每个元素的详细信息,例如,数据字段的名称、类型、长度、最大值、最小值等。舰载指控系统数据模型的信息结构如图2所示。

图2 舰载指控系统数据模型的信息结构

3.1.1 模型基本信息

模型基本信息描述舰载指控系统仿真程序模型中英文名称、模型的开发语言、模型开发平台等管理类信息,其信息结构如图3所示。

图3 模型基本信息的信息结构

3.1.2 自定义数据类型

自定义数据类型描述整个舰载指控系统所使用的枚举数据类型、复合结构数据类型、数组类型,以及可变长的string类型等,其信息结构如图4所示。

图4 数据类型信息结构

3.1.3 模型组件信息

模型组件信息描述舰载指控系统的模型组件描述信息、想定初始化参数、属性类输入信息、属性类输出信息、事件类输入信息、事件类输出信息等模型信息。其信息结构如图5所示。

图5 模型组件信息信息结构

其中,想定初始化信息用于描述仿真对象的固有属性,如舰载指控系统目标航迹对象的航向、航速等。属性类信息用于描述仿真对象之间交互的对象类信息,如雷达上报的目标航迹信息。事件类信息用于描述仿真对象之间的交互类信息,如硬武器目标指示消息、雷达状态上报消息等。

3.2 数据模型在接口描述中的应用

结合SOA思想,引入了服务的概念。服务可以接受请求并发送响应结果,接收到的请求消息和反馈的响应消息的格式定义源自基于XSD的数据模型。实现具体的服务时,通过网络对该服务进行发布的时候需要与一种特定的网络通信协议相绑定。舰载指控系统数据模型主要描述了接口中消息的格式和内容定义,需要增加对于服务接口信息的描述,即需要在数据模型中增加描述操作、端口以及协议绑定信息。

4 舰载指控系统开发的数据模型驱动方法

通常来说软件代码可以分为通用代码,个性代码和结构性重复代码这三个部分。在舰载指控系统仿真软件中,通用代码是包含软件基本框架在内的,实现仿真系统的基础代码;个性代码则是实现舰载指控系统特定功能的代码;结构性重复代码则主要包含了有关描述舰载指控系统信息报文具体格式,以及报文解析程序的代码,通过进一步的研究发现,该部分代码是舰载指控系统开发中的主要内容。

在前面章节中,舰载指控系统数据模型描述的内容主要就是报文的相关信息,在开发过程中,舰载指控系统中将存在许多结构性重复代码,这部分可由该系统数据模型转换生成。通过在数据模型与结构性重复代码之间建立映射关系,应用模型驱动思想指导该部分代码的自动生成工作,很大程度的提高舰载指控系统的开发效率。

4.1 基于XSD的报文解析代码生成

为了实现数据模型驱动的舰载指控系统代码开发,实际上就是实现了MDA思想中的PIM到实际代码的转换。

XML文件的定义方式采用了树状结构,这种定义方式的特点是结构化好,利于程序分析,可通过树的遍历及生成算法对其进行处理。为了提高接口代码开发效率,基于如图6所示的思路。在读取XSD文件之后,首先分析XSD文件结构,根据文件结构生成解析代码,代码生成结束后,针对生成的代码进行编译链接,生成XML的解析组件并发布。

图6 代码生成解析方法

4.2 PIM到PSM的转换

在设计平台无关模型(PIM)时不用考虑最终实现的中间件平台,也不用考虑最终代码运行的平台,它是描述系统功能和结构的模型,不包括任何平台的技术。平台相关模型(PSM)的设计与具体的平台密切相关,它依赖于平台所提供的功能和服务,涉及到系统在平台上的实现细节。

平台的例子包括HLA、CORBA等,而舰载指控系统仿真采用的DWK也是一种平台。将PIM转换到PSM,也就是从概念性的分析模型到计算机仿真模型的实现,通过PSM自动转换工具可以自动化地进行。

由舰载指控系统PIM转换到满足DWK平台实现规约的PSM,要求PIM按照DWK规定的对象模型结构、仿真驱动方式、服务获取方式,以及异常机制、参数类型等实现到PSM的转换。

4.3 模型代码的自动生成

通过代码自动生成工具编辑模型解析模板来实现PSM代码的自动生成。用代码自动生成工具生成代码不仅能够提高系统的开发效率,而且能够保证系统的整体代码风格一致,大大提高代码的可读性和可维护性。

采用通用仿真模型设计语言Python[9]进行PSM代码的设计,Python是一种面向对象的、直译式计算机程序设计语言,语法简洁清晰,可以方便地转换为各种高级编程语言,如:C++、C#、Java等。可将计算机程序代码直接编译形成可执行代码组件.pyc文件,或者根据运行环境的需要先将Python代码转换为其他高级编程语言格式,然后再编译形成可执行代码组件,如.dll和.exe文件等。

5 结语

本文针对系统通用性低、开发过程中结构性重复代码多的问题,采用数据模型驱动的方法,建立基于XSD的舰载指控系统数据模型,借助模型驱动思想,通过代码生成工具,实现PIM到PSM的实际代码转换,提高系统的开发效率,提高代码的可读性和可维护性。

猜你喜欢

信息结构数据模型指控
地导防空指控系统ZK-K20引关注
美国指控汇率操纵的历史、启示与应对
面板数据模型截面相关检验方法综述
加热炉炉内跟踪数据模型优化
对外汉语教材编写中信息结构知识的应用
基于调节聚焦理论的生物农药推广有效性研究
事件结构、信息结构与句法表征*——领主属宾句的认知语法分析
信息结构与句法异位
面向集成管理的出版原图数据模型
一种顾及级联时空变化描述的土地利用变更数据模型