高效通信服务系统设计与实现

高效通信服务系统设计与实现

摘要:介绍了面向实时数据流的高效通信服务系统的系统组成框架,分析了通信服务端的实现基础和工作流程,介绍了通信客户端的设计,在原型系统中对相应技术实现进行了测试和验证。结果表明,该系统能够满足实时、高效的数据交换要求,可为信息系统通信服务的设计实现提供借鉴。

关键词:通信服务;数据交换;IOCP;订阅

1引言

随着信息系统规模的不断扩大,信息系统间实时数据共享的数据量也在不断上升,继而对支撑信息系统运行的通信服务性能也提出了更高的要求。本文提出了面向实时数据流的高效通信服务系统,作为信息交换的底层系统软件,支持大型复杂信息系统网络层的数据交互,能在高并发网络环境下提供实时、高效的数据转发服务,能够有效解决通信服务系统面临的并发访问链接数量大、数据交换信息流量大等实时处理的关键问题,对相关信息系统的开发具有一定的参考意义。

2设计与实现

2.1系统框架

面向实时数据流的高效通信服务系统,在其实现形式上,是一个典型的CS软件系统体系结构,由通信服务客户端、通信服务端和管理端三部分组成,图1给出了高效通信服务系统的主要组成。通信服务客户端部署于各应用系统,为其提供网络通信能力。管理端是监控通信服务运行情况的管理程序。通信服务端的主要组成包括:(1)逻辑管理层:由监控管理、主题管理和链接管理三个子模块组成。监控管理模块按照约定协议向管理端上报服务端状态信息;主题管理负责域内客户端的通信主题维护和通信主题匹配;链接管理用于维护服务端与客户端之间的通信链接。(2)数据管理层包括:由数据队列管理、线程池管理和内存管理三个子模块组成。数据管理层为逻辑管理层提供数据管理支撑。(3)通信子层包括:将底层网络通信接口进行封装,对数据管理层提供高效的网络数据传输支撑。

2.2通信服务端设计

为保证通信服务端的实现性能,在Windows系统平台下选择完成端口(CompletionPort)SocketI/O模型,以提升高速CPU和慢速I/O设备(网络适配器)间的高效协调。采用IOCP模型编写服务程序主要包括两种类型的线程:主线程和工作线程。主线程负责创建并监听套接字,创建工作线程,等待并接受客户端的连接,并将其关联到IOCP等,而工作线程则负责等待并处理在IOCP对象上完成的事件。基于IOCP模型编写的服务端工作流程如图2所示。(1)对网络进行初始化,并设置Socket版本号;(2)创建一个I/O完成端口,为完成端口分配套接字句柄,并对端口进行标识;(3)准备好一个监听套接字,并创建监听线程,开始监听网络上客户端的连接请求;(4)创建工作线程池,当有客户端请求连接时,主线程建立新的连接,为新连接的客户端建立上下文信息,并将该客户端套接字句柄关联到完成端口,然后投递一个异步的收发调用;(5)工作线程循环获取消息队列状态,从客户上下文信息中获取与Socket相关的上下文信息,判断消息状态,取得要操作的数据内容;(6)主程序继续下一个循环,等待新的客户端连接;(7)Windows操作系统内核完成收发操作,并将结果发送到完成端口;工作线程对数据进行处理,然后提交下一个操作请求,继续下一次循环并阻塞获取消息队列状态;(8)重复步骤(5)至(7),直至服务端程序退出。

2.3通信客户端设计

通信客户端是为各应用系统提供通信服务访问的标准动态库,主要涉及的接口类型包括:公共接口类和数据接口类。通信客户端的类图结构如图3所示。公共接口类的主要接口包括:客户端类和主题类。客户端类主要接口内容为客户端初始化、客户端退出、与服务端建立连接、向通信服务发送数据和检查客户端状态等。主题类主要接口内容为主题、取消主题、订阅主题和取消订阅主题。数据接口类主要接口内容为:设置接收对象、设置重连间隔、设置客户端缓冲区大小、绑定客户端地址和接收数据等。

3应用评估

3.1应用模式

面向实时数据流的高效通信服务系统,实现了数据发送端与数据接收端的松耦合关系,支持点对点传输和订阅传输两种传输模式,传输应用流程如图4所示。在点对点传输模式下,数据发送端发送的数据仅可被一个数据接收端处理。在订阅传输模式下,一个客户端应用数据,一个或多个客户端应用订阅数据;的数据副本会被与订阅主题匹配的一个或多个订阅应用收到,服务端基于主题将数据转发至订阅该主题的客户端。

3.2实验与结果

实验环境包括1台运行通信服务端的服务器、5台运行通信客户端的计算机和1台48口千兆交换机。其中服务器的配置为:处理器Intel(R)Core(TM)i7-4790CPU@3.6GHZ*8,内存8G,双千兆网卡,Window7专业版。实验从客户端接入数量、主题申请数量两个维度,对数据吞吐量、数据转发延迟和传输丢包率3项指标进行了分析测试,测试结果如表1和表2所示。

4结束语

本文介绍了面向实时数据流的高效通信服务系统的设计和实现,能够满足高并发、大流量的实时数据通信,通过系统实现,简化了应用客户端通信实现和管理的难度,为信息系统间互联提供了具备灵活性和扩展性特点的通信手段。经实验验证,系统运行高效、稳定,可为信息系统通信服务的设计实现提供借鉴。

参考文献

[1]梁金晶,姚宏.浅谈Windows下高性能服务器程序模型IOCP[J].电脑知识与技术,2016,12(03):257-258.

[2]李腾,孙志刚,贾峰.实时/订阅数据分发服务的模型分析[J].无线电工程,2016,46(02):6-9,18.

作者:周丽丽 秦贺伟 赵时轮 单位:中国电子科技集团公司第五十四研究所