赵志强 于瑞媛
(1.中国文联网络文艺传播中心 北京市 100029 2.同方股份有限公司 北京市 100083)
随着即时通讯领域的迅猛发展,目前基于即时通讯平台的音视频服务已经初见雏形,一对一、一对多的视频聊天服务已经得到了普遍的应用。视频会议系统与即时通讯的结合,发展出的综合应用形态将是未来视频会议系统发展的大势所趋。
有了即时通讯服务的辅助,视频会议系统将具备易用性、安全性与独特性等特点,会议过程的安全性、私密性,将有效的保证会议全程、会议中重大决策、内部重要文件的存储、分发及信息交流的安全,防止重要内容的泄漏。同时,利用开放平台的特性,在会议开展过程中还可以整合现有的服务,将它们顺畅的、无缝的融入会议过程中,达到会议高效开、业务顺利办的效果。
视频会议系统是一种通过图像与声音进行交流的通信技术[1],系统通过实时传递视频、音频等数据信息,是参会者实现远距离直观真实的交流。
移动互联网的普及,视频会议系统市场的发展也呈现全终端的形态,使其真正的具备跨地域的应用场景。随着整个市场规模的不断壮大,已经由最初的政府和邮电、电信行业用户发展到司法、银行、证券、保险、教育、医疗、税务、厂矿企业等各行各业[2]。企业面试、远程医疗、远程视频教学、培训、远程监控等已经得到了广泛的应用。
互联网时代,视频会议系统已经日益普及,各政府机关、企事业单位也正在逐渐将部分会议由线下转换到线上进行,利用先进的网络资源、技术手段满足现有需求,在业务开展过程中能够起到重要支撑作用,通过视频会议系统与即时通讯服务结合的综合应用将会体现出易用性、便捷性、安全性与独特性等特点。系统除支持基础的会议功能外,还将提供更好的会议沟通机制,更强的文档管理方式,将与云平台、各业务系统在用户、组织、信息、过程、业务等全方位实现互连互通,底层复杂的技术实现在用户层面是完全透明的,系统间的登录、切换将变得顺畅。在会议过程中能够通过底层的即时通讯服务,实时的推送各业务系统提供的页面,在会议中即可完成业务的办理。
通过与即时通讯的结合,提供了更多的入会方式:
2.1.1 会议群中快速加入会议
在会议群中设计了快速进入会议的方式,因为在会议群中的参会人员为管理人员确认的用户,所以这部分用户可以不用输入会议ID和会议密码即可进入会议。由于即时通讯的群属性,会议管理员可以随时添加、删除参会人员,将传统的加入参会人员的方式变更为群添加、删除人的方式,这将为实际的会议开展带来极大的便利性与易用性。
2.1.2 会议列表方式加入会议
考虑当即时通讯的消息流过多时,查找会议群较困难的情况,在做系统设计时,专门设计了会议列表,通过会议列表列出的不同状态(未开始、进行中、已结束)来帮助参会人员可以更快速的定位到具体的会议。与会议群中快速入会的方式一样,这部分用户,由于是经过了会议管理员同意的,所以无需再输入会议ID、会议密码,可以一键入会。
2.1.3 输入会议信息加入会议
除了上述两种快速入会的方式,针对每场安排的会议,会议管理员可以通过分享的方式将会议信息分享给其他用户,这部分用户可以通过输入会议ID、会议密码的方式加入会议。与上两种参会人员不同的是,通过这种方式入会的参会人员将无法与会议群中的参会人员进行沟通,获取会议群中传递的资料。
系统也充分考虑了会议过程的场景。除了会议的开展,在会议中经常会出现需要使用业务系统的情况,比如让参会人员投票、做问卷调查等。所以在会议群中,针对每场会议都加入了一个第三方业务系统页面接入的模块,会议管理员在这个模块中可以动态的管理要使用的各第三方业务系统页面。在实际的会议过程中,会议管理员可以根据会议的不同阶段,将管理的各第三方业务系统以消息的方式动态的推送到参会人员使用的设备中。
针对长时间的会议(一般一个会议主题需要持续几天时间的情况),为了节省系统的会议资源,系统设计了将会议重开的模式,通过这种方法,一个会议群将可以按照时间顺序接入多场会议。
在做系统设计时,重点考虑了两个问题。一个是组织较多,需要分别单独使用的问题;另一个是视频会议系统与即时通讯怎么结合的问题。
基于以上两种问题的考虑,首先系统在SaaS云平台基础上进行的设计,通过租户的方式,为不同的组织提供系统的接入。当有组织需要使用的时候,只要在SaaS云平台上开通单独的租户即可。各租户在系统的使用上更加自由、灵活、方便,拥有自主性。
视频会议的设计方式大量的吸收即时通讯平台的建设经验,所以经过反复论证,将视频会议系统嵌入即时通讯平台,以即时通讯平台做为主体。用户实际使用过程中,无需下载单独的视频会议软件,直接使用原有的即时通讯平台提供的软件或者APP即可。
在系统的建设过程中重点关注安全性和可靠性。包括:底层架构层面和应用层的相关需求。
底层采用嵌入式、冗余设计,内置防火墙穿越、IP/PSTN线路备份、VOIP电话会议扩展、断线重邀、多级权限认证、AES加密。通过这些技术,来进一步保证系统的安全和可靠。
应用层上,主要考虑到会议过程的全程视频、内容分发两个层面。在会议全程的视频录制上,采用客户端录制的方式,在云端不留痕迹,防止云端的视频文件被非法窃取;内容分发上,完全在会议群中分发,通过这种方式,将参会人员进一步的分为两类,既会议群中的参会人员和非群中的参会人员(通过输入会议ID、会议密码入会的用户)。非群中的参会人员将无法获取到会议群中传递的会议资料。
系统以即时通讯平台为基础组件,实现了业务系统和视频会议系统的跨平台协作功能。当登录业务系统后,在进行正常业务操作的同时,也可直接进行视频会议预约,参加已经开始的视频会议。
系统的设计遵从云平台信息化架构与视频会议服务进行结合的方式,采用分布式系统的方式进行设计。在展现层,基于现有云应用框架,用PC端桌面版(EXE)、移动端承载,通过HTTP/HTTPS、WS/WSS协议与服务端交互,并通过Web Service形式将数据在平台和系统中进行传递。即时通讯平台,采用微服务架构,核心服务使用WebSocket技术,利用STOMP协议封装,进一步实现了社交引擎、推送引擎、文件引擎、搜索引擎等核心技术组件。利用分布式消息队列RabbitMQ,分布式缓存Redis使服务间解耦,提升响应时间,采用服务集群技术保障即时通讯的稳定性与可靠性。视频会议系统,使用虚拟化技术和云计算架构,采用负载均衡服务、CDN网络接入、应用服务集群。提供Https Open API接口供即时通讯平台调用视频会议系统的预约、更新、删除、重开等会议的基本操作,并将操作结果反馈到展现层的桌面端、移动端,展现层通过即时通讯平台对视频会议系统发起调用接入相关服务,实现高清、流畅的音视频交流。后端通过消息总线、存储资源池、数据库资源池等技术手段保证业务响应时间、数据的完整性和稳定性。平台架构图如图1所示。
图1:平台架构图
系统在设计中充分考虑了未来数据对接过程中的统一性、兼容性,采用了JSON格式来进行数据的组装、系统间传递。
例如为视频会议的预约,查询签到等功能提供数据支撑,主要包括视频会议预约表,视频会议签到表等。
数据经过JSON格式的封装后,在视频会议系统、即时通讯平台、SaaS云平台中进行传递。针对未来的实际需要,还可以将信息对外公开,形成标准的数据结构,供培训、学习等系统使用。为未来的各业务系统对接带来了便利。视频会议预约元数据如表1所示,会议签到元数据如表2所示。
表1:视频会议预约元数据
表2:会议签到元数据
本文提到的系统提供的接口使用REST API作为接口规范。REST是Representational State Transfer(表现层状态转移)的缩写,满足其规范的接口具有简单高效的特性。系统采用REST API作为接口规范,可以大大简化业务系统的使用复杂度,提高业务集成的效率。每个接口通过绑定的URI的服务方式,通过GET、POST等HTTP常用方法,提供了对视频会议系统、即时通讯平台的信息获取及基本操作。通过设计的接口可以非常方便的将各系统提供的信息映射到任意的Web资源上。主要的接口名称、功能说明、请求方式、所需参数及返回结果如表3所示。
表3:系统主要的接口设计
系统采用统一规划和顶层设计的方式进而实现了完全虚拟化部署。利用最先进的SVC柔性视频编码架构做到了向下兼容H.323/SIP系统[4,5]并实现了与传统H.323系统的互联互通、有效融合,使系统能够集中管控和使用。通过对H.264、H.264 High Profile、H.264 SVC高清编码的支持使图像清晰度上具备了动态视频的全高清1080P格式输出以及数据共享图像的1080P格式支持,利用AVC和SVC双重编码技术,使系统支持采用两种方式的混合会议并可通过网关(GW)方式接入传统的AVC视频会议系统。音频输出方面,会议中的音频质量既能兼容行业音频编码等标准算法,又能智能优化音频编解码、智能屏蔽键盘、鼓掌等非人声发声频率,具备了自动回声抵消(AEC)、回声抑制和自动增益控制(AGC)。系统在音视频算法能力上已经具备了卓越的网络适应能力,支持在任何时间、任何地点,通过任何设备、任何网络获得声音、视频和数据。在数据传输方面,系统实现了智能丢包恢复机制,通过5重智能丢包恢复机制,可进一步的避免在会议中出现画面卡顿、丢帧的情况使网络丢包容错率提升到了60%,音频可承受90%网络丢包,即使在十分恶劣的网络环境下,仍可保证画面、声音的同步及流畅传输。
系统实现了虚拟化技术和云计算架构。采用多线BGP核心骨干网络接入,大中小各类会议室、桌面端、移动端均可通过网络接入视频平台,实现高清流畅的音视频交流。通过标准的音视频通信协议与各级单位和机构的视频系统互通互联,具备全时空、多部门、多业务的视频协同能力。
系统按照层次化设计规划了接入终端层、接入网络层、视频平台层、运行管理层。接入终端层主要解决多种场景的终端应用,实现多种终端方式的接入;网络接入层充分考虑系统中基于各种网络的业务应用,提供互联网、移动3G/4G、语音网络等接入能力;视频平台层基于X86通用服务器,利用虚拟化方式实现系统平台部署;运营管理层实现系统的资源管理、用户管理、业务管理、运营管理、定制服务管理,保证系统持续稳定运行。视频会议系统架构如图2所示。
图2:视频会议系统架构
以下将重点介绍即时通讯平台的实现方法。
(1)用户登录即时通讯平台后,客户端自动向服务端发起HTTP协议握手请求,申请建立WebSocket连接, 并在Request请求头中附带Upgrade: WebSocket/ Connection: Upgrade参数,告知服务器要使用WebSocket协议。
(2)即时通讯服务端接收到请求后,根据请求参数判断要建立WebSocket链接,并返回响应结果,在Response中附加Switching Protocols/Sec-WebSocket-Accept参数,告知客户端请求切换成功。
(3)基于TCP协议建立WebSocket连接,允许服务端与客户端双向数据传输,实现即时通讯聊天等功能。例如,用户A向用户B发送一条文字消息,通过步骤3建立的WebSocket连接直接发送到服务端。
(4)服务端接收到即时通讯消息后,首先进行持久化存储,将文字消息保存到MongoDB中,图片、文件等非结构化消息保存到MongoDBGridFS中。
(5)由于即时通讯服务是分布式的,用户A与用户B连接的不是同一台服务器,服务端在持久化保存消息之后,通过分布式消息队列进行分发。
(6)消息监听服务负责持续监听消息队列,当步骤5中发送消息后,接收到消息进行处理。
(7)消息监听服务在步骤6中接收到消息后,通知消息接收者B所在的即时通讯服务器,并进行消息传递。
(8)即时通讯服务端通过WebSocket协议,将用户A发送的文字消息推送给用户B。
平台同时也考虑了多方面的在安全问题。自定义多种安全拦截器,有效防止SQL注入、跨站脚本攻击、跨域请求伪造等网络安全攻击。支持Https,WSS传输协议,确保数据在传输过程中安全。敏感数据使用256-bit AES加密算法对数据库文件进行加密存储和解密读取,保证数据库内容和表结构信息都不能被明文获取。移动端通过混淆、加固等安全措施为移动应用提供安全保护能力,防止应用被逆向分析、反编译、二次打包,防止嵌入各类病毒、木马等恶意代码,从源头保护数据安全。本地敏感数据采用安全沙箱和安全加密方案,保障用户数据信息的安全性。系统通信逻辑图如图3所示。
图3:系统通信逻辑图
随着互联网技术的普及,政府和各企事业单位在会议开展过程中将更加关注效率、安全、便捷等特性。近些年,视频会议系统得到了飞跃式的发展,使用上越来越贴合用户的实际使用习惯,这就催生了视频会议系统与其他业务系统、平台不断的结合。本文提出了一种将视频会议系统与即时通讯结合的方法,新方案具备诸多创新特性、各系统间耦合度低、易于后期维护等优点。