Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watnot!watmath!clyde!cuae2!ihnp4!ptsfa!lll-lcc!styx!ames!ucbcad!ucbvax!sdcsvax!darrell From: darrell@sdcsvax.UUCP Newsgroups: mod.os Subject: Re: Submission for mod-os Message-ID: <2714@sdcsvax.UCSD.EDU> Date: Fri, 13-Feb-87 00:50:00 EST Article-I.D.: sdcsvax.2714 Posted: Fri Feb 13 00:50:00 1987 Date-Received: Sat, 14-Feb-87 12:49:28 EST Sender: darrell@sdcsvax.UCSD.EDU Organization: Carnegie-Mellon University, CS/RI Lines: 53 Approved: mod-os@sdcsvax.uucp I think that trying to define a "distributed system" is a lot trying to define an "artifically intelligent" system. The definitive definition remains elusive because these terms refer more to collections of techniques and models of problems than to actual physical properties of systems. A "distributed system" is a system that makes good use of "distributed programming techniqes." Of course, defining "distributed programming technique" is no easier, but there are various characteristic features: -- The technique is designed to perform well in the presence of high communications latency, often being optimized for this property at the expense of other costs that would be relatively more significant in a system having lower communications latencies. -- The technique may also be optimized for low communications bandwidth. This is similar to, but should not be confused with high latency. Even high-bandwidth fiber-optic networks don't have to be all that long for latency to be significantly greater than memory access time. -- Techniques for improving reliability and availability via replication are often considered to be "distributed computing techniques", both because distributed systems *can* be partially available due to being physically distributed, and because they often *are* partially available due to their complexity. -- Techniques for acheiving security with insecure communications are "distributed techniques", since distributed systems often have insecure communications. -- Techniques for locating services or objects given some symbolic or indirect "name" are often "distributed" techniques, since the fluid configuration of distributed systems makes indirect references necessary. If you agree that distributedness is a matter of degree rather than a boolean attribute, then it is clearly hopeless to firmly discriminate between a "distributed system" and a "multiprocessor", since a system can be built at any level of "distributedness". Going back to the A.I analogy, I think that these complaints about there not "really being any commercial distributed systems" are similar to the complaints from A.I. researchers about all these expert systems companies not doing "real A.I.". The problem with both these fields is that once a technique really works well, it tends to be co-opted by ordinary programmers trying to get work done. A.I. started with heuristic search and logical inference algorithms. Probably distributed systems started the day that someone ran a serial line across the room to the next machine. Basic applications of these techniques are not very sexy research anymore, and thus not "real" A.I. or distributed systems to academics. A conflicting pressure comes from the hype factor in industry. "Buy our system because it's distributed." Even ignoring the vagueness of "distributed", this is a bogus claim, since a rational consumer should make their choice based on how well the system solves their problem, rather than on how the system is implemented. Rob