联合试验平台中间件的所有权管理服务实现方法与流程

文档序号:16692701发布日期:2019-01-22 19:04阅读:223来源:国知局
联合试验平台中间件的所有权管理服务实现方法与流程

本发明属于联合试验领域,具体涉及试验平台中间件的所有权管理服务实现方法。



背景技术:

联合试验平台中间件负责整个联合试验系统的建立和运行期间的所有通信,属于联合试验平台的公共设施,能够提供联合试验系统资源之间高性能、低延迟的数据环境和面向综合测试系统应用管理控制功能。

在联合试验运行过程中,对象实例是联合试验参与者之间信息传输的基本单元。联合试验平台中间件负责在声明管理和对象管理中对对象实例的生存期进行管理,对象实例的所有权在整个生命周期内仅能被一个参与者拥有,该参与者可更新此对象实例数据。但是,在一个分布式联合试验系统中经常会遇到如下情形:某个对象实例首先由成员a进行更新,然后再由另一个成员b进行更新,b更新后将数据发布出去,供其它成员使用。

现有的联合试验平台缺乏对上述功能的支持,当系统中的参与者需要移交或请求某一对象实例时,中间件并不支持对象实例所有权的仲裁及转让,故而存在应用上的局限性。



技术实现要素:

本发明的目的是为解决现有的联合试验平台中间件不支持对象实例所有权的仲裁及转让的问题。

本发明为解决上述技术问题采取的技术方案是:

推模式下的所有权管理服务的基本过程为:

步骤一、本地参与者向中间件声明欲释放一个拥有的对象实例所有权的请求,中间件接收释放对象实例所有权的请求;

步骤二、中间件对释放对象实例所有权的请求进行处理,判断声明释放的对象实例是否存在:

若声明释放的对象实例不存在,转至步骤三;

若声明释放的对象实例存在,转至步骤四;

步骤三、向本地参与者返回声明释放的对象实例不存在的异常信息,转至步骤一十三;

步骤四、判断本地参与者是否拥有声明释放的对象实例的所有权:

若本地参与者不拥有声明释放的对象实例的所有权,转至步骤五;

若本地参与者拥有声明释放的对象实例的所有权,转至步骤六;

步骤五、向本地参与者返回参与者不拥有声明释放的对象实例的所有权的异常信息,转至步骤一十三;

步骤六、判断声明释放的对象实例的当前所有权状态:

若声明释放的对象实例的当前所有权状态为待释放,转至步骤七;

若声明释放的对象实例的当前所有权状态为待获取,转至步骤八;

若声明释放的对象实例的当前所有权状态为归属中,转至步骤一十二;

步骤七、向本地参与者返回已申请释放对象实例所有权的异常信息,转至步骤一十三;

步骤八、采用中间件的所有权仲裁机制,选取声明释放的对象实例的所有权申请者列表中申请权限最大的参与者作为待转移所有权的参与者;转至步骤九;

步骤九、向该待转移所有权的参与者发送确认获取对象实例所有权的消息;转至步骤十;

步骤十、将声明释放的对象实例从本地参与者的对象实例列表中删除,向本地参与者返回确认释放对象实例所有权的消息;本地参与者释放对象实例所有权;转至步骤一十一;

步骤一十一、向本地参与者返回确认释放对象实例所有权的消息,转至步骤一十三;

步骤一十二、向所有满足接收声明释放的对象实例所有权条件的参与者广播发送请求接收对象实例所有权的消息;选择级别最高的欲参与者作为待转移所有权的参与者;

中间件向待转移所有权的参与者返回确认获取对象实例所有权的消息,中间件向本地参与者返回确认释放对象实例所有权信息,本地参与者释放声明释放的对象实例所有权;转至步骤一十三;

步骤一十三、结束处理过程。

拉模式下的所有权管理服务的基本过程为:

步骤1:本地参与者向中间件声明欲获取一个其所不拥有的对象实例所有权的请求,中间件收到获取对象实例所有权的请求;

步骤2:中间件对获取对象实例所有权的请求进行处理,判断该对象实例是否存在:

若该对象实例不存在,转至步骤3;

若该对象实例存在,转至步骤4;

步骤3:向本地参与者返回对象实例不存在的异常信息,转至步骤12;

步骤4:判断本地参与者是否拥有该对象实例的所有权:

若本地参与者拥有该对象实例的所有权,转至步骤5;

若本地参与者不拥有该对象实例的所有权,转至步骤6;

步骤5:向本地参与者返回参与者已拥有对象实例的所有权的异常信息,转至步骤12;

步骤6:判断该对象实例的当前所有权状态;

如果该对象实例的当前所有权状态为归属中,转至步骤7;

如果该对象实例的当前所有权状态为待获取,转至步骤8;

如果该对象实例的当前所有权状态为待释放,转至步骤9;

步骤7:向当前拥有该对象实例所有权的参与者发送请求释放对象实例所有权的消息;转至步骤12;

步骤8:将本地参与者加入到该对象实例的所有权申请者列表中,通过中间件的所有权仲裁,在申请者列表中的选择级别最高的参与者作为待获取所有权的参与者;向待获取所有权的参与者返回确认获取对象实例所有权的消息,转至步骤11;

步骤9:将该对象实例从当前拥有该对象实例所有权的参与者的对象实例列表中删除;转至步骤10;

步骤10:向本地参与者返回确认获取对象实例所有权的消息;转至步骤11;

步骤11:向当前拥有该对象实例所有权的参与者返回确认释放对象实例所有权的消息;转至步骤12;

步骤12:结束处理过程。

本发明的有益效果是:本发明提供了一种联合试验平台中间件的所有权管理服务实现方法,本发明分别给出了推和拉两种模式下的所有权管理服务的基本过程,当本地参与者声明欲释放一个其拥有的对象实例所有权的请求时,根据欲释放的对象实例的当前所有权状态来决定下一步的转让过程,必要时可以利用中间件的所有权仲裁来决定转让给哪个参与者;当本地参与者声明欲获取一个对象实例所有权的请求时,根据欲获取的对象实例的当前所有权状态来决定下一步操作,并通过中间件的所有权仲裁来选出待获取所有权的参与者,完成所有权的转让。因此,拓展联合试验平台中间件所有权管理服务,通过该服务进行对象实例所有权仲裁,完成对象实例所有权的转移,对于实现资源的合理配置和系统的高效运行显得尤为重要,而且本发明的方法可以支持任何条件下的对象实例所有权的仲裁及转让。

附图说明

图1是本发明的推模式下的所有权管理服务基本过程的示意图;

图2是本发明的拉模式下的所有权管理服务基本过程的示意图;

图3是本发明的释放对象实例所有权的流程图;

图4是本发明的取消释放对象实例所有权的流程图;

图5是本发明的获取对象实例所有权的流程图;

图6是本发明的取消获取对象实例所有权的流程图;

图7为本发明实施例的测试系统的结构图;

图8为本发明实施例的测试环境构建界面的示意图;

图9为本发明实施例的推模式下的对象实例所有权转移验证方法的示意图;

图10为本发明实施例的推模式下,当导弹射程在0至10千米时,其中某一时刻的数据图;

图11为本发明实施例的推模式下,当导弹射程在10至20千米时,其中某一时刻的数据图;

图12为本发明实施例的推模式下,当导弹射程在20至30千米时,其中某一时刻的数据图。

具体实施方式

具体实施方式一:如图1和图3所示,本实施方式所述的联合试验平台中间件的所有权管理服务实现方法,其具有释放对象实例所有权功能,该方法包括以下步骤:

步骤一、本地参与者向中间件声明欲释放一个拥有的对象实例所有权的请求,中间件接收释放对象实例所有权的请求;

步骤二、中间件对释放对象实例所有权的请求进行处理,判断声明释放的对象实例是否存在:

若声明释放的对象实例不存在,转至步骤三;

若声明释放的对象实例存在,转至步骤四;

步骤三、向本地参与者返回声明释放的对象实例不存在的异常信息,转至步骤一十三;

步骤四、判断本地参与者是否拥有声明释放的对象实例的所有权:

若本地参与者不拥有声明释放的对象实例的所有权,转至步骤五;

若本地参与者拥有声明释放的对象实例的所有权,转至步骤六;

步骤五、向本地参与者返回参与者不拥有声明释放的对象实例的所有权的异常信息,转至步骤一十三;

步骤六、判断声明释放的对象实例的当前所有权状态:

若声明释放的对象实例的当前所有权状态为待释放,转至步骤七;

若声明释放的对象实例的当前所有权状态为待获取,转至步骤八;

若声明释放的对象实例的当前所有权状态为归属中,转至步骤一十二;

步骤七、向本地参与者返回已申请释放对象实例所有权的异常信息,转至步骤一十三;

步骤八、采用中间件的所有权仲裁机制,选取声明释放的对象实例的所有权申请者列表中申请权限最大的参与者作为待转移所有权的参与者;转至步骤九;

步骤九、向该待转移所有权的参与者发送确认获取对象实例所有权的消息;转至步骤十;

步骤十、将声明释放的对象实例从本地参与者的对象实例列表中删除,向本地参与者返回确认释放对象实例所有权的消息;本地参与者释放对象实例所有权;转至步骤一十一;

步骤一十一、向本地参与者返回确认释放对象实例所有权的消息,转至步骤一十三;

步骤一十二、向所有满足接收声明释放的对象实例所有权条件的参与者广播发送请求接收对象实例所有权的消息;选择级别最高的欲参与者作为待转移所有权的参与者;

中间件向待转移所有权的参与者返回确认获取对象实例所有权的消息,中间件向本地参与者返回确认释放对象实例所有权信息,本地参与者释放声明释放的对象实例所有权;转至步骤一十三;

步骤一十三、结束处理过程。

本发明的联合试验平台是指本单位在参考美军试验与训练使能体系结构(tena)的基础上开发的用于支持武器装备联合试验的通用软件平台。

具体实施方式二:本实施方式与具体实施方式一不同的是:在本地参与者确认释放对象实例所有权之前,具备随时向中间件声明取消释放对象实例所有权的请求的权利。

具体实施方式三:结合图4说明本实施方式。本实施方式与具体实施方式二不同的是:所述取消释放对象实例所有权的具体过程为:

步骤a:本地参与者向中间件声明欲取消一个对象实例所有权的释放请

求,中间件收到取消对象实例所有权的释放请求;

步骤b:中间件对取消对象实例所有权的释放请求进行处理,判断取消释放的对象实例是否存在:

若取消释放的对象实例不存在,转至步骤c;

若取消释放的对象实例存在,转至步骤d;

步骤c:向本地参与者返回取消释放的对象实例不存在的异常信息,转至步骤j;

步骤d:判断本地参与者是否拥有取消释放的对象实例的所有权:

若本地参与者不拥有取消释放的对象实例的所有权,转至步骤e;

若本地参与者拥有取消释放的对象实例的所有权,转至步骤f;

步骤e:向本地参与者返回不拥有取消释放的对象实例的所有权的异常信息,转至步骤j;

步骤f:判断取消释放的对象实例的当前所有权状态;

如果取消释放的对象实例的当前所有权状态为归属中,转至步骤g;

如果取消释放的对象实例的当前所有权状态为待获取,转至步骤h;

如果取消释放的对象实例的当前所有权状态为待释放,转至步骤i;

步骤g:向本地参与者返回未申请释放对象实例所有权的异常信息,转至步骤j;

步骤h:向本地参与者返回存在未处理的对象实例所有权申请的异常信息,转至步骤j;

步骤i:设置取消释放的对象实例的当前所有权状态为归属中;转至步骤j;

步骤j:结束处理过程。

具体实施方式四:如图2和图5所示,本实施方式所述的联合试验平台中间件的所有权管理服务实现方法,其具有获取对象实例所有权功能,该方法包括以下步骤:

步骤1:本地参与者向中间件声明欲获取一个其所不拥有的对象实例所有权的请求,中间件收到获取对象实例所有权的请求;

步骤2:中间件对获取对象实例所有权的请求进行处理,判断该对象实例是否存在:

若该对象实例不存在,转至步骤3;

若该对象实例存在,转至步骤4;

步骤3:向本地参与者返回对象实例不存在的异常信息,转至步骤12;

步骤4:判断本地参与者是否拥有该对象实例的所有权:

若本地参与者拥有该对象实例的所有权,转至步骤5;

若本地参与者不拥有该对象实例的所有权,转至步骤6;

步骤5:向本地参与者返回参与者已拥有对象实例的所有权的异常信息,转至步骤12;

步骤6:判断该对象实例的当前所有权状态;

如果该对象实例的当前所有权状态为归属中,转至步骤7;

如果该对象实例的当前所有权状态为待获取,转至步骤8;

如果该对象实例的当前所有权状态为待释放,转至步骤9;

步骤7:向当前拥有该对象实例所有权的参与者发送请求释放对象实例所有权的消息;转至步骤12;

步骤8:将本地参与者加入到该对象实例的所有权申请者列表中,通过中间件的所有权仲裁,在申请者列表中的选择级别最高的参与者作为待获取所有权的参与者;向待获取所有权的参与者返回确认获取对象实例所有权的消息,转至步骤11;

步骤9:将该对象实例从当前拥有该对象实例所有权的参与者的对象实例列表中删除;转至步骤10;

步骤10:向本地参与者返回确认获取对象实例所有权的消息;转至步骤11;

步骤11:向当前拥有该对象实例所有权的参与者返回确认释放对象实例所有权的消息;转至步骤12;

步骤12:结束处理过程。

具体实施方式五:本实施方式与具体实施方式四不同的是:在本地参与者确认获取对象实例所有权之前,具备随时向中间件声明取消获取对象实例所有权的请求的权利。

具体实施方式六:结合图6说明本实施方式。本实施方式与具体实施方式五不同的是:所述取消获取对象实例所有权的具体过程为:

步骤a、本地参与者向中间件声明欲取消一个对象实例所有权的获取请求,中间件收到取消一个对象实例所有权的获取请求;

步骤b、判断取消获取的对象实例是否存在:

若取消获取的对象实例不存在,转至步骤c;

若取消获取的对象实例存在,转至步骤步骤d;

步骤c、向本地参与者返回对象实例不存在的异常信息,转至步骤i;

步骤d、判断本地参与者是否拥有取消获取的对象实例的所有权:

若本地参与者拥有该对象实例的所有权,转至步骤e;

若本地参与者不拥有该对象实例的所有权,转至步骤f;

步骤e、向本地参与者返回参与者已拥有对象实例的所有权的异常信息,转至步骤i;

步骤f、判断该对象实例的本地所有权状态;

如果该对象实例的当前所有权状态为待获取,转至步骤g;

如果该对象实例的当前所有权状态为未获取,转至步骤h;

步骤g、向拥有该对象实例所有权的参与者返回本地参与者未申请对象实例所有权的异常信息,转至步骤i;

步骤h、设置该对象实例的本地所有权状态为未获取;转至步骤i;

步骤i、结束处理过程。

实施例

为验证联合试验平台所有权管理服务实现方法的正确性,搭建如图7所示的测试系统结构图。试验系统中,虚拟导弹追踪目标的位置信息,并实现虚拟目标打击,与此同时,雷达在跟踪探测导弹的运动轨迹,其跟踪结果将进行显示。

测试环境构建界面如图8所示。设计虚拟导弹加载mission_platform标准对象模型,发布大地坐标系下的经纬高、滚动角、俯仰角及偏航角等信息,雷达加载radar_platform标准对象模型,订购导弹的运行轨迹信息,根据导弹射程,将信息转为极坐标系下的俯仰角与距离等信息,每个雷达都有对应的俯仰角数码窗及距离数码窗显示窗口,订购雷达数据并显示。

(1)检测所有权管理服务中的“推”模式:方法如图9所示,雷达1、雷达2、雷达3均订购虚拟导弹运动轨迹信息,设置初始化由雷达1拥有包含雷达监测的导弹信息的对象实例(对象实例id:011e9ae9-d507-4d85-b70b-64fa2fd8d65c)的所有权,即当导弹射程位于0至10公里时,由雷达1监视、发布导弹位置信息,并通过数码窗1[俯仰角]、数码窗1[距离]显示结果;当导弹射程位于10至20公里时,雷达1释放对象实例011e9ae9-d507-4d85-b70b-64fa2fd8d65c的所有权,雷达2获取此对象实例所有权,接管监视、发布导弹位置信息的任务,并通过数码窗2[俯仰角]、数码窗2[距离]显示结果;当导弹射程位于20至30公里时,雷达2释放对象实例011e9ae9-d507-4d85-b70b-64fa2fd8d65c的所有权,雷达3获取此对象实例所有权,接管监视、发布导弹位置信息的任务,并通过数码窗3[俯仰角]、数码窗3[距离]显示结果;

(2)检测所有权管理服务中的“拉”模式:检测“拉”模式所有权仲裁功能的设定条件与“推”模式类似,只是在导弹射程区间改变时,由后一个雷达提出申请获取对象实例所有权,前一个雷达经过所有权仲裁后,将对象实例所有权推给后一个雷达,由后者继续监视并显示导弹轨迹;

验证结果见表1。

表1扩展服务验证结果

现对验证结果分析如下:

(1)“推”模式下所有权管理服务验证

“推”模式下,当导弹射程在0至10千米时,其中某一时刻的数据如图10所示。

由图10观察到数码窗1[俯仰角]及数码窗1[距离]实时显示雷达探测结果;数码窗2[俯仰角]、数码窗2[距离]、数码窗3[俯仰角]及数码窗3[距离]均未显示,

“推”模式下,当导弹射程在10至20千米时,观察到数码窗2[俯仰角]及数码窗2[距离]实时显示雷达探测结果;数码窗1[俯仰角]、数码窗1[距离]、数码窗3[俯仰角]及数码窗3[距离]均未显示,其中某一时刻的数据如图11所示。

“推”模式下,当导弹射程在20至30千米时,观察到数码窗3[俯仰角]及数码窗3[距离]实时显示雷达探测结果;数码窗1[俯仰角]、数码窗1[距离]、数码窗2[俯仰角]及数码窗2[距离]均未显示,其中某一时刻的数据如图12所示。

验证结果表明,在导弹射程为0至10千米时,雷达1具有对象实例的所有权;在射程为10至20千米时,雷达1成功将对象实例所有权推给了雷达2;在射程为20至30千米时,雷达2成功将对象实例所有权推给了雷达3。因此联合试验平台中间件能在系统运行过程中提供正常的“推”模式所有权管理服务。

(2)“拉”模式下所有权管理服务验证

“拉”模式下,当导弹射程在0至10千米时,观察到的现象与“推”模式相同,在此不再显示。验证结果表明,在导弹射程为0至10千米时,雷达1具有对象实例的所有权;在射程为10至20千米时,雷达2主动申请并成功获取了对象实例所有权;在射程为20至30千米时,雷达3主动申请并成功获取了对象实例所有权。因此联合试验平台中间件能在系统运行过程中提供正常的“拉”模式所有权管理服务。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1