`
cleverpig
  • 浏览: 151309 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

移动Web2.0{Ajax在移动开发领域的影响}

阅读更多
移动Web2.0{Ajax在移动开发领域的影响}
——分析Ajax在移动开发领域的影响


作者:cleverpig

image



一、关注点:

        这篇文章阐述了一些我从前表达的观点,同时也在文中增加了一些新的观点。本文主要关注在Ajax在移动开发中的影响力(我们并不在这里大肆讨论Ajax)。
        
        讨论议题:
        1.什么限制了移动设备上的浏览器模式的发展,如何战胜它?
        2.Ajax在移动开发中的影响力。
        3.Ajax/浏览器模式的潜力将使应用定位在更加广泛的消费群体。

二、对草地保龄球和长尾(long tails)的思考:

image
图-1 年轻的“思考者”


        请想象一下如下情景:

        正如大多数体育爱好者一样,你正热切地关注在墨尔本召开的联邦运动会。但是,和别人不同的是你喜欢的运动是“草地保龄球”。
        
         “草地保龄球是什么?”人们经常会这样问你。因为很少有人(除了那些关注联邦运动会的)听说过这项运动(呵呵,这项运动将作为北京2008奥运会的表演项 目)。于是你很兴奋于至少墨尔本正在进行这项比赛。但从宽泛的观点来看,像游泳、拳击这样“有魅力”的比赛才能获得所有的声誉。“草地保龄球”的确太冷门 了。

        而正当你将这个状况和Geek(技术迷)朋友聊起时,他会把一个称为“长尾”(long tails)的概念作为给你的解释。很明显,你就是“长尾”中的一员。

         多数情况下,80%的收入来自于20%的产品或者服务(下图中的红色部分)。剩余80%的产品具有低需求和低销量的特征。它们组成了“长尾”(就象草地保 龄球一样)。“长尾”原理所说明的是:那些低数量、低销售量的产品构成了市场的主力,它们与少数畅销产品相持平甚至超出后者,前者提供了广泛的分配渠道和 价格低廉的产品。

image
图-2 “长尾”示意图


        现在假使我们为联邦运动会设计一个移动应用,并已经进行了几个月的准备。但是设计者可能不重视“草地保龄球”这一部分。

        但作为草地保龄球的铁杆球迷,你期待着全部的应用:blog、投票、图片、个人档案等等。

        移动Web2.0,Ajax和部件设计对这个场景有所帮助吗?下文便见分晓。文章主要按以下范围讨论:
        1.所有的移动应用都能采用浏览器技术实现吗?
        2.采用移动Ajax的可能性。
        3.移动Ajax技术的进化和Opera声明的意义。
        4.“围墙花园”与“开放花园”。
        5.来自JAVA ME的回应。
        6.谈谈移动游戏。
        7.为什么Ajax将代替J2me和HTML成为移动应用开发中的首选平台?

三、所有的移动应用都能采用浏览器技术实现吗?


image
图-3 这是真的吗?


        在我们开始讨论移动应用和Ajax前,让我们思考一个这样的问题:所有移动应用都能采用浏览器技术实现吗?在PC/Internet的世界中,浏览器飞速成为了一个通用的客户端。但在PC世界和浏览器世界之间存在着天壤之别。
        
        在PC世界,我们需要一种程序来执行一个特殊类型的应用(就像word用来读写word文档、excel用来读写表格一样)。而相对的,我们使用浏览器查看任何一种应用。这使应用开发被大幅度地优化,它受到运行在客户端的软件的影响更小。

         让我们看一下浏览器和移动领域应用。假设移动设备具有更高的性能、更快速的带宽。那么在这个假设的前提下,所有的移动应用能以浏览器技术去实现吗?毕竟, 工作在PC上的浏览器作为一个通用的客户端——为什么不能在移动设备上成行那?对这个问题的推断可能是:在移动设备上的浏览与在pc上使用的web浏览具 有许多根本上的不同。

        为了更好的了解这些不同,我们来考虑如下的因素:

        1.间断的网络连接:
        不像在pc上使用的web那样,无线网络相对不稳定,常收到信号覆盖的影响(如果进入隧道的话,你将失去连接)。

        2.带宽限制:
        即使3G覆盖提前实现,实际的带宽也不足以满足需要。

        3.在客户端的数据存储:
        如果设备没有本地存储,所有的数据将不得不被重复下载。而连接的间断性和昂贵的带宽又把这种存储方式逼入了绝地。

        4.最后,也是最重要的——本地应用程序提供了丰富的用户体验,特别是对像游戏之类的应用而言。

        这里还有诸如用户输入能力、屏幕尺寸之类的限制。上面因素中的一些会随着设备和技术的进步而得以改善。但是整体的用户体验仍然是重要的因素之一。

        因此,我们这个假设问题的答案是——不能,我们不能仅使用浏览器开发所有的移动应用。但浏览式应用的框架正在改变,在浏览式和下载式应用之间的界限已经不如从前那样明显了。

        在另一方面,本机和本地(native)应用提供了一项优势——更好的用户接口。但它们遭受了一些显著的缺陷——在应用中不得不覆盖多种不同的设备、操作系统、屏幕尺寸、用户接口、多个软件发布版本等问题。这也导致了移动领域的“割据”局面。

四、采用移动Ajax的可能性:

        抛离上面的说法,我相信Ajax将导致浏览式应用的复苏,它将克服我们现在所面对的一些问题,理由如下:

        1.到浏览器的抽象转移:
        基于浏览器的应用相对易于升级、并能用在跨运营商的领域。这将吸引一个较大的目标用户群。开发者能访问消费者中核心群体来促进应用开发更有价值。正因为浏览器提供了一种通用客户端,所以它也减少了应用的分离(fragmentation)。

        2.Ajax提供了更佳的浏览器体验核数据管理能力。

        3.来自Internet上的开发者对Ajax的支持。
        重量级的产业力量正在转移他们的支持到Ajax上来(IBM对Open Ajax的支持就是个好例子)。

        4.部件设计的概念并非新鲜事物。
        本文中,部件指的是一种可下载的交互软件对象,它提供了单一的服务(如地图、新闻feed等)。Ajax提供了在浏览器上实现部件的机制。

        5.Ajax为部件写作市场(widget authoring market)提供了温床,就象Apple widgetsOpera widgets那样。

        我相信Ajax通过提供丰富的体验、更大的用户群体、数据管理能力、部件写作工具而使浏览式应用的复苏更进一步。

        另外,开发者的支持(包括在web领域和移动领域的)将引领Ajax形成一个我们难以想象的强大系统。

五、移动Ajax技术的进化和Opera声明的意义

image
图-4 人的进化?

        Opera平台由以下主要特性组成:
        1.全屏模式的Opera web浏览器;
        2.一个运行多个部件/应用的Ajax框架;
        3.通过抽象层访问设备本地功能(native functionality)。

        仅在2005年,Opera就已经在17000万移动浏览器上支持Ajax。这意味着凭借现有的Opera浏览器你可以使用桌面Ajax服务:例如Gmail、Google Maps等。

        但是,其意义远远不止支持Ajax这一点:

        1.Opera平台是首创的移动Ajax框架。
它也是一个名副其实的浏览器框架。但,和其它框架比如Zimbra (zimlets)Backbase不 同,它完全是为移动设备而设计的。它在浏览器和移动设备的设计上采用了相同的代码库。通过微小的改变,桌面浏览器部件也能运行在移动设备上。从开发者的角 度看,这是一个再好不过的使部件(桌面、移动设备、浏览器)最大化获利的方法。Opera声明对移动应用开发意义深远的一点是它把一个庞大的代码库与获利 紧密结合在一起。

        2.部件调用其它部件。
        复杂的应用可以由简单的、基于浏览器的组件开发而成。

        3.Opera平台允许访问底层设备API。
        为了说明这个概念,我们首先考虑一下浏览器模式在建筑学上的不足。

        浏览器模式是基于标记(mark-up)语言、以文档为核心的。而相对的,那些被下载的或是本地的应用则以应用为中心,因为它们是基于某种编程语言的。

        为了达到实用需要,任何移动应用开发模式必须具有访问那些和设备紧密耦合的数据成员。它们包括电话API、电话簿、短消息、消息API、呼叫记录、SIM卡、日历、蓝牙堆栈、媒体播放器、文件系统等。

        运行在手机上的应用能够通过API访问这些服务。而在大多数情况中,运行在浏览器的应用却不能访问这些功能(除了一些厂商私有的解决方案)。

        Opera平台是一个基于浏览器的编程环境,它通过一套javascript API将本地设备API进行了抽象,这样来提供给开发者从浏览器访问设备底层功能。它使建立的更加丰富的浏览器应用成为了可能。

         让我们回到“草地保龄球”的话题,对Ajax、部件进行一些说明:Ajax的能力在于建立桌面极的部件。通过Opera平台的方式,同一个部件能被重用在 移动设备上。这些部件便具有了从“长尾”获得收入的能力。在联邦运动会这个场景中,它应有可能为草地保龄球迷们提供低成本的部件。这些部件无论运行在桌面 浏览器或是在移动浏览器上都运行良好。这就是Ajax方式的重大意义。

        有人会站出来争辩:这个方式不是纯正基于浏览器的方式(因为客户端需要以某些软件的形式在本地执行)。另外,请注意平台方式和使用插件是不同的,因为插件是可以被下载。而平台却作为设备的一部分被生产厂商安装在设备中。

        我同意称这种方式不够“纯正”的说法。但是以这种方式,开发者将处理很少的平台,而不是他们不得不去与之斗争的数以百计的变化体。

        这种方式不是开发的。在一个平台开发的应用只能运行在此平台。并且此方式并没有获得开放移动联盟(这里简称为OMA)的认可。整个问题对于移动运营商来讲还太早,因为它还需要经过由浏览器厂商到设备生产商再到运营商的过程。但W3C mobile web initiative也可以作为与OMA协作的一个标准体。

        最后,这种方式对于一些应用类型(例如游戏)来讲还不够“丰富”。

        但无论如何,这也是在前进路上迈出的一大步,因为我们具有一个更统一、跨运营商的“运动场”。

         从历史上看,流行技术常常依赖于产业支持。比如粗糙陈旧的SQL,软件厂商们(例如Sybase、Informix等)都各自发布一个SQL的程序版本 (例如Oracle的PLSQL)。SQL和PLSQL在某些方面是矛盾的,因为SQL是基于集合的,而PLSQL是程序式的。

        但是“程序式”的SQL由于产业需要而存在了下来。我们在Ajax身上印证了同样的现象。

六、“围墙花园”与“开放花园”


image
图-5 哈哈,围墙花园的门打开了!


        “围墙花园”本意指采用围墙的花园,它把围墙作为掩体把无法适应本地气候的花卉苗圃保护起来,使其避免气候的“折磨”;“开放花园”与“围墙花园”相反,它没有围墙,使花草生长在风霜雨雪的自然环境里。

        这里存在着两种“围墙花园”:

        首先是一个偏激的例子,就像3这个网站,它阻塞来自于本网站之外的访问。这种情况很类似没有评论功能的新闻列表,用户只能读取。

        另一种则是像Vodafone网站一样的。Vodafone live虽然是一个“围墙花园”,但它自己没有对来自浏览器的访问进行任何限制。

         正由于目前一些应用迁移到了浏览器端(因此能跨运营商),所以基于Ajax的方式将解决“围墙花园”的问题。实际上,当前的浏览器技术也能跨越运营商。但 基于Ajax的方式为我们提供了建造出色的应用并可在浏览器模式中访问设备API的机会。所以它扩大了应用的目标用户群。

        如果浏览器体验被提升,我们可以编写基于浏览器的应用给大多数运营商,从而获得巨大的用户市场。

七、来自JAVA ME的回应

        Ajax平台拉进了在基于浏览器的应用与下载式的应用之间的鸿沟。瘦客户端仍会采用在那些需要保持连接的移动环境。而抛开这些应用,随着用户接口的提高、访问设备能力进一步实现,潜在的用户群体将增加而开发花费则会减少。

        Ajax 具有比较优越的开发模式,并不断地从开源世界汲取养分。Java(MIDP)目前具有较好的文档说明和完备的部署。Symbian、WinMobile提 供了更多的电话集成功能,但它们是不可移植的、完全厂商私有的。Adobe Flash是另一个有趣的东东,但没有已经对Ajax的支持。因此它只是一个增强器,而不并非Ajax的竞争者。

八、移动游戏

image
图-6 完美的“移动”Game


         举个例子:移植游戏的成本在300至600之间(但大多数情况是在500至600之间)。我们拥有近80个支持250种手机、不同语言的版本。但仅采用了 单一的技术(很典型的是Java)进行开发,所以这里不包含Brew版本。支出的重要因素是对MIDP1.0的支持,于是需要增加从100%~150%不 等的开发费用作为移植花销。而且还有可能改变一些游戏内容的类型(比如2D/3D)。
        
        这样,多数移动应 用被迫减少对游戏/娱乐方面的投入,但这一点都不值得可怜。应用和游戏在开发、市场上具有天壤之别吗?我并不是唯一认为游戏当前的事态呈现颓势的人。像前 面所讲的,移动游戏开发非常消耗人力,一个游戏需要为不同的手机进行数百次的潜在优化。这些设备实现不同的MIDP,具有不同的屏幕尺寸、键盘布局和用户 接口。这些潜在的花费和时间是巨大的。

        而一种兴旺的产业不可否认的存在于游戏移植领域。如果WORA(Write once run anywhere)成为事实的话,花费在使游戏跨越设备和运营商上的投入应该相对的便宜些。——但这个假设目前不成立。事实上,像babel media这样的公司,其主要的收入来源于游戏移植,即使移动游戏适应发行商和运营商制定的标准。

        最终,这种产业模式成为了一种获利不斐的商业模式,没有它移动游戏产业将无法生存、更不可能发生任何变革。于是,不少小型开发团队加入分配渠道,并可能获得了很“大方”的回报。

         这些因素比美丽的一面更加重要。浏览器模式有能力冲破这些当前折磨着游戏产业的问题。目前,我们付出了昂贵的代价来获得一个“华丽”的接口。我相信开发一 款成功的移动游戏并不必需具备一个华丽的接口。事实上,成功的游戏可以采用非常简单的技术:比如SMS。另外休闲游戏也正在日趋盛行。

        由于移动游戏与PC游戏不同,所以把从PC游戏中获得的经验和概念应用到移动游戏上的确是一个错误。而通过浏览器模式,相对轻易地可获得更多的收入和更多的社区(用户群)。

九、为什么移动Ajax将代替J2ME和XHTML成为移动应用开发的首选平台?

image
图-7 你打算搭乘哪班列车?

        请在脑海中呈现这句话:“Ajax代替J2ME和XHTML成为移动应用开发的首选平台”和“Ajax将代替J2ME和XHTML成为移动应用开发的首选平台”是不同的,并请注意๢
分享到:
评论

相关推荐

    web 2.0 and Ajax

    标题:Web 2.0与Ajax 描述:探讨了Web 2.0和Ajax的核心概念,包括它们在现代网络应用中的角色和影响。 标签:Ajax 部分内容:提到了Jim Driscoll对Web 2.0和Ajax的讲解,涵盖了定义、历史背景、Web 2.0的例子以及...

    java两年工作经验的简历模版(成功版).doc

    3. Web技术:了解Ajax、JavaScript、JSP、Servlet和JDBC,以及JQuery等前端和后端技术,能编写高效且可维护的代码。 4. 数据库操作:熟练使用Oracle主流数据库,精通PL/SQL语言,能够通过存储过程和触发器进行复杂的...

    AJAX和WEB2.0

    视频讲座“AJAX简介与WEB2.0”可能会涵盖以下内容: 1. AJAX的基本原理和工作流程。 2. 如何创建简单的AJAX请求和响应处理。 3. JSON与XML在AJAX中的应用比较。 4. 使用JavaScript库简化AJAX开发。 5. Web 2.0的...

    web2.0 & CRM

    Web2.0技术包括但不限于博客(Blogs)、维基(Wikis)、RSS订阅、Ajax、社会软件(Social Software)等。这些技术促进了用户之间的交流和协作,使得互联网变得更加动态和交互。 #### 客户关系管理(CRM)概述 客户...

    Ajax&Web2.0

    文件名中的"TPnew13.ppt"和"Ajax Web2.0.ppt"可能是关于Ajax和Web 2.0技术的演示文稿,涵盖了这些主题的详细介绍和示例。"AjaxTest"、"AjaxDataGrid"、"GetValuesTest"、"TooltipTest"可能是实际的代码示例或者测试...

    key different between Web 1.0 and Web 2.0.pdf

    ### Web 1.0与Web 2.0的关键区别 #### 概述 随着互联网技术的发展,Web经历了从Web 1.0到Web 2.0的重大转变。这两个概念不仅代表了互联网的不同发展阶段,也体现了用户与网络互动方式的根本变化。本文将详细探讨...

    php+ajax web2.0编程技术与项目开发大全中的FYblog可安装代码

    《PHP+Ajax Web2.0编程技术与项目开发大全》是一部深入探讨现代Web开发的著作,其中涵盖了PHP作为服务器端脚本语言与Ajax(异步JavaScript和XML)技术结合使用,构建动态、交互性强的Web2.0应用程序的精髓。...

    Ajax 修炼之道-Web 2.0 入门

    **Ajax 修炼之道-Web 2.0 入门** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它使得网页更加动态和交互,是Web 2.0的核心特性之一。通过Ajax,开发者...

    精通Web 2.0

    ### 精通Web 2.0:深入理解与应用 #### 一、Web 2.0概述 Web 2.0是指互联网发展的第二阶段,它强调用户参与、互动和内容共享。相比于早期的Web 1.0,Web 2.0更注重用户的交互体验,支持动态网页内容和用户生成内容...

    什么是web2.0 Web 2.0特征Web 2.0七大原则Web 2.0的设计模式

    5. Web服务和云计算:随着Ajax等技术的发展,Web 2.0应用提供了更流畅的用户体验,同时,云存储和计算能力的提升,使得用户可以在线处理大量数据和应用,如Google Docs、Dropbox等。 6. 标签系统(Tagging):引入...

    PHP+Ajax_Web_2.0编程技术与项目开发大全(部分)

    他的实战经验和对Web2.0产品的深刻理解,使本书成为了一部理论与实践紧密结合的佳作。 ### PHP+Ajax Web_2.0编程技术与项目开发大全 本书以真实项目需求为导向,精心编排内容,确保读者能学到真正实用的知识。它...

    AJAX 2.0 绿色版及相关使用说明

    **AJAX 2.0 知识点详解** AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。...通过理解和掌握这些知识点,可以更好地利用AJAX 2.0进行Web应用程序的开发。

    Pragmatic Ajax - A Web 2.0 Primer

    《Pragmatic Ajax - A Web 2.0 Primer》是一本深入探讨Web 2.0核心技术之一Ajax(Asynchronous JavaScript and XML)的指南。Ajax是21世纪初互联网技术的一次重大飞跃,它使得网页无需刷新即可实现数据的动态更新,...

    ASP.NET2.0 AJAX

    ASP.NET2.0 AJAX包括:ASP.NET 2.0 AJAX Extensions和ASP.NET Futures CTP.放心下载可用! 支持vs2005sp1!不要用vs2005的哟!否则web.config中会出现错误的!

    ajax2.0框架安装文件

    Ajax 2.0框架是微软在.NET Framework 2.0时代推出的一个重要技术,它极大地增强了Web应用程序的交互性和响应性。Ajax(Asynchronous JavaScript and XML)的核心思想是通过JavaScript在后台与服务器进行异步数据交换...

    PHP+Ajax Web 2.0编程技术与项目开发大全(真正的随书光盘)

    【PHP+Ajax Web 2.0编程技术与项目开发大全】是针对现代互联网开发的一份综合教程,旨在帮助开发者深入理解和应用PHP、Ajax以及Web 2.0的相关技术。在这个随书光盘中,可能包含了各种示例代码、项目案例、教学视频和...

Global site tag (gtag.js) - Google Analytics