A big factor in your choice is the size and complexity of the system you are reengineering. Is it a widespread system with many complex messages? Is it a relatively small system with a handful of worldly messaging?
For small systems, I used only socket-based summary modules. Now, however, I am more inclined towards ZeroMQ (without intermediaries) or STOMP (based on text). And there is Ada support for them, zeromq-Ada and TOMI_4_Ada (supports both).
As long as they process the distribution mechanism, you still have to process the serialization of messages in portable form.
CORBA / PolyORB and DDS solutions are quite heavy, but they are complete solutions. If you are not afraid of IDLs and broker managers, they can do well for large-scale distributed systems. Yes, some Ada bindings might need to be created, but if you can get the C headers or C APIs for the binding, this is usually not so bad if you focus only on the binding of the functions and data structures that you need. Instead of creating a comprehensive binding, use visually and opaque pointers ( void_ptr , opaque_structure_def_ptr ) for structures and parameters whose contents you are not interested in.
source share