《ICT融合通信服务器中间件研究.docx》由会员分享,可在线阅读,更多相关《ICT融合通信服务器中间件研究.docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、ICT融合通信服务器中间件研究摘要:随着信息通信技术的兴起,融合通信服务器中间件的重要性越来越凸显通过“中间件技术,在融合通信服务器基础上打造一个对外的中间件平台即融合通信服务器中间件,不仅屏蔽了融合通信服务器内部的复杂性,还对外提供了一套符合互联网规范的开放的简洁的应用程序接口通过对融合通信服务器中间件的背景研究,提出融合通信服务器中间件的分层架构,阐述了一些重要数据构造及内部模块的实现,完成外部消息格式的定义最后通过功能和性能测试,证实了融合通信服务器中间件的可用性关键词:ICT;融合通信;CTI;中间件1引言CTI(ComputerTelephonyIntegration)即计算机电话集
2、成,是传统的语音通信与数据通信网络的结合,是连接通信设备和计算机的枢纽1大多数企业经过近几年的信息化建设,已拥有较完善的IT(InformationTechnology)系统,传统的IT系统以局域网或Internet为载体,需要办公人员有PC终端并连接上网才能发挥作用而CT(CommunicationTechnolo-gy)系统固然能够提供有效的通信方式,但不能与企业的业务严密关联通过对多个企业的IT系统进行分析,我们发现移动信息化的实现经过里很多工作都是共性的,如对基本通信协议的开发、同运营商网络的连接、通信业务逻辑解析、IT系统对接等,而定制工作主要集中在业务流程的实现如今的电信网络和数据
3、通信网络正在相互浸透融合,ICT(Informa-tionandCommunicationTechnology)代表着这种发展与融合的趋势ICT信息通信技术,它是信息技术和通信技术相融合而构成的一个新的范畴2,ICT平台的概念全面准确地反映支撑当代信息社会发展的方向融合开放的ICT综合业务平台,吸收了传统智能网的特点以及软交换“业务与控制分离,最终将完全融合CTI平台3ICT融合通信服务器便是一种代表着ICT融合的载体,在其基础上打造的ICT融合通信服务器中间件提供了一套符合互联网规范的开放API(ApplicationProgrammingInter-face)接口ICT融合通信服务器中间件
4、向互联网开放了ICT融合通信服务器的基础通信能力,实现互联网与通信网络业务的融合与应用的混搭(Mhup)同时,通过建立良好的商业形式,吸引互联网SP(ServiceProvider)入驻,让SP本人开发合适市场的“杀手级应用2中间件技术的介绍中间件(Middleware)是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通,十分是应用软件对于系统软件的集中的逻辑在当代信息技术应用框架如Web服务、面向服务的体系构造等中应用比拟广泛4早期内部服务器和外部应用客户端是一种紧耦合的集成形式,内部服务器直接提供对外API,应用客户端通过这些接口的调用直接操纵内部服务器在这种集成形式下,存
5、在着很多问题:程序可移植性差、安全性差、稳定性差能够在内部服务器和外部应用客户端之间添加连接软件中间件,通过中间件间接提供应外部应用客户端统一的规范的简洁的API,实现异构环境的通讯,屏蔽了异构系统中复杂的操作系统和网络协议,其总体构造如图1所示这样实现了内服务器专用接口对于上层应用客户端的透明,在不改变中间件对外API的条件下可随意更改中间件的详细实现,应用客户端几乎不需任何修改还可复用这样对于SP而言能够专注于应用客户端的开发,而不必过于关注内部服务器端的变化,进而保护了企业在应用软件开发和维护中重大投资成本5,63ICT融合通信服务器中的中间件ICT融合通信服务器体系构造设计如图2所示,
6、采用总线构造,各个组件分别挂在消息队列总线上,各个服务组件高内聚,低耦合,不会互相调用所有模块之间不发生直接的交互,所有消息的收发都通过消息队列总线,消息队列总线负责消息的接收以及将该消息推送到对应的目的组件上这种构造易维护性和易扩展性是显而易见的,假如要添加新的模块,不需要考虑它与其他模块之间交互而要写诸多的接口,只需要将其挂到总线上即可ICT融合通信服务器是一个整体系统,里面包含多个服务组件进程,不同的服务组件提供不同的基本服务接口外部应用客户端能够使用这些基本服务接口或者多个基本服务接口的组合完成复杂业务ICT中间融合通信服务器中间件是二者之间的连接软件,其设计的核心思想就是定义通信服务
7、接口协议标准(见43),每种基本服务接口对应的是一种规定好外部消息格式,应用客户端需要什么服务就向ICT融合通信服务器中间件发送特定外部请求,其作为中间者收到外部请求,根据预先设定路由规则(见422),适配到不同内部组件解析器完成消息处理,将外部消息转化成内部组件可识别格式,发送到服务组件并由其提供相应的服务,并将收到响应消息按原路发回给应用客户端4ICT融合通信服务器中间件的设计与实现ICT融合通信服务器中间件与传统CTI中间件相比:实当代价小,其主要提供CTI中间件最基本服务,以及其他额外功能会议控制,通信录设置查询,业务设置查询等,整合各种网络业务能力,采用统一消息调用的方式向应用开放,
8、通过灵敏组合各种网络业务能力开发多样化业务应用;采用Linux下Epoll方法实现对TCP的Socket端口监控管理,完全能够知足外部多客户端的并发、长短连接的需求内部采用缓冲区链表有效缓存大量高并发消息这样有效保证性能的稳定性和可靠性;具有一定先进性,ICT融合通信服务器中间件的架构设计有效考虑项目现实应用场景,其主要从分层、模块化、可扩展等方面考虑组织软件架构,分成三层:IO抽象层、消息路由层、消息适配层ICT融合通信服务器中间件的架构如图3所示41ICT融合通信中间件的架构设计TCP输入输出,对外IO,主要完成对外多应用客户端的IO,包括消息的接收与发送MQ输入输出,对内IO,主要完成对
9、内消息队列的IO,包括消息的接收与发送IO抽象层,对外IO、对内IO的抽象,便于IO接口扩展消息路由层,根据路由配置信息,将消息分发到不同的解析器上消息适配层,为上层路由选择层提供了一个统一的接口,根据收到的消息的类型不同适配到不同解析器解析器,将收到外部消息处理成内部组件的可识别的消息格式,或者是将收到内部消息处理成外部应用客户端可识别的消息格式42实现采用C语言开发实现,并将ICT融合通信服务器中间件实现为一个服务端的应用程序421缓冲区构造ICT融合通信服务器中间件运行经过中需要处理成千上万的消息,为了到达减少IO开销、增大并发、临时存储的目的,需要在ICT融合通信服务器中间件中定义缓冲
10、区下面定义了四个消息缓冲区:TCP接收缓冲区、TCP发送缓冲区、MQ输出缓冲区、MQ输入缓冲区TCP接收缓冲区数据构造structTcpecvData,各字段的定义见下页表1T_LIST_ENTY(TcpecvBuf)list是一个宏定义,代表本构造的链表即TCP接收缓冲区应用客户端向ICT融合通信服务器中间件发送请求,ICT融合通信服务器中间件将接收到所有客户端的请求消息依次放入TCP输入缓冲区TCP发送缓冲区、MQ输出缓冲区、MQ输入缓冲区实现类同TCP发送缓冲区,不再赘述TCP发送缓冲区中存放的是ICT融合通信服务器中间件已经处理完成的响应或事件消息,即将要发送到对应的应用客户端MQ输出
11、缓冲区存放的是ICT融合通信服务器中间件解析处理完成的请求消息,即将要发送到消息队列上,由消息队列发送到对应组件去处理MQ输入缓冲区存放的是ICT融合通信服务器中间件定时从消息队列接收各个组件的消息422消息路由器这里参考消息队列总线中路由形式的实现,不同解析器可订阅本人想要的消息类型,采用静态配置文件配置,并针对每一种消息类型配置一条消息路由,如图4所示对收到一条消息(这条消息既可能来自外部应用客户端的请求,可以能来自内部的消息队列总线),根据配置文件可选择发送到多个解析器,或只选择发送到一个解析器,或选择直接丢弃在配置文件/etc/ict_mid_routerconf中,INTEPETE下
12、定义各解析器在MK串中的固定位置,如IN-TE1:1表示解析器IN-TE1在MK串中第一个位置MESSAGE下定义了每个类型消息关于解析器MK串,0表示发送到该解析器,1表示不发送例如:MSGTYPE1=0000000000000000代表MS-GTYPE1类型的消息丢弃;MSGTYPE2=1100000000000000代表MSGTYPE2类型的消息发送到第一个位置解析器IN-TE1及第二个位置解析器INTE2路由信息的初始化在ICT融合通信服务器中间件应用程序启动时将路由表信息以链表构造形式加载到内存中,程序运行后,之后会一直保存在内存中423消息适配器不同解析器对应着不同入口函数,将所有
13、解析器入口数再次封装包裹,这样为上层路由选择层提供了一个统一的函数接口,如图5所示消息队列上增加一个与ICT融合通信服务器中间件交互的组件,并且这个组件需要对外开放服务功能,那么只需在ICT融合通信服务器中间件内部增加一个对应的消息解析器即可,这样便于扩展组件,而不用修改ICT融合通信服务器中间件上层构造424消息解析器由于外部应用客户端以及挂在消息队列上各组件需要的消息格式不同,对应了各个不同的语法环境消息解析器主要是对收到的消息进行处理,将其转化成特定语法坏境中的可识别的消息格式这里消息其实就是一连串的字符串,消息的处理其实就是对字符串的处理,将其转换成特殊格式的字符串以Agent解析器为
14、例见图6Agent解析器是ICT融合通信服务器中间件内部的一个解析器,其对应着挂在消息队列上的Agent组件消息由外向内处理经过:Agent解析器将收到外部应用客户端的请求消息转换为Agent组件可识别的内部标准命令,最后由消息队列发送到Agent组件消息由内向外处理经过:Agent解析器将收到Agent组件响应或事件消息转换成外部应用客户端可识别的数据格式,最终发往外部应用客户端43外部消息格式的定义外部消息格式描绘的是外部应用客户端与ICT融合通信服务器中间件之间如何交互公开的通讯协议有两种,一种是基于XML文档格式的,比拟直观,表现力强,容易扩展,但数据量大,传输效率低另一种是基于二进制
15、格式的,不直观,但传输效率高客户端与服务端连接都需要认证,安全性有一定保证客户端每发一条消息都有成功或失败的回应,可靠性比拟高ICT融合通信服务器中间件与外部应用客户端采用TCP连接下的C/S形式,其基于基于二进制格式的,外部消息格式定义如下页图7所示每条消息数据头、数据体、数据尾组成数据头以0xFE开始,长度固定为1B,数据尾以0xEE结尾,长度固定为1B数据体长度不固定,采用类AMI(teriskManagerInterface)的消息格式,由一个或多个字段组成,每个字段包含一个字段名和字段值,字段名和字段值之间以“:分隔,字段之间以“;分隔,字段名不区分大小写数据体第一个字段的字段名必须
16、是Action、esponse、E-vent三者中的一个,不区分大小写,对应的字段值称为消息名字第一个字段名是Action,表示请求消息,外部应用客户端想要做什么,将该请求消息发往ICT融合通信服务器中间件第一个字段名是esponse,表示响应消息,与请求消息是逐一对应的,ICT融合通信服务器中间件收到请求消息的处理后给出处理结果,将该响应消息发往外部应用客户端第一个字段名是Event,表示事件消息,ICT融合通信服务器中间件主动上报给外部应用客户端的消息,例如Media服务器发出分机注册事件、分机状态事件等外部应用客户端开发只需关心的是其与ICT融合通信服务器中间件交互的外部消息格式ICT融
17、合通信服务器中间件需要给出一份稳定的、完好的、明晰的外部消息格式讲明文档,包括所有消息以及消息中各字段名与字段值讲明外部应用客户端根据给定文档发送请求消息,解析收到的响应消息和事件消息5测试TCPUDP测试工具:运行于Windows操作系统上的一种网络协议及数据包测试和调试工具,主要用于在网络通讯程序开发时,测试TCP或UDP通讯连接和测试数据的接收和发送情况,通过直观友好的界面实时展示发送和接收的数据51功能测试ICT中间件应用程序测试完成的功能主要有:连接登录类:登录认证、注销、超时断开CTI呼叫控制类:发起呼叫、挂机、呼叫抢答、呼叫保持和恢复、肓转、呼叫转移、转移拉回、监听、强插、广播、
18、查询分机状态、话务员示忙/示闲及状态查询会议类:召开立即会议、邀请参加会议、禁止成员发言、禁止成员听、踢出会议、查询会议、关闭会议补充业务查询、删除、设置类:呼叫限制、闹钟、免打搅、呼叫前转、黑白名单、语音信箱、振铃组等等通讯录类:查询通讯录52性能测试使用TCPUDP测试工具模拟应用客户端,向作为服务端的中间件应用程序发送呼叫请求消息利用linux中top命令,查看中间件应用程序进程占用资源见表2TCPUDP测试工具配置选择自动发送,发送时间间隔选择分别为001ms、01ms、10ms、1ms发送消息为:(Action:MakeCall;Ext:3002;Caller:3002;Called
19、:3001;)能够看出随着客户端发送消息量增加,内存占用量基本不变,但是CPU占用量明显增加所下面步工作主要是研究怎样解放CPU,减少CPU的使用量6结束语本文通过对融合通信服务器中间件的背景研究,设计了融合通信服务器中间件分层架构,充分考虑了其扩展性,阐述了一些重要数据构造及内部模块的实现,完成外部消息的格式的定义最后使用TCPUDP测试工具模拟应用客户端,通过功能和性能测试,讲明了融合通信服务器中间件的可用性目前该融合通信服务器中间件组件已在项目中使用,运行良好,能够知足系统需求后续还需进一步开发完善融合通信服务器中间件功能,配合消息队列总线上其它各组件进行联调测试,以及成千上万消息高并发处理的性能优化和改良参考文献:1张亮基于VoiceXML的呼叫中心中间件的研究与设计D银川:宁夏大学,20133林晓勇,徐名海,阎巩平基于中间件技术的CTI应用平台研究与实现J计算机应用与软件,2009,26(11):95-975吕韶基于中间件的电话营销呼叫中心的设计与实现D杭州:浙江大学,20066余洁基于MQ的呼叫中心传输系统的设计与实现D西安:西安电子科技大学,2014