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.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,59003dcff2152233 X-Google-Attributes: gid103376,public From: stt@copperfield.camb.inmet.com (Tucker Taft) Subject: Re: More on Distributed Systems Annex Date: 1996/09/13 Message-ID: #1/1 X-Deja-AN: 180385201 sender: news@inmet.camb.inmet.com (USENET news) x-nntp-posting-host: copperfield.camb.inmet.com references: <51aj7o$kgs@goanna.cs.rmit.edu.au> organization: Intermetrics, Inc. newsgroups: comp.lang.ada Date: 1996-09-13T00:00:00+00:00 List-Id: Dale Stanbrough (dale@goanna.cs.rmit.edu.au) wrote: : Jonas Nygren writes: > "I had some questions on Annex E, Distributed Systems, DSA, to which I > have got good answers. When rereading Annnex E in the RM my inter- > pretation is that it is describing ONE program that may be > split in partitions that can be distributed over several nodes. > Can I use the DSA features to write a client-server solution the > same way as I could with e.g. RPC. When I look at the examples in the > Rational it seems as if I need a unique executable for each client > (partition). This would mean I could not invoke two instances of the > same client executable because I would then have two partitions with > the same ID executing at the same time. > Is this a property of the partitioning utility or does Annex E > prohibit such constructs. Perhaps I have misunderstood the RM > once again. > > /jonas" : The book Concurrency In Ada by Burns and Wellings includes a chapter on this : and concludes... : "The most severe limitation of the Ada partition model is that : partitions are not first class language objects. Partition types : cannot be created and therefore instances of partitions... : cannot be expressed" : (this is an excellent book and well worth while buying) I don't think it is quite as grim as Burns and Wellings might imply. First of all, if you want multiple instances of things, you can declare a type or a generic. The distributed annex supports dynamic binding between partitions using either remote access-to-subprogram or remote access-to-classwide. The other, perhaps more important point is that the partition IDs are only really needed for initiating requests, not for replying. So even if every client ended up with the same partition ID, at a lower level presumably the PCS could make a distinction between them. In any case, it would seem a natural extension to explicitly support the notion of "client" partitions by allowing a "client" partition to have a Partition ID assigned dynamically, perhaps by a new version of Establish_RPC_Receiver with an OUT parameter rather than an IN parameter for the Partition_ID. : Dale -Tucker Taft stt@inmet.com http://www.inmet.com/~stt/ Intermetrics, Inc. Cambridge, MA USA