面向全媒体的Web App共性支撑技术
2011-08-18陈婧璇马骁马立铭曹三省
文|陈婧璇 马骁 马立铭 曹三省
全媒体信息服务与Web App
当前,传媒机构纷纷启动全媒体化的数字信息发布、互动、服务平台的建设,其背后的逻辑是将全媒体平台作为纽带,创新传媒机构的业务组合和组织形态,求得全媒体化的内容生产、传播、营销实效。大量实践证明,要实现媒体之间的整合、融合,单靠行政命令是难以维持的;以报网互动、报网融合等层面的手段来推动,也犹如蚂蚁撼大树,难以实现目标。只有一个“开放式的信息平台”才能完成这一使命,这也是全媒体业务运营的核心。
针对不同终端,通过Web App的方式搭建“开放式的信息平台”是一个较为合理的技术选型。Web App是通过网络访问,通过Web浏览器渲染的应用程序,浏览器端采用的技术包括HTML/HTML5、CSS3、JavaScript,服务端技术包括Java、PHP、ASP等。Web App的优点在于开发成本低、部署及维护方便,使用Web技术可轻松完成Web App的开发。跨平台兼容性强,通过浏览器实现应用的访问,适用于各种智能设备,在PC、手机和其他数字媒体设备上都能得到应用。
用以支撑Web App渲染呈现与交互响应的底层技术就是浏览器内核,通过对浏览器内核的研究及改进,可以更好地服务于全媒体“开放式的信息平台”的建设。
浏览器内核对比
浏览器内核(Rendering Engine或Layout Engine)是浏览器最核心的部分,负责解释页面语法(HTML、DOM、JavaScript)并渲染网页(CSS),决定浏览器网页内容和页面格式信息的显示方式。当前的浏览器内核引擎有Trident,Tasman,Gecko,Presto,Webkit等,其中Trident,Gecko和Webkit几乎是以三分天下的局势占据浏览器内核市场。
Trident(又称为MSHTML),中文是三叉戟的意思。是微软Windows系统搭载的网页浏览器——Internet Explorer的浏览器内核,从1997年的IE4一直沿用至IE8。Trident是一款开放的内核,其接口内核的设计相当成熟,因此有许多非IE的浏览器如:傲游、世界之窗浏览器、Avant、腾讯TT、Netscape等均采用Trident内核。
Trident曾一度借助Windows系统的王者地位而称霸浏览器内核市场,但由于微软长期未更新Trident内核,导致Trident曾经一度与W3C标准脱节,其大量的Bug和安全问题也一直未能得到及时的解决。尽管IE7版本中加入了新的技术和对网页标准的支持,但这些变动已经在相当大的程度上落后于其他浏览器内核。因此,对浏览效果和网页标准支持的考量逐渐流行,浏览器开发者将注意力投向非Trident内核。
Gecko是以C++编写的开源代码浏览器内核,可开发程度高,由网景通讯公司开发的,被Netcape6开始采用,Firefox、Mozilla、SeaMonkey、Camino、Sleipnir、Songbird 等均是使用的Gecko内核。它提供了一个丰富的程序界面以供因特网相关的应用程序使用,例如网页浏览器、HTML编辑器、客户端/服务器等,支持复杂的网页效果和浏览器接口。
Gecko也是一个跨平台内核,可以在Windows、BSD、Linux、Mac OS X中使用。相比Trident,它解决了对网页标准的支持问题,JavaScript脚本处理速度比IE快3倍左右,但也常常出现为了达到很快的速度而丢失一部分网页兼容性的问题。
本文阐述了信息传播领域内的“全媒体信息服务”趋势,提出针对不同终端,通过Web App的方式搭建“开放式的信息平台”以实现面向全媒体内容发布的技术途径。对Web App的共性支撑技术——浏览器内核进行了分析,并对目前广泛应用的内核进行了对比,重点分析了Webkit内核的内部构成。以期对全媒体时代的信息传播应用开发起到推动作用。
Webkit是KDE小组的KHTML及KJS引擎衍生而来的浏览器内核,是Mac OS X平台默认的浏览器,当前WebKit支持四种平台:GTK、QT、Mac OS X和Cygwin。GTK和QT使用的工具为qmake,Mac OS X使用xcodebuild,Cygwin则使用Visual Studio。
基于Webkit内核的浏览器与其他浏览器相比具有耗费资源少、支持中文显示、支持多窗口打开页面链接、图片渲染速度快的特点,并能支持更多的协议与格式,它推动了许多CSS3规范,并率先采用HTML5规范。苹果的Safari、Google Chrome浏览器都是基于这个框架来开发的。
同Gecko一样Webkit是开源的内核引擎,具有清晰的代码结构,因此相较Trident,Webkit具有跨平台支持良好、可移植性强的优势,相较Gecko又具有高效稳定、兼容性好、易于维护的显著优势,并且在安全性和稳定性上都很出色。Webkit的JavaScript脚本处理速度是IE的6倍,当年苹果公司在Gecko和KHTML中选择后者就是基于其卓越的渲染速度。更重要的是Webkit具有极强可移植性的优势,基于Webkit开发的浏览器能够移植到台式机、手机和电视机顶盒等平台中使用,重用本地平台服务,并酌情提供友好嵌入的API。故Webkit在手机上有广泛的使用,Google的Android,Apple的iPhone,Nokia的s60手机所适配的浏览器均使用Webkit内核。
通过比较,针对多平台、能承载多层应用、性能优良的共性支撑平台适合采用Webkit内核开源代码进行开发。
Webkit内核研究
Webkit内核的构成
图1 Webkit基本的体系结构图
Webkit内核引擎包含Webkit,Web core,JavaScript core三大部分。
Webkit:Webkit的每个子目录都是对应平台的完整实现,定义了与应用相关的一些接口与应用程序交互,针对不同的GUI平台都提供了相应的实现,位于代码目录的最上层。通常Webkit是作为Web core层的客户端,用于连接Web core和使用Webkit的OS。
JavaScript core:顾名思义是JavaScript引擎对JavaScript的支持和实现,包括了脚本解释器、分析器以及执行程序,运行过程是语法分析、语法树构建、变量检查、语法树执行。它在平台相关的库及后台库之上,包含了脚本解释器、分析器以及执行程序。包含WTF库,该库提供了各种实用工具,是完全跨平台的,并且可以单独利用。
Web core:Webkit最核心的部分,定义了浏览器相关的数据IO、页面加载、脚本分析、UI组织、事件处理、网络分析、平台相关的具体实现等内容,提供了所有的渲染逻辑,HTML、DOM、CSS、SVG支持和传输,与应用层、库和平台都直接相关。
连线代表Webkit、Web core、JavaScript core与其所依托的平台和所使用的库之间的直接相关关系(见图1)。
Webkit内核分支演进版本比较
基于Webkit开源项目的浏览器内核有Apple Webkit、Qt Webkit和Chromium Webkit。
Apple Webkit包含最原始的Webkit开源代码,Apple.Inc把它用作Safari浏览器的内核并在2006年进行开源,Apple Webkit代码量较Chromuim少,但其编译环境要求相对苛刻。
Chromium Webkit是Google公司开发的适用于Google Chrome浏览器的Webkit布局引擎,采用了新的JavaScript V8。虽然Chromium Webkit代码量巨大,但是为程序员提供了完整的编译文档指导和常见错误指示,适合开发。其详尽代码注释也为代码的分析提供了方便。
Qt Webkit将Webkit引擎进行封装集成到Qt中,因而其开发步骤非常精简,GUI的环境相当吸引人,可以帮助开发人员迅速建立美观、实用、强大的用户接口。Qt将Web与本地内容和服务集成在单一的富应用程序当中,快速创建整合实时web内容与服务的应用程序,使用集成在本地代码中的HTML与JavaScript。由于Qt跨平台的特性,它在各种桌面和嵌入式操作系统上都很容易部署。
Apple Webkit, Chromium Webkit和Qt Webkit内核基于实验经验的综合比较如表1所示:
结论
表1
随着三网融合的推进和全媒体时代的到来,基于Web环境构造的信息服务形态将越来越普遍,而Web App的优势完全依赖于强大的浏览器内核进行渲染,因此各大传媒机构在实施全媒体战略过程中,需要在此共性支撑技术方面投入更多的关注。而Webkit强大的可移植性能够为Web App创造更多在移动终端上使用的机会,因此Webkit非常适合为Web App信息服务应用的承载提供共性支撑,现在的高端移动设备如iPad、iPhone及Android系统的内置浏览器都是基于Webkit内核,对Webkit内核的分析对开发全媒体“开放式的信息平台”有着重要的意义。