基于HLA/CORBA的分布式仿真系统
航天测控 董秀军 北京 100041
近年来,随着计算机技术、信息技术和系统技术的飞速发展,计算机仿真已广泛应用于航空、航天、通信、船舶、交通运输、军事、化工、生物、医学、社会经济系统等自然科学和社会科学的各个领域,其重要性已广为人知。随着计算机仿真的应用领域不断拓宽,仿真技术有待解决的问题也越来越复杂,许多系统仅仅依靠传统的单个仿真系统很难达到预期仿真目的,必须依靠多个仿真系统进行协同仿真才能有效解决实际问题。因此,分布式仿真技术已成为系统仿真领域的前沿和热点之一。
考虑到分布式仿真系统在测控领域的广阔应用前景,航天测控公司也致力于分布式仿真开发工具及运行平台的研究和应用,如具有自主知识产权的仿真建模工具amcOMT1516及仿真运行支撑环境amcRTI1516等。
与传统单个仿真系统相比,分布式仿真必须解决两个问题:多仿真系统间的互操作和现有仿真系统的重用。为此,美国国防部(DOD)组织有关部门进行深入研究和探索,并于1995年在其建模与仿真大纲中首次提出用于产生计算机仿真系统的高层体系结构HLA(High Level Architecture)。HLA是仿真系统的通用技术框架,只要按照这个框架设计、组建仿真系统,各仿真系统间均能实现很好的互操作和重复利用。HLA技术使多个小仿真系统联合起来构成一个大型复杂分布式仿真系统成为可能。
HLA按照面向对象的思想和方法来构建仿真系统,它是在面向对象分析与设计的基础上划分仿真成员和构建仿真联邦的技术。在基于HLA的仿真系统中,联邦是指用于达到某一特定仿真目的的分布式仿真系统,它由若干个相互作用的联邦成员构成。所有参与联邦运行的应用程序都可以称为联邦成员。HLA主要考虑在联邦成员的基础上如何进行联邦集成,即如何设计联邦成员间的交互以达到仿真的目的。在HLA框架下,一个典型的仿真联邦的逻辑结构如图1所示。
在这个框架中,各联邦成员和运行支撑环境RTI(Run-Time Infrastructure)一起构成一个开放的、面向对象的分布式仿真系统。RTI是通用的、相对独立的支撑服务程序,各个联邦成员是具体的仿真实现。这种体系结构实现了仿真功能实现、仿真运行管理和底层通信三者分离,从而可使各部分相对独立的进行开发,最大程度地利用各自领域的最新技术来实现标准的功能和服务。
在利用HLA技术构建分布式仿真系统时,必须要解决底层的通信传输问题。只有实现了底层通信传输服务,各仿真成员之间才能传送数据和命令,实现彼此之间的互操作。为了解决分布式计算环境中不同硬件设备和软件系统的互联,增强网络间软件的互操作性,解决传统分布式计算模式中的不足等问题,对象管理组织(OMG)提出了公共对象请求代理体系结构(CORBA),以增强软件系统间的互操作能力,使构造灵活的分布式应用系统成为可能。因此,CORBA技术是解决HLA仿真系统中底层通信问题的有效手段。
CORBA应用是典型的客户服务器程序结构,其主要组件有:客户端的服务器代理Stub、服务器的客户端代理Skeleton、对象请求代理ORB、动态目录服务Smart Agent和基本对象适配器BOA等。当客户程序试图访问服务程序中的某一接口时,对接口的调用就会传递给Stub,而Stub又把有关调用信息打包,并通过ORB、Agent和BOA传给Skeleton,Skeleton解包取出其中参数,然后调用实际的服务接口。服务程序试图访问客户程序中的某一接口时过程类似。CORBA采用UDP点对点数据传输,具有自动定位和负载平衡功能。客户程序无需知道服务器在什么地方、运行在什么平台以及用什么语言实现的,只要双方均符合CORBA技术规范,调用方与被调用方定能实现很好的交互。其实现原理如图2所示。
综上所述,HLA定义和规范了仿真规则、接口规范、对象模型模板以及联邦开发和执行过程模型等,CORBA提供了分布对象计算的代理架构,因此,基于HLA和CORBA技术构建分布式仿真系统即能实现仿真应用的互操作和重用,又能很好保证仿真系统具有良好的开放性和灵活性,航天测控公司基于HLA和CORBA技术构建自己的仿真平台,具体实现技术和步骤如图3所示。在利用HLA技术构建分布式仿真系统时,必须要解决底层的通信传输问题。只有实现了底层通信传输服务,各仿真成员之间才能传送数据和命令,实现彼此之间的互操作。为了解决分布式计算环境中不同硬件设备和软件系统的互联,增强网络间软件的互操作性,解决传统分布式计算模式中的不足等问题,对象管理组织(OMG)提出了公共对象请求代理体系结构(CORBA),以增强软件系统间的互操作能力,使构造灵活的分布式应用系统成为可能。因此,CORBA技术是解决HLA仿真系统中底层通信问题的有效手段。
CORBA应用是典型的客户服务器程序结构,其主要组件有:客户端的服务器代理Stub、服务器的客户端代理Skeleton、对象请求代理ORB、动态目录服务Smart Agent和基本对象适配器BOA等。当客户程序试图访问服务程序中的某一接口时,对接口的调用就会传递给Stub,而Stub又把有关调用信息打包,并通过ORB、Agent和BOA传给Skeleton,Skeleton解包取出其中参数,然后调用实际的服务接口。服务程序试图访问客户程序中的某一接口时过程类似。CORBA采用UDP点对点数据传输,具有自动定位和负载平衡功能。客户程序无需知道服务器在什么地方、运行在什么平台以及用什么语言实现的,只要双方均符合CORBA技术规范,调用方与被调用方定能实现很好的交互。其实现原理如图2所示。
随着科学技术的发展和仿真技术的广泛应用,当前各个领域的仿真系统规模越来越大,内部关系也越来越复杂,将所有的仿真因素都纳入统一的规划和考虑来构建仿真系统不仅耗时耗力,而且构建出来的系统灵活性差,一部分的小改动可能会造成系统整体的大改动,而且整个系统不具备重用性,未来要在已有系统基础上增加新功能时必须将整个系统全部重新考虑,重新构建。基于HLA和CORBA技术构建的分布式仿真系统平台则可以解决这一问题,可将大型系统分解为实现不同功能的联邦成员,每个联邦成员实现系统的一部分功能。各联邦成员之间的数据传输和交互完全由仿真平台来解决,通过联邦成员之间的互操作实现系统整体的功能。在实现每个联邦成员功能时,仅需考虑和其他联邦成员的接口关系,联邦成员内部功能具有封装性。这样的仿真开发模式不仅使仿真系统的开发变得简单灵活,并且开发出来的仿真系统具有极大的扩充性和重用性。
假设希望将几个计算机仿真系统联合起来构成一个大仿真系统,例如,在已有不同生产机械仿真系统和运输装置仿真系统的基础上,组建一个完整工厂的仿真系统,或者,在某地域一个空中交通管制仿真系统和一个民用航空仿真系统基础上,组建一个该地域空中交通的完整仿真系统,并希望将来可以把军用空中交通仿真系统扩展进来,都可以利用基于HLA和CORBA技术构建的分布式仿真系统平台来解决,而且这样的需求必将是未来仿真应用的主要需求。因此,在国防研究领域及其他科技领域中,基于HLA和CORBA的分布式仿真系统必将会有更加广泛的应用前景。
文章版权归西部工控xbgk所有,未经许可不得转载。