Is there a messaging service between Java and C ++, like JMS for Java in Java?

I am well aware of the Java Messaging Service (JMS) for sending messages from Java code to Java code. I also know CORBA, which is an integration programming that helps to connect different programming languages ​​together so that they can communicate with each other through objects.

But I was wondering if there is a common messaging service like JMS for different languages ​​to send a message from Java to C ++ and vice versa.

+4
source share
11 answers

I highly recommend starting with ZeroMQ if you do not need some functions that are based on a brokerage architecture, for example, based on an implementation on AMQP it provides (for example, RabbitMQ).

ZeroMQ has many bindings, including Java, C #, C ++, C, but this is a message, so passing objects between different languages ​​may be better suited to something like OpenDDS. see Comparison of usage and performance of OpenDDS and ZeroMQ

Good examples of ZeroMQ implementation , from basic to complex; eg.

Basic ZeroMQ Request ReplyZeroMQ Publish SubscribeComplex ZeroMQ Forwarder Proxy

+4
source

Try looking at West West products such as UMP. Medium products without a middle. similar to Tibco RV. Uses broadcast, multicast and unicast. http://en.wikipedia.org/wiki/29West . It does not require any brokers. Each participant must have UMP installed, which will start the transport daemon. There is a lib for java that implements the JMS specification and allows you to send messages up and down ports.

+2
source

Take a look at RabbitMQ . It has a lot of bindings.

+2
source

If you don’t want to set up a special server for this (and don’t want to mess with a complicated monster, which is CORBA), check the Google protocol buffers https://developers.google.com/protocol-buffers/

You can simply send everything by socket (even if it is necessary to connect), there is no need for additional servers or configurations.

+1
source

Take a look at http://qpid.apache.org/

You have a Java / C ++ broker implementation, and both languages ​​can exchange messages.

0
source

HornetQ has an implementation of STOMP and REST, which can be used in other languages: TechnicalFaqHornetQ

0
source

You can take a look at the Spread API (www.spread.org) to make sure it meets your requirements.

0
source

I know ActiveMQ can do its job. Usually we use protocol buffers to serialize our objects throughout the cable. XML can work, but the main thing is that you don’t want any random piece of memory, which language you decided to use to represent your objects on the wire, you want to get a well-known serialization format.

0
source

Data Distribution Service (DDS) is an OMG standard, the same group that used the CORBA specification. The standard language associations are C, C ++, Java, and Ada, but C # and others are available. You can mix different languages ​​in your system, as well as operating systems. The structured data types that need to be distributed are specified in a language-neutral format (by standard a subset of OMG IDL), which is then translated into the language interfaces and data types that will be used by your application.

The DDS specification supports many advanced data management functions, such as strong typed and information-containing information, distributed state management, and access to historical data. Its rich set of quality of service settings allows you to disable most of the complexity from your applications to middleware.

DDS implementations are typically highly scalable and decentralized in nature. The components involved in the DDS infrastructure are decoupled both in space and in time. Some DDS products are deployed in numerous business critical systems and systems.

See this Wikipedia article for a very brief introduction and list of links. I have specialized in DDS for over 10 years, I still like it, and I think this is one of the most useful technologies.

0
source

TIBCO RV, there is a lot of interface for it, for example Java, C, C ++, .NET, etc.

0
source

Another suggestion is OpenMQ . Inside the package, it includes C header files and library files with which you can link your C / C ++ program.

0
source

All Articles