AJAX (asynchronous JavaScript and XML)技术快速的在几周内从网络BLOG到华尔街日报蔓延开来,使开发者认为这将意味着桌面应用程序的灭亡。当然它中存在一个实事的核心就是:最近这些在AJAX大旗下开发的新WEB程序已经给一种能给最终用户提供平滑滚动,不断更新和更具互动性的输入表单的浏览器重新下了定义。
但是,所谓的肥客户端UI同WEB形式的UI相比,还是保持着一个基本的优点,就是实时的事件响应。单独的AJAX不能处理IM,股票报价,和其他的需要“PUSH”数据流的协作应用。
AJAX方式应用的主要目标就是将一个新的WEB页面分成一系列的更小的,使用更频繁的信息交换来下载。开发者认为AJAX是“异步的”,因为数据可以在不影响用户操作的情况下更新。例如:GOOGLE MAPS就是应用下载新的可视部分并且移动剩下的部分而减少用户滚动页面所等待的时间。
然而,在中间件社区中,异步的正式定义就是在任一端,任一时间发送一个消息的能力。AJAX提供了逆流的方向,但是HTTP似乎使初始化服务器传送不能完成。
幸运的是,智慧的开发者利用了HTML中的一个漏洞处理它。浏览器是为了显示在从慢速网站下载不断增长的网页而设计的。应用隐藏框架和javascript标签,HTTP可以保持打开一个长久的连接响应,允许一个应用将数据传到浏览器。
开发这个的最简单的途径就是将浏览器换为21世纪的“green screen”傻终端。Manuel Kiessling的开源项目ARSC(A Really Simple Chat)使用AJAX技术来发送输入行,而一个更改的HTTP服务器处理打开上千个同步的连接来转播聊天数据给其他用户。另外一个例子是KnowNow的SpeedReader产品,就是用来提醒雇员相关的RSS新闻条目的。
AJAX和异步事件响应的结合的更广泛的意义在于扩展了跨Internet发布与订阅应用的集成。
几个开源平台提供把企业应用和WEB服务同交互WEB UI完全连接起来的强大功能。Nevow 和 Pushlets分别扩展Python和Java相似于MVC的事件循环。Mod_PubSub是作为一个用URL路径名作为主题来出发程序的事件总线而设计的,Mod_PubSub也是用多个语言编写的。商业上,KnowNow的LiveServer提供企业级类的扩充(甚至可以和Excel互相连接)。
从桌面应用程序迁移到WEB应用明显的优点在于维护性,安全性和扩充性方面,但是也必须考虑反应时间较慢的代价,有限的交互,以及不够漂亮的图像界面。有了AJAX,PUSH技术,和普遍存在的PDF和Flash插件,WEB比以往任何时候更加接近成为一个可行的默认应用程序开发平台.
By Rohit Khare
May 23, 2005
原文:http://www.infoworld.com/article/05/05/23/21FEwebapppush_1.html