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

拥抱移动web2.0时代:移动AJAX将替代J2ME和XHTML成为移动应用的首选&#241

阅读更多
拥抱移动web2.0时代{AJAX for 移动设备}
——移动AJAX将替代J2ME和XHTML成为移动应用的首选平台吗?


作者:cleverpig

image




      今年,Opera发布了在移动设备上支持AJAX的浏览器。考虑到Opera在浏览器市场的声望,这个发布声明确实具有意义重大。不过,我相信这存在一定的豪赌成分。

      但我相信AJAX将替代J2ME和XHTML成为开发移动应用的首选平台的机会确实存在。在下文,我将全力阐释原因。

      在这之前,提一个告诫——我相信移动web2.0比“移动AJAX”更加遥远。尤其是移动web2.0实现所有web2.0七点原则这一过程。所以,我在此只讨论了AJAX,只是web2.0的一个侧面而已。
image
图-1:look一下Opera上的AJAX应用画面


Overview:
      1.AJAX是什么?
      2.当前的移动应用开发模式。移动产业所面对的问题,换言之,就是当前移动应用模式的缺点。
      3.为什么AJAX将替代J2ME和XHTML而成为开发平台的首选?

一、AJAX是什么?
image

      AJAX是web2.0的可选部分。进一步讲,它融合了一些目前现存技术,使之成为一体工作。
      1.XHTML和CSS作为表现层标准
      2.DOM(Document Object Model)被用在动态显示和交互
      3.XML和XSLT用在数据交换和维护
      4.XMLHttpRequest技术用于接收异步数据
      5.Javascript将上面的部分捆绑在一起

      知道AJAX到来之前,复制富有、反应迅速的本地应用交互设计并非易事。AJAX与从前的其它尝试在这个问题上定位所不同之处:基于现有、非私有化的标准,并且这些标准都为开发者所熟知。

       传统的web应用模式中,大多数情况下,用户行为触发一个HTTP Request。服务器完成处理后返回结果到用户。当服务器处理时,用户处于等待状态!这种“start-stop-start”的web应用行为从技术 出发是很好的,但从用户交换出发则很糟糕(因为用户交换的结果都来自于服务器,当服务器作处理工作时,用户只能做的事就是喝咖啡之类的无聊等待)。

      AJAX 凭借AJAX引擎解决了上述问题。在Session开始时,AJAX应用装载AJAX引擎。AJAX引擎是采用javascript编写而成的 javascript库,它被放置在一个隐藏的frame中。用户与AJAX引擎交互,而非前面讲的web服务器。如果用户交互不需要从服务器上获得什么 的话,AJAX引擎会自己处理这个交互。当用户交互需要从服务器上获取一些数据时,AJAX引擎会完成一个异步调用,而不是打断用户流。
在这个场景中,由于AJAX引擎和服务器异步通讯,所以AJAX被称为是“异步的”。这样会让用户获得“无缝隙”的用户体验(呵呵,不必再等待了)。

      这里是AJAX出现后的一个动力源:开发者已经熟知AJAX所倚赖的技术。所有组成AJAX的技术都是成熟、稳定的。AJAX成为了一些新web应用的基石:Google suggestGoogle MapsFlickrAmazon’s A9.com

二、目前移动开发模式
image
      从前面文章的讨论中,我们明确了——AJAX解决了两个问题:就是一个出众的UI和数据接收的标准形式。
        
      尽管AJAX能够很好的干掉这两个问题,但我认为这还远远足以说明AJAX的“神勇”,尤其是AJAX拙于成效地解决了下面的问题:
      1.市场割据问题;
      2.移植问题(尤其指基于J2ME的下载类应用);
      3.实现开发式的应用发行。

      让我们认识一下现存的移动开发吧。首先是移动应用的两个分类原则:浏览型应用和下载型应用。当然又存在别的应用:如短信息应用、SIM应用等。但是就目前而言,前面这两类应用是主流的两大应用。

      浏览型应用:浏览应用与浏览web的概念相似,但它受到了移动设备独特性的限制(例如:设备的屏幕尺寸)。与web浏览相同,它通过一个微型浏览器通过url访问在无线服务器上的应用服务。而客户端承担很少处理,甚至不进行处理。

       下载型应用:对比浏览型应用,下载型应用需要首先下载到客户端设备上。应用运行在本地设备。与浏览型应用不同,被下载的应用在运行时不需要连接网络。因为 客户端能进行一些处理或是一些持久化存储,所以下载型应用被称为“智能客户端”。而当前的大多数基于JAVA的游戏都是下载型应用。

      J2ME是开发下载型应用的最常见模式,而XHTML是开发浏览型应用的最常见模式。下面详细阐述一下前面所讲的问题,并讨论AJAX如何解决这些问题。

问题一:市场割据

      移动应用主要以消费性应用为主。移动数据产业是一个方兴未艾的产业,就如别的产业在这个时期所经历的进化过程一样,它是割据的:
        
      为了获得经济上的最大利益,消费性应用需要一个庞大的客户群。而不同的标准随之而生,如来自Qualcomm的BREW标准就是一种私有标准,而不被某个实体所掌握的开放标准只被很少的厂商采用。

      为了展示市场割据是如何影响一个新型服务的经济收益的,我们通过下面的方式来体会:在尝试发现我们应用的最大客户群的过程中,思考下面的“同心圆”结构。同心圆半径随序号顺序而减小,即1为最外围的圆,9为最内部的圆。
      1.你的应用所在国家的人口是多少?
      2.持有移动设备的人口比例是多少?
      3.在应用中你所定位的运营商是哪个?
      4.在应用中你所定位的移动设备有哪些?
      5.发布技术有哪些?例如Java,SMS,WAP等
      6.应用是否需要诸如定位服务等特殊的技术?多少人持有支持此技术的移送设备?
      7.按分类做分割分析的标准是什么?(如:男性/女性等)
      8.我们应用所定位的市场道路有哪些?
      9.我们期待这个子类中命中并转化为基于我们市场预算的消费者比率是多少?(一般转化比率为2%)

      通过上面的方法,我们能计算出目标客户群。这样,目标客户群乘以潜在的月下载量就是月收入。它包括了我们用在开发、移植上支出费用。这个方法展示了市场割据问题,它意味着少数移动服务商是有利可图的。也正因此而诞生了增值业务:如铃声、图片下载等。

问题二:移植困难
      这个问题针对下载型应用。“Write once run anywhere”这句话在移用领域是个笑谈,呵呵,尽管这并非Sun的失误。基于J2ME的游戏开发就是个经典的例子:

      首先,看看好消息。
      1.诸如Sprint和Vodafone这样的移动运营商报告了移动游戏和其它数据服务的收入占据他们年收入的10%以上;
      2.产业咨询公司Ovum指出目前全球4亿5千万个支持Java的手机,3千8百万支持BREW的手机,1千5百万基于Symbian的手机。
      3.移动游戏发行商仅在2004年的全球销售总额达到12亿美元。

       但是这是存在瑕疵的。游戏移植一般需要开发者适配不同的屏幕分辨率、处理器速度、内存限制、音效等,这些因素在不同设备之间可能是变数颇多的。对于发行商 来讲,这不仅是指数级地增加游戏开发周期和资产建立时间,而且导致了在这场超级竞争中错失关键的time-to-market(指将从产品设计到产品行销 到市场)的时机。例如,假设你经营着一家具有30款游戏的中型游戏发行公司,为了你的游戏走向世界,你打算支持5种语言和50款设备,则你需要建立 7500个不同的游戏版本,每个版本需要2500美元,那么你将需要将近1千9百万的预算花在手机移植上。

      这严重地限制了商业模式的发展,导致了少量的移动游戏能收获利润。

问题三:开放的应用发行
      前面讲了使用J2ME技术遇到的困难,仅仅依靠建立一个社区(如Sun已经做到community process)是远远不够的。构建在社区上的技术和应用必须保持一致和交互性,才能发挥网络效益并获得庞大的用户群。

三、为什么AJAX将代替J2ME和XHTML而成为首选的开发平台?

image
      AJAX能解决前面的问题吗?从笔者的观点来讲,这是很可能的。

      AJAX通过浏览器访问,而用户通过两种方式获得浏览器——手机预装或是单独安装应用。任何人都能为智能手机下载浏览器:Opera link shows for series 60 phones。这意味着,所有的消费者能潜在地安装浏览器,如果足够多的人安装——我们将有巨大的客户群和很少的“瓶颈”——比如移动运营商的特殊限制。换言之就是绕过了他们的“花园篱笆”。

      更进一步讲,AJAX提供了出众的用户体验并有庞大的支持AJAX的开发者社区作为后盾。获得更多客户群(更少的瓶颈)意味着更多的应用转化为金钱的机会——这将导致前面所讲的“同心圆”更加有效能。

      J2ME目前存在着严重的缺陷(不是技术上的,而是商业模式上的)。由于AJAX提供丰富、出众的用户体验,XHTML将继续run下去。

      总之,我相信AJAX将代替J2ME和XHTML而成为首选的移动开发平台。

四、阅读提示:

      1.我在这里说的是“首选”而不是“替代物”,我并不期待AJAX替代任何技术。

      2.AJAX不能解决所有问题。你仍然要按照客户需求出发建立服务。

      3.AJAX不是唯一建立更佳用户接口的尝试:这里存在一些有限的成功,但是他们没有跨越产业或是私有性的。例如移动SVG, 3D游戏的superscape’s swerve技术,还有macromedia mobile。

      4.一些人并非实际浏览移动网络。尽管WAP发展迅猛,其中WAP作为一种传输机制来使用——典型的应用就是内容下载。换句话说,就是每次你下载铃声,你潜在地建立了一个WAP页面访问。所以我认为消费者真正浏览移动网络的人数还是很低的,但是也很有潜力的。

      5.很少的移动厂商致力于开发者社区。
分享到:
评论

相关推荐

    多图表实现员工满意度调查数据分析python

    员工满意度是指员工对于工作环境、待遇、职业发展和组织管理等方面的满意程度。它是衡量员工对工作的整体感受和情绪状态的重要指标。

    2020届软件工程本科毕业生毕业设计项目.zip

    2020届软件工程本科毕业生毕业设计项目

    基于stm32平衡小车

    平衡小车 基于stm32 平衡小车 基于stm32 平衡小车 基于stm32

    c语言火车票订票管理源码.rar

    c语言火车票订票管理源码.rar

    施耐德PLC例程源码四台水泵的轮换

    施耐德PLC例程源码四台水泵的轮换提取方式是百度网盘分享地址

    node-v16.13.2-linux-s390x.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    digix算法创新大赛2019baseline.zip

    digix算法创新大赛2019baseline

    三菱PLC小型立体仓库项目.zip

    三菱PLC小型立体仓库项目.zip 叉手篮具到位检测 入库2电机前限

    node-v15.3.0-linux-s390x.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    软考高项-ITTO背诵打印必过版-2024-高项已通过

    软考高项_ITTO背诵打印必过版_2024_高项已通过

    巧解HTTP三次握手四次挥手流程(超详细).docx

    TCP三次握手及四次挥手详细图解 相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助. TCP三次握手 所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。 三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在socket编程中,客户端执行connect()时。将触发三次握手。 1.TCP建立流程 第一次握手:建立连接时,客户端发送SYN(Seq = J)包到服务器,并进入到syn_sent状态。等待服务器确认。 第二次握手:服务器收到SYN包,知道了Client端想建立连接. 它会向客户端发送SYN+ ACK包(ack =J+1 TCP 四次挥手 TCP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作

    node-v13.5.0-linux-arm64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    欧母龙PLC例程源码扎钢机程序

    欧母龙PLC例程源码扎钢机程序提取方式是百度网盘分享地址

    基于RGB相机的驾驶员注视区域估计_刘觅涵.pdf

    驾驶员注意力检测,驾驶员分神驾驶检测,DMS,汽车智能驾驶,智能座舱

    Unity实现二维码扫描,二维码生成

    Unity实现二维码扫描,二维码生成 提供ZXing.unity.dll可以进行二维码的生成和扫描,扫描的方式是在场景中发射射线,射线获取rawimage的texture并读取,然后作为二维码进行解析。 提供源代码。

    中山大学-计科-操作系统实验.zip

    中山大学-计科-操作系统实验.zip

    施耐德PLC例程源码恒压供水程序(用施耐德TWIDOPLC编的)

    施耐德PLC例程源码恒压供水程序(用施耐德TWIDO PLC编的)提取方式是百度网盘分享地址

    node-v14.8.0-darwin-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v14.6.0-darwin-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    python实现小说词频统计

    小说词频统计是指对一本小说中出现的各个词语进行计数和分析,以确定每个词语在整篇小说中的出现频率。 以下是对小说词频统计的一些基本说明: 数据收集:首先需要获取目标小说的文本数据。这可以通过手动输入、复制粘贴文本内容或使用自动化工具来提取文本。 文本处理:在进行词频统计之前,通常需要对文本数据进行预处理。这可能包括去除标点符号、停用词(如“的”、“是”等)和特殊字符,将文本转换为统一的格式。 词语计数:进行词频统计时,遍历整个文本,逐个词语地计数它们的出现次数。通常会使用字典、哈希表或其他数据结构来存储词语及其计数。

Global site tag (gtag.js) - Google Analytics