Zimbra Selects Webtide's Dynamic Web Solution
In the push and pull of Web delivery styles, at least one company has weighed in on the side of push technology. Zimbra
, a Yahoo company specializing in Web 2.0 collaboration and messaging solutions, selected Webtide's Jetty6
push server solution to power its Web services. The company started using Jetty6 back in the summer of 2007, according to Anand Palaniswamy, director of engineering, Zimbra Server, and J.J. Zhuang, Zimbra software architect.
Jetty itself has been around as an open source solution for about a decade, but has recently "come into its own," with increased usage, according to Adam Lieber, CEO of Webtide. Greg Wilkins, chief engineer at Webtide, recently benchmarked Jetty6's performance, which can now handle 20,000 users per server.
Zimbra's product line includes instant messaging components that make extensive use of "push technology." Push technology allows the server to send packets without requiring them to be requested first, contrasting with the typical Web page delivery model built around "pull technology." According to both Lieber and Zhuang, Jetty6 is also more scalable due to having a much smaller codebase than Tomcat.
According to Palaniswamy, the transition from Tomcat to Jetty6 was simple, and Webtide has been a valuable asset that aided in the transition, to the point where Palaniswamy and Zhuang viewed Webtide as an extension of the Zimbra team. The Java-based server environment of Jetty6 provides performance equal to that of Tomcat, but more importantly, Jetty6 was the only solution that could efficiently deliver the push functionality that Zimbra needed, according to both Palaniswamy and Zhuang. Tomcat only offered the necessary Comet functionality through a more intrusive method that required developers to write their own input/output code, according to Zhuang. Jetty was suited to the task through CometD, which is a scalable Comet framework and daemon.
Comet is similar to the more well-known AJAX, but it is essentially the opposite in terms of traffic routing. Comet "pushes" data to the client whereas AJAX works by "pulling" it from the server. Instead of responding to every request in real time, Comet allows requests to accumulate until there is something worthwhile to send. This approach avoids wasting CPU cycles and bandwidth, which can happen if the server is forced to send packets simply because a request was made by the client.
Technologies that rely exclusively on pull normally have trouble keeping all data "fresh" if there are multiple users on a Web application (such as a chat applet with multiple users). Under a regular pull applet, each user would need a reason to request data before updates could be sent. Normally, a manual page refresh would be the only way for each user to get the most recent data, but Comet can push data out to all users as it becomes available, thereby keeping everyone up to date.