基于UML和CORBA的空间应用仿真研究

时间:2022-09-19 02:07:41

基于UML和CORBA的空间应用仿真研究

摘 要: 为了研究空间应用分布式仿真,在此介绍了用UML技术和CORBA技术开对激光清除空间碎片这一空间应用系统的设计和开发过程。用UML对系统进行了分析,确定了系统的用例,流程和相应的类。最后使用CORBA技术实现系统的分布式仿真。结果表明,用此方法开发的系统具有可重用性高、可维护性强和移植性好的特点,它为更多的后续系统开发提供了一定的方法和技术支持。

关键词: 激光技术; UML; CORBA; 空间碎片

中图分类号: TN964?34 文献标识码: A 文章编号: 1004?373X(2013)20?0061?04

0 引 言

21世纪是人类全面发展空间能力、利用空间资源的时代。掌控空间优势对于保障国家安全、提高国家综合竞争力具有无可替代的作用,空间已成为国家安全与发展的新的战略制高点,制天权将成为未来国家战略威慑力和夺取战争主动权的决定因素。因此,美、俄等世界强国竞相进入空间,大力发展空间力量,部署空间装备,加剧了空间军事化进程。近年来,为了在夺取制天权的斗争中占据先机,以空间机动、空间操控和空间力量运用为标志的天基空间作战已成为当前空间领域新的发展重点。但随着近几十年来不断积累的太空碎片,已经严重阻碍了人们对太空开发的进程,所以有效地采取措施清除太空碎片越来越受到重视.

因此本文研究利用CORBA分布式并行计算技术,和统一建模语言(UML)对高能激光清除空间碎片这一空间应用系统进行了整体结构分析,构建和实现了系统模型。

1 UML和CORBA概述

1.1 UML概述

统一建模语言[1](Unified Modeling Language,UML)是最广泛使用的面相对象系统的建模方法。它是一种通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统的文档。它记录了对必须构造系统的决定和理解,可用于对系统的理解、设计、浏览、配置和信息控制[1]。UML定义了5类、共9种模型图[1]。第一类:use case diagram(用例图),它是UML的核心概念,从用户角度描述系统功能,并指出各功能的操作者;第2类:静态图(Static Diagran),包括类图(Class Diagran)、对象图(Object Diagran)和包图(Pack?age Diagran),类图描述系统中类的静态结构,它定义了系统类的内部结构以及类之间的联系,对象图描述系统在某个时刻的静态结构,包图由包或类组成,表示包与包之间的关系,包图用于描述系统的分层结构[1];第3类:行为图(Behavior Diagran),包括状态图(Statechart Diagran)和活动图(Activity Diagran),状态图描述对象的所有可能状态以及事件发生时状态的转移条件,活动图描述满足用例要求所进行的活动以及活动间的约束关系,有利于识别并行活动;第4类:交互图(Interactive Diagran),包括顺序图(Sequence Diagran)和合作图(Collaboration Diagran),顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的时间顺序,同时显示对象间的交互[1];合作图也显示对象间的动态合作关系,但更强调上下级关系。这两种图合称为交互图;第5类:实现图(Inplanentation Diagran),包括组件图(Canponent Diagran)和分布图(Deployment Diagran),构件图描述代码部件的物理结构及各部件之间的依赖关系,它包含逻辑类或实现类的有关信息,部件图有助于分析和理解部件之间的相互影响程度,配置图定义系统中软硬件的物理体系结构,用于捕获系统硬件和软件组件的配置。

它涉及软件工程的不同阶段,UML语言和满足不同面向对象建模方法对模型描述和建模过程描述的需求,并可适用于不同的应用领域,甚至是非软件设计领域。

1.2 CORBA概述

CORBA的开发者是对象管理组织(OMG)[2],成立于1989年,目前该组织拥有800多家成员,分别来自计算机工业的整个行业范围。增强软件的可移植性(Portability)、可重用性(Reusability)和互操作性(Interoperability)。CORBA运用了面向对象的设计思想,对象的设计思想,允许软件对象在不同的操作系统平台和应用程序中重复调用。现有的Java,C++面向对象的语言都能实现CO RBA程序的编写,VC++和C++Builder,IBM VisualAge for Java都是支持这些语言的程序开发工具。CORBA的基本结构如图1所示。

CORBA特点[2]:

(1)引入(Broker)概念。完成对客户方提出的抽象服务请求的映射;自动发现和找到服务器;自动设定路由,实现服务方程序的执行。

(2)客户方程序与服务方程序完全分离。客户将不再与服务方发生直接的联系,而仅需要与发生联系,客户与服务器方都可方便升级。

(3)提供“软件总线”机制。任何应用系统只要提供符合CORBA系统定义的一组接口规范,就可以方便地集成到CORBA系统中,这个接口规范独立于任何实现语言和环境。如此,客户应用于服务对象之间可以透明地交互运行,实现应用软件在“软件总线”上的“即插即用”。

(4)分层的设计原则和实现方式。CORBA系统的底层核心是一个精练的系统,各种复杂系统和应用可以由核心扩展和延伸。

2 仿真系统组成

高能激光器在清除空间碎片时,激光需要通过大气的传输才能到达碎片处,并对碎片起到清除作用,因此大气的传输模块和碎片的轨道模块是仿真系统的重点。

图2所示为仿真系统的模块图。整个系统由大气传输模块和碎片轨道模块构成。激光的大气传输仿真模块包含5个子模块,分别为大气的吸收、折射、散射,同时会受热晕和大气湍流的影响。因此激光的大气传输仿真模块由大气吸收模块、大气折射模块、大气散射模块、热晕模块以及大气湍流模块组成。

各个模块之间的联系和相互作用构成了整个激光的大气传输。这个系统不是简简单单的每个参数都独立,它们都受到其他子系统的影响。而且在不同的天气比如晴天、阴天、雨天它们的参数差别很大,又比如在不同的地点,它们的参数相差也很大,若采用传统的仿真可能会导致系统的计算较慢,可重用性差,通用性不足甚至出现计算错误等问题。使用基于CORBA的分布式仿真可以有效解决这些问题。

3 系统功能分析与建模

3.1 仿真系统的需求分析

需求分析是为了建立系统需求模型,即从功能需求出发建立用例模型。用例图为设计活动不仅记录需求而且还提供了一种挖掘的信息,它记录了需求到设计结果之间的映射关系,能够确保设计结果具有明确的根据或者说具有可维护性,基于UML的软件开发过程是以用例驱动的。

从图3中可以看出,用户与用例之间的关系:

(1)用户可以进行系统的登入和登出,这样可以防止系统被其他无关的人员登入造成不必要的损失;

(2)用户可以对整个仿真进程进行控制,可以再出现异常时暂停或停止系统,必要时重启系统;

(3)可以对视景仿真进行控制,包括调整视角,切换2D,3D等操作;

(4)用户最重要的就是通过操作界面(GUI)来对进行激光武器的仿真,通过参数的导入和输入就行各项仿真机应用。

CORBA在系统中主要起着中间件的作用。它自身需要先创建注册一个适配器(POA),并管理最后注销。同时它绑定了命名服务器使得客户端可以透明地引用服务端的对象实现。对象实现模型库中包含仿真需要的激光传输模型、碎片轨道模型、ATP模型、毁伤模型,效能评估模型等模型。对客户端而言它接受请求,通过ORB远程调用服务端上的对象实现,实现分布式仿真。

3.2 仿真系统实体描述

图4为系统的类图。主窗体MainWindows类是操作界面的类,它包含了激光大气传输的基本属性。定义了与界面操作相关的函数。MVshow类为界面提供了各类数据的显示。Login类为系统的登入管理类。FWDDY是CORBA的调用类,通过它进行POA的注册,激活ORB等来调用在服务端的各个算法模型类如:大气折射类Refranction、大气吸收类Absorb、湍流类Turbulence等类,来支持系统的仿真计算,数据处理。SceneSimulation类为系统提供了图形仿真。

3.3 系统的交互模型

如图5所示为系统的序列图,序列图描述了整个流程随时间推移的情况。横轴表示了各个对象之间的交互过程,纵轴表示各个对象生命周期及在各个时间节点的行动情况。整个过程为操作员进入到操作界面后,通过导入或者手动设置系统的武器参数,光学参数,导入目标的初始数据,设置当前的气象参数,光学参数,导入碎片目标的初始参数,设置气象参数。

图4 系统类图

当仿真开始后,系统中的模块(Stub)向本地的ORB发送调用请求,ORB接受请求后将请求发送到远程的服务端,然后服务器端的各个仿真模型在通过ORB返回给客户端,供客户端使用,这些模型有激光的大气传输模型,ATP模型,碎片目标轨道计算模型,毁伤模型等模型。当仿真结束后,可以对仿真结果进行评估。开始评估时,仿真系统通过ORB调用服务器端的评估模型进行此次实验的效能评估,最后把评估结果返回操作界面。

4 CORBA技术在系统中的应用

前文对系统用UML进行了建模分析,明确了系统的需求、流程和派生出的类。从整体上分析该系统属于三层的C/S结构。整个仿真过程中操作界面、客户端以及服务端都是通过CORBA核心ORB来交互的。在根据系统设计的基础上,根据系统的特性要求和分布式特点可以构建系统总体框架结构图如图6所示。 根据前文的分析和设计结果,该系统由客户端和服务端组成。服务端用于系统的登入和界面操作,服务端用来检查验证客户端权限,提供给客户端各种相匹配的算法模型。痛殴那个过CORBA,服务端程序实现了能被远程的客户端调用的对象。在CORBA客户端,桩(Stub)通过ORB接受客户的请求,并通过提供的命名服务寻找和定位应用服务对象请求。在服务端,ORB把应用服务器的服务程序接口传递框架(Skeleton),并通过基本适配器POA在商注册服务。

在开发CORBA前必须先根据系统分析结果建立IDL文件,用来定义功能接口。让客户端知道哪些函数模型级调用的方法。以下为该系统大气吸收类的IDL文件:

该IDL接口定义了大气吸收类中的一些参数和操作。该系统利用OmniORB4?1?4进行开发,经其编译器Omniidl编译后产生桩(Stub)代码和对象实现所需要的框架(Skeleton)代码。根据桩代码进行客户端的程序编写,根据框架代码进行服务端的程序编写。以大气吸收类为例。在服务端,对IDL定义的每个接口,都要编写相应的对象实现类,以及对ORB进行初始化。部分代码如下:

5 结 语

激光清除空间碎片是一项复杂的系统工程。本文探讨用统一建模语言UML和CORBA技术用于该系统的仿真。用UML对系统进行分析建模。采用CORBA技术作为系统的软总线,把系统的远程模型函数库和客户端程序连接起来,实现了分布式仿真系统。由于CORBA的透明性、与语言平台无关性,系统可应用在不同的平台下,真正做到跨平台的互操作性。增强系统的可配置性、可伸缩性和可重用性。将UML和CORBA结合起来,为开发分布式应用系统提供了强大的支持。

参考文献

[1] BOGGS Wendy, BOGGS Michael. UML with rational rose从入门到精通[M].邱仲潘,译.北京:电子工业出版社,2000.

[2] 刘润东.UML对象设计与编程[M].北京:希望电子出版社,2001.

[3] 吴建.UML基础与Rose建模案例[M].北京:人民邮电出版社,2005.

[4] 谭云杰.大象:Thinking in UML[M].2版.北京:中国水利水电出版社,2012.

[5] 张玉田.基于CORBA体系的分布式体系结构研究[D].大连:东北财经大学,2004.

[6] 鲁博,柴跃廷.关于统一建模语言:UML[J].计算机工程与科学,2000(8):7?9.

[7] 朱其亮,郑斌.CORBA 原理及应用[M].北京:北京邮电大学出版社,2001.

[8] 李丽娟.基于CORBA的分布式监控管理系统的设计和实现[D].成都:四川大学,2006.

上一篇:网络支付与结算中的安全技术研究 下一篇:一种带斐波那契译码的高精度电流舵DAC