本文主要介绍NUBOMEDIA(我们翻译和整理的,译者:jiangpeng,校验:blacker),最早发表在【编风网】

支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:blackerteam 或 webrtcorgcn)。

当我在2011年第一次听说WebRTC时,我被它用标准化的API和协议迷住了。不过,很快我注意到peer-to-peer服务功能太有限。作为开发者,我希望有更多的功能,而这些功能只能通过WebRTC的infrastructure来提供,这就是我参加Kurento项目的原因。Kurento很给力,但是随着它渐渐成熟,我们发现有越来越多的需求与可扩展性相关。这是一个明确的信号:Kurento的“云化”很有必要。

出于这一点,2014年,借由欧盟委员会的财政支持,我们开始着手这一工作,几年来与欧洲最出色的云专家们合作,努力工作。这些努力没有白费:NUBOMEDIA,第一个开源的WebRTC PaaS,现在已经实现。

NUBOMEDIA: 首个WebRTC PaaS

在WebRTC技术的生态系统中,为开发者提供可扩展的云并不是新兴事物。像Tokbox ,Kandy, Twilio和其他许多供应商都有提供。这些解决方案通常被称为“ WebRTCAPI的PaaS ”,“WebRTC云API ”,或“云API ”,因为他们提供了表现出云服务优点“ -ilities ”(比如,可扩展性,安全性,可靠性等)的自定义API,从而提供了一些WebRTC能力。

对于NUBOMEDIA,我们也考虑过采用“云API ”的概念作为解决方案。但是,虽然API是开发者用来创建应用的主要的构建模块,但应用并不仅仅是一组API调用。在调研了WebRTC开发者的需求后,我们觉得“平台”概念相对于“API”概念更具吸引力。平台提供了执行应用所需的所有机制。这通常包括一个操作系统,一些编程语言特定的运行时环境,和一些服务的API。平台的云化版本通常称为PaaS,字面意思就是被作为服务提供出来的一个平台。

市面上有很多PaaS,包括Heroku, Google App Engine或AWS Elastic Beanstalk。它们都为开发者提供了上传、部署、执行、管理用不同编程语言创建的应用等功能。这些PaaS的服务是相当方便的,因为它们让开发者集中精力完成自己应用的逻辑,而存储、扩展和安全性等则由PaaS来保证。尽管这些PaaS服务提供了很多功能,我们注意到大部分PaaS供应商没有把WebRTC能力作为它们的API提供出来。因此,WebRTC开发者并不能享受PaaS的所有优点。

WebRTC的云API和一个完整的WebRTCPaaS之间的主要差异如下图所示。可以看出,WebRTC的云API(左图)并不运行开发者的应用,而只是以提供供应用使用的网络API的方式来提供一些WebRTC能力。另一方面,完整的WebRTCPaaS上承载着应用,负责其运行、扩展性,并对其进行管理。

基于以上思路,NUBOMEDIA想法清楚地出现了:不是从Kurento演变到云API,而是应该创建一个完整的PaaS出来,使开发人员可以在享受到PaaS的优秀特性(即应用的部署,执行,扩展等)的同时,以一种可扩展和安全的方式调用Kurento的API。

为什么你可能对NUBOMEDIA感兴趣

NUBOMEDIA现在已经实现,并可以供全球开发者公开使用。像OpenShift、Cloud Foundry或者Apprenda的解决方案一样,NUBOMEDIA是私有PaaS ,它包含可以下载安装并在任何OpenStack云的IaaS之上执行的开源软件栈。

作为开发者,或许你有兴趣在你的下一个应用中尝试一下NUBOMEDIA,因为它同时结合了WebRTC云API的简单易用的开发过程和完整的PaaS的灵活性。在你这么做时,把NUBOMEDIA作为一个Java PaaS考虑,因此,你可以在创建你的WebRTC应用时,利用Java平台的所有功能。与其他Java PaaS的唯一不同在于,NUBOMEDIA将为你提供一个特定的SDK ,通过它,你能够以一个可扩展的方式访问Kurento的完整功能集。

从实用的角度来看, NUBOMEDIA等WebRTC技术的云解决方案的主要区别如下图所示。可以看到,这里面有灵活性和简单性之间的折衷:开发越简单,应用的灵活性越低,使其适应客户定制化需求的能力越弱。

例如,最灵活的解决方案(左下角的IaaS),开发出完整的功能全面的WebRTC应用的难度最大。在另一方面, SaaS解决方案(右上角)不需要太多的开发工作,但开发者自定义、适应特殊要求的能力通常非常有限。出于这个原因,WebRTC技术开发人员往往喜欢WebRTC技术的云的API,提供了一定的灵活性,同时,开发也比较简单。

NUBOMEDIA基本上处于同样的位置,但是更加侧重于灵活性。这就使得NUBOMEDIA更适合用于需要满足特殊、甚至罕见的需求的场景。以下都是一些普通WebRTC API实现起来比较困难、而使用NUBOMEDIA可以轻松实现的例子:

1.使用特定的信令协议(例如SIP,XMPP ,自定义等)。

2.具有特殊的通信拓扑。例如,假设你需要一个特殊的视频会议室,可以查看别人,但不会被别人看到;或者说,你需要“同声传译”--某些与会者不需要看到他,但需要听到他的声音。

3.定制AAA(认证,授权和计费)。例如,你希望实现一些定义用户是否可以访问特定的媒体功能(如录音,查看特定流等)的规则,从而可以通过一些复杂的逻辑进行控制(如上下文信息,时间日期,已通话时间等) 。

4.超越普通呼叫。我们可以想象很多运用WebRTC技术的、但不限于普通呼叫的例子。例如,以灵活的方式用摄像机连接到用户或其他系统的,实现人对机器或机器对机器的应用场景,而不局限于WebRTC云API提供的典型的房间内视频会议模式的情景。

还有个有趣的特性:因为NUBOMEDIA是私有PaaS,它可以在任何OpenStack的基础设施上执行。这意味着,在NUBOMEDIA运行的运营成本由你控制,你可以决定在哪个IaaS上部署PaaS。这显著降低了运营成本,因为与等效的云API相比,不需要再与云API供应商打交道了。

NUBOMEDIA 开源社区

和Kurento一样,我们基于开源原则创建了NUBOMEDIA项目。目前,它有一个活跃的开源软件社区,包括不同技术的项目小组,如:云端机制,PaaS管理技术,媒体服务器,各种媒体处理模块,和Android、iOS、Web客户端SDK。

如果你想了解更多关于NUBOMEDIA的信息,你可以查看社区文档,在那里你可以找到如何安装和管理平台,以及如何开发和部署应用程序到PaaS的详细信息。你还可以查看社区的YouTube频道,观看说明如何开发和部署NUBOMEDIA应用的视频。如果您想了解NUBOMEDIA社区的最新消息,你可以在Twitter上关注。

译者:jiangpeng,具体详见:【编风网

Android IOS WebRTC 音视频开发总结(八十)-- NUBOMEDIA: 首个WebRTC PaaS的更多相关文章

  1. Android IOS WebRTC 音视频开发总结(十九)-- kurento

    折腾了一个多星期终于将kurento的环境搭建好(开发阶段的产品,有些BUG要自己解决),所以单独写篇文件来介绍. 下面开始介绍kurento,文章来自博客园RTC.Blacker,转载请说明出处. ...

  2. Android IOS WebRTC 音视频开发总结(十五)-- 培训课程大纲

    最近在给公司做内部培训,主要是关于即时通讯和移动视频通话,包括android与android,ios与ios,android与ios,以及手机与PC. ------------------------ ...

  3. Android IOS WebRTC 音视频开发总结(十)-- webrtc入门002

    继续上一篇中未翻译完成的部分,主要包括下面三个部分: 1,扩展:WebRTC多方通话. 2,MCU Multipoint Control Unit. 2, 扩展:VOIP,电话,消息通讯. 注意:翻译 ...

  4. Android IOS WebRTC 音视频开发总结(十二)-- sufaceview

    谈到音视频不得不谈谈对视频呈现的理解,为了让大家能有一个更好的理解,先看看android里面SurfaceView的原理,后续陆续分享其绘画原理. 说明:本文是转载的,转载自哪里我也不知道,貌似经过很 ...

  5. Android IOS WebRTC 音视频开发总结(十八)-- 手机适配

    本文主要介绍上次碰到的某些机器上看不到视频的问题,文章来自博客园RTC.Blacker,转载请说明出处. 之前做的视频聊天App一直运行良好,前几天客户反馈说在三星9100. Android4.0.3 ...

  6. Android IOS WebRTC 音视频开发总结(十六)-- 音频设备操作之opensl与jni

    本节主要分享视频通话中android和ios上操作音频设备的方式,如调解音量大小,启用扬声器(本系列文章转载请说明出处,博客园RTC.Blacker). 先看看webrtc中处理音频设备代码的目录结构 ...

  7. Android IOS WebRTC 音视频开发总结(四一)-- QQ和webrtc打洞能力pk

    很多人知道webrtc打洞能力很强,到底有多强但是不知道,比较好的方法就是跟QQ对比,但大多数公司很难模拟各种网络环境进行测试,比如联通,铁通,电信,移动,所以这次请小师妹在实验室下进行了一个比较全面 ...

  8. Android IOS WebRTC 音视频开发总结(十四)-- sip和xmpp异同

    这篇文章主要介绍XMPP与SIP,很多人容易混淆这两个概念,转载请说明出处(博客园RTC.Blacker). 简介:XMPP和SIP都是应用层协议,主要用于互联网上发送语音和即时通讯. SIP在RFC ...

  9. 转:Android IOS WebRTC 音视频开发总结 (系列文章集合)

    随笔分类 - webrtc   Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键? 摘要: 本文主要介绍WebRTC端到端监控(我们翻译和整理的,译 ...

  10. WebRTC 音视频开发

    WebRTC 音视频开发 webrtc   Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键? 摘要: 本文主要介绍WebRTC端到端监控(我们翻译 ...

随机推荐

  1. jQuery下通过$.browser来判断浏览器

    使用方法: $.browser.['浏览器关键字'] 代码如下: $(function() { if($.browser.msie) { alert("this is msie") ...

  2. EnglishLeaning

    今天看了些hadoop官方reference感觉自己词汇量和语法真是又回到解放前了.于是,痛下决心要好好学习英语.找到了一些学习的方法,自己记录下来,也和大家一起借鉴 努力目标: 掌握大量的计算机英语 ...

  3. Java中引用类型变量,对象,值类型,值传递,引用传递 区别与定义

    一.Java中什么叫做引用类型变量?引用:就是按内存地址查询       比如:String s = new String();这个其实是在栈内存里分配一块内存空间为s,在堆内存里new了一个Stri ...

  4. VS中Debug和Realease、及静态库和动态库的区别整理(转)

    原文出自:http://www.cnblogs.com/chensu/p/5632486.html 一.Debug和Realease区别产生的原因 Debug 通常称为调试版本,它包含调试信息,并且不 ...

  5. 内网透过公网nginx和vpn实现微信接口调试

    条件: 1.公网IP开放80/443端口 2.vpn,我熟悉openvpn 3.nginx反向代理 1.在公网服务器上装nginx和vpnserver 2.本地调试电脑装vpnclient,mac o ...

  6. 免装版tomcat注册成windows系统服务方法

    如果一台服务器要部署两个应用,而且又各自不受影响的话,只能使用两个端口两个tomcat分别管理 在这里吐槽一下tomcat,为毛停止服务就把所有应用都停了,更新其中一个,就要把所有的都停了,然后更新完 ...

  7. Datatables回调函数中文

    Datatables——回调函数 ------------------------------------------------- fnCookieCallback:还没有使用过 $(documen ...

  8. SQL 事务隔离学习

    select --* request_session_id as spid, resource_type as restype, resource_database_id as dbid, DB_NA ...

  9. asp.net教程:GridView导出到Excel或Word文件

    asp.net教程:GridView导出到Excel或Word文件</ br> 在项目中我们经常会遇到要求将一些数据导出成Excel或者Word表格的情况,比如中国移动(我是中国移动用户) ...

  10. 双系统 fedora 恢复引导

    因为硬盘坏了,所以买了个固态的用用. 先装windows,再装fedora及常用必备的驱动软件装上. 快要完成了心情都挺好,可是在一次关机时window7关机很慢一直在删索引,我嫌时间太长,直接按电源 ...