magol
magol

Reputation: 6273

With what shall we replace the DCOM communication with?

We currently have a number of C++/MFC applications that communicate with each other via DCOM. Now we will update the applications and also want to replace DCOM with something more modern, something that is easier to work with. But we do not know what. What do you think

Edit

The data exchanged is not something that may be of interest to others. It is only status information between the different parts of the program running on different computers.

Upvotes: 8

Views: 1155

Answers (3)

Fabio Ceconello
Fabio Ceconello

Reputation: 16049

I've been doing lots of apps in both C++ and Java using REST and I'm pretty satisfied. Far from the complexity of CORBA and SOAP, REST is easy to implement and flexible. I had a bit of a learning curve to ged used to model things as CRUD, but now it seems even more intuitive that way.

Now, for the C++ side I don't use a specific REST library, just cURL and a XML parser (in my case, CPPDOM) because the C++ apps are only clients, and the servers are Java (using the Restlet framework). If you need one, there's another question here at SO that recommends:

Can anyone recommend a good C/C++ RESTful framework

I'd also mention my decision to use XML was arbitrary and I'm seriously considering to replace it with JSON. Unless you have a specific need for XML, JSON is simpler and lightweight. And the beauty of REST is that you could even support both, along with other representations, if you want to.

Upvotes: 1

gbjbaanb
gbjbaanb

Reputation: 52679

there are many C++ messaging libraries, from the old ACE to new ones like Google's Protocol Buffers or Facebook's (now Apache's) Thrift or Cisco's Etch.

Currently I'm hearing good things about ZeroMq which might give you more than you are used to.

Upvotes: 3

Matthieu M.
Matthieu M.

Reputation: 299810

DCOM is nothing more than sugar-coating over a messenging system.

Any proper messenging system would do, and would allow you to actually spot where messages are exchanged (which may be important to localize point of failures/performance bottlenecks in waiting).

There are two typical ways to do so, nowadays:

  • A pure messenging system, for example using Google Protocol Buffers as the exchange format
  • A webservice (either full webservice in JSON or a REST API)

Upvotes: 2

Related Questions