comp.lang.ada
 help / color / mirror / Atom feed
* Stream management in Ada
@ 1987-03-15 11:41 PSI%SNMSN1::PSI%DSAVX2::WILLY@slb-test.CSNET
  1987-03-17 23:15 ` Ian Kaplan
  0 siblings, 1 reply; 2+ messages in thread
From: PSI%SNMSN1::PSI%DSAVX2::WILLY@slb-test.CSNET @ 1987-03-15 11:41 UTC (permalink / raw)


Forwarded for: Hever Bitteur (BITTEUR%M_SFMVX1@SLB-DOLL.CSNET)

	I would be very interested to hear about any one who has
already worked on this problem, especially if neat solutions
taking advantage of high level concept of Ada rendezvous, have
already been found. 

	The application deals with various tasks. A task uses
some data as input and produces some data as output, which can be
in turn used partially or totally by another task, and so on. A
feature common to all these pieces of data is that they behave
like flows of data : typically, we can have sampled raw data
which come from sensors, and which are passed through filters to
give engineering data, which in turn can be used to compute
derived variables, and so on. 

	Of course, transmission of data can be achieved with
direct rendezvous between a producer and a consumer task. The
problem is that we rapidly get into a mess of tasks all
interconnected, where any modification is painful, and where it
is difficult to add a new task, since we have to connect this new
task to any relevant producer task and any relevant consumer
task. 

	One more problem is that this design does not insure that
all the data used by a task at a given time is consistent : there
may be some dephasing between this and this variable. 

	A better approach seems to organize the task activities
around one or several "Stream Managers", whose function is to
store written data, to forward it to tasks interested in it, and
to handle the data consistency in a centralized manner. Thus, the
design looks like a data bus, where tasks (writers and/or
readers) are plugged on. Any new task just have to know on which
bus(es) it has to be plugged. 

	I have heard of implementations of this concept in
"classical" real time, using queues, events and shared memory.
Since this is to be integrated in a multi-tasking Ada
application, I am looking for a pure Ada solution. Of course I
would like to organize such a (generic) stream manager as a pure
server, which could be efficiently used by other Ada tasks. 

 	Thank you for any help.

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

end of thread, other threads:[~1987-03-17 23:15 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1987-03-15 11:41 Stream management in Ada PSI%SNMSN1::PSI%DSAVX2::WILLY@slb-test.CSNET
1987-03-17 23:15 ` Ian Kaplan

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