Fresh off a 14-hour flight, but reluctant to sleep before nightfall, I was stumbling through the many attractions of Sydney's Darling Harbour area. Why, I wondered groggily, would you not call it "Innovation and Success"?
Not that innovation automatically breeds success: innovation, for the most part, automatically breeds trouble - ask any pioneer. Pioneers are easy to spot; they're the people with the arrows sticking out of their backs. But success does often ride on the trail of innovation, however tortuous that trail may be.
So, I stumbled over to a bench overlooking the harbour under an overcast Australian sky, and began to think about Jini. I'd read a long article in Wired about Jini on the plane.
Jini is a new software architecture, a system for putting computer intelligence in just about everything - from light switches and door knobs to PCs to mainframes - the better to hook them all together via the global network.
Jini is the brainchild of Bill Joy, a founder of Sun Microsystems and one of Java's progenitors. Jini, simply put, could completely change how computers are used, and even what a computer is.
Jini is a series of software layers that are distributed, that is to say, run on different machines. Core to Jini is JavaSpace, essentially a place where Java software objects can be stored, and a directory that allows these objects to advertise their existence. Protocols called Remote Method Invocation and Boot, Join and Discover allow all the pieces to talk to each other and announce themselves.
The Jini layers exist above a plain made up of all the devices capable of running Java Virtual Machines - virtually every computer, and, increasingly, many simpler devices, too.
The idea is that objects - these can be services, procedures, useful software, whatever - can advertise themselves to all comers who might have a need for them. JavaSpace permits three operations - write, read and take - so I can put an object there, learn about other objects, and take the ones I want.
Useful services might be things like a colour printer, code that will calculate my income taxes, a big empty hard drive, the Sydney ferry and train schedule, or anything else I may need. My computer would automatically look in the Jini directory, take the required objects and run them, all pretty much invisible to me.
A Jini world would be one in which I could show up at a hotel, connect my computer to the network and instantly print to any local, available printer, without having to jump through endless hoops of loading and configuring drivers, changing network protocols, etc. My Windows computer would print to a Mac printer, and vice versa, merely by connecting the cord. People I know, including highly computer-literate people, have spent weeks trying to get a computer and printer to talk to each other.
Beyond that, I could also e-mail my coffee machine, which I might have left on as I rushed for the plane, to turn itself off. The coffee machine, for its part, could be programmed to e-mail or page me whenever it had been left on longer than two hours. Furthermore, the coffee machine could tell the lights I left on to turn themselves off as well. It could also interrogate the refrigerator, and e-mail or page me to buy coffee on the way home from the airport if I had run out.
Jini objects could do much more useful work, of course. I could subscribe to an expert investment broker object that would look over my portfolio, poll the best investment advice objects available and act accordingly. The broker object would use the polite-and-patient object to explain to me why some of my pet investments weren't such a good idea, before getting the permission object to give the OK to fix things up.
In short, everything in the world would become part of a giant, distributed global computer. All of the services and software I need would be relatively small, simple programs that would be grabbed and run as needed. In its global whole, Jini would be quite complex, but from a user standpoint, computing would get easier. Simple devices could generate sophisticated behaviours by triggering the right objects and services (call the fire department if the coffee maker's "off" switch has failed).
In fact, Jini would mimic life, where simple processes together create very sophisticated behaviours. Simple chemistry gives rise to elementary cells that make up organs that compose creatures who write software, among other complex behaviours. Simple Jini objects could give rise to complex, useful behaviours that could keep software writers from burning their houses down.
Jini clearly qualifies as innovation: whether it will be a success is another matter. Some of us may not want to be e-mailed by our appliances.