From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Inter-process communication in Ada with Simple Components v 4.28
Date: Wed, 2 May 2018 18:51:02 +0200
Date: 2018-05-02T18:51:02+02:00 [thread overview]
Message-ID: <pccq9l$nel$1@gioia.aioe.org> (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
next reply other threads:[~2018-05-02 16:51 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-02 16:51 Dmitry A. Kazakov [this message]
2018-05-02 22:52 ` Inter-process communication in Ada with Simple Components v 4.28 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
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox