From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,5439c15172a5d16d X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2002-01-23 11:32:04 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!uio.no!news-FFM2.ecrc.net!news.cesnet.cz!crax.cesnet.cz!news.felk.cvut.cz!not-for-mail From: Tomas Hlavaty Newsgroups: comp.lang.ada Subject: Re: Client connected to two servers in Glade Date: Wed, 23 Jan 2002 20:31:21 +0100 Organization: Czech Technical University Message-ID: <3C4F0F89.848BA2C0@labe.felk.cvut.cz> References: <3C45556F.CE05AD1F@labe.felk.cvut.cz> <3C485758.F69BC3BE@labe.felk.cvut.cz> <3C4D7C10.463DEE55@labe.felk.cvut.cz> NNTP-Posting-Host: bela.felk.cvut.cz Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: ns.felk.cvut.cz 1011814192 97090 147.32.85.107 (23 Jan 2002 19:29:52 GMT) X-Complaints-To: usenet@ns.felk.cvut.cz NNTP-Posting-Date: Wed, 23 Jan 2002 19:29:52 +0000 (UTC) X-Mailer: Mozilla 4.72 [en] (X11; U; Linux 2.2.18-rtl i686) X-Accept-Language: cs, en Xref: archiver1.google.com comp.lang.ada:19253 Date: 2002-01-23T20:31:21+01:00 List-Id: Pascal Obry wrote: > > Tomas Hlavaty 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)...