神州普惠

基于HLA的基础对象模型研究

  引言1

  高层体系结构(HLA)为分布式仿真提供了一个通用的技术框架,已被IEEE采纳为建模与仿真标准IEEE1516.x,基于HLA的分布式仿真将是今后分布式仿真发展的主要方向。HLA的核心思想是互操作(Interoperability)和可重用(Reusability),其基本的实现方法就是采用面向对象的方法来设计、开发和实现仿真系统的对象模型(OM,ObjectModel),以获得仿真联邦的高层次的互操作和可重用。

  但是,HLA规范具有相当的复杂性,需要开发人员花费大量的精力来熟悉和使用它,从而导致仿真系统的开发效率较低。特别是在联邦FOM的开发上,虽然在相关工具的支持下能大大减轻开发负担,但其依旧十分复杂和耗时(例如STOW系统有几万行的OMT描述文件)。随着HLA在各个领域的逐步应用,这些都在一定程度上限制了使用者从HLA中获益的能力和HLA的进一步推广。

  90年代后期,借鉴其它领域的成熟经验,SISO提出了一种旨在简化仿真互操作并促进重用的基于构件(Component)开发的思想,具体来讲,就是采用BOM(BaseObject Model)的方法来开发联邦FOM(或联邦成员SOM),从而大大简化了相关工作。本文首先简要回顾了BOM产生和发展的历史,而后对目前国外在BOM研究领域的一些成果进行了简要介绍,包括:BOM的概念、描述及划分的方法和开发考虑等,最后对该领域的发展趋势做了展望。

  1 、BOM的产生和发展

  HLA FEDEP模型为联邦开发者提供了一个通用性的步骤,或者说描述了构造和维护HLA联邦的活动次序,以及每一个活动需要的前提条件和输出结果。正如在FEDEP模型中确定的那样,联邦的设计和开发应该开始于考察是否有可重用的FOM“零件”(piece part),这个“零件”的概念就是产生BOM思想的种子。

  在97年秋的SIW会议上,SISO针对RFOM(ReferenceFOM)定义和标准的讨论,成立了RFOM研究组(RFOM StudyGroup,RFOM SG)。这个研究组的主要工作是:开发RFOM的清晰定义,确立必要的术语并提出关于RFOM的SISO支持建议。从1997年9月到1998年3月,RFOM SG一直致力于此。最终,一个明确的RFOM定义获得一致通过,同时确立了5个关于RFOM的独立模型,其中之一就是BOM,它被认为是关于HLA应用的一项极有前途的技术。

  由于BOM存在的潜在复用性以及它对FEDEP提供的支持,RFOM SG的Paul L.Gustavson与Lawrence M.Root在98年秋的SIW会议上联名发表了“Base Object Models(BOMs):Reusable Component Objects for FederationDevelopment”。该文探讨了BOM的概念、构造与使用,并把BOM看作是快速开发FOM与SOM、促进FEDEP自动和可重用的一种大有希望的方法。随后,在99年秋的SIW会议上,一个专门研究BOM方法的研究组BOMSG成立,并在2000年3月召开了研究组的首次会议。2001年3月,BOMSG发表了《BOM Methodology Strawman(BMS)Specification》,对BOM方法研究取得的成果进行了较为详细的总结。

  2 、BOM方法的基本内容

  BOM方法将关注的重点放在对FOM(及SOM)“零件”的重用上,而这些特殊的“零件”就被认为是BOM。可以把BOM看作是组装FOM或SOM的构件,或者看作是一个mini-FOM,同一个BOM可以在组装不同的FOM或SOM时发挥作用。

  2.1 BOM的概念

  RFOM SG给出的BOM定义是:一个仿真构件,用来描述联邦相互影响活动的某一方面,是能够用于构造FOM和SOM的一个模块。类似于一个FOM或SOM,一个BOM就是满足IEEE 1516 OMT规范的一个数据集合,是一条仿真互操作性的“线索”,由一个或多个的对象类、交互类及相关的属性、参数和父类数据组成。与FOM和SOM的不同之处:一是BOM扩展了额外的元数据(Meta-Data),用于帮助开发它在重用方面的潜能;二是一个BOM仅仅表示了仿真相互影响活动的某一方面,而不象一个FOM(或SOM)那样表示了仿真相互影响活动的完整状况。

  2.2 BOM的描述与划分

  BOM SG从两个不同的角度对BOM进行了描述:一方面从“类型”(Type)或者说“构造成份”的角度将BOM分为“交互型BOM”(Interaction BOM)和“触发型BOM”(TriggerBOM);另一方面从“种类”(Category)或者说“应用方式”的角度将BOM分为“接口型BOM”(Interface BOM)和“封装型BOM”(Encapsulated BOM)。下面对它们分别加以介绍。

  2.2.1交互型BOM和触发型BOM

  交互型BOM关注的是,在一个仿真环境中,当一个交互发生时,必然会对那些与此交互有关的对象类产生影响。因此,一个交互型BOM可以通过一个交互类与所有因这个交互类影响而联系起来的对象类加以描述。一个典型的例子就是无线电收发,当把无线电信号看作是一个交互时,则在它的影响下,一方面有一个发射装置发射电波,另一方面还有一或多个接收装置接收电波。交互型BOM就是将这些要素(无线电信号、发射装置、接收装置)自然地融合在一起。触发型BOM关注的是,在一个仿真环境中,当一个对象的属性由于一次内部更新或一次与外部的交互而发生改变时,必然会在那些对此属性感兴趣的其它对象中引起一个响应。因此,一个触发型BOM可以通过一组对象类及关联的属性加以描述。在这些对象类之中,有一个对象类是触发要素,它至少拥有一个可改变属性,当此属性发生改变时,会在其它的对象类中引发一个响应。例如,考虑一个时钟和一个员工,当时钟到达下班时间时(时钟的时间属性更新),员工就会离开(引发员工的响应),在这里,时钟(类)就是触发要素。

  2.2.2接口型BOM和封装型BOM

  在面向对象技术中,有两个重要的概念:模式和构件。模式是一种在某一具体环境中有用、在其它环境中也可能有用的思想。构件是预先构造好的模块,其中封装了要描述类的模型和行为,既可以在同一个系统中使用,也可以在不同的系统中使用,且不需对自身做出修改。BOMSG借鉴了这两个概念。当把模式的概念应用于BOM方法时,可以得到接口型BOM。对接口型BOM最为贴切的理解是,它表示一种包含于FOM或SOM中的互操作模式,并能在其它的FOM或SOM中被继承。接口型BOM之间通过一个或多个对象类(及相关属性)、交互类加以区分。它还扩展了额外的元数据,如需求、概念模型数据、使用历史等。但是,在接口型BOM中,并不提供或包含定义其是如何运作的任何内部实现。因此,接口型BOM注重的是设计和分析,它的应用方式主要是继承。上面提到的交互型BOM和触发型BOM都可能以接口型BOM的形式体现出来。当把构件的概念应用于BOM方法时,可以得到封装型BOM。对封装型BOM最为贴切的理解是,它表示一个联邦或联邦成员的构件,能够在其它的联邦或联邦成员中发挥作用即被重用。类似于接口型BOM,封装型BOM之间也是通过一个或多个对象类(及相关属性)、交互类加以区分,且也扩展了额外的元数据(如需求、概念模型数据、使用历史等)。与接口型BOM不同的是,封装型BOM中定义了其是如何运作的内部实现,它们被封装在一个支持语言独立性的XML文档中,而此文档是可以被参与联邦的联邦成员解析的(类似于FOM的FDD文件)。因此,封装型BOM注重的是构造和实现,它的应用方式主要是重用。同样,上面提到的交互型BOM和触发型BOM也都可能以封装型BOM的形式体现出来。

  2.3元数据(Meta-Data)

  如前所述,BOM中扩展了额外的元数据,这是BOM方法中一个不容忽视的问题。元数据是BOM的一个重要组成部分,它便于对BOM的发现、匹配和将其集成到一个联邦中,进而使BOM的重用和联邦开发过程的自动化成为可能。元数据中的信息既包括从目前的OMT规范中可以直接得到的,还包括以下许多要素: