comp.lang.ada
 help / color / mirror / Atom feed
* Inter-process communication in Ada with Simple Components v 4.28
@ 2018-05-02 16:51 Dmitry A. Kazakov
  2018-05-02 22:52 ` Anh Vo
  2018-05-03 22:41 ` Olivier Henley
  0 siblings, 2 replies; 6+ messages in thread
From: Dmitry A. Kazakov @ 2018-05-02 16:51 UTC (permalink / raw)


The latest version 4.28 of Simple Components introduces inter-process 
communication primitives. The implementation does not rely networking 
and is based on shared memory and OS primitives available. Both Linux 
and Windows are supported. No configuration is required, no source code 
generation is used either. The interface packages are OS-independent.

The following synchronization and communication primitives are provided:

- Manual set/reset event;

- Pulse event;

- Re-entrant mutex. A mutex that can be seized by the same task several 
times without blocking;

- Shared object that can be accessed from different processes;

- FIFO, first-in, first-out queue with the ends in different processes;

- Blackboard for publishing updates in a way that do not block the 
publisher;

- Inter-process stream with the end points in different processes;

- Shared memory pool which can be allocated and freed from different 
processes. The pool supports references which can be converted forth and 
back access type. The pool reference can be exchanged between processes 
and stored in the shared memory;

- Process call service, that provides remote procedure call facilities. 
Both synchronous and asynchronous remote calls are supported. 
Synchronous calls can return back results or update arguments. 
Exceptions propagated at the callee's side are reported back to the 
caller and re-raised at the call point.

- Manager of the process call services that allow processes involving in 
RPC exchange to come and go dynamically.

The configuration of primitives is based on introspection of the Ada 
type that describes the shared environment. The primitives are merely 
components of the shared environment object. The coherence of the shared 
environment is checked when the process joins other processes.

The intended audience is Ada developers of servers, e.g. Gnoga users. 
Bug reports and feature requests are welcome.

P.S. The Distributed Systems Annex E can be supported if there is 
demand, provided some help with configuring GNAT to respect the pragma 
Remote Call Interface and use the custom System.RPC.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


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

end of thread, other threads:[~2018-05-03 22:41 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-02 16:51 Inter-process communication in Ada with Simple Components v 4.28 Dmitry A. Kazakov
2018-05-02 22:52 ` Anh Vo
2018-05-03  7:29   ` Dmitry A. Kazakov
2018-05-03 16:00     ` Anh Vo
2018-05-03 16:25       ` Dmitry A. Kazakov
2018-05-03 22:41 ` Olivier Henley

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