Hello Tom,

> I think that this last point is one which is being lost on some
> people.  It means that there can be no central controller.  Everything
> must work in a completely distributed way.  I have tried to describe how
> this might work.  For instance, there can not be a 'master' jndi
> repository, which is replicated, nor can there be a 'master' transaction
> manager, message queue...  anything.  This is why the private/public JNDI
> tree became necessary, so that some services could retain an identity at
> each node, while beans are federated across the nodes, and a lookup on
> them may return an instance at any node.

OK, I see what you mean: difference between a bean and a service i.e.
between a cluster-view and a node-view.

Consequently, you suggest to have the public tree (cluster-view) being
replicated at each node and all the private (i.e. node-view) trees, local to
each node, being federated under the public tree. Right? (or we may as well
have the public (cluster) tree federated under each private local tree)


> > 2nd, this "where-could-i-find-such-a-bean..." mechanism is probably not
> > strict enough.
>
> What do you mean be this?  How is it not 'strict' enough?

I meant too lazy => not enough optimized. But I may have missed your point!

> Having thought this through a little more, what I really meant was that
> objects in JNDI should be treated differently depending on whether they
> are services or EJBs.  A service should have an identity at each node
> within the cluster.  For a 10-node cluster, there will be 10 transaction
> managers, which are co-operating to provide distributed
> transactions.  Each one still retains it's own identity.  So there is a
> transaction manager in each 'private' JNDI, which is not visible to the
> client anyway.  Then there are beans, which have to exist as one entity
> across all the nodes.  Do you see what I am saying?  There are two
> different sorts of clustering happening here.  One is that of many
> individuals working independantly to provide a service, the other is one
> corporate body making up a service.  The 'public/private' thing might be a
> bit confusing, it was just a way of implementing this.

OK, I agree with need such local vs. global representation.

> > > The list of other live nodes would probably be best acheived
> by a regular
...
> > ...). (in fact, the failure detection mechanism is a basic layer of the
> > group communication problem)
> >
> > What do you think?
>
> I like this group communication thingy, except for that everyone I've
> heard explaining it seems to have advocated having a central controller,
> which gets messy in the case of the controller failing.  I have tried to
> avoid this.

?!? the group communication scheme as generally implemented (like
javagroups) is completely redundant. At a particular moment you have some
kind of master that sequences the system. But, a completely distributed
failure detection subsystem will detect its death (or the death of any other
node). And if the "controler" dies, a distributed election mechanism
automatically takes place. There no single POF. Have I answered your concern
or am I (again ;) ) missing your point?

Cheers,


                                Sacha


Reply via email to