资源描述:
《通用网关协议数据转换软件开发》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、通用网关协议数据转换软件开发1 引言所谓通信协议是指通信双方的一种约定,约定包括对数据格式、同步方式、传送速度、检纠错方式以及控制字符定义等问题作出统一规定,通信双方必须共同遵守[1]。不同体系结构的系统一般采用不同的通信协议完成系统内部成员之间的通信,这固然为本系统的设计带来了很大的方便,但因为不同系统的通信协议往往不同,当本系统需要同其他系统进行通信时,会因为协议的不同造成通信障碍[2]。为解决异构系统之间因通信协议不匹配造成的通信困难,需要在两个系统之间添加一个协议转换器。目前的通信协议转换器大多选用或者自行开发专用的网关,但是专用网关由于重用性差,将导致多次的重复开发,浪费大量的人
2、力和物力[3]。由于不同通信协议的协议格式有许多相近之处(如数据帧由帧头、数据项、帧尾等组成,包含校验等处理信息),这就使得设计一个一定程度的通用协议转换器成为可能[4]。本文通过对现有协议的分析,提供了一种比较通用的协议格式模板,通过对该模板的实例化可得到各种实际协议的格式信息。另外,本文还实现了对符合用本模板所描述协议格式的协议数据处理及转换过程,并在由哈尔滨工业大学开发的HIT-GPTA平台上进行了验证。2 需求分析通用网关协议转换软件的用户需求定义如下:分析现有通信协议格式,提出各种协议的表达方法,并抽象出一个能够涵盖大多数常用雷达、导弹协议的协议格式模板,通过对该模板的实例化能够
3、得到现有格式的描述信息。所建立的模板应提供最基础的协议元素编辑支持,提供不同数据类型的协议元素的支持,提供元素位定义支持,提供开放式的函数处理功能支持,提供格式描述信息的串行化输出功能,能够保存已建立的协议格式信息并在需要时导入该信息。设计符合HIT-GPTA平台接口规范的协议编解码组件,该组件能够加载格式描述文件。协议编解码组件应提供协议数据的动态处理功能,能够根据格式描述信息加载相应动态链接库,调用相应动态链接库函数,根据函数参数列表对协议数据元素进行相应处理。根据用户的需求定义,可将本系统划分为两个主要的功能模块:协议格式库管理软件和协议编解码软件。格式库管理软件通过对格式模板的实例
4、化,生成具体协议的格式描述信息并串行化输出为格式特征描述文件;协议编解码软件加载格式特征描述文件,并根据用户所配置的信息初始化网络收发信息,在平台开始运行后,接收由网络传来的数据并解码发布,根据所订购到的数据信息编码输出到相应设备。系统用例如图1所示。3 协议格式模板设计协议转换器的通用性决定于协议格式模板的通用性,为了抽象出一个较为通用的协议格式模板,需要先对通信协议进行分层管理以方便数据结构的设计,然后分析多种具体的协议格式,并得到他们之间格式上的相似之处,进而抽象这些相似之处,形成本系统的数据结构。根据协议分层管理的概念,可将协议分为三个层次:协议集、协议项、协议元素,如图2所示。对
5、一些有代表性的协议项进行分析可得以下概念:一个系统所有协议的集合称之为协议集,可为协议集设计名称、ID、协议项列表等属性;每一个协议项又应该有名称、ID、帧头列表、元素列表、帧尾列表等属性。以上协议集和协议项的属性是一般协议所共有的,对于协议项的组成部分如帧头、元素、帧尾的具体结构则因协议的不同会有较大的差异。基于上述概念,采用面向对象的思想,可以进行协议格式模板的设计。协议可以分层表示为协议格式集、格式项和协议元素,故在设计数据结构时可分别设计为格式集类(CProtocolMuster)、格式项类(CProtocolItem)、协议元素类(CProtocolElement)。另外,为了描
6、述协议项的传输特性,设计了帧头、帧尾(CHeadFormat)类;为了支持位处理功能及函数处理功能设计了数据元素位类(CDataBit)和处理函数类(CProcessFun)。4 软件的设计与实现基于用户需求定义及系统功能分析,采用面向对象的方法对系统进行详细设计。根据需求分析,需要设计两个软件,分别是协议格式管理软件和协议编解码组件。格式管理软件的设计包括软件的静态模型、交互模型及用户界面的设计[5]。协议编解码组件的设计包含四个方面的内容:解码类设计、编码类设计、平台组件接口类设计和用户交互界面设计。格式库管理软件为用户提供可视化界面操作,其内部数据结构为组成格式模板的几个类,用户可以
7、利用该软件建立自己的协议格式库或加载现有协议格式特征描述文件,其类图如图3所示。协议编解码软件加载格式管理软件所生成的格式特征描述文件,在接收到协议时自动识别协议数据所符合的格式项,利用该格式进行解码并将协议数据按照HIT-GPTA平台能够识别的方式发布出去。另一方面,订购相关数据并按照与解码项所对应的编码项进行编码并输出。协议编解码软件类图如图4所示。5 软件测试及结果本系统测试环境由两台通过局域网连接起来的节点计算机