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

* Re: Inter-process communication in Ada with Simple Components v 4.28
  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 22:41 ` Olivier Henley
  1 sibling, 1 reply; 6+ messages in thread
From: Anh Vo @ 2018-05-02 22:52 UTC (permalink / raw)


On Wednesday, May 2, 2018 at 9:51:05 AM UTC-7, Dmitry A. Kazakov wrote:
> 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.
 
Good work Dmitry. Thank you for sharing your work with others.

By the way, I had trouble to untar after downloading it. The output error are "tar: Archive value 197608 is out of uid_t range 0..65535"

Anh Vo

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

* Re: Inter-process communication in Ada with Simple Components v 4.28
  2018-05-02 22:52 ` Anh Vo
@ 2018-05-03  7:29   ` Dmitry A. Kazakov
  2018-05-03 16:00     ` Anh Vo
  0 siblings, 1 reply; 6+ messages in thread
From: Dmitry A. Kazakov @ 2018-05-03  7:29 UTC (permalink / raw)


On 03/05/2018 00:52, Anh Vo wrote:

> By the way, I had trouble to untar after downloading it. The output error are "tar: Archive value 197608 is out of uid_t range 0..65535"

  > zcat components_4_28.tgz | tar -xvf -

?

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

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

* Re: Inter-process communication in Ada with Simple Components v 4.28
  2018-05-03  7:29   ` Dmitry A. Kazakov
@ 2018-05-03 16:00     ` Anh Vo
  2018-05-03 16:25       ` Dmitry A. Kazakov
  0 siblings, 1 reply; 6+ messages in thread
From: Anh Vo @ 2018-05-03 16:00 UTC (permalink / raw)


On Thursday, May 3, 2018 at 12:29:51 AM UTC-7, Dmitry A. Kazakov wrote:
> On 03/05/2018 00:52, Anh Vo wrote:
> 
> > By the way, I had trouble to untar after downloading it. The output error are "tar: Archive value 197608 is out of uid_t range 0..65535"
> 
>   > zcat components_4_28.tgz | tar -xvf -

I used command "tar xvfz componentz_4_28.tgz". It worked for all previous releases. It should be equivalent to the above command.

I just downloaded it again and used your command above. I got the same error message.
 


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

* Re: Inter-process communication in Ada with Simple Components v 4.28
  2018-05-03 16:00     ` Anh Vo
@ 2018-05-03 16:25       ` Dmitry A. Kazakov
  0 siblings, 0 replies; 6+ messages in thread
From: Dmitry A. Kazakov @ 2018-05-03 16:25 UTC (permalink / raw)


On 2018-05-03 18:00, Anh Vo wrote:
> On Thursday, May 3, 2018 at 12:29:51 AM UTC-7, Dmitry A. Kazakov wrote:
>> On 03/05/2018 00:52, Anh Vo wrote:
>>
>>> By the way, I had trouble to untar after downloading it. The output error are "tar: Archive value 197608 is out of uid_t range 0..65535"
>>
>>    > zcat components_4_28.tgz | tar -xvf -
> 
> I used command "tar xvfz componentz_4_28.tgz". It worked for all previous releases. It should be equivalent to the above command.
> 
> I just downloaded it again and used your command above. I got the same error message.

Then it must be the browser you use to download. Some earlier versions 
of Firefox and MS Edge consistently corrupt tgz-files. Try wget:

    wget http://www.dmitry-kazakov.de/ada/components_4_28.tgz

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

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

* Re: Inter-process communication in Ada with Simple Components v 4.28
  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 22:41 ` Olivier Henley
  1 sibling, 0 replies; 6+ messages in thread
From: Olivier Henley @ 2018-05-03 22:41 UTC (permalink / raw)


Oh wow! 
I needed such a thing for a project of mine. 
Thank you. 


^ 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