comp.lang.ada
 help / color / mirror / Atom feed
From: Tomas Hlavaty <hlavaty@labe.felk.cvut.cz>
Subject: Re: Client connected to two servers in Glade
Date: Wed, 23 Jan 2002 20:31:21 +0100
Date: 2002-01-23T20:31:21+01:00	[thread overview]
Message-ID: <3C4F0F89.848BA2C0@labe.felk.cvut.cz> (raw)
In-Reply-To: u1ygii2sn.fsf@wanadoo.fr

Pascal Obry wrote:
> 
> Tomas Hlavaty <hlavaty@labe.felk.cvut.cz> writes:
> 
> > Maybe, the problem lies in that I have two RCI partitions which are the
> > same, i.e. they provide the same services. So I can't write
> >
> > ...
> > Partition_A, Partition_B : Partition
> >
> > for Partition_A'Host use "this.that.there"
> > for Partition_B'Host use "some.where.else"
> >
> > procedure Server_A is in Partition_A;
> > procedure Server_B is in Partition_B;
> > ...
> >
> > as Frank suggests.
> >
> > The situation is as follows:
> >
> > +-------------+   +-------------+   +-------------+
> > +-------------+
> > | Machine_A1  |   | Machine_A2  |   | Machine_A3  |  ...  | Machine_An
> > |
> > | Partition_1 |   | Partition_1 |   | Partition_1 |       | Partition_1
> > |
> > +---------+---+   +---+-----+---+   +-------------+
> > +---+---------+
> >           |           |     |                                 |
> >           \-----+-----/     \-----+---------------------------/
> >                 |                 |
> >          +------+------+   +------+------+
> >          | Machine_B1  |   | Machine_B2  |  ...
> >          | Partition_2 |   | Partition_2 |
> >          +-------------+   +-------------+
> >
> > where Partition_1 is a program collecting data from somewhere (not
> > interesting) that is executed on Machine_Ai as a daemon. Partition_2 is
> > a program simultaneously displaying data collected by any two
> > Partitions_1. A user specify Machine_Aj and Machine_Ak dynamically when
> > he wants to execute a Partition_2 on Machine_Bl.
> >
> > Isn't it to complicated? May be there is something wrong in the
> > structure of the distributed system. Should it be partitioned in a
> > different way?
> 
> Yes. What you described is not achievable with RCI. It is just not possible to
> have 2 instances of the same RCI on the distributed application. You should
> definitely have a look at the RACW. This will make this architecture possible.
> 
> In short:
> 
> - create a partation "Manager" that will server as a name server.
> 
> - create Partition_1 as a RACW partition, each one will register to the
>   manager with a specific name (string)
> 
> - Partition_2 will request 2 Partition_1 using the name server.
> 
> This is a short description I agree. Have a look at the GLADE bank example
> which is somehow similar. And be sure to read the documentation, as you seem
> quite confused it could be possible that you have just skipped this step :)

Thanks. That's a solution.

But the partition manager (main/boot partition) is a strong centralised
element which is the bottleneck of the system. All partitions would have
the partition manager as a boot server. Several problems arises then:
What about unreliable communication channels? Where should it be
located?... I think the situation wouldn't be better by using mirror
boot servers. Maybe I'm too interested in low-level details, but such
questions are important for our application: it is an industrial
application which should be tolerant to connection errors with distant
Partitions_1. Is it possible to split the system, restrict dependencies
and not to build one complex distributed system for all Partitions_1?

I'd like to find a solution using Glade first, because the current
implementation is in it and it saves a lot of work. The current
implementations is standard client/server application. But our customer
changed its specification and he wants to see data from at least two
Partitions_1 simultaneously in one window.

E.g. using sockets it is possible to have a client connected to two
servers. The connection is established only by knowing "host:port" for
each server. In Glade, the client have to connect to a boot server and
then get a link to the other server through an access-to-?-type. But it
leads to building very dependent systems. Could you suggest another
solution?

Thanks a lot, its very instructive discussion for me.

Tomas

P.S.: We use GNAT 3.13 on Linux (RT for Machine_Ai)...



  parent reply	other threads:[~2002-01-23 19:31 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-01-16 10:26 Client connected to two servers in Glade Tomas Hlavaty
2002-01-16 18:05 ` Pascal Obry
2002-01-18 17:11   ` Tomas Hlavaty
2002-01-18 17:47     ` Frank
2002-01-18 17:48     ` Pascal Obry
2002-01-22 14:49       ` Tomas Hlavaty
2002-01-22 19:49         ` Pascal Obry
2002-01-22 21:27           ` Frank
2002-01-22 22:17             ` Pascal Obry
2002-01-22 22:23             ` Michal Nowak
2002-01-23 19:31           ` Tomas Hlavaty [this message]
2002-01-23 20:14             ` Frank
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox