Salvatore Loreto, Simon Pietro Romano
开放互联网平台
HTML5通常被用来当做一个概括性词汇来指所谓的开放互联网平台的改善,尽管HTML自身只是众多用来开发网页应用的一部分,并且通常被视为此平台的一部分。完整的特征还包括层叠样式表(CSS)、文档对象模型(DOM)、JavaScript、以及一些脚本API。
HTML以一种结构化的方式展现了应用及其数据,并且让开发者能够利用CSS设计应用以及通过JavaScript控制它。所有这些技术都由网络设备(通过浏览器,代理,以及网络服务器)利用HTTP或者WebSocket(http://tools.ietf.org/html/ rfc6455)来传播的。
脚本API使程序员能够通过JavaScript来适当的控制和扩展浏览器的功能。的确,一旦有新的功能被加入到浏览器中,W3C工作组就也会设计一个新的API来将这个功能提供给开发人员,使浏览器的功能愈发接近那些本地应用环境。
架构
RTC的架构模型是浏览器RTC梯形模型,其使媒体通道能在浏览器间直接传输而不通过任何中间服务器。信令路径穿过服务器,可以根据需要调整、传送、或者管理信息。
这个理念内容是让客户端网页应用(通常是用HTML和JavaScript一起编写的)通过WebRTC API与网页浏览器进行交互,让他们能够合适的开发及控制浏览器的功能,并且从主动(例如查询浏览器性能)和被动(接收浏览器产生的通知)方式与浏览器自身进行交互。上述的应用浏览器API必须提供一系列的功能,比如连接管理(在P2P方式中)、编码/解码性能、协商、选择和控制、媒体控制、防火墙、以及网络地址转换(NAT)。从技术的角度来说,API是在JavaScript中执行的,展示了其作为在网页应用客户端脚本语言的有效性。
应用浏览器API的设计体现了一个有挑战的问题,但是并没有全部的解决它。事实上,设想的一个完整的画面,应该是连续的,实时数据流一次性的通过网络进入直接通信的两个(甚至更多)浏览器中,其中不经过中间设备。我们正在谈论的浏览器到浏览器通信,因为其首次允许P2P数据通信进入网页应用领域,所以是一个革命性的东西。
想象一个在两个浏览器间进行的实时音频和视频对话。在这种环境下的通信会涉及到两个浏览器之间的直接媒体流,伴随着媒体通道协商及实体化通过一个复杂的交互序列,涉及到下面几点:
- 呼叫方浏览器和呼叫方JavaScript应用(例如,通过JavaScript API);
- 呼叫方JavaScript应用和应用提供者(通常来讲是网页服务器);
- 应用提供者和被叫端JavaScript应用;以及
- 被叫端JavaScript应用和被叫端浏览器(再一次通过应用-浏览器JavaScript API)。
有了上述的观点,我们接下来会研究RTCWeb中最相关的特征的细节。