Gegenwärtig haben wir eine Reihe von C ++ / MFC-Anwendungen, die über DCOM miteinander kommunizieren. Jetzt werden wir die Anwendungen aktualisieren und DCOM durch etwas moderneres ersetzen, etwas, mit dem man einfacher arbeiten kann. Aber wir wissen nicht was. Was denkst du
?Bearbeiten
Die ausgetauschten Daten sind nicht für andere interessant. Es sind nur Statusinformationen zwischen den verschiedenen Teilen des Programms, die auf verschiedenen Computern ausgeführt werden.
Es gibt viele C ++ - Messaging-Bibliotheken, von der alten ACE bis hin zu neuen wie Google Protokollpuffer oder Facebook (jetzt Apache) Sparsamkeit oder Ciscos Etch .
Momentan höre ich gute Dinge über ZeroMq , die Ihnen mehr geben könnten, als Sie es gewohnt sind.
> DCOM
ist nichts anderes als Zuckerüberzug über ein Messsystem.
Jedes geeignete Messenger-System würde es ermöglichen, zu erkennen, wo Nachrichten ausgetauscht werden (was wichtig sein kann, um Fehlerstellen / Leistungsengpässe beim Warten zu lokalisieren).
Es gibt heutzutage zwei typische Möglichkeiten:
Ich habe viele Apps in C ++ und Java mit REST gemacht und bin ziemlich zufrieden. Abgesehen von der Komplexität von CORBA und SOAP ist REST einfach zu implementieren und flexibel. Ich hatte ein bisschen eine Lernkurve, um Dinge als CRUD zu modellieren, aber jetzt scheint es so intuitiver zu sein.
Nun verwende ich für die C ++ - Seite keine spezielle REST-Bibliothek, sondern nur cURL und einen XML-Parser (in meinem Fall CPPDOM), weil die C ++ - Anwendungen nur Clients sind und die Server Java sind (mit dem Restlet-Framework) ). Wenn Sie einen brauchen, gibt es hier bei SO eine andere Frage, die empfiehlt:
Kann jemand ein gutes C / C ++ RESTful-Framework empfehlen >
Ich würde auch erwähnen, dass meine Entscheidung, XML zu verwenden, willkürlich war und ich ernsthaft überlege, es durch JSON zu ersetzen. Sofern Sie keine spezifische Notwendigkeit für XML haben, ist JSON einfacher und leichter. Und die Schönheit von REST ist, dass Sie beide, zusammen mit anderen Darstellungen, sogar unterstützen können, wenn Sie möchten.