2012年,久享盛名的SD2.0大会全新升级为SDCC(中国软件开发者大会)!2012年被业界称为平台征战元年。在移动、云计算、物联网的大趋势下,整个信息服务产业正在面临重组洗牌,如何通过开放协作、构建和加入生态系统,加强竞争力,成为业界焦点。基于此,2012年SDCC聚焦开放平台,解析各种平台技术,分享生态系统构建之道。同时,大会邀请知名产品负责人、大型互联网架构师以及企业一线资深工程师,就本年度主流技术、产品、应用实践等热点议题进行深入分享。
盛大集团COO技术顾问潘爱民发表题为“人人写应用的系统平台——Web应用平台解析”的主题演讲。
潘爱民先生表示:今天我讲的是我这几年的一些体会和积累,我把它定义成这是人人写应用的系统平台。我们都知道Windows这二十年来使用最广泛,所以这个应用生态系统到目前为止无论从用户链还是应用数量还是Windows平台上开发者人群都是迄今为止规模最大的。Windows平台提供的C借口是面向专业人士的,也提供了VB接口和Dephi,也可以说Windows到目前为止是最活跃规模最大的应用生态系统。同时Lieux生态系统不像Windows这么普及和通用,他的C接口更多面向学院派和专业人士,也提供了各种脚本和编译工具和专业软件开发。最近几年来比较活跃的就是移动应用生态系统,一个是iOS应用平台和Android平台,他们两个用户数和Apple数据相当。开发人员数量,iOS相对小众一点,现在有百万量级开发者。而Android采用的是JAVA开发语言和平台,所以相对来讲是移动开发者里边最大的群体了。
Web早期刚开始出来的时候是作为一个单纯图形化信息呈现的标准和手段,这是早期Web的用途,但是在接下来将近二十年的时间里面实际上从页面呈现往应用化的努力,但是这部分努力是往浏览器推动的。JAVA Applet提供监管区域,使页面更加丰富精美,对用户交互有更好的响应。微软浏览器提供了更强大的往应用化方向的支撑技术,HJAX可以在页面用户交互的时候获取动态的内容,这些都扩展了Web页面表现形式。到后期,Flash大行其道,它变成了现在浏览器重要的应用运行平台了,过去这些努力基本通过浏览器插件或者浏览器的扩展做到不仅仅是一个页面的呈现,而是能够跟用户交互,可以由更丰富的内容,这都是浏览器上的。从2004—2007年,W3C标准化组织把页面往应用化方向走,从Web角度讲是在走一个原生路线,不再是通过浏览器往应用化走,而是直接把Web标准往应用化带动,这是我们现在所熟知的HTML5,在HTML作为网页应用标准上形成Web标准,把HTML变成应用平台。这个有的是渐近的,变得更好,这加入了更多的样式能力。过去在页面有多媒体内多容都是通过插件的形式,现在变成让浏览器直接原生支持,加入更加精细绘制能力,同时一个很重要的内容是对Web应用底层的支持,包括对于底层设备访问、底层存储访问,和页面之间通讯都是新加入进来的,就把页面标准变成应用标准的方向。从Web页面到Web应用转化过程当中,我们看Web页面是单纯展示信息,看页面效果,布局字体颜色等等效果好。它对交互相对来讲不是很看重,应用逻辑相对比较简单,纯粹是把客户端当做一个页面呈现的手段。所以浏览器的核心实际上就称为一个页面布局的引擎。到了Web应用要求就更高了,要求在功能上可以满足各种应用需要,因为有些应用可能需要有持续存储能力,有的可能需要访问底层设备信息,比如系统信息,所以这在功能上要求更高了,然后在性能上同样也要求更高,因为通常把应用就跟原生应用相提并论。目前这种情况下,性能上还有差距,所以现在更多倾向于原生应用。
Web也带来一些相应的变化,Web对底层系统要求,还有对后台任务的需求、对客户端应用逻辑变得更加复杂,同时要求离线体验,尤其在移动互联网的时候,有时候会在离线情况下。所以Web应用实际上可以很简单,比如简单到仅仅一个图片,这也可以叫一个Web应用,这个就是从传统延伸过来的,它也可以是一段相对比较简单的让用户简单交互过程,也可以很复杂,比如跟服务端或者多方协同或者本地有强大的编辑能力,这些都是Web应用。将来有的人层次会比较浅显,满足于一些简单的呈现效果就可以了,但是有的人比较专业,比如强交互性或者服务器端有大量支持的应用,所以Web应用从简单到复杂,可以有各种各样的形式。
从一个Web页面到Web应用,在现在这个新的时代在实现Web应用的时候刑形势怎么样,首先Web页面应用化,如果所有应用逻辑包含在一个页面内部,你这中相当于比较直接,以前大量Web人员移植过来就可以写Web应用。也有可能是多个页面,一个Web应用逻辑很复杂,实际包含了很多个HTML的页面,这种情况下,因为Web本身这种模型页面之间有很强的独立性的,所以跨页面逻辑在具体平台上,比如浏览器里边是由浏览器掌握,所以可控性差一点。如果你的界面很丰富,这里边可能会涉及到一些不同的试图,还有些控件,这往往会通过一个框架管理。我有一个HTML和JAVA的分类,一种是用HTML来表述,再加上一些简单的JavaScript,真正应用逻辑可多可少。另外一种模型是静态内容用HTML处理,另外动态的是用JavaScript。还有一种情况完全不用HTML,所有页面功能都用Jova Script来处理。
刚才讲的是Web应用类型和可能模型,到一个具体运行平台上,一个Web应用底下一定有两个引擎,一个渲染引擎,再之后有一个图形系统和操作系统内核部分。所以一个Web应用是一个独立原生应用,它虽然是一个Web应用,但是对于整个系统而言就是一个应用,所以这种情况下就变成了一个把Web包装成原生应用。
另外一种情况是把引擎包装在浏览器环境里边,在浏览器环境里边运动,这有一个应用管理,因为浏览器支持多应用,比如现在浏览器支持PC应用,这是典型的倡导的方式。另外极端方式是整个操作系统就是一个Web运行环境,这样变成了WebOS的情况。盛大现在在做这样的操作系统环境,完全是在Web环境,这样上面就变成Web应用平台,这种Web应用跟传统应用相比有些好处,传统应用可以把Web打包上传到某个中心质点,除了这种以下载安装软化软件分发方式以外还有灵活的分享方式。一种方案是如果你设计了精美的Web应用,你可以马上分享,或给你想给他看的人,这是很方便的一种分享方式了。另外一种可以利用云端的力量,可以把一个Web应用上传到云端,你从云端拿上一个URL,它代表了任何人都可以访问的Web应用连接,这种方式在未来是更加有优势。就是说一方面利用云端的力量,另外一面可以很便捷的让一个应用发布到一个人群当中。所以Web分发方式有它比满的优势。
但是Web应用技术上已经有很多的积累,尤其现在移动互联网时代,大家都比较看好,可是仍然有很多挑战,我这边列了三个方面,分别是内容方面、性能方面和工具链方面。从内容方面来说Web页面可以变成Web应用,但是实际上并不是所有Web页面都可以构成一个合适Web应用,可能只有极少数,但是Web页面数量确实非常庞大,到现在是几十亿上百亿量级上,所以哪怕很小的比例也有很多的资源。一个Web如果真正变成商业平台的话还是要形成商业生态系统,这涉及到开发者、平台运营商、用户要构建起这个生态系统。Chome Store也是Google推出的一个Web应用市场。
对于开发者来说现在有几个关键问题,一个是技术性我们不多讲,另外一个是传统的分发方式,你写了代码到某个客户端运行是直接得到铭文,这对于开发者相当于不保护的。互联网时代解决方案是你把知识产权的东西都放到服务器端,所以客户端是无关紧要的逻辑,这是一种办法。但是在移动互联网时代,尤其变成移动Web以后,这个要求更加严重,你的客户端必须有这个逻辑,如果还是JavaScript方式的话,这个保护力度是很弱的,这是对内容方面需要一些基础技术来保护。
第二个挑战的问题是性能平静,在现代移动设备上目前来看还是很严峻的,Web应用它的软件在,中间是原生应用,中间是Javo Eegine的应用Natie的应用。每当有一个Java scritt都会访问到DOM元素,这样的话它能不能利用底层图形系统页面加速的能力或者图形系统专门定制功能就不一定了,这就造成了一个用户事件到反映出事件逻辑变化过程中的开销比原生应用和Egine要差很多。从这个来讲,最有优势能把这部分做好的是谁?一定是操作系统厂商,所以操作系统厂商做的浏览器一定会在性能上比其他的更有优势,因为他可以做一些专门的图形系统,专门做一些定制给浏览器提供一些功能。所以你要想让一个Web浏览器或者Web应用运行平台,要想做的好的话,一个是在渲染引擎上下工夫,另外跟操作系统结合一定要很轻很薄。
第三个挑战的问题就是工具链,虽然过去经过了20年Web的发展,到现在开发模式也没有变化,依然是HTML+CSS+JavaScript,调试支持很多,如果让Web应用普及到更多人开发的话还需要有一些模板和辅助的工具。
我们现在已经可以看到很多HTML应用利用了新的Web应用,很好地展示Web新特效效果的例子,经典游戏现在很多都有Web的版本,所以HTML新特性引用过程是早就开始了,而且是一直在渐进的变化的。
Web应用平台虽然有前面讲的这些挑战,但是还是有很大的优势,在过去20年有大量内容积累,即使原来有很小的一部分,但是基数很大,所以对现在来讲是很有价值的。已经形成了开发者群体,整个产业界都在为Web平台做努力,包括浏览器厂商和操作系统厂商。Web最大的优势是开发者的努力可以以最灵活的方式最快捷的方式达到用户,我觉得Web在现在来看,我认为是将来能够超过iAS和Android的应用最大的一个机会。