Wednesday, January 17th, 2007
Stock Quote Charting in Real Time with Comet
SitePen and Lightstreamer have been working together to create a project that integrates Dojo’s Charting and Filtering Table widgets with Lightstreamer’s Comet server.
The demo shows real-time stock lists that stream through and are charted below.
The full source code for the demo is also provided.
Some people think that Comet isn’t as easy as it should be, and examples like this are good to see.





Nice!
I sort of expected it to be a CPU hog, but it’s not, that’s a relief.
Some ideas for additional features or improvements:
– A pause button to temporarily stop the updates, for more comfortable analysis
– Tooltips on the charted data points that show precise details
– Not only circles in the plotted lines but also squares, triangles, diamonds, etc to better distinguish the stocks. With 10 items in there, the colors are not distinct enough.
Wow how nice demo :)
But anyway, I would like to use open source software … So is there any open source alternative to lightstreamer ?
I feel that this is one big advertisement for the lightstreamer server software. It’s a nice demo but it basically shoves you to writing an email to get some pricing information.
I have a mock stock charts example up and running here:
http://upl.codeq.info/ajaxkurs/stocks.html
It uses DWR, and the code is available and simple. All described here:
http://www.jroller.com/page/matsh?entry=my_ajax_dwr_course_is
Mats
Michael–I’m working on it :) Pause button is up to Lightstreamer, though.
I wish I could do real Comet with PHP, I’m so envious.
That’s a very impressive demo.
@Michael: agreed, those are great ideas to make it more useful, and not spiking CPU is key to making this stuff usable.
@Nicolas, Alex: This demo should be fairly transportable to work with any of the Cometd implementations that are a work in progress. It would also not surprise me if companies such as Lightstreamer plan to release open source versions of their Comet platforms.
@Mats: very cool to see the DWR love! Perhaps you could plug DWR into the front end version of our demo? I’m sure Joe would like to see that.
@Sam: The single-threaded nature of PHP scares most of us away. At Renkoo, they use PHP for everything except the Comet layer, which is based on Twisted Python.
@Dean: Thanks so much!
@Dylan: They could package this demo up with a small guide and sell it
for a reasonable price. There are people out there willing to spend $50-200 for something like that (think aspiring students or tech-savy business folks). I can think of several people who need a table like that with the automatic updating for various business purposes but there is no “simple solution in a box”. Businesses usually already have their IT infrastructure in place and are looking for niche solutions that can be added piece for piece ;)
@Alex: actually, getting the table to update like that is very straightforward; all you need to do is tie a load handler to one of the updater methods on the table itself. The topic subscription on the demo shows how to do it pretty easily.
Oracle BAM supports dashboards like this, which are updated dynamically using Comet (actually 1 Comet channel is shared across multiple windows, patent pending). Furthermore, the dashboards are not just updated dynamically, the (40+) chart components actually animate the changes, and all of the tools to build the dashboards are Ajax based. Check out the screenshots (live demo coming soon) here:
http://www.oracle.com/technology/products/integration/bam/index.html
@Tal: “actually 1 Comet channel is shared across multiple windows, patent pending” … hmm, there were implementations of this by people like Know Now/mod_pubsub about 4 or 5 years ago… The UI on the BAM stuff does look infinitely better than it did a year ago though!
@Alex: We will release a completely free version of Lightstreamer very soon, that will be perfect for most non-mission-critical scenarios. Stay tuned.
The problem I see with products like BAM is that the graphical representation of data is limited to a few stock charts which are not very good. I have yet to find a product that does them well. The example images from the link are very junky looking. What should they look like? It is by no means perfect but one example would be http://www.bonavistasystems.com/OnlineDemoReports.html
Dylan: last time I looked at KnowNow and mod_pubsub did not share the push channel across multiple windows. The patent for push was granted to another guy who works for Oracle, and I do believe that we have a good chance of getting the patent for “ActiveData multiplexing” granted to us.
Doug: I am not sure what you mean by “limited to a few stock charts” – BAM supports over 40 different data visualizations including inline charts (glyphs in lists). Also the comment “images from the link are very junky looking” is pretty useless.
interseting blog