APP下载

统一通信客户端软件架构研究

2018-03-21罗有平汲锡林

无线电工程 2018年4期
关键词:跨平台客户端统一

罗有平,汲锡林

(1.中国电子科技集团公司第五十四研究所,河北 石家庄 050081;2.中国电子设备系统工程公司研究所,北京 100141)

0 引言

统一通信(Unified Communication,UC)是融合了电信网应用和互联网应用的综合解决方案[1],通过对用户多种通信方式的融合,使用户可以利用客户端进行通信[2],并能够访问其所需的语音、视频和数据等多媒体应用服务[3],以方便用户使用并丰富其体验。

统一通信客户端是统一通信系统的外在表现形式[4],为用户提供了体验统一通信业务的接口。通过客户端与服务器间协议交互,协同完成统一通信系统提供的各项功能:联系人管理、群组管理、状态呈现、即时消息、文件传输、音视频呼叫、音视频会议、监控调看和云台控制等[5]。实现这些功能涉及的协议包括:初始会话协议(Session Initiation Protocol,SIP)、XML配置访问协议(XML Configuration Access Protocol,XCAP)、消息会话中继协议(Message Session Relay Protocol,MSRP)、简单对象访问协议(Simple Object Access Protocol,SOAP)、Diameter、轻量级目录访问协议(Lightweight Directory Access Protocol,LDAP)和简单网络管理协议(Simple Network Management Protocol,SNMP)等多种协议,每种协议都与统一通信系统中的具体功能相关,发挥着各自的重要作用,文献[6-10] 对这些协议进行了详细描述。

用户可以在电脑、手机、平板和智能话机等多种硬件终端上使用统一通信系统提供的丰富业务,这就要求统一通信客户端软件能运行在不同的系统平台上[11],例如:Android、IOS、Windows和Linux等操作系统,上述需求决定了统一通信客户端软件必须能够跨平台移植开发。

开发统一通信客户端的传统方法是基于一款操作系统提供的接口,从多种协议实现、逻辑处理、数据存储到人机界面逐步开发[12],开发人员需要熟练掌握多种复杂协议、各操作系统接口及开发手段,开发难度极高,且很难保证用户跨终端使用的一致性体验。

为了屏蔽协议交互的复杂性,将统一通信系统中的协议交互封装成接口(Application Programming Interface,API)的形式开放给统一通信客户端开发者,使其能够更加简单、方便地开发多种应用。所以全球一些知名的通信企业均有其软件开发工具包(Software Development Kit,SDK),分别提供Windows SDK、Android SDK、JS SDK[13]。

统一通信客户端的跨平台平滑移植对于提高代码可复用性有着重要意义[14],更决定了软件功能的一致性。但各厂家提供的SDK虽与操作系统平台具有强相关的缺陷,但目前很难与国内外大公司同台竞争,只能立足军民融合领域、企业通信及行业用户,走定制化道路,快速响应用户个性化需求,所以需要研究跨平台的统一通信客户端软件架构。

1 客户端软件体系架构

统一通信客户端软件架构如图 1所示,由支撑层、通信层、应用与业务逻辑层和界面展现层4层组成。

图1 统一通信客户端软件体系架构

该分层架构将人机交互界面与业务处理模块、底层通信模块、系统平台进行分离,保证了客户端软件中模块之间的独立性,使得架构具有更好的扩展性和可维护性。

将支撑层、通信层和应用与业务逻辑层3层编译成统一通信客户端SDK,基于该SDK进行统一通信客户端软件开发,开发者不需要考虑协议流程的细节,只需要关心友好人机界面的设计与实现[15]。

分层跨平台软件架构对于提高统一通信客户端软件的稳定性和一致性都会起到良好的作用,更能加快客户端软件的研发进度[16]。随着用户的体验和使用,统一通信客户端必然会进行完善和改进,而这些完善和改进基本上都是针对应用方面的,不具备平台相关性,软件的升级和改进可以同时适用多个平台,这对于后期维护可以说是事半功倍[17]。

1.1 支撑层

支撑层的零操作系统(Zero Operating System,ZOS)是运行在操作系统上的操作系统服务平台,提供了支持多种操作系统环境下的统一抽象接口操作,如线程、信号量、互斥量、消息队列和内存等。高层软件与底层的操作系统实现分离,使高层软件可以在不考虑特定的处理机、编译器和操作系统的基础上,降低操作系统对软件开发和维护的影响,使开发人员把更多的精力放在对应用的总体把握和设计实现上,开发操作系统无关的应用,方便编程调试和程序的移植[18]。

ZOS对上层提供稳定高效的服务,是整个平台的基础。ZOS采用组件技术,提供任务管理、消息队列、计时器管理、内存管理、数据缓冲区管理、日志管理、链表、队列、字符串操作、文件、信号量和互斥等,对上层提供统一稳定的服务,上层应用软件直接使用ZOS的抽象接口,开发操作系统无关的应用。ZOS组成如图 2所示。

图2 ZOS组成

1.2 通信层

通信层提供了底层协议的封装,屏蔽了底层协议细节和业务流程,为上层提供了应用开发接口API,方便上层业务逻辑对底层协议的调用,主要包括与统一通信系统服务器之间的通信协议、语音引擎和视频引擎等。

通信协议组件主要包括SIP、XCAP和MSRP。协议组件负责完成与统一通信服务器交互消息的编解码。

语音引擎实现G.711和G.729等音频编码,包括防抖控制、静音检测、语音激活检测、舒适噪音、回声抑制和降噪处理等功能。

视频引擎完成H.263、MPEG4、H.264和H.265等视频编码以及音视频同步、画面平滑处理和动态码率控制等功能。

1.3 应用与业务逻辑层

应用与业务逻辑层是客户端软件的重要组成部分,对上通过API和回调函数实现应用开发者的配置和管理,对下调用通信层协议组件和媒体处理,完成统一通信系统中客户端的业务逻辑处理。

应用与业务逻辑层实现统一通信业务的逻辑功能,由状态/事务管理模块和各种业务组件组成,如图3所示。状态/事务管理模块负责初始化和释放各个业务组件,管理客户端的所有会话和窗口。通过应用与业务处理模块能够实现通信模式的管理、调度和切换。各种业务组件实现了各种业务逻辑,完成终端用户的语音、视频和数据等通信功能。

图3 应用与业务逻辑层组成

数据库管理模块存储用户注册信息和SDK运行过程的中间数据信息等,为其他功能模块的运行提供支撑。

联系人管理模块实现添加、修改、删除联系人,维护联系人列表的状态等功能。

群组管理模块实现创建群组、添加群组成员、删除群组成员、编辑群组属性和删除群组等功能。

即时消息功能模块实现文本、表情、图片、语音和涂鸦等信息内容的即时消息推送服务,具有消息群发、离线消息等功能。

状态呈现功能模块实现实时的显示用户在线状态(空闲、忙碌和离线等)的订阅与发布。

文件传输功能模块实现点对点文件传输以及大消息业务层传输控制。

音视频呼叫功能模块主要完成点对点音视频通话,同时提供呼叫保持和呼叫等待等补充业务。

多媒体会议功能模块实现发起即时或预约会议、邀请成员入会、删除会议成员、结束会议、关闭发言权控制、会议策略控制和会场控制等功能。

1.4 界面展现层

界面展现层主要用于实现人机交互的用户体验,包括主界面、登陆界面、消息界面、群组管理界面、会议界面和拨号界面等。一方面用户通过界面输入信息,并通过控制中心模块转发给相应的应用与业务逻辑处理模块;另一方面用户界面通过控制中心模块接收来自相应业务逻辑的信息,并展现给用户,从而实现客户端的人机交互。

2 基于SDK的客户端软件设计与实现

基于上述软件架构进行统一通信客户端软件设计与开发,以“简单、简洁、好用”为设计目标,功能调用具有快捷键,用户可在各功能间快速切换。开展通信主界面、配置管理界面、音视频电话拨号界面和消息界面等功能界面的设计,统一通信客户端软件界面设计如图4所示。

图4 统一通信客户端软件界面设计

3 应用结果分析

为了验证统一通信客户端软件的跨平台性,打造一个要素全、可迭代、可扩展的统一通信软件平台,构建了支持各类音视频资源IP化接入的统一通信系统,系统拓扑如图5所示。

客户端平台主要包括:模拟电话、手台、视频会议终端、摄像头、PC终端、Android手持终端、IOS手持终端、平板终端和智能多业务终端等。其中模拟电话、电台通过网关接入到统一通信系统中,作为传统通信终端,可使用音频电话或音频会议业务;PC终端、Android手持终端、IOS手持终端、平板终端和智能多业务终端上分别运行跨平台的客户端软件,通过该客户端软件可以访问统一通信服务系统所提供的所有音频、视频和数据业务。客户端软件以用户为中心,融合多种媒体,增强用户体验。

图5 统一通信系统拓扑图

通过系列试验及行业用户推广应用,基于上述软件架构开发的客户端软件具备以下特点:

① 功能丰富:为用户提供其所需要的语音、视频、文本和图片等多种媒体形式通信业务,包括语音通信、视频通信、视频会议、视频监控、即时消息、群组通信和文件传输等;

② 平台无关:SDK中引入了ZOS子层,屏蔽Android、IOS、Windows和Linux等操作系统接口差异性,为统一通信客户端软件跨平台移植提供了保证;

③ 裁剪灵活:统一通信客户端采用纯软件设计,可根据不同行业用户的业务需求选配对应模块,形成定制化客户端软件;

④ 扩展性强:统一通信客户端软件架构采用模块化、组件化的设计机制,每种业务处理、业务控制都是一个独立的软件模块,各个模块之间通过总线形式进行通信,新增业务只需开发相应的业务处理模块即可。

4 结束语

本文将支撑层、通信层、应用与业务逻辑层构建为跨平台的统一通信客户端SDK,基于SDK提供的统一API和回调函数,实现在Android、IOS、Windows和Linux等操作系统下的人机交互界面,并在包含多终端的统一通信系统环境中,验证了统一通信客户端软件架构的正确性和跨平台能力。基于该软件架构开发的客户端软件易于跨平台安装,便于使用,操作便捷,能以开放性、兼容性的设计满足不同行业用户的应用需求,其个性化的业务定制能力为用户提供了可用、好用的解决方案。

[1] 陈立水,王俊芳,赵进平,等.统一通信技术研究及展望[J].无线电通信技术,2014,40(2):1-3.

[2] 史黎黎,牛宾.基于Linux系统的即时通信软件开发[J].无线电工程,2015,45(8):94-96.

[3] 韩亮.基于插件的统一通信客户端框架的设计与实现[D].成都:电子科技大学,2011:35-40.

[4] 张庚,陈广,杨莹,等.统一通信中网络通信录关键技术实现[J].无线电通信技术,2014,40(4):85-89.

[5] 王俊,陈志辉,田永春.统一通信技术在战术通信网中的应用研究[J].军事通信技术,2014,47(2):82-85.

[6] RFC3261,SIP:Session Initiation Protocol[S],2002.

[7] RFC3262,Reliability of Provisional Response in the Session Initiation Protocol(SIP)[S],2002.

[8] RFC3264,An Offer/Answer Model with the Session Description Protocol (SDP)[S],2002.

[9] 3GPP TS 23.228,IP Multimedia Subsystem(IMS);Stage 2[S],2013.

[10] 3GPP TS 24.229,IP Multimedia Call Control Protocol based on SIP and SDP;Stage 3[S],2001.

[11] 靳娜.SIP 协议的研究与应用[J].计算机与信息技术,2007(12):90-91.

[12] 张海,SIP模式下统一通信端系统的设计与实现[J].信息通信,2016,167(11):194-195.

[13] 章鑫海.统一通信客户端软件设计[D].石家庄:河北科技大学,2015:47-49.

[14] 赵旨忠.一种应用于IP网络的呼叫控制设计[J].无线电工程,2017,47(6):6-9.

[15] 常海滨.嵌入式系统中SIP协议在VOIP的应用及实现[J].电子设计工程.2016,24(10):94-96.

[16] 黄兴平,徐鹏,杨放春.基于面向构件的软件框架实现IMS CSCF[J].北京邮电大学学报,2006,29(S1):130-134.

[17] 郑先锋,张继棠.IMS的关键技术和展望[J].电子技术应用,2006(6):31-33.

[18] 何维武,冯辉,谭淇文.基于Android平台实现战术统一通信客户端[J].军事通信技术,2016,37(4):82-85.

猜你喜欢

跨平台客户端统一
跨层级网络、跨架构、跨平台的数据共享交换关键技术研究与系统建设
坚持严管和厚爱相统一的着力点
一款游戏怎么挣到全平台的钱?
碑和帖的统一,心和形的统一,人和艺的统一
如何看待传统媒体新闻客户端的“断舍离”?
统一数量再比较
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
基于C++语言的跨平台软件开发的设计