APP下载

基于OSGi架构的融合通信平台设计与实现

2019-10-21周冰侯位昭李飞焦立彬

计算机与网络 2019年9期
关键词:模块化

周冰 侯位昭 李飞 焦立彬

摘要:介绍了在企业级应用中融合、模块化和动态热部署的重要性,研究了OSGi服务组件模型,基于OSGi的高度模块化和动态化的优点,结合支持网页浏览器进行实时音视频通话的网页实时通信(WebRTC)技术,将传统通信技术与现代信息技术相融合,设计实现了集语音、视频、会议、位置及通知(即时消息、短数据和短报文)等5大类基础支撑服务为一体的融合通信平台。

关键词:OSGi;融合通信;模块化;WebRTC

中图分类号:TP312文献标志码:A文章编号:1008-1739(2019)09-58-4

0引言

目前,在政府、公安、人防和电力等众多行业领域的信息系统建设过程中,对通信和信息技术的混合应用成为了一个基本需求[1]。而传统的基础通信能力的建设涉及到电信设备采购、公网电信接入和交换业务处理等众多专业领域,绝大多数行业信息化软件企业精通的是行业业务,对于通信能力建设并不擅长。随着融合通信技术的发展,以SDK/API的方式将基础通信能力对外开放,使得专注于行业业务开发的软件企业以最快速度、最低成本实现自身业务的电信级通信能力。另外,鉴于上述行业对稳定性的特殊要求,上线系统不间断运行也是一个必备条件。而随着行业业务的快速发展以及信息化的快速更迭,用户系统不可避免地需要升级换代,有些系统更新相当频繁,这与系统不间断运行产生了必然矛盾。因此,在业务系统的设计过程中,对可扩展性、可维护性、热部署和热更新等提出了更高的要求。

1基本概念

1.1面向Java的动态模块化系统OSGi

OSGi是一个基于Java的服务平台规范,其目标是被需要长时间运行、动态更新、对运行环境破坏最小化的系统所使用。OSGi技术提供允许应用程序使用精炼、可重用以及可协作的组件构建的标准化原语,这些组件能够组装进一个应用和部署中。OSGi规范的核心组件(Bundle)是OSGi框架,为应用程序(组件)提供了一个标准环境。

遵循OSGi规范的平台核心可动态更改运行状态和行为。在OSGi框架中,每一个Bundle实际上都是可热插拔的,因此,对一个特定的Bundle进行修改不会影响到容器中的所有应用,运行的大部分应用还是可以照常工作。基于OSGi框架的系统可分可合,其结构的优势使得具体的Bundle不影响全局,不会因为局部的错误导致全局系统崩溃。同时OSGi框架本身可复用性极强,很容易构建真正面向接口的程序架构,每一个Bundle都是一个独立可复用的单元。OSGi层次结构[2]如图1所示。

1.2网页实时通信WebRTC

WebRTC是在Web瀏览器里面引入实时通信,包括音视频通话等,实现了基于网页的语音/视频通话,目的是无插件实现Web端的实时通信能力。WebRTC提供了视频会议的核心技术,主要包括视频的采集、编解码、网络传输和展示等功能,并且支持跨平台(包括Linux,Windows,Mac,Android等)。

WebRTC技术的主要优点有:①WebRTC核心模块内置于Chrome和以Chrome为内核的浏览器中,用户不需要使用任何插件就可以通过浏览器实现音视频通话;②强大的NAT穿越能力[3],包含了使用STUN[4],ICE[5],TURN,RTP-over-TCP的关键NAT和防火墙穿透技术,并支持代理。

2平台设计

2.1平台架构

基于OSGi架构的融合通信平台作为一种支撑型业务平台,采用分层、模块化设计思路进行总体架构设计,如图2所示。

2.1.1 SDK层

以SDK的形式对上层业务应用系统暴露平台的通信和信息能力,供业务系统嵌入调用。平台SDK开发包支持多种平台(Android,IOS,Windows等)。

2.1.2接口层

通过集成开源框架Jersey RESTful,实现了JAX-RS(JSR311&JSR339)规范。提供RESTful风格[6]的调用API和基于WebSocket的推送API[7],以API的形式为SDK层和上层应用系统提供融合通信能力。

2.1.3核心层

基于模块化技术,将平台功能组件化,实现功能插件的定制组合和热插拔能力。通过定义插件开发规范与标准接口,平台核心层可以加载运行所有满足规范的插件,插件通过事件与服务总线进行平台内部的服务发布与事件订阅,功能间交互完全采用SOA的方式,保证系统的低耦合性。

2.1.4业务层

将统一通信子系统的音视频功能、会议控制功能以及统一信息系统的位置、短数据类功能封装成多个业务逻辑插件,通过平台核心模块提供的插件化加载能力,将业务逻辑插件挂接在平台核心模块的事件与服务总线上,提供业务逻辑能力给接口层。

2.1.5接入层

支撑层和业务层之间的一个纽带,对下兼容支撑层多种多样的服务协议(UDP/TCP,WebService,HTTP接口,SIP协议等),对上以标准插件的形式挂接到平台核心模块的事件与服务总线上,通过标准OSGi插件接口的方式与业务层进行业务交互,有效保证了对支撑层丰富的支撑服务的兼容性和扩展性。

2.1.6支撑层

平台运行的基础,为平台业务提供支持能力,由一系列的服务设备组成,通过平台核心层的支撑服务配置管理接入模块,将每个支撑服务的服务运行状态、日志、告警、配置接口和业务能力暴露在总线上,由相应的管理模块和业务模块获取相应的信息进行处理和调用。

2.2功能设计

融合通信平台对外提供的主要功能包括以下几个。

①语音类:面向普通电话、PDT终端、SIP软终端等通信终端发起语音呼叫、接听语音呼叫、拒绝接听语音呼叫、挂断已经接听的语音呼叫、呼叫转移、呼叫等待和三方通话等。

②视频类:面向视频话机、SIP视频终端、视频监控终端等终端设备发起视频呼叫、接听视频呼叫、拒绝视频呼叫、挂断已经接听的视频呼叫和视频转语音呼叫等功能。

③会议类:语音会议、视频会议、会议管理、获取(释放)控制权限和会场控制能力等。

④位置类:北斗定位、GPS定位以及电子围栏、虚拟围栏等位置类应用。

⑤通知类:即时消息、短信、北斗短报文、PDT短消息、TTS文本转语音和录音等文本类操作功能。

3主要子系统实现

3.1平台核心子系统

采用基于OSGi规范的插件式架构Apache Filex,实现微内核和插件架构,以允许在运行时刻获得好的模块化和动态组装特性。平台核心子系统由内核、公共基础服务模块和管理模块组成,如图3所示。

①平台内核:采用OSGi标准的插件加载控制核心,提供功能插件的动态加载发布能力、功能插件的生命周期管理以及事件与服务总线能力,为平台加载的插件提供信息交互、服务能力暴露、事件注册与订阅等功能。平台内核的动态加载发布能力使系统具备了运行中热更新的能力,保证了系统的不间断运行。

②平台公共基础服务模块:提供公用的基础服务,主要包括统一的Web容器和集中存储服务。其中Web容器基于Apache Felix HTTP Service解决方案,通过Felix发布Web容器能力;集中存储提供平台内部业务需要的业务数据存储查询能力,为平台各模块提供数据结构定义,并在总线上提供相应的数据操作服务,对数据库集中管控。

③管理模块:为平台提供统一运维、状态监测、功能配置、日志管理、告警管理、用户管理、安全管理和许可管理的功能。所有的管理模块均为平台管理插件,依托平台核心启动运行。通过平台提供的事件与服务总线与各个业务插件、接入插件进行数据提取与交互操作。

3.2统一通信子系统

主要提供视频、音频、会议3大类通信功能以及有线、无线、视频监控等多种制式通信系统的融合能力,以插件的模式挂接到平台核心子系统的事件与服务总线上。其中插件包括接口层的统一REST接口插件和统一WebSocket推送接口插件,业务层中的呼叫控制插件、会议控制插件、视频监控插件、接入层的软综通接入插件、28181网关接入插件、H5-VoIP接入插件等。统一通信子系统的SDK层封装了以WebRTC技术和SIP协议为核心的H5-VoIP,用于直接处理音视频流媒体传输、控制协议以及实现用户媒体视窗功能;封装了接口层中REST接口和WebSocket接口中的音视频以及会议控制功能。统一通信子系统如图4所示。

3.3统一信息子系统

主要提供即時消息、短信、北斗短报文、PDT短消息和北斗/GPS/PDT位置应用等信息类功能。整体以插件模式挂接到平台核心子系统的事件与服务总线上,其中插件包括接口层的统一REST接口插件和统一WebSocket推送接口插件、业务层中的通信录插件、位置插件、短数据插件、即时消息群组插件、接入层的即时消息接入插件、短信接入插件、GPS/北斗接入插件等。统一信息子系统的SDK层封装了以WebSocket技术和XMPP协议为核心的即时消息客户端,用于直接处理即时消息的传输、控制协议;封装了接口层中REST接口和WebSocket接口中的位置、短数据等功能。统一信息子系统如图5所示。

行业应用软件开发用户通过统一通信子系统和统一信息子系统获取基础通信信息能力只需以下几步。

①在用户系统中引入融合通信平台对外提供统一地址,系统将自动加载SDK包;

②用户系统提供融合通信平台授权,通过后即可获取相应能力列表,例如:音视频通话能力、多媒体会议能力、即时消息能力、位置推送能力和短数据收发能力等;

③用户系统根据API文档,调用能力列表中的能力接口,配合终端的音视频输入设备(耳机、麦克等)即可实现音视频通话、多媒体会议、即时消息聊天、位置查询/接收、短数据(北斗短报文、运营商短信和专网集群短信等)等融合通信能力。

通过上述简单3步,行业应用用户即可实现音频、视频、会议、位置和通知等5大类专业功能,无需关心电信通信设备部署、复杂通信协议兼容、海量数据处理和多种通信终端融合等问题。

4结束语

基于OSGi架构的融合通信平台通过采用浏览器端全WebRTC架构、OSGi的插件式核心架构以及二次开发的全SDK架构,有效解决了融合通信产品终端操作繁琐、系统停机运维可用性差及定制化能力弱等问题,通过提供良好的二次开发SDK,契合了PAAS(Platform As a Service)的设计理念,实现了新一代融合通信平台。该平台已经在地铁、电力等行业广泛应用,取得了良好的应用效果。

未来平台考虑将通用行业业务应用进行凝练,以插件化集成的方式融入到系统中,形成功能更加丰富、业务更加多样、使用更加便捷的综合性支撑服务平台。

参考文献

[1]熊琦.下一代企业级统一通信平台的研究与实现[D].北京:北京邮电大学,2009.

[2]林昊,曾宪杰.OSGI原理与最佳实践[M].北京:电子工业出版社,2009:131-145.

[3]高扬,肖继民.NAT穿越技术研究[J].江苏通信技术,2005,21(5):1-6.

[4]李毅.利用STUN协议实现SIP穿越NAT[D].上海:华东师范大学,2006:15-18.

[5]刘胜辉,周野.对ICE穿越Symmetric NAT技术的一种改进[J].计算机工程与应用,2010,46(3):109-111.

[6]徐涵,李红军,胡伟.Restful Web Services(中文版)[M].北京:电子工业出版社,2008.

[7]龙奇.下一代Web通信技术HTML5 WebSocket的研究[J].科技信息,2011,11(36):273.

猜你喜欢

模块化
用模块化思维打造组织
模块化设计的“高等数学”信息化教学探索与实践
老年大学模块化课程体系建设的实践研究
基于 LabVIEW 的高速公路机电工程检测系统模块化设计
JGJ/T 435—2018施工现场模块化设施技术标准
大众MEB电动车模块化平台
高中语文模块化教学的常见问题及解决策略
模块化微流控系统与应用
TE Connectivity针对可穿戴设备、智能手机和移动设备推出全新模块化连接器
AP1000模块化施工在进度计划管理工作的体现