基于面向对象技术构建通信软件框架

(整期优先)网络出版时间:2017-07-17
/ 2

基于面向对象技术构建通信软件框架

王权

关键词:面向对象技术;通信软件框架;构建

1、前言

框架把一个系统有机地分解成一组相对独立的构件,并定义了各个构件间的接口和作用关系,符合软件工程中设计的模块化、独立化和信息隐藏等特征。框架设计的一个核心问题就是发现可重用的设计和热点,以保证框架具备充分的灵活性,使用户能在已有构件的基础上生成应用程序,实现“零代码编写”的理想目标。

2、基于面向对象技术构建通信软件框架

对于以往的通信软件的设计中分析设计没有一个统一的标准、从分析设计到制作和编程没有一个始终一贯的工程化方法,使得产品形成的每一个过程人为因素影响十分严重、分析设计的成果不被开发类似项目或产品时重用。采用面向对象技术来构建通信软件的框架各个组件、接口、数据都被设计成为对象。对象之间通过消息通信形式形成整体,构成系统,形成一个层次清楚、移植性好、易于扩展和重定义的系统结构。通信软件框架主要由各个类组成,对于不同的应用裁减或增加相应的类。

2.1通信软件框架的系统类图

通信软件的层次结构如图1所示。硬件层和操作系统层为上层提供基本的运行环境,能够提供硬件管理、系统管理和基础数据管理。操作系统接口层为上层提供任务、时钟、信号量、队列等的管理。通信接口层为上层提供串口、网口、CAN口、E1口、卫星接口、ATM接口、电话接口的通信服务。应用层按照特定的处理要求来完成用户的操作。根据通信软件的功能将其抽象为操作系统接口类、通信接口类、网络类和应用类,这些类构成通信软件的开发框架。

操作系统接口类对操作系统的常用对象进行封装包括任务、时钟、信号量、队列等的创建、删除、查找等功能的成员函数。操作系统接口类隔离了不同的操作系统对通信软件设计的影响,当用不同的操作系统进行设计时,只需修改操作系统接口类,便于通信软件在不同操作系统间的移植。通信接口类包括串口类、网口类、CAN口类、E1类、卫星接口类、ATM接口类、电话接口类等,具体类的内容主要包括接收缓冲区、发送缓冲区等数据和初始化、协议封装、协议解析、读取缓冲区、写入缓冲区、读取数据、发送数据等功能函数。网络类包括七号信令类、TCP/IP类和自组网类。应用类包括接收缓冲区、发送缓冲区等数据和接收处理、消息处理和发送处理等函数。

2.2通信软件的实施

根据具体的通信设备的操作系统,修改操作系统接口类生成相应的操作系统接口类对象。根据通信设备的具体接口的类型和数量,生成相应的接口类对象。根据通信设备的所用网络情况生成相应的网络对象。根据通信设备的具体应用相应的修改用类生成相应的应用对象,软件具体实施时,只生成一个应用类对象。

实例说明:通行设备具有4个串口、1个网口,采用自组网的组网方式。整个通信软件的工作状态如图2所示。程序运行时首先生成一个应用对象、一个操作系统接口对象、一个自组网对象、一个网口对象和4个串口对象。

操作系统接口对象完成初始化工作后向应用对象发送“完成初始化消息”,接着各个对象相应的完成自己的初始化工作。应用对象向自组网对象发送“形成路由消息”,自组网对象收到该消息后进行路由形成过程。当应用对象有报文要进行发送时,向自组网对象发送“查找路由消息”,自组网对象接收到该消息后进行路由查找过程,并将查找的结果通过“查找应答消息”发送给应用对象,应用对象接收到该消息后选择相应的接口将报文发送出去。如果选择某个串口或网口则向其发送写数据消息,接收到该消息的通信接口对象经过协议封装然后将数据发送出去。当通信接口接收到数据后,则向应用对象发送“有数据消息”,应用对象接收到该消息后进行相应的消息处理。当自组网对象收到应用对象的“维护路由消息”时进行路由维护。

3、分析探讨

下面给出了一种基于MINA网络通信框架的数据通信平台的设计,该方案借助于MINA框架的多协议支持、异步通信、可管理性和多编码方式等功能,可以帮助用户快速构建网络应用程序,使用户只专注于应用层会话协议,而不需要花费大量的时间对通信底层进行调试和维护,大幅度的提高了程序员的开发效率和系统的可靠性和可重用性。

3.1MINA架构剖析

MINA(MultipurposeInfrastructureforNetworkApplications)是Apache软件组织开发的一种多功能网络应用程序框架,使用Java技术实现,可以帮助用户快速构建稳定、高性能的网络应用程序。该框架的主要特点有:通过Java异步输入输出(NIO)技术,可以方便的支持TCP/UDP协议;灵活、可配置的线程模型,这对于网络通信程序来说尤其重要,用户可以根据实际需要选择符合自身的线程模型;多编码方式支持,既可以使用字节流或者文本,也可以使用其它编码方式,如ASN.1编码等。

3.2系统设计

本数据通信平台的主要功能是完成数据的交换和共享,是一个相对独立的通信系统,它主要提供数据传输功能,并保证数据传输的可靠性,高效性,可管理性和安全性等。

3.2.1系统框架

数据通信平台划分为4个核心模块,分别是数据传输模块、消息处理模块、路由管理模块和数据预处理模块。数据传输模块完成底层的协议处理和数据收发的实现,是数据通信平台的传输实现层,它对上层提供数据传输服务;消息处理模块首先将用户数据格式转换成系统包格式,即使用统一的收发接口实现数据传输与具体的应用数据无关,然后完成数据包以及其它内部消息的收发、协议处理等;路由管理模块负责解决消息的传输路径问题,它告诉消息处理模块和数据传输模块消息的发送目的地,以及接收的消息是转发还是提交给上层应用进行处理;数据预处理模块主要包括数据的加密/解密,数据压缩/解压和数字签名等,是进行数据加工的公用模块。各模块之间的关系如图2所示。

3.2.2编码解码器

数据传输模块共分为两部分,分别是多协议适配和多协议传输。多协议适配可以支持多种传输协议进行数据传输,并向上提供统一的I/O接口,向下封装多种传输协议,实现协议无关性;多协议传输是实现所支持的各种传输协议,主要包括CTP、SMTP和HTTP等,是对各种传输协议的底层实现,其中CTP的编码解码采用ASN.1方式。编码和解码的基本单元为消息帧,它是数据传输的基本协议数据单元(PDU)。消息帧分为数据帧和控制帧,数据帧主要装载业务数据,而控制帧主要用来传输控制命令。消息帧主要包括帧头和帧体两部分,消息与数据帧相对应,它们是一对多的关系。

4、结语

本文将面向对象技术引入通信软件的开发框架构建,提出了一种供参考的利用面向对象技术构建通信软件开发框架的模型。面向对象的软件结构框架具有通用性,合理的框架不仅能适用于各种不同的嵌入式操作系统的平台上,而且能够简化软件的设计,提高软件设计的效率。

参考文献:

[1]张卓亚,张志鸿.基于ACE的交易通信中间件的研究与实现[J].微计算机信息,2007,6-3:149-150,157

[2]朱成果,于淑玲.面向对象的嵌入式系统设计方法[J].单片机与嵌入式系统应用,2004,3(1):24-27.