本周发布的
Google Wave其中一个亮点就是
Google Wave Federation Protocol(需翻墙)通讯协议基于XMPP。摘要如下
- Federation 简单的解释就是分布式的互联互通,没有中心服务器。比如email, XMPP等系统都是federation的,任何公司没法对它进行控制。Google Wave Federation Protocol协议基于XMPP核心协议XMPP core [RFC3920]来扩展,实现多个wave服务器之间即时的交互通讯。
- Waves可以理解为一种支持实时通讯的多人文档(multi-user document),它由一到多个wavelets构成。wavelet中包含一到多个具体的document。
- 服务器之间通讯必须使用TLS(类似SSL)
- Wave 的创建服务器通常认为拥有此wave, 在协议中称为master, 所有修改及并发操作逻辑由master负责管理。其他外域用户的服务器实际上只起一个代理作用,将本域用户的操作发送到master。多个服务器通讯,协 议中的Client和Server都是相对的,因为实际上双方都是服务器。协议上把发起方视为client。因此从单一的wave对象来看,实际上还是一 个中心服务器的架构。
下图是官方协议介绍中的一个插图,可以看到所有的用户交互都需要通过master(authoritative server)来进行。
Non-Authoritative Authoritative
Server Server
----------------- -------------
| |
| establish connection |
| ---------------------> |
| |
| send delta operation |
| ---------------------> |
| |
| receive response | All non-authoritative
| <--------------------- | servers with
| participants
| ----------
| establish connection |
| --------------------> |
| |
| send delta operation |
| --------------------> |
| |
| receive response |
| <-------------------- |
- 从 协议来看,虽然Wave是XMPP的协议扩展,但和XMPP目前的体系并无具体的联系,没有互联互通(wave federation不等于xmpp federation)。没有presence(在线状态), message(消息), roster(联系人)。可能和很多人想像的不一样。它只是用XMPP协议来作为载体。打个比方就像写了一个socket服务程序,用pop3协议(或扩展)来实现多机传送文件,虽然协议是POP3, 但是这个体系跟邮件没什么关系。wave与XMPP的关系也是这样。
- 从目前来看,Wave不会代替IM,因为它没有对Presence(在线状态)的定义,但用发展的眼光来看,如果一些extension可以把xmpp presence带入的话可能情况就会发生改变,如下所示,比较期待。
participant = XMPP roster
wave = XMPP message
extension = XMPP presence
Google Wave更多介绍可参看我独立blog
Tim[后端技术]的介绍文章
从技术角度看Google Wave,顺便抗议一下CSDN新闻频道抄过去这篇文章不加指向原文链接,明显的违反CC协议。