Path: utzoo!mnetor!uunet!husc6!mit-eddie!ll-xn!ames!ucsd!sdcsvax!wyant@apollo.uucp From: wyant@apollo.uucp (Geoffrey Wyant) Newsgroups: comp.os.research Subject: Re: Hilbert's revenge #4 (locating objects) Message-ID: <4801@sdcsvax.UCSD.EDU> Date: 24 Mar 88 17:09:00 GMT Sender: nobody@sdcsvax.UCSD.EDU Organization: Apollo Computer, Chelmsford, MA Lines: 31 Approved: comp-os-research@ucsd.edu > In a local-area network, locating aobjects is fairly straightforward: A > client wishing to do an operation on an object locates a server by > broadcasting a `where are you' message. The server responds and the > request can be sent. The results of these locate operations are cached > and our experience is that locates need not be done very often. > Servers and clients can migrate and servers can crash to be replaced by > new ones, because when cached information is found to be incorrect, a > new locate can be done. (Servers and clients can even migrate in the > middle of an operation, but this is another story.) There are two problems with this. First, broadcast isn't a particulary efficient way to locate an object. Secondly, it requires giving all processes the ability to broadcast. In practice, many system restrict this ability severely. We faced this same problem in developing NCS, a portable object-oriented distributed environment. We finally decided on the following solution. We have a replicated global registry in which type managers register their managed objects and the associated socket address. When a client wishes to invoke operations on an object, it calls the global location broker to get the socket address that can be used in subsequent calls on the object. This isn't a perfect solution as the socket address must be taken as a hint, but it seems to work well enough in practice. It also doesn't deal with the movement of an object while a client is bound to it, although we do have some ideas on how to handle that transparently. If you want more information on NCS, let me know and I can send you some papers we've written. -- Geoff Wyant -- UUCP: ...{yale,mit-eddie}!apollo!wyant