[MUD-Dev] [TECH] monitoring RMI-type systems

Adam Martin amsm2 at cam.ac.uk
Wed May 9 22:16:55 CEST 2001


----- Original Message -----
From: "Bruce" <bruce at puremagic.com>
To: <mud-dev at kanga.nu>
Sent: Wednesday, May 09, 2001 2:23 AM
Subject: [MUD-Dev] [TECH] monitoring RMI-type systems

> I asked this question about 3 weeks ago and while it spawned some
> other thread, I didn't get any answer, so I'm willing to be
> stubborn. :)

> One model of distributed communication between objects is that of
> RMI or CORBA, where operations are intended to be transparent.  From
> the syntax of a method invocation, you can't directly tell that a
> distributed operation has just happened.

> Other models make that much more explicit or don't even use the
> method call type model for doing distributed operations.

> Since the costs between an in-process vs. remote method call as well
> as the potential failures as so vastly different, the former model
> strikes me as being dangerous in actual use.

Please could you explain further: from day to day usage of RMI, and
from a course I'm currently doing focussed on CORBA and Distributed
Systems, I would have to say that neither is meant to be, nor ends up
being, transparent. E.g. with CORBA, language object refs and IDL refs
are explicitly not interchangeable. E.g. in RMI, you have to jump
through hoops to get hold of an object remotely, and you have all
sorts of fun and games using them - although there is one situation
where you can (sort of) use the remote objects as though they were
local, it certainly doesn't seem to be the main focus of RMI.

> So, my questions:

> Or am I completely off the wall and wrong here and that that type of
> problem never arises in real life?  If so, why?

Although I don't have answers to your individual questions, from
personal (and peers') experience from a couple of distributed
projects, I'd say:

  - RMI is often untraceable when something goes wrong. Blame
  Sun/JavaSoft, it tends to throw general purpose exceptions when it
  shouldnt - many bugs outstanding on this issue - you end up clueless
  as to what is the problem

  - Similar to when using multi-threading in non-trivial situations, I
  suggest you plan very explicitly when why and where you will be
  doing distribution, especially if you want to distribute objects. My
  experience all suggests that trying to define it generically for use
  within any project leads to too many problems, and its worth not
  trying to create extensible frameworks etc - but then, my exposure
  to commercial and non-CORBA, non-RMI solutions is so slight that I
  have no idea how much better they might perform.

Adam M

_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://www.kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list