some basic questions

Michael Skowronski <>
Fri Oct 8 18:24:49 CEST 1999


thank you so much for your information!  i put some comments below.

On Fri, 8 Oct 1999, Klacke wrote:

> About two/three years ago I was really interested in the
> ISIS protocols developed by a group of researchers at Cornell
> with Ken Birman. These protocols support a concept of
> process groups and something they call "virtual syncronicity".

i'm familiar w/ ISIS.


> 
> The basic idea is that a group of processes is formed and named, 
> messages sent to the group by means of the ISIS protocols 
> can have different delivery semantics. The most interesting (and
> also efficiently implementable) is that "all members in the
> group get all messages in the same order". They also get all 
> join_group, leave_group, member_crashed, message sin the same
> order. 
> 
> This basic mechanism, (which as I said is possible to implement
> efficiently) Can be used as the basic abstraction to build 
> other stuff, such as transaction managers etc.
> 
> I had two students from Uppsala that implemented the ISIS
> protocols in Erlang and did some experiments with it.
> 
> However, and here comes the bad news. It turned out that
> the API they delivered (which was pretty similar to the
> classic ISIS API) wasn't that much easier to use than
> plain distributed Erlang. 

that's unfortunate :(

> 
> The focus of the work was
> ease of use and correctness. It is very very very hard
> to write 100 % correct fault tolerant distributed applications

absolutely, which is why we're trying to find a solution that already
exists!  since we are a commercial company, we need to find a solution
that's already there rather than create one, even if that solution isn't
the perfect one (if that ever exists).  thus our interest in erlang
technologies.

> 
> To use I.e sun RPC, Corba or even distributed Erlang to build
> distributed apps is a bit low level.
> 
> We did a couple of sample applications using the Erlang ISIS
> API as well as normal distributed Erlang, and it turned out that 
> the ISIS apps weren't any easier to write or understand, so the
> idea was dropped. I'm not the only one who dropped the idea(s)
> from the Cornell group. The traffic now in comp.XX.isis is almost 
> zero.

i believe, the same group is working on a new toolkit called Ensemble.
from what i understand, the ISIS toolkit took a ``monolithic'' type
approach and offered pre-defined and limited choices as to ordering and
membership -- Ensemble i think has a sort of an OO approach and is more
open, extensible and composible.  have you had a look at Ensemble?  

>
 
> However, I still think that we need better abstractions than
> the ones we have today in order to build distributed apps.

yes, i agree.

> (Note, here iI'm not talking about loosely loosely coupled
> apps like, nntp or www, but rather fault tolerant applications
> with hot standby's and such. The API provided by distributed erlang,
> mnesia, global, gen_server and friends is much much better than
> i.e a CORBA based api, but it's still too low level.

Mike





More information about the erlang-questions mailing list