Over the past 15 years, Web-based applications have gradually replaced those based on other networking protocols for everything from personal communications to home electricity meters. But there’s a major shortcoming in the hypertext transfer protocol—HTTP—the system used to communicate over the Web. HTTP was originally designed for serving up simple documents and files to Web browsers, not for complex, real-time interaction.
Under the original HTTP protocol, a client, such as a Web browser, must open a connection to a server, make a request, wait for a response, and then close the connection. If the client needs more data, it must open a new connection. It’s like hanging up the phone and redialing after every sentence of a conversation. And if the server has new info for the client, it must wait until the client requests it rather than sending it over instantly.
This redundancy chews up bandwidth. Worse, it makes it nearly impossible to keep a Web client stuffed with up-to-the-second information. In some situations, such as financial trading, those lost milliseconds can mean missed opportunities.
Web developers have been hacking around HTTP’s limitations for years with programming techniques such as Comet, which delays closing an HTTP connection in order to transmit more data. But what they really want is a connection between client and server that stays open indefinitely and allows both parties to send data back and forth as needed.
The nearly-complete HTML5 standard for current and future Web software includes just such a solution, a new protocol called WebSockets. This protocol allows a Web client to create a connection, keep it open as long as it wants, and both send and receive data continuously.
Kaazing, a startup based in Mountain View, California, was a leading developer of the WebSockets standard. The company now sells a product that serves as a software gateway, allowing WebSocket connections between existing Web clients—browsers, phones, and desktop software—and the back-end systems to which they connect. CEO Jonas Jacobi, who spent eight years working on Java-based corporate software for Oracle, says WebSocket technology is promising not just because it’s faster, but because it’s cheaper. “It removes the need for a lot of middleware,” he says. “That’s not where companies want to be putting their engineering resources; they want to focus on improving the product they deliver.”
So far, Kaazing’s early customers tend to be in the financial sector, where milliseconds count in transactions at banks, hedge funds, exchanges, and private trading firms. The company has partnered with Informatica, a maker of messaging software, to develop a WebSocket-based internal communications system for companies.
Mike Pickett, a vice president at Informatica, says the appeal of WebSocket tech is that “it is agnostic to the specific type of [Web] browser—IE, Firefox, Chrome. Developers don’t have to write a specific extension for each browser,” which they often do for workaround solutions. (Currently, Internet Explorer requires an add-on to handle WebSockets.) Chrome, Firefox, Opera, and some other browsers have support built-in. If your browser supports WebSockets, you can watch a demo of financial markets updating several times a second at the bottom of this page.
Kaazing’s other early customers tend to be online gambling companies like Unibet. That’s because betting requires up-to-the-second odds, which are hard to provide without a persistent connection.
Importantly, WebSockets aren’t exclusive to Kaazing. Google has been an early champion. Besides building the technology into its Chrome browser, the company supports a site that shows developers how to implement it. Ian Hickson, who leads HTML5 specifications for Google, wrote on an Internet Engineering Task Force’s mailing list: “Reducing kilobytes of data to 2 bytes […] and reducing latency from 150 milliseconds to 50 milliseconds is far more than marginal. In fact, these two factors alone are enough to make WebSockets seriously interesting to Google.”