Three years ago, Sun Microsystems all but promised us smart appliances, but there aren’t too many fridges out there that tell you when they’re out of ice cubes.
The Sun technology in question is called Jini, and it hasn’t really delivered beyond a few isolated examples. One of its more recent
applications is in a software program for U.S. Naval exercises. “”But so what?”” says IDC analyst Rikki Kerzner. “”There are a whole bunch of cases where it’s a nice idea, but it didn’t work. Sun has de-emphasized it for the last couple of years. . . . That’s part of the reason why acceptance is sort of the way it is. It has to be different from what it was originally introduced as.””
Sun software engineer Simon Roberts has moved out of the lab and into the classroom to teach developers about Jini and RMI (Remote Method Invocation), a standard for distributed objects written in Java. “”I used to write software once upon a time, then I discovered that when you start teaching people things, that’s when you really start understanding it,”” he says.
Computing Canada spoke with Roberts to check in on the progress of Jini and if it will ever really know when you’re low on ice.
Computing Canada: What type of Jini questions do you field in the classroom?
Simon Roberts: The question that I like to be able to give an answer to most . . . are where people don’t understand what Jini, or indeed RMI, is really about. There’s a tendency for most people to start with what they know then try to map new stuff on.
The usual question is, ‘So what can I do with Jini?’ The assumption most people start from is that it does something they fundamentally couldn’t do before. Well, it does, but mostly what it’s doing is the same thing better, more elegantly, more flexibly. Really, the argument with Jini, in my view at least, is that you now have a system. Most of the strength of Jini derives from the fact that it’s based on RMI, where you’re dealing with true distributed objects and here you’re dealing with all the benefits of object orientation.
When OO first came out — I started using it 15 years ago — some of us said, myself included, “”What can I do with this?”” (The answer was), “”But I can do that anyway.”” As time when on, the light dawned that this was not about doing new things so much as doing things in a fundamentally better way.
CC: Why haven’t we seen the development of Jini-based smart appliances?
Roberts: For the most part, it is not that unreasonable to believe we can build environments with Jini and Java that would be suitable for use in the home and allow appropriate levels of access for people’s convenience from the outside. The issues are not so much technical ones as user and cultural ones.
CC: What is Jini now compared to its original vision of making appliances smarter?
Roberts: That’s an unfortunate side effect of what appeared to be good marketing in the first place. That actually wasn’t the original intention. It was a very powerful and expressive way of describing it. Unfortunately the analogy got a little carried away and people failed to realize it was actually much more than that.
The idea, essentially, behind Jini, is that most networks are fundamentally unreliable. That’s not to say the pieces they’re made out of are not incredibly high quality, but if you have pieces with a meantime between failure of 100,000 hours — which would be good by anybody’s standards — and you have 10 million of them, clearly you can reasonably expect that 100 pieces will be broken in any given hour.
If you keep the system as a whole working, even if individual pieces keep failing and are replaced, (Jini) automatically will deal very elegantly and transparently with a more dynamic network where you deliberately plug things in at random. That fits very neatly into the notions of home networks where you don’t have a system administrator, but somebody goes down to the electronics store, buying a new piece and plugs in into the network. They just want it to work and that was the compelling description of it, which unfortunately seems to be perceived that that’s all that it’s for.
CC: Does Sun suffer from developing technologies without any real applications?
Roberts: I think one of the problems with a technology like Jini is that it is not about solving a specific problem, it’s about a better way to solve all sorts of problems. The people who talk about how to market a new product say you should start with a vertical market and when you’ve got penetration in that market, you spread out. That may be one of the issues.
There are devices out there. For example, there’s a printer out there that’s Jini-enabled. But with that kind of thing, for a home market, you clearly have to have a certain weight of acceptance before anything is worth having. One of the things I hope people will realize is that with Jini, you’re not compelled to do it, it’s an option. It’s very open and very flexible. With a little bit of luck, people will realize that. Eventually, there will be so many things you could do with it, and people will. But at the moment that isn’t the situation.
CC: What is preventing major vendors from putting their weight behind a technology like Jini?
Roberts: I’m not honestly that sure. I think quite a few of them have, but there are the issues of interface compatibility. SOAP (was) this supposed wonderful idea that you just publish your interface specifications as XML and magically the thing at the other end of it will deal with it. That’s complete nonsense, which anyone that’s been through computing 101 would immediately recognize if they stopped to think about it. It’s a very nice idea, but it just doesn’t work that way. Computers cannot yet program themselves and it’s unlikely they ever will. That means you have to have the standardization of the interfaces. As soon as you start talking to standards bodies, you know how long it takes to produce something. They took two years and more to decide on the interface for printers and it seems that the interfaces for other things are similarly slow-moving.
CC: How will Jini be affected of the growth of wireless technologies like Bluetooth?
Roberts: It’s actually going to help enormously. One of the nice things about Jini is that although it’s essentially a Java-based technology, it doesn’t care what your network transport is. Strictly speaking RMI doesn’t care either, but it’s normal to run RMI over a TCP network. But Jini was designed very specifically on the assumption that you might be running over any kind of network, including some highly unreliable ones. Unreliable is not a fair criticism to aim at Bluetooth, but it’s dynamic by design. You walk into the room, Bluetooth lights up, you walk out of the room, Bluetooth disconnects. That kind of dynamic nature is indistinguishable from a programming point of view from unreliability. (Jini) makes the fundamental assumption that “”whatever I’m running over, I must assume it’s unreliable,”” so you can handle Bluetooth extremely effectively.
CC: Is Jini more of a niche technology now?
Roberts: I don’t think so. It’s crystal ball time, but I tend to look at history. The history of computing has shown that some ideas are just so essentially right that, little by little, regardless of what is happening around them, they eventually get there. One example is object orientation. That started in people’s labs and in back rooms and was used very occasionally for commercial-type projects for 20 years or more. But eventually people recognized that this is just right.
Macromedia has produced a J2EE server. They have used Jini in it as a way of doing their load-balancing and distribution. So, little by little, I think what will happen is that people will discover they can use it without jeopardizing the other things they’re doing.