ReadWriteWeb

Where Is the Real-Time Web Message Bus?

Written by Bernard Lunn / September 18, 2009 10:14 AM / 14 Comments

Real-time computing is not new. This is the third generation of real-time:

• First generation: was done on a single processor, usually for process control in military systems.

• Second generation: within a Local Area Network, usually for a financial trading room.

• Third generation: applied across the whole Web/Internet, what we call the real-time Web.

In each generation a stack has emerged, and secure messaging has been key to that stack. The names change and the scale of the prize and challenges certainly changes, but the basic issue remains the same: delivering messages reliably and quickly. In this post, we trace the steps from the second generation to the third generation to see how the real-time Web might play out.

Generation 2's Winner: The Teknekron Information Bus Story

I worked with the technology's second generation. My company took on the challenge of delivering market prices from multiple sources to hundreds of traders in a trading room, enabling new apps based on real-time calculation. The solution had to scale to maybe 2,000 traders, which is laughably small by the standards of the real-time Web. But you did not want to face a roomful of furious traders if your system was down for three minutes or delayed prices by 15 seconds. The reliability and latency requirements were very stringent.

The company that emerged as leader, Teknekron, coined the term "Information Bus." It did very well by coining the term, because it established Teknekron as a market leader; it followed the "get mindshare first, and then go for market share" strategy. Vivek Ranadive, the visionary founder and CEO, describes in his 1999 book "The Power Of Now" how the term came to him. He was schooled as a hardware engineer and was appalled by how much more chaotic (i.e. error- and delay-prone) software projects were compared to hardware projects. Looking at why, he realized that the concept of a "bus," which is the device that all hardware components connect to, could be applied to software.

Ranadive understood that real-time, event-driven systems would not be limited to financial trading, and he executed brilliantly on that insight. He sold Teknekron to Reuters, the company's main rival in trading systems, but retained the right to use the technology outside of financial markets. That offshoot became TIBCO (The Information Bus Company), which at the time of writing is a publicly traded company valued at $1.6 billion, with annual revenue of over $600 million.

But TIBCO did not leverage its position to dominate the third generation. Another company tried that and blew a lot of money in the attempt.

KnowNow: Lessons of a Blow-Out

KnowNow worked through $50 million in funding before throwing in the towel in July 2008. It was going to update the message bus to the Web using RSS. It was still an enterprise play.

It had a strong management team, top-tier VC (Kleiner Perkins), and strong technology. Why did it fail? Three big reasons stand out:

  • Generation 3 is a tougher technical challenge. Generation 2's state of technology was perfect for local area networks using Ethernet, where the user device was always connected and where we measured users by the thousands. With generation 3, we are dealing with millions of users who are offline some of the time, and the network bandwidth available for messages is not under their control. In other words, it is one big bear of a technical challenge!
  • Companies are reluctant to invest millions of dollars in closed software when open standards clearly always win on the Web. Companies can instead experiment very cheaply using consumer-centric RSS tools and open source.
  • KnowHow was early. The hype on real-time enterprise did not last long enough, and it hit the trough of disillusionment.

Contenders for the Real-Time Web Message Bus

We have probably missed a few, so please tell us about them in the comments. These are very different types of solutions, but they are working towards a similar objective. First, we will list them and then attempt a bit of categorization:

  • Gnip: an independent venture whose monetization model relies on it being a hub that different sites can connect to.
  • Tornado (FriendFeed's Python-based Web server technology, which was open sourced by Facebook): this uses PubSubHubbub.
  • RSS Cloud: promoted by Dave Winer, with WordPress as a marquee partner.
  • PubSubHubbub: promoted by Google (and FriendFeed/Facebook), with SixApart as a marquee partner.
  • XMPP The technology with which IM clients interoperate. Being used by Yammer, Present.ly, and Drop.io.
  • Twitter.
  • Facebook.
  • TIB: an enterprise solution from TIBCO.
  • MQ: an enterprise solution from IBM.
  • Sonic: an enterprise solution from Progress Software.

Here are the categories they fall into:

  1. Enterprise
    TIB, MQ, and Sonic all fall into this category, and there are more. They will find it hard to make the transition to the real-time Web for two reasons. The first is technical. Connecting millions of users over a low bandwidth network via HTTP is very different from connecting a few thousand users over a corporate network. The second is commercial: they monetize by selling licensing fees to enterprises. But that is not the primary way in which the real-time Web will be monetized. Still, these are big profitable companies with the right tech chops, so they cannot be dismissed.
  2. Open source and open standards
    Tornado, RSS Cloud, PubSubHubbub, and XMPP fall into this category. They have differing purposes but also a lot of overlap. XMPP is low level and not affiliated with any big company. RSS Cloud and PubSubHubbub are most similar to each other. Tornado is a Web server. But they all face the issue that an open standard takes a long time to evolve and consolidate into a winner. Before that happens, we will likely see more entrants, making the choice even more confusing for developers. So, developers may hedge their bets and go for commercial/de facto standards.
  3. Commercial hub
    Gnip is the purest example of this. It aims to get traction by being simpler to implement than the open-source/open-standards offerings. It is a bold strategy from a strong team of entrepreneurs and investors. For something as big as this - basic plumbing for the Web - it feels like a bit too much reliance on one company.
  4. Traffic plays
    Twitter and Facebook are the major players here. They might become de facto standards because the biggest issue is traffic. Developers will build where there is traffic as long as two conditions are met:
    • It works technically (i.e. latency at scale). Twitter has some credibility issues here.
    • It is open and transparent - i.e. anyone can connect without fear of the game changing on them. Facebook has some credibility issues here.

The Technical Challenges

First, we have to address the question of "What does real time mean?"

In each generation, the gurus of the previous generation get sniffy about the definition of real time ("What do you mean one second is real time? We measure in micro-seconds!").

It depends on the usage case and technical possibilities. Real time within a single processor is obviously faster than real time over a LAN, which is faster than real time over HTTP for the whole Web.

Real time, practically speaking, means "orders of magnitude faster than how data has been delivered in the past, and faster than most people think they need today." So, RSS Cloud is faster than RSS, and Twitter search is faster than Google search, and IM is faster than email.

In generation 2, the thinking evolved through three approaches:

  1. Polling. It soon became obvious that this would not scale.
  2. Broadcast, which put too much load on the client.
  3. Multicast, which became PubSub.

Most current Web HTTP-based real-time systems are still in the polling phase (i.e. subscribers poll publishers to see if they have an update), which clearly won't scale. The newer approaches fundamentally enable a publisher to say, "I will tell you, the subscriber, when I have an update, so you don't need to poll me." It's a geek's way of saying "Don't call us. We'll call you."

For a good technical primer on how this works and a discussion of the differences between RSS Cloud and PubSubHubbub (mercifully shortened to PuSH), check out this post.

Sticking My Neck Out to Guess the Winner

Twitter. Why? It has the traffic and is open and transparent enough to win confidence. But two big problems remain:

  1. It has to reveal its business model. Only then will partners feel confident that they understand its strategic direction.
  2. It has to prove it can get good latency at scale. Its early history of fail whales makes people justifiably skeptical.

The winner will likely be the platform that hosts the killer app. Most platforms get traction through a killer app. In the second generation of real time, that killer app was market data for financial traders. What will it be in the third generation? We will explore this in a future post.

What to Name This Generation?

"Message/Information Bus" worked for generation 2. It took a key concept from generation 1 - the hardware bus - and applied it to a local area network.

That does not work so well for generation 3, the real-time Web. For now, we talk about a Web-wide real-time message bus because there is no better alternative.

The new term may have something to do with "status," because the status update is a central concept in social media. Perhaps something like "StatusFabric" or "StatusNet" or "StatusWeb" will emerge.


Comments

Subscribe to comments for this post OR Subscribe to comments for all ReadWriteWeb posts

  1. This whole "real-time web" hype phrase is a bit misdirected. Sorry for the lengthy rant that follows, but it's hard to say tersely:

    Real real-time systems (as it were) have very hard and fast timing constraints, and the technical use of the term "real-time" is associated with highly reliable and robust systems. So for example, if a "real" real-time message is not delivered within narrow timing requirements, the delivery just fails, and there is no point to passing it on later or queuing it.

    This is a far cry from say Twitter or other Internet information feeds, where it's OK to drop messages whenever you like. I mean, really, the Fail-whale is practically Twitter's mascot. If a tweet is dropped or gets lost, nothing bad really happens. It also doesn't much matter if you see one a few minutes later than it is sent.

    This is pretty much the opposite of real-time.

    I know that what the blogosphere means by "real-time" is "rapidly and automatically updating compared to email or web surfing", but that is a far cry from the technical meaning of the term.

    So an attempt to show an evolution from system-based real-time to network-based real-time to Internet-based real-time is hamstrung by the fact there are no Internet-based real-time activities. Even MMORPGs can cope with highly variable latency and lag problems, whereas a characteristic of a "real" real-time system is that highly variable latency and lag are just not allowed to begin with.

    Posted by: Anonymous | September 18, 2009 12:05 PM



  2. Edit to last message.

    Oops, I lied when I said there are no real-time Internet activities.

    Skype and other public Internet VOIP have relatively strong time constraints on content delivery. Maybe not quite real-time, but at least near-real-time. But this kind of media content is not what the blogosphere means when they talk about the real-time web.

    Posted by: Anonymous | September 18, 2009 12:09 PM



  3. Also something to look into: Open source and missing in the list, the Ajax Push Engine at http://www.ape-project.org/ .

    It provides with it's push technology another solution to scale (they say for up to 100.000 concurrent clients).

    Posted by: digitarald.de Author Profile Page | September 18, 2009 12:49 PM



  4. Hi Anon, I was saying the same thing here:
    In each generation, the gurus of the previous generation get sniffy about the definition of real time ("What do you mean one second is real time? We measure in micro-seconds!").

    I will check out Ajax Push Engine, sounds interesting

     Posted by: Bernard Lunn Author Profile Page | September 18, 2009 1:46 PM



  5. Yeah, true, but the essence of "real time" is not picoseconds vs. microseconds, it's hard and fast time constraints in a robust and reliable system.

    Internet message applications like Twitter or IRC or IM do not have hard constraints in seconds, minutes, or hours, and they're the opposite of robust and reliable.

    Posted by: Anonymous | September 18, 2009 2:01 PM



  6. It might be worth mentioning AMQP as something that is both enterprise-class and open standard (with open source implementations such as RabbitMQ gaining popularity).

    On whether or not the "real time web" is really, um, real-time: there are two definitions of real-time, one which means 'delivery within a maximum time frame', normally microseconds - this is known as 'hard' real-time; the second, 'soft' real-time means 'as soon as possible'. Twitter etc. does fit into the second category, since it tries to deliver messages as quickly as is feasible.

    However, I think there's some conceptual confusion here. Twitter is a service, XMPP and AMQP are protocols, Tornado is a piece of software. These are three different categories of things and I'm not sure how much sense it makes to compare them. For example, Twitter may at some point begin using XMPP or AMQP. It makes perfect sense to use RabbitMQ + Tornado, or RabbitMQ + XMPP, but Twitter + Tornado doesn't really make sense. There's certainly no sense in saying that one of these will become 'the' web messaging bus to the exclusion of all others.

    Since this is the web we're talking about, the most likely answer is that none of the services, protocols or software mentioned will win outright. The web is different from single systems or local networks. There won't be a single messaging bus, just as there isn't a single email server (or single email protocol, or single email server software). Open standards will enable different messaging solutions to inter-operate. Twitter might be one of these solutions, and it might even be the largest (though I have considerable doubts about either of those propositions), but it's certainly not going to be 'the' web messaging bus.

     Posted by: Rob Knight Author Profile Page | September 18, 2009 3:14 PM



  7. You forgot the Open standard OpenMicroBlogging (OMB) (http://en.wikipedia.org/wiki/OpenMicroBlogging), used by Identi.ca and StatusNet (http://status.net/) to create a "Free, distributed Twitter".

    Posted by: forteller.net Author Profile Page | September 18, 2009 4:07 PM



  8. I'll declare a vested interest in XMPP first, our service Cleartext ESM (Enterprise SOcial Messaging) uses XMPP.

    Now I'll also say that it's worth noting that XMPP does enterprise and internet scale and is good at bridging these through an ecosystem of components, I think this is a key benefit.

    There's a third issue with Twitter in addition to business model and latency at large scale (which I don't believe you can solve with http polling) and that is shifting technology road map.

    For anyone to build complicated enterprise and internet level apps on Twitter this needs to be solved and as the platform is evolving rapidly that's a big ask.

    For example parts of our platform rely on the fact that re-tweets and hash tags are in the message. Twitters recent news that RT's will become part of the API is good news for short messages but bad news for solutions proxying Twitter if only because we all have to do more R&D, which equates to delays to market and increased costs.

    I'm firmly believe that email succeeded because its an open, standards based, federated platform. XMPP delivers the same for IM and mirco-blogging. I think this is the real time bus you're looking for.

    Posted by: David Banes | September 18, 2009 5:20 PM



  9. what Rob Knight said.

     Posted by: sull Author Profile Page Posted on FriendFeed   | September 18, 2009 10:36 PM



  10. Another very early 3rd generation Enterprise player is http://colayer.com, with the Personal Portal product (2001)- interesting is, that Colayer uses 100% simple web technologies, is all based on the http protocol and has a pure JavaScript/html client -

    Posted by: SampadaHegi | September 19, 2009 1:14 AM



  11. Rob, thanks for a great comment and I agree. It is horses for courses and there will be diversity. I am approaching this as as biz guy who knows enough about tech and older generations of real time "to be dangerous". But I do understand the differences you talk about. Which one to use if you are building a real time site? The answer will always be "it depends". I suspect XMPP maybe for those with good tech chops ie it is a low level protocol. The ones who just want something up and running fast and with some traffic and some hype may use Twitter or Facebook as their infrastructure.

    So, it might have been better to look at this as an emerging stack, so that people can see where in the stack they want to position.

    I will look at AMQP and RabbitMQ. And OMB sounds interesting. As does Ajax Push Engine. Choices, choices. The programmable web is great.

     Posted by: Bernard Lunn Author Profile Page | September 19, 2009 6:29 AM



  12. Thanks Bernard for a great post.
    I am more confident of what we are doing for generation 3, we have the framework and business model just some technical glitches remaining.
    Your insights have helped a lot :) as I am now assured that we are technically also heading in the right direction.

    Posted by: Sumeet | September 19, 2009 10:29 AM



  13. Also check out Mule ESB http://www.mulesource.org/ which is an enterprise service bus AND open source. Very nice API, scles nicely and can easily be used to run on Amazon EC2.

    Posted by: Timo Mika Gläßer | September 20, 2009 3:27 PM



  14. Status.net indeed.

    Posted by: Julu | October 27, 2009 2:15 PM



Leave a comment

Optional: Sign in with Connect Facebook   Sign in with Twitter Twitter   Sign in with OpenID OpenID  |  
RWW SPONSORS


FOLLOW @RWW ON TWITTER

ReadWriteWeb on Facebook



TEXT LINK ADS