Let's talk about exceptions ...
How do you handle exceptions? Do you think upfront about the type of exceptions that you want to catch or do you just let the outside world handle it?

-- Jeroen van Bergen in JW Blogs

Newsletter sign-up

Sign up for our technology specific newsletters.

Enterprise Java
View all newsletters

Email Address:

Jini-talk with Jim Waldo

Jini architect addresses Jini's importance in ever-changing environments

Frank Sommers: During your JavaOne 2001 presentation, you talked about how the network's "edge" forces us to rethink how we build our networked information systems. Considering that the three largest cell phone manufacturers alone produce about six new cell phones every second, most of which access the Internet, that edge is expanding very fast. How does mobility impact our network-based software architectures?

Jim Waldo: Mobility is an interesting new wrinkle in our networks. We have always built networks with the idea that the things the network hooks together don't move around much. If you move your machine from one place to another, it essentially becomes a different machine. It's hard to convince the network that it's the same. Your identity may be the same if you have certificates issued by a certificate authority, or if you can log in through some network-wide login mechanism. But, say, if you take your laptop from one office to another, your machine gets a new IP address through DHCP (Dynamic Host Configuration Protocol) or some other mechanism. As far as the network is concerned, it's a different machine.

One way to deal with that problem is to consider the machinery and the things that move around as being "relocateable" services. Just as objects can move around the network, objects can move outside the network and relocate themselves, find services, and offer services that are in a different place.

If I move from place to place, there are pieces of information associated with me: my current phone number, my current location, the home directory with which I'm working, and where my mail is delivered. One way to deal with this is to have a static location where everything that knows my location goes, and that then forwards the needed information to me. This is the notion mobile IP takes, for instance. It works as long as you assume that the network doesn't break and you're never out of touch with your home network -- assumptions that are, generally, false.

Another way to deal with this is to say that when I move from one place to another, there are a set of services associated with me: a service that tells where I am, or one that tells how to contact me. You need to register those services locally, and propagate those services on the network.

The easiest way to do that is to return to where those services were and add a forwarding address. But you may also have a hierarchy of lookup services, so that when you look for services that represent an individual, you have some hint as to where that person last was. But if hints don't work, you may go into higher-level lookup services until something directs you to the current location.

In essence, the physical device becomes an implementation of the service. Implementations change over time. So, if you move from one place to another, you may change the implementation of the machine by which the service is being offered, but it's the same service.

Sommers: Many people associate mobility with small devices. But you're saying that size does not matter when it comes to mobility.

Waldo: Small devices are an interesting form of a service's mobile implementation. But Jini is not about devices any more than Java is about applets. Jini is about services and their users, and hooking the two together. You can implement those services in any appropriate way: as a device, as a piece of software, or as a collection of other services. It really isn't about devices. It's about accomplishing things on the network, and isolating what you want done, described by a Java interface, from how it gets done, which is an implementation.

Motion is really just a form of change. Jini is really about networks' ability to change without having to stop and restart. It lets networks change in chaotic and spontaneous ways. One way change can happen is when a networked service moves around. Another way is when something gets pulled off or put on the network. Those are all ways networks experience change all the time.

Embrace change in the enterprise MIS

Sommers: When you mention the word "change," most corporate MIS (management information system) managers associate large expenses with change. What you're saying suggests that Jini is a great way to reduce that cost, because it's an infrastructure designed for change.

Waldo: That was our original thought. Change is not a rare event -- it's constant. We had to figure out a way to allow change to happen without involving people. If change required people, and considering networks now growing into millions of machines and the amount of change those networks experience, we would all have to become system administrators. The only way to avoid that is to automate the ability to deal with change.

Sommers: Do you think Jini is the ultimate model for an MIS infrastructure?

Waldo: I think Jini is the best model we have currently for a network infrastructure. Enterprises tend to use networks a lot; therefore, it's an enterprise network infrastructure as well. But if people start using networks in their homes, then it becomes a home infrastructure. Enterprises want to save money; you don't want to hire a system administrator at home.

This is true even for automobile electronics. If you change your CD player to the newest and latest CD or MP3 player, you still want it to interact with other things in your car -- your speakers or the telephone. You don't want the kid at Best Buy reconfiguring your auto network when he installs the new CD player. You want that to be automatic.

So the same problem you have in enterprises, in your home, and in your automobile exists anywhere there is a network. Enterprises have the problem first because they tend to have the largest networks. But it will be everywhere.

Sommers: For many MIS managers, change is not only a source of expense, but is also a source of fear, because change is also a chance for making errors. How does Jini address the issue of reliability in the presence of constant change?

Waldo: Change is something that MIS managers rightfully fear. On the other hand, MIS managers also know that they must have change. Change was never really planned for in most distributed computing environments because we assumed networks were fairly small and static. But as networks became bigger, and as the rate of change became faster, the need to design a network system that allows for change has become more important.

Resources