Thursday, March 18, 2010

Passing the buck - load sharing with rich client side applications

There is all this talk about cloud computing and distributed, load balanced high availability global clusters ... so on. All these deliver applications to the browser or some similar thin client interpreting and presenting the data be it via Flash or JavaScript or Java or SilverLight. The presentation technology can be used to share some of the computational load and background/stream network tasks to give the users the fuzzy highly responsive and interactive feel. The client side has the big advantage of having direct access to one of the nicest parallel processors - the GPU.

A do a lot of experimenting with Geographic data and WorldWind. I met Ben at the FOSS4G in Sydney and he demonstrated the GeoSciML based core library demo. I wanted to move some of the tasks such as graphing and core image analysis from the server side to the client side to allow heavier user loads on the server and minimize retransmissions, allowing users to do further client side operations on cached data without explicitly having to download core images. Of course to do all this the user system needs to have generous GPU and CPU grunt, but that is cheap these days. The user side transfer helps scale the system on peak loads, JNLP based deployment help keep all user instances of analysis code in sync much like a browser based application currently in use.

The first attempt was to get some of the GML(with geosci extensions) parsed and added as icons into worldwind. I got that done tonight, further digging of the data delivery system is needed to get some of the core images out and build a virtual analysis toolkit with JAI on the client side. So here is an unexciting screenshot of some core locations, hope to have more detailed info soon.

No comments: