在AJAX是否能够取代桌面应用程序的问题上,存在很多争论。如今,这两种阵营正在逐步形成。在本文中,我的看法是:AJAX不可能取代桌面应用程序;但是它将导致一种新型软件应用程序的出现。大多数AJAX程序应该会是生产工具、协作和商业应用程序。许多桌面应用程序将不再会出现;当然,大多数应用程序也不可能很快就会离开强有力的和舒适的桌面环境。我想,软件发展的下一个阶段应该是,桌面应用不大可能全部消失;相比之下,而更有可能是适度的重新组合,其结果是各种应用程序分别在最适合它们的领域繁荣壮大。
面向AJAX的web应用程序紧紧跟随在你的身边,就象所有的web应用软件一样。我们中的大多数至少有一位在世界其它地方的朋友并且经由电子邮件,如hotmail或yahoo电子邮件,帐户与之保持联系。事实上,这些基于浏览器的电子邮件接口大大帮助驱动了电子邮件为个人所采纳使用。如今,针对商业类型电子邮件使用的更传统型的html接口已经逐渐地不再具有实用价值。因某些原因,Outlook Web Access(OWA)(尽管它有一个伟大的AJAX接口)不再象以前那么流行,但是Gmail和Zimbra却正在异军突起,而且Zimbra力图全面取代Outlook和Exchange-全面地通过浏览器来实现UI表达。微软值得被赞扬的是,是Live.com的出现正在产生一种新型的AJAX化的电子邮件客户端-如果它的样子类似于OWA的话,它将比Hotmail更为易用和好用。如果你观察一下CRM世界,你就会注意到,似乎Web应用软件已经接管其主要功能。例如,Salesforce.com就是一个明显的例子,而MS CRM就是几年来通过一个Web浏览器表达实现的。
二、 基于AJAX的Web应用程序会在哪些方面取代桌面程序?
基于AJAX的Web应用程序是某些应用程序的合乎逻辑的自然选择-在这样的程序中,最新的和共享的信息至关重要,例如后勤、财务和CRM系统等方面的程序。常规的Excel工作簿,作为一种分布价格和顾客列表的方法,将会自然地走到历史的角落里。及时的商业数据是现代商业软件中的一个关键组成部分,而Web应用程序本来就是以数据为中心的。AJAX仅是把一个UI放到了应用程序之上,而这一点在用户等待鼠标点击之间的页面刷新时不会给他们带来过多的麻烦。
许多应用程序依赖于Web服务和例如映射服务这样的迥异数据源来结合多重的庞大的数据源以保持相关连和有用性。另外,许多基于面向服务的架构(SOA)的企业系统成为具有分布性和可用性优点的AJAX应用软件的完美候选。通过浏览器发行的丰富的客户端将帮助降低单套软件的许可花费,例如在企业报告应用软件方面。最近一个大型SOA软件供应商的CTO问我,怎样在基于AJAX的UI客户端强制实现单套软件许可证协议。而这一问题的简短答案是,它不可能是与以前大部分客户端程序走相同的路子。这一事实将导致开发软件许可新途径的软件供应商更快地向AJAX迁移,但是不会减少消费者对于其喜爱的丰富的客户端软件的需要。
显然,软件主要的好处主要还是看市场需求而定。很多软件,作为一种服务,应用程序服务供应商仍旧在应用之,因为该应用程序仍在通过Web和Web浏览器传送中。浪费时间去细究基于浏览器的应用软件的好处是愚蠢的;然而,特别要注意的是,AJAX使得基于浏览器的应用软件相当易于使用。这些可用性好处可以从在与更快的用户接口进行交互时节约大量时间这一角度加以衡量。Alexei White已经在他的《Measuring the Benefits of Ajax》一文中详细地探讨了这个问题。由于这些原因,AJAX在在线应用软件方面将是一个大的获胜者-这种场所下,用户总是在做大量的重复的任务-例如呼叫中心和金融机构。在你有大量的相同任务的场所,应用软件和信息工人往往能够熟练地使用AJAX Web应用软件。
一直以来不断发展和变化的应用程序也会从中受益。用户迁移到新型应用软件将毫无副作用影响。另外,AJAX技术有助于提升已经基于HTML接口或有一个SOA架构的应用程序的质量。这对于一直在寻求提升可用性的开发团队将是极具吸引力的。
另一个AJAX将会占上风的领域是在商业-这里用户分布在不同的地理区域并且支持多个Web浏览器并且其互联网连接是很昂贵的。
三、 桌面程序会在什么地方继续保持霸主地位?
特别值得开发者们注意的是,桌面应用在哪些方面不会被丰富的Web应用软件所取代,因为即使是最大的AJAX福音传道者也会告诉你,我们利用这种技术目前所仅能够达到的程度。让我们分析一下AJAX无法良好实现的几个方面:
☆ 浏览器定制:添加按钮、工具栏、书签、图标;改变浏览器行为。
☆ 本地文件存取:读写用户硬盘上的文件。
☆ 声音播放:音乐和声音效果。
☆ 丰富的图形:提供丰富的动态变化的图形。(随着SVG慢慢地引入到一些浏览器,这种应用正在逐渐发展中,但是它目前还不匹配桌面图形。)
☆ 键盘快捷键:提供全范围的键盘快捷键从而避免与浏览器自己的键盘快捷键发生冲突。
☆ 硬件存取:从如麦克风,webcams,和gamepads等进行输入设备;输出到设备象打印机和便携式小器具。
☆ 扩大的通讯:从客户端机器到位置超出基本服务器以外位置的通讯,以及用除了普通的旧式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是一个网站或web应用程序,它无缝地把来自于多个数据源的内容整合进一种完整的体验中。如果当用户想结合不同数据集时必须安装一个插件或某种程序的话,这种程序不会工作。即使一客户端应用程序拥有这些数据,它们也无法让其与以Web为中心的应用程序一样容易地保持最新。
协作将被加入到应用程序中,这在以前是从未有过的。象Writely这样的系统,一旦被纳入到实践中,将改变我们看待办公室类型应用程序的方式。从一开始,所有的应用程序都有一个共同的浏览器平台,并且使用共同的语言(XML,HTML,等等)。这意味着,随着这些小应用程序的不断发展,集成它们也会越来越容易。当前MS Office能够与其自身良好集成并且如果你使用SharePoint的话,它对于协同工作相当不错。然而这要依赖于在每个客户端安装巨大量的软件和启动精深的服务器基础结构。但是web应用软件应该改进这种体验并且AJAX将使得这些Web应用软件具有极大的可用性。
借助于web上强有力的数据服务,再结合丰富的AJAX UI的力量,实时协作应用程序将永远改变。
六、 结论
软件的未来会是什么样子呢?我想,这在我们这一代正发生着巨大变化。由于AJAX增强的可用性,我们将毫无疑问地看到出现大量的新型的基于Web的应用程序。并且,因为随着开发者社区继续协同工作,我们一定会在今天AJAX所依赖的技术方面作出许多重大改进。如今,我们只是刚刚看到了冰山一角罢了。然而,我想桌面应用程序的力量将继续统治着某些应用程序领域并且实际上可能从不会消失。