SitePen Support
Webtide

Oracle, BEA, and Bayeux

by Dylan SchiemannAugust 26th, 2008

Oracle has announced a new version of WebLogic with Bayeux support.

Developers from BEA contributed efforts towards defining the Bayeux protocol, and it’s great to see them ship this update to WebLogic. They also have a tutorial available, Using the HTTP Publish-Subscribe Server, providing detailed information for WebLogic users.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Jaxer 1.0 Release Candidate Available

by Dylan SchiemannAugust 5th, 2008

Aptana has a new Jaxer Release Candidate available for download.

Jaxer currently supports long-polling techniques, and can be used with Jetty. The previously announced Jaxer integration with DWR as a remoting layer did not make the cut for the Jaxer 1.0 release from what I can tell, so hopefully we’ll see that appear in Jaxer 1.1.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Lightstreamer 3.5 Coming in September

by Dylan SchiemannJuly 31st, 2008

Alessandro Alinone just announced a major update to Lightstreamer is expected in September, packed with a number of new features and additions.

Lightstreamer 3.5 will include the following components:

  • Lightstreamer Server v. 3.5
  • SDK for Java Adapters v. 3.5
  • SDK for .NET Adapters v. 1.5
  • SDK for Adapter Remoting Infrastructure v. 1.2
  • SDK for Web Clients v. 4.3
  • SDK for Flash Clients (JS Bridge) v. 1.1
  • SDK for Flex Clients (Native AS) v. 1.1
  • SDK for Java SE Clients v. 2.3
  • SDK for Java ME Clients v. 2.1
  • SDK for .NET Clients v. 1.2

Some of the new features and improvements include:

  • Support for multiple Data Adapters used as part of the same session. A Metadata/Data Adapter Pair will be generalized to an “Adapter Set”, made up of a single Metadata Adapter and one or multiple Data Adapters. It will be possible to specify the Data Adapter to use for each Table subscription.
  • It is now possible to include the internal Monitor Adapter in any Adapter set, to create custom monitor consoles.
  • Optimization of high-frequency long-polling mode.
  • New listeners in the Client libraries to handle item updates in a more consistent way across different SDKs.
  • The engine migration algorithm in the Web Client is faster and more reliable.
  • Optimized throttling heuristics for mobile devices.
  • New MultiMetapush tables in the Web Client.
  • Several new demos and examples.

Lightstreamer Server v.3.5 will maintain full backward compatibility with previous Clients and previous Adapters. Additional information is available at the Lightstreamer blog.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

All About Meebo’s Comet Implementation

by Dylan SchiemannJuly 28th, 2008

How Comet Brings Instant Messaging to Meebo includes insights from Jian Shen, lead software engineer at Meebo, Inc.

Meebo has been very successful in rolling out large-scale Comet-based products, and the article explains their approach, technology issues they’ve faced, as well as thoughts on how the live web changes search engines, metrics, and more.

There are disadvantages, though, to this method. A typical pitfall in developing asynchronous Web applications is failing to recognize that solid-server architecture is crucial to scaling a Comet-style application. Perhaps the biggest surprise most other developers learn about meebo is that its back-end server architecture has been heavily iterated on from the very beginning specifically to address the needs of instant messaging.

For his work, Shen defines a “solid-server architecture” as one that has been tuned to fit the traffic patterns of the application. He elaborates what this is for meebo: “Every application’s traffic pattern is going to be different and your users are going to determine that for you. The big points are: JavaScript and XMLHttpRequest’s for browser compatibility; long-polling rather than streaming or regular polling for real-time messaging with the expectation that our users might have less-than-consistent internet connections; optimized server-side logic for speed, since our traffic is extremely transient, making our real bottlenecks memory and CPU; and lots of stats built into our system, so we can measure and tune to the traffic pattern of our users.”

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Persevere Tutorial

by Dylan SchiemannJuly 23rd, 2008

Kris Zyp has published a great tutorial on using Persevere with Dojo.

The Persevere server is an open source JSON application and storage server. Persevere pairs well with Dojo; the Dojo Data paradigm has a strong correlation to Persevere’s data storage structure. Virtually everything you can create or action you can perform with Dojo Data can be persisted in Persevere’s data storage including subobjects, arrays, circular references, and functions. Combining Persevere with Dojo allows you to rapidly develop simple database applications with create, read, update, and delete (CRUD) capabilities with minimal effort.

Comet support in Persevere occurs with HTTP Channels.

You can start building applications almost instantly; no need to create schemas or table definitions ahead of time, simply start creating and building dynamic persistent objects in your data stores, and connect them to widgets for display. You can build your entire application, client and server, in JavaScript.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Interview with InfoQ

by Dylan SchiemannJuly 22nd, 2008

I was recently interviewed by InfoQ on the topics of Ajax, Comet, Bayeux, RIAs and the Dojo Toolbox.

I was asked to give my definition of Comet in reference to the enough with the connections discussion:

Comet is a collection of techniques, transports, protocols, servers, and clients to deliver low-latency data transit between the server and the client.

The XHR is the least common denominator of Comet, and everything else is an attempt to improve upon the XHR to deliver faster, real-time applications. My definition intentionally avoids some points of the debate, as I prefer to be inclusive and broad, much as Ajax has come to represent everything dynamic in a browser to most people.

I also touch briefly as Bayeux and standards bodies, and JSR-315 for Java Comet servers, and many more general development topics.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

This Week in Comet

by Dylan SchiemannJuly 21st, 2008

A few months ago we interviewed David Crane about his forthcoming book Comet and Reverse Ajax: The Next Generation Ajax 2.0. According to the publisher’s web site, the book will be available this week.

Also this week is OSCON where Comet Daily’s Michael Carter and Jacob Rus are speaking about Orbited including a great eight-player real-time game. Check back later this week for more details.

Also at OSCON is the talk Beautiful Concurrency with Erlang by Kevin Scaldeferri. While this talk is not limited to Comet or specifically about erlyComet, it should be a great introduction to concepts that are interesting to the Comet crowd.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Comet Daily at Upcoming Conferences

by Dylan SchiemannJuly 14th, 2008

After a break for June and most of July, conference season is about to pick back up again. If you’re interested in learning more about Comet, there are talks on Comet by Comet Daily contributors at the following conferences (and likely many more):

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Comet Chat with Rupy

by Dylan SchiemannJuly 8th, 2008

In my recent review of Comet projects hosted by Google code, I ran across Rupy, which recently added a Comet chat demo, also known as the Hello World of Comet.

Rupy takes an interesting approach with a very very tiny Java server implementation. Even if Java is not your server-side language of choice, it’s worth taking a look:

Weighing less than 50KB, rupy is probably the smallest Java NIO HTTP server in the world.

Rupy is inherently non-blocking asynchronous, which makes it the ideal candidate for high concurrency real-time applications pushing dynamic data.

Tested with acme, rupy performs on average ~1500 requests per second. To put that figure in perspective; acme doesn’t use keep-alive, so that means 1500 unique TCP connections serving dynamic content per second! Thanks to NIO and an event queue to avoid selector trashing, this figure degrades gracefully under high concurrency.

In the succinct words of Rupy project lead Marc Larue that help define what Comet is really all about:

As for a starting point I think that there is a bigger picture to the new-wave of web techniques that fueled rupy’s creation.

Comet and REST both have simplicity as the common energy source, after all HTTP is just TCP and web-services being over-engineered is an understatement.

Firebug Output for Rupy Chat App

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

TCP Sockets and Athena

by Dylan SchiemannJuly 7th, 2008

Michael Carter’s recent Sockets in the Browser has received significant interest. JP Calderone wrote an example of a TCP sockets implementation for Athena in five minutes.

For anyone that hasn’t heard of Athena, it is a Twisted Python-based Comet implementation. For those familiar with LivePage (used in a number of Ajax and Comet demos including the sorely missed Jot Live) or Nevow, Athena supersedes LivePage and is worth a look.

A brief description of Nevow and Athena from the Nevow project site:

Nevow - Pronounced as the French “nouveau”, or “noo-voh”, Nevow is a web application construction kit written in Python. It is designed to allow the programmer to express as much of the view logic as desired in Python, and includes a pure Python XML expression syntax named stan to facilitate this. However it also provides rich support for designer-edited templates, using a very small XML attribute language to provide bi-directional template manipulation capability.

Nevow also includes formless, a declarative syntax for specifying the types of method parameters and exposing these methods to the web. Forms can be rendered automatically, and form posts will be validated and input coerced, rendering error pages if appropriate. Once a form post has validated successfully, the method will be called with the coerced values.

Athena - Finally, Nevow includes Athena, a two-way bridge between JavaScript in a browser and Python on the server. Athena is compatible with Mozilla, Firefox, Windows Internet Explorer 6, Opera 9 and Camino (Don’t see your favorite browser?). Event handlers can be written in pure Python and JavaScript implementation details are hidden from the programmer, with Nevow taking care of routing data to and from the server using XmlHttpRequest. Athena supports a widget authoring framework that simplifies the authoring and management of client side widgets that need to communicate with the server. Multiple widgets can be hosted on an Athena page without interfering with each other. Athena supports automatic event binding so that that a DHTML event (onclick,onkeypress,etc) is mapped to the appropriate JavaScript handler (which in turn may call the server).

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Copyright 2008 Comet Daily, LLC. All Rights Reserved