技术开发 频道

实现真正Web 2.0 需借助开源技术力量

  开发模式

  在简单理解了推送机制和它相应的复杂性之后,很多开发者选择了对开发真正的推送风格应用敬而远之。现在将我们的目光转向那些可以帮助我们实现推送式应用程序开发的开源AJAX技术。

  Dojo/Cometd/Bayeux提供了一个以客户端为中心的编程模式和一个通用的可扩展到服务器的发布/订阅机制。我们可以为专门的消息类定义一个专门的通道,这些通道的客户端可存在于浏览器或服务器中。使用JavaScript应用逻辑来处理从服务器推送的消息,以及相应的更新用户界面。从服务器角度来看,需要定义一个推送通道,然后服务器端应用逻辑通过该通道来发布事件。Cometd是一个非常灵活的机制,可同时支持在服务器端的Java和Python实现。Cometd已经被集成到Tomcat 6、Grizzly和Jetty 6中。通过使用一个支持在窗口之间进行大数据传输的共享cookie机制,浏览器连接共享成为可能。从本质上来说,Cometd方式带来了一个松散耦合的分布式系统,因此应用开发者需要解决一些相应的复杂问题,例如安全性和可维护性。

  DWR/Reverse AJAX则在远程过程调用RPC基础上提供了一个以客户为中心的编程模式。简单来说,DWR通过JavaScript实现了从客户端调用服务器端的Java对象,而Reverse AJAX则是从服务器端的Java对象来调用JavaScript对象。对于一次推送交互,要求执行一个JavaScript来处理特定更新,服务器端的Java逻辑必须合理的调用这个JavaScript。DWR servlet则通过HTTP连接来处理RPC呼叫集合,但是连接共享问题在JavaScript执行中没有得到解决。DWR现已集成到Jetty 6中。

  ICEfaces/AJAX推送在JSF基础上提供了一个以服务器为中心的编程模式。ICEfaces对JSF进行了扩展之后,可以支持一个透明AJAX桥,它可以在JSF生命周期的基础上实现更多针对浏览器的修改。一个简单的扩展API允许应用程序逻辑在一些异步事件基础上请求一个页面刷新,浏览器客户端的逻辑组合可以同时接收相同的更新。另外,它还提供了一个RenderHub功能来处理底层异步展现机制的同步和性能优化。ICEfaces可以被配置成从Tomcat 6、Grizzly和Jetty中使用ARP机制,当然还有ICEfaces AHS。ICEfaces桥通过一个共享cookie机制来支持连接共享,当在servlet模式下配置AHS后,可以支持portal环境中的AJAX推送。

  结束语

  在本篇文章中,我们把Web 2.0看作一个自然的即时社会化网络平台,而且也了解了使用轻量级Web技术来实现它所要求的推送功能的复杂性。尽管多数现有AJAX技术无法解决这一问题,不过一些开源技术已经出现,来帮助我们实现这个必需的功能。因此,有了这些开源技术,我们今天就能实现真正的Web 2.0。另外,随着标准化的进一步落实,下一代浏览器实现也将最终降低实现这一功能的复杂性。如果推送式的Web应用和Web 2.0已进入你的视线,那么投入到其中看看它能实现的强大应用吧。不过,需要提醒大家的是,你应该细心的检查你现有的非常好的开发模式和部署条件,进而设计一个方式,可以让你将精力集中在应用程序开发上,而不是底层的推送功能开发上。

       本文来源:http://opensource.sys-con.com/node/630075

0
相关文章