From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE, MSGID_SHORT autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!pt.cs.cmu.edu!sei!ajpo!eberard From: eberard@ajpo.sei.cmu.edu (Edward Berard) Newsgroups: comp.lang.ada Subject: Re: Handling objects in a distributed system Summary: One copy of an object may not be enough Message-ID: <555@ajpo.sei.cmu.edu> Date: 19 Aug 89 02:06:32 GMT References: <8908081649.AA02434@chance.mitre.org> <4812@omepd.UUCP> List-Id: In article <4812@omepd.UUCP>, vladimir@inteloc.intel.com (Vladimir G. Ivanovic) writes: > dave davis writes: > > > >Ed Berard poses an issue in dealing with objects in a distributed > >system: how to send an object to another node. > >... > >I suggest that an approach would be to transmit "installation > >instructions" (or template, or frame) with each transmitted object so > >that the receiving node only needs to know a general schema for object > >installation. > > Maybe there is something I'm missing, but why on earth would one want > to send an object to another node? Isn't it like passing an array to > a procedure? Why not just pass the name of the object? In a truly > distributed system, the name server will provide the access path. > Then there is only one copy and no consistency problem. Admittedly, "passing the 'name' of the object" and having "the name server provide the access path ... [so that] there is only one copy [of an object]," will be a recommended solution _part_ _of_ _the_ _time_. However, consider the following situations: - An application running on one node in a network needs access to an object on a different node. The shortest path between the node with the application and the node with the object involves many other nodes. Even with the "access path" all operations require an unacceptable amount of time due to the time necessary to traverse the network. - The "traffic" (i.e., the amount of information traversing a network) becomes intolerable. Ways are sought to reduce the flow. It is determined that if either the original object, or a copy of it, can be transmitted to a particular node many operations can be performed locally (i.e., on the node), thus reducing the need for some of the traffic. - P. Jalote, in the article "Resilient Objects in Broadcast Networks" (IEEE TOSE, Vol. 15, No. 1, January 1989, pp. 68-72), describes "resilient objects," i.e., objects whose states exist on multiple nodes in a network with the intention of preserving the ability to continue processing even if one of the nodes containing a necessary object goes down. The option proposed by Vladimir is only one out of many options in distributed processing. Software engineers should be free to choose an appropriate solution for the problem at hand. Yes, "call by reference" makes sense many times. However, "call by value," "call by name," and redundancy have their places. -- Ed Berard (301) 353-9652