AJAX会取代桌面系统吗?(译文)

来源:互联网 发布:ios 开发传数据接口 编辑:程序博客网 时间:2024/04/29 16:11
                                                               AJAX会取代桌面系统吗?
                                                                               作者:Andre Charland

     关于是否AJAX会取代桌面应用的讨论渐渐热烈起来,针锋相对的两大阵营也开始形成。开门见山,在这篇文章里要展现的我的信念和论点是:AJAX不大可能会取代桌面应用,但是它会催生一个新型的软件应用模式;这种新型的软件应用模式极有可能是开发工具、协作工具和商业应用。一些应用可能根本不会在桌面系统上看到——虽然很多的应用不大可能很快就退出历史的舞台、它们需要随时满足桌面系统的要求。我认为软件的下一场革命不会像出埃及记那样的完全抛弃桌面,而是一场中等的各种模式的重新定位和组合,通过适应外界的意图来达到软件工业的繁荣。
      像其他的桌面应用一样,基于AJAX的WEB应用会跟随你左右。我们中的大多数人最起码有一个朋友,他周游世界,给你留下HOTMAIL或者YAHOO MAIL的账号以供你联系。实际上,这些基于浏览器的EMAIL界面有助于我们迅速的采用EMAIL作为个人应用。这些天来,使用传统的HMTL界面的商业级EMAIL应用不再出现了。Outlook Web Access (OWA)(虽然有一个精彩的AJAX界面)由于一些原因没有真正流行起来,但是GMAIL和Zimbra正在浮出水面,而且Zimbra准备取代Outlook和Exchange两者,它发布完全基于浏览器的UI。而对于微软来说,他们主动地发布了一个全新的基于AAJAX的EAMIL客户端,如果这个客户端加入了OWA的一些功能,那么它将比HOTMAIL更好用。如果你看看CRM的世界,你会发现看起来WEB应用已经取代了桌面应用,Salesforce.com是一个明显的例子,而基于WEB浏览器的MS CRM已经发布了好几年。
 
那些地方基于AJAX的WEB应用会取代桌面应用?
      在那些实时和共享信息是首要条件的应用中,基于AJAX的WEB应用是一个合理的选择,这些应用包括:后勤、会计和CRM系统。在一个共享文件系统中以路由EXCEL表单作为一个分布式定价和客户管理的方法将成为历史。在现代商业中,及时的商务数据是一个关键的组成部分,而WEB应用是天然的以数据为中心的系统。AJAX恰恰能做到这样一个应用系统的UI,这个UI不会导致用户在点击鼠标以后因为漫长的等待页面刷新而引起厌倦情绪。
      依赖WEB服务和全新的数据源如整合多种巨型数据源的服务映射的应用仍然是有用的。同样,许多基于面向服务的架构(SOA)的企业系统将极大的从分布式和可用性上受益于AJAX。
 基于浏览器的分布式的富客户端能降低每个终端的许可费用,例如企业报告系统。不久前,一个来自一个主要的SOA的替工商的CTO向我咨询一个基于AJAX的UI该怎样定价的问题,简单的回答是它不可能和以前的C/S模式的厚客户端一样定价。一些软件开发商找到了新的软件许可的方法,这种方法没有降低客户对富客户端的、WEB路由的和他们满意的软件的要求,这种现实将导致更多的软件向AJAX转移。
      很明显,由于应用系统仍然通过WEB和WEB浏览器发布,那些所有的按需软件、软件服务和服务提供商的优点依然存在。抛弃那些如上所述的基于浏览器的应用的优点是愚蠢的浪费时间的行为;然而,认识到AJAX使基于浏览器的WEB应用有高得多的可用性是很重要的。这种可用性方面的优点可以根据在操作更快的用户接口时的省时而感觉得到。Alexei White在他的文章Measuring the Benefits of Ajax中探讨了这方面的主题。由于这些原因,AJAX在那些需要用户重复性的操作大量数据的任务的在线系统中会成为一个赢家,想想那些呼叫中心和金融机构吧。以下场景:你有大量的重复任务、应用和大量的信息处理工人,是一个应用基于AJAX的WEB应用的一个成熟时机。
      那些随着时间的改变需要修改和改变的应用也可以从AJAX技术中获益。用户往往没有往新的应用上迁移的意愿。AJAX的发展会增加那些基于HTML接口或者拥有SOA架构的应用。对于开发团队来说,随着时间的增加而增加可用性是非常有诱惑力的。
      另一个AJAX会赢的地方是这样的一些商业系统,在那里,人们需要大量的、远远超过WEB浏览器的地理的发布和支持,并且网络连接是非常昂费的。
 
哪些地方桌面系统依然是王者?
     看看哪些地方桌面系统不会被富WEB应用取代是很重要的,即使是最狂热的AJAX布道者也会告诉你,应用这种技术只能在一定的范围。让我们看看AJAX不能做得非常好的一些事情:
      .浏览器因素:增加按钮、工具栏、书签、图标,改变浏览器行为。
      .本地文件访问:在用户的硬件驱动上读写文件。
      .语音播放:音乐和声音。
      .富图形:提供附图形和它们的动态变化。(这个问题由于一些浏览器引入了SVG而逐渐改变,但仍然无法与桌面系统抗衡)
      .键盘快捷键:提供一个大范围的键盘快捷键并且避免他们与浏览器的快捷键相抵触。
      .硬件的访问:从诸如麦克风、扫描仪和游戏手柄之类的仪器的硬件输入;输出到诸如打印机和其他便携式设备等硬件。
      .可扩展的通讯:从一个客户机到远处仅仅一个服务器之间的通讯,使用的协议不仅仅是简单的、古老的HTTP。
      .与操作系统的交互:捕捉如关闭、开始这样的事件;改变参数;弹出警告;读取硬件信息。
     当然,AJAX不支持视频或者音频,所以视频会议、VOIP和富媒体应用被排除在外。但是,增加FLASH到UI技术的话,富媒体就能够被集成到AJAX接口上去。同样,所有的需要和处理器和存储器交互的应用对于AJAX来说都是不适合使用的。对我们来说需要一段长时间才能看到在WEB浏览器上有这样的应用:视频编辑、图像处理和视频游戏。我不认为我们将看到人们玩使用JAVASCRIPT设计的Quake类型的第一人射击游戏,这毫无意思。
 
哪里我们将看到桌面系统从WEB系统有优势?
     桌面应用世界将从WEB服务和SOA架构中获益匪浅(事实上已经获益了)我们将看到更多的这两个世界的集成。我们已经看到桌面应用被网络如iTunes强烈的向富内容推进。桌面应用将要集成在线的、基于AJAX的服务,如Live.com和MS Office。
      根据新应用(基于WEB)的采用比率,AJAX成为优胜者。没有其他技术遇到的障碍会比你采用浏览器和网络连接遇到的小。而且许多AJAX应用会获得网络的益处远远比经过优化的客户端系统多。
 
哪里AJAX会产生一个新的服务机会?
     看看GOOGLE地图吧,没有用户能在他们的本地桌面系统里保存所有的映射、图像和商业/地址清单数据。更进一步的概念是mashups,这个网站或者网络应用无缝的将多个来源的内容组合成一个集成的体验。如果每一次用户想合并不同的数据包的时候,他们都不得不安装一个插件或别的什么,那么这个网站将无法工作。即使一个客户端应用能得到数据,它也不能保持数据的更新象一个以网络为中心应用那么容易。
      协作将要结合到应用里面去,这是以前没有过的。像Writely这样的网站一旦被快速采用,将改变我们所认为的办公类型的应用的模式。从一开始,所有的应用有一个共同的平台——浏览器,说相同的语言(XML、HTML等等)。这意味着这些小应用随着发展将更加容易的被集成到一起。目前,微软的Office的各组件已经被很好的集成到了一起,如果你使用SharePoint的话,它将进行非常完美的协同工作。然而,这依赖于在每一个客户端安装大量的软件,并且服务器框架有很好的扩展性来导入它们。但是,WEB应用能提高这种体验而AJAX能使这些WEB应用更加可用。
      使用基于网络的、结合了富AJAX的用户接口和实时协作的能力的数据服务的功能,应用将被永远的改变了。现在的文档和数据包多是一个变化着的内容,而不是一个静止的视图或页面。
 
结论
      未来的软件看起来会是什么模样?今天看来,占卜的水晶球还是模糊的,当然,它其实永远是模糊的。但是我想一个或大或小的变化正在我们中间发生。我们清楚地看到WEB应用被大量的采用,而这种大量采用得益于AJAX的应用。站在今天的起点上,通过开发社区持续不断的共同努力,我们会使AJAX取得一个主要的进步。我们现在仅仅看到冰山的一角。然而,我也认为桌面应用的势力仍然将在应用中占有一席之地,而且事实上可能永远不会消失。
 
索引
      Michael Mahemoff's Blog and Podcast.
 
关于作者
      Andre Charland从事Internet软件开始超过十年之久,他是eBusiness Applications (www.ebusinessapps.com)公司的主席和创建者之一。他和Dave Johnson在1998年创建了该公司。他主要的经验在可用性、市场、项目管理和基于构件的软件开发。所受教育包括:在Vancouver, BC的Simon Fraser University,他在那里读计算机科学和工商管理。他作为开发者、管理者和架构师等不同身份有上百个Internet项目的经验。
 
 原文链接
      http://www.developer.com/java/web/article.php/3574116