远程视频会议的开发模式

自从发明了电话,人们就开始了远程视频会议。到了上世纪九十年代,电视会议成为可能:与会者不仅能听到其他人,也能看到对方。最初的电视会议的设备一般使用两根ISDN专线(128Kbps x 2),电视机,及专用的摄像头。

上世纪九十年代末开始的互联网革命无疑对传统的电视会议带来了巨大冲击。首先是网速的提升,ADSL和Cable Modem的普及使ISDN的速度过了时;其次是宽带的普及,公司、家、旅馆、机场,宽带无处不在,现在硬件电视会议系统也不再用自身的专线,而是用现有的网络;再次是电脑越来越快,越来越便宜,普通的台式机或笔记本配上摄像头及麦克风就能支持音视频,而不再需要昂贵的专用设备。

于是本世纪初,软件会议产品开始崛起。所谓软件是指不用特制芯片(ASIC)而是用通用CPU。软件会议产品除了硬件会议产品的功能(音视频)以外,还支持文档共享(如PPT)、桌面共享、聊天等功能。软件会议可以在任何时候、任何地点召开,只需要电脑和网络,有很好的能动性。软件会议的费用只是硬件会议费用的五分之一到十分之一。

最初的软件会议产品一般采用C/S模式:厂家开发一个在客户端运行的程序(C)和一个在服务器端运行的程序(S),C与S用某种自定义的协议传输数据。此类产品有很大的代表性:WebEx、V2、视高等产品都是C/S模式。客户端的程序(C)可能会用多种形式来安装:传统的安装程序(exe)、Active
X插件(或Firefox插件)、Java插件等,但最终客户端上运行的是一个可执行程序。

2006年以来,一种新的软件模式悄然兴起,那就是B/S模式,国外称为AJAX或Web
2.0。与传统软件不同的是:B/S软件在网页浏览器里运行,它只是一个网页,没有可执行程序,它甚至不需知道系统的CPU和操作系统事什么;但是它有与传统软件一样的可操作性:菜单,按纽,拖动等等。

用B/S模式开发会议产品有一定的难度:现有B/S软件的实时同步区间都在1分钟以上,如各种B/S电子邮箱,而会议的实时同步区间须在几秒钟以内;会议中的文档需要转换成网页形式而不能依赖于客户端的程序打开文档;会议中的数据流量(如文档共享,桌面共享,语音,视频等)比现有B/S软件大很多。于是有的厂家用Flash来开发整个会议产品,如腾商等。Flash软件有与B/S软件类似的地方:软件在Flash缓存中,没有可执行程序,跨平台(只要平台支持Flash)。但Flash软件毕竟依赖于Flash,而Flash本身是插件,有插件共同的缺点:需安装,需更新,有版本不匹配问题。因此Flash软件应该说介于B/S和C/S之间,不是纯粹的B/S软件。

下面从技术层面阐述AnyChat解决方案的技术特点并和Adobe公司的Flash解决方案进行对比:

1.支持P2P技术

AnyChat支持P2P技术,在视频通话时语音视频流优先P2P传输,即当两个客户端之间的P2P通道可用时,语音视频流直接通过P2P通道传输,不经过中心服务器,不占用中心服务器的带宽资源。当P2P不通时才经过服务器转发,保障音视频应用的正常通信。

Flash不支持P2P技术,所有语音视频流数据均需要通过服务器转发,需要占用大量的中心服务器带宽资源。

2.低带宽占用

AnyChat单路(语音+视频)最低带宽为150kbps,而Flash单路最低带宽为300kbps,所以在同等条件于,AnyChat更节省带宽资源,对客户端或是中心端的网络要求更低,适应性更广。

3.支持高并发

使用AnyChat解决方案,单台普通的双核服务器(100M独享带宽)可支撑高达5000用户的并发,系统的资源占用仍处于较低的水平。主要是因为AnyChat支持P2P技术,同时内核采用C++语言开发,并有针对性的采用线程池、内存池等技术对系统资源的占用进行优化。

AnyChat解决方案在视频游戏、视频聊天室等领域有较多的应用,对高并发数据的处理有独到的处理方案。同时可提供详细的压力测试报告,以及压力测试现场视频录像等相关资料。

根据实际使用的数据统计, Flash解决方案单台服务器最高支持400并发,且满负荷运行时系统资源占用较高,而且同等条件下Flash解决方案实现5000并发需要1.6G的网络带宽,而AnyChat仅需要100M。

4.可扩展性

AnyChat在体系架构上采用模块化设计,将音视频与业务逻辑分离,在后台开放API接口适合进行二次开发,可以进行业务逻辑的扩展,设计个性化的业务模块。

随着业务的开展,当现有的API接口不能满足今后的应用需求时,AnyChat可以进行API接口定制来满足更复杂的业务场景。

Flash是Adobe公司封装的独立产品,后台的业务扩展性较弱,且不能针对证券行业的特定需求进行API接口定制。

5.高安全性

AnyChat是佰锐科技拥有完全自主知识产权的产品,在目前国家重点关注网络信息安全的大环境下,AnyChat解决方案更适合证券行业应用,Flash的安全漏洞更容易被恶意利用。

而且更重要的一点,AnyChat开放了音视频数据进行加密、解密的API接口,在有必要时,上层应用可以单独对音视频数据进行加解密,而且加解密算法由上层应用自主控制,这是Flash不能实现的特性。

综合来说,相比于Adobe公司的Flash解决方案,AnyChat更适合于证券行业的视频见证、远程开户等应用场景,特别是在高并发情况下,可以显著的降低系统的网络带宽占用,节约运营成本,后续的业务扩展更有保障,而且安全性更高。

时间: 2024-10-23 19:25:00

远程视频会议的开发模式的相关文章

Java开发web的几种开发模式

Java Web开发方案有多种可供选择,这里列举一些经典的开发模式进行横向比较,为Java Web的开发模式选择提供参考.除此之外还有好多方案(如Tapestry和Wicket等等)并不了解,这里就不列举了. JSP+JAVABEAN开发模式:    特点:该模式将业务逻辑与页面表现进行分离,在一定程度上增加了程序的可调试性和维护性.    缺点:页面将控制与显示集于一身.    结论:简单,适合小型项目的快速构建与运行. JSP+Servlet+JavaBean开发模式:    特点:JSP作

java 开发模式

Java-开发模式 Java Web开发方案有多种,这里列举一些经典的开发模式进行横向比较 JSP+JAVABEAN开发模式:    特点:该模式将业务逻辑与页面表现进行分离,在一定程度上增加了程序的可调试性和维护性.    缺点:页面将控制与显示集于一身.    结论:简单,适合小型项目的快速构建与运行. JSP+Servlet+JavaBean开发模式:    特点:JSP作为视图,来表现页面:Servlet作为控制器,控制程序的流程并调用业务进行处理:JavaBean封装了业务逻辑.遵循了

腾讯云大学 x CODING | 远程协作办公新模式

新冠疫情下,家里蹲的日子继续延长,许多企业陆续开启了远程协作办公,远程协作领域被推上了风口.但「远程协同」看不见摸不着工作伙伴,个人的自律能力也无法保证,难免出现沟通响应不及时.工作节奏不一致.工作效率低下等问题.研发团队如何更好地提高远程协作效率,不影响产品的迭代更新?本课程将针对目前远程办公的痛点,结合 DevOps 理念,就如何提高居家办公效率.降低企业成本等问题展开讲解,帮助企业团队实现高速云上开发. 课程主题 远程协作办公新模式 课程时间 2 月 28 日(周五)19:00 课程讲师

微信个性化菜单开发模式

最近一个礼拜搞了一个微信自定义菜单的开发,总的来说蛮郁闷的. 先给几个接口做下分析: 1:查询接口:查询接口分为两个,一个是开发模式下的普通查询接口,他只会查询出你通过添加接口创建出来的菜单和个性化的菜单(让公众号的不同用户群体看到不一样的自定义菜单),而不能获取到你通过微信管理平台添加的菜单.还有一个是可以查询全部菜单的接口,这个接口有点蛋疼,如果你先在平台上添加一个菜单,然后后台调用这个接口就可以获取到这个菜单,但调用这个接口的返回的json跟添加时的格式是不一样的(就是说你把它发回给你的j

微信公众平台搭建与开发(二)开发模式的搭建和关键词回复

在第一部分介绍了编辑模式,但是编辑模式有较大局限性,下面主要开始介绍开发模式,这一部门先简单介绍下开发模式的环境搭建和关键词回复. 开发模式首先要有一个虚拟主机,本人使用的是新浪开发者平台的虚拟主机,使用云豆计算流量,若成为新浪开发者用户基本上就可以免费使用了,本人注册用户所赠送的云豆不知道能用多久.当然国内比较大还有就是百度开发者平台,注册后发现部署还没有新浪的方便,并且在BAE3.0以后好像也是要收费的.有兴趣的朋友可以研究下google的开发者平台,不知道是否要收费. 在注册新浪开发者平台

Django开发模式会加载两次settings文件导致RotatingFileHandlerError

当使用RotatingFileHandler作为django的日志处理器的时候,会报: Traceback (most recent call last): File "C:\Python27\lib\logging\handlers.py", line 78, in emit self.doRollover() File "C:\Python27\lib\logging\handlers.py", line 141, in doRollover os.rename

关于Unity的开发模式

Unity是组件化的开发模式,总结起来就是节点+组件 1.每个空节点创建后,刚开始只有一个Transform组件,就像一个人出生的时候,只穿着一条裤衩一样 2.如果想让这个节点可以做更多的事情,有更多的功能,就可以给它加各种各样的组件,脚本也是一个组件,一个节点身上可以挂载各种各样的组件 3.挂好组件的节点,在层级视图中根据父子关系进行摆放,就像管理Windows的文件一样,管理那些节点 4.运行Unity,各个节点在各自组件的驱动下开始运动和逻辑变换,形成游戏

MVC开发模式

MVC简单介绍 Java Web应用的结构一个经历了两种开发模式,分别为Model1和Model2.Model1由大量的JSP页面以及少量的JavaBean组成,页面和Java代码结合在一起无论是开发.扩展还是维护都有极大的不便,所以基于MVC开发模式的Model2应运而生. MVC是一种开发模式,它可以将我们的代码解耦,让视图代码,和我们的逻辑代码分开编写,为我们后期的维护带来了极大的便利.MVC将我们的项目结构分为三个部分视图层(View).控制层(Controller).模型层(Model

大搜车前端开发模式:被动编译和主动编译

最近,梳理了一下公司的前端开发体系,准备给已经工作一年多的原有体系引入一些新的开发模式,其实也不算新了,只是对于我们一直采用的模式来说,是两个完全不同的方向,以前,我崇尚简单,一直按照简单易用的理念构建了公司现有的前端开发体系,现在随着人数的增多和业务的复杂度提升,感觉是时候引入一些差异化的开发体系了. 说来说去有点绕的慌,上面一段中说的 传统的开发模式,在团队内部我们叫做 被动编译,而新的开发方式,在团队内部叫做 主动编译. 被动编译 可能很多人对于被动编译都不是很熟悉,因为这种开发方式现在并