From: kinawi@cpsc.ucalgary.ca (Husam Kinawi)
Newsgroups: comp.os.research
Subject: Re: Have we learned anything in the last 20 years?
Date: 6 Apr 92 17:30:24 GMT
Article-I.D.: darkstar.32231
Organization: U. of Calgary Computer Science
Originator: osr@ftp

In article <32014@darkstar.ucsc.edu> ast@cs.vu.nl (Andy Tanenbaum) writes:

>GENERALLY ACCEPTED AS TRUE BY RESEARCHERS IN DISTRIBUTED SYSTEMS
>   - The client-server paradigm is a good one

Good okay, but not the only one. Some applications might need other
paradigms.

>   - Microkernels are the way to go

Yep,  and  these kernels should also support grouping and multicast
primitives within. Lightweight threads should be also supported. An
OO  support  layer could be included within also, or running on the 
top of the kernel..

>   - UNIX can be successfully run as an application program

Well, it is the same love-hate episode again... one has to say that
the UNIX momentum is too high to be stopped now, let alone changed.
So, I think that binary compatibilty with UNIX is all what we need,
and a UNIX interface running on the top of a microkernel.

>   - RPC is a good idea to base your system on

Um... don't know. But I think RPCs are still very slow.

>   - Atomic group communication (broadcast) is highly useful

Not  only  so,  but   I feel it should be a part of any distributed
programming environment, that is if any serious distributed applic-
ation is to be developed from within!.

>   - Caching at the file server is definitely worth doing
>   - File server replication is an idea whose time has come

Agree, and replication should of course be transparent!.

>   - Message passing is too primitive for application programmers to use
>   - Synchronous (blocking) communication is easier to use than asynchronous
>   - New languages are needed for writing distributed/parallel applications

What  about  OO  libraries instead ?. I would like to see something
like  Arjuna  implemented on top of ISIS, providing a class library
for  a distributed applications developer, and all the grouping and
multicasting primitives supported by ISIS.
But then maybe Horus will supply these... so let us see!.

>   - Distributed shared memory in one form or another is a convenient model

It  is,  and should be exploited in more details. The thing we have
to  face  is  that  not  everyone is ready to think in parallel nor
write parallel programs right now, and hence we need to have a sort
of implicit parallelization techniques. A distributed shared memory
could do be the way to provide for these.

>STILL HIGHLY CONTROVERSIAL
>   - Client caching is a good idea in a system where there are many more
>     nodes than users, and users do not have a "home" machine (e.g., hypercubes)

Hmmm... don't know...

>   - Atomic transactions are worth the overhead

Well, have to say yes...

>   - Causal ordering for group communication is good enough

I  think  there was a technical report by Birman et al. that proved
that  causal ordering is all that is needed... forget the report by
now though :-(

>   - Threads should be managed by the kernel, not in user space

Well,  yes  and no!. Yes, because then threads can communicate with
each  other  via  shared  memory, but then if you have a homogenous
system and want to do some load-balancing, ie. migrate some threads
around the place, then no!.
I would again prefer an OO approach, where threads are encapsulated
with an objects, and hence could migrate within an object instead!.
If finer grain parallelism is needed, we can have composite objects
with  each  object  consisting  of a number of smaller objects, and 
each of these containing a thread each. These smaller objects could
be spread to different machines on the net, executed then collected
back after they finish execution.

>Please post replies rather than sending them to me.  It should make for an
>interesting discussion.  (I bet if someone did this for, high energy physics
>or DNA research, there would be a lot more agreement than among computer
>scientists.)

Well, maybe we need some more communication primitives :-)
Cheers,

Husam Kinawi
================================================================================
Husam Kinawi (Phd student)          e_mail: kinawi@cpsc.ucalgary.ca
The Dept. of Computer Science       Internet Talk: kinawi@fsc.cpsc.ucalgary.ca
The University of Calgary           Tel.(Voice): (403) 220-5105 (0900-2200 MDT)
2500 University Drive N.W.          Tel.(Voice): (403) 284-3570 (after 2200 MDT)
Calgary, Alta., Canada T2N 1N4      Tel.(Fax.) : (403) 284-4707