Saturday, August 19th, 2006

Bayeux: A JSON Protocol For Publish/Subscribe Event Delivery

Category: Comet

Some people poo-poo Comet as being too ‘complicated’. The cometd team and others are trying to change that, and created Bayeux.

Bayeux is a JSON-based protocol for clients to register interest in events and for servers to deliver them in a more timely fashion than Ajax-based polling allows. The goals of the Bayeux spec so far have been to:

  • make event delivery fast
  • keep it simple
  • provide extension points in the protocol

Alex Russell says more about how Cometd, Bayeux, and Why They’re Different

As a result we’ve variously rejected plans that involved implementing some subset of XMPP in JSON or actually tunneling XMPP over some other carrier. JSON libraries are available almost everywhere and you can’t beat the speed of eval for message deserialization on the client. It keeps things fast, simple, and pluggable. Authentication and authorization, while being given spots in the protocol, have also been left entirely to implementations to negotiate. The result has been that implementations have gotten off the ground very fast. Since the protocol doesn’t specify any guarantees around durability, entirely ephemeral event busses can be as conformant as MOM-style guaranteed-delivery systems.

So what, then is Cometd and how does it relate to this Bayeux specification? The short answer is that Cometd is a project to provide several reference implementations of Bayeux and to evolve the spec until it’s good enough for some other group to take over maintenance. Bayeux and Cometd are two complimentary parts of a plan to tackle the complexity around building and deploying comet apps, and we’re hoping for many independent Bayeux implementations outside of the Cometd project. For more interactive apps to finally take off, we need a set of portable concepts about how this kind of message passing should be handled in much the same ways that Ajax could be thought of as “RESTian web services for browsers”. Today lots of folks are thinking about event busses under the buzzword banner of SOA, but hopefully in the same way that REST was the lighter but easier variant of SOAP for doing request-response web services, Bayeux can be the less-sophisticated (but easier to use) alternative to exotic schemes for connecting MQSeries and TIBCO to browsers.

Posted by Dion Almaer at 10:14 pm
1 Comment

3.5 rating from 34 votes

1 Comment »

Comments feed TrackBack URI

Link Listing – August 20, 2006

AnkhSVN: Using Subversion within Visual Studio [Via: Scott Hanselman ] Another Webcast – on Contract-First…

Trackback by Christopher Steen — August 20, 2006

Leave a comment

You must be logged in to post a comment.