1. 引言
云计算的概念由Google公司于2006年首次提出,它是由网格计算、分布式计算、并行计算等技术融合发展而来的一种新兴的计算模型,它将计算任务分布在大量计算机构成的资源池上,使用户能够按需获取计算力、存储空间和信息服务。云计算将计算资源集中起来,并通过专门软件实现自动管理,无需人为参与。用户可以动态申请部分资源,支持各种应用程序的运转,无需为烦琐的细节而烦恼,能够更加专注于自己的业务,有利于提高效率、降低成本和技术创新 [1]。
传统的基于计算机仿真、虚拟现实等技术的航空装备仿真教学资源通常基于特定的软硬件环境构建,并且大多存在仿真教学和训练样式不统一、仿真教学训练资源管理难度较大、仿真资源和系统部署维护困难、仿真模块和应用缺少持续开发升级等问题,这些问题极大的限制了航空装备仿真资源的共享、重用和应用,而利用基于DOCKER容器虚拟化的云计算技术,可以在一定程序上解决上述问题,进而满足用户在仿真对象、仿真构型、仿真流程、部署方式、训练功能、训练模式等各方面的设计、开发、训练、管理和部署需求,达到航空装备仿真教学系统快速开发、维护便捷、升级方便、灵活部署、功能扩展和集成应用的目标。
2. 传统仿真教学资源建设存在的问题
针对海军航空兵地勤教学任务的目标以及院校教学存在的缺少实装问题,海军航空大学青岛校区各个教研室广泛地应用计算机仿真、虚拟现实、虚拟维修等技术构建了一批优秀的航空装备仿真教学资源,取得了一定的成绩,使得各类教学资源极大丰富。这些教学资源在给教员和学员带来学习便利的同时,仍然存在一些不容忽视的问题。主要表现在以下几个方面:
1) 航空装备仿真教学资源的共享程度不高。各教研室都在以自己的方式进行航空装备仿真教学资源的开发建设,都在进行相同或者相似的工作,造成了人力物力极大的浪费。由于资源局限于一个教研室,不能在更大范围内共享,导致信息孤岛林立,软、硬件基础资源的利用率较低,存在着严重的重复建设、重复投资等问题。
2) 航空装备仿真教学资源的建设没有参考统一的建模仿真标准和规范,资源质量良莠不齐。航空装备仿真教学资源的建设经常出现重技术轻标准的情况,没有遵循统一的标准,造成资源规格混乱、质量不高、交互性差。
3) 航空装备仿真教学资源缺乏持续性的维护和升级。随着于实装飞机、直升机批次的更新和变化,其对应的仿真教学资源也要不断地进行补充和改正,对于过时的、陈旧的资源要及时进行更新,保持航空装备仿真教学资源的可持续发展。
4) 学员对航空装备仿真教学资源的反馈不足。航空装备仿真教学资源的建设目的是为了在理论学习、仿真训练等阶段给学员提供帮助。航空装备仿真教学资源的开发者应该能够跟踪资源的使用情况,以及使用者对资源的客观评价,并且能够持续不断的根据反馈对资源改进、完善和升级。
5) 航空装备仿真教学资源的建设通常依赖特定的软硬件环境,其安装、部署和维护困难。尤其是随着计算机软硬件系统的发展,一部分早期设计和制作的航空装备仿真教学资源由于缺乏持续的维护和升级,已经不再能够适应新的计算机软硬件环境。
3. 基于Docker的云计算技术简介
虚拟化是将底层物理设备与上层操作系统、软件分离的一种去耦合技术,可以在一台物理机器上逻辑的划分出多台机器,从而实现提高IT资源利用效率和灵活性。传统的虚拟化技术是在计算元件与硬件资源之间添加一个虚拟化层,该层通常称为虚拟机监控器(VMM)或者Hypervisor,虚拟化层能够截获计算元件对物理资源的直接访问,并重新定向的虚拟资源池中。其中虚拟机监控器运行的环境,也就是真实的物理硬件平台,称之为宿主机,而虚拟出来的平台通常称为客户机,客户机运行的系统也通常称为客户机操作系统 [2] [3]。
与传统的虚拟化技术相比,以Docker为代表的基于容器的轻量级虚拟化技术,是指在操作系统级别实现的虚拟化。如图1所示,操作系统级虚拟化内核通过创建多个虚拟的操作系统实例(内核和库)来隔离不同的进程,不同实例中的进程完全不了解对方的存在 [4] [5]。容器技术提供了一种在安全、可重复的环境中自动部署软件的方式,能够为大规模复杂仿真系统提供高效支撑。
Figure 1. Two different virtualization architectures
图1. 两种不同的虚拟化架构
容器技术是Docker的核心技术,Docker容器是一个创建封装好的隔离计算机环境,每个容器共享宿主操作系统(Linux)的内核,每个容器都运行着一个Linux的副本和应用程序所需的运行环境,没有传统虚拟化技术的虚拟化层,因而虚拟化的开销更小,在相同的硬件条件下可以提供更高的计算密度和性能。在Docker容器基础上,可以设计一种自动将仿真资源打包成轻量、可移植、自包含的容器引擎,仿真云用户通过这个容器引擎构建仿真应用,可以一次构建全平台(包括本地开发机器、生产环境、Docker容器和云等)运行。通过对Linux容器增加仿真资源描述的高级API,能够提供独立运行的轻量级虚拟化解决方案和一种在安全、可重复的环境中自动部署软件的方式 [6]。
Docker是以容器(Docker Container)为资源分割和调度的基本单位,封装整个软件运行时环境,为开发者和系统管理员设计的,用于构建、发布和运行分布式应用的平台,它是一个跨平台、可移植并且简单易用的容器解决方案。它是将应用程序打包的单独的容器之中,通过这个封装的过程,容器技术将每个程序隔离开,打断了程序之间的依赖和连接关系。也就是说,一个庞大的系统在容器的支持下,可以由许多不同的应用程序所寄居的容器组合而成。这种拆解再构合的过程,让应用程序之间的耦合降到最低。而容器对外的接口就像集装箱之间的接槽一样是一致的,这样就让使用容器和其中的程序组装一套系统的过程变得极其简单和方便。容器技术不但实现应用程序对资源调用的封闭,还实现了应用程序相互之间调用的解耦。通过容器技术,在开发和部署过程中,我们可以像搭积木一样轻松的组合所需要的程序组件。
4. 基于云计算的仿真教学资源应用
4.1. 基于云计算的教学资源平台设计
基于云计算的航空装备仿真教学资源云平台设计的目的是采用基于Docker的轻量虚拟化技术构建基础设施虚拟资源池,实现航空装备仿真教学中软硬件资源的统一调度与管理,完成资源整合、应用集成和资源共享。如图2所示平台架构分为四层,IaaS基础设施服务层是航空装备仿真教学资源云平台的最底层,它提供硬件资源的虚拟化的基础,即Docker镜像服务、数据存储和备份等服务;PaaS平台服务层位于IaaS层之上,为平台开发提供公共服务接口和软件运行环境,同时对系统应用和集成提供综合管理功能;SaaS层即应用服务层,主要集成整合现有的优质航空装备教学资源,为用户提供个性化教学应用。
Figure 2. Teaching resource cloud platform architecture
图2. 教学资源云平台架构
按照Docker的结构,航空装备仿真教学资源被封装成Docker容器并存储在Docker镜像服务器中,用户可以通过计算机、移动终端的浏览器直接使用这些仿真教学资源,对于某些单纯通过浏览器难以调用的大型互动仿真资源,用户还可以直接从Docker镜像服务器获取Docker镜像并在本地直接运行这些Docker应用,由于使用了Docker虚拟化技术,这些Docker镜像不仅包含了Docker应用(即航空装备仿真教学资源),还包含了仿真资源所依赖的运行时环境,因此用户得以不用进行软硬件环境配置便可以直接使用这些仿真资源。
4.2. 基于Docker的航空装备仿真教学资源建设
在基于Docker的轻量虚拟化环境下,计算机安装和运行Linux操作系统(含Docker运行环境),在Docker基础上,航空装备仿真教学资源的每一个系统(即每一个仿真模块)被封装成一个Docker容器,负责各个功能的Docker容器在武器装备仿真系统的统一调度和控制下,相互协作完成武器装备的仿真。在这种架构下,由各个专业教研室或专业人员负责各专业仿真模块的开发,这些仿真模块被打包成容器之后即可以独立运行,也可以在一个统一的调度框架下构成联合仿真应用,其结构如图3所示。
其中,仿真引擎构建在Linux API和Docker引擎基础上,是一个面向航空装备仿真教学构建的通用的装备仿真框架、工具和功能组件,通过这样的设计可以简化仿真功能模块的开发难度,并且将复杂的诸如网络通信,模块协作,事件传输、事件处理等功能集成到仿真引擎中并为各个仿真资源(即Docker容器)设计和开发提供一个通用的平台和工具。
Figure 3. Structure and relationship of simulation resources based on Docker
图3. 基于DOCKER的仿真资源结构和关系
基于Docker的云计算技术开发航空装备仿真教学资源,将有效解决以下问题:
1) 方便的共享优质教学资源,避免重复建设
在基于Docker的云计算技术开发航空装备仿真教学资源架构下,飞机发动机、火控、航电、军械等各个专业教研室可共同建设一个装备仿真教学资源的共享环境。学员可以访问云平台内的装备仿真教学资源进行教学学习,避免仿真资源的重复建设。
2) 利用分布式存储,数据具有更高的安全性
传统的装备仿真教学资源存储在用户硬盘上,数据较为集中,损坏风险大且难以升级和维护,部署在云上的装备仿真教学资源应用可以充分利用分布式存储技术,即仿真应用存储在云上,装备仿真教学资源数据以数据块形式分散存储在构成云的不同硬件节点中,即使某个节点发生故障也不会破坏和丢失仿真资源。
3) 具有更广泛的适应性,兼容不同的软硬件平台
通过虚拟化技术支持,学员可以在任意位置、使用平板电脑、台式机、笔记本等各种终端获取和使用仿真教学服务。学员在使用时,仿真应用在“云”中的某处运行,但实际上学员无需了解、也不用担心仿真应用运行的具体位置。
4) 功能动态易扩展,便于教学资源的部署和升级
基于容器虚拟化技术构建的仿真资源即可以独立运行,也可以通过合理的组织通过多个容器构建一个新的仿真应用,并且容器虚拟化技术将装备仿真教学和训练应用程序及应用程序的运行时环境都打包到容器中,因此不存在传统的运行时环境问题,便于安装、部署和维护。
5. 结论
在航空装备仿真教学资源建设和应用领域,云计算技术和Docker轻量虚拟化技术的快速发展,为解决航空装备仿真教学资源的建设缺少统一规范、应用水平不高等实际问题提供了手段和方法。研究和构建基于轻量虚拟化的云计算技术的航空装备仿真教学实验平台,有助于解决传统的装备仿真教学和训练系统存在的不足,避免软硬件资源利用率低、重复建设等问题,同时可以面向学员构建随时随地仿真教学能力,因此具有广阔的发展前景。