未来互联网新模式

过去我们从网络上获得信息都是通过拉,浏览器定期检查RSS,很多事件的激发都是通过拉机制实现的。Webhooks或PubSubHubBub将改变这个现状。

PSHB hub是一个基于云计算内容发布中心,发布者将他们的内容数据发布到合适的hub通道中,订阅者通过hub通道接受数据. hub的美丽之处在于:HUB能够将数据广播推送到每个订阅者那里。容易伸缩,并且是实时推送,每当发布者有什么新的内容,就能够发布到PSHB, 而HUB知道是谁订阅了这些信息,将会立即将新数据广播到所有订阅者。

说白了,过去都是poll拉机制,将来我们要进入推Push机制,这也许是Web 3.0的新模式。这个推模式实际就是Java JMS消息机制架构的推广。

个人认为这在技术已经可行,当前Java流行的异步非堵塞以及REST架构,例如基于xLightweb的异步推机制,加上REST架构,以及客户端的异步事件机制完全可以实现这个目标:

1. 服务器中间件技术:轻量可伸缩的非堵塞的异步的xlightweb,类似产品有MINA Grizzly、JBoss的Netty以及SUN的Grizzly

2.架构技术:RESTful http架构实现

3.客户端技术:基于Javascript的ZK 5 RIA已经实现了先进的事件异步监听模式

4. 需要一种新的内容协议,(publish/subscribe)协议。
open source PubSubHubBub:
是一个简单基于服务器对服务器的 web-hook-based pubsub (publish/subscribe)协议,可以看成是Atom (或RSS)的拓展。服务器之间使用 PubSubHubbub 协议通讯,能够在它们有兴趣的数据发生变化时,得到及时提醒和通知。
这个idea真正草设计之中,值得关注。

相关文档:
Using Web Hooks 原理PPT


在OSCON '08大会上,Evan 'Rabble' Henshaw-Plath和Kellan Elliott-McCrea抛出新概念:
超越REST?使用XMPP PubSub构建数据服务

Kellan谈到了FriendFeed,它是一个让使用者知道他们的朋友共享了新项目的网站。在这个例子中,Kellan指出:为了给45000名使用者检查更新,FriendFeed向Flickr轮询了290万次。而且在这45000名使用者中,在任意时刻只有6700名处于已登录状态。这当然是一种蹩脚的内容更新检查方式。Kellan说道:“轮询太逊了!

轮询意味着使用一种RESTful Web服务来为每个使用者获得(GET)更新。与之相反,PubSub(Publish/Subscribe,发布/订阅)是一种使用异步消息传递协议的架构性方法,其中发布者和任何订阅者都是解耦的。在需要向大量客户端发送更新通知的场合下,这些特征使得PubSub成为一种合适的可伸缩性选择。

在这个幻灯片中,Evan和Rabble描述了Jabber(一种基于XMPP[Extensible Messaging and Presence Protocol,可扩展消息传递和现场协议]的PubSub服务)的各种优势:

1. XMPP工作在持久化连接之上
2. 它是有状态的(SSL变得便宜)
3. 被设计成为一个事件流协议
4. 联邦和异步的天性
5. 内置身份认证、安全和现场(presence)
6. 为此构建和部署了Jabber服务器
尽管使用PubSub进行通知是一个优秀的架构方法,但是很多人对幻灯片的标题存有疑问。Dare Obasanjo对此概括得非常好,指出REST并非一个“金锤”:

这个例子并非是指REST象Evan和Kellan的讲演标题暗示的那样不能进行伸缩,而是一个使用错误工具解决问题的例子。选择它的原因在于它碰巧能在其他场合很好的工作。


看来,REST是可以定位在Poll拉机制,因为REST是GET能手。这样总结一下:
1.REST是GET能手
2.SOAP是POST能手
3.PubSub是PUSH能手。

[该贴被banq于2009-08-27 07:20修改过]

谢谢banq老师带给我们这么多新的信息

期待ing>.....