通用网关协议数据转换软件开发1引言所谓通信协议是指通信双方的一种约定,约定包括对数据格式、同步方式、传送速度、检纠错方式以及控制字符定义等问题作出统一规定,通信双方必须共同遵守[1]。不同体系结构的系统一般采用不同的通信协议完成系统内部成员之间的通信,这固然为本系统的设计带来了很大的方便,但因为不同系统的通信协议往往不同,当本系统需要同其他系统进行通信时,会因为协议的不同造成通信障碍[2]。为解决异构系统之间因通信协议不匹配造成的通信困难,需要在两个系统之间添加一个协议转换器。目前的通信协议转换器大多选用或者自行开发专用的网关,但是专用网关由于重用性差,将导致多次的重复开发,浪费大量的人力和物力[3]。由于不同通信协议的协议格式有许多相近之处(如数据帧由帧头、数据项、帧尾等组成,包含校验等处理信息),这就使得设计一个一定程度的通用协议转换器成为可能[4]。本文通过对现有协议的分析,提供了一种比较通用的协议格式模板,通过对该模板的实例化可得到各种实际协议的格式信息。另外,本文还实现了对符合用本模板所描述协议格式的协议数据处理及转换过程,并在由哈尔滨工业大学开发的HIT-GPTA平台上进行了验证。2需求分析通用网关协议转换软件的用户需求定义如下:分析现有通信协议格式,提出各种协议的表达方法,并抽象出一个能够涵盖大多数常用雷达、导弹协议的协议格式模板,通过对该模板的实例化能够得到现有格式的描述信息。所建立的模板应提供最基础的协议元素编辑支持,提供不同数据类型的协议元素的支持,提供元素位定义支持,提供开放式的函数处理功能支持,提供格式描述信息的串行化输出功能,能够保存已建立的协议格式信息并在需要时导入该信息。设计符合HIT-GPTA平台接口规范的协议编解码组件,该组件能够加载格式描述文件。协议编解码组件应提供协议数据的动态处理功能,能够根据格式描述信息加载相应动态链接库,调用相应动态链接库函数,根据函数参数列表对协议数据元素进行相应处理。根据用户的需求定义,可将本系统划分为两个主要的功能模块:协议格式库管理软件和协议编解码软件。格式库管理软件通过对格式模板的实例化,生成具体协议的格式描述信息并串行化输出为格式特征描述文件;协议编解码软件加载格式特征描述文件,并根据用户所配置的信息初始化网络收发信息,在平台开始运行后,接收由网络传来的数据并解码发布,根据所订购到的数据信息编码输出到相应设备。系统用例如图1所示。3协议格式模板设计协议转换器的通用性决定于协议格式模板的通用性,为了抽象出一个较为通用的协议格式模板,需要先对通信协议进行分层管理以方便数据结构的设计,然后分析多种具体的协议格式,并得到他们之间格式上的相似之处,进而抽象这些相似之处,形成本系统的数据结构。根据协议分层管理的概念,可将协议分为三个层次:协议集、协议项、协议元素,如图2所示。对一些有代表性的协议项进行分析可得以下概念:一个系统所有协议的集合称之为协议集,可为协议集设计名称、ID、协议项列表等属性;每一个协议项又应该有名称、ID、帧头列表、元素列表、帧尾列表等属性。以上协议集和协议项的属性是一般协议所共有的,对于协议项的组成部分如帧头、元素、帧尾的具体结构则因协议的不同会有较大的差异。基于上述概念,采用面向对象的思想,可以进行协议格式模板的设计。协议可以分层表示为协议格式集、格式项和协议元素,故在设计数据结构时可分别设计为格式集类(CProtocolMuster)、格式项类(CProtocolItem)、协议元素类(CProtocolElement)。另外,为了描述协议项的传输特性,设计了帧头、帧尾(CHeadFormat)类;为了支持位处理功能及函数处理功能设计了数据元素位类(CDataBit)和处理函数类(CProcessFun)。4软件的设计与实现基于用户需求定义及系统功能分析,采用面向对象的方法对系统进行详细设计。根据需求分析,需要设计两个软件,分别是协议格式管理软件和协议编解码组件。格式管理软件的设计包括软件的静态模型、交互模型及用户界面的设计[5]。协议编解码组件的设计包含四个方面的内容:解码类设计、编码类设计、平台组件接口类设计和用户交互界面设计。格式库管理软件为用户提供可视化界面操作,其内部数据结构为组成格式模板的几个类,用户可以利用该软件建立自己的协议格式库或加载现有协议格式特征描述文件,其类图如图3所示。协议编解码软件加载格式管理软件所生成的格式特征描述文件,在接收到协议时自动识别协议数据所符合的格式项,利用该格式进行解码并将协议数据按照HIT-GPTA平台能够识别的方式发布出去。另一方面,订购相关数据并按照与解码项所对应的编码项进行编码并输出。协议编解码软件类图如图4所示。5软件测试及结果本系统测试环境由两台通过局域网连接起来的节点计算机组成,其中一台结点计算机上安装了格式库管理软件和HIT-GPTA平台,协议转换在该计算机上完成,另一台节点计算机作为异构系统与平台进行通信测试。系统的测试包括三个部分:格式库管理软件的测试、解码功能测试、编码功能测试。格式库管理软件测试主要目的是检测该软件能否按照需求分析中的要求描述现阶段所需要转换的所有自由协议。解码功能的测试方法是由异构系统的功能模块向HIT-GPTA平台发送数据,协议转换软件接收数据后进行解码并将协议元素按属性通过本地通信代理进行发布,或编码后进行输出。编码功能的测试由试验组件发起,协议转换组件将所订购的数据编码发布到异构系统的功能模块,若异构系统所接收的数据符合理论值则测试通过。以下仅给出一条测试用例:注:输出数据经过了函数处理,处理方式为是元素0或元素1加上元素2之后乘以元素3。通过对格式库管理软件、解码过程、编码过程的测试可以看出,格式库管理软件能够描述常用的雷达、导弹、舰船通信协议的格式;解码过程能够将通用的通信协议转换为HIT-GPTA平台能够识别的属性数据并发布,以供其他组件使用;编码过程能够将来自于其他组件的协议数据按照目的设备的协议格式进行编码并通过网络传输到目的设备。6结束语抽象出了一个通用的格式模板,并为其设计了用户交互界面;设计了协议转换组件,能够转换符合格式模板的通信协议,使通用计算机具备了HIT-GPTA网关的功能,并结合测试实例进行了软件测试,实现了通用协议转换软件的设计。参考文献:[1]桑伟.基于ARM的通信协议转换器的设计[J].自动控制,2007,(4):44-45.[2]张源,魏冬邦,康昊.基于XML的测控软件通信协议的研究[J].遥测遥控,2010,(31-6):42-46.[3]张娟锋,师卫,刘振国.通用通信协议转换接口的研究与实现[J].电脑开发与应用,2009,(22-5):25-26.[4]蒋浩天.综合网络多协议转换的研究和实现[D].成都:电子科技大学,2007.[5]赵锦蓉.通信协议转换器及其构造[J].软件学报,1995,(6):91-98.作者简介:佟立飞(1979-),男,工程师,研究方向:指挥控制。