comp.lang.ada
 help / color / mirror / Atom feed
* More on Distributed Systems Annex
@ 1996-09-12  0:00 Jonas Nygren
  1996-09-13  0:00 ` Laurent Pautet
  1996-09-13  0:00 ` Dale Stanbrough
  0 siblings, 2 replies; 4+ messages in thread
From: Jonas Nygren @ 1996-09-12  0:00 UTC (permalink / raw)



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




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: More on Distributed Systems Annex
  1996-09-12  0:00 More on Distributed Systems Annex Jonas Nygren
  1996-09-13  0:00 ` Laurent Pautet
@ 1996-09-13  0:00 ` Dale Stanbrough
  1996-09-13  0:00   ` Tucker Taft
  1 sibling, 1 reply; 4+ messages in thread
From: Dale Stanbrough @ 1996-09-13  0:00 UTC (permalink / raw)



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)


Dale




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: More on Distributed Systems Annex
  1996-09-13  0:00 ` Dale Stanbrough
@ 1996-09-13  0:00   ` Tucker Taft
  0 siblings, 0 replies; 4+ messages in thread
From: Tucker Taft @ 1996-09-13  0:00 UTC (permalink / raw)



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




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: More on Distributed Systems Annex
  1996-09-12  0:00 More on Distributed Systems Annex Jonas Nygren
@ 1996-09-13  0:00 ` Laurent Pautet
  1996-09-13  0:00 ` Dale Stanbrough
  1 sibling, 0 replies; 4+ messages in thread
From: Laurent Pautet @ 1996-09-13  0:00 UTC (permalink / raw)



Jonas Nygren  <jonas@joy.ericsson.se> wrote:
>
> 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.

Have a look at DSA's example RACW. Part2 and Part3 are identical with
a duplicated normal package. But they don't have the same partition
id. Each partition derives a given abstract type which is also
different and use this type to build distributed objects - RACW (or if
you prefer, reference to themself). But, what you can not write is a
client / server application with twice the same RCI.

-- 
-- Laurent




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~1996-09-13  0:00 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1996-09-12  0:00 More on Distributed Systems Annex Jonas Nygren
1996-09-13  0:00 ` Laurent Pautet
1996-09-13  0:00 ` Dale Stanbrough
1996-09-13  0:00   ` Tucker Taft

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