网站首页  词典首页

请输入您要查询的论文:

 

标题 基于ICE双向连接的卫星空地通信系统
范文

    晋良银 黎明 苟江 赵斌 何娣

    摘要:将ICE中间件的双向连接机制引入卫星空地通信系统中,并给出了一种基于ICE双向连接的卫星空地通信系统设计方案,讨论了ICE中间件相关概念,介绍了ICE的双向连接功能及原理。在卫星通信网络环境下进行设计、实现与测试,并分析了系统测试结果,测试结果表明ICE双向连接可以解决卫星空地链路单向连接的问题。

    关键词:ICE中间件;双向连接;机载客舱系统;单向连接

    中图分类号:TP393文献标志码:A文章编号:1008-1739(2019)09-69-3

    0引言

    目前,机载客舱系统与地面航空公司空地通信主要有ATG和卫星通信等方式,本文仅讨论卫星通信链路下机载客舱系统与地面的空地通信。在应用中,客舱系统通过卫星接入公网与航空公司进行通信,通信协议采用TCP/IP。航空公司的服务器具有公网IP地址,但卫星通信系统分配给客舱系统的地址是私有IP。在初始化状态下,客舱系统可以向航空公司发起连接请求,但航空公司却无法主动向客舱系统发起应用连接。因此,客舱系统与地面的航空公司间的空地通信存在单向连接问题。

    基于ICE中间件的双向连接机制提供了一种新的思路。ICE中间件通过双向连接机制首先由机载客舱系统向航空公司发起并建立连接,ICE保持并维护此连接,航空公司利用该连接可以向机载端发送消息。针对上述分析,设计了一种基于ICE双向连接的卫星空地通信系统方案,并给出其在卫星通信环境下的测试结果。

    1 ICE中间件

    ICE中间件是ZeroC公司开发的一款开源面向对象的简单高效的中间件平台[1],借鉴了CORBA,DCOM,SOAP等中間件的优点,并解决了这些中间件的应用局限[5]。ICE提供了建立面向对象的客户/服务端应用程序所需要的工具、API和类库,使得分布式客户/服务端应用程序的建立变得简单[6]。而且ICE应用适合在异种环境中使用,客户端和服务端可以使用不同的编程语言来实现,同时它可以运行在不同的操作系统平台以及不同的硬件架构上,有效地解决了C/S模式兼容性差、开发成本高以及开发周期长等问题[7]。ICE支持多种网络信息交互技术(TCP/UDP、SSL、通过插件功能扩展协议)。

    2 ICE双向连接

    ICE连接通常允许请求仅在一个方向上流动。如果应用程序的设计要求服务器向客户端进行回调,则服务器通常会建立与该客户端的新连接以发送回调请求,该请求过程如图1所示。

    但是在实际的网络环境中,网络限制通常会阻止服务器创建与客户端的单独连接,例如当客户端位于防火墙后面,如图2所示。

    在这种情况下,防火墙会阻止任何直接与客户端建立连接的尝试。此时,双向连接提供了一种解决方案。请求可以在双向连接上双向流动,使服务器能够通过客户端到服务器的现有连接向客户端发送回调请求。有2种方式使用双向连接:①使用ICE的Glacier功能,在这种情况下,双向连接被自动使用;②手动配置双向连接,使用ICE双向连接的手动配置方式解决卫通空地单向连接的问题。

    3系统设计与测试

    3.1系统架构

    基于ICE双向连接的卫星空地通信系统架构示意图如图3所示。系统中的各功能模块采用分布式部署,主要由3部分组成:模拟机载客舱系统的客户端(Client)、模拟地面航空公司的服务器端(Server)以及卫星通信设备。地面服务器端的IP地址是公网地址,而机载客户端的IP地址是卫星通信系统分配的私网地址。因此,在实际通信中,Client可以访问到Server,但Server无法访问Client。针对上述问题,本文引入ICE双向连接机制实现空地之间的双向通信。

    3.2 ICE安装及开发环境配置

    该系统的Client与Server应用在Centos7 64位操作系统下开发并运行。ICE版本为3.5.1。Client与Server分别安装在2台不同的笔记本上。Client模拟机载客舱系统端(以下统称机载端)使用卫星通信系统分配的私有网IP地址,Server模拟航空公司地面端(以下统称地面端)使用公网IP地址。地面端与机载端网络配置如图4所示。

    Server的网络配置包括3项内容。TCP表示ICE通信遵循的TCP/IP协议;-h 218.104.XXX.XXX表示Server的IP地址为218.104.XXX.XXX;-p 10000表示Server监听端口为10000。机载端的网络配置如图5所示。

    Client的网络配置包括三项内容。TCP表示ICE通信遵循的TCP/IP协议;-h 218.104.XXX.XXX表示Server的IP地址为218.104.XXX.XXX;-p 10000表示Client向Server的10000端口发送消息。

    3.3 ICE客户端开发

    客户端实现双向连接需要执行以下步骤:

    ①创建一个对象适配器接收回调请求;②使用对象适配器注册回调对象;③激活对象适配器;④代理对象调用ICE_getconnection函数,获得连接对象。用获得的连接对象,调用Setadapter函数,传递给回调对象适配器;⑤向服务器传递回调对象的身份Identity。

    据上述步骤,客户端程序的主要代码如下:

    CallbackSenderPrx server=CallbackSenderPrx::checkedCast(communicator()->propertyToProxy("CallbackSender.Proxy")); ICE::ObjectAdapterPtr adapter=communicator()->createObject-Adapter("");

    ICE::Identity ident;

    ident.name = ICEUtil::generateUUID();

    ident.category = "";

    CallbackReceiverPtr cr = new CallbackReceiverI;

    adapter->add(cr, ident);

    adapter->activate();

    server->ICE_getConnection()->setAdapter(adapter);

    server->addclient(ident);

    communicator()->waitForShutdown().

    3.4 ICE服务器端开发

    服务器端实现双向连接需要执行以下步骤:

    ①创建一个对象适配器用于调用客户端的回调函数;②使用对象适配器注册请求对象;③激活对象适配器;④在请求对象中完成客户端与服务器的连接,以及完成服務器端调用客户端的回调函数。

    根据上述步骤,服务器端程序的主要代码如下:

    Ice::ObjectAdapterPtr adapter= communicator()->createObjectAdapter("Callback.server");

    CallbackSenderIPtr sender= new CallbackSenderI(communicator());

    adapter->add(sender,communicator()->stringToIdentity("sender"));

    adapter->activate(). 3.5测试结果

    (1)首先启动模拟地面航空公司的Server;

    (2)启动模拟机载客舱系统的Client。

    Client启动后运行结果如图6所示。图6中列出了Client接收请求和发送应答的信息参数,本文仅对Client接收请求中部分重要参数进行简要分析。Message Type为0表示Client接收到一条请求消息;Compression Status为0表示消息不压缩;Message Size为105表示消息占用105Byte;request id为4表示当前请求的标示为4;Identity表示Server的UUID;Operation为Callback表示操作类型为回调操作;Receive Callback#后的字符串是Client接收Server利用双向连接发送的信息。Client接收到Server发送的“This is a String Sending Test!”字符串。Server调用Client的回调函数成功。

    (3)分析上述在卫星通信网络环境下的测试结果可知:①Server与Client启动正常;②Server与Client双向连接建立成功;③Server利用ICE双向连接功能向Client发送消息成功。

    4结束语

    本文讨论了ICE中间件相关概念,介绍了ICE的双向连接功能及原理。通过分析机载客舱系统与航空公司间的卫星空地通信链路单向连接问题,提出了一种基于ICE中间件的卫星空地通信系统的设计方案。该设计方案依托ICE中间件的双向连接机制,实现了具有公有IP地址的地面端向具有私有IP地址的机载端发送消息,成功解决了目前卫通空地通信链路单向连接的问题。在卫星通信网络环境下进行了实验与测试,系统测试结果验证了方案的正确性。

    参考文献

    [1]陈增孝,裘雪红.面向对象的ICE中间件系统设计[J].电子元器件应用,2008,10(8):16-18,21.

    [2]江卓逞,黄玮.曾加刚.基于ICE中间件的分布式应用开发研究[J].信息与电脑(理论版),2017(9):38-40.

    [3]姜邵巍,朱建良,吴永胜.一种改进的ICE中间件负载均衡算法[J].中国电子科学研究院学报,2016,11(3):263-267.

    [4]李雪玲.基于ICE中间件的应用系统通信框架设计[J].软件导刊,2017,16(1):91-93.

    [5] Leader-us.ZeroC Ice权威指南[M].北京:电子工业出版社, 2015.

    [6]王晨,贾卓生.基于ICE中间件的分布式网管系统的研究与设计[J].中国科技信息,2007(9):110-112.

    [7]张俊军,章旋.ICE中间件技术及其应用研究[J].计算机与现代化,2012(5):192-194.

    [8]陶雪莲,周俊.基于ICE中间件的分布式卫星地面测试系统研究[J].信息通信,2014(2):23-25.

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/11 0:36:25