As I was driving home from work yesterday it occurred to me that Sun seemed to somehow have missed a golden opportunity a few years ago. Their motto for ages was/is “The Network is the Computer” but the names everyone thinks of for “cloud” technology do not include Sun. What is most saddening is that several years ago Sun had some incredibly cool technology which, looking back, seems a perfect fit for the new cloud-based world. I’m referring to Jini, Sun’s auto-scaling, auto-provisioning, mobile code, service-discovering network thingamabob.
I loved the idea of Jini when it was first released (I still have half a dozen Jini books around my office), but it had some significant problems. Most important was the general fiddliness of getting anything working. Even a simple “hello world” demonstration required messing with class paths and running several picky and fragile command line scripts. A world of difference from the state of web application deployment at the time. Despite several point releases, this never really got any easier or more comprehensible. Jini certainly helped make the complex possible, but it certainly did not make the simple, simple.
When I got home after this rumination, I looked around a bit to see what had happened to Jini and if it had any relevance in the brave new world of Amazon and Google. I was pleasantly surprised.
One of the key early Jini services was JavaSpaces. Equally fiddly to set up and comprehend, but powerful and scaleable, and very much in the spirit of the grid/cloud approach. Effectively, Jini and JavaSpaces have developed to become GigaSpaces, a commercial product which attempts to solve the problems of Jini and present it as a contender in today’s world. A sure sign that the GigaSpaces folks “get it” is the way they are integrating with Amazon’s cloud offerings.
The extent of my experimentation so far has largely been limited to following their “hello world” tutorial on my local system. There were one or two hitches, such as the parts of the tutorial code which use Eclipse requiring the project directory names to start with “hello-“, but the build/run batch scripts requiring names without the prefix. Other than that, the process was pretty painless, certainly compared to my experiences with early Jini. Next steps are to try creating my own small application, then to deploy it on the “cloud” and see if the ease of use continues.
As it stands I am impressed.